obsidian-dev-utils 54.0.2 → 55.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 (643) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/lib/cjs/@types/debug.d.cts +4 -1
  3. package/dist/lib/cjs/abort-controller.cjs +1 -1
  4. package/dist/lib/cjs/abort-controller.d.cts +1 -1
  5. package/dist/lib/cjs/array.cjs +1 -1
  6. package/dist/lib/cjs/array.d.cts +1 -1
  7. package/dist/lib/cjs/async-events.cjs +1 -1
  8. package/dist/lib/cjs/async-events.d.cts +1 -1
  9. package/dist/lib/cjs/async.cjs +1 -1
  10. package/dist/lib/cjs/async.d.cts +1 -1
  11. package/dist/lib/cjs/blob.cjs +1 -1
  12. package/dist/lib/cjs/blob.d.cts +1 -1
  13. package/dist/lib/cjs/codemirror/state-field-spec.cjs +1 -1
  14. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +1 -1
  15. package/dist/lib/cjs/css-class.cjs +1 -1
  16. package/dist/lib/cjs/css-class.d.cts +1 -1
  17. package/dist/lib/cjs/debug-controller.cjs +1 -1
  18. package/dist/lib/cjs/debug-controller.d.cts +1 -1
  19. package/dist/lib/cjs/debug.cjs +1 -1
  20. package/dist/lib/cjs/debug.d.cts +1 -1
  21. package/dist/lib/cjs/enum.cjs +1 -1
  22. package/dist/lib/cjs/enum.d.cts +1 -1
  23. package/dist/lib/cjs/error.cjs +1 -1
  24. package/dist/lib/cjs/error.d.cts +1 -1
  25. package/dist/lib/cjs/function.cjs +1 -1
  26. package/dist/lib/cjs/function.d.cts +1 -1
  27. package/dist/lib/cjs/html-element.cjs +1 -1
  28. package/dist/lib/cjs/html-element.d.cts +1 -1
  29. package/dist/lib/cjs/library.cjs +2 -2
  30. package/dist/lib/cjs/library.d.cts +1 -1
  31. package/dist/lib/cjs/object-utils.cjs +2 -2
  32. package/dist/lib/cjs/object-utils.d.cts +1 -1
  33. package/dist/lib/cjs/obsidian/@types/i18next.d.cts +1 -1
  34. package/dist/lib/cjs/obsidian/app.cjs +1 -1
  35. package/dist/lib/cjs/obsidian/app.d.cts +1 -1
  36. package/dist/lib/cjs/obsidian/async-with-notice.cjs +1 -1
  37. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +1 -1
  38. package/dist/lib/cjs/obsidian/attachment-path.cjs +1 -1
  39. package/dist/lib/cjs/obsidian/attachment-path.d.cts +1 -1
  40. package/dist/lib/cjs/obsidian/backlink.cjs +1 -1
  41. package/dist/lib/cjs/obsidian/backlink.d.cts +1 -1
  42. package/dist/lib/cjs/obsidian/callout.cjs +1 -1
  43. package/dist/lib/cjs/obsidian/callout.d.cts +1 -1
  44. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +1 -1
  45. package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +1 -1
  46. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.cjs +1 -1
  47. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.d.cts +1 -1
  48. package/dist/lib/cjs/obsidian/commands/command-base.cjs +1 -1
  49. package/dist/lib/cjs/obsidian/commands/command-base.d.cts +1 -1
  50. package/dist/lib/cjs/obsidian/commands/editor-command-base.cjs +1 -1
  51. package/dist/lib/cjs/obsidian/commands/editor-command-base.d.cts +1 -1
  52. package/dist/lib/cjs/obsidian/commands/file-command-base.cjs +1 -1
  53. package/dist/lib/cjs/obsidian/commands/file-command-base.d.cts +1 -1
  54. package/dist/lib/cjs/obsidian/commands/folder-command-base.cjs +1 -1
  55. package/dist/lib/cjs/obsidian/commands/folder-command-base.d.cts +1 -1
  56. package/dist/lib/cjs/obsidian/commands/non-editor-command-base.cjs +1 -1
  57. package/dist/lib/cjs/obsidian/commands/non-editor-command-base.d.cts +1 -1
  58. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +1 -1
  59. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.d.cts +1 -1
  60. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +1 -1
  61. package/dist/lib/cjs/obsidian/components/async-events-component.d.cts +1 -1
  62. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +1 -1
  63. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.d.cts +1 -1
  64. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +1 -1
  65. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.d.cts +1 -1
  66. package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +1 -1
  67. package/dist/lib/cjs/obsidian/components/setting-components/date-component.d.cts +1 -1
  68. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +1 -1
  69. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.d.cts +1 -1
  70. package/dist/lib/cjs/obsidian/components/setting-components/email-component.cjs +1 -1
  71. package/dist/lib/cjs/obsidian/components/setting-components/email-component.d.cts +1 -1
  72. package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +1 -1
  73. package/dist/lib/cjs/obsidian/components/setting-components/file-component.d.cts +1 -1
  74. package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +1 -1
  75. package/dist/lib/cjs/obsidian/components/setting-components/month-component.d.cts +1 -1
  76. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +1 -1
  77. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.d.cts +1 -1
  78. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +1 -1
  79. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.d.cts +1 -1
  80. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +1 -1
  81. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.d.cts +1 -1
  82. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +1 -1
  83. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.d.cts +1 -1
  84. package/dist/lib/cjs/obsidian/components/setting-components/number-component.cjs +1 -1
  85. package/dist/lib/cjs/obsidian/components/setting-components/number-component.d.cts +1 -1
  86. package/dist/lib/cjs/obsidian/components/setting-components/password-component.cjs +1 -1
  87. package/dist/lib/cjs/obsidian/components/setting-components/password-component.d.cts +1 -1
  88. package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.cjs +1 -1
  89. package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.d.cts +1 -1
  90. package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.cjs +1 -1
  91. package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.d.cts +1 -1
  92. package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.cjs +1 -1
  93. package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.d.cts +1 -1
  94. package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +1 -1
  95. package/dist/lib/cjs/obsidian/components/setting-components/time-component.d.cts +1 -1
  96. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +1 -1
  97. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.d.cts +1 -1
  98. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +1 -1
  99. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.d.cts +1 -1
  100. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +1 -1
  101. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.d.cts +1 -1
  102. package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.cjs +1 -1
  103. package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.d.cts +1 -1
  104. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +1 -1
  105. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.d.cts +1 -1
  106. package/dist/lib/cjs/obsidian/components/setting-components/url-component.cjs +1 -1
  107. package/dist/lib/cjs/obsidian/components/setting-components/url-component.d.cts +1 -1
  108. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +1 -1
  109. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.d.cts +1 -1
  110. package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.cjs +1 -1
  111. package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.d.cts +1 -1
  112. package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +1 -1
  113. package/dist/lib/cjs/obsidian/components/setting-components/week-component.d.cts +1 -1
  114. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +1 -1
  115. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.d.cts +1 -1
  116. package/dist/lib/cjs/obsidian/dataview-link.cjs +1 -1
  117. package/dist/lib/cjs/obsidian/dataview-link.d.cts +1 -1
  118. package/dist/lib/cjs/obsidian/dataview.cjs +1 -1
  119. package/dist/lib/cjs/obsidian/dataview.d.cts +1 -1
  120. package/dist/lib/cjs/obsidian/editor.cjs +1 -1
  121. package/dist/lib/cjs/obsidian/editor.d.cts +1 -1
  122. package/dist/lib/cjs/obsidian/file-change.cjs +4 -4
  123. package/dist/lib/cjs/obsidian/file-change.d.cts +4 -4
  124. package/dist/lib/cjs/obsidian/file-manager.cjs +2 -2
  125. package/dist/lib/cjs/obsidian/file-manager.d.cts +1 -1
  126. package/dist/lib/cjs/obsidian/file-system.cjs +1 -1
  127. package/dist/lib/cjs/obsidian/file-system.d.cts +1 -1
  128. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +1 -1
  129. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.d.cts +1 -1
  130. package/dist/lib/cjs/obsidian/frontmatter.cjs +1 -1
  131. package/dist/lib/cjs/obsidian/frontmatter.d.cts +1 -1
  132. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.cjs +1 -1
  133. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +1 -1
  134. package/dist/lib/cjs/obsidian/i18n/default-translations-base.cjs +1 -1
  135. package/dist/lib/cjs/obsidian/i18n/default-translations-base.d.cts +1 -1
  136. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +1 -1
  137. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +1 -1
  138. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +1 -1
  139. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +1 -1
  140. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +1 -1
  141. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -1
  142. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +1 -1
  143. package/dist/lib/cjs/obsidian/is-in-obsidian.d.cts +1 -1
  144. package/dist/lib/cjs/obsidian/link.cjs +16 -12
  145. package/dist/lib/cjs/obsidian/link.d.cts +1 -1
  146. package/dist/lib/cjs/obsidian/logger.cjs +1 -1
  147. package/dist/lib/cjs/obsidian/logger.d.cts +1 -1
  148. package/dist/lib/cjs/obsidian/loop.cjs +1 -1
  149. package/dist/lib/cjs/obsidian/loop.d.cts +1 -1
  150. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +5 -5
  151. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +3 -2
  152. package/dist/lib/cjs/obsidian/markdown-view.cjs +1 -1
  153. package/dist/lib/cjs/obsidian/markdown-view.d.cts +1 -1
  154. package/dist/lib/cjs/obsidian/markdown.cjs +1 -1
  155. package/dist/lib/cjs/obsidian/markdown.d.cts +1 -1
  156. package/dist/lib/cjs/obsidian/metadata-cache.cjs +1 -1
  157. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +1 -1
  158. package/dist/lib/cjs/obsidian/modals/alert.cjs +1 -1
  159. package/dist/lib/cjs/obsidian/modals/alert.d.cts +1 -1
  160. package/dist/lib/cjs/obsidian/modals/confirm.cjs +1 -1
  161. package/dist/lib/cjs/obsidian/modals/confirm.d.cts +1 -1
  162. package/dist/lib/cjs/obsidian/modals/modal-base.cjs +1 -1
  163. package/dist/lib/cjs/obsidian/modals/modal-base.d.cts +1 -1
  164. package/dist/lib/cjs/obsidian/modals/prompt.cjs +1 -1
  165. package/dist/lib/cjs/obsidian/modals/prompt.d.cts +1 -1
  166. package/dist/lib/cjs/obsidian/modals/select-item.cjs +1 -1
  167. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -1
  168. package/dist/lib/cjs/obsidian/monkey-around.cjs +1 -1
  169. package/dist/lib/cjs/obsidian/monkey-around.d.cts +1 -1
  170. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +1 -1
  171. package/dist/lib/cjs/obsidian/obsidian-settings.d.cts +1 -1
  172. package/dist/lib/cjs/obsidian/pdf.cjs +1 -1
  173. package/dist/lib/cjs/obsidian/pdf.d.cts +1 -1
  174. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +1 -1
  175. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +1 -1
  176. package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +1 -1
  177. package/dist/lib/cjs/obsidian/plugin/path-settings.d.cts +1 -1
  178. package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +1 -1
  179. package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +1 -1
  180. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +1 -1
  181. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +1 -1
  182. package/dist/lib/cjs/obsidian/plugin/plugin-id.cjs +1 -1
  183. package/dist/lib/cjs/obsidian/plugin/plugin-id.d.cts +1 -1
  184. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +1 -1
  185. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.d.cts +1 -1
  186. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +1 -1
  187. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.d.cts +1 -1
  188. package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.cjs +1 -1
  189. package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.d.cts +1 -1
  190. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.cjs +1 -1
  191. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.d.cts +1 -1
  192. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +1 -1
  193. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +1 -1
  194. package/dist/lib/cjs/obsidian/queue.cjs +1 -1
  195. package/dist/lib/cjs/obsidian/queue.d.cts +1 -1
  196. package/dist/lib/cjs/obsidian/react/app-context.cjs +1 -1
  197. package/dist/lib/cjs/obsidian/react/app-context.d.cts +1 -1
  198. package/dist/lib/cjs/obsidian/reference.cjs +1 -1
  199. package/dist/lib/cjs/obsidian/reference.d.cts +1 -1
  200. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +1 -1
  201. package/dist/lib/cjs/obsidian/rename-delete-handler.d.cts +1 -1
  202. package/dist/lib/cjs/obsidian/resource-url.cjs +1 -1
  203. package/dist/lib/cjs/obsidian/resource-url.d.cts +1 -1
  204. package/dist/lib/cjs/obsidian/setting-ex.cjs +1 -1
  205. package/dist/lib/cjs/obsidian/setting-ex.d.cts +1 -1
  206. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +1 -1
  207. package/dist/lib/cjs/obsidian/setting-group-ex.d.cts +1 -1
  208. package/dist/lib/cjs/obsidian/validation.cjs +1 -1
  209. package/dist/lib/cjs/obsidian/validation.d.cts +1 -1
  210. package/dist/lib/cjs/obsidian/vault-delete.cjs +1 -1
  211. package/dist/lib/cjs/obsidian/vault-delete.d.cts +1 -1
  212. package/dist/lib/cjs/obsidian/vault.cjs +2 -2
  213. package/dist/lib/cjs/obsidian/vault.d.cts +8 -2
  214. package/dist/lib/cjs/obsidian/workspace.cjs +1 -1
  215. package/dist/lib/cjs/obsidian/workspace.d.cts +1 -1
  216. package/dist/lib/cjs/path.cjs +1 -1
  217. package/dist/lib/cjs/path.d.cts +1 -1
  218. package/dist/lib/cjs/reg-exp.cjs +1 -1
  219. package/dist/lib/cjs/reg-exp.d.cts +1 -1
  220. package/dist/lib/cjs/script-utils/build.cjs +1 -1
  221. package/dist/lib/cjs/script-utils/build.d.cts +1 -1
  222. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +3 -3
  223. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.d.cts +1 -1
  224. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +1 -1
  225. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.cts +1 -1
  226. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +1 -1
  227. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.cts +1 -1
  228. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +1 -1
  229. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.d.cts +1 -1
  230. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +1 -1
  231. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.d.cts +1 -1
  232. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +2 -2
  233. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.cts +1 -1
  234. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +1 -1
  235. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +1 -1
  236. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +1 -1
  237. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
  238. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +1 -1
  239. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.d.cts +1 -1
  240. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +1 -1
  241. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +1 -1
  242. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +1 -1
  243. package/dist/lib/cjs/script-utils/bundlers/esbuild.d.cts +1 -1
  244. package/dist/lib/cjs/script-utils/cli-utils.cjs +1 -1
  245. package/dist/lib/cjs/script-utils/cli-utils.d.cts +1 -1
  246. package/dist/lib/cjs/script-utils/code-generator.cjs +1 -1
  247. package/dist/lib/cjs/script-utils/code-generator.d.cts +1 -1
  248. package/dist/lib/cjs/script-utils/commitlint-config.cjs +1 -1
  249. package/dist/lib/cjs/script-utils/commitlint-config.d.cts +1 -1
  250. package/dist/lib/cjs/script-utils/exec.cjs +1 -1
  251. package/dist/lib/cjs/script-utils/exec.d.cts +1 -1
  252. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +1 -1
  253. package/dist/lib/cjs/script-utils/formatters/dprint.d.cts +1 -1
  254. package/dist/lib/cjs/script-utils/fs.cjs +1 -1
  255. package/dist/lib/cjs/script-utils/fs.d.cts +1 -1
  256. package/dist/lib/cjs/script-utils/json.cjs +1 -1
  257. package/dist/lib/cjs/script-utils/json.d.cts +1 -1
  258. package/dist/lib/cjs/script-utils/linters/cspell.cjs +1 -1
  259. package/dist/lib/cjs/script-utils/linters/cspell.d.cts +1 -1
  260. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +1 -1
  261. package/dist/lib/cjs/script-utils/linters/eslint-config.d.cts +1 -1
  262. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +1 -1
  263. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +1 -1
  264. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +1 -1
  265. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +1 -1
  266. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +1 -1
  267. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +1 -1
  268. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts +1 -1
  269. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +3 -1
  270. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.cts +3 -1
  271. package/dist/lib/cjs/script-utils/linters/eslint.cjs +1 -1
  272. package/dist/lib/cjs/script-utils/linters/eslint.d.cts +1 -1
  273. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +1 -1
  274. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.d.cts +1 -1
  275. package/dist/lib/cjs/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1 -1
  276. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +1 -1
  277. package/dist/lib/cjs/script-utils/linters/markdownlint.d.cts +1 -1
  278. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +1 -1
  279. package/dist/lib/cjs/script-utils/nano-staged-config.d.cts +1 -1
  280. package/dist/lib/cjs/script-utils/npm-publish.cjs +1 -1
  281. package/dist/lib/cjs/script-utils/npm-publish.d.cts +1 -1
  282. package/dist/lib/cjs/script-utils/npm-run.cjs +1 -1
  283. package/dist/lib/cjs/script-utils/npm-run.d.cts +1 -1
  284. package/dist/lib/cjs/script-utils/npm.cjs +1 -1
  285. package/dist/lib/cjs/script-utils/npm.d.cts +1 -1
  286. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +1 -1
  287. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +1 -1
  288. package/dist/lib/cjs/script-utils/root.cjs +1 -1
  289. package/dist/lib/cjs/script-utils/root.d.cts +1 -1
  290. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +1 -1
  291. package/dist/lib/cjs/script-utils/test-runners/vitest.d.cts +1 -1
  292. package/dist/lib/cjs/script-utils/version.cjs +1 -1
  293. package/dist/lib/cjs/script-utils/version.d.cts +1 -1
  294. package/dist/lib/cjs/string.cjs +14 -14
  295. package/dist/lib/cjs/string.d.cts +9 -5
  296. package/dist/lib/cjs/transformers/date-transformer.cjs +1 -1
  297. package/dist/lib/cjs/transformers/date-transformer.d.cts +1 -1
  298. package/dist/lib/cjs/transformers/duration-transformer.cjs +1 -1
  299. package/dist/lib/cjs/transformers/duration-transformer.d.cts +1 -1
  300. package/dist/lib/cjs/transformers/group-transformer.cjs +1 -1
  301. package/dist/lib/cjs/transformers/group-transformer.d.cts +1 -1
  302. package/dist/lib/cjs/transformers/map-transformer.cjs +1 -1
  303. package/dist/lib/cjs/transformers/map-transformer.d.cts +1 -1
  304. package/dist/lib/cjs/transformers/set-transformer.cjs +1 -1
  305. package/dist/lib/cjs/transformers/set-transformer.d.cts +1 -1
  306. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +1 -1
  307. package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +1 -1
  308. package/dist/lib/cjs/transformers/transformer.cjs +1 -1
  309. package/dist/lib/cjs/transformers/transformer.d.cts +1 -1
  310. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +1 -1
  311. package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +1 -1
  312. package/dist/lib/cjs/transformers/typed-transformer.cjs +1 -1
  313. package/dist/lib/cjs/transformers/typed-transformer.d.cts +1 -1
  314. package/dist/lib/cjs/two-way-map.cjs +1 -1
  315. package/dist/lib/cjs/two-way-map.d.cts +1 -1
  316. package/dist/lib/cjs/type-guards.cjs +1 -1
  317. package/dist/lib/cjs/type-guards.d.cts +1 -1
  318. package/dist/lib/cjs/type.cjs +1 -1
  319. package/dist/lib/cjs/type.d.cts +1 -1
  320. package/dist/lib/cjs/url.cjs +1 -1
  321. package/dist/lib/cjs/url.d.cts +1 -1
  322. package/dist/lib/cjs/value-provider.cjs +5 -5
  323. package/dist/lib/cjs/value-provider.d.cts +7 -4
  324. package/dist/lib/esm/@types/debug.d.mts +4 -1
  325. package/dist/lib/esm/abort-controller.d.mts +1 -1
  326. package/dist/lib/esm/abort-controller.mjs +1 -1
  327. package/dist/lib/esm/array.d.mts +1 -1
  328. package/dist/lib/esm/array.mjs +1 -1
  329. package/dist/lib/esm/async-events.d.mts +1 -1
  330. package/dist/lib/esm/async-events.mjs +1 -1
  331. package/dist/lib/esm/async.d.mts +1 -1
  332. package/dist/lib/esm/async.mjs +1 -1
  333. package/dist/lib/esm/blob.d.mts +1 -1
  334. package/dist/lib/esm/blob.mjs +1 -1
  335. package/dist/lib/esm/codemirror/state-field-spec.d.mts +1 -1
  336. package/dist/lib/esm/css-class.d.mts +1 -1
  337. package/dist/lib/esm/css-class.mjs +1 -1
  338. package/dist/lib/esm/debug-controller.d.mts +1 -1
  339. package/dist/lib/esm/debug.d.mts +1 -1
  340. package/dist/lib/esm/debug.mjs +1 -1
  341. package/dist/lib/esm/enum.d.mts +1 -1
  342. package/dist/lib/esm/enum.mjs +1 -1
  343. package/dist/lib/esm/error.d.mts +1 -1
  344. package/dist/lib/esm/error.mjs +1 -1
  345. package/dist/lib/esm/function.d.mts +1 -1
  346. package/dist/lib/esm/function.mjs +1 -1
  347. package/dist/lib/esm/html-element.d.mts +1 -1
  348. package/dist/lib/esm/html-element.mjs +1 -1
  349. package/dist/lib/esm/library.d.mts +1 -1
  350. package/dist/lib/esm/library.mjs +2 -2
  351. package/dist/lib/esm/object-utils.d.mts +1 -1
  352. package/dist/lib/esm/object-utils.mjs +2 -2
  353. package/dist/lib/esm/obsidian/@types/i18next.d.mts +1 -1
  354. package/dist/lib/esm/obsidian/app.d.mts +1 -1
  355. package/dist/lib/esm/obsidian/app.mjs +1 -1
  356. package/dist/lib/esm/obsidian/async-with-notice.d.mts +1 -1
  357. package/dist/lib/esm/obsidian/async-with-notice.mjs +1 -1
  358. package/dist/lib/esm/obsidian/attachment-path.d.mts +1 -1
  359. package/dist/lib/esm/obsidian/attachment-path.mjs +1 -1
  360. package/dist/lib/esm/obsidian/backlink.d.mts +1 -1
  361. package/dist/lib/esm/obsidian/backlink.mjs +1 -1
  362. package/dist/lib/esm/obsidian/callout.d.mts +1 -1
  363. package/dist/lib/esm/obsidian/callout.mjs +1 -1
  364. package/dist/lib/esm/obsidian/code-block-markdown-information.d.mts +1 -1
  365. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.d.mts +1 -1
  366. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.mjs +1 -1
  367. package/dist/lib/esm/obsidian/commands/command-base.d.mts +1 -1
  368. package/dist/lib/esm/obsidian/commands/command-base.mjs +1 -1
  369. package/dist/lib/esm/obsidian/commands/editor-command-base.d.mts +1 -1
  370. package/dist/lib/esm/obsidian/commands/editor-command-base.mjs +1 -1
  371. package/dist/lib/esm/obsidian/commands/file-command-base.d.mts +1 -1
  372. package/dist/lib/esm/obsidian/commands/file-command-base.mjs +1 -1
  373. package/dist/lib/esm/obsidian/commands/folder-command-base.d.mts +1 -1
  374. package/dist/lib/esm/obsidian/commands/folder-command-base.mjs +1 -1
  375. package/dist/lib/esm/obsidian/commands/non-editor-command-base.d.mts +1 -1
  376. package/dist/lib/esm/obsidian/commands/non-editor-command-base.mjs +1 -1
  377. package/dist/lib/esm/obsidian/components/all-windows-event-handler.d.mts +1 -1
  378. package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +1 -1
  379. package/dist/lib/esm/obsidian/components/async-events-component.d.mts +1 -1
  380. package/dist/lib/esm/obsidian/components/async-events-component.mjs +1 -1
  381. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.d.mts +1 -1
  382. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +1 -1
  383. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.d.mts +1 -1
  384. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +1 -1
  385. package/dist/lib/esm/obsidian/components/setting-components/date-component.d.mts +1 -1
  386. package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +1 -1
  387. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.d.mts +1 -1
  388. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +1 -1
  389. package/dist/lib/esm/obsidian/components/setting-components/email-component.d.mts +1 -1
  390. package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +1 -1
  391. package/dist/lib/esm/obsidian/components/setting-components/file-component.d.mts +1 -1
  392. package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +1 -1
  393. package/dist/lib/esm/obsidian/components/setting-components/month-component.d.mts +1 -1
  394. package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +1 -1
  395. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.d.mts +1 -1
  396. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +1 -1
  397. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.d.mts +1 -1
  398. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +1 -1
  399. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.d.mts +1 -1
  400. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +1 -1
  401. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.d.mts +1 -1
  402. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +1 -1
  403. package/dist/lib/esm/obsidian/components/setting-components/number-component.d.mts +1 -1
  404. package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +1 -1
  405. package/dist/lib/esm/obsidian/components/setting-components/password-component.d.mts +1 -1
  406. package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +1 -1
  407. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.d.mts +1 -1
  408. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +1 -1
  409. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.d.mts +1 -1
  410. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +1 -1
  411. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.d.mts +1 -1
  412. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +1 -1
  413. package/dist/lib/esm/obsidian/components/setting-components/time-component.d.mts +1 -1
  414. package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +1 -1
  415. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.d.mts +1 -1
  416. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +1 -1
  417. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.d.mts +1 -1
  418. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +1 -1
  419. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.d.mts +1 -1
  420. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +1 -1
  421. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.d.mts +1 -1
  422. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +1 -1
  423. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.d.mts +1 -1
  424. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +1 -1
  425. package/dist/lib/esm/obsidian/components/setting-components/url-component.d.mts +1 -1
  426. package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +1 -1
  427. package/dist/lib/esm/obsidian/components/setting-components/validator-component.d.mts +1 -1
  428. package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +1 -1
  429. package/dist/lib/esm/obsidian/components/setting-components/value-component-with-change-tracking.d.mts +1 -1
  430. package/dist/lib/esm/obsidian/components/setting-components/week-component.d.mts +1 -1
  431. package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +1 -1
  432. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.d.mts +1 -1
  433. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +1 -1
  434. package/dist/lib/esm/obsidian/dataview-link.d.mts +1 -1
  435. package/dist/lib/esm/obsidian/dataview-link.mjs +1 -1
  436. package/dist/lib/esm/obsidian/dataview.d.mts +1 -1
  437. package/dist/lib/esm/obsidian/dataview.mjs +1 -1
  438. package/dist/lib/esm/obsidian/editor.d.mts +1 -1
  439. package/dist/lib/esm/obsidian/editor.mjs +1 -1
  440. package/dist/lib/esm/obsidian/file-change.d.mts +4 -4
  441. package/dist/lib/esm/obsidian/file-change.mjs +4 -4
  442. package/dist/lib/esm/obsidian/file-manager.d.mts +1 -1
  443. package/dist/lib/esm/obsidian/file-manager.mjs +2 -2
  444. package/dist/lib/esm/obsidian/file-system.d.mts +1 -1
  445. package/dist/lib/esm/obsidian/file-system.mjs +1 -1
  446. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.d.mts +1 -1
  447. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.mjs +1 -1
  448. package/dist/lib/esm/obsidian/frontmatter.d.mts +1 -1
  449. package/dist/lib/esm/obsidian/frontmatter.mjs +1 -1
  450. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +1 -1
  451. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +1 -1
  452. package/dist/lib/esm/obsidian/i18n/default-translations-base.d.mts +1 -1
  453. package/dist/lib/esm/obsidian/i18n/default-translations-base.mjs +1 -1
  454. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +1 -1
  455. package/dist/lib/esm/obsidian/i18n/i18n.mjs +1 -1
  456. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +1 -1
  457. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +1 -1
  458. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -1
  459. package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +1 -1
  460. package/dist/lib/esm/obsidian/is-in-obsidian.d.mts +1 -1
  461. package/dist/lib/esm/obsidian/is-in-obsidian.mjs +1 -1
  462. package/dist/lib/esm/obsidian/link.d.mts +1 -1
  463. package/dist/lib/esm/obsidian/link.mjs +16 -12
  464. package/dist/lib/esm/obsidian/logger.d.mts +1 -1
  465. package/dist/lib/esm/obsidian/logger.mjs +1 -1
  466. package/dist/lib/esm/obsidian/loop.d.mts +1 -1
  467. package/dist/lib/esm/obsidian/loop.mjs +1 -1
  468. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +3 -2
  469. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +5 -5
  470. package/dist/lib/esm/obsidian/markdown-view.d.mts +1 -1
  471. package/dist/lib/esm/obsidian/markdown-view.mjs +1 -1
  472. package/dist/lib/esm/obsidian/markdown.d.mts +1 -1
  473. package/dist/lib/esm/obsidian/markdown.mjs +1 -1
  474. package/dist/lib/esm/obsidian/metadata-cache.d.mts +1 -1
  475. package/dist/lib/esm/obsidian/metadata-cache.mjs +1 -1
  476. package/dist/lib/esm/obsidian/modals/alert.d.mts +1 -1
  477. package/dist/lib/esm/obsidian/modals/alert.mjs +1 -1
  478. package/dist/lib/esm/obsidian/modals/confirm.d.mts +1 -1
  479. package/dist/lib/esm/obsidian/modals/confirm.mjs +1 -1
  480. package/dist/lib/esm/obsidian/modals/modal-base.d.mts +1 -1
  481. package/dist/lib/esm/obsidian/modals/modal-base.mjs +1 -1
  482. package/dist/lib/esm/obsidian/modals/prompt.d.mts +1 -1
  483. package/dist/lib/esm/obsidian/modals/prompt.mjs +1 -1
  484. package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -1
  485. package/dist/lib/esm/obsidian/modals/select-item.mjs +1 -1
  486. package/dist/lib/esm/obsidian/monkey-around.d.mts +1 -1
  487. package/dist/lib/esm/obsidian/monkey-around.mjs +1 -1
  488. package/dist/lib/esm/obsidian/obsidian-settings.d.mts +1 -1
  489. package/dist/lib/esm/obsidian/obsidian-settings.mjs +1 -1
  490. package/dist/lib/esm/obsidian/pdf.d.mts +1 -1
  491. package/dist/lib/esm/obsidian/pdf.mjs +1 -1
  492. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +1 -1
  493. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +1 -1
  494. package/dist/lib/esm/obsidian/plugin/path-settings.d.mts +1 -1
  495. package/dist/lib/esm/obsidian/plugin/path-settings.mjs +1 -1
  496. package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +1 -1
  497. package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +1 -1
  498. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +1 -1
  499. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +1 -1
  500. package/dist/lib/esm/obsidian/plugin/plugin-id.d.mts +1 -1
  501. package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +1 -1
  502. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.d.mts +1 -1
  503. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +1 -1
  504. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.d.mts +1 -1
  505. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +1 -1
  506. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.d.mts +1 -1
  507. package/dist/lib/esm/obsidian/plugin/plugin-types-base.d.mts +1 -1
  508. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +1 -1
  509. package/dist/lib/esm/obsidian/plugin/plugin.mjs +1 -1
  510. package/dist/lib/esm/obsidian/queue.d.mts +1 -1
  511. package/dist/lib/esm/obsidian/queue.mjs +1 -1
  512. package/dist/lib/esm/obsidian/react/app-context.d.mts +1 -1
  513. package/dist/lib/esm/obsidian/react/app-context.mjs +1 -1
  514. package/dist/lib/esm/obsidian/reference.d.mts +1 -1
  515. package/dist/lib/esm/obsidian/reference.mjs +1 -1
  516. package/dist/lib/esm/obsidian/rename-delete-handler.d.mts +1 -1
  517. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +1 -1
  518. package/dist/lib/esm/obsidian/resource-url.d.mts +1 -1
  519. package/dist/lib/esm/obsidian/resource-url.mjs +1 -1
  520. package/dist/lib/esm/obsidian/setting-ex.d.mts +1 -1
  521. package/dist/lib/esm/obsidian/setting-ex.mjs +1 -1
  522. package/dist/lib/esm/obsidian/setting-group-ex.d.mts +1 -1
  523. package/dist/lib/esm/obsidian/setting-group-ex.mjs +1 -1
  524. package/dist/lib/esm/obsidian/validation.d.mts +1 -1
  525. package/dist/lib/esm/obsidian/validation.mjs +1 -1
  526. package/dist/lib/esm/obsidian/vault-delete.d.mts +1 -1
  527. package/dist/lib/esm/obsidian/vault-delete.mjs +1 -1
  528. package/dist/lib/esm/obsidian/vault.d.mts +8 -2
  529. package/dist/lib/esm/obsidian/vault.mjs +2 -2
  530. package/dist/lib/esm/obsidian/workspace.d.mts +1 -1
  531. package/dist/lib/esm/obsidian/workspace.mjs +1 -1
  532. package/dist/lib/esm/path.d.mts +1 -1
  533. package/dist/lib/esm/path.mjs +1 -1
  534. package/dist/lib/esm/reg-exp.d.mts +1 -1
  535. package/dist/lib/esm/reg-exp.mjs +1 -1
  536. package/dist/lib/esm/script-utils/build.d.mts +1 -1
  537. package/dist/lib/esm/script-utils/build.mjs +1 -1
  538. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.d.mts +1 -1
  539. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +3 -3
  540. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.mts +1 -1
  541. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +1 -1
  542. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.mts +1 -1
  543. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +1 -1
  544. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.d.mts +1 -1
  545. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +1 -1
  546. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.d.mts +1 -1
  547. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +1 -1
  548. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.mts +1 -1
  549. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +2 -2
  550. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +1 -1
  551. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +1 -1
  552. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -1
  553. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +1 -1
  554. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.d.mts +1 -1
  555. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +1 -1
  556. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +1 -1
  557. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +1 -1
  558. package/dist/lib/esm/script-utils/bundlers/esbuild.d.mts +1 -1
  559. package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +1 -1
  560. package/dist/lib/esm/script-utils/cli-utils.d.mts +1 -1
  561. package/dist/lib/esm/script-utils/cli-utils.mjs +1 -1
  562. package/dist/lib/esm/script-utils/code-generator.d.mts +1 -1
  563. package/dist/lib/esm/script-utils/code-generator.mjs +1 -1
  564. package/dist/lib/esm/script-utils/commitlint-config.d.mts +1 -1
  565. package/dist/lib/esm/script-utils/commitlint-config.mjs +1 -1
  566. package/dist/lib/esm/script-utils/exec.d.mts +1 -1
  567. package/dist/lib/esm/script-utils/exec.mjs +1 -1
  568. package/dist/lib/esm/script-utils/formatters/dprint.d.mts +1 -1
  569. package/dist/lib/esm/script-utils/formatters/dprint.mjs +1 -1
  570. package/dist/lib/esm/script-utils/fs.d.mts +1 -1
  571. package/dist/lib/esm/script-utils/fs.mjs +1 -1
  572. package/dist/lib/esm/script-utils/json.d.mts +1 -1
  573. package/dist/lib/esm/script-utils/json.mjs +1 -1
  574. package/dist/lib/esm/script-utils/linters/cspell.d.mts +1 -1
  575. package/dist/lib/esm/script-utils/linters/cspell.mjs +1 -1
  576. package/dist/lib/esm/script-utils/linters/eslint-config.d.mts +1 -1
  577. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +1 -1
  578. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +1 -1
  579. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +1 -1
  580. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +1 -1
  581. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.mts +1 -1
  582. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +1 -1
  583. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.d.mts +1 -1
  584. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +1 -1
  585. package/dist/lib/esm/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +3 -1
  586. package/dist/lib/esm/script-utils/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.mts +3 -1
  587. package/dist/lib/esm/script-utils/linters/eslint.d.mts +1 -1
  588. package/dist/lib/esm/script-utils/linters/eslint.mjs +1 -1
  589. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.d.mts +1 -1
  590. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +1 -1
  591. package/dist/lib/esm/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1 -1
  592. package/dist/lib/esm/script-utils/linters/markdownlint.d.mts +1 -1
  593. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +1 -1
  594. package/dist/lib/esm/script-utils/nano-staged-config.d.mts +1 -1
  595. package/dist/lib/esm/script-utils/nano-staged-config.mjs +1 -1
  596. package/dist/lib/esm/script-utils/npm-publish.d.mts +1 -1
  597. package/dist/lib/esm/script-utils/npm-publish.mjs +1 -1
  598. package/dist/lib/esm/script-utils/npm-run.d.mts +1 -1
  599. package/dist/lib/esm/script-utils/npm-run.mjs +1 -1
  600. package/dist/lib/esm/script-utils/npm.d.mts +1 -1
  601. package/dist/lib/esm/script-utils/npm.mjs +1 -1
  602. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +1 -1
  603. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +1 -1
  604. package/dist/lib/esm/script-utils/root.d.mts +1 -1
  605. package/dist/lib/esm/script-utils/root.mjs +1 -1
  606. package/dist/lib/esm/script-utils/test-runners/vitest.d.mts +1 -1
  607. package/dist/lib/esm/script-utils/test-runners/vitest.mjs +1 -1
  608. package/dist/lib/esm/script-utils/version.d.mts +1 -1
  609. package/dist/lib/esm/script-utils/version.mjs +1 -1
  610. package/dist/lib/esm/string.d.mts +9 -5
  611. package/dist/lib/esm/string.mjs +14 -14
  612. package/dist/lib/esm/transformers/date-transformer.d.mts +1 -1
  613. package/dist/lib/esm/transformers/date-transformer.mjs +1 -1
  614. package/dist/lib/esm/transformers/duration-transformer.d.mts +1 -1
  615. package/dist/lib/esm/transformers/duration-transformer.mjs +1 -1
  616. package/dist/lib/esm/transformers/group-transformer.d.mts +1 -1
  617. package/dist/lib/esm/transformers/group-transformer.mjs +1 -1
  618. package/dist/lib/esm/transformers/map-transformer.d.mts +1 -1
  619. package/dist/lib/esm/transformers/map-transformer.mjs +1 -1
  620. package/dist/lib/esm/transformers/set-transformer.d.mts +1 -1
  621. package/dist/lib/esm/transformers/set-transformer.mjs +1 -1
  622. package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +1 -1
  623. package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +1 -1
  624. package/dist/lib/esm/transformers/transformer.d.mts +1 -1
  625. package/dist/lib/esm/transformers/transformer.mjs +1 -1
  626. package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +1 -1
  627. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +1 -1
  628. package/dist/lib/esm/transformers/typed-transformer.d.mts +1 -1
  629. package/dist/lib/esm/transformers/typed-transformer.mjs +1 -1
  630. package/dist/lib/esm/two-way-map.d.mts +1 -1
  631. package/dist/lib/esm/two-way-map.mjs +1 -1
  632. package/dist/lib/esm/type-guards.d.mts +1 -1
  633. package/dist/lib/esm/type-guards.mjs +1 -1
  634. package/dist/lib/esm/type.d.mts +1 -1
  635. package/dist/lib/esm/type.mjs +1 -1
  636. package/dist/lib/esm/url.d.mts +1 -1
  637. package/dist/lib/esm/url.mjs +1 -1
  638. package/dist/lib/esm/value-provider.d.mts +7 -4
  639. package/dist/lib/esm/value-provider.mjs +5 -5
  640. package/package.json +1 -1
  641. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/eslint-plugin-modules-newlines.d.cts +0 -14
  642. package/dist/lib/esm/script-utils/linters/eslint-types/@types/eslint-plugin-modules-newlines.d.mts +0 -14
  643. package/script-utils/linters/eslint-types/@types/eslint-plugin-modules-newlines/package.json +0 -4
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Shared nano-staged configuration for pre-commit hooks.
5
5
  */
@@ -34,4 +34,4 @@ const obsidianDevUtilsConfig = {
34
34
  export {
35
35
  obsidianDevUtilsConfig
36
36
  };
37
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9uYW5vLXN0YWdlZC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogU2hhcmVkIG5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb24gZm9yIHByZS1jb21taXQgaG9va3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIG5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb247IGNvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IHJ1bm5pbmcgbmFuby1zdGFnZWQsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG4vKipcbiAqIE5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb24gdGhhdCBydW5zIGZpbGUtYmFzZWQgbGludCwgZm9ybWF0LCBhbmQgc3BlbGxjaGVjayBvbiBzdGFnZWQgZmlsZXMuXG4gKlxuICogT25seSBpbmNsdWRlcyB0b29scyB0aGF0IGNhbiBvcGVyYXRlIG9uIGluZGl2aWR1YWwgZmlsZXMuIFdob2xlLXByb2plY3QgY2hlY2tzXG4gKiAoVHlwZVNjcmlwdCBjb21waWxhdGlvbiwgdW5pdCB0ZXN0cykgYXJlIGxlZnQgdG8gQ0kuXG4gKlxuICogQ29tbWFuZHMgdXNlIGBucG0gcnVuIC4uLiAtLWAgc28gbmFuby1zdGFnZWQgZmlsZSBwYXRocyBhcmUgZm9yd2FyZGVkIGFzIENMSSBhcmd1bWVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XG4gICcqJzogW1xuICAgICducG0gcnVuIHNwZWxsY2hlY2sgLS0nXG4gIF0sXG4gICcqLnt0cyx0c3gsbXRzfSc6IFtcbiAgICAnbnBtIHJ1biBsaW50OmZpeCAtLScsXG4gICAgJ25wbSBydW4gZm9ybWF0IC0tJ1xuICBdLFxuICAnKi5tZCc6IFtcbiAgICAnbnBtIHJ1biBsaW50Om1kOmZpeCAtLSdcbiAgXVxufTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCTyxNQUFNLHlCQUFtRDtBQUFBLEVBQzlELEtBQUs7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUFBLEVBQ0Esa0JBQWtCO0FBQUEsSUFDaEI7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ047QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
37
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9uYW5vLXN0YWdlZC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiBmb3IgcHJlLWNvbW1pdCBob29rcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVjbGFyYXRpdmUgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBuYW5vLXN0YWdlZCwgbm90IHVuaXQgdGVzdHMuICovXG5cbi8qKlxuICogTmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiB0aGF0IHJ1bnMgZmlsZS1iYXNlZCBsaW50LCBmb3JtYXQsIGFuZCBzcGVsbGNoZWNrIG9uIHN0YWdlZCBmaWxlcy5cbiAqXG4gKiBPbmx5IGluY2x1ZGVzIHRvb2xzIHRoYXQgY2FuIG9wZXJhdGUgb24gaW5kaXZpZHVhbCBmaWxlcy4gV2hvbGUtcHJvamVjdCBjaGVja3NcbiAqIChUeXBlU2NyaXB0IGNvbXBpbGF0aW9uLCB1bml0IHRlc3RzKSBhcmUgbGVmdCB0byBDSS5cbiAqXG4gKiBDb21tYW5kcyB1c2UgYG5wbSBydW4gLi4uIC0tYCBzbyBuYW5vLXN0YWdlZCBmaWxlIHBhdGhzIGFyZSBmb3J3YXJkZWQgYXMgQ0xJIGFyZ3VtZW50cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNDb25maWc6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHtcbiAgJyonOiBbXG4gICAgJ25wbSBydW4gc3BlbGxjaGVjayAtLSdcbiAgXSxcbiAgJyoue3RzLHRzeCxtdHN9JzogW1xuICAgICducG0gcnVuIGxpbnQ6Zml4IC0tJyxcbiAgICAnbnBtIHJ1biBmb3JtYXQgLS0nXG4gIF0sXG4gICcqLm1kJzogW1xuICAgICducG0gcnVuIGxpbnQ6bWQ6Zml4IC0tJ1xuICBdXG59O1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JPLE1BQU0seUJBQW1EO0FBQUEsRUFDOUQsS0FBSztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQUEsRUFDQSxrQkFBa0I7QUFBQSxJQUNoQjtBQUFBLElBQ0E7QUFBQSxFQUNGO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Contains utility functions for NPM publish.
5
5
  */
@@ -38,4 +38,4 @@ async function publish(isBeta) {
38
38
  export {
39
39
  publish
40
40
  };
41
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcHVibGlzaC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgTlBNIHB1Ymxpc2guXG4gKi9cblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MsIHsgbG9hZEVudkZpbGUgfSBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3Rcbn0gZnJvbSAnLi9yb290LnRzJztcblxuaW50ZXJmYWNlIE5wbUVudiB7XG4gIE5QTV9UT0tFTjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFB1Ymxpc2ggdG8gTlBNLlxuICpcbiAqIEBwYXJhbSBpc0JldGEgLSBXaGV0aGVyIHRvIHB1Ymxpc2ggdG8gdGhlIGJldGEgTlBNIHJlZ2lzdHJ5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVibGlzaChpc0JldGE/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudlBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290KCcuZW52Jyk7XG4gIGlmIChlbnZQYXRoICYmIGV4aXN0c1N5bmMoZW52UGF0aCkpIHtcbiAgICBsb2FkRW52RmlsZShlbnZQYXRoKTtcbiAgfVxuICBjb25zdCBucG1FbnYgPSBwcm9jZXNzLmVudiBhcyBQYXJ0aWFsPE5wbUVudj47XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdjb25maWcnLCAnc2V0JywgYC8vcmVnaXN0cnkubnBtanMub3JnLzpfYXV0aFRva2VuPSR7bnBtRW52Lk5QTV9UT0tFTiA/PyAnJ31gXSk7XG5cbiAgY29uc3QgdGFnID0gaXNCZXRhID8gJ2JldGEnIDogJ2xhdGVzdCc7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdwdWJsaXNoJywgJy0tdGFnJywgdGFnXSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLGtCQUFrQjtBQUMzQixPQUFPLFdBQVcsbUJBQW1CO0FBRXJDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBV1AsZUFBc0IsUUFBUSxRQUFpQztBQUM3RCxRQUFNLFVBQVUsb0JBQW9CLE1BQU07QUFDMUMsTUFBSSxXQUFXLFdBQVcsT0FBTyxHQUFHO0FBQ2xDLGdCQUFZLE9BQU87QUFBQSxFQUNyQjtBQUNBLFFBQU0sU0FBUyxRQUFRO0FBQ3ZCLFFBQU0sYUFBYSxDQUFDLE9BQU8sVUFBVSxPQUFPLG9DQUFvQyxPQUFPLGFBQWEsRUFBRSxFQUFFLENBQUM7QUFFekcsUUFBTSxNQUFNLFNBQVMsU0FBUztBQUM5QixRQUFNLGFBQWEsQ0FBQyxPQUFPLFdBQVcsU0FBUyxHQUFHLENBQUM7QUFDckQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
41
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcHVibGlzaC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBOUE0gcHVibGlzaC5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcHJvY2VzcywgeyBsb2FkRW52RmlsZSB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFxufSBmcm9tICcuL3Jvb3QudHMnO1xuXG5pbnRlcmZhY2UgTnBtRW52IHtcbiAgTlBNX1RPS0VOOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHVibGlzaCB0byBOUE0uXG4gKlxuICogQHBhcmFtIGlzQmV0YSAtIFdoZXRoZXIgdG8gcHVibGlzaCB0byB0aGUgYmV0YSBOUE0gcmVnaXN0cnkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoKGlzQmV0YT86IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW52UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3QoJy5lbnYnKTtcbiAgaWYgKGVudlBhdGggJiYgZXhpc3RzU3luYyhlbnZQYXRoKSkge1xuICAgIGxvYWRFbnZGaWxlKGVudlBhdGgpO1xuICB9XG4gIGNvbnN0IG5wbUVudiA9IHByb2Nlc3MuZW52IGFzIFBhcnRpYWw8TnBtRW52PjtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ2NvbmZpZycsICdzZXQnLCBgLy9yZWdpc3RyeS5ucG1qcy5vcmcvOl9hdXRoVG9rZW49JHtucG1FbnYuTlBNX1RPS0VOID8/ICcnfWBdKTtcblxuICBjb25zdCB0YWcgPSBpc0JldGEgPyAnYmV0YScgOiAnbGF0ZXN0JztcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ3B1Ymxpc2gnLCAnLS10YWcnLCB0YWddKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsa0JBQWtCO0FBQzNCLE9BQU8sV0FBVyxtQkFBbUI7QUFFckM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFXUCxlQUFzQixRQUFRLFFBQWlDO0FBQzdELFFBQU0sVUFBVSxvQkFBb0IsTUFBTTtBQUMxQyxNQUFJLFdBQVcsV0FBVyxPQUFPLEdBQUc7QUFDbEMsZ0JBQVksT0FBTztBQUFBLEVBQ3JCO0FBQ0EsUUFBTSxTQUFTLFFBQVE7QUFDdkIsUUFBTSxhQUFhLENBQUMsT0FBTyxVQUFVLE9BQU8sb0NBQW9DLE9BQU8sYUFBYSxFQUFFLEVBQUUsQ0FBQztBQUV6RyxRQUFNLE1BQU0sU0FBUyxTQUFTO0FBQzlCLFFBQU0sYUFBYSxDQUFDLE9BQU8sV0FBVyxTQUFTLEdBQUcsQ0FBQztBQUNyRDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * NPM run utilities.
5
5
  */
@@ -45,4 +45,4 @@ export {
45
45
  npmRun,
46
46
  npmRunOptional
47
47
  };
48
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcnVuLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIE5QTSBydW4gdXRpbGl0aWVzLlxuICovXG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgZXhlY0Zyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSdW5zIGEgY29tbWFuZCB1c2luZyBucG0gY2hlY2tpbmcgaWYgdGhlIGNvbW1hbmQgaXMgb3ZlcnJpZGRlbiBpbiB0aGUgcGFja2FnZS5qc29uLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gcnVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbnBtUnVuKGNvbW1hbmQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICBjb25zdCBpc0tub3duQ29tbWFuZCA9IE9iamVjdC5rZXlzKHBhY2thZ2VKc29uLnNjcmlwdHMgPz8ge30pLmluY2x1ZGVzKGNvbW1hbmQpO1xuICBpZiAoaXNLbm93bkNvbW1hbmQpIHtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoWyducG0nLCAncnVuJywgY29tbWFuZF0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29tbWFuZCAke2NvbW1hbmR9IGlzIG5vdCBkZWZpbmVkIGluIHRoZSBwYWNrYWdlLmpzb25gKTtcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnMgYSBjb21tYW5kIHVzaW5nIG5wbSBvbmx5IGlmIHRoZSBjb21tYW5kIGlzIGRlZmluZWQgaW4gdGhlIHBhY2thZ2UuanNvbiBzY3JpcHRzLlxuICogSWYgdGhlIGNvbW1hbmQgaXMgbm90IGRlZmluZWQsIGl0IGlzIHNpbGVudGx5IHNraXBwZWQuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBydW4uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNvbW1hbmQgd2FzIGZvdW5kIGFuZCBydW4sIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbnBtUnVuT3B0aW9uYWwoY29tbWFuZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gIGNvbnN0IGlzS25vd25Db21tYW5kID0gT2JqZWN0LmtleXMocGFja2FnZUpzb24uc2NyaXB0cyA/PyB7fSkuaW5jbHVkZXMoY29tbWFuZCk7XG4gIGlmIChpc0tub3duQ29tbWFuZCkge1xuICAgIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdydW4nLCBjb21tYW5kXSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgZ2V0TGliRGVidWdnZXIoJ25wbVJ1bk9wdGlvbmFsJykoYENvbW1hbmQgJHtjb21tYW5kfSBpcyBub3QgZGVmaW5lZCBpbiB0aGUgcGFja2FnZS5qc29uLCBza2lwcGluZ2ApO1xuICByZXR1cm4gZmFsc2U7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLG9CQUFvQjtBQU83QixlQUFzQixPQUFPLFNBQWdDO0FBQzNELFFBQU0sY0FBYyxNQUFNLGdCQUFnQjtBQUMxQyxRQUFNLGlCQUFpQixPQUFPLEtBQUssWUFBWSxXQUFXLENBQUMsQ0FBQyxFQUFFLFNBQVMsT0FBTztBQUM5RSxNQUFJLGdCQUFnQjtBQUNsQixVQUFNLGFBQWEsQ0FBQyxPQUFPLE9BQU8sT0FBTyxDQUFDO0FBQUEsRUFDNUMsT0FBTztBQUNMLFVBQU0sSUFBSSxNQUFNLFdBQVcsT0FBTyxxQ0FBcUM7QUFBQSxFQUN6RTtBQUNGO0FBU0EsZUFBc0IsZUFBZSxTQUFtQztBQUN0RSxRQUFNLGNBQWMsTUFBTSxnQkFBZ0I7QUFDMUMsUUFBTSxpQkFBaUIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDLENBQUMsRUFBRSxTQUFTLE9BQU87QUFDOUUsTUFBSSxnQkFBZ0I7QUFDbEIsVUFBTSxhQUFhLENBQUMsT0FBTyxPQUFPLE9BQU8sQ0FBQztBQUMxQyxXQUFPO0FBQUEsRUFDVDtBQUNBLGlCQUFlLGdCQUFnQixFQUFFLFdBQVcsT0FBTywrQ0FBK0M7QUFDbEcsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
48
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcnVuLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTlBNIHJ1biB1dGlsaXRpZXMuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuL25wbS50cyc7XG5pbXBvcnQgeyBleGVjRnJvbVJvb3QgfSBmcm9tICcuL3Jvb3QudHMnO1xuXG4vKipcbiAqIFJ1bnMgYSBjb21tYW5kIHVzaW5nIG5wbSBjaGVja2luZyBpZiB0aGUgY29tbWFuZCBpcyBvdmVycmlkZGVuIGluIHRoZSBwYWNrYWdlLmpzb24uXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBydW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1SdW4oY29tbWFuZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gIGNvbnN0IGlzS25vd25Db21tYW5kID0gT2JqZWN0LmtleXMocGFja2FnZUpzb24uc2NyaXB0cyA/PyB7fSkuaW5jbHVkZXMoY29tbWFuZCk7XG4gIGlmIChpc0tub3duQ29tbWFuZCkge1xuICAgIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdydW4nLCBjb21tYW5kXSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb21tYW5kICR7Y29tbWFuZH0gaXMgbm90IGRlZmluZWQgaW4gdGhlIHBhY2thZ2UuanNvbmApO1xuICB9XG59XG5cbi8qKlxuICogUnVucyBhIGNvbW1hbmQgdXNpbmcgbnBtIG9ubHkgaWYgdGhlIGNvbW1hbmQgaXMgZGVmaW5lZCBpbiB0aGUgcGFja2FnZS5qc29uIHNjcmlwdHMuXG4gKiBJZiB0aGUgY29tbWFuZCBpcyBub3QgZGVmaW5lZCwgaXQgaXMgc2lsZW50bHkgc2tpcHBlZC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIHJ1bi5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY29tbWFuZCB3YXMgZm91bmQgYW5kIHJ1biwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1SdW5PcHRpb25hbChjb21tYW5kOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgaXNLbm93bkNvbW1hbmQgPSBPYmplY3Qua2V5cyhwYWNrYWdlSnNvbi5zY3JpcHRzID8/IHt9KS5pbmNsdWRlcyhjb21tYW5kKTtcbiAgaWYgKGlzS25vd25Db21tYW5kKSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ3J1bicsIGNvbW1hbmRdKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBnZXRMaWJEZWJ1Z2dlcignbnBtUnVuT3B0aW9uYWwnKShgQ29tbWFuZCAke2NvbW1hbmR9IGlzIG5vdCBkZWZpbmVkIGluIHRoZSBwYWNrYWdlLmpzb24sIHNraXBwaW5nYCk7XG4gIHJldHVybiBmYWxzZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsc0JBQXNCO0FBQy9CLFNBQVMsdUJBQXVCO0FBQ2hDLFNBQVMsb0JBQW9CO0FBTzdCLGVBQXNCLE9BQU8sU0FBZ0M7QUFDM0QsUUFBTSxjQUFjLE1BQU0sZ0JBQWdCO0FBQzFDLFFBQU0saUJBQWlCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxPQUFPO0FBQzlFLE1BQUksZ0JBQWdCO0FBQ2xCLFVBQU0sYUFBYSxDQUFDLE9BQU8sT0FBTyxPQUFPLENBQUM7QUFBQSxFQUM1QyxPQUFPO0FBQ0wsVUFBTSxJQUFJLE1BQU0sV0FBVyxPQUFPLHFDQUFxQztBQUFBLEVBQ3pFO0FBQ0Y7QUFTQSxlQUFzQixlQUFlLFNBQW1DO0FBQ3RFLFFBQU0sY0FBYyxNQUFNLGdCQUFnQjtBQUMxQyxRQUFNLGlCQUFpQixPQUFPLEtBQUssWUFBWSxXQUFXLENBQUMsQ0FBQyxFQUFFLFNBQVMsT0FBTztBQUM5RSxNQUFJLGdCQUFnQjtBQUNsQixVQUFNLGFBQWEsQ0FBQyxPQUFPLE9BQU8sT0FBTyxDQUFDO0FBQzFDLFdBQU87QUFBQSxFQUNUO0FBQ0EsaUJBQWUsZ0JBQWdCLEVBQUUsV0FBVyxPQUFPLCtDQUErQztBQUNsRyxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Contains utility functions for NPM package.json.
5
5
  */
@@ -117,4 +117,4 @@ export {
117
117
  writePackageLockJson,
118
118
  writePackageLockJsonSync
119
119
  };
120
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIE5QTSBwYWNrYWdlLmpzb24uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBQYWNrYWdlSnNvbixcbiAgUHJvbWlzYWJsZVxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IEVkaXRKc29uT3B0aW9ucyB9IGZyb20gJy4vanNvbi50cyc7XG5cbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7XG4gIGVkaXRKc29uLFxuICBlZGl0SnNvblN5bmMsXG4gIHJlYWRKc29uLFxuICByZWFkSnNvblN5bmMsXG4gIHdyaXRlSnNvbixcbiAgd3JpdGVKc29uU3luY1xufSBmcm9tICcuL2pzb24udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVBhdGhGcm9tUm9vdCB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRQYWNrYWdlSnNvbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdFBhY2thZ2VKc29uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYHRydWVgLCBza2lwcyBlZGl0aW5nIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcElmTWlzc2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSB0eXBlIG9mIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH07XG5cbi8qKlxuICogQSB0eXBlIG9mIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZUxvY2tKc29uIGV4dGVuZHMgUGFydGlhbDxQYWNrYWdlSnNvbj4ge1xuICAvKipcbiAgICogUGFja2FnZXMgaW4gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZS5cbiAgICovXG4gIHBhY2thZ2VzPzogUmVjb3JkPHN0cmluZywgUGFja2FnZUpzb24+O1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiBlZGl0ZWQgYW5kIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0TnBtU2hyaW5rV3JhcEpzb24oXG4gIGVkaXRGbjogKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUpzb25PcHRpb25zID0ge31cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IGVkaXRKc29uPFBhY2thZ2VKc29uPihnZXROcG1TaHJpbmtXcmFwSnNvblBhdGgoY3dkKSwgZWRpdEZuLCBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RWRpdEpzb25PcHRpb25zPih7IHNob3VsZFNraXBJZk1pc3NpbmcgfSkpO1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIHVzaW5nIHRoZSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGVkaXRpbmcuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdFBhY2thZ2VKc29uKFxuICBlZGl0Rm46IChwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pID0+IFByb21pc2FibGU8dm9pZD4sXG4gIG9wdGlvbnM6IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248UGFja2FnZUpzb24+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBlZGl0Rm4sIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvbk9wdGlvbnM+KHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRQYWNrYWdlSnNvblN5bmMoXG4gIGVkaXRGbjogKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbikgPT4gdm9pZCxcbiAgb3B0aW9uczogRWRpdFBhY2thZ2VKc29uT3B0aW9ucyA9IHt9XG4pOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBlZGl0SnNvblN5bmM8UGFja2FnZUpzb24+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBlZGl0Rm4sIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvbk9wdGlvbnM+KHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRQYWNrYWdlTG9ja0pzb24oXG4gIGVkaXRGbjogKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUpzb25PcHRpb25zID0ge31cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IGVkaXRKc29uPFBhY2thZ2VKc29uPihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIGVkaXRGbiwgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEVkaXRKc29uT3B0aW9ucz4oeyBzaG91bGRTa2lwSWZNaXNzaW5nIH0pKTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIHVzaW5nIHRoZSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIGBQYWNrYWdlTG9ja0pzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdFBhY2thZ2VMb2NrSnNvblN5bmMoXG4gIGVkaXRGbjogKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKSA9PiB2b2lkLFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUpzb25PcHRpb25zID0ge31cbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGVkaXRKc29uU3luYzxQYWNrYWdlTG9ja0pzb24+KGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgZWRpdEZuLCBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RWRpdEpzb25PcHRpb25zPih7IHNob3VsZFNraXBJZk1pc3NpbmcgfSkpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwYXRoIHRvIHRoZSBgbnBtLXNocmlua3dyYXAuanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgbnBtLXNocmlua3dyYXAuanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgbnBtLXNocmlua3dyYXAuanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5wbVNocmlua1dyYXBKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5OcG1TaHJpbmt3cmFwSnNvbiwgY3dkKSwgJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIG5wbS1zaHJpbmt3cmFwLmpzb24gcGF0aCcpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwYXRoIHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgcGF0aCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QYWNrYWdlSnNvbiwgY3dkKSwgJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIHBhY2thZ2UuanNvbiBwYXRoJyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHBhdGggdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgcGF0aCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QYWNrYWdlTG9ja0pzb24sIGN3ZCksICdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBwYWNrYWdlLWxvY2suanNvbiBwYXRoJyk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBmcm9tIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvbihjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPFBhY2thZ2VKc29uPiB7XG4gIHJldHVybiBhd2FpdCByZWFkSnNvbjxQYWNrYWdlSnNvbj4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCkpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvblN5bmMoY3dkPzogc3RyaW5nKTogUGFja2FnZUpzb24ge1xuICByZXR1cm4gcmVhZEpzb25TeW5jPFBhY2thZ2VKc29uPihnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBmcm9tIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGZyb20gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUGFja2FnZUxvY2tKc29uKGN3ZD86IHN0cmluZyk6IFByb21pc2U8UGFja2FnZUxvY2tKc29uPiB7XG4gIHJldHVybiBhd2FpdCByZWFkSnNvbjxQYWNrYWdlTG9ja0pzb24+KGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBmcm9tIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGZyb20gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkUGFja2FnZUxvY2tKc29uU3luYyhjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTG9ja0pzb24ge1xuICByZXR1cm4gcmVhZEpzb25TeW5jPFBhY2thZ2VMb2NrSnNvbj4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290LlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlSnNvbiAtIFRoZSBgUGFja2FnZUpzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVBhY2thZ2VKc29uKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbiwgY3dkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHdyaXRlSnNvbihnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSwgcGFja2FnZUpzb24pO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYFBhY2thZ2VKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VKc29uIC0gVGhlIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHdyaXRlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVBhY2thZ2VKc29uU3luYyhwYWNrYWdlSnNvbjogUGFja2FnZUpzb24sIGN3ZD86IHN0cmluZyk6IHZvaWQge1xuICB3cml0ZUpzb25TeW5jKGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBwYWNrYWdlSnNvbik7XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBwcm92aWRlZCBgUGFja2FnZUpzb25gIG9iamVjdCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290LlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlTG9ja0pzb24gLSBUaGUgYFBhY2thZ2VMb2NrSnNvbmAgb2JqZWN0IHRvIHdyaXRlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQYWNrYWdlTG9ja0pzb24ocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24sIGN3ZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCB3cml0ZUpzb24oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpLCBwYWNrYWdlTG9ja0pzb24pO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYFBhY2thZ2VMb2NrSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VMb2NrSnNvbiAtIFRoZSBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QgdG8gd3JpdGUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVQYWNrYWdlTG9ja0pzb25TeW5jKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uLCBjd2Q/OiBzdHJpbmcpOiB2b2lkIHtcbiAgd3JpdGVKc29uU3luYyhnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIHBhY2thZ2VMb2NrSnNvbik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxTQUFTLG1DQUFtQztBQUM1QyxTQUFTLCtCQUErQjtBQUN4QyxTQUFTLHlCQUF5QjtBQUNsQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDJCQUEyQjtBQXVDcEMsZUFBc0Isc0JBQ3BCLFFBQ0EsVUFBa0MsQ0FBQyxHQUNwQjtBQUNmLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sU0FB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
120
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgTlBNIHBhY2thZ2UuanNvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhY2thZ2VKc29uLFxuICBQcm9taXNhYmxlXG59IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB0eXBlIHsgRWRpdEpzb25PcHRpb25zIH0gZnJvbSAnLi9qc29uLnRzJztcblxuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHtcbiAgZWRpdEpzb24sXG4gIGVkaXRKc29uU3luYyxcbiAgcmVhZEpzb24sXG4gIHJlYWRKc29uU3luYyxcbiAgd3JpdGVKc29uLFxuICB3cml0ZUpzb25TeW5jXG59IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZWRpdFBhY2thZ2VKc29ufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0UGFja2FnZUpzb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHNraXBzIGVkaXRpbmcgaWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwSWZNaXNzaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIHR5cGUgb2YgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIHsgUGFja2FnZUpzb24gfTtcblxuLyoqXG4gKiBBIHR5cGUgb2YgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlTG9ja0pzb24gZXh0ZW5kcyBQYXJ0aWFsPFBhY2thZ2VKc29uPiB7XG4gIC8qKlxuICAgKiBQYWNrYWdlcyBpbiB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICAgKi9cbiAgcGFja2FnZXM/OiBSZWNvcmQ8c3RyaW5nLCBQYWNrYWdlSnNvbj47XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXROcG1TaHJpbmtXcmFwSnNvbihcbiAgZWRpdEZuOiAocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24pID0+IFByb21pc2FibGU8dm9pZD4sXG4gIG9wdGlvbnM6IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248UGFja2FnZUpzb24+KGdldE5wbVNocmlua1dyYXBKc29uUGF0aChjd2QpLCBlZGl0Rm4sIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvbk9wdGlvbnM+KHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiBlZGl0ZWQgYW5kIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0UGFja2FnZUpzb24oXG4gIGVkaXRGbjogKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbikgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgb3B0aW9uczogRWRpdFBhY2thZ2VKc29uT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCBlZGl0SnNvbjxQYWNrYWdlSnNvbj4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIGVkaXRGbiwgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEVkaXRKc29uT3B0aW9ucz4oeyBzaG91bGRTa2lwSWZNaXNzaW5nIH0pKTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdFBhY2thZ2VKc29uU3luYyhcbiAgZWRpdEZuOiAocGFja2FnZUpzb246IFBhY2thZ2VKc29uKSA9PiB2b2lkLFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUpzb25PcHRpb25zID0ge31cbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGVkaXRKc29uU3luYzxQYWNrYWdlSnNvbj4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIGVkaXRGbiwgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEVkaXRKc29uT3B0aW9ucz4oeyBzaG91bGRTa2lwSWZNaXNzaW5nIH0pKTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIHVzaW5nIHRoZSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGVkaXRpbmcuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdFBhY2thZ2VMb2NrSnNvbihcbiAgZWRpdEZuOiAocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24pID0+IFByb21pc2FibGU8dm9pZD4sXG4gIG9wdGlvbnM6IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248UGFja2FnZUpzb24+KGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgZWRpdEZuLCBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RWRpdEpzb25PcHRpb25zPih7IHNob3VsZFNraXBJZk1pc3NpbmcgfSkpO1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYFBhY2thZ2VMb2NrSnNvbmAgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGVkaXRpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlZGl0UGFja2FnZUxvY2tKc29uU3luYyhcbiAgZWRpdEZuOiAocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24pID0+IHZvaWQsXG4gIG9wdGlvbnM6IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnMgPSB7fVxuKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgZWRpdEpzb25TeW5jPFBhY2thZ2VMb2NrSnNvbj4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpLCBlZGl0Rm4sIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvbk9wdGlvbnM+KHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHBhdGggdG8gdGhlIGBucG0tc2hyaW5rd3JhcC5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBucG0tc2hyaW5rd3JhcC5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIHBhdGggdG8gdGhlIGBucG0tc2hyaW5rd3JhcC5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TnBtU2hyaW5rV3JhcEpzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShyZXNvbHZlUGF0aEZyb21Sb290KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk5wbVNocmlua3dyYXBKc29uLCBjd2QpLCAnQ291bGQgbm90IGRldGVybWluZSB0aGUgbnBtLXNocmlua3dyYXAuanNvbiBwYXRoJyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHBhdGggdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFja2FnZUpzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShyZXNvbHZlUGF0aEZyb21Sb290KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlBhY2thZ2VKc29uLCBjd2QpLCAnQ291bGQgbm90IGRldGVybWluZSB0aGUgcGFja2FnZS5qc29uIHBhdGgnKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgcGF0aCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShyZXNvbHZlUGF0aEZyb21Sb290KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlBhY2thZ2VMb2NrSnNvbiwgY3dkKSwgJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIHBhY2thZ2UtbG9jay5qc29uIHBhdGgnKTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSBmcm9tIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGZyb20gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFBhY2thZ2VKc29uKGN3ZD86IHN0cmluZyk6IFByb21pc2U8UGFja2FnZUpzb24+IHtcbiAgcmV0dXJuIGF3YWl0IHJlYWRKc29uPFBhY2thZ2VKc29uPihnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBmcm9tIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFBhY2thZ2VKc29uU3luYyhjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlSnNvbiB7XG4gIHJldHVybiByZWFkSnNvblN5bmM8UGFja2FnZUpzb24+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlTG9ja0pzb24oY3dkPzogc3RyaW5nKTogUHJvbWlzZTxQYWNrYWdlTG9ja0pzb24+IHtcbiAgcmV0dXJuIGF3YWl0IHJlYWRKc29uPFBhY2thZ2VMb2NrSnNvbj4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGBQYWNrYWdlTG9ja0pzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQYWNrYWdlTG9ja0pzb25TeW5jKGN3ZD86IHN0cmluZyk6IFBhY2thZ2VMb2NrSnNvbiB7XG4gIHJldHVybiByZWFkSnNvblN5bmM8UGFja2FnZUxvY2tKc29uPihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCkpO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYFBhY2thZ2VKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VKc29uIC0gVGhlIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHdyaXRlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlUGFja2FnZUpzb24ocGFja2FnZUpzb246IFBhY2thZ2VKc29uLCBjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgd3JpdGVKc29uKGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBwYWNrYWdlSnNvbik7XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBwcm92aWRlZCBgUGFja2FnZUpzb25gIG9iamVjdCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUpzb24gLSBUaGUgYFBhY2thZ2VKc29uYCBvYmplY3QgdG8gd3JpdGUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlUGFja2FnZUpzb25TeW5jKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbiwgY3dkPzogc3RyaW5nKTogdm9pZCB7XG4gIHdyaXRlSnNvblN5bmMoZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIHBhY2thZ2VKc29uKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VMb2NrSnNvbiAtIFRoZSBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QgdG8gd3JpdGUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVBhY2thZ2VMb2NrSnNvbihwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbiwgY3dkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHdyaXRlSnNvbihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIHBhY2thZ2VMb2NrSnNvbik7XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBwcm92aWRlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUxvY2tKc29uIC0gVGhlIGBQYWNrYWdlTG9ja0pzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVBhY2thZ2VMb2NrSnNvblN5bmMocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24sIGN3ZD86IHN0cmluZyk6IHZvaWQge1xuICB3cml0ZUpzb25TeW5jKGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgcGFja2FnZUxvY2tKc29uKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLFNBQVMsbUNBQW1DO0FBQzVDLFNBQVMsK0JBQStCO0FBQ3hDLFNBQVMseUJBQXlCO0FBQ2xDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsMkJBQTJCO0FBdUNwQyxlQUFzQixzQkFDcEIsUUFDQSxVQUFrQyxDQUFDLEdBQ3BCO0FBQ2YsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSxTQUFzQix5QkFBeUIsR0FBRyxHQUFHLFFBQVEsNEJBQTZDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUMxSTtBQVNBLGVBQXNCLGdCQUNwQixRQUNBLFVBQWtDLENBQUMsR0FDcEI7QUFDZixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixRQUFNLFNBQXNCLG1CQUFtQixHQUFHLEdBQUcsUUFBUSw0QkFBNkMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3BJO0FBUU8sU0FBUyxvQkFDZCxRQUNBLFVBQWtDLENBQUMsR0FDN0I7QUFDTixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixlQUEwQixtQkFBbUIsR0FBRyxHQUFHLFFBQVEsNEJBQTZDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUNsSTtBQVNBLGVBQXNCLG9CQUNwQixRQUNBLFVBQWtDLENBQUMsR0FDcEI7QUFDZixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixRQUFNLFNBQXNCLHVCQUF1QixHQUFHLEdBQUcsUUFBUSw0QkFBNkMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3hJO0FBUU8sU0FBUyx3QkFDZCxRQUNBLFVBQWtDLENBQUMsR0FDN0I7QUFDTixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixlQUE4Qix1QkFBdUIsR0FBRyxHQUFHLFFBQVEsNEJBQTZDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUMxSTtBQVFPLFNBQVMseUJBQXlCLEtBQXNCO0FBQzdELFNBQU8sa0JBQWtCLG9CQUFvQix3QkFBd0IsbUJBQW1CLEdBQUcsR0FBRyxrREFBa0Q7QUFDbEo7QUFRTyxTQUFTLG1CQUFtQixLQUFzQjtBQUN2RCxTQUFPLGtCQUFrQixvQkFBb0Isd0JBQXdCLGFBQWEsR0FBRyxHQUFHLDJDQUEyQztBQUNySTtBQVFPLFNBQVMsdUJBQXVCLEtBQXNCO0FBQzNELFNBQU8sa0JBQWtCLG9CQUFvQix3QkFBd0IsaUJBQWlCLEdBQUcsR0FBRyxnREFBZ0Q7QUFDOUk7QUFRQSxlQUFzQixnQkFBZ0IsS0FBb0M7QUFDeEUsU0FBTyxNQUFNLFNBQXNCLG1CQUFtQixHQUFHLENBQUM7QUFDNUQ7QUFRTyxTQUFTLG9CQUFvQixLQUEyQjtBQUM3RCxTQUFPLGFBQTBCLG1CQUFtQixHQUFHLENBQUM7QUFDMUQ7QUFRQSxlQUFzQixvQkFBb0IsS0FBd0M7QUFDaEYsU0FBTyxNQUFNLFNBQTBCLHVCQUF1QixHQUFHLENBQUM7QUFDcEU7QUFRTyxTQUFTLHdCQUF3QixLQUErQjtBQUNyRSxTQUFPLGFBQThCLHVCQUF1QixHQUFHLENBQUM7QUFDbEU7QUFTQSxlQUFzQixpQkFBaUIsYUFBMEIsS0FBNkI7QUFDNUYsUUFBTSxVQUFVLG1CQUFtQixHQUFHLEdBQUcsV0FBVztBQUN0RDtBQVFPLFNBQVMscUJBQXFCLGFBQTBCLEtBQW9CO0FBQ2pGLGdCQUFjLG1CQUFtQixHQUFHLEdBQUcsV0FBVztBQUNwRDtBQVNBLGVBQXNCLHFCQUFxQixpQkFBa0MsS0FBNkI7QUFDeEcsUUFBTSxVQUFVLHVCQUF1QixHQUFHLEdBQUcsZUFBZTtBQUM5RDtBQVFPLFNBQVMseUJBQXlCLGlCQUFrQyxLQUFvQjtBQUM3RixnQkFBYyx1QkFBdUIsR0FBRyxHQUFHLGVBQWU7QUFDNUQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * This module defines an enumeration of common file paths and patterns used in the Obsidian development utilities repository.
5
5
  * These paths are used throughout the build process and other utilities, ensuring consistency and reducing the likelihood
@@ -71,4 +71,4 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
71
71
  export {
72
72
  ObsidianDevUtilsRepoPaths
73
73
  };
74
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIG9mIGNvbW1vbiBmaWxlIHBhdGhzIGFuZCBwYXR0ZXJucyB1c2VkIGluIHRoZSBPYnNpZGlhbiBkZXZlbG9wbWVudCB1dGlsaXRpZXMgcmVwb3NpdG9yeS5cbiAqIFRoZXNlIHBhdGhzIGFyZSB1c2VkIHRocm91Z2hvdXQgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIG90aGVyIHV0aWxpdGllcywgZW5zdXJpbmcgY29uc2lzdGVuY3kgYW5kIHJlZHVjaW5nIHRoZSBsaWtlbGlob29kXG4gKiBvZiBlcnJvcnMgZHVlIHRvIGhhcmRjb2RlZCBzdHJpbmdzLlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIHtcbiAgLyoqIEFueSBmaWxlIG9yIGZvbGRlci4gKi9cbiAgQW55ID0gJyonLFxuXG4gIC8qKiBDb21tb25KUyBmaWxlLiAqL1xuICBBbnlDanMgPSAnKi5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIEFueURjdHMgPSAnKi5kLmN0cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIEFueURtdHMgPSAnKi5kLm10cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RHRzID0gJyouZC50cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEFueU1qcyA9ICcqLm1qcycsXG5cbiAgLyoqIEFueSBwYXRoIHJlY3Vyc2l2ZWx5LiAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKiogQW55IFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqIENvbW1vbkpTIGZvbGRlci4gKi9cbiAgQ2pzID0gJ2NqcycsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBDanNFeHRlbnNpb24gPSAnLmNqcycsXG5cbiAgLyoqIEN1cnJlbnQgZm9sZGVyLiAqL1xuICBDdXJyZW50Rm9sZGVyID0gJy4nLFxuXG4gIC8qKiBEYXRhdmlldyB0eXBlcy4gKi9cbiAgRGF0YXZpZXdUeXBlcyA9ICdzcmMvb2JzaWRpYW4vQHR5cGVzL2RhdGF2aWV3LyoqJyxcblxuICAvKiogQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGN0c0V4dGVuc2lvbiA9ICcuZC5jdHMnLFxuXG4gIC8qKiBEaXN0cmlidXRpb24gZm9sZGVyLiAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKiBBIHBhdGggdG8gdGhlIGBsaWJgIGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIuICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKiBUcmFuc3BpbGVkIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERqc0V4dGVuc2lvbiA9ICcuZC5qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEbXRzRXh0ZW5zaW9uID0gJy5kLm10cycsXG5cbiAgLyoqIERwcmludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEdHNFeHRlbnNpb24gPSAnLmQudHMnLFxuXG4gIC8qKiBFU00gVHlwZVNjcmlwdCBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBFc2xpbnRDb25maWdNdHMgPSAnZXNsaW50LmNvbmZpZy5tdHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmb2xkZXIuICovXG4gIEVzbSA9ICdlc20nLFxuXG4gIC8qKiBDb21tb25KUyBKYXZhU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4Q2pzID0gJ2luZGV4LmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBpbmRleCBmaWxlLiAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKiBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuICovXG4gIEluZGV4RG10cyA9ICdpbmRleC5kLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4TWpzID0gJ2luZGV4Lm1qcycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIEpzRXh0ZW5zaW9uID0gJy5qcycsXG5cbiAgLyoqIExpYnJhcnkgQ29tbW9uSlMgZmlsZS4gKi9cbiAgTGlicmFyeUNqcyA9ICdsaWJyYXJ5LmNqcycsXG5cbiAgLyoqIExpYnJhcnkgRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgTGlicmFyeU1qcyA9ICdsaWJyYXJ5Lm1qcycsXG5cbiAgLyoqIEVTTSBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdNanMgPSAnLm1hcmtkb3dubGludC1jbGkyLm1qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ010cyA9ICcubWFya2Rvd25saW50LWNsaTIubXRzJyxcblxuICAvKiogTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBzY2hlbWEgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRUeXBlc01hcmtkb3dubGludENsaTJDb25maWdTY2hlbWFEdHMgPSAnc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL21hcmtkb3dubGludC10eXBlcy9AdHlwZXMvbWFya2Rvd25saW50LWNsaTItY29uZmlnLXNjaGVtYS5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKiogTm9kZSBtb2R1bGVzIGZvbGRlci4gKi9cbiAgTm9kZU1vZHVsZXMgPSAnbm9kZV9tb2R1bGVzJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFJvb3QgZm9sZGVyLiAqL1xuICBSb290Rm9sZGVyID0gJy8nLFxuXG4gIC8qKiBTY3JpcHRzIGZvbGRlci4gKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKiogU2NyaXB0VXRpbHMgZm9sZGVyLiAqL1xuICBTY3JpcHRVdGlscyA9ICdzY3JpcHQtdXRpbHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3RhdGljIGZvbGRlci4gKi9cbiAgU3RhdGljID0gJ3N0YXRpYycsXG5cbiAgLyoqIFN0eWxlcyBmb2xkZXIuICovXG4gIFN0eWxlcyA9ICdzdHlsZXMnLFxuXG4gIC8qKiBTdHlsZXMgQ1NTIGZpbGUuICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKiogVGVzdCBoZWxwZXJzIGZvbGRlci4gKi9cbiAgVGVzdEhlbHBlcnMgPSAndGVzdC1oZWxwZXJzJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgVHNFeHRlbnNpb24gPSAnLnRzJyxcblxuICAvKiogVHlwZXMgZm9sZGVyLiAqL1xuICBUeXBlcyA9ICdAdHlwZXMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXTyxJQUFLLDRCQUFMLGtCQUFLQSwrQkFBTDtBQUVMLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxXQUFRO0FBR1IsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsVUFBTztBQUdQLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSwyQkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEsMkJBQUEsc0RBQW1EO0FBR25ELEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGdCQUFhO0FBR2IsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLFdBQVE7QUF6SUUsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIl0KfQo=
74
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gKi9cbiAgRGlzdExpYiA9ICdkaXN0L2xpYicsXG5cbiAgLyoqIFRyYW5zcGlsZWQgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIENvbW1vbkpTIEphdmFTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKiogQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuICovXG4gIEluZGV4RGN0cyA9ICdpbmRleC5kLmN0cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEbXRzID0gJ2luZGV4LmQubXRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKiogVHlwZVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleFRzID0gJ2luZGV4LnRzJyxcblxuICAvKiogSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgSnNFeHRlbnNpb24gPSAnLmpzJyxcblxuICAvKiogTGlicmFyeSBDb21tb25KUyBmaWxlLiAqL1xuICBMaWJyYXJ5Q2pzID0gJ2xpYnJhcnkuY2pzJyxcblxuICAvKiogTGlicmFyeSBFU00gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBMaWJyYXJ5TWpzID0gJ2xpYnJhcnkubWpzJyxcblxuICAvKiogRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTXRzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tdHMnLFxuXG4gIC8qKiBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIHNjaGVtYSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludFR5cGVzTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYUR0cyA9ICdzcmMvc2NyaXB0LXV0aWxzL2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgTWpzRXh0ZW5zaW9uID0gJy5tanMnLFxuXG4gIC8qKiBOb2RlIG1vZHVsZXMgZm9sZGVyLiAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKiBQYWNrYWdlIEpTT04gZmlsZS4gKi9cbiAgUGFja2FnZUpzb24gPSAncGFja2FnZS5qc29uJyxcblxuICAvKiogUm9vdCBmb2xkZXIuICovXG4gIFJvb3RGb2xkZXIgPSAnLycsXG5cbiAgLyoqIFNjcmlwdHMgZm9sZGVyLiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBTY3JpcHRVdGlscyBmb2xkZXIuICovXG4gIFNjcmlwdFV0aWxzID0gJ3NjcmlwdC11dGlscycsXG5cbiAgLyoqIFNvdXJjZSBmb2xkZXIuICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKiBTdGF0aWMgZm9sZGVyLiAqL1xuICBTdGF0aWMgPSAnc3RhdGljJyxcblxuICAvKiogU3R5bGVzIGZvbGRlci4gKi9cbiAgU3R5bGVzID0gJ3N0eWxlcycsXG5cbiAgLyoqIFN0eWxlcyBDU1MgZmlsZS4gKi9cbiAgU3R5bGVzQ3NzID0gJ3N0eWxlcy5jc3MnLFxuXG4gIC8qKiBUZXN0IGhlbHBlcnMgZm9sZGVyLiAqL1xuICBUZXN0SGVscGVycyA9ICd0ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBUc0V4dGVuc2lvbiA9ICcudHMnLFxuXG4gIC8qKiBUeXBlcyBmb2xkZXIuICovXG4gIFR5cGVzID0gJ0B0eXBlcydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdPLElBQUssNEJBQUwsa0JBQUtBLCtCQUFMO0FBRUwsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFdBQVE7QUFHUixFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxVQUFPO0FBR1AsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLGdCQUFhO0FBR2IsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGdCQUFhO0FBR2IsRUFBQUEsMkJBQUEsK0JBQTRCO0FBRzVCLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSwyQkFBQSxzREFBbUQ7QUFHbkQsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsV0FBUTtBQXpJRSxTQUFBQTtBQUFBLEdBQUE7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMiXQp9Cg==
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Contains utility functions for executing commands from the root folder of a project,
5
5
  * resolving paths relative to the root.
@@ -77,4 +77,4 @@ export {
77
77
  resolvePathFromRootSafe,
78
78
  toRelativeFromRoot
79
79
  };
80
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9yb290LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBleGVjdXRpbmcgY29tbWFuZHMgZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgYSBwcm9qZWN0LFxuICogcmVzb2x2aW5nIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSByb290LlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcblxuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kUGFydCxcbiAgRXhlY0RldGFpbGVkT3B0aW9ucyxcbiAgRXhlY09wdGlvbixcbiAgRXhlY1Jlc3VsdCxcbiAgRXhlY1NpbXBsZU9wdGlvbnNcbn0gZnJvbSAnLi9leGVjLnRzJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJy4vZXhlYy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zPzogRXhlY1NpbXBsZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCBFeGVjUmVzdWx0IG9iamVjdC5cbiAqICAgICAgICAgIFRoZSBFeGVjUmVzdWx0IG9iamVjdCBjb250YWlucyB0aGUgZXhpdCBjb2RlLCBleGl0IHNpZ25hbCwgc3RkZXJyLCBhbmQgc3Rkb3V0LlxuICogQHRocm93cyBJZiB0aGUgY29tbWFuZCBmYWlscyB3aXRoIGEgbm9uLXplcm8gZXhpdCBjb2RlIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgZmFsc2VgLlxuICogICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSBpbmNsdWRlcyB0aGUgZXhpdCBjb2RlIGFuZCBzdGRlcnIuXG4gKiAgICAgICAgIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgaWdub3JlRXhpdENvZGUgaXMgYHRydWVgLFxuICogICAgICAgICB0aGUgZXJyb3IgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgc3Rkb3V0IGFuZCBzdGRlcnIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjRnJvbVJvb3QoY29tbWFuZDogQ29tbWFuZFBhcnRbXSB8IHN0cmluZywgb3B0aW9uczogRXhlY0RldGFpbGVkT3B0aW9ucyk6IFByb21pc2U8RXhlY1Jlc3VsdD47XG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIG9yIGFuIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjT3B0aW9uID0ge30pOiBQcm9taXNlPEV4ZWNSZXN1bHQgfCBzdHJpbmc+IHtcbiAgbGV0IHJvb3QgPSBnZXRSb290Rm9sZGVyKG9wdGlvbnMuY3dkKTtcblxuICBpZiAoIXJvb3QpIHtcbiAgICBpZiAob3B0aW9ucy5zaG91bGRGYWlsSWZDYWxsZWRGcm9tT3V0c2lkZVJvb3QgPz8gdHJ1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCByb290IGZvbGRlcicpO1xuICAgIH1cblxuICAgIHJvb3QgPSBvcHRpb25zLmN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2hvdWxkSW5jbHVkZURldGFpbHMpIHtcbiAgICByZXR1cm4gZXhlYyhjb21tYW5kLCB7IC4uLm9wdGlvbnMsIGN3ZDogcm9vdCwgc2hvdWxkSW5jbHVkZURldGFpbHM6IHRydWUgfSk7XG4gIH1cblxuICByZXR1cm4gZXhlYyhjb21tYW5kLCB7IC4uLm9wdGlvbnMsIGN3ZDogcm9vdCwgc2hvdWxkSW5jbHVkZURldGFpbHM6IGZhbHNlIH0pO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBwYXRoIHRvIHRoZSByb290IGZvbGRlci5cbiAqIEB0aHJvd3MgSWYgdGhlIHJvb3QgZm9sZGVyIGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3RGb2xkZXIoY3dkPzogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCBjdXJyZW50Rm9sZGVyID0gdG9Qb3NpeFBhdGgoY3dkID8/IHByb2Nlc3MuY3dkKCkpO1xuICB3aGlsZSAoY3VycmVudEZvbGRlciAhPT0gT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5DdXJyZW50Rm9sZGVyIGFzIHN0cmluZyAmJiBjdXJyZW50Rm9sZGVyICE9PSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlJvb3RGb2xkZXIgYXMgc3RyaW5nKSB7XG4gICAgaWYgKGV4aXN0c1N5bmMoam9pbihjdXJyZW50Rm9sZGVyLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlBhY2thZ2VKc29uKSkpIHtcbiAgICAgIHJldHVybiB0b1Bvc2l4UGF0aChjdXJyZW50Rm9sZGVyKTtcbiAgICB9XG4gICAgY3VycmVudEZvbGRlciA9IGRpcm5hbWUoY3VycmVudEZvbGRlcik7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gcmVzb2x2ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgYWJzb2x1dGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXRoRnJvbVJvb3QocGF0aDogc3RyaW5nLCBjd2Q/OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3Qgcm9vdEZvbGRlciA9IGdldFJvb3RGb2xkZXIoY3dkKTtcbiAgaWYgKCFyb290Rm9sZGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gcmVzb2x2ZShyb290Rm9sZGVyLCBwYXRoKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyLCByZXR1cm5pbmcgdGhlIHJlc29sdmVkIHBhdGggb3IgdGhlIG9yaWdpbmFsIHBhdGggaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byByZXNvbHZlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIG9yIHRoZSBvcmlnaW5hbCBwYXRoIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUocGF0aDogc3RyaW5nLCBjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZVBhdGhGcm9tUm9vdChwYXRoLCBjd2QpID8/IHBhdGg7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYWJzb2x1dGUgcGF0aCB0byBhIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byBjb252ZXJ0LlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHJvb3QgZm9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9SZWxhdGl2ZUZyb21Sb290KHBhdGg6IHN0cmluZywgY3dkPzogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHJvb3RGb2xkZXIgPSBnZXRSb290Rm9sZGVyKGN3ZCk7XG4gIGlmICghcm9vdEZvbGRlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcGF0aCA9IHRvUG9zaXhQYXRoKHBhdGgpO1xuICByZXR1cm4gcmVsYXRpdmUocm9vdEZvbGRlciwgcGF0aCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxTQUFTLGtCQUFrQjtBQVUzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsWUFBWTtBQUNyQixTQUFTLGlDQUFpQztBQXVDbkMsU0FBUyxhQUFhLFNBQWlDLFVBQXNCLENBQUMsR0FBaUM7QUFDcEgsTUFBSSxPQUFPLGNBQWMsUUFBUSxHQUFHO0FBRXBDLE1BQUksQ0FBQyxNQUFNO0FBQ1QsUUFBSSxRQUFRLHFDQUFxQyxNQUFNO0FBQ3JELFlBQU0sSUFBSSxNQUFNLDRCQUE0QjtBQUFBLElBQzlDO0FBRUEsV0FBTyxRQUFRLE9BQU8sUUFBUSxJQUFJO0FBQUEsRUFDcEM7QUFFQSxNQUFJLFFBQVEsc0JBQXNCO0FBQ2hDLFdBQU8sS0FBSyxTQUFTLEVBQUUsR0FBRyxTQUFTLEtBQUssTUFBTSxzQkFBc0IsS0FBSyxDQUFDO0FBQUEsRUFDNUU7QUFFQSxTQUFPLEtBQUssU0FBUyxFQUFFLEdBQUcsU0FBUyxLQUFLLE1BQU0sc0JBQXNCLE1BQU0sQ0FBQztBQUM3RTtBQVNPLFNBQVMsY0FBYyxLQUE2QjtBQUN6RCxNQUFJLGdCQUFnQixZQUFZLE9BQU8sUUFBUSxJQUFJLENBQUM7QUFDcEQsU0FBTyxrQkFBa0IsMEJBQTBCLGlCQUEyQixrQkFBa0IsMEJBQTBCLFlBQXNCO0FBQzlJLFFBQUksV0FBVyxLQUFLLGVBQWUsMEJBQTBCLFdBQVcsQ0FBQyxHQUFHO0FBQzFFLGFBQU8sWUFBWSxhQUFhO0FBQUEsSUFDbEM7QUFDQSxvQkFBZ0IsUUFBUSxhQUFhO0FBQUEsRUFDdkM7QUFFQSxTQUFPO0FBQ1Q7QUFTTyxTQUFTLG9CQUFvQixNQUFjLEtBQTZCO0FBQzdFLFFBQU0sYUFBYSxjQUFjLEdBQUc7QUFDcEMsTUFBSSxDQUFDLFlBQVk7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sUUFBUSxZQUFZLElBQUk7QUFDakM7QUFTTyxTQUFTLHdCQUF3QixNQUFjLEtBQXNCO0FBQzFFLFNBQU8sb0JBQW9CLE1BQU0sR0FBRyxLQUFLO0FBQzNDO0FBU08sU0FBUyxtQkFBbUIsTUFBYyxLQUE2QjtBQUM1RSxRQUFNLGFBQWEsY0FBYyxHQUFHO0FBQ3BDLE1BQUksQ0FBQyxZQUFZO0FBQ2YsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLFlBQVksSUFBSTtBQUN2QixTQUFPLFNBQVMsWUFBWSxJQUFJO0FBQ2xDOyIsCiAgIm5hbWVzIjogW10KfQo=
80
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9yb290LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGV4ZWN1dGluZyBjb21tYW5kcyBmcm9tIHRoZSByb290IGZvbGRlciBvZiBhIHByb2plY3QsXG4gKiByZXNvbHZpbmcgcGF0aHMgcmVsYXRpdmUgdG8gdGhlIHJvb3QuXG4gKi9cblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmRQYXJ0LFxuICBFeGVjRGV0YWlsZWRPcHRpb25zLFxuICBFeGVjT3B0aW9uLFxuICBFeGVjUmVzdWx0LFxuICBFeGVjU2ltcGxlT3B0aW9uc1xufSBmcm9tICcuL2V4ZWMudHMnO1xuXG5pbXBvcnQge1xuICBkaXJuYW1lLFxuICBqb2luLFxuICByZWxhdGl2ZSxcbiAgcmVzb2x2ZSxcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAnLi9leGVjLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcblxuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQgZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IENvbW1hbmRQYXJ0W10gfCBzdHJpbmcsIG9wdGlvbnM/OiBFeGVjU2ltcGxlT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjRGV0YWlsZWRPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0Pjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgb3IgYW4gRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IENvbW1hbmRQYXJ0W10gfCBzdHJpbmcsIG9wdGlvbnM6IEV4ZWNPcHRpb24gPSB7fSk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBsZXQgcm9vdCA9IGdldFJvb3RGb2xkZXIob3B0aW9ucy5jd2QpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIGlmIChvcHRpb25zLnNob3VsZEZhaWxJZkNhbGxlZEZyb21PdXRzaWRlUm9vdCA/PyB0cnVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZm9sZGVyJyk7XG4gICAgfVxuXG4gICAgcm9vdCA9IG9wdGlvbnMuY3dkID8/IHByb2Nlc3MuY3dkKCk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5zaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgIHJldHVybiBleGVjKGNvbW1hbmQsIHsgLi4ub3B0aW9ucywgY3dkOiByb290LCBzaG91bGRJbmNsdWRlRGV0YWlsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJldHVybiBleGVjKGNvbW1hbmQsIHsgLi4ub3B0aW9ucywgY3dkOiByb290LCBzaG91bGRJbmNsdWRlRGV0YWlsczogZmFsc2UgfSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHBhdGggdG8gdGhlIHJvb3QgZm9sZGVyLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBmb2xkZXIgY2Fubm90IGJlIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdEZvbGRlcihjd2Q/OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IGN1cnJlbnRGb2xkZXIgPSB0b1Bvc2l4UGF0aChjd2QgPz8gcHJvY2Vzcy5jd2QoKSk7XG4gIHdoaWxlIChjdXJyZW50Rm9sZGVyICE9PSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nICYmIGN1cnJlbnRGb2xkZXIgIT09IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUm9vdEZvbGRlciBhcyBzdHJpbmcpIHtcbiAgICBpZiAoZXhpc3RzU3luYyhqb2luKGN1cnJlbnRGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUGFja2FnZUpzb24pKSkge1xuICAgICAgcmV0dXJuIHRvUG9zaXhQYXRoKGN1cnJlbnRGb2xkZXIpO1xuICAgIH1cbiAgICBjdXJyZW50Rm9sZGVyID0gZGlybmFtZShjdXJyZW50Rm9sZGVyKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byByZXNvbHZlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhYnNvbHV0ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhdGhGcm9tUm9vdChwYXRoOiBzdHJpbmcsIGN3ZD86IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcihjd2QpO1xuICBpZiAoIXJvb3RGb2xkZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiByZXNvbHZlKHJvb3RGb2xkZXIsIHBhdGgpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIsIHJldHVybmluZyB0aGUgcmVzb2x2ZWQgcGF0aCBvciB0aGUgb3JpZ2luYWwgcGF0aCBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHJlc29sdmUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIHBhdGggb3IgdGhlIG9yaWdpbmFsIHBhdGggaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGF0aEZyb21Sb290U2FmZShwYXRoOiBzdHJpbmcsIGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXNvbHZlUGF0aEZyb21Sb290KHBhdGgsIGN3ZCkgPz8gcGF0aDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhYnNvbHV0ZSBwYXRoIHRvIGEgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcm9vdCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1JlbGF0aXZlRnJvbVJvb3QocGF0aDogc3RyaW5nLCBjd2Q/OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3Qgcm9vdEZvbGRlciA9IGdldFJvb3RGb2xkZXIoY3dkKTtcbiAgaWYgKCFyb290Rm9sZGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwYXRoID0gdG9Qb3NpeFBhdGgocGF0aCk7XG4gIHJldHVybiByZWxhdGl2ZShyb290Rm9sZGVyLCBwYXRoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLFNBQVMsa0JBQWtCO0FBVTNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxZQUFZO0FBQ3JCLFNBQVMsaUNBQWlDO0FBdUNuQyxTQUFTLGFBQWEsU0FBaUMsVUFBc0IsQ0FBQyxHQUFpQztBQUNwSCxNQUFJLE9BQU8sY0FBYyxRQUFRLEdBQUc7QUFFcEMsTUFBSSxDQUFDLE1BQU07QUFDVCxRQUFJLFFBQVEscUNBQXFDLE1BQU07QUFDckQsWUFBTSxJQUFJLE1BQU0sNEJBQTRCO0FBQUEsSUFDOUM7QUFFQSxXQUFPLFFBQVEsT0FBTyxRQUFRLElBQUk7QUFBQSxFQUNwQztBQUVBLE1BQUksUUFBUSxzQkFBc0I7QUFDaEMsV0FBTyxLQUFLLFNBQVMsRUFBRSxHQUFHLFNBQVMsS0FBSyxNQUFNLHNCQUFzQixLQUFLLENBQUM7QUFBQSxFQUM1RTtBQUVBLFNBQU8sS0FBSyxTQUFTLEVBQUUsR0FBRyxTQUFTLEtBQUssTUFBTSxzQkFBc0IsTUFBTSxDQUFDO0FBQzdFO0FBU08sU0FBUyxjQUFjLEtBQTZCO0FBQ3pELE1BQUksZ0JBQWdCLFlBQVksT0FBTyxRQUFRLElBQUksQ0FBQztBQUNwRCxTQUFPLGtCQUFrQiwwQkFBMEIsaUJBQTJCLGtCQUFrQiwwQkFBMEIsWUFBc0I7QUFDOUksUUFBSSxXQUFXLEtBQUssZUFBZSwwQkFBMEIsV0FBVyxDQUFDLEdBQUc7QUFDMUUsYUFBTyxZQUFZLGFBQWE7QUFBQSxJQUNsQztBQUNBLG9CQUFnQixRQUFRLGFBQWE7QUFBQSxFQUN2QztBQUVBLFNBQU87QUFDVDtBQVNPLFNBQVMsb0JBQW9CLE1BQWMsS0FBNkI7QUFDN0UsUUFBTSxhQUFhLGNBQWMsR0FBRztBQUNwQyxNQUFJLENBQUMsWUFBWTtBQUNmLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxRQUFRLFlBQVksSUFBSTtBQUNqQztBQVNPLFNBQVMsd0JBQXdCLE1BQWMsS0FBc0I7QUFDMUUsU0FBTyxvQkFBb0IsTUFBTSxHQUFHLEtBQUs7QUFDM0M7QUFTTyxTQUFTLG1CQUFtQixNQUFjLEtBQTZCO0FBQzVFLFFBQU0sYUFBYSxjQUFjLEdBQUc7QUFDcEMsTUFBSSxDQUFDLFlBQVk7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sWUFBWSxJQUFJO0FBQ3ZCLFNBQU8sU0FBUyxZQUFZLElBQUk7QUFDbEM7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * This module provides functions for running tests using the Vitest framework.
5
5
  */
@@ -47,4 +47,4 @@ export {
47
47
  testCoverage,
48
48
  testWatch
49
49
  };
50
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy90ZXN0LXJ1bm5lcnMvdml0ZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgcnVubmluZyB0ZXN0cyB1c2luZyB0aGUgVml0ZXN0IGZyYW1ld29yay5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhlY3V0ZXMgdml0ZXN0IGFzIGEgQ0xJIHN1YnByb2Nlc3M7IGNvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IHJ1bm5pbmcgdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgeyBleGVjRnJvbVJvb3QgfSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBydW5uaW5nIHRlc3RzIHdpdGggY292ZXJhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENvdmVyYWdlUGFyYW1zIGV4dGVuZHMgVGVzdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGNvdmVyYWdlIHBlcmNlbnRhZ2UgcmVxdWlyZWQuIElmIHRoZSBhY3R1YWwgY292ZXJhZ2UgZmFsbHMgYmVsb3dcbiAgICogdGhpcyB0aHJlc2hvbGQsIHRoZSBwcm9jZXNzIGV4aXRzIHdpdGggYSBub24temVybyBjb2RlLlxuICAgKi9cbiAgbWluQ292ZXJhZ2VJblBlcmNlbnRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHJ1bm5pbmcgdGVzdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdHMgdG8gcnVuLlxuICAgKi9cbiAgcHJvamVjdHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdChwYXJhbXM6IFRlc3RQYXJhbXMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWyd2aXRlc3QnLCAncnVuJywgLi4uYnVpbGRQcm9qZWN0RmxhZ3MocGFyYW1zLnByb2plY3RzKV0pO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgd2l0aCBjb3ZlcmFnZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gT3B0aW9uYWwgY292ZXJhZ2UgY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGVzdHMgaGF2ZSBjb21wbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0Q292ZXJhZ2UocGFyYW1zOiBUZXN0Q292ZXJhZ2VQYXJhbXMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0aHJlc2hvbGQgPSBTdHJpbmcocGFyYW1zLm1pbkNvdmVyYWdlSW5QZXJjZW50cyA/PyAwKTtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFtcbiAgICAndml0ZXN0JyxcbiAgICAncnVuJyxcbiAgICAuLi5idWlsZFByb2plY3RGbGFncyhwYXJhbXMucHJvamVjdHMpLFxuICAgICctLWNvdmVyYWdlJyxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmxpbmVzPSR7dGhyZXNob2xkfWAsXG4gICAgYC0tY292ZXJhZ2UudGhyZXNob2xkcy5mdW5jdGlvbnM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmJyYW5jaGVzPSR7dGhyZXNob2xkfWAsXG4gICAgYC0tY292ZXJhZ2UudGhyZXNob2xkcy5zdGF0ZW1lbnRzPSR7dGhyZXNob2xkfWBcbiAgXSk7XG59XG5cbi8qKlxuICogUnVucyB0aGUgdGVzdCBzdWl0ZSBpbiB3YXRjaCBtb2RlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFdhdGNoKHBhcmFtczogVGVzdFBhcmFtcyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ3ZpdGVzdCcsIC4uLmJ1aWxkUHJvamVjdEZsYWdzKHBhcmFtcy5wcm9qZWN0cyldKTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYC0tcHJvamVjdGAgZmxhZ3MgZm9yIHRoZSBnaXZlbiBwcm9qZWN0IHByZWZpeGVzLlxuICogRWFjaCBwcmVmaXggZXhwYW5kcyB0byBib3RoIGAtLXByb2plY3Q9cHJlZml4YCAoZXhhY3QgbWF0Y2gpXG4gKiBhbmQgYC0tcHJvamVjdD1wcmVmaXg6KmAgKHN1Yi1wcm9qZWN0cykuXG4gKlxuICogQHBhcmFtIHByb2plY3RzIC0gVGhlIHByb2plY3QgbmFtZSBwcmVmaXhlcy5cbiAqIEByZXR1cm5zIFRoZSBgLS1wcm9qZWN0YCBmbGFncyBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYnVpbGRQcm9qZWN0RmxhZ3MocHJvamVjdHM/OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIChwcm9qZWN0cyA/PyBbXSkuZmxhdE1hcCgocHJvamVjdCkgPT4gW2AtLXByb2plY3Q9JHtwcm9qZWN0fWAsIGAtLXByb2plY3Q9JHtwcm9qZWN0fToqYF0pO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsU0FBUyxvQkFBb0I7QUE2QjdCLGVBQXNCLEtBQUssU0FBcUIsQ0FBQyxHQUFrQjtBQUNqRSxRQUFNLGFBQWEsQ0FBQyxVQUFVLE9BQU8sR0FBRyxrQkFBa0IsT0FBTyxRQUFRLENBQUMsQ0FBQztBQUM3RTtBQVFBLGVBQXNCLGFBQWEsU0FBNkIsQ0FBQyxHQUFrQjtBQUNqRixRQUFNLFlBQVksT0FBTyxPQUFPLHlCQUF5QixDQUFDO0FBQzFELFFBQU0sYUFBYTtBQUFBLElBQ2pCO0FBQUEsSUFDQTtBQUFBLElBQ0EsR0FBRyxrQkFBa0IsT0FBTyxRQUFRO0FBQUEsSUFDcEM7QUFBQSxJQUNBLCtCQUErQixTQUFTO0FBQUEsSUFDeEMsbUNBQW1DLFNBQVM7QUFBQSxJQUM1QyxrQ0FBa0MsU0FBUztBQUFBLElBQzNDLG9DQUFvQyxTQUFTO0FBQUEsRUFDL0MsQ0FBQztBQUNIO0FBUUEsZUFBc0IsVUFBVSxTQUFxQixDQUFDLEdBQWtCO0FBQ3RFLFFBQU0sYUFBYSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsT0FBTyxRQUFRLENBQUMsQ0FBQztBQUN0RTtBQVVBLFNBQVMsa0JBQWtCLFVBQStCO0FBQ3hELFVBQVEsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxhQUFhLE9BQU8sSUFBSSxhQUFhLE9BQU8sSUFBSSxDQUFDO0FBQ2pHOyIsCiAgIm5hbWVzIjogW10KfQo=
50
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy90ZXN0LXJ1bm5lcnMvdml0ZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBydW5uaW5nIHRlc3RzIHVzaW5nIHRoZSBWaXRlc3QgZnJhbWV3b3JrLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGVjdXRlcyB2aXRlc3QgYXMgYSBDTEkgc3VicHJvY2VzczsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHJ1bm5pbmcgdGVzdHMgd2l0aCBjb3ZlcmFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0Q292ZXJhZ2VQYXJhbXMgZXh0ZW5kcyBUZXN0UGFyYW1zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gY292ZXJhZ2UgcGVyY2VudGFnZSByZXF1aXJlZC4gSWYgdGhlIGFjdHVhbCBjb3ZlcmFnZSBmYWxscyBiZWxvd1xuICAgKiB0aGlzIHRocmVzaG9sZCwgdGhlIHByb2Nlc3MgZXhpdHMgd2l0aCBhIG5vbi16ZXJvIGNvZGUuXG4gICAqL1xuICBtaW5Db3ZlcmFnZUluUGVyY2VudHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgcnVubmluZyB0ZXN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0cyB0byBydW4uXG4gICAqL1xuICBwcm9qZWN0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgdGVzdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGVzdHMgaGF2ZSBjb21wbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0KHBhcmFtczogVGVzdFBhcmFtcyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ3ZpdGVzdCcsICdydW4nLCAuLi5idWlsZFByb2plY3RGbGFncyhwYXJhbXMucHJvamVjdHMpXSk7XG59XG5cbi8qKlxuICogUnVucyB0aGUgdGVzdCBzdWl0ZSB3aXRoIGNvdmVyYWdlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBPcHRpb25hbCBjb3ZlcmFnZSBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RDb3ZlcmFnZShwYXJhbXM6IFRlc3RDb3ZlcmFnZVBhcmFtcyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHRocmVzaG9sZCA9IFN0cmluZyhwYXJhbXMubWluQ292ZXJhZ2VJblBlcmNlbnRzID8/IDApO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgICd2aXRlc3QnLFxuICAgICdydW4nLFxuICAgIC4uLmJ1aWxkUHJvamVjdEZsYWdzKHBhcmFtcy5wcm9qZWN0cyksXG4gICAgJy0tY292ZXJhZ2UnLFxuICAgIGAtLWNvdmVyYWdlLnRocmVzaG9sZHMubGluZXM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmZ1bmN0aW9ucz0ke3RocmVzaG9sZH1gLFxuICAgIGAtLWNvdmVyYWdlLnRocmVzaG9sZHMuYnJhbmNoZXM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLnN0YXRlbWVudHM9JHt0aHJlc2hvbGR9YFxuICBdKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIGluIHdhdGNoIG1vZGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgdGVzdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGVzdHMgaGF2ZSBjb21wbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0V2F0Y2gocGFyYW1zOiBUZXN0UGFyYW1zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsndml0ZXN0JywgLi4uYnVpbGRQcm9qZWN0RmxhZ3MocGFyYW1zLnByb2plY3RzKV0pO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBgLS1wcm9qZWN0YCBmbGFncyBmb3IgdGhlIGdpdmVuIHByb2plY3QgcHJlZml4ZXMuXG4gKiBFYWNoIHByZWZpeCBleHBhbmRzIHRvIGJvdGggYC0tcHJvamVjdD1wcmVmaXhgIChleGFjdCBtYXRjaClcbiAqIGFuZCBgLS1wcm9qZWN0PXByZWZpeDoqYCAoc3ViLXByb2plY3RzKS5cbiAqXG4gKiBAcGFyYW0gcHJvamVjdHMgLSBUaGUgcHJvamVjdCBuYW1lIHByZWZpeGVzLlxuICogQHJldHVybnMgVGhlIGAtLXByb2plY3RgIGZsYWdzIGFycmF5LlxuICovXG5mdW5jdGlvbiBidWlsZFByb2plY3RGbGFncyhwcm9qZWN0cz86IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gKHByb2plY3RzID8/IFtdKS5mbGF0TWFwKChwcm9qZWN0KSA9PiBbYC0tcHJvamVjdD0ke3Byb2plY3R9YCwgYC0tcHJvamVjdD0ke3Byb2plY3R9OipgXSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxTQUFTLG9CQUFvQjtBQTZCN0IsZUFBc0IsS0FBSyxTQUFxQixDQUFDLEdBQWtCO0FBQ2pFLFFBQU0sYUFBYSxDQUFDLFVBQVUsT0FBTyxHQUFHLGtCQUFrQixPQUFPLFFBQVEsQ0FBQyxDQUFDO0FBQzdFO0FBUUEsZUFBc0IsYUFBYSxTQUE2QixDQUFDLEdBQWtCO0FBQ2pGLFFBQU0sWUFBWSxPQUFPLE9BQU8seUJBQXlCLENBQUM7QUFDMUQsUUFBTSxhQUFhO0FBQUEsSUFDakI7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHLGtCQUFrQixPQUFPLFFBQVE7QUFBQSxJQUNwQztBQUFBLElBQ0EsK0JBQStCLFNBQVM7QUFBQSxJQUN4QyxtQ0FBbUMsU0FBUztBQUFBLElBQzVDLGtDQUFrQyxTQUFTO0FBQUEsSUFDM0Msb0NBQW9DLFNBQVM7QUFBQSxFQUMvQyxDQUFDO0FBQ0g7QUFRQSxlQUFzQixVQUFVLFNBQXFCLENBQUMsR0FBa0I7QUFDdEUsUUFBTSxhQUFhLENBQUMsVUFBVSxHQUFHLGtCQUFrQixPQUFPLFFBQVEsQ0FBQyxDQUFDO0FBQ3RFO0FBVUEsU0FBUyxrQkFBa0IsVUFBK0I7QUFDeEQsVUFBUSxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsT0FBTyxJQUFJLGFBQWEsT0FBTyxJQUFJLENBQUM7QUFDakc7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * This module provides functions for managing version updates in a project.
5
5
  * It includes tasks such as validating version update types, checking the state
@@ -368,4 +368,4 @@ export {
368
368
  updateVersionInFiles,
369
369
  validate
370
370
  };
371
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy92ZXJzaW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgdmVyc2lvbiB1cGRhdGVzIGluIGEgcHJvamVjdC5cbiAqIEl0IGluY2x1ZGVzIHRhc2tzIHN1Y2ggYXMgdmFsaWRhdGluZyB2ZXJzaW9uIHVwZGF0ZSB0eXBlcywgY2hlY2tpbmcgdGhlIHN0YXRlXG4gKiBvZiBHaXQgYW5kIEdpdEh1YiBDTEksIHVwZGF0aW5nIHZlcnNpb24gbnVtYmVycyBpbiBmaWxlcywgYW5kIHBlcmZvcm1pbmdcbiAqIEdpdCBvcGVyYXRpb25zIHN1Y2ggYXMgdGFnZ2luZyBhbmQgcHVzaGluZy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlbGVhc2VUeXBlIH0gZnJvbSAnc2VtdmVyJztcblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIHJlYWRGaWxlLFxuICBybSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgY3JlYXRlSW50ZXJmYWNlIH0gZnJvbSAnbm9kZTpyZWFkbGluZS9wcm9taXNlcyc7XG5pbXBvcnQge1xuICBpbmMsXG4gIHByZXJlbGVhc2Vcbn0gZnJvbSAnc2VtdmVyJztcblxuaW1wb3J0IHR5cGUgeyBQYWNrYWdlTG9ja0pzb24gfSBmcm9tICcuL25wbS50cyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJy4uL3N0cmluZy50cyc7XG5pbXBvcnQge1xuICBhc3NlcnROb25OdWxsYWJsZSxcbiAgZW5zdXJlTm9uTnVsbGFibGVcbn0gZnJvbSAnLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnLi9mcy50cyc7XG5pbXBvcnQgeyBlZGl0SnNvbiB9IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQge1xuICBucG1SdW4sXG4gIG5wbVJ1bk9wdGlvbmFsXG59IGZyb20gJy4vbnBtLXJ1bi50cyc7XG5pbXBvcnQge1xuICBlZGl0TnBtU2hyaW5rV3JhcEpzb24sXG4gIGVkaXRQYWNrYWdlSnNvbixcbiAgZWRpdFBhY2thZ2VMb2NrSnNvbixcbiAgcmVhZFBhY2thZ2VKc29uXG59IGZyb20gJy4vbnBtLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBwcmUtcmVsZWFzZSBpZGVudGlmaWVyIHVzZWQgZm9yIHByZS1yZWxlYXNlIHZlcnNpb25zLlxuICovXG5jb25zdCBERUZBVUxUX1BSRUlEID0gJ2JldGEnO1xuXG4vKipcbiAqIEVudW0gcmVwcmVzZW50aW5nIGRpZmZlcmVudCB0eXBlcyBvZiB2ZXJzaW9uIHVwZGF0ZXMuXG4gKlxuICogQWxpZ25zIHdpdGggbnBtJ3MgYG5wbSB2ZXJzaW9uYCBpbmNyZW1lbnQgdHlwZXMgcGx1cyBgTWFudWFsYCBmb3IgZXhwbGljaXQgdmVyc2lvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIFZlcnNpb25VcGRhdGVUeXBlIHtcbiAgSW52YWxpZCA9ICdpbnZhbGlkJyxcbiAgTWFqb3IgPSAnbWFqb3InLFxuICBNYW51YWwgPSAnbWFudWFsJyxcbiAgTWlub3IgPSAnbWlub3InLFxuICBQYXRjaCA9ICdwYXRjaCcsXG4gIFByZU1ham9yID0gJ3ByZW1ham9yJyxcbiAgUHJlTWlub3IgPSAncHJlbWlub3InLFxuICBQcmVQYXRjaCA9ICdwcmVwYXRjaCcsXG4gIFByZVJlbGVhc2UgPSAncHJlcmVsZWFzZSdcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgbWFuaWZlc3QgZmlsZSBmb3JtYXQgZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3Qge1xuICAvKipcbiAgICogQSBtaW5pbXVtIE9ic2lkaWFuIHZlcnNpb24gcmVxdWlyZWQgZm9yIHRoZSBwbHVnaW4uXG4gICAqL1xuICBtaW5BcHBWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdmVyc2lvbiBvZiB0aGUgcGx1Z2luLlxuICAgKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSBzdHJ1Y3R1cmUgb2YgT2JzaWRpYW4gcmVsZWFzZXMgSlNPTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblJlbGVhc2VzSnNvbiB7XG4gIC8qKlxuICAgKiBBIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHJlbGVhc2UuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIEdpdCB0YWcgZm9yIHRoZSBuZXcgdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgdG8gdXNlIGZvciB0aGUgdGFnLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YWcgaGFzIGJlZW4gY3JlYXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZEdpdFRhZyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KGBnaXQgdGFnIC1hICR7bmV3VmVyc2lvbn0gLW0gJHtuZXdWZXJzaW9ufSAtLWZvcmNlYCwgeyBpc1F1aWV0OiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIEFkZHMgdXBkYXRlZCBmaWxlcyB0byB0aGUgR2l0IHN0YWdpbmcgYXJlYSBhbmQgY29tbWl0cyB0aGVtIHdpdGggdGhlIG5ldyB2ZXJzaW9uIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIHVzZWQgYXMgdGhlIGNvbW1pdCBtZXNzYWdlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlcyBoYXZlIGJlZW4gYWRkZWQgYW5kIGNvbW1pdHRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFVwZGF0ZWRGaWxlc1RvR2l0KG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWydnaXQnLCAnYWRkJywgJy0tYWxsJ10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnZ2l0JywgJ2NvbW1pdCcsICctbScsIGBjaG9yZTogcmVsZWFzZSAke25ld1ZlcnNpb259YCwgJy0tYWxsb3ctZW1wdHknXSwgeyBpc1F1aWV0OiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgR2l0SHViIENMSSBpcyBpbnN0YWxsZWQgb24gdGhlIHN5c3RlbS5cbiAqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIEdpdEh1YiBDTEkgaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBHaXRIdWIgQ0xJIGlzIG5vdCBpbnN0YWxsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0dpdEh1YkNsaUluc3RhbGxlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoJ2doIC0tdmVyc2lvbicsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdHaXRIdWIgQ0xJIGlzIG5vdCBpbnN0YWxsZWQuIFBsZWFzZSBpbnN0YWxsIGl0IGZyb20gaHR0cHM6Ly9jbGkuZ2l0aHViLmNvbS8nKTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBHaXQgaXMgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIEdpdCBpcyBub3QgaW5zdGFsbGVkLlxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgR2l0IGlzIG5vdCBpbnN0YWxsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0dpdEluc3RhbGxlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoJ2dpdCAtLXZlcnNpb24nLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignR2l0IGlzIG5vdCBpbnN0YWxsZWQuIFBsZWFzZSBpbnN0YWxsIGl0IGZyb20gaHR0cHM6Ly9naXQtc2NtLmNvbS8nKTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgY2xlYW4sIG1lYW5pbmcgdGhlcmUgYXJlIG5vIHVuY29tbWl0dGVkIGNoYW5nZXMuXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBHaXQgcmVwb3NpdG9yeSBpcyBub3QgY2xlYW4uXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgbm90IGNsZWFuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRSZXBvQ2xlYW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3Rkb3V0ID0gYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgc3RhdHVzIC0tcG9yY2VsYWluIC0tdW50cmFja2VkLWZpbGVzPWFsbCcsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgICBpZiAoc3Rkb3V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignR2l0IHJlcG9zaXRvcnkgaXMgbm90IGNsZWFuLiBQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHlvdXIgY2hhbmdlcyBiZWZvcmUgcmVsZWFzaW5nIGEgbmV3IHZlcnNpb24uJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb3BpZXMgdGhlIHVwZGF0ZWQgbWFuaWZlc3QgZmlsZSB0byB0aGUgZGlzdHJpYnV0aW9uIGJ1aWxkIGZvbGRlci5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvcHkgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weVVwZGF0ZWRNYW5pZmVzdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgY3AoXG4gICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uKSxcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZShqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uKSksXG4gICAgeyBmb3JjZTogdHJ1ZSB9XG4gICk7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgbmV3IHZlcnNpb24gc3RyaW5nIGJhc2VkIG9uIHRoZSBjdXJyZW50IHZlcnNpb24gYW5kIHRoZSBzcGVjaWZpZWQgdXBkYXRlIHR5cGUuXG4gKlxuICogVXNlcyB0aGUgYHNlbXZlcmAgcGFja2FnZSB0byBjb21wdXRlIHRoZSBuZXh0IHZlcnNpb24sIHN1cHBvcnRpbmcgYWxsIG5wbSBpbmNyZW1lbnQgdHlwZXM6XG4gKiBgbWFqb3JgLCBgbWlub3JgLCBgcGF0Y2hgLCBgcHJlbWFqb3JgLCBgcHJlbWlub3JgLCBgcHJlcGF0Y2hgLCBhbmQgYHByZXJlbGVhc2VgLlxuICogUHJlLXJlbGVhc2UgdmVyc2lvbnMgdXNlIHRoZSBgYmV0YWAgaWRlbnRpZmllciBieSBkZWZhdWx0IChlLmcuLCBgMS4yLjQtYmV0YS4wYCkuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgb3IgYW4gZXhwbGljaXQgdmVyc2lvbiBzdHJpbmcuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBuZXcgdmVyc2lvbiBzdHJpbmcuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgaW52YWxpZCBvciB0aGUgaW5jcmVtZW50IGZhaWxzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TmV3VmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgdmVyc2lvblR5cGUgPSBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGlmICh2ZXJzaW9uVHlwZSA9PT0gVmVyc2lvblVwZGF0ZVR5cGUuTWFudWFsKSB7XG4gICAgcmV0dXJuIHZlcnNpb25VcGRhdGVUeXBlO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwYWNrYWdlSnNvbi52ZXJzaW9uID8/ICcnO1xuXG4gIGNvbnN0IHJlbGVhc2VUeXBlID0gdmVyc2lvblR5cGUgYXMgUmVsZWFzZVR5cGU7XG4gIGNvbnN0IGlzUHJlUmVsZWFzZVR5cGUgPSByZWxlYXNlVHlwZS5zdGFydHNXaXRoKCdwcmUnKTtcbiAgY29uc3QgbmV3VmVyc2lvbiA9IGlzUHJlUmVsZWFzZVR5cGVcbiAgICA/IGluYyhjdXJyZW50VmVyc2lvbiwgcmVsZWFzZVR5cGUsIERFRkFVTFRfUFJFSUQpXG4gICAgOiBpbmMoY3VycmVudFZlcnNpb24sIHJlbGVhc2VUeXBlKTtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUobmV3VmVyc2lvbiwgYEZhaWxlZCB0byBpbmNyZW1lbnQgdmVyc2lvbiBmcm9tICcke2N1cnJlbnRWZXJzaW9ufScgd2l0aCB0eXBlICcke3ZlcnNpb25UeXBlfSdgKTtcblxuICByZXR1cm4gbmV3VmVyc2lvbjtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHJlbGVhc2Ugbm90ZXMgZm9yIGEgc3BlY2lmaWMgdmVyc2lvbiBmcm9tIHRoZSBjaGFuZ2Vsb2cuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIGZvciB3aGljaCB0byBnZXQgdGhlIHJlbGVhc2Ugbm90ZXMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZWxlYXNlIG5vdGVzIGZvciB0aGUgc3BlY2lmaWVkIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZWxlYXNlTm90ZXMobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgY2hhbmdlbG9nUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kKTtcbiAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNoYW5nZWxvZ1BhdGgsICd1dGYtOCcpO1xuICBjb25zdCBuZXdWZXJzaW9uRXNjYXBlZCA9IHJlcGxhY2VBbGwobmV3VmVyc2lvbiwgJy4nLCAnXFxcXC4nKTtcbiAgY29uc3QgbWF0Y2ggPSBuZXcgUmVnRXhwKGBcXG4jIyAke25ld1ZlcnNpb25Fc2NhcGVkfVxcblxcbigoLnxcXG4pKz8pXFxuXFxuIyNgKS5leGVjKGNvbnRlbnQpO1xuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gdjggdHJhY2tzIG9wdGlvbmFsIGNoYWluaW5nIGFuZCB0ZXJuYXJ5IGFzIHNlcGFyYXRlIGJyYW5jaGVzOyBib3RoIHBhdGhzIGFyZSB0ZXN0ZWQuICovXG4gIGxldCByZWxlYXNlTm90ZXMgPSBtYXRjaD8uWzFdID8gYCR7bWF0Y2hbMV19XFxuXFxuYCA6ICcnO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGNvbnN0IHRhZ3MgPSAoYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgdGFnIC0tc29ydD0tY3JlYXRvcmRhdGUnLCB7IGlzUXVpZXQ6IHRydWUgfSkpLnNwbGl0KC9cXHI/XFxuLyk7XG4gIGNvbnN0IHByZXZpb3VzVmVyc2lvbiA9IHRhZ3NbMV07XG4gIGxldCBjaGFuZ2VzVXJsOiBzdHJpbmc7XG5cbiAgY29uc3QgcmVwb1VybCA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2ggcmVwbyB2aWV3IC0tanNvbiB1cmwgLXEgLnVybCcsIHsgaXNRdWlldDogdHJ1ZSB9KTtcblxuICBpZiAocHJldmlvdXNWZXJzaW9uKSB7XG4gICAgY2hhbmdlc1VybCA9IGAke3JlcG9Vcmx9L2NvbXBhcmUvJHtwcmV2aW91c1ZlcnNpb259Li4uJHtuZXdWZXJzaW9ufWA7XG4gIH0gZWxzZSB7XG4gICAgY2hhbmdlc1VybCA9IGAke3JlcG9Vcmx9L2NvbW1pdHMvJHtuZXdWZXJzaW9ufWA7XG4gIH1cblxuICByZWxlYXNlTm90ZXMgKz0gYCoqRnVsbCBDaGFuZ2Vsb2cqKjogJHtjaGFuZ2VzVXJsfWA7XG4gIHJldHVybiByZWxlYXNlTm90ZXM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiB2ZXJzaW9uIHVwZGF0ZSBiYXNlZCBvbiB0aGUgaW5wdXQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSBpbnB1dCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlLlxuICogQHJldHVybnMgVGhlIGNvcnJlc3BvbmRpbmcgYFZlcnNpb25VcGRhdGVUeXBlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb25VcGRhdGVUeXBlKHZlcnNpb25VcGRhdGVUeXBlOiBzdHJpbmcpOiBWZXJzaW9uVXBkYXRlVHlwZSB7XG4gIGNvbnN0IHZlcnNpb25VcGRhdGVUeXBlRW51bSA9IHZlcnNpb25VcGRhdGVUeXBlIGFzIFZlcnNpb25VcGRhdGVUeXBlO1xuICBzd2l0Y2ggKHZlcnNpb25VcGRhdGVUeXBlRW51bSkge1xuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuTWFqb3I6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5NaW5vcjpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLlBhdGNoOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuUHJlTWFqb3I6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5QcmVNaW5vcjpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLlByZVBhdGNoOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuUHJlUmVsZWFzZTpcbiAgICAgIHJldHVybiB2ZXJzaW9uVXBkYXRlVHlwZUVudW07XG5cbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKC9eXFxkK1xcLlxcZCtcXC5cXGQrKD86LVtcXHdcXGQuLV0rKT8kLy50ZXN0KHZlcnNpb25VcGRhdGVUeXBlKSkge1xuICAgICAgICByZXR1cm4gVmVyc2lvblVwZGF0ZVR5cGUuTWFudWFsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gVmVyc2lvblVwZGF0ZVR5cGUuSW52YWxpZDtcbiAgfVxufVxuXG4vKipcbiAqIFB1c2hlcyBjb21taXRzIGFuZCB0YWdzIHRvIHRoZSByZW1vdGUgR2l0IHJlcG9zaXRvcnkuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwdXNoIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdpdFB1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHB1c2ggLS1mb2xsb3ctdGFncyAtLWZvcmNlJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIFB1Ymxpc2hlcyBhIEdpdEh1YiByZWxlYXNlIGZvciB0aGUgbmV3IHZlcnNpb24uXG4gKlxuICogSGFuZGxlcyB0aGUgY3JlYXRpb24gb2YgYSByZWxlYXNlIGFuZCB1cGxvYWRpbmcgZmlsZXMgZm9yIGVpdGhlciBhbiBPYnNpZGlhbiBwbHVnaW4gb3IgYW5vdGhlciBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciBmb3IgdGhlIHJlbGVhc2UuXG4gKiBAcGFyYW0gaXNPYnNpZGlhblBsdWdpbiAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBwcm9qZWN0IGlzIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVsZWFzZSBoYXMgYmVlbiBwdWJsaXNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoR2l0SHViUmVsZWFzZShuZXdWZXJzaW9uOiBzdHJpbmcsIGlzT2JzaWRpYW5QbHVnaW46IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IGZpbGVQYXRoczogc3RyaW5nW107XG5cbiAgaWYgKGlzT2JzaWRpYW5QbHVnaW4pIHtcbiAgICBjb25zdCBidWlsZEZvbGRlciA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCk7XG4gICAgY29uc3QgZmlsZU5hbWVzID0gYXdhaXQgcmVhZGRpclBvc2l4KGJ1aWxkRm9sZGVyKTtcbiAgICBmaWxlUGF0aHMgPSBmaWxlTmFtZXMubWFwKChmaWxlTmFtZSkgPT4gam9pbihidWlsZEZvbGRlciwgZmlsZU5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgcmVzdWx0T3V0cHV0ID0gYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ3BhY2snLCAnLS1wYWNrLWRlc3RpbmF0aW9uJywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCAnLS1qc29uJ10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgICBjb25zdCBpbmRleCA9IHJlc3VsdE91dHB1dC5pbmRleE9mKCdbXFxuICB7Jyk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmluZCB0aGUgc3RhcnQgb2YgdGhlIEpTT04gYXJyYXkgaW4gdGhlIHJlc3VsdCBvdXRwdXQnKTtcbiAgICB9XG4gICAgcmVzdWx0T3V0cHV0ID0gcmVzdWx0T3V0cHV0LnNsaWNlKGluZGV4KTtcbiAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdE91dHB1dCkgYXMgW3sgZmlsZW5hbWU6IHN0cmluZyB9XTtcbiAgICBmaWxlUGF0aHMgPSBbXG4gICAgICBqb2luKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgcmVzdWx0WzBdLmZpbGVuYW1lKSxcbiAgICAgIGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlN0eWxlc0NzcylcbiAgICBdO1xuICB9XG5cbiAgZmlsZVBhdGhzID0gZmlsZVBhdGhzLmZpbHRlcigoZmlsZVBhdGgpID0+IGV4aXN0c1N5bmMocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoZmlsZVBhdGgpKSk7XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFtcbiAgICAnZ2gnLFxuICAgICdyZWxlYXNlJyxcbiAgICAnY3JlYXRlJyxcbiAgICBuZXdWZXJzaW9uLFxuICAgIC4uLmZpbGVQYXRocyxcbiAgICAnLS10aXRsZScsXG4gICAgYHYke25ld1ZlcnNpb259YCxcbiAgICAuLi4oaXNQcmVSZWxlYXNlKG5ld1ZlcnNpb24pID8gWyctLXByZXJlbGVhc2UnXSA6IFtdKSxcbiAgICAnLS1ub3Rlcy1maWxlJyxcbiAgICAnLSdcbiAgXSwge1xuICAgIGlzUXVpZXQ6IHRydWUsXG4gICAgc3RkaW46IGF3YWl0IGdldFJlbGVhc2VOb3RlcyhuZXdWZXJzaW9uKVxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGVzIHRoZSBjaGFuZ2Vsb2cgZmlsZSB3aXRoIG5ldyB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBjb21taXQgbWVzc2FnZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgY3VycmVudCBjaGFuZ2Vsb2csIGFwcGVuZHMgbmV3IGVudHJpZXMgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbixcbiAqIGFuZCBwcm9tcHRzIHRoZSB1c2VyIHRvIHJldmlldyB0aGUgY2hhbmdlcy5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgdG8gYmUgYWRkZWQgdG8gdGhlIGNoYW5nZWxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY2hhbmdlbG9nIHVwZGF0ZSBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUNoYW5nZWxvZyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgSEVBREVSX0xJTkVTX0NPVU5UID0gMjtcbiAgY29uc3QgY2hhbmdlbG9nUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kKTtcbiAgbGV0IHByZXZpb3VzQ2hhbmdlbG9nTGluZXM6IHN0cmluZ1tdO1xuICBpZiAoZXhpc3RzU3luYyhjaGFuZ2Vsb2dQYXRoKSkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjaGFuZ2Vsb2dQYXRoLCAndXRmLTgnKTtcbiAgICBwcmV2aW91c0NoYW5nZWxvZ0xpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJykuc2xpY2UoSEVBREVSX0xJTkVTX0NPVU5UKTtcbiAgICBpZiAocHJldmlvdXNDaGFuZ2Vsb2dMaW5lcy5hdCgtMSkgPT09ICcnKSB7XG4gICAgICBwcmV2aW91c0NoYW5nZWxvZ0xpbmVzLnBvcCgpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBwcmV2aW91c0NoYW5nZWxvZ0xpbmVzID0gW107XG4gIH1cblxuICBjb25zdCBsYXN0VGFnID0gcmVwbGFjZUFsbChwcmV2aW91c0NoYW5nZWxvZ0xpbmVzWzBdID8/ICcnLCAnIyMgJywgJycpO1xuICBjb25zdCBjb21taXRSYW5nZSA9IGxhc3RUYWcgPyBgJHtsYXN0VGFnfS4uSEVBRGAgOiAnSEVBRCc7XG4gIGNvbnN0IGNvbW1pdE1lc3NhZ2VzU3RyID0gYXdhaXQgZXhlY0Zyb21Sb290KGBnaXQgbG9nICR7Y29tbWl0UmFuZ2V9IC0tZm9ybWF0PSVCIC0tZmlyc3QtcGFyZW50IC16YCwgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICBjb25zdCBjb21taXRNZXNzYWdlcyA9IGNvbW1pdE1lc3NhZ2VzU3RyLnNwbGl0KCdcXDAnKS5maWx0ZXIoQm9vbGVhbikubWFwKHRvU2luZ2xlTGluZSk7XG5cbiAgbGV0IG5ld0NoYW5nZUxvZyA9IGAjIENIQU5HRUxPR1xcblxcbiMjICR7bmV3VmVyc2lvbn1cXG5cXG5gO1xuXG4gIGZvciAoY29uc3QgbWVzc2FnZSBvZiBjb21taXRNZXNzYWdlcykge1xuICAgIG5ld0NoYW5nZUxvZyArPSBgLSAke21lc3NhZ2V9XFxuYDtcbiAgfVxuXG4gIGlmIChwcmV2aW91c0NoYW5nZWxvZ0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICBuZXdDaGFuZ2VMb2cgKz0gJ1xcbic7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMpIHtcbiAgICAgIG5ld0NoYW5nZUxvZyArPSBgJHtsaW5lfVxcbmA7XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgd3JpdGVGaWxlKGNoYW5nZWxvZ1BhdGgsIG5ld0NoYW5nZUxvZywgJ3V0Zi04Jyk7XG5cbiAgY29uc3QgY29kZVZlcnNpb24gPSBhd2FpdCBleGVjRnJvbVJvb3QoJ2NvZGUgLS12ZXJzaW9uJywge1xuICAgIGlzUXVpZXQ6IHRydWUsXG4gICAgc2hvdWxkSWdub3JlRXhpdENvZGU6IHRydWVcbiAgfSk7XG4gIGNvbnN0IHZlcnNpb25EZWJ1Z2dlciA9IGdldExpYkRlYnVnZ2VyKCdWZXJzaW9uJyk7XG4gIGlmIChjb2RlVmVyc2lvbikge1xuICAgIHZlcnNpb25EZWJ1Z2dlcihgUGxlYXNlIHVwZGF0ZSB0aGUgJHtPYnNpZGlhblBsdWdpblJlcG9QYXRocy5DaGFuZ2Vsb2dNZH0gZmlsZS4gQ2xvc2UgVmlzdWFsIFN0dWRpbyBDb2RlIHdoZW4geW91IGFyZSBkb25lLi4uYCk7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KFsnY29kZScsICctdycsIGNoYW5nZWxvZ1BhdGhdLCB7XG4gICAgICBpc1F1aWV0OiB0cnVlLFxuICAgICAgc2hvdWxkSWdub3JlRXhpdENvZGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB2ZXJzaW9uRGVidWdnZXIoJ0NvdWxkIG5vdCBmaW5kIFZpc3VhbCBTdHVkaW8gQ29kZSBpbiB5b3VyIFBBVEguIFVzaW5nIGNvbnNvbGUgbW9kZSBpbnN0ZWFkLicpO1xuICAgIGF3YWl0IGNyZWF0ZUludGVyZmFjZShwcm9jZXNzLnN0ZGluLCBwcm9jZXNzLnN0ZG91dCkucXVlc3Rpb24oXG4gICAgICBgUGxlYXNlIHVwZGF0ZSB0aGUgJHtPYnNpZGlhblBsdWdpblJlcG9QYXRocy5DaGFuZ2Vsb2dNZH0gZmlsZS4gUHJlc3MgRW50ZXIgd2hlbiB5b3UgYXJlIGRvbmUuLi5gXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIHZlcnNpb24gb2YgdGhlIHByb2plY3QgYmFzZWQgb24gdGhlIHNwZWNpZmllZCB1cGRhdGUgdHlwZS5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgc2VyaWVzIG9mIHRhc2tzIHRvIGhhbmRsZSB2ZXJzaW9uIHVwZGF0ZXM6XG4gKiAxLiBWYWxpZGF0ZXMgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUuXG4gKiAyLiBDaGVja3MgaWYgR2l0IGFuZCBHaXRIdWIgQ0xJIGFyZSBpbnN0YWxsZWQuXG4gKiAzLiBWZXJpZmllcyB0aGF0IHRoZSBHaXQgcmVwb3NpdG9yeSBpcyBjbGVhbi5cbiAqIDQuIFJ1bnMgc3BlbGxjaGVjayBhbmQgbGludGluZy5cbiAqIDUuIEJ1aWxkcyB0aGUgcHJvamVjdC5cbiAqIDYuIFVwZGF0ZXMgdmVyc2lvbiBpbiBmaWxlcyBhbmQgY2hhbmdlbG9nLlxuICogNy4gQWRkcyB1cGRhdGVkIGZpbGVzIHRvIEdpdCwgdGFncyB0aGUgY29tbWl0LCBhbmQgcHVzaGVzIHRvIHRoZSByZXBvc2l0b3J5LlxuICogOC4gSWYgYW4gT2JzaWRpYW4gcGx1Z2luLCBjb3BpZXMgdGhlIHVwZGF0ZWQgbWFuaWZlc3QgYW5kIHB1Ymxpc2hlcyBhIEdpdEh1YiByZWxlYXNlLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB0eXBlIG9mIHZlcnNpb24gdXBkYXRlIHRvIHBlcmZvcm0gKG1ham9yLCBtaW5vciwgcGF0Y2gsIHByZW1ham9yLCBwcmVtaW5vciwgcHJlcGF0Y2gsIHByZXJlbGVhc2UsIG9yIHgueS56Wy1zdWZmaXhdKS5cbiAqIEBwYXJhbSBwcmVwYXJlR2l0SHViUmVsZWFzZSAtIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gcHJlcGFyZSB0aGUgR2l0SHViIHJlbGVhc2UuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHZlcnNpb24gdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlVmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZT86IHN0cmluZywgcHJlcGFyZUdpdEh1YlJlbGVhc2U/OiAobmV3VmVyc2lvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghdmVyc2lvblVwZGF0ZVR5cGUpIHtcbiAgICBjb25zdCBucG1PbGRWZXJzaW9uID0gcHJvY2Vzcy5lbnZbJ25wbV9vbGRfdmVyc2lvbiddO1xuICAgIGNvbnN0IG5wbU5ld1ZlcnNpb24gPSBwcm9jZXNzLmVudlsnbnBtX25ld192ZXJzaW9uJ107XG5cbiAgICBpZiAobnBtT2xkVmVyc2lvbiAmJiBucG1OZXdWZXJzaW9uKSB7XG4gICAgICBhd2FpdCB1cGRhdGVWZXJzaW9uSW5GaWxlcyhucG1PbGRWZXJzaW9uKTtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb24obnBtTmV3VmVyc2lvbiwgcHJlcGFyZUdpdEh1YlJlbGVhc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignTm8gdmVyc2lvbiB1cGRhdGUgdHlwZSBwcm92aWRlZCcpO1xuICB9XG5cbiAgY29uc3QgaXNPYnNpZGlhblBsdWdpbiA9IGV4aXN0c1N5bmMocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uKSkgJiYgKGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpKS5uYW1lICE9PSAnb2JzaWRpYW4tZGV2LXV0aWxzJztcblxuICB2YWxpZGF0ZSh2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGF3YWl0IGNoZWNrR2l0SW5zdGFsbGVkKCk7XG4gIGF3YWl0IGNoZWNrR2l0UmVwb0NsZWFuKCk7XG4gIGF3YWl0IGNoZWNrR2l0SHViQ2xpSW5zdGFsbGVkKCk7XG4gIGF3YWl0IG5wbVJ1bignZm9ybWF0OmNoZWNrJyk7XG4gIGF3YWl0IG5wbVJ1bignc3BlbGxjaGVjaycpO1xuICBhd2FpdCBucG1SdW4oJ2xpbnQ6bWQnKTtcbiAgYXdhaXQgbnBtUnVuKCdidWlsZCcpO1xuICBhd2FpdCBucG1SdW4oJ2xpbnQnKTtcbiAgYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ3Rlc3QnKTtcbiAgYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ3Rlc3Q6aW50ZWdyYXRpb24nKTtcbiAgYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ3Rlc3Q6Y292ZXJhZ2UnKTtcblxuICBjb25zdCBuZXdWZXJzaW9uID0gYXdhaXQgZ2V0TmV3VmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzKG5ld1ZlcnNpb24pO1xuICBpZiAoaXNPYnNpZGlhblBsdWdpbikge1xuICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb24pO1xuICB9XG5cbiAgYXdhaXQgdXBkYXRlQ2hhbmdlbG9nKG5ld1ZlcnNpb24pO1xuICBhd2FpdCBhZGRVcGRhdGVkRmlsZXNUb0dpdChuZXdWZXJzaW9uKTtcbiAgYXdhaXQgYWRkR2l0VGFnKG5ld1ZlcnNpb24pO1xuICBhd2FpdCBnaXRQdXNoKCk7XG4gIGF3YWl0IHByZXBhcmVHaXRIdWJSZWxlYXNlPy4obmV3VmVyc2lvbik7XG4gIGF3YWl0IHB1Ymxpc2hHaXRIdWJSZWxlYXNlKG5ld1ZlcnNpb24sIGlzT2JzaWRpYW5QbHVnaW4pO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIHZlcnNpb24gaW4gdmFyaW91cyBmaWxlcywgaW5jbHVkaW5nIGBwYWNrYWdlLmpzb25gLCBgcGFja2FnZS1sb2NrLmpzb25gLFxuICogYW5kIE9ic2lkaWFuIHBsdWdpbiBtYW5pZmVzdHMgaWYgYXBwbGljYWJsZS5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBzdHJpbmcgdG8gdXBkYXRlIGluIHRoZSBmaWxlcy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlVmVyc2lvbkluRmlsZXMobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGVkaXRQYWNrYWdlSnNvbigocGFja2FnZUpzb24pID0+IHtcbiAgICBwYWNrYWdlSnNvbi52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgfSk7XG5cbiAgYXdhaXQgZWRpdFBhY2thZ2VMb2NrSnNvbih1cGRhdGUsIHsgc2hvdWxkU2tpcElmTWlzc2luZzogdHJ1ZSB9KTtcbiAgYXdhaXQgZWRpdE5wbVNocmlua1dyYXBKc29uKHVwZGF0ZSwgeyBzaG91bGRTa2lwSWZNaXNzaW5nOiB0cnVlIH0pO1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZShwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbik6IHZvaWQge1xuICAgIHBhY2thZ2VMb2NrSnNvbi52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICBjb25zdCBkZWZhdWx0UGFja2FnZSA9IHBhY2thZ2VMb2NrSnNvbi5wYWNrYWdlcz8uWycnXTtcbiAgICBpZiAoZGVmYXVsdFBhY2thZ2UpIHtcbiAgICAgIGRlZmF1bHRQYWNrYWdlLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZSB0byBlbnN1cmUgaXQgaXMgZWl0aGVyIGEgcmVjb2duaXplZCB0eXBlXG4gKiBvciBhIHZhbGlkIG1hbnVhbCB2ZXJzaW9uIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvblVwZGF0ZVR5cGUgLSBUaGUgdmVyc2lvbiB1cGRhdGUgdHlwZSB0byB2YWxpZGF0ZS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUgaXMgaW52YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlKHZlcnNpb25VcGRhdGVUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKGdldFZlcnNpb25VcGRhdGVUeXBlKHZlcnNpb25VcGRhdGVUeXBlKSA9PT0gVmVyc2lvblVwZGF0ZVR5cGUuSW52YWxpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdJbnZhbGlkIHZlcnNpb24gdXBkYXRlIHR5cGUuIFBsZWFzZSB1c2UgXFwnbWFqb3JcXCcsIFxcJ21pbm9yXFwnLCBcXCdwYXRjaFxcJywgXFwncHJlbWFqb3JcXCcsIFxcJ3ByZW1pbm9yXFwnLCBcXCdwcmVwYXRjaFxcJywgXFwncHJlcmVsZWFzZVxcJywgb3IgXFwneC55LnpbLXN1ZmZpeF1cXCcgZm9ybWF0LidcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRmV0Y2hlcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgT2JzaWRpYW4gZnJvbSB0aGUgR2l0SHViIHJlbGVhc2VzIEFQSS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBPYnNpZGlhbi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL3JlbGVhc2VzL2xhdGVzdCcpO1xuICBjb25zdCBvYnNpZGlhblJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPE9ic2lkaWFuUmVsZWFzZXNKc29uPjtcbiAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKG9ic2lkaWFuUmVsZWFzZXNKc29uLm5hbWUsICdDb3VsZCBub3QgZmluZCB0aGUgbmFtZSBvZiB0aGUgbGF0ZXN0IE9ic2lkaWFuIHJlbGVhc2UnKTtcbn1cblxuZnVuY3Rpb24gaXNQcmVSZWxlYXNlKHZlcnNpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJlcmVsZWFzZSh2ZXJzaW9uKSAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gdG9TaW5nbGVMaW5lKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKS5maWx0ZXIoQm9vbGVhbik7XG4gIHJldHVybiBsaW5lcy5qb2luKCcgJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtYW5pZmVzdEJldGFKc29uUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb24pO1xuICBpZiAoaXNQcmVSZWxlYXNlKG5ld1ZlcnNpb24pKSB7XG4gICAgYXdhaXQgY3AoXG4gICAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pLFxuICAgICAgbWFuaWZlc3RCZXRhSnNvblBhdGgsXG4gICAgICB7IGZvcmNlOiB0cnVlIH1cbiAgICApO1xuICAgIGF3YWl0IGVkaXRKc29uPE1hbmlmZXN0PihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEJldGFKc29uLCAobWFuaWZlc3QpID0+IHtcbiAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGxhdGVzdE9ic2lkaWFuVmVyc2lvbiA9IGF3YWl0IGdldExhdGVzdE9ic2lkaWFuVmVyc2lvbigpO1xuXG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiwgKG1hbmlmZXN0KSA9PiB7XG4gICAgICBtYW5pZmVzdC5taW5BcHBWZXJzaW9uID0gbGF0ZXN0T2JzaWRpYW5WZXJzaW9uO1xuICAgICAgbWFuaWZlc3QudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfSk7XG5cbiAgICBhd2FpdCBlZGl0SnNvbjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WZXJzaW9uc0pzb24sICh2ZXJzaW9ucykgPT4ge1xuICAgICAgdmVyc2lvbnNbbmV3VmVyc2lvbl0gPSBsYXRlc3RPYnNpZGlhblZlcnNpb247XG4gICAgfSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhtYW5pZmVzdEJldGFKc29uUGF0aCkpIHtcbiAgICAgIGF3YWl0IHJtKG1hbmlmZXN0QmV0YUpzb25QYXRoKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBjb3B5VXBkYXRlZE1hbmlmZXN0KCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx1QkFBdUI7QUFDaEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLCtCQUErQjtBQUN4QyxTQUFTLFlBQVk7QUFDckIsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLGdCQUFnQjtBQUN6QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGlDQUFpQztBQUMxQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUtQLE1BQU0sZ0JBQWdCO0FBT2YsSUFBSyxvQkFBTCxrQkFBS0EsdUJBQUw7QUFDTCxFQUFBQSxtQkFBQSxhQUFVO0FBQ1YsRUFBQUEsbUJBQUEsV0FBUTtBQUNSLEVBQUFBLG1CQUFBLFlBQVM7QUFDVCxFQUFBQSxtQkFBQSxXQUFRO0FBQ1IsRUFBQUEsbUJBQUEsV0FBUTtBQUNSLEVBQUFBLG1CQUFBLGNBQVc7QUFDWCxFQUFBQSxtQkFBQSxjQUFXO0FBQ1gsRUFBQUEsbUJBQUEsY0FBVztBQUNYLEVBQUFBLG1CQUFBLGdCQUFhO0FBVEgsU0FBQUE7QUFBQSxHQUFBO0FBMkNaLGVBQXNCLFVBQVUsWUFBbUM7QUFDakUsUUFBTSxhQUFhLGNBQWMsVUFBVSxPQUFPLFVBQVUsWUFBWSxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQzNGO0FBUUEsZUFBc0IscUJBQXFCLFlBQW1DO0FBQzVFLFFBQU0sYUFBYSxDQUFDLE9BQU8sT0FBTyxPQUFPLEdBQUcsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUM3RCxRQUFNLGFBQWEsQ0FBQyxPQUFPLFVBQVUsTUFBTSxrQkFBa0IsVUFBVSxJQUFJLGVBQWUsR0FBRyxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQ2hIO0FBU0EsZUFBc0IsMEJBQXlDO0FBQzdELE1BQUk7QUFDRixVQUFNLGFBQWEsZ0JBQWdCLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFBQSxFQUN0RCxRQUFRO0FBQ04sVUFBTSxJQUFJLE1BQU0sNkVBQTZFO0FBQUEsRUFDL0Y7QUFDRjtBQVNBLGVBQXNCLG9CQUFtQztBQUN2RCxNQUFJO0FBQ0YsVUFBTSxhQUFhLGlCQUFpQixFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQUEsRUFDdkQsUUFBUTtBQUNOLFVBQU0sSUFBSSxNQUFNLG1FQUFtRTtBQUFBLEVBQ3JGO0FBQ0Y7QUFTQSxlQUFzQixvQkFBbUM7QUFDdkQsTUFBSTtBQUNGLFVBQU0sU0FBUyxNQUFNLGFBQWEsZ0RBQWdELEVBQUUsU0FBUyxLQUFLLENBQUM7QUFDbkcsUUFBSSxRQUFRO0FBQ1YsWUFBTSxJQUFJLE1BQU07QUFBQSxJQUNsQjtBQUFBLEVBQ0YsUUFBUTtBQUNOLFVBQU0sSUFBSSxNQUFNLGtHQUFrRztBQUFBLEVBQ3BIO0FBQ0Y7QUFPQSxlQUFzQixzQkFBcUM7QUFDekQsUUFBTTtBQUFBLElBQ0osd0JBQXdCLHdCQUF3QixZQUFZO0FBQUEsSUFDNUQsd0JBQXdCLEtBQUssd0JBQXdCLFdBQVcsd0JBQXdCLFlBQVksQ0FBQztBQUFBLElBQ3JHLEVBQUUsT0FBTyxLQUFLO0FBQUEsRUFDaEI7QUFDRjtBQWFBLGVBQXNCLGNBQWMsbUJBQTRDO0FBQzlFLFFBQU0sY0FBYyxxQkFBcUIsaUJBQWlCO0FBQzFELE1BQUksZ0JBQWdCLHVCQUEwQjtBQUM1QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sY0FBYyxNQUFNLGdCQUFnQjtBQUMxQyxRQUFNLGlCQUFpQixZQUFZLFdBQVc7QUFFOUMsUUFBTSxjQUFjO0FBQ3BCLFFBQU0sbUJBQW1CLFlBQVksV0FBVyxLQUFLO0FBQ3JELFFBQU0sYUFBYSxtQkFDZixJQUFJLGdCQUFnQixhQUFhLGFBQWEsSUFDOUMsSUFBSSxnQkFBZ0IsV0FBVztBQUNuQyxvQkFBa0IsWUFBWSxxQ0FBcUMsY0FBYyxnQkFBZ0IsV0FBVyxHQUFHO0FBRS9HLFNBQU87QUFDVDtBQVFBLGVBQXNCLGdCQUFnQixZQUFxQztBQUN6RSxRQUFNLGdCQUFnQix3QkFBd0Isd0JBQXdCLFdBQVc7QUFDakYsUUFBTSxVQUFVLE1BQU0sU0FBUyxlQUFlLE9BQU87QUFDckQsUUFBTSxvQkFBb0IsV0FBVyxZQUFZLEtBQUssS0FBSztBQUMzRCxRQUFNLFFBQVEsSUFBSSxPQUFPO0FBQUEsS0FBUSxpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBQXNCLEVBQUUsS0FBSyxPQUFPO0FBRXRGLE1BQUksZUFBZSxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQUE7QUFBQSxJQUFTO0FBR3BELFFBQU0sUUFBUSxNQUFNLGFBQWEsK0JBQStCLEVBQUUsU0FBUyxLQUFLLENBQUMsR0FBRyxNQUFNLE9BQU87QUFDakcsUUFBTSxrQkFBa0IsS0FBSyxDQUFDO0FBQzlCLE1BQUk7QUFFSixRQUFNLFVBQVUsTUFBTSxhQUFhLG1DQUFtQyxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBRXZGLE1BQUksaUJBQWlCO0FBQ25CLGlCQUFhLEdBQUcsT0FBTyxZQUFZLGVBQWUsTUFBTSxVQUFVO0FBQUEsRUFDcEUsT0FBTztBQUNMLGlCQUFhLEdBQUcsT0FBTyxZQUFZLFVBQVU7QUFBQSxFQUMvQztBQUVBLGtCQUFnQix1QkFBdUIsVUFBVTtBQUNqRCxTQUFPO0FBQ1Q7QUFRTyxTQUFTLHFCQUFxQixtQkFBOEM7QUFDakYsUUFBTSx3QkFBd0I7QUFDOUIsVUFBUSx1QkFBdUI7QUFBQSxJQUM3QixLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQ0gsYUFBTztBQUFBLElBRVQ7QUFDRSxVQUFJLGlDQUFpQyxLQUFLLGlCQUFpQixHQUFHO0FBQzVELGVBQU87QUFBQSxNQUNUO0FBRUEsYUFBTztBQUFBLEVBQ1g7QUFDRjtBQU9BLGVBQXNCLFVBQXlCO0FBQzdDLFFBQU0sYUFBYSxrQ0FBa0MsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUN4RTtBQVdBLGVBQXNCLHFCQUFxQixZQUFvQixrQkFBMEM7QUFDdkcsTUFBSTtBQUVKLE1BQUksa0JBQWtCO0FBQ3BCLFVBQU0sY0FBYyx3QkFBd0Isd0JBQXdCLFNBQVM7QUFDN0UsVUFBTSxZQUFZLE1BQU0sYUFBYSxXQUFXO0FBQ2hELGdCQUFZLFVBQVUsSUFBSSxDQUFDLGFBQWEsS0FBSyxhQUFhLFFBQVEsQ0FBQztBQUFBLEVBQ3JFLE9BQU87QUFDTCxRQUFJLGVBQWUsTUFBTSxhQUFhLENBQUMsT0FBTyxRQUFRLHNCQUFzQiwwQkFBMEIsTUFBTSxRQUFRLEdBQUcsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUN4SSxVQUFNLFFBQVEsYUFBYSxRQUFRLFFBQVE7QUFDM0MsUUFBSSxVQUFVLElBQUk7QUFDaEIsWUFBTSxJQUFJLE1BQU0saUVBQWlFO0FBQUEsSUFDbkY7QUFDQSxtQkFBZSxhQUFhLE1BQU0sS0FBSztBQUN2QyxVQUFNLFNBQVMsS0FBSyxNQUFNLFlBQVk7QUFDdEMsZ0JBQVk7QUFBQSxNQUNWLEtBQUssMEJBQTBCLE1BQU0sT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUFBLE1BQ3ZELEtBQUssMEJBQTBCLE1BQU0sMEJBQTBCLFNBQVM7QUFBQSxJQUMxRTtBQUFBLEVBQ0Y7QUFFQSxjQUFZLFVBQVUsT0FBTyxDQUFDLGFBQWEsV0FBVyx3QkFBd0IsUUFBUSxDQUFDLENBQUM7QUFFeEYsUUFBTSxhQUFhO0FBQUEsSUFDakI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUc7QUFBQSxJQUNIO0FBQUEsSUFDQSxJQUFJLFVBQVU7QUFBQSxJQUNkLEdBQUksYUFBYSxVQUFVLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQztBQUFBLElBQ25EO0FBQUEsSUFDQTtBQUFBLEVBQ0YsR0FBRztBQUFBLElBQ0QsU0FBUztBQUFBLElBQ1QsT0FBTyxNQUFNLGdCQUFnQixVQUFVO0FBQUEsRUFDekMsQ0FBQztBQUNIO0FBV0EsZUFBc0IsZ0JBQWdCLFlBQW1DO0FBQ3ZFLFFBQU0scUJBQXFCO0FBQzNCLFFBQU0sZ0JBQWdCLHdCQUF3Qix3QkFBd0IsV0FBVztBQUNqRixNQUFJO0FBQ0osTUFBSSxXQUFXLGFBQWEsR0FBRztBQUM3QixVQUFNLFVBQVUsTUFBTSxTQUFTLGVBQWUsT0FBTztBQUNyRCw2QkFBeUIsUUFBUSxNQUFNLElBQUksRUFBRSxNQUFNLGtCQUFrQjtBQUNyRSxRQUFJLHVCQUF1QixHQUFHLEVBQUUsTUFBTSxJQUFJO0FBQ3hDLDZCQUF1QixJQUFJO0FBQUEsSUFDN0I7QUFBQSxFQUNGLE9BQU87QUFDTCw2QkFBeUIsQ0FBQztBQUFBLEVBQzVCO0FBRUEsUUFBTSxVQUFVLFdBQVcsdUJBQXVCLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRTtBQUNyRSxRQUFNLGNBQWMsVUFBVSxHQUFHLE9BQU8sV0FBVztBQUNuRCxRQUFNLG9CQUFvQixNQUFNLGFBQWEsV0FBVyxXQUFXLGtDQUFrQyxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQ3RILFFBQU0saUJBQWlCLGtCQUFrQixNQUFNLElBQUksRUFBRSxPQUFPLE9BQU8sRUFBRSxJQUFJLFlBQVk7QUFFckYsTUFBSSxlQUFlO0FBQUE7QUFBQSxLQUFxQixVQUFVO0FBQUE7QUFBQTtBQUVsRCxhQUFXLFdBQVcsZ0JBQWdCO0FBQ3BDLG9CQUFnQixLQUFLLE9BQU87QUFBQTtBQUFBLEVBQzlCO0FBRUEsTUFBSSx1QkFBdUIsU0FBUyxHQUFHO0FBQ3JDLG9CQUFnQjtBQUNoQixlQUFXLFFBQVEsd0JBQXdCO0FBQ3pDLHNCQUFnQixHQUFHLElBQUk7QUFBQTtBQUFBLElBQ3pCO0FBQUEsRUFDRjtBQUVBLFFBQU0sVUFBVSxlQUFlLGNBQWMsT0FBTztBQUVwRCxRQUFNLGNBQWMsTUFBTSxhQUFhLGtCQUFrQjtBQUFBLElBQ3ZELFNBQVM7QUFBQSxJQUNULHNCQUFzQjtBQUFBLEVBQ3hCLENBQUM7QUFDRCxRQUFNLGtCQUFrQixlQUFlLFNBQVM7QUFDaEQsTUFBSSxhQUFhO0FBQ2Ysb0JBQWdCLHFCQUFxQix3QkFBd0IsV0FBVyxzREFBc0Q7QUFDOUgsVUFBTSxhQUFhLENBQUMsUUFBUSxNQUFNLGFBQWEsR0FBRztBQUFBLE1BQ2hELFNBQVM7QUFBQSxNQUNULHNCQUFzQjtBQUFBLElBQ3hCLENBQUM7QUFBQSxFQUNILE9BQU87QUFDTCxvQkFBZ0IsNkVBQTZFO0FBQzdGLFVBQU0sZ0JBQWdCLFFBQVEsT0FBTyxRQUFRLE1BQU0sRUFBRTtBQUFBLE1BQ25ELHFCQUFxQix3QkFBd0IsV0FBVztBQUFBLElBQzFEO0FBQUEsRUFDRjtBQUNGO0FBbUJBLGVBQXNCLGNBQWMsbUJBQTRCLHNCQUE2RTtBQUMzSSxNQUFJLENBQUMsbUJBQW1CO0FBQ3RCLFVBQU0sZ0JBQWdCLFFBQVEsSUFBSSxpQkFBaUI7QUFDbkQsVUFBTSxnQkFBZ0IsUUFBUSxJQUFJLGlCQUFpQjtBQUVuRCxRQUFJLGlCQUFpQixlQUFlO0FBQ2xDLFlBQU0scUJBQXFCLGFBQWE7QUFDeEMsWUFBTSxjQUFjLGVBQWUsb0JBQW9CO0FBQ3ZEO0FBQUEsSUFDRjtBQUVBLFVBQU0sSUFBSSxNQUFNLGlDQUFpQztBQUFBLEVBQ25EO0FBRUEsUUFBTSxtQkFBbUIsV0FBVyx3QkFBd0Isd0JBQXdCLFlBQVksQ0FBQyxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUztBQUV6SSxXQUFTLGlCQUFpQjtBQUMxQixRQUFNLGtCQUFrQjtBQUN4QixRQUFNLGtCQUFrQjtBQUN4QixRQUFNLHdCQUF3QjtBQUM5QixRQUFNLE9BQU8sY0FBYztBQUMzQixRQUFNLE9BQU8sWUFBWTtBQUN6QixRQUFNLE9BQU8sU0FBUztBQUN0QixRQUFNLE9BQU8sT0FBTztBQUNwQixRQUFNLE9BQU8sTUFBTTtBQUNuQixRQUFNLGVBQWUsTUFBTTtBQUMzQixRQUFNLGVBQWUsa0JBQWtCO0FBQ3ZDLFFBQU0sZUFBZSxlQUFlO0FBRXBDLFFBQU0sYUFBYSxNQUFNLGNBQWMsaUJBQWlCO0FBQ3hELFFBQU0scUJBQXFCLFVBQVU7QUFDckMsTUFBSSxrQkFBa0I7QUFDcEIsVUFBTSw4QkFBOEIsVUFBVTtBQUFBLEVBQ2hEO0FBRUEsUUFBTSxnQkFBZ0IsVUFBVTtBQUNoQyxRQUFNLHFCQUFxQixVQUFVO0FBQ3JDLFFBQU0sVUFBVSxVQUFVO0FBQzFCLFFBQU0sUUFBUTtBQUNkLFFBQU0sdUJBQXVCLFVBQVU7QUFDdkMsUUFBTSxxQkFBcUIsWUFBWSxnQkFBZ0I7QUFDekQ7QUFTQSxlQUFzQixxQkFBcUIsWUFBbUM7QUFDNUUsUUFBTSxnQkFBZ0IsQ0FBQyxnQkFBZ0I7QUFDckMsZ0JBQVksVUFBVTtBQUFBLEVBQ3hCLENBQUM7QUFFRCxRQUFNLG9CQUFvQixRQUFRLEVBQUUscUJBQXFCLEtBQUssQ0FBQztBQUMvRCxRQUFNLHNCQUFzQixRQUFRLEVBQUUscUJBQXFCLEtBQUssQ0FBQztBQUVqRSxXQUFTLE9BQU8saUJBQXdDO0FBQ3RELG9CQUFnQixVQUFVO0FBQzFCLFVBQU0saUJBQWlCLGdCQUFnQixXQUFXLEVBQUU7QUFDcEQsUUFBSSxnQkFBZ0I7QUFDbEIscUJBQWUsVUFBVTtBQUFBLElBQzNCO0FBQUEsRUFDRjtBQUNGO0FBU08sU0FBUyxTQUFTLG1CQUFpQztBQUN4RCxNQUFJLHFCQUFxQixpQkFBaUIsTUFBTSx5QkFBMkI7QUFDekUsVUFBTSxJQUFJO0FBQUEsTUFDUjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7QUFPQSxlQUFlLDJCQUE0QztBQUV6RCxRQUFNLFdBQVcsTUFBTSxNQUFNLDJFQUEyRTtBQUN4RyxRQUFNLHVCQUF1QixNQUFNLFNBQVMsS0FBSztBQUNqRCxTQUFPLGtCQUFrQixxQkFBcUIsTUFBTSx3REFBd0Q7QUFDOUc7QUFFQSxTQUFTLGFBQWEsU0FBMEI7QUFDOUMsU0FBTyxXQUFXLE9BQU8sTUFBTTtBQUNqQztBQUVBLFNBQVMsYUFBYSxLQUFxQjtBQUN6QyxRQUFNLFFBQVEsSUFBSSxNQUFNLE9BQU8sRUFBRSxPQUFPLE9BQU87QUFDL0MsU0FBTyxNQUFNLEtBQUssR0FBRztBQUN2QjtBQUVBLGVBQWUsOEJBQThCLFlBQW1DO0FBQzlFLFFBQU0sdUJBQXVCLHdCQUF3Qix3QkFBd0IsZ0JBQWdCO0FBQzdGLE1BQUksYUFBYSxVQUFVLEdBQUc7QUFDNUIsVUFBTTtBQUFBLE1BQ0osd0JBQXdCLHdCQUF3QixZQUFZO0FBQUEsTUFDNUQ7QUFBQSxNQUNBLEVBQUUsT0FBTyxLQUFLO0FBQUEsSUFDaEI7QUFDQSxVQUFNLFNBQW1CLHdCQUF3QixrQkFBa0IsQ0FBQyxhQUFhO0FBQy9FLGVBQVMsVUFBVTtBQUFBLElBQ3JCLENBQUM7QUFBQSxFQUNILE9BQU87QUFDTCxVQUFNLHdCQUF3QixNQUFNLHlCQUF5QjtBQUU3RCxVQUFNLFNBQW1CLHdCQUF3QixjQUFjLENBQUMsYUFBYTtBQUMzRSxlQUFTLGdCQUFnQjtBQUN6QixlQUFTLFVBQVU7QUFBQSxJQUNyQixDQUFDO0FBRUQsVUFBTSxTQUFpQyx3QkFBd0IsY0FBYyxDQUFDLGFBQWE7QUFDekYsZUFBUyxVQUFVLElBQUk7QUFBQSxJQUN6QixDQUFDO0FBRUQsUUFBSSxXQUFXLG9CQUFvQixHQUFHO0FBQ3BDLFlBQU0sR0FBRyxvQkFBb0I7QUFBQSxJQUMvQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG9CQUFvQjtBQUM1QjsiLAogICJuYW1lcyI6IFsiVmVyc2lvblVwZGF0ZVR5cGUiXQp9Cg==
371
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy92ZXJzaW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB2ZXJzaW9uIHVwZGF0ZXMgaW4gYSBwcm9qZWN0LlxuICogSXQgaW5jbHVkZXMgdGFza3Mgc3VjaCBhcyB2YWxpZGF0aW5nIHZlcnNpb24gdXBkYXRlIHR5cGVzLCBjaGVja2luZyB0aGUgc3RhdGVcbiAqIG9mIEdpdCBhbmQgR2l0SHViIENMSSwgdXBkYXRpbmcgdmVyc2lvbiBudW1iZXJzIGluIGZpbGVzLCBhbmQgcGVyZm9ybWluZ1xuICogR2l0IG9wZXJhdGlvbnMgc3VjaCBhcyB0YWdnaW5nIGFuZCBwdXNoaW5nLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVsZWFzZVR5cGUgfSBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgcmVhZEZpbGUsXG4gIHJtLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBjcmVhdGVJbnRlcmZhY2UgfSBmcm9tICdub2RlOnJlYWRsaW5lL3Byb21pc2VzJztcbmltcG9ydCB7XG4gIGluYyxcbiAgcHJlcmVsZWFzZVxufSBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VMb2NrSnNvbiB9IGZyb20gJy4vbnBtLnRzJztcblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGFzc2VydE5vbk51bGxhYmxlLFxuICBlbnN1cmVOb25OdWxsYWJsZVxufSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL2ZzLnRzJztcbmltcG9ydCB7IGVkaXRKc29uIH0gZnJvbSAnLi9qc29uLnRzJztcbmltcG9ydCB7XG4gIG5wbVJ1bixcbiAgbnBtUnVuT3B0aW9uYWxcbn0gZnJvbSAnLi9ucG0tcnVuLnRzJztcbmltcG9ydCB7XG4gIGVkaXROcG1TaHJpbmtXcmFwSnNvbixcbiAgZWRpdFBhY2thZ2VKc29uLFxuICBlZGl0UGFja2FnZUxvY2tKc29uLFxuICByZWFkUGFja2FnZUpzb25cbn0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuL3Jvb3QudHMnO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHByZS1yZWxlYXNlIGlkZW50aWZpZXIgdXNlZCBmb3IgcHJlLXJlbGVhc2UgdmVyc2lvbnMuXG4gKi9cbmNvbnN0IERFRkFVTFRfUFJFSUQgPSAnYmV0YSc7XG5cbi8qKlxuICogRW51bSByZXByZXNlbnRpbmcgZGlmZmVyZW50IHR5cGVzIG9mIHZlcnNpb24gdXBkYXRlcy5cbiAqXG4gKiBBbGlnbnMgd2l0aCBucG0ncyBgbnBtIHZlcnNpb25gIGluY3JlbWVudCB0eXBlcyBwbHVzIGBNYW51YWxgIGZvciBleHBsaWNpdCB2ZXJzaW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gVmVyc2lvblVwZGF0ZVR5cGUge1xuICBJbnZhbGlkID0gJ2ludmFsaWQnLFxuICBNYWpvciA9ICdtYWpvcicsXG4gIE1hbnVhbCA9ICdtYW51YWwnLFxuICBNaW5vciA9ICdtaW5vcicsXG4gIFBhdGNoID0gJ3BhdGNoJyxcbiAgUHJlTWFqb3IgPSAncHJlbWFqb3InLFxuICBQcmVNaW5vciA9ICdwcmVtaW5vcicsXG4gIFByZVBhdGNoID0gJ3ByZXBhdGNoJyxcbiAgUHJlUmVsZWFzZSA9ICdwcmVyZWxlYXNlJ1xufVxuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSBtYW5pZmVzdCBmaWxlIGZvcm1hdCBmb3IgT2JzaWRpYW4gcGx1Z2lucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBBIG1pbmltdW0gT2JzaWRpYW4gdmVyc2lvbiByZXF1aXJlZCBmb3IgdGhlIHBsdWdpbi5cbiAgICovXG4gIG1pbkFwcFZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogQSB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4uXG4gICAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIHN0cnVjdHVyZSBvZiBPYnNpZGlhbiByZWxlYXNlcyBKU09OLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuUmVsZWFzZXNKc29uIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcmVsZWFzZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgR2l0IHRhZyBmb3IgdGhlIG5ldyB2ZXJzaW9uLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciB0byB1c2UgZm9yIHRoZSB0YWcuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRhZyBoYXMgYmVlbiBjcmVhdGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkR2l0VGFnKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoYGdpdCB0YWcgLWEgJHtuZXdWZXJzaW9ufSAtbSAke25ld1ZlcnNpb259IC0tZm9yY2VgLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG59XG5cbi8qKlxuICogQWRkcyB1cGRhdGVkIGZpbGVzIHRvIHRoZSBHaXQgc3RhZ2luZyBhcmVhIGFuZCBjb21taXRzIHRoZW0gd2l0aCB0aGUgbmV3IHZlcnNpb24gbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgdXNlZCBhcyB0aGUgY29tbWl0IG1lc3NhZ2UuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGVzIGhhdmUgYmVlbiBhZGRlZCBhbmQgY29tbWl0dGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVXBkYXRlZEZpbGVzVG9HaXQobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdhZGQnLCAnLS1hbGwnXSwgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWydnaXQnLCAnY29tbWl0JywgJy1tJywgYGNob3JlOiByZWxlYXNlICR7bmV3VmVyc2lvbn1gLCAnLS1hbGxvdy1lbXB0eSddLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBHaXRIdWIgQ0xJIGlzIGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtLlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgR2l0SHViIENMSSBpcyBub3QgaW5zdGFsbGVkLlxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEdpdEh1YiBDTEkgaXMgbm90IGluc3RhbGxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrR2l0SHViQ2xpSW5zdGFsbGVkKCk6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2ggLS12ZXJzaW9uJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdEh1YiBDTEkgaXMgbm90IGluc3RhbGxlZC4gUGxlYXNlIGluc3RhbGwgaXQgZnJvbSBodHRwczovL2NsaS5naXRodWIuY29tLycpO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIEdpdCBpcyBpbnN0YWxsZWQgb24gdGhlIHN5c3RlbS5cbiAqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgR2l0IGlzIG5vdCBpbnN0YWxsZWQuXG4gKlxuICogQHRocm93cyBFcnJvciBpZiBHaXQgaXMgbm90IGluc3RhbGxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrR2l0SW5zdGFsbGVkKCk6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IC0tdmVyc2lvbicsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdHaXQgaXMgbm90IGluc3RhbGxlZC4gUGxlYXNlIGluc3RhbGwgaXQgZnJvbSBodHRwczovL2dpdC1zY20uY29tLycpO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBHaXQgcmVwb3NpdG9yeSBpcyBjbGVhbiwgbWVhbmluZyB0aGVyZSBhcmUgbm8gdW5jb21taXR0ZWQgY2hhbmdlcy5cbiAqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIEdpdCByZXBvc2l0b3J5IGlzIG5vdCBjbGVhbi5cbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBHaXQgcmVwb3NpdG9yeSBpcyBub3QgY2xlYW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0dpdFJlcG9DbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGRvdXQgPSBhd2FpdCBleGVjRnJvbVJvb3QoJ2dpdCBzdGF0dXMgLS1wb3JjZWxhaW4gLS11bnRyYWNrZWQtZmlsZXM9YWxsJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICAgIGlmIChzdGRvdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdHaXQgcmVwb3NpdG9yeSBpcyBub3QgY2xlYW4uIFBsZWFzZSBjb21taXQgb3Igc3Rhc2ggeW91ciBjaGFuZ2VzIGJlZm9yZSByZWxlYXNpbmcgYSBuZXcgdmVyc2lvbi4nKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBmaWxlIHRvIHRoZSBkaXN0cmlidXRpb24gYnVpbGQgZm9sZGVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29weSBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5VXBkYXRlZE1hbmlmZXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjcChcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pLFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pKSxcbiAgICB7IGZvcmNlOiB0cnVlIH1cbiAgKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBuZXcgdmVyc2lvbiBzdHJpbmcgYmFzZWQgb24gdGhlIGN1cnJlbnQgdmVyc2lvbiBhbmQgdGhlIHNwZWNpZmllZCB1cGRhdGUgdHlwZS5cbiAqXG4gKiBVc2VzIHRoZSBgc2VtdmVyYCBwYWNrYWdlIHRvIGNvbXB1dGUgdGhlIG5leHQgdmVyc2lvbiwgc3VwcG9ydGluZyBhbGwgbnBtIGluY3JlbWVudCB0eXBlczpcbiAqIGBtYWpvcmAsIGBtaW5vcmAsIGBwYXRjaGAsIGBwcmVtYWpvcmAsIGBwcmVtaW5vcmAsIGBwcmVwYXRjaGAsIGFuZCBgcHJlcmVsZWFzZWAuXG4gKiBQcmUtcmVsZWFzZSB2ZXJzaW9ucyB1c2UgdGhlIGBiZXRhYCBpZGVudGlmaWVyIGJ5IGRlZmF1bHQgKGUuZy4sIGAxLjIuNC1iZXRhLjBgKS5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvblVwZGF0ZVR5cGUgLSBUaGUgdHlwZSBvZiB2ZXJzaW9uIHVwZGF0ZSBvciBhbiBleHBsaWNpdCB2ZXJzaW9uIHN0cmluZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5ldyB2ZXJzaW9uIHN0cmluZy5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGN1cnJlbnQgdmVyc2lvbiBpcyBpbnZhbGlkIG9yIHRoZSBpbmNyZW1lbnQgZmFpbHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXROZXdWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB2ZXJzaW9uVHlwZSA9IGdldFZlcnNpb25VcGRhdGVUeXBlKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgaWYgKHZlcnNpb25UeXBlID09PSBWZXJzaW9uVXBkYXRlVHlwZS5NYW51YWwpIHtcbiAgICByZXR1cm4gdmVyc2lvblVwZGF0ZVR5cGU7XG4gIH1cblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IHBhY2thZ2VKc29uLnZlcnNpb24gPz8gJyc7XG5cbiAgY29uc3QgcmVsZWFzZVR5cGUgPSB2ZXJzaW9uVHlwZSBhcyBSZWxlYXNlVHlwZTtcbiAgY29uc3QgaXNQcmVSZWxlYXNlVHlwZSA9IHJlbGVhc2VUeXBlLnN0YXJ0c1dpdGgoJ3ByZScpO1xuICBjb25zdCBuZXdWZXJzaW9uID0gaXNQcmVSZWxlYXNlVHlwZVxuICAgID8gaW5jKGN1cnJlbnRWZXJzaW9uLCByZWxlYXNlVHlwZSwgREVGQVVMVF9QUkVJRClcbiAgICA6IGluYyhjdXJyZW50VmVyc2lvbiwgcmVsZWFzZVR5cGUpO1xuICBhc3NlcnROb25OdWxsYWJsZShuZXdWZXJzaW9uLCBgRmFpbGVkIHRvIGluY3JlbWVudCB2ZXJzaW9uIGZyb20gJyR7Y3VycmVudFZlcnNpb259JyB3aXRoIHR5cGUgJyR7dmVyc2lvblR5cGV9J2ApO1xuXG4gIHJldHVybiBuZXdWZXJzaW9uO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgcmVsZWFzZSBub3RlcyBmb3IgYSBzcGVjaWZpYyB2ZXJzaW9uIGZyb20gdGhlIGNoYW5nZWxvZy5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgZm9yIHdoaWNoIHRvIGdldCB0aGUgcmVsZWFzZSBub3Rlcy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlbGVhc2Ugbm90ZXMgZm9yIHRoZSBzcGVjaWZpZWQgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbGVhc2VOb3RlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWQpO1xuICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoY2hhbmdlbG9nUGF0aCwgJ3V0Zi04Jyk7XG4gIGNvbnN0IG5ld1ZlcnNpb25Fc2NhcGVkID0gcmVwbGFjZUFsbChuZXdWZXJzaW9uLCAnLicsICdcXFxcLicpO1xuICBjb25zdCBtYXRjaCA9IG5ldyBSZWdFeHAoYFxcbiMjICR7bmV3VmVyc2lvbkVzY2FwZWR9XFxuXFxuKCgufFxcbikrPylcXG5cXG4jI2ApLmV4ZWMoY29udGVudCk7XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCB0cmFja3Mgb3B0aW9uYWwgY2hhaW5pbmcgYW5kIHRlcm5hcnkgYXMgc2VwYXJhdGUgYnJhbmNoZXM7IGJvdGggcGF0aHMgYXJlIHRlc3RlZC4gKi9cbiAgbGV0IHJlbGVhc2VOb3RlcyA9IG1hdGNoPy5bMV0gPyBgJHttYXRjaFsxXX1cXG5cXG5gIDogJyc7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG5cbiAgY29uc3QgdGFncyA9IChhd2FpdCBleGVjRnJvbVJvb3QoJ2dpdCB0YWcgLS1zb3J0PS1jcmVhdG9yZGF0ZScsIHsgaXNRdWlldDogdHJ1ZSB9KSkuc3BsaXQoL1xccj9cXG4vKTtcbiAgY29uc3QgcHJldmlvdXNWZXJzaW9uID0gdGFnc1sxXTtcbiAgbGV0IGNoYW5nZXNVcmw6IHN0cmluZztcblxuICBjb25zdCByZXBvVXJsID0gYXdhaXQgZXhlY0Zyb21Sb290KCdnaCByZXBvIHZpZXcgLS1qc29uIHVybCAtcSAudXJsJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xuXG4gIGlmIChwcmV2aW91c1ZlcnNpb24pIHtcbiAgICBjaGFuZ2VzVXJsID0gYCR7cmVwb1VybH0vY29tcGFyZS8ke3ByZXZpb3VzVmVyc2lvbn0uLi4ke25ld1ZlcnNpb259YDtcbiAgfSBlbHNlIHtcbiAgICBjaGFuZ2VzVXJsID0gYCR7cmVwb1VybH0vY29tbWl0cy8ke25ld1ZlcnNpb259YDtcbiAgfVxuXG4gIHJlbGVhc2VOb3RlcyArPSBgKipGdWxsIENoYW5nZWxvZyoqOiAke2NoYW5nZXNVcmx9YDtcbiAgcmV0dXJuIHJlbGVhc2VOb3Rlcztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIHZlcnNpb24gdXBkYXRlIGJhc2VkIG9uIHRoZSBpbnB1dCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIGlucHV0IHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgY29ycmVzcG9uZGluZyBgVmVyc2lvblVwZGF0ZVR5cGVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2lvblVwZGF0ZVR5cGUodmVyc2lvblVwZGF0ZVR5cGU6IHN0cmluZyk6IFZlcnNpb25VcGRhdGVUeXBlIHtcbiAgY29uc3QgdmVyc2lvblVwZGF0ZVR5cGVFbnVtID0gdmVyc2lvblVwZGF0ZVR5cGUgYXMgVmVyc2lvblVwZGF0ZVR5cGU7XG4gIHN3aXRjaCAodmVyc2lvblVwZGF0ZVR5cGVFbnVtKSB7XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5NYWpvcjpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLk1pbm9yOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuUGF0Y2g6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5QcmVNYWpvcjpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLlByZU1pbm9yOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuUHJlUGF0Y2g6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5QcmVSZWxlYXNlOlxuICAgICAgcmV0dXJuIHZlcnNpb25VcGRhdGVUeXBlRW51bTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAoL15cXGQrXFwuXFxkK1xcLlxcZCsoPzotW1xcd1xcZC4tXSspPyQvLnRlc3QodmVyc2lvblVwZGF0ZVR5cGUpKSB7XG4gICAgICAgIHJldHVybiBWZXJzaW9uVXBkYXRlVHlwZS5NYW51YWw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBWZXJzaW9uVXBkYXRlVHlwZS5JbnZhbGlkO1xuICB9XG59XG5cbi8qKlxuICogUHVzaGVzIGNvbW1pdHMgYW5kIHRhZ3MgdG8gdGhlIHJlbW90ZSBHaXQgcmVwb3NpdG9yeS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHB1c2ggb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2l0UHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgcHVzaCAtLWZvbGxvdy10YWdzIC0tZm9yY2UnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG59XG5cbi8qKlxuICogUHVibGlzaGVzIGEgR2l0SHViIHJlbGVhc2UgZm9yIHRoZSBuZXcgdmVyc2lvbi5cbiAqXG4gKiBIYW5kbGVzIHRoZSBjcmVhdGlvbiBvZiBhIHJlbGVhc2UgYW5kIHVwbG9hZGluZyBmaWxlcyBmb3IgZWl0aGVyIGFuIE9ic2lkaWFuIHBsdWdpbiBvciBhbm90aGVyIHByb2plY3QuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIGZvciB0aGUgcmVsZWFzZS5cbiAqIEBwYXJhbSBpc09ic2lkaWFuUGx1Z2luIC0gQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHByb2plY3QgaXMgYW4gT2JzaWRpYW4gcGx1Z2luLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSByZWxlYXNlIGhhcyBiZWVuIHB1Ymxpc2hlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1Ymxpc2hHaXRIdWJSZWxlYXNlKG5ld1ZlcnNpb246IHN0cmluZywgaXNPYnNpZGlhblBsdWdpbjogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICBsZXQgZmlsZVBhdGhzOiBzdHJpbmdbXTtcblxuICBpZiAoaXNPYnNpZGlhblBsdWdpbikge1xuICAgIGNvbnN0IGJ1aWxkRm9sZGVyID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkKTtcbiAgICBjb25zdCBmaWxlTmFtZXMgPSBhd2FpdCByZWFkZGlyUG9zaXgoYnVpbGRGb2xkZXIpO1xuICAgIGZpbGVQYXRocyA9IGZpbGVOYW1lcy5tYXAoKGZpbGVOYW1lKSA9PiBqb2luKGJ1aWxkRm9sZGVyLCBmaWxlTmFtZSkpO1xuICB9IGVsc2Uge1xuICAgIGxldCByZXN1bHRPdXRwdXQgPSBhd2FpdCBleGVjRnJvbVJvb3QoWyducG0nLCAncGFjaycsICctLXBhY2stZGVzdGluYXRpb24nLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsICctLWpzb24nXSwgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICAgIGNvbnN0IGluZGV4ID0gcmVzdWx0T3V0cHV0LmluZGV4T2YoJ1tcXG4gIHsnKTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmaW5kIHRoZSBzdGFydCBvZiB0aGUgSlNPTiBhcnJheSBpbiB0aGUgcmVzdWx0IG91dHB1dCcpO1xuICAgIH1cbiAgICByZXN1bHRPdXRwdXQgPSByZXN1bHRPdXRwdXQuc2xpY2UoaW5kZXgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0T3V0cHV0KSBhcyBbeyBmaWxlbmFtZTogc3RyaW5nIH1dO1xuICAgIGZpbGVQYXRocyA9IFtcbiAgICAgIGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCByZXN1bHRbMF0uZmlsZW5hbWUpLFxuICAgICAgam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuU3R5bGVzQ3NzKVxuICAgIF07XG4gIH1cblxuICBmaWxlUGF0aHMgPSBmaWxlUGF0aHMuZmlsdGVyKChmaWxlUGF0aCkgPT4gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZShmaWxlUGF0aCkpKTtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgICdnaCcsXG4gICAgJ3JlbGVhc2UnLFxuICAgICdjcmVhdGUnLFxuICAgIG5ld1ZlcnNpb24sXG4gICAgLi4uZmlsZVBhdGhzLFxuICAgICctLXRpdGxlJyxcbiAgICBgdiR7bmV3VmVyc2lvbn1gLFxuICAgIC4uLihpc1ByZVJlbGVhc2UobmV3VmVyc2lvbikgPyBbJy0tcHJlcmVsZWFzZSddIDogW10pLFxuICAgICctLW5vdGVzLWZpbGUnLFxuICAgICctJ1xuICBdLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzdGRpbjogYXdhaXQgZ2V0UmVsZWFzZU5vdGVzKG5ld1ZlcnNpb24pXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIGNoYW5nZWxvZyBmaWxlIHdpdGggbmV3IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGNvbW1pdCBtZXNzYWdlcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlYWRzIHRoZSBjdXJyZW50IGNoYW5nZWxvZywgYXBwZW5kcyBuZXcgZW50cmllcyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uLFxuICogYW5kIHByb21wdHMgdGhlIHVzZXIgdG8gcmV2aWV3IHRoZSBjaGFuZ2VzLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciB0byBiZSBhZGRlZCB0byB0aGUgY2hhbmdlbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjaGFuZ2Vsb2cgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2hhbmdlbG9nKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBIRUFERVJfTElORVNfQ09VTlQgPSAyO1xuICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWQpO1xuICBsZXQgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lczogc3RyaW5nW107XG4gIGlmIChleGlzdHNTeW5jKGNoYW5nZWxvZ1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNoYW5nZWxvZ1BhdGgsICd1dGYtOCcpO1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKS5zbGljZShIRUFERVJfTElORVNfQ09VTlQpO1xuICAgIGlmIChwcmV2aW91c0NoYW5nZWxvZ0xpbmVzLmF0KC0xKSA9PT0gJycpIHtcbiAgICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMucG9wKCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBbXTtcbiAgfVxuXG4gIGNvbnN0IGxhc3RUYWcgPSByZXBsYWNlQWxsKHByZXZpb3VzQ2hhbmdlbG9nTGluZXNbMF0gPz8gJycsICcjIyAnLCAnJyk7XG4gIGNvbnN0IGNvbW1pdFJhbmdlID0gbGFzdFRhZyA/IGAke2xhc3RUYWd9Li5IRUFEYCA6ICdIRUFEJztcbiAgY29uc3QgY29tbWl0TWVzc2FnZXNTdHIgPSBhd2FpdCBleGVjRnJvbVJvb3QoYGdpdCBsb2cgJHtjb21taXRSYW5nZX0gLS1mb3JtYXQ9JUIgLS1maXJzdC1wYXJlbnQgLXpgLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGNvbnN0IGNvbW1pdE1lc3NhZ2VzID0gY29tbWl0TWVzc2FnZXNTdHIuc3BsaXQoJ1xcMCcpLmZpbHRlcihCb29sZWFuKS5tYXAodG9TaW5nbGVMaW5lKTtcblxuICBsZXQgbmV3Q2hhbmdlTG9nID0gYCMgQ0hBTkdFTE9HXFxuXFxuIyMgJHtuZXdWZXJzaW9ufVxcblxcbmA7XG5cbiAgZm9yIChjb25zdCBtZXNzYWdlIG9mIGNvbW1pdE1lc3NhZ2VzKSB7XG4gICAgbmV3Q2hhbmdlTG9nICs9IGAtICR7bWVzc2FnZX1cXG5gO1xuICB9XG5cbiAgaWYgKHByZXZpb3VzQ2hhbmdlbG9nTGluZXMubGVuZ3RoID4gMCkge1xuICAgIG5ld0NoYW5nZUxvZyArPSAnXFxuJztcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lcykge1xuICAgICAgbmV3Q2hhbmdlTG9nICs9IGAke2xpbmV9XFxuYDtcbiAgICB9XG4gIH1cblxuICBhd2FpdCB3cml0ZUZpbGUoY2hhbmdlbG9nUGF0aCwgbmV3Q2hhbmdlTG9nLCAndXRmLTgnKTtcblxuICBjb25zdCBjb2RlVmVyc2lvbiA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnY29kZSAtLXZlcnNpb24nLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICB9KTtcbiAgY29uc3QgdmVyc2lvbkRlYnVnZ2VyID0gZ2V0TGliRGVidWdnZXIoJ1ZlcnNpb24nKTtcbiAgaWYgKGNvZGVWZXJzaW9uKSB7XG4gICAgdmVyc2lvbkRlYnVnZ2VyKGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBDbG9zZSBWaXN1YWwgU3R1ZGlvIENvZGUgd2hlbiB5b3UgYXJlIGRvbmUuLi5gKTtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoWydjb2RlJywgJy13JywgY2hhbmdlbG9nUGF0aF0sIHtcbiAgICAgIGlzUXVpZXQ6IHRydWUsXG4gICAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHZlcnNpb25EZWJ1Z2dlcignQ291bGQgbm90IGZpbmQgVmlzdWFsIFN0dWRpbyBDb2RlIGluIHlvdXIgUEFUSC4gVXNpbmcgY29uc29sZSBtb2RlIGluc3RlYWQuJyk7XG4gICAgYXdhaXQgY3JlYXRlSW50ZXJmYWNlKHByb2Nlc3Muc3RkaW4sIHByb2Nlc3Muc3Rkb3V0KS5xdWVzdGlvbihcbiAgICAgIGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBQcmVzcyBFbnRlciB3aGVuIHlvdSBhcmUgZG9uZS4uLmBcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmVyc2lvbiBvZiB0aGUgcHJvamVjdCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBzZXJpZXMgb2YgdGFza3MgdG8gaGFuZGxlIHZlcnNpb24gdXBkYXRlczpcbiAqIDEuIFZhbGlkYXRlcyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZS5cbiAqIDIuIENoZWNrcyBpZiBHaXQgYW5kIEdpdEh1YiBDTEkgYXJlIGluc3RhbGxlZC5cbiAqIDMuIFZlcmlmaWVzIHRoYXQgdGhlIEdpdCByZXBvc2l0b3J5IGlzIGNsZWFuLlxuICogNC4gUnVucyBzcGVsbGNoZWNrIGFuZCBsaW50aW5nLlxuICogNS4gQnVpbGRzIHRoZSBwcm9qZWN0LlxuICogNi4gVXBkYXRlcyB2ZXJzaW9uIGluIGZpbGVzIGFuZCBjaGFuZ2Vsb2cuXG4gKiA3LiBBZGRzIHVwZGF0ZWQgZmlsZXMgdG8gR2l0LCB0YWdzIHRoZSBjb21taXQsIGFuZCBwdXNoZXMgdG8gdGhlIHJlcG9zaXRvcnkuXG4gKiA4LiBJZiBhbiBPYnNpZGlhbiBwbHVnaW4sIGNvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBhbmQgcHVibGlzaGVzIGEgR2l0SHViIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgdG8gcGVyZm9ybSAobWFqb3IsIG1pbm9yLCBwYXRjaCwgcHJlbWFqb3IsIHByZW1pbm9yLCBwcmVwYXRjaCwgcHJlcmVsZWFzZSwgb3IgeC55LnpbLXN1ZmZpeF0pLlxuICogQHBhcmFtIHByZXBhcmVHaXRIdWJSZWxlYXNlIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0byBwcmVwYXJlIHRoZSBHaXRIdWIgcmVsZWFzZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdmVyc2lvbiB1cGRhdGUgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlPzogc3RyaW5nLCBwcmVwYXJlR2l0SHViUmVsZWFzZT86IChuZXdWZXJzaW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCF2ZXJzaW9uVXBkYXRlVHlwZSkge1xuICAgIGNvbnN0IG5wbU9sZFZlcnNpb24gPSBwcm9jZXNzLmVudlsnbnBtX29sZF92ZXJzaW9uJ107XG4gICAgY29uc3QgbnBtTmV3VmVyc2lvbiA9IHByb2Nlc3MuZW52WyducG1fbmV3X3ZlcnNpb24nXTtcblxuICAgIGlmIChucG1PbGRWZXJzaW9uICYmIG5wbU5ld1ZlcnNpb24pIHtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzKG5wbU9sZFZlcnNpb24pO1xuICAgICAgYXdhaXQgdXBkYXRlVmVyc2lvbihucG1OZXdWZXJzaW9uLCBwcmVwYXJlR2l0SHViUmVsZWFzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHByb3ZpZGVkJyk7XG4gIH1cblxuICBjb25zdCBpc09ic2lkaWFuUGx1Z2luID0gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pKSAmJiAoYXdhaXQgcmVhZFBhY2thZ2VKc29uKCkpLm5hbWUgIT09ICdvYnNpZGlhbi1kZXYtdXRpbHMnO1xuXG4gIHZhbGlkYXRlKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgYXdhaXQgY2hlY2tHaXRJbnN0YWxsZWQoKTtcbiAgYXdhaXQgY2hlY2tHaXRSZXBvQ2xlYW4oKTtcbiAgYXdhaXQgY2hlY2tHaXRIdWJDbGlJbnN0YWxsZWQoKTtcbiAgYXdhaXQgbnBtUnVuKCdmb3JtYXQ6Y2hlY2snKTtcbiAgYXdhaXQgbnBtUnVuKCdzcGVsbGNoZWNrJyk7XG4gIGF3YWl0IG5wbVJ1bignbGludDptZCcpO1xuICBhd2FpdCBucG1SdW4oJ2J1aWxkJyk7XG4gIGF3YWl0IG5wbVJ1bignbGludCcpO1xuICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdCcpO1xuICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdDppbnRlZ3JhdGlvbicpO1xuICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdDpjb3ZlcmFnZScpO1xuXG4gIGNvbnN0IG5ld1ZlcnNpb24gPSBhd2FpdCBnZXROZXdWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgYXdhaXQgdXBkYXRlVmVyc2lvbkluRmlsZXMobmV3VmVyc2lvbik7XG4gIGlmIChpc09ic2lkaWFuUGx1Z2luKSB7XG4gICAgYXdhaXQgdXBkYXRlVmVyc2lvbkluRmlsZXNGb3JQbHVnaW4obmV3VmVyc2lvbik7XG4gIH1cblxuICBhd2FpdCB1cGRhdGVDaGFuZ2Vsb2cobmV3VmVyc2lvbik7XG4gIGF3YWl0IGFkZFVwZGF0ZWRGaWxlc1RvR2l0KG5ld1ZlcnNpb24pO1xuICBhd2FpdCBhZGRHaXRUYWcobmV3VmVyc2lvbik7XG4gIGF3YWl0IGdpdFB1c2goKTtcbiAgYXdhaXQgcHJlcGFyZUdpdEh1YlJlbGVhc2U/LihuZXdWZXJzaW9uKTtcbiAgYXdhaXQgcHVibGlzaEdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbiwgaXNPYnNpZGlhblBsdWdpbik7XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmVyc2lvbiBpbiB2YXJpb3VzIGZpbGVzLCBpbmNsdWRpbmcgYHBhY2thZ2UuanNvbmAsIGBwYWNrYWdlLWxvY2suanNvbmAsXG4gKiBhbmQgT2JzaWRpYW4gcGx1Z2luIG1hbmlmZXN0cyBpZiBhcHBsaWNhYmxlLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIHN0cmluZyB0byB1cGRhdGUgaW4gdGhlIGZpbGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB1cGRhdGUgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uSW5GaWxlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZWRpdFBhY2thZ2VKc29uKChwYWNrYWdlSnNvbikgPT4ge1xuICAgIHBhY2thZ2VKc29uLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICB9KTtcblxuICBhd2FpdCBlZGl0UGFja2FnZUxvY2tKc29uKHVwZGF0ZSwgeyBzaG91bGRTa2lwSWZNaXNzaW5nOiB0cnVlIH0pO1xuICBhd2FpdCBlZGl0TnBtU2hyaW5rV3JhcEpzb24odXBkYXRlLCB7IHNob3VsZFNraXBJZk1pc3Npbmc6IHRydWUgfSk7XG5cbiAgZnVuY3Rpb24gdXBkYXRlKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKTogdm9pZCB7XG4gICAgcGFja2FnZUxvY2tKc29uLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIGNvbnN0IGRlZmF1bHRQYWNrYWdlID0gcGFja2FnZUxvY2tKc29uLnBhY2thZ2VzPy5bJyddO1xuICAgIGlmIChkZWZhdWx0UGFja2FnZSkge1xuICAgICAgZGVmYXVsdFBhY2thZ2UudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHRvIGVuc3VyZSBpdCBpcyBlaXRoZXIgYSByZWNvZ25pemVkIHR5cGVcbiAqIG9yIGEgdmFsaWQgbWFudWFsIHZlcnNpb24gc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHRvIHZhbGlkYXRlLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZSBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodmVyc2lvblVwZGF0ZVR5cGU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZ2V0VmVyc2lvblVwZGF0ZVR5cGUodmVyc2lvblVwZGF0ZVR5cGUpID09PSBWZXJzaW9uVXBkYXRlVHlwZS5JbnZhbGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0ludmFsaWQgdmVyc2lvbiB1cGRhdGUgdHlwZS4gUGxlYXNlIHVzZSBcXCdtYWpvclxcJywgXFwnbWlub3JcXCcsIFxcJ3BhdGNoXFwnLCBcXCdwcmVtYWpvclxcJywgXFwncHJlbWlub3JcXCcsIFxcJ3ByZXBhdGNoXFwnLCBcXCdwcmVyZWxlYXNlXFwnLCBvciBcXCd4Lnkuelstc3VmZml4XVxcJyBmb3JtYXQuJ1xuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBGZXRjaGVzIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBPYnNpZGlhbiBmcm9tIHRoZSBHaXRIdWIgcmVsZWFzZXMgQVBJLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIE9ic2lkaWFuLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RPYnNpZGlhblZlcnNpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBXZSBydW4gdGhpcyBvdXRzaWRlIG9mIE9ic2lkaWFuLCBzbyB3ZSBkb24ndCBoYXZlIGByZXF1ZXN0VXJsKClgLlxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCdodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL29ic2lkaWFubWQvb2JzaWRpYW4tcmVsZWFzZXMvcmVsZWFzZXMvbGF0ZXN0Jyk7XG4gIGNvbnN0IG9ic2lkaWFuUmVsZWFzZXNKc29uID0gYXdhaXQgcmVzcG9uc2UuanNvbigpIGFzIFBhcnRpYWw8T2JzaWRpYW5SZWxlYXNlc0pzb24+O1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUob2JzaWRpYW5SZWxlYXNlc0pzb24ubmFtZSwgJ0NvdWxkIG5vdCBmaW5kIHRoZSBuYW1lIG9mIHRoZSBsYXRlc3QgT2JzaWRpYW4gcmVsZWFzZScpO1xufVxuXG5mdW5jdGlvbiBpc1ByZVJlbGVhc2UodmVyc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBwcmVyZWxlYXNlKHZlcnNpb24pICE9PSBudWxsO1xufVxuXG5mdW5jdGlvbiB0b1NpbmdsZUxpbmUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lcyA9IHN0ci5zcGxpdCgvXFxyP1xcbi8pLmZpbHRlcihCb29sZWFuKTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oJyAnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlVmVyc2lvbkluRmlsZXNGb3JQbHVnaW4obmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IG1hbmlmZXN0QmV0YUpzb25QYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RCZXRhSnNvbik7XG4gIGlmIChpc1ByZVJlbGVhc2UobmV3VmVyc2lvbikpIHtcbiAgICBhd2FpdCBjcChcbiAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiksXG4gICAgICBtYW5pZmVzdEJldGFKc29uUGF0aCxcbiAgICAgIHsgZm9yY2U6IHRydWUgfVxuICAgICk7XG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb24sIChtYW5pZmVzdCkgPT4ge1xuICAgICAgbWFuaWZlc3QudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbGF0ZXN0T2JzaWRpYW5WZXJzaW9uID0gYXdhaXQgZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk7XG5cbiAgICBhd2FpdCBlZGl0SnNvbjxNYW5pZmVzdD4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uLCAobWFuaWZlc3QpID0+IHtcbiAgICAgIG1hbmlmZXN0Lm1pbkFwcFZlcnNpb24gPSBsYXRlc3RPYnNpZGlhblZlcnNpb247XG4gICAgICBtYW5pZmVzdC52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICB9KTtcblxuICAgIGF3YWl0IGVkaXRKc29uPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlZlcnNpb25zSnNvbiwgKHZlcnNpb25zKSA9PiB7XG4gICAgICB2ZXJzaW9uc1tuZXdWZXJzaW9uXSA9IGxhdGVzdE9ic2lkaWFuVmVyc2lvbjtcbiAgICB9KTtcblxuICAgIGlmIChleGlzdHNTeW5jKG1hbmlmZXN0QmV0YUpzb25QYXRoKSkge1xuICAgICAgYXdhaXQgcm0obWFuaWZlc3RCZXRhSnNvblBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGF3YWl0IGNvcHlVcGRhdGVkTWFuaWZlc3QoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLFNBQVMsa0JBQWtCO0FBQzNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHVCQUF1QjtBQUNoQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUlQLFNBQVMsc0JBQXNCO0FBQy9CLFNBQVMsK0JBQStCO0FBQ3hDLFNBQVMsWUFBWTtBQUNyQixTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsZ0JBQWdCO0FBQ3pCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBS1AsTUFB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SyxDQUFDO0FBRWpFLFdBQVMsT0FBTyxpQkFBd0M7QUFDdEQsb0JBQWdCLFVBQVU7QUFDMUIsVUFBTSxpQkFBaUIsZ0JBQWdCLFdBQVcsRUFBRTtBQUNwRCxRQUFJLGdCQUFnQjtBQUNsQixxQkFBZSxVQUFVO0FBQUEsSUFDM0I7QUFBQSxFQUNGO0FBQ0Y7QUFTTyxTQUFTLFNBQVMsbUJBQWlDO0FBQ3hELE1BQUkscUJBQXFCLGlCQUFpQixNQUFNLHlCQUEyQjtBQUN6RSxVQUFNLElBQUk7QUFBQSxNQUNSO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQU9BLGVBQWUsMkJBQTRDO0FBRXpELFFBQU0sV0FBVyxNQUFNLE1BQU0sMkVBQTJFO0FBQ3hHLFFBQU0sdUJBQXVCLE1BQU0sU0FBUyxLQUFLO0FBQ2pELFNBQU8sa0JBQWtCLHFCQUFxQixNQUFNLHdEQUF3RDtBQUM5RztBQUVBLFNBQVMsYUFBYSxTQUEwQjtBQUM5QyxTQUFPLFdBQVcsT0FBTyxNQUFNO0FBQ2pDO0FBRUEsU0FBUyxhQUFhLEtBQXFCO0FBQ3pDLFFBQU0sUUFBUSxJQUFJLE1BQU0sT0FBTyxFQUFFLE9BQU8sT0FBTztBQUMvQyxTQUFPLE1BQU0sS0FBSyxHQUFHO0FBQ3ZCO0FBRUEsZUFBZSw4QkFBOEIsWUFBbUM7QUFDOUUsUUFBTSx1QkFBdUIsd0JBQXdCLHdCQUF3QixnQkFBZ0I7QUFDN0YsTUFBSSxhQUFhLFVBQVUsR0FBRztBQUM1QixVQUFNO0FBQUEsTUFDSix3QkFBd0Isd0JBQXdCLFlBQVk7QUFBQSxNQUM1RDtBQUFBLE1BQ0EsRUFBRSxPQUFPLEtBQUs7QUFBQSxJQUNoQjtBQUNBLFVBQU0sU0FBbUIsd0JBQXdCLGtCQUFrQixDQUFDLGFBQWE7QUFDL0UsZUFBUyxVQUFVO0FBQUEsSUFDckIsQ0FBQztBQUFBLEVBQ0gsT0FBTztBQUNMLFVBQU0sd0JBQXdCLE1BQU0seUJBQXlCO0FBRTdELFVBQU0sU0FBbUIsd0JBQXdCLGNBQWMsQ0FBQyxhQUFhO0FBQzNFLGVBQVMsZ0JBQWdCO0FBQ3pCLGVBQVMsVUFBVTtBQUFBLElBQ3JCLENBQUM7QUFFRCxVQUFNLFNBQWlDLHdCQUF3QixjQUFjLENBQUMsYUFBYTtBQUN6RixlQUFTLFVBQVUsSUFBSTtBQUFBLElBQ3pCLENBQUM7QUFFRCxRQUFJLFdBQVcsb0JBQW9CLEdBQUc7QUFDcEMsWUFBTSxHQUFHLG9CQUFvQjtBQUFBLElBQy9CO0FBQUEsRUFDRjtBQUVBLFFBQU0sb0JBQW9CO0FBQzVCOyIsCiAgIm5hbWVzIjogWyJWZXJzaW9uVXBkYXRlVHlwZSJdCn0K
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Contains utility functions for string operations.
5
5
  */
@@ -8,11 +8,15 @@ import type { ValueProvider } from './value-provider.mjs';
8
8
  /**
9
9
  * A synchronous/asynchronous function that generates replacement strings, or a string to replace with.
10
10
  */
11
- export type AsyncReplacer<ReplaceGroupArgs extends string[]> = ValueProvider<StringReplacement, [ReplaceCommonArgs, ...ReplaceGroupArgs]>;
11
+ export type AsyncReplacer<CapturedGroupArgs extends string[]> = ValueProvider<StringReplacement, ReplaceArgs<CapturedGroupArgs>>;
12
12
  /**
13
13
  * Common arguments for the `replaceAll`/`replaceAllAsync` functions.
14
14
  */
15
- export interface ReplaceCommonArgs {
15
+ export interface ReplaceArgs<CapturedGroupArgs extends string[]> {
16
+ /**
17
+ * Captured group arguments.
18
+ */
19
+ capturedGroupArgs: CapturedGroupArgs;
16
20
  /**
17
21
  * Groups of the match.
18
22
  */
@@ -37,7 +41,7 @@ export interface ReplaceCommonArgs {
37
41
  /**
38
42
  * A synchronous function that generates replacement strings, or a string to replace with.
39
43
  */
40
- export type Replacer<ReplaceGroupArgs extends string[]> = ((...args: [ReplaceCommonArgs, ...ReplaceGroupArgs]) => StringReplacement) | StringReplacement;
44
+ export type Replacer<CapturedGroupArgs extends string[]> = ((args: ReplaceArgs<CapturedGroupArgs>) => StringReplacement) | StringReplacement;
41
45
  type StringReplacement = MaybeReturn<string>;
42
46
  /**
43
47
  * Ensures that a string ends with the specified suffix, adding it if necessary.
@@ -135,7 +139,7 @@ export declare function replace(str: string, replacementsMap: Record<string, str
135
139
  * @param replacer - A replacer function that generates replacement strings, or a string to replace with.
136
140
  * @returns The string with all replacements made.
137
141
  */
138
- export declare function replaceAll<ReplaceGroupArgs extends string[]>(str: string, searchValue: RegExp | string, replacer: Replacer<ReplaceGroupArgs>): string;
142
+ export declare function replaceAll<CapturedGroupArgs extends string[]>(str: string, searchValue: RegExp | string, replacer: Replacer<CapturedGroupArgs>): string;
139
143
  /**
140
144
  * Asynchronously replaces all occurrences of a search string or pattern with the results of an asynchronous replacer function.
141
145
  *