obsidian-dev-utils 36.0.0 → 36.2.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 (424) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/lib/cjs/AbortController.cjs +1 -1
  3. package/dist/lib/cjs/Array.cjs +1 -1
  4. package/dist/lib/cjs/Async.cjs +2 -2
  5. package/dist/lib/cjs/Async.d.cts +4 -4
  6. package/dist/lib/cjs/AsyncEvents.cjs +2 -2
  7. package/dist/lib/cjs/AsyncEvents.d.cts +4 -4
  8. package/dist/lib/cjs/Blob.cjs +1 -1
  9. package/dist/lib/cjs/CssClass.cjs +2 -2
  10. package/dist/lib/cjs/CssClass.d.cts +35 -35
  11. package/dist/lib/cjs/Debug.cjs +2 -2
  12. package/dist/lib/cjs/DebugController.cjs +1 -1
  13. package/dist/lib/cjs/Enum.cjs +1 -1
  14. package/dist/lib/cjs/Error.cjs +2 -2
  15. package/dist/lib/cjs/Error.d.cts +1 -1
  16. package/dist/lib/cjs/Function.cjs +1 -1
  17. package/dist/lib/cjs/HTMLElement.cjs +2 -2
  18. package/dist/lib/cjs/HTMLElement.d.cts +1 -1
  19. package/dist/lib/cjs/Library.cjs +3 -3
  20. package/dist/lib/cjs/Library.d.cts +3 -3
  21. package/dist/lib/cjs/ObjectUtils.cjs +2 -2
  22. package/dist/lib/cjs/ObjectUtils.d.cts +1 -1
  23. package/dist/lib/cjs/Path.cjs +2 -2
  24. package/dist/lib/cjs/Path.d.cts +2 -2
  25. package/dist/lib/cjs/RegExp.cjs +2 -2
  26. package/dist/lib/cjs/RegExp.d.cts +3 -3
  27. package/dist/lib/cjs/ScriptUtils/CliUtils.cjs +3 -3
  28. package/dist/lib/cjs/ScriptUtils/CliUtils.d.cts +1 -1
  29. package/dist/lib/cjs/ScriptUtils/CodeGenerator.cjs +1 -1
  30. package/dist/lib/cjs/ScriptUtils/ESLint/ESLint.cjs +1 -1
  31. package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.cjs +2 -2
  32. package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.d.cts +1 -1
  33. package/dist/lib/cjs/ScriptUtils/ESLint/index.cjs +1 -1
  34. package/dist/lib/cjs/ScriptUtils/Exec.cjs +2 -2
  35. package/dist/lib/cjs/ScriptUtils/Exec.d.cts +9 -9
  36. package/dist/lib/cjs/ScriptUtils/Fs.cjs +1 -1
  37. package/dist/lib/cjs/ScriptUtils/JSON.cjs +2 -2
  38. package/dist/lib/cjs/ScriptUtils/JSON.d.cts +1 -1
  39. package/dist/lib/cjs/ScriptUtils/NodeModules.cjs +1 -1
  40. package/dist/lib/cjs/ScriptUtils/Npm.cjs +2 -2
  41. package/dist/lib/cjs/ScriptUtils/Npm.d.cts +5 -5
  42. package/dist/lib/cjs/ScriptUtils/NpmPublish.cjs +1 -1
  43. package/dist/lib/cjs/ScriptUtils/NpmRun.cjs +1 -1
  44. package/dist/lib/cjs/ScriptUtils/ObsidianDevUtilsRepoPaths.cjs +2 -2
  45. package/dist/lib/cjs/ScriptUtils/ObsidianDevUtilsRepoPaths.d.cts +1 -1
  46. package/dist/lib/cjs/ScriptUtils/Root.cjs +1 -1
  47. package/dist/lib/cjs/ScriptUtils/build.cjs +1 -1
  48. package/dist/lib/cjs/ScriptUtils/cli.cjs +2 -2
  49. package/dist/lib/cjs/ScriptUtils/esbuild/Dependency.cjs +1 -1
  50. package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.cjs +2 -2
  51. package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.d.cts +4 -4
  52. package/dist/lib/cjs/ScriptUtils/esbuild/changeExtensionPlugin.cjs +1 -1
  53. package/dist/lib/cjs/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.cjs +1 -1
  54. package/dist/lib/cjs/ScriptUtils/esbuild/customEsbuildOptionsPlugin.cjs +1 -1
  55. package/dist/lib/cjs/ScriptUtils/esbuild/fixEsmPlugin.cjs +1 -1
  56. package/dist/lib/cjs/ScriptUtils/esbuild/fixSourceMapsPlugin.cjs +2 -2
  57. package/dist/lib/cjs/ScriptUtils/esbuild/fixSourceMapsPlugin.d.cts +1 -1
  58. package/dist/lib/cjs/ScriptUtils/esbuild/index.cjs +1 -1
  59. package/dist/lib/cjs/ScriptUtils/esbuild/preprocessPlugin.cjs +12 -6
  60. package/dist/lib/cjs/ScriptUtils/esbuild/preprocessPlugin.d.cts +0 -3
  61. package/dist/lib/cjs/ScriptUtils/esbuild/renameCssPlugin.cjs +1 -1
  62. package/dist/lib/cjs/ScriptUtils/esbuild/svelteWrapperPlugin.cjs +1 -1
  63. package/dist/lib/cjs/ScriptUtils/format.cjs +1 -1
  64. package/dist/lib/cjs/ScriptUtils/index.cjs +1 -1
  65. package/dist/lib/cjs/ScriptUtils/spellcheck.cjs +2 -2
  66. package/dist/lib/cjs/ScriptUtils/spellcheck.d.cts +1 -1
  67. package/dist/lib/cjs/ScriptUtils/version.cjs +2 -2
  68. package/dist/lib/cjs/ScriptUtils/version.d.cts +3 -8
  69. package/dist/lib/cjs/String.cjs +2 -2
  70. package/dist/lib/cjs/String.d.cts +5 -5
  71. package/dist/lib/cjs/Transformers/DateTransformer.cjs +3 -3
  72. package/dist/lib/cjs/Transformers/DateTransformer.d.cts +1 -1
  73. package/dist/lib/cjs/Transformers/DurationTransformer.cjs +4 -4
  74. package/dist/lib/cjs/Transformers/DurationTransformer.d.cts +2 -2
  75. package/dist/lib/cjs/Transformers/GroupTransformer.cjs +4 -4
  76. package/dist/lib/cjs/Transformers/GroupTransformer.d.cts +2 -2
  77. package/dist/lib/cjs/Transformers/MapTransformer.cjs +3 -3
  78. package/dist/lib/cjs/Transformers/MapTransformer.d.cts +1 -1
  79. package/dist/lib/cjs/Transformers/SetTransformer.cjs +3 -3
  80. package/dist/lib/cjs/Transformers/SetTransformer.d.cts +1 -1
  81. package/dist/lib/cjs/Transformers/SkipPrivatePropertyTransformer.cjs +3 -3
  82. package/dist/lib/cjs/Transformers/SkipPrivatePropertyTransformer.d.cts +1 -1
  83. package/dist/lib/cjs/Transformers/Transformer.cjs +2 -2
  84. package/dist/lib/cjs/Transformers/Transformer.d.cts +1 -1
  85. package/dist/lib/cjs/Transformers/TwoWayMapTransformer.cjs +1 -1
  86. package/dist/lib/cjs/Transformers/TypedTransformer.cjs +1 -1
  87. package/dist/lib/cjs/Transformers/index.cjs +1 -1
  88. package/dist/lib/cjs/TwoWayMap.cjs +1 -1
  89. package/dist/lib/cjs/Type.cjs +2 -2
  90. package/dist/lib/cjs/Type.d.cts +1 -1
  91. package/dist/lib/cjs/ValueProvider.cjs +2 -2
  92. package/dist/lib/cjs/ValueProvider.d.cts +1 -1
  93. package/dist/lib/cjs/codemirror/StateFieldSpec.cjs +2 -2
  94. package/dist/lib/cjs/codemirror/StateFieldSpec.d.cts +2 -2
  95. package/dist/lib/cjs/codemirror/index.cjs +1 -1
  96. package/dist/lib/cjs/index.cjs +1 -1
  97. package/dist/lib/cjs/obsidian/App.cjs +1 -1
  98. package/dist/lib/cjs/obsidian/AttachmentPath.cjs +1 -1
  99. package/dist/lib/cjs/obsidian/Backlink.cjs +2 -2
  100. package/dist/lib/cjs/obsidian/Backlink.d.cts +7 -7
  101. package/dist/lib/cjs/obsidian/Callout.cjs +2 -2
  102. package/dist/lib/cjs/obsidian/Callout.d.cts +6 -6
  103. package/dist/lib/cjs/obsidian/CodeBlockMarkdownInformation.cjs +2 -2
  104. package/dist/lib/cjs/obsidian/CodeBlockMarkdownInformation.d.cts +9 -9
  105. package/dist/lib/cjs/obsidian/Components/AsyncEventsComponent.cjs +1 -1
  106. package/dist/lib/cjs/obsidian/Components/SettingComponents/CheckboxComponent.cjs +4 -4
  107. package/dist/lib/cjs/obsidian/Components/SettingComponents/CheckboxComponent.d.cts +2 -2
  108. package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.cjs +3 -3
  109. package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.cts +1 -1
  110. package/dist/lib/cjs/obsidian/Components/SettingComponents/DateComponent.cjs +1 -1
  111. package/dist/lib/cjs/obsidian/Components/SettingComponents/DateTimeComponent.cjs +1 -1
  112. package/dist/lib/cjs/obsidian/Components/SettingComponents/EmailComponent.cjs +1 -1
  113. package/dist/lib/cjs/obsidian/Components/SettingComponents/FileComponent.cjs +1 -1
  114. package/dist/lib/cjs/obsidian/Components/SettingComponents/MonthComponent.cjs +2 -2
  115. package/dist/lib/cjs/obsidian/Components/SettingComponents/MonthComponent.d.cts +2 -2
  116. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleDropdownComponent.cjs +4 -4
  117. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleDropdownComponent.d.cts +2 -2
  118. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleEmailComponent.cjs +1 -1
  119. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleFileComponent.cjs +1 -1
  120. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleTextComponent.cjs +3 -3
  121. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleTextComponent.d.cts +1 -1
  122. package/dist/lib/cjs/obsidian/Components/SettingComponents/NumberComponent.cjs +1 -1
  123. package/dist/lib/cjs/obsidian/Components/SettingComponents/PasswordComponent.cjs +1 -1
  124. package/dist/lib/cjs/obsidian/Components/SettingComponents/SettingComponentWrapper.cjs +1 -1
  125. package/dist/lib/cjs/obsidian/Components/SettingComponents/TelephoneComponent.cjs +1 -1
  126. package/dist/lib/cjs/obsidian/Components/SettingComponents/TextBasedComponent.cjs +1 -1
  127. package/dist/lib/cjs/obsidian/Components/SettingComponents/TimeComponent.cjs +1 -1
  128. package/dist/lib/cjs/obsidian/Components/SettingComponents/TriStateCheckboxComponent.cjs +4 -4
  129. package/dist/lib/cjs/obsidian/Components/SettingComponents/TriStateCheckboxComponent.d.cts +2 -2
  130. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedDropdownComponent.cjs +4 -4
  131. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedDropdownComponent.d.cts +2 -2
  132. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.cjs +4 -4
  133. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.d.cts +2 -2
  134. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedRangeTextComponent.cjs +1 -1
  135. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedTextComponent.cjs +4 -4
  136. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedTextComponent.d.cts +2 -2
  137. package/dist/lib/cjs/obsidian/Components/SettingComponents/UrlComponent.cjs +1 -1
  138. package/dist/lib/cjs/obsidian/Components/SettingComponents/ValidatorComponent.cjs +2 -2
  139. package/dist/lib/cjs/obsidian/Components/SettingComponents/ValidatorComponent.d.cts +1 -1
  140. package/dist/lib/cjs/obsidian/Components/SettingComponents/ValueComponentWithChangeTracking.cjs +1 -1
  141. package/dist/lib/cjs/obsidian/Components/SettingComponents/WeekComponent.cjs +2 -2
  142. package/dist/lib/cjs/obsidian/Components/SettingComponents/WeekComponent.d.cts +3 -3
  143. package/dist/lib/cjs/obsidian/Components/SettingComponents/index.cjs +1 -1
  144. package/dist/lib/cjs/obsidian/Components/index.cjs +1 -1
  145. package/dist/lib/cjs/obsidian/Dataview.cjs +3 -4
  146. package/dist/lib/cjs/obsidian/Dataview.d.cts +20 -20
  147. package/dist/lib/cjs/obsidian/DataviewLink.cjs +1 -1
  148. package/dist/lib/cjs/obsidian/FileChange.cjs +2 -2
  149. package/dist/lib/cjs/obsidian/FileChange.d.cts +4 -4
  150. package/dist/lib/cjs/obsidian/FileManager.cjs +1 -1
  151. package/dist/lib/cjs/obsidian/FileSystem.cjs +2 -2
  152. package/dist/lib/cjs/obsidian/FileSystem.d.cts +6 -6
  153. package/dist/lib/cjs/obsidian/Frontmatter.cjs +2 -2
  154. package/dist/lib/cjs/obsidian/Frontmatter.d.cts +7 -7
  155. package/dist/lib/cjs/obsidian/FrontmatterLinkCacheWithOffsets.cjs +2 -2
  156. package/dist/lib/cjs/obsidian/FrontmatterLinkCacheWithOffsets.d.cts +2 -2
  157. package/dist/lib/cjs/obsidian/Link.cjs +2 -2
  158. package/dist/lib/cjs/obsidian/Link.d.cts +50 -49
  159. package/dist/lib/cjs/obsidian/Logger.cjs +2 -2
  160. package/dist/lib/cjs/obsidian/Loop.cjs +2 -2
  161. package/dist/lib/cjs/obsidian/Loop.d.cts +13 -7
  162. package/dist/lib/cjs/obsidian/Markdown.cjs +1 -1
  163. package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.cjs +20 -9
  164. package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.d.cts +30 -17
  165. package/dist/lib/cjs/obsidian/MarkdownView.cjs +1 -1
  166. package/dist/lib/cjs/obsidian/MetadataCache.cjs +4 -16
  167. package/dist/lib/cjs/obsidian/Modals/Alert.cjs +2 -2
  168. package/dist/lib/cjs/obsidian/Modals/Alert.d.cts +6 -6
  169. package/dist/lib/cjs/obsidian/Modals/Confirm.cjs +2 -2
  170. package/dist/lib/cjs/obsidian/Modals/Confirm.d.cts +7 -7
  171. package/dist/lib/cjs/obsidian/Modals/ModalBase.cjs +2 -2
  172. package/dist/lib/cjs/obsidian/Modals/ModalBase.d.cts +3 -3
  173. package/dist/lib/cjs/obsidian/Modals/Prompt.cjs +2 -2
  174. package/dist/lib/cjs/obsidian/Modals/Prompt.d.cts +7 -7
  175. package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +2 -2
  176. package/dist/lib/cjs/obsidian/Modals/SelectItem.d.cts +7 -7
  177. package/dist/lib/cjs/obsidian/Modals/index.cjs +1 -1
  178. package/dist/lib/cjs/obsidian/MonkeyAround.cjs +2 -2
  179. package/dist/lib/cjs/obsidian/MonkeyAround.d.cts +3 -3
  180. package/dist/lib/cjs/obsidian/ObsidianSettings.cjs +1 -1
  181. package/dist/lib/cjs/obsidian/Pdf.cjs +1 -1
  182. package/dist/lib/cjs/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +1 -1
  183. package/dist/lib/cjs/obsidian/Plugin/Plugin.cjs +1 -1
  184. package/dist/lib/cjs/obsidian/Plugin/PluginBase.cjs +1 -1
  185. package/dist/lib/cjs/obsidian/Plugin/PluginContext.cjs +1 -1
  186. package/dist/lib/cjs/obsidian/Plugin/PluginId.cjs +2 -2
  187. package/dist/lib/cjs/obsidian/Plugin/PluginId.d.cts +1 -1
  188. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +1 -1
  189. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.cjs +3 -3
  190. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.d.cts +6 -6
  191. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsWrapper.cjs +2 -2
  192. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsWrapper.d.cts +4 -4
  193. package/dist/lib/cjs/obsidian/Plugin/PluginTypesBase.cjs +2 -2
  194. package/dist/lib/cjs/obsidian/Plugin/PluginTypesBase.d.cts +6 -6
  195. package/dist/lib/cjs/obsidian/Plugin/index.cjs +1 -1
  196. package/dist/lib/cjs/obsidian/Queue.cjs +1 -1
  197. package/dist/lib/cjs/obsidian/React/AppContext.cjs +2 -2
  198. package/dist/lib/cjs/obsidian/React/AppContext.d.cts +2 -2
  199. package/dist/lib/cjs/obsidian/React/index.cjs +1 -1
  200. package/dist/lib/cjs/obsidian/Reference.cjs +2 -2
  201. package/dist/lib/cjs/obsidian/Reference.d.cts +8 -8
  202. package/dist/lib/cjs/obsidian/RenameDeleteHandler.cjs +2 -2
  203. package/dist/lib/cjs/obsidian/RenameDeleteHandler.d.cts +2 -2
  204. package/dist/lib/cjs/obsidian/ResourceUrl.cjs +1 -1
  205. package/dist/lib/cjs/obsidian/SettingEx.cjs +1 -1
  206. package/dist/lib/cjs/obsidian/Validation.cjs +2 -2
  207. package/dist/lib/cjs/obsidian/Validation.d.cts +1 -1
  208. package/dist/lib/cjs/obsidian/Vault.cjs +18 -4
  209. package/dist/lib/cjs/obsidian/Vault.d.cts +9 -1
  210. package/dist/lib/cjs/obsidian/VaultEx.cjs +1 -1
  211. package/dist/lib/cjs/obsidian/index.cjs +1 -1
  212. package/dist/lib/cjs/url.cjs +1 -1
  213. package/dist/lib/esm/AbortController.mjs +1 -1
  214. package/dist/lib/esm/Array.mjs +1 -1
  215. package/dist/lib/esm/Async.d.mts +4 -4
  216. package/dist/lib/esm/Async.mjs +2 -2
  217. package/dist/lib/esm/AsyncEvents.d.mts +4 -4
  218. package/dist/lib/esm/AsyncEvents.mjs +2 -2
  219. package/dist/lib/esm/Blob.mjs +1 -1
  220. package/dist/lib/esm/CssClass.d.mts +35 -35
  221. package/dist/lib/esm/CssClass.mjs +2 -2
  222. package/dist/lib/esm/Debug.mjs +2 -2
  223. package/dist/lib/esm/DebugController.mjs +1 -1
  224. package/dist/lib/esm/Enum.mjs +1 -1
  225. package/dist/lib/esm/Error.d.mts +1 -1
  226. package/dist/lib/esm/Error.mjs +2 -2
  227. package/dist/lib/esm/Function.mjs +1 -1
  228. package/dist/lib/esm/HTMLElement.d.mts +1 -1
  229. package/dist/lib/esm/HTMLElement.mjs +2 -2
  230. package/dist/lib/esm/Library.d.mts +3 -3
  231. package/dist/lib/esm/Library.mjs +3 -3
  232. package/dist/lib/esm/ObjectUtils.d.mts +1 -1
  233. package/dist/lib/esm/ObjectUtils.mjs +2 -2
  234. package/dist/lib/esm/Path.d.mts +2 -2
  235. package/dist/lib/esm/Path.mjs +2 -2
  236. package/dist/lib/esm/RegExp.d.mts +3 -3
  237. package/dist/lib/esm/RegExp.mjs +2 -2
  238. package/dist/lib/esm/ScriptUtils/CliUtils.d.mts +1 -1
  239. package/dist/lib/esm/ScriptUtils/CliUtils.mjs +3 -3
  240. package/dist/lib/esm/ScriptUtils/CodeGenerator.mjs +1 -1
  241. package/dist/lib/esm/ScriptUtils/ESLint/ESLint.mjs +1 -1
  242. package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.d.mts +1 -1
  243. package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.mjs +2 -2
  244. package/dist/lib/esm/ScriptUtils/ESLint/index.mjs +1 -1
  245. package/dist/lib/esm/ScriptUtils/Exec.d.mts +9 -9
  246. package/dist/lib/esm/ScriptUtils/Exec.mjs +2 -2
  247. package/dist/lib/esm/ScriptUtils/Fs.mjs +1 -1
  248. package/dist/lib/esm/ScriptUtils/JSON.d.mts +1 -1
  249. package/dist/lib/esm/ScriptUtils/JSON.mjs +2 -2
  250. package/dist/lib/esm/ScriptUtils/NodeModules.mjs +1 -1
  251. package/dist/lib/esm/ScriptUtils/Npm.d.mts +5 -5
  252. package/dist/lib/esm/ScriptUtils/Npm.mjs +2 -2
  253. package/dist/lib/esm/ScriptUtils/NpmPublish.mjs +1 -1
  254. package/dist/lib/esm/ScriptUtils/NpmRun.mjs +1 -1
  255. package/dist/lib/esm/ScriptUtils/ObsidianDevUtilsRepoPaths.d.mts +1 -1
  256. package/dist/lib/esm/ScriptUtils/ObsidianDevUtilsRepoPaths.mjs +2 -2
  257. package/dist/lib/esm/ScriptUtils/Root.mjs +1 -1
  258. package/dist/lib/esm/ScriptUtils/build.mjs +1 -1
  259. package/dist/lib/esm/ScriptUtils/cli.mjs +2 -2
  260. package/dist/lib/esm/ScriptUtils/esbuild/Dependency.mjs +1 -1
  261. package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.d.mts +4 -4
  262. package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.mjs +2 -2
  263. package/dist/lib/esm/ScriptUtils/esbuild/changeExtensionPlugin.mjs +1 -1
  264. package/dist/lib/esm/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.mjs +1 -1
  265. package/dist/lib/esm/ScriptUtils/esbuild/customEsbuildOptionsPlugin.mjs +1 -1
  266. package/dist/lib/esm/ScriptUtils/esbuild/fixEsmPlugin.mjs +1 -1
  267. package/dist/lib/esm/ScriptUtils/esbuild/fixSourceMapsPlugin.d.mts +1 -1
  268. package/dist/lib/esm/ScriptUtils/esbuild/fixSourceMapsPlugin.mjs +2 -2
  269. package/dist/lib/esm/ScriptUtils/esbuild/index.mjs +1 -1
  270. package/dist/lib/esm/ScriptUtils/esbuild/preprocessPlugin.d.mts +0 -3
  271. package/dist/lib/esm/ScriptUtils/esbuild/preprocessPlugin.mjs +12 -6
  272. package/dist/lib/esm/ScriptUtils/esbuild/renameCssPlugin.mjs +1 -1
  273. package/dist/lib/esm/ScriptUtils/esbuild/svelteWrapperPlugin.mjs +1 -1
  274. package/dist/lib/esm/ScriptUtils/format.mjs +1 -1
  275. package/dist/lib/esm/ScriptUtils/index.mjs +1 -1
  276. package/dist/lib/esm/ScriptUtils/spellcheck.d.mts +1 -1
  277. package/dist/lib/esm/ScriptUtils/spellcheck.mjs +2 -2
  278. package/dist/lib/esm/ScriptUtils/version.d.mts +3 -8
  279. package/dist/lib/esm/ScriptUtils/version.mjs +2 -2
  280. package/dist/lib/esm/String.d.mts +5 -5
  281. package/dist/lib/esm/String.mjs +2 -2
  282. package/dist/lib/esm/Transformers/DateTransformer.d.mts +1 -1
  283. package/dist/lib/esm/Transformers/DateTransformer.mjs +3 -3
  284. package/dist/lib/esm/Transformers/DurationTransformer.d.mts +2 -2
  285. package/dist/lib/esm/Transformers/DurationTransformer.mjs +4 -4
  286. package/dist/lib/esm/Transformers/GroupTransformer.d.mts +2 -2
  287. package/dist/lib/esm/Transformers/GroupTransformer.mjs +4 -4
  288. package/dist/lib/esm/Transformers/MapTransformer.d.mts +1 -1
  289. package/dist/lib/esm/Transformers/MapTransformer.mjs +3 -3
  290. package/dist/lib/esm/Transformers/SetTransformer.d.mts +1 -1
  291. package/dist/lib/esm/Transformers/SetTransformer.mjs +3 -3
  292. package/dist/lib/esm/Transformers/SkipPrivatePropertyTransformer.d.mts +1 -1
  293. package/dist/lib/esm/Transformers/SkipPrivatePropertyTransformer.mjs +3 -3
  294. package/dist/lib/esm/Transformers/Transformer.d.mts +1 -1
  295. package/dist/lib/esm/Transformers/Transformer.mjs +2 -2
  296. package/dist/lib/esm/Transformers/TwoWayMapTransformer.mjs +1 -1
  297. package/dist/lib/esm/Transformers/TypedTransformer.mjs +1 -1
  298. package/dist/lib/esm/Transformers/index.mjs +1 -1
  299. package/dist/lib/esm/TwoWayMap.mjs +1 -1
  300. package/dist/lib/esm/Type.d.mts +1 -1
  301. package/dist/lib/esm/Type.mjs +2 -2
  302. package/dist/lib/esm/ValueProvider.d.mts +1 -1
  303. package/dist/lib/esm/ValueProvider.mjs +2 -2
  304. package/dist/lib/esm/codemirror/StateFieldSpec.d.mts +2 -2
  305. package/dist/lib/esm/codemirror/StateFieldSpec.mjs +1 -1
  306. package/dist/lib/esm/codemirror/index.mjs +1 -1
  307. package/dist/lib/esm/index.mjs +1 -1
  308. package/dist/lib/esm/obsidian/App.mjs +1 -1
  309. package/dist/lib/esm/obsidian/AttachmentPath.mjs +1 -1
  310. package/dist/lib/esm/obsidian/Backlink.d.mts +7 -7
  311. package/dist/lib/esm/obsidian/Backlink.mjs +2 -2
  312. package/dist/lib/esm/obsidian/Callout.d.mts +6 -6
  313. package/dist/lib/esm/obsidian/Callout.mjs +2 -2
  314. package/dist/lib/esm/obsidian/CodeBlockMarkdownInformation.d.mts +9 -9
  315. package/dist/lib/esm/obsidian/CodeBlockMarkdownInformation.mjs +1 -1
  316. package/dist/lib/esm/obsidian/Components/AsyncEventsComponent.mjs +1 -1
  317. package/dist/lib/esm/obsidian/Components/SettingComponents/CheckboxComponent.d.mts +2 -2
  318. package/dist/lib/esm/obsidian/Components/SettingComponents/CheckboxComponent.mjs +4 -4
  319. package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.mts +1 -1
  320. package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.mjs +3 -3
  321. package/dist/lib/esm/obsidian/Components/SettingComponents/DateComponent.mjs +1 -1
  322. package/dist/lib/esm/obsidian/Components/SettingComponents/DateTimeComponent.mjs +1 -1
  323. package/dist/lib/esm/obsidian/Components/SettingComponents/EmailComponent.mjs +1 -1
  324. package/dist/lib/esm/obsidian/Components/SettingComponents/FileComponent.mjs +1 -1
  325. package/dist/lib/esm/obsidian/Components/SettingComponents/MonthComponent.d.mts +2 -2
  326. package/dist/lib/esm/obsidian/Components/SettingComponents/MonthComponent.mjs +2 -2
  327. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleDropdownComponent.d.mts +2 -2
  328. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleDropdownComponent.mjs +4 -4
  329. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleEmailComponent.mjs +1 -1
  330. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleFileComponent.mjs +1 -1
  331. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleTextComponent.d.mts +1 -1
  332. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleTextComponent.mjs +3 -3
  333. package/dist/lib/esm/obsidian/Components/SettingComponents/NumberComponent.mjs +1 -1
  334. package/dist/lib/esm/obsidian/Components/SettingComponents/PasswordComponent.mjs +1 -1
  335. package/dist/lib/esm/obsidian/Components/SettingComponents/SettingComponentWrapper.mjs +1 -1
  336. package/dist/lib/esm/obsidian/Components/SettingComponents/TelephoneComponent.mjs +1 -1
  337. package/dist/lib/esm/obsidian/Components/SettingComponents/TextBasedComponent.mjs +1 -1
  338. package/dist/lib/esm/obsidian/Components/SettingComponents/TimeComponent.mjs +1 -1
  339. package/dist/lib/esm/obsidian/Components/SettingComponents/TriStateCheckboxComponent.d.mts +2 -2
  340. package/dist/lib/esm/obsidian/Components/SettingComponents/TriStateCheckboxComponent.mjs +4 -4
  341. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedDropdownComponent.d.mts +2 -2
  342. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedDropdownComponent.mjs +4 -4
  343. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.d.mts +2 -2
  344. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.mjs +4 -4
  345. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedRangeTextComponent.mjs +1 -1
  346. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedTextComponent.d.mts +2 -2
  347. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedTextComponent.mjs +4 -4
  348. package/dist/lib/esm/obsidian/Components/SettingComponents/UrlComponent.mjs +1 -1
  349. package/dist/lib/esm/obsidian/Components/SettingComponents/ValidatorComponent.d.mts +1 -1
  350. package/dist/lib/esm/obsidian/Components/SettingComponents/ValidatorComponent.mjs +2 -2
  351. package/dist/lib/esm/obsidian/Components/SettingComponents/ValueComponentWithChangeTracking.mjs +1 -1
  352. package/dist/lib/esm/obsidian/Components/SettingComponents/WeekComponent.d.mts +3 -3
  353. package/dist/lib/esm/obsidian/Components/SettingComponents/WeekComponent.mjs +2 -2
  354. package/dist/lib/esm/obsidian/Components/SettingComponents/index.mjs +1 -1
  355. package/dist/lib/esm/obsidian/Components/index.mjs +1 -1
  356. package/dist/lib/esm/obsidian/Dataview.d.mts +20 -20
  357. package/dist/lib/esm/obsidian/Dataview.mjs +3 -4
  358. package/dist/lib/esm/obsidian/DataviewLink.mjs +1 -1
  359. package/dist/lib/esm/obsidian/FileChange.d.mts +4 -4
  360. package/dist/lib/esm/obsidian/FileChange.mjs +2 -2
  361. package/dist/lib/esm/obsidian/FileManager.mjs +1 -1
  362. package/dist/lib/esm/obsidian/FileSystem.d.mts +6 -6
  363. package/dist/lib/esm/obsidian/FileSystem.mjs +2 -2
  364. package/dist/lib/esm/obsidian/Frontmatter.d.mts +7 -7
  365. package/dist/lib/esm/obsidian/Frontmatter.mjs +2 -2
  366. package/dist/lib/esm/obsidian/FrontmatterLinkCacheWithOffsets.d.mts +2 -2
  367. package/dist/lib/esm/obsidian/FrontmatterLinkCacheWithOffsets.mjs +2 -2
  368. package/dist/lib/esm/obsidian/Link.d.mts +50 -49
  369. package/dist/lib/esm/obsidian/Link.mjs +2 -2
  370. package/dist/lib/esm/obsidian/Logger.mjs +2 -2
  371. package/dist/lib/esm/obsidian/Loop.d.mts +13 -7
  372. package/dist/lib/esm/obsidian/Loop.mjs +2 -2
  373. package/dist/lib/esm/obsidian/Markdown.mjs +1 -1
  374. package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.d.mts +30 -17
  375. package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.mjs +24 -10
  376. package/dist/lib/esm/obsidian/MarkdownView.mjs +1 -1
  377. package/dist/lib/esm/obsidian/MetadataCache.mjs +8 -20
  378. package/dist/lib/esm/obsidian/Modals/Alert.d.mts +6 -6
  379. package/dist/lib/esm/obsidian/Modals/Alert.mjs +2 -2
  380. package/dist/lib/esm/obsidian/Modals/Confirm.d.mts +7 -7
  381. package/dist/lib/esm/obsidian/Modals/Confirm.mjs +2 -2
  382. package/dist/lib/esm/obsidian/Modals/ModalBase.d.mts +3 -3
  383. package/dist/lib/esm/obsidian/Modals/ModalBase.mjs +2 -2
  384. package/dist/lib/esm/obsidian/Modals/Prompt.d.mts +7 -7
  385. package/dist/lib/esm/obsidian/Modals/Prompt.mjs +2 -2
  386. package/dist/lib/esm/obsidian/Modals/SelectItem.d.mts +7 -7
  387. package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +2 -2
  388. package/dist/lib/esm/obsidian/Modals/index.mjs +1 -1
  389. package/dist/lib/esm/obsidian/MonkeyAround.d.mts +3 -3
  390. package/dist/lib/esm/obsidian/MonkeyAround.mjs +2 -2
  391. package/dist/lib/esm/obsidian/ObsidianSettings.mjs +1 -1
  392. package/dist/lib/esm/obsidian/Pdf.mjs +1 -1
  393. package/dist/lib/esm/obsidian/Plugin/ObsidianPluginRepoPaths.mjs +1 -1
  394. package/dist/lib/esm/obsidian/Plugin/Plugin.mjs +1 -1
  395. package/dist/lib/esm/obsidian/Plugin/PluginBase.mjs +1 -1
  396. package/dist/lib/esm/obsidian/Plugin/PluginContext.mjs +1 -1
  397. package/dist/lib/esm/obsidian/Plugin/PluginId.d.mts +1 -1
  398. package/dist/lib/esm/obsidian/Plugin/PluginId.mjs +2 -2
  399. package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +1 -1
  400. package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.d.mts +6 -6
  401. package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.mjs +3 -3
  402. package/dist/lib/esm/obsidian/Plugin/PluginSettingsWrapper.d.mts +4 -4
  403. package/dist/lib/esm/obsidian/Plugin/PluginSettingsWrapper.mjs +1 -1
  404. package/dist/lib/esm/obsidian/Plugin/PluginTypesBase.d.mts +6 -6
  405. package/dist/lib/esm/obsidian/Plugin/PluginTypesBase.mjs +1 -1
  406. package/dist/lib/esm/obsidian/Plugin/index.mjs +1 -1
  407. package/dist/lib/esm/obsidian/Queue.mjs +1 -1
  408. package/dist/lib/esm/obsidian/React/AppContext.d.mts +2 -2
  409. package/dist/lib/esm/obsidian/React/AppContext.mjs +2 -2
  410. package/dist/lib/esm/obsidian/React/index.mjs +1 -1
  411. package/dist/lib/esm/obsidian/Reference.d.mts +8 -8
  412. package/dist/lib/esm/obsidian/Reference.mjs +2 -2
  413. package/dist/lib/esm/obsidian/RenameDeleteHandler.d.mts +2 -2
  414. package/dist/lib/esm/obsidian/RenameDeleteHandler.mjs +2 -2
  415. package/dist/lib/esm/obsidian/ResourceUrl.mjs +1 -1
  416. package/dist/lib/esm/obsidian/SettingEx.mjs +1 -1
  417. package/dist/lib/esm/obsidian/Validation.d.mts +1 -1
  418. package/dist/lib/esm/obsidian/Validation.mjs +2 -2
  419. package/dist/lib/esm/obsidian/Vault.d.mts +9 -1
  420. package/dist/lib/esm/obsidian/Vault.mjs +21 -4
  421. package/dist/lib/esm/obsidian/VaultEx.mjs +1 -1
  422. package/dist/lib/esm/obsidian/index.mjs +1 -1
  423. package/dist/lib/esm/url.mjs +1 -1
  424. package/package.json +1 -1
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __create = Object.create;
@@ -82,4 +82,4 @@ class WeekComponent extends import_TypedRangeTextComponent.TypedRangeTextCompone
82
82
  0 && (module.exports = {
83
83
  WeekComponent
84
84
  });
85
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvV2Vla0NvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIHdlZWsuXG4gKi9cblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vLi4vUGx1Z2luL1BsdWdpbkNvbnRleHQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi8uLi9TZXR0aW5nRXgudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7IFR5cGVkUmFuZ2VUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9UeXBlZFJhbmdlVGV4dENvbXBvbmVudC50cyc7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ1lZWVktW1ddV1cnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSVNPIDg2MDEgd2VlayBkYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElzb1dlZWsge1xuICAvKipcbiAgICogVGhlIElTTyA4NjAxIHdlZWsgbnVtYmVyICgxLTUzKS5cbiAgICovXG4gIHdlZWtOdW1iZXI6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSB5ZWFyICgxLTk5OTkpLlxuICAgKi9cbiAgeWVhcjogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgV2Vlay5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFdlZWt9LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlZWtDb21wb25lbnQgZXh0ZW5kcyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudDxJc29XZWVrPiB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFdlZWsgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcihjb250YWluZXJFbCwgJ3dlZWsnLCBDc3NDbGFzcy5XZWVrQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIFdlZWsuXG4gICAqXG4gICAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIFRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlRnJvbVN0cmluZyhzdHI6IHN0cmluZyk6IElzb1dlZWsge1xuICAgIGNvbnN0IHBhcnNlZCA9IG1vbWVudChzdHIsIERBVEVfRk9STUFUKTtcblxuICAgIGlmICghcGFyc2VkLmlzVmFsaWQoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHdlZWsnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgd2Vla051bWJlcjogcGFyc2VkLmlzb1dlZWsoKSxcbiAgICAgIHllYXI6IHBhcnNlZC55ZWFyKClcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgd2VlayB0byBhIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHdlZWsgdG8gY29udmVydC5cbiAgICogQHJldHVybnMgVGhlIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZVRvU3RyaW5nKHZhbHVlOiBJc29XZWVrKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlID0gbW9tZW50KCkueWVhcih2YWx1ZS55ZWFyKS5pc29XZWVrKHZhbHVlLndlZWtOdW1iZXIpO1xuICAgIHJldHVybiBkYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLG9CQUFtQjtBQU9uQixzQkFBeUI7QUFDekIscUNBQXdDO0FBRXhDLE1BQU0sY0FBYztBQXlCYixNQUFNLHNCQUFzQix1REFBaUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNM0QsWUFBWSxhQUEwQjtBQUMzQyxVQUFNLGFBQWEsUUFBUSx5QkFBUyxhQUFhO0FBQUEsRUFDbkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixnQkFBZ0IsS0FBc0I7QUFDcEQsVUFBTSxhQUFTLGNBQUFBLFNBQU8sS0FBSyxXQUFXO0FBRXRDLFFBQUksQ0FBQyxPQUFPLFFBQVEsR0FBRztBQUNyQixZQUFNLElBQUksTUFBTSxjQUFjO0FBQUEsSUFDaEM7QUFFQSxXQUFPO0FBQUEsTUFDTCxZQUFZLE9BQU8sUUFBUTtBQUFBLE1BQzNCLE1BQU0sT0FBTyxLQUFLO0FBQUEsSUFDcEI7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsY0FBYyxPQUF3QjtBQUNwRCxVQUFNLFdBQU8sY0FBQUEsU0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLEVBQUUsUUFBUSxNQUFNLFVBQVU7QUFDL0QsV0FBTyxLQUFLLE9BQU8sV0FBVztBQUFBLEVBQ2hDO0FBQ0Y7IiwKICAibmFtZXMiOiBbIm1vbWVudCJdCn0K
85
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvV2Vla0NvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIHdlZWsuXG4gKi9cblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vLi4vUGx1Z2luL1BsdWdpbkNvbnRleHQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi8uLi9TZXR0aW5nRXgudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7IFR5cGVkUmFuZ2VUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9UeXBlZFJhbmdlVGV4dENvbXBvbmVudC50cyc7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ1lZWVktW1ddV1cnO1xuXG4vKipcbiAqIEFuIElTTyA4NjAxIHdlZWsgZGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJc29XZWVrIHtcbiAgLyoqXG4gICAqIEFuIElTTyA4NjAxIHdlZWsgbnVtYmVyICgxLTUzKS5cbiAgICovXG4gIHdlZWtOdW1iZXI6IG51bWJlcjtcblxuICAvKipcbiAgICogQSB5ZWFyICgxLTk5OTkpLlxuICAgKi9cbiAgeWVhcjogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgV2Vlay5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFdlZWt9LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlZWtDb21wb25lbnQgZXh0ZW5kcyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudDxJc29XZWVrPiB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFdlZWsgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcihjb250YWluZXJFbCwgJ3dlZWsnLCBDc3NDbGFzcy5XZWVrQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIFdlZWsuXG4gICAqXG4gICAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIFRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlRnJvbVN0cmluZyhzdHI6IHN0cmluZyk6IElzb1dlZWsge1xuICAgIGNvbnN0IHBhcnNlZCA9IG1vbWVudChzdHIsIERBVEVfRk9STUFUKTtcblxuICAgIGlmICghcGFyc2VkLmlzVmFsaWQoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHdlZWsnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgd2Vla051bWJlcjogcGFyc2VkLmlzb1dlZWsoKSxcbiAgICAgIHllYXI6IHBhcnNlZC55ZWFyKClcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgd2VlayB0byBhIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHdlZWsgdG8gY29udmVydC5cbiAgICogQHJldHVybnMgVGhlIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZVRvU3RyaW5nKHZhbHVlOiBJc29XZWVrKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlID0gbW9tZW50KCkueWVhcih2YWx1ZS55ZWFyKS5pc29XZWVrKHZhbHVlLndlZWtOdW1iZXIpO1xuICAgIHJldHVybiBkYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLG9CQUFtQjtBQU9uQixzQkFBeUI7QUFDekIscUNBQXdDO0FBRXhDLE1BQU0sY0FBYztBQTBCYixNQUFNLHNCQUFzQix1REFBaUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNM0QsWUFBWSxhQUEwQjtBQUMzQyxVQUFNLGFBQWEsUUFBUSx5QkFBUyxhQUFhO0FBQUEsRUFDbkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixnQkFBZ0IsS0FBc0I7QUFDcEQsVUFBTSxhQUFTLGNBQUFBLFNBQU8sS0FBSyxXQUFXO0FBRXRDLFFBQUksQ0FBQyxPQUFPLFFBQVEsR0FBRztBQUNyQixZQUFNLElBQUksTUFBTSxjQUFjO0FBQUEsSUFDaEM7QUFFQSxXQUFPO0FBQUEsTUFDTCxZQUFZLE9BQU8sUUFBUTtBQUFBLE1BQzNCLE1BQU0sT0FBTyxLQUFLO0FBQUEsSUFDcEI7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsY0FBYyxPQUF3QjtBQUNwRCxVQUFNLFdBQU8sY0FBQUEsU0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLEVBQUUsUUFBUSxNQUFNLFVBQVU7QUFDL0QsV0FBTyxLQUFLLE9BQU8sV0FBVztBQUFBLEVBQ2hDO0FBQ0Y7IiwKICAibmFtZXMiOiBbIm1vbWVudCJdCn0K
@@ -5,15 +5,15 @@
5
5
  */
6
6
  import { TypedRangeTextComponent } from './TypedRangeTextComponent.cjs';
7
7
  /**
8
- * Represents an ISO 8601 week date.
8
+ * An ISO 8601 week date.
9
9
  */
10
10
  export interface IsoWeek {
11
11
  /**
12
- * The ISO 8601 week number (1-53).
12
+ * An ISO 8601 week number (1-53).
13
13
  */
14
14
  weekNumber: number;
15
15
  /**
16
- * The year (1-9999).
16
+ * A year (1-9999).
17
17
  */
18
18
  year: number;
19
19
  }
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __create = Object.create;
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __create = Object.create;
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -147,7 +147,6 @@ async function renderPaginated(options) {
147
147
  dv,
148
148
  // eslint-disable-next-line no-magic-numbers
149
149
  itemsPerPageOptions = [10, 20, 50, 100],
150
- renderer,
151
150
  rows
152
151
  } = options;
153
152
  if (rows.length === 0) {
@@ -234,7 +233,7 @@ async function renderPaginated(options) {
234
233
  const oldContainer = dv.container;
235
234
  dv.container = container;
236
235
  try {
237
- await renderer(rowsForCurrentPage);
236
+ await options.renderer(rowsForCurrentPage);
238
237
  } catch (e) {
239
238
  dv.paragraph(`\u274C${(0, import_Error.errorToString)(e)}`);
240
239
  } finally {
@@ -252,4 +251,4 @@ async function renderPaginated(options) {
252
251
  renderPaginatedList,
253
252
  renderPaginatedTable
254
253
  });
255
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvYXBpL2lubGluZS1hcGkuZC50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIERhdGFBcnJheSxcbiAgRGF0YXZpZXdBcGksXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvaW5kZXguZC50cyc7XG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHR5cGUgeyBDb21iaW5lZEZyb250bWF0dGVyIH0gZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5cbmltcG9ydCB7IGNvbnZlcnRBc3luY1RvU3luYyB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7XG4gIGVycm9yVG9TdHJpbmcsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5cbi8qKlxuICogRXhwb3J0IERhdGVUaW1lIGFuZCBMaW5rIHR5cGVzIGZyb20gdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IHR5cGUge1xuICBEYXRlVGltZSxcbiAgTGlua1xufSBmcm9tICcuL0B0eXBlcy9EYXRhdmlldy9pbmRleC5kLnRzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3QVBJIG9iamVjdCByZXByZXNlbnRzIHRoZSBBUEkgZm9yIGludGVyYWN0aW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdmFycy1vbi10b3BcbiAgdmFyIERhdGF2aWV3QVBJOiBEYXRhdmlld0FwaSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBUaGUgY29tYmluZWQgcGFnZSB0eXBlLCB3aGljaCBpbmNsdWRlcyB0aGUgZnJvbnQgbWF0dGVyIGFuZCB0aGUgU01hcmtkb3duUGFnZS5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tYmluZWRQYWdlPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4gPSBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiAmIFNNYXJrZG93blBhZ2U7XG5cbi8qKlxuICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciB0aGUgRGF0YXZpZXcgSW5saW5lIEFQSSwgcHJvdmlkaW5nIGFkZGl0aW9uYWwgbWV0aG9kcyBmb3IgY3VzdG9tIHBhZ2UgdHlwZXMgYW5kIGFycmF5IGhhbmRsaW5nLlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGF2aWV3SW5saW5lQXBpIGV4dGVuZHMgRGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbCB7XG4gIC8qKlxuICAgKiBXcmFwcyBhbiBhcnJheSBvZiBpdGVtcyBpbnRvIGEge0BsaW5rIERhdGFBcnJheX0gb2JqZWN0LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgaXRlbXMgaW4gdGhlIGFycmF5LlxuICAgKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIHdyYXAuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIERhdGFBcnJheX0gY29udGFpbmluZyB0aGUgaXRlbXMuXG4gICAqL1xuICBhcnJheTxUPihhcnI6IFRbXSk6IERhdGFBcnJheTxUPjtcblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IHBhZ2UsIHdpdGggYW4gb3B0aW9uYWwgY3VzdG9tIHBhZ2UgdHlwZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBDdXN0b21QYWdlIC0gVGhlIHR5cGUgb2YgdGhlIGN1c3RvbSBwYWdlLiBEZWZhdWx0cyB0byBgU01hcmtkb3duUGFnZWAuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHBhZ2UuXG4gICAqL1xuICBjdXJyZW50PEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4oKTogQ29tYmluZWRQYWdlPEN1c3RvbUZyb250bWF0dGVyPjtcblxuICAvKipcbiAgICogUmV0cmlldmVzIHBhZ2VzIGJhc2VkIG9uIGFuIG9wdGlvbmFsIHF1ZXJ5LCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcGFyYW0gcXVlcnkgLSBBbiBvcHRpb25hbCBzdHJpbmcgcXVlcnkgdG8gZmlsdGVyIHRoZSBwYWdlcy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgRGF0YUFycmF5fSBvZiBwYWdlcyBtYXRjaGluZyB0aGUgcXVlcnkuXG4gICAqL1xuICBwYWdlczxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KHF1ZXJ5Pzogc3RyaW5nKTogRGF0YUFycmF5PENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udG1hdHRlcj4+O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcGFyYWdyYXBoIEhUTUwgZWxlbWVudCB3aXRoIHRoZSBwcm92aWRlZCB0ZXh0IGFuZCBvcHRpb25hbCBET00gZWxlbWVudCBvcHRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRoZSBjb250ZW50IG9mIHRoZSBwYXJhZ3JhcGguXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9uYWwgRE9NIGVsZW1lbnQgb3B0aW9ucywgaW5jbHVkaW5nIGFuIG9wdGlvbmFsIGNvbnRhaW5lci5cbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgSFRNTCBwYXJhZ3JhcGggZWxlbWVudC5cbiAgICovXG4gIHBhcmFncmFwaChcbiAgICB0ZXh0OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXJcbiAgKTogSFRNTFBhcmFncmFwaEVsZW1lbnQ7XG59XG5cbi8qKlxuICogRG9tRWxlbWVudEluZm8gd2l0aCBhbiBvcHRpb25hbCBjb250YWluZXIuXG4gKi9cbmV4cG9ydCB0eXBlIERvbUVsZW1lbnRJbmZvV2l0aENvbnRhaW5lciA9IHsgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfSAmIERvbUVsZW1lbnRJbmZvO1xuXG4vKipcbiAqIFRoZSBjb21iaW5lZCBmaWxlIHR5cGUsIHdoaWNoIGluY2x1ZGVzIHRoZSBmcm9udCBtYXR0ZXIgYW5kIHRoZSBTTWFya2Rvd25GaWxlLlxuICovXG5leHBvcnQgdHlwZSBQYWdlRmlsZSA9IFNNYXJrZG93blBhZ2VbJ2ZpbGUnXTtcblxuLyoqXG4gKiBMaXN0IG9mIHBhZ2UgZmlsZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFBhZ2VGaWxlcyA9IEFycmF5T3JEYXRhQXJyYXk8UGFnZUZpbGU+O1xuXG4vKipcbiAqIFJlbG9hZHMgdGhlIGN1cnJlbnQgZmlsZSBjYWNoZSB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY2FjaGUgaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRDdXJyZW50RmlsZUNhY2hlKGR2OiBEYXRhdmlld0lubGluZUFwaSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBEYXRhdmlld0FQST8uaW5kZXgucmVsb2FkKGdldEZpbGUoZHYuYXBwLCBkdi5jdXJyZW50KCkuZmlsZS5wYXRoKSk7XG59XG5cbmNvbnN0IHBhZ2luYXRpb25Dc3MgPSBgXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBncmF5O1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBibHVlO1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmN1cnJlbnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdpbmF0aW9uIHNlbGVjdCxcbi5wYWdpbmF0aW9uIGlucHV0IHtcbiAgbWFyZ2luOiAwIDVweDtcbn1cbmA7XG5cbi8qKlxuICogQXJyYXkgb3IgRGF0YUFycmF5IHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIEFycmF5T3JEYXRhQXJyYXk8VD4gPSBEYXRhQXJyYXk8VD4gfCBUW107XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGFuIGlmcmFtZSBpbiB0aGUgRGF0YXZpZXcgY29udGFpbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlcklmcmFtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBpZnJhbWUuXG4gICAqL1xuICBoZWlnaHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJlc291cmNlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaWZyYW1lLlxuICAgKi9cbiAgcmVsYXRpdmVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIHdpZHRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGEgcGFnaW5hdGVkIGxpc3QgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRMaXN0T3B0aW9uczxUPiB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlLiBEZWZhdWx0cyB0byBgWzEwLCAyMCwgNTAsIDEwMF1gLlxuICAgKi9cbiAgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpdGVtcyB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGEgcGFnaW5hdGVkIGVsZW1lbnQgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXTtcblxuICAvKipcbiAgICogVGhlIHJlbmRlcmVyIGZ1bmN0aW9uIHRvIGRpc3BsYXkgdGhlIHBhZ2luYXRlZCBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcm93c0Zvck9uZVBhZ2UgLSBUaGUgcm93cyB0byByZW5kZXIuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBpcyByZW5kZXJlZC5cbiAgICovXG4gIHJlbmRlcmVyOiAocm93c0Zvck9uZVBhZ2U6IEFycmF5T3JEYXRhQXJyYXk8VD4pID0+IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGVycyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICBoZWFkZXJzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBbMTAsIDIwLCA1MCwgMTAwXWAuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIG9mIHRoZSB0YWJsZSB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29udGVudCB1c2luZyB0aGUgcHJvdmlkZWQgcmVuZGVyZXIgZnVuY3Rpb24gaW4gYSB0ZW1wb3JhcnkgY29udGFpbmVyLFxuICogYW5kIHRoZW4gcmV0dXJucyB0aGUgY29udGFpbmVyLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSByZW5kZXJlciAtIFRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVuZGVyaW5nIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgSFRNTCBwYXJhZ3JhcGggZWxlbWVudFxuICogdGhhdCB3YXMgdXNlZCBhcyB0aGUgdGVtcG9yYXJ5IGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbmRlcmVkQ29udGFpbmVyKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcmVuZGVyZXI6ICgpID0+IFByb21pc2FibGU8dm9pZD4pOiBQcm9taXNlPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiB7XG4gIGNvbnN0IHRlbXBDb250YWluZXIgPSBkdi5wYXJhZ3JhcGgoJycpO1xuICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyO1xuICBkdi5jb250YWluZXIuZW1wdHkoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlbmRlcmVyKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkdi5wYXJhZ3JhcGgoYFx1Mjc0QyR7ZXJyb3JUb1N0cmluZyhlKX1gKTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hdG9taWMtdXBkYXRlc1xuICAgIGR2LmNvbnRhaW5lciA9IHRlbXBDb250YWluZXIucGFyZW50RWxlbWVudCA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdDb250YWluZXIgcGFyZW50IG5vdCBmb3VuZCcpKTtcbiAgICB0ZW1wQ29udGFpbmVyLnJlbW92ZSgpO1xuICB9XG5cbiAgcmV0dXJuIHRlbXBDb250YWluZXI7XG59XG5cbi8qKlxuICogSW5zZXJ0cyBhIGNvZGUgYmxvY2sgaW50byB0aGUgc3BlY2lmaWVkIERhdGF2aWV3IGluc3RhbmNlIHVzaW5nIHRoZSBwcm92aWRlZCBsYW5ndWFnZSBhbmQgY29kZS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UgdG8gaW5zZXJ0IHRoZSBjb2RlIGJsb2NrIGludG8uXG4gKiBAcGFyYW0gbGFuZ3VhZ2UgLSBUaGUgbGFuZ3VhZ2UgaWRlbnRpZmllciBmb3IgdGhlIGNvZGUgYmxvY2suXG4gKiBAcGFyYW0gY29kZSAtIFRoZSBjb2RlIGNvbnRlbnQgdG8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgY29kZSBibG9jay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydENvZGVCbG9jayhkdjogRGF0YXZpZXdJbmxpbmVBcGksIGxhbmd1YWdlOiBzdHJpbmcsIGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBNSU5fRkVOQ0VfTEVOR1RIID0gMztcbiAgY29uc3QgZmVuY2VSZWdFeHAgPSBuZXcgUmVnRXhwKGBeXFxgeyR7U3RyaW5nKE1JTl9GRU5DRV9MRU5HVEgpfSx9YCwgJ2dtJyk7XG4gIGNvbnN0IGZlbmNlTWF0Y2hlcyA9IGNvZGUubWF0Y2hBbGwoZmVuY2VSZWdFeHApO1xuICBjb25zdCBmZW5jZUxlbmd0aHMgPSBBcnJheS5mcm9tKGZlbmNlTWF0Y2hlcykubWFwKChmZW5jZU1hdGNoKSA9PiBmZW5jZU1hdGNoWzBdLmxlbmd0aCk7XG4gIGNvbnN0IG1heEZlbmNlTGVuZ3RoID0gTWF0aC5tYXgoMCwgLi4uZmVuY2VMZW5ndGhzKTtcbiAgY29uc3QgcmVzdWx0RmVuY2VMZW5ndGggPSBNYXRoLm1heChNSU5fRkVOQ0VfTEVOR1RILCBtYXhGZW5jZUxlbmd0aCArIDEpO1xuICBjb25zdCByZXN1bHRGZW5jZSA9ICdgJy5yZXBlYXQocmVzdWx0RmVuY2VMZW5ndGgpO1xuXG4gIGR2LnBhcmFncmFwaChgJHtyZXN1bHRGZW5jZX0ke2xhbmd1YWdlfVxuJHtjb2RlfVxuJHtyZXN1bHRGZW5jZX1gKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGFuIGlmcmFtZSBpbiB0aGUgRGF0YXZpZXcgY29udGFpbmVyIHdpdGggdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBwYXRoLCB3aWR0aCwgYW5kIGhlaWdodC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIGlmcmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcklmcmFtZShvcHRpb25zOiBSZW5kZXJJZnJhbWVPcHRpb25zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBoZWlnaHQgPSAnNjAwcHgnLFxuICAgIHJlbGF0aXZlUGF0aE9yRmlsZSxcbiAgICB3aWR0aCA9ICcxMDAlJ1xuICB9ID0gb3B0aW9ucztcbiAgZHYuZWwoJ2lmcmFtZScsICcnLCB7XG4gICAgYXR0cjoge1xuICAgICAgaGVpZ2h0LFxuICAgICAgc3JjOiByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsKGR2LmFwcCwgZ2V0UGF0aChkdi5hcHAsIHJlbGF0aXZlUGF0aE9yRmlsZSksIGR2LmN1cnJlbnQoKS5maWxlLnBhdGgpLFxuICAgICAgd2lkdGhcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBwYWdpbmF0ZWQgbGlzdCB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgaW4gdGhlIGxpc3QuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgbGlzdC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxpc3QgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRMaXN0PFQ+KG9wdGlvbnM6IFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDIwLCA1MCwgMTAwXSxcbiAgICByb3dzXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzRm9yT25lUGFnZTogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYubGlzdChyb3dzRm9yT25lUGFnZSk7XG4gICAgfSxcbiAgICByb3dzXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSB0YWJsZSByb3dzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgcGFnaW5hdGVkIHRhYmxlLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFibGUgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRUYWJsZTxUIGV4dGVuZHMgdW5rbm93bltdPihvcHRpb25zOiBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlYWRlcnMsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93c0Zvck9uZVBhZ2U6IEFycmF5T3JEYXRhQXJyYXk8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGR2LnRhYmxlKGhlYWRlcnMsIHJvd3NGb3JPbmVQYWdlKTtcbiAgICB9LFxuICAgIHJvd3NcbiAgfSk7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIHJlbmRlciBwYWdpbmF0ZWQgY29udGVudCB1c2luZyB0aGUgc3BlY2lmaWVkIHJlbmRlcmVyLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIHRvIHBhZ2luYXRlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgcGFnaW5hdGVkIGNvbnRlbnQuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWQ8VD4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkT3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBTRUNPTkRfUEFHRV9OVU1CRVIgPSAyO1xuICBjb25zdCBNT1JFX1BBR0VfTlVNQkVSID0gMztcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJlbmRlcmVyLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgIGR2LnBhcmFncmFwaCgnTm8gaXRlbXMgZm91bmQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuICBsZXQgaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlT3B0aW9uc1swXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdJdGVtcyBwZXIgcGFnZSBvcHRpb25zIGFyZSBlbXB0eScpKTtcbiAgbGV0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uRGl2ID0gY29udGFpbmVyLmNyZWF0ZURpdih7IGNsczogJ3BhZ2luYXRpb24nIH0pO1xuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cxRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIGNyZWF0ZVBhZ2VMaW5rKCdGaXJzdCcsIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKCdQcmV2JywgcGFnZU51bWJlciAtIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPiBNT1JFX1BBR0VfTlVNQkVSKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVTcGFuKHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSBTRUNPTkRfUEFHRV9OVU1CRVIpOyBpIDw9IE1hdGgubWluKHRvdGFsUGFnZXMsIHBhZ2VOdW1iZXIgKyBTRUNPTkRfUEFHRV9OVU1CRVIpOyBpKyspIHtcbiAgICAgIGNvbnN0IHBhZ2VMaW5rID0gY3JlYXRlUGFnZUxpbmsoU3RyaW5nKGkpLCBpLCBpID09PSBwYWdlTnVtYmVyKTtcbiAgICAgIGlmIChpID09PSBwYWdlTnVtYmVyKSB7XG4gICAgICAgIHBhZ2VMaW5rLmFkZENsYXNzKCdjdXJyZW50Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPCB0b3RhbFBhZ2VzIC0gU0VDT05EX1BBR0VfTlVNQkVSKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVTcGFuKHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoJ05leHQnLCBwYWdlTnVtYmVyICsgMSwgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG4gICAgY3JlYXRlUGFnZUxpbmsoJ0xhc3QnLCB0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcblxuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cyRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZVNwYW4oeyB0ZXh0OiAnIEl0ZW1zIHBlciBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QgaXRlbXNQZXJQYWdlU2VsZWN0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NlbGVjdCcpO1xuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5jcmVhdGVFbCgnb3B0aW9uJywgeyB0ZXh0OiBTdHJpbmcob3B0aW9uKSwgdmFsdWU6IFN0cmluZyhvcHRpb24pIH0pO1xuICAgIH0pO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IFN0cmluZyhpdGVtc1BlclBhZ2UpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NoYW5nZScsXG4gICAgICBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpdGVtc1BlclBhZ2UgPSBwYXJzZUludChpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUsIDEwKTtcbiAgICAgICAgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gICAgICAgIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVTcGFuKHsgdGV4dDogJyAgSnVtcCB0byBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QganVtcFRvUGFnZUlucHV0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ2lucHV0JywgeyBhdHRyOiB7IG1heDogdG90YWxQYWdlcywgbWluOiAxIH0sIHR5cGU6ICdudW1iZXInIH0pO1xuICAgIGp1bXBUb1BhZ2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgY29uc3QgcGFnZSA9IHBhcnNlSW50KGp1bXBUb1BhZ2VJbnB1dC52YWx1ZSwgMTApO1xuICAgICAgICAgIGlmIChwYWdlID49IDEgJiYgcGFnZSA8PSB0b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlU3Bhbih7IHRleHQ6IGAgIFBhZ2UgJHtTdHJpbmcocGFnZU51bWJlcil9IG9mICR7U3RyaW5nKHRvdGFsUGFnZXMpfSwgVG90YWwgaXRlbXM6ICR7U3RyaW5nKHJvd3MubGVuZ3RoKX1gIH0pO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFnZUxpbmsodGV4dDogc3RyaW5nLCBjdXJyZW50UGFnZU51bWJlcjogbnVtYmVyLCBkaXNhYmxlZCA9IGZhbHNlKTogSFRNTEFuY2hvckVsZW1lbnQge1xuICAgICAgY29uc3QgbGluayA9IHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKCdhJywgeyBjbHM6ICdwYWdlLWxpbmsnLCBocmVmOiBgIyR7U3RyaW5nKGN1cnJlbnRQYWdlTnVtYmVyKX1gLCB0ZXh0IH0pO1xuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGxpbmsuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgIGxpbmsub25jbGljayA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgYXdhaXQgcmVuZGVyUGFnZShjdXJyZW50UGFnZU51bWJlcik7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29udGFpbmVyLmVtcHR5KCk7XG4gICAgY29udGFpbmVyLmNyZWF0ZUVsKCdzdHlsZScsIHsgdGV4dDogcGFnaW5hdGlvbkNzcyB9KTtcblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZU51bWJlciAtIDEpICogaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIGl0ZW1zUGVyUGFnZTtcbiAgICBjb25zdCByb3dzRm9yQ3VycmVudFBhZ2UgPSByb3dzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcblxuICAgIGNvbnN0IG9sZENvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcblxuICAgIGR2LmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkdi5wYXJhZ3JhcGgoYFx1Mjc0QyR7ZXJyb3JUb1N0cmluZyhlKX1gKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXNcbiAgICAgIGR2LmNvbnRhaW5lciA9IG9sZENvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBjcmVhdGVQYWdpbmF0aW9uQ29udHJvbHMocGFnZU51bWJlcik7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCQSxtQkFBbUM7QUFDbkMsbUJBR087QUFDUCx3QkFHTztBQUNQLHlCQUEwQztBQXlGMUMsZUFBc0IsdUJBQXVCLElBQXNDO0FBQ2pGLFFBQU0sYUFBYSxNQUFNLFdBQU8sMkJBQVEsR0FBRyxLQUFLLEdBQUcsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDO0FBQ3pFO0FBRUEsTUFBTSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJJdEIsZUFBc0IscUJBQXFCLElBQXVCLFVBQWlFO0FBQ2pJLFFBQU0sZ0JBQWdCLEdBQUcsVUFBVSxFQUFFO0FBQ3JDLEtBQUcsWUFBWTtBQUNmLEtBQUcsVUFBVSxNQUFNO0FBRW5CLE1BQUk7QUFDRixVQUFNLFNBQVM7QUFBQSxFQUNqQixTQUFTLEdBQUc7QUFDVixPQUFHLFVBQVUsYUFBSSw0QkFBYyxDQUFDLENBQUMsRUFBRTtBQUFBLEVBQ3JDLFVBQUU7QUFFQSxPQUFHLFlBQVksY0FBYyxxQkFBaUIsOEJBQWdCLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUNyRyxrQkFBYyxPQUFPO0FBQUEsRUFDdkI7QUFFQSxTQUFPO0FBQ1Q7QUFTTyxTQUFTLGdCQUFnQixJQUF1QixVQUFrQixNQUFvQjtBQUMzRixRQUFNLG1CQUFtQjtBQUN6QixRQUFNLGNBQWMsSUFBSSxPQUFPLE9BQU8sT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUk7QUFDeEUsUUFBTSxlQUFlLEtBQUssU0FBUyxXQUFXO0FBQzlDLFFBQU0sZUFBZSxNQUFNLEtBQUssWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLFdBQVcsQ0FBQyxFQUFFLE1BQU07QUFDdEYsUUFBTSxpQkFBaUIsS0FBSyxJQUFJLEdBQUcsR0FBRyxZQUFZO0FBQ2xELFFBQU0sb0JBQW9CLEtBQUssSUFBSSxrQkFBa0IsaUJBQWlCLENBQUM7QUFDdkUsUUFBTSxjQUFjLElBQUksT0FBTyxpQkFBaUI7QUFFaEQsS0FBRyxVQUFVLEdBQUcsV0FBVyxHQUFHLFFBQVE7QUFBQSxFQUN0QyxJQUFJO0FBQUEsRUFDSixXQUFXLEVBQUU7QUFDZjtBQU9PLFNBQVMsYUFBYSxTQUFvQztBQUMvRCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1Q7QUFBQSxJQUNBLFFBQVE7QUFBQSxFQUNWLElBQUk7QUFDSixLQUFHLEdBQUcsVUFBVSxJQUFJO0FBQUEsSUFDbEIsTUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQUssOENBQTBCLEdBQUcsU0FBSywyQkFBUSxHQUFHLEtBQUssa0JBQWtCLEdBQUcsR0FBRyxRQUFRLEVBQUUsS0FBSyxJQUFJO0FBQUEsTUFDbEc7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFXQSxlQUFzQixvQkFBdUIsU0FBdUQ7QUFDbEcsUUFBTTtBQUFBLElBQ0o7QUFBQTtBQUFBLElBRUEsc0JBQXNCLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRztBQUFBLElBQ3RDO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSxnQkFBZ0I7QUFBQSxJQUNwQjtBQUFBLElBQ0E7QUFBQSxJQUNBLFVBQVUsT0FBTyxtQkFBdUQ7QUFDdEUsWUFBTSxHQUFHLEtBQUssY0FBYztBQUFBLElBQzlCO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBV0EsZUFBc0IscUJBQTBDLFNBQXdEO0FBQ3RILFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBO0FBQUEsSUFFQSxzQkFBc0IsQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHO0FBQUEsSUFDdEM7QUFBQSxFQUNGLElBQUk7QUFDSixRQUFNLGdCQUFnQjtBQUFBLElBQ3BCO0FBQUEsSUFDQTtBQUFBLElBQ0EsVUFBVSxPQUFPLG1CQUF1RDtBQUN0RSxZQUFNLEdBQUcsTUFBTSxTQUFTLGNBQWM7QUFBQSxJQUN4QztBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUM7QUFDSDtBQVdBLGVBQWUsZ0JBQW1CLFNBQW1EO0FBQ25GLFFBQU0scUJBQXFCO0FBQzNCLFFBQU0sbUJBQW1CO0FBQ3pCLFFBQU07QUFBQSxJQUNKO0FBQUE7QUFBQSxJQUVBLHNCQUFzQixDQUFDLElBQUksSUFBSSxJQUFJLEdBQUc7QUFBQSxJQUN0QztBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixNQUFJLEtBQUssV0FBVyxHQUFHO0FBQ3JCLE9BQUcsVUFBVSxnQkFBZ0I7QUFDN0I7QUFBQSxFQUNGO0FBQ0EsUUFBTSxZQUFZLEdBQUc7QUFDckIsTUFBSSxlQUFlLG9CQUFvQixDQUFDLFNBQUssOEJBQWdCLElBQUksTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxNQUFJLGFBQWEsS0FBSyxLQUFLLEtBQUssU0FBUyxZQUFZO0FBQ3JELFFBQU0sV0FBVyxDQUFDO0FBRWxCLFdBQVMseUJBQXlCLFlBQTBCO0FBQzFELFVBQU0sZ0JBQWdCLFVBQVUsVUFBVSxFQUFFLEtBQUssYUFBYSxDQUFDO0FBQy9ELFVBQU0sb0JBQW9CLGNBQWMsVUFBVTtBQUVsRCxtQkFBZSxTQUFTLEdBQUcsZUFBZSxDQUFDO0FBQzNDLG1CQUFlLFFBQVEsYUFBYSxHQUFHLGVBQWUsQ0FBQztBQUV2RCxRQUFJLGFBQWEsa0JBQWtCO0FBQ2pDLHdCQUFrQixXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFBQSxJQUM5QztBQUVBLGFBQVMsSUFBSSxLQUFLLElBQUksR0FBRyxhQUFhLGtCQUFrQixHQUFHLEtBQUssS0FBSyxJQUFJLFlBQVksYUFBYSxrQkFBa0IsR0FBRyxLQUFLO0FBQzFILFlBQU0sV0FBVyxlQUFlLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxVQUFVO0FBQzlELFVBQUksTUFBTSxZQUFZO0FBQ3BCLGlCQUFTLFNBQVMsU0FBUztBQUFBLE1BQzdCO0FBQUEsSUFDRjtBQUVBLFFBQUksYUFBYSxhQUFhLG9CQUFvQjtBQUNoRCx3QkFBa0IsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQUEsSUFDOUM7QUFFQSxtQkFBZSxRQUFRLGFBQWEsR0FBRyxlQUFlLFVBQVU7QUFDaEUsbUJBQWUsUUFBUSxZQUFZLGVBQWUsVUFBVTtBQUU1RCxVQUFNLG9CQUFvQixjQUFjLFVBQVU7QUFFbEQsc0JBQWtCLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFELFVBQU0scUJBQXFCLGtCQUFrQixTQUFTLFFBQVE7QUFDOUQsd0JBQW9CLFFBQVEsQ0FBQyxXQUF5QjtBQUNwRCx5QkFBbUIsU0FBUyxVQUFVLEVBQUUsTUFBTSxPQUFPLE1BQU0sR0FBRyxPQUFPLE9BQU8sTUFBTSxFQUFFLENBQUM7QUFBQSxJQUN2RixDQUFDO0FBQ0QsdUJBQW1CLFFBQVEsT0FBTyxZQUFZO0FBQzlDLHVCQUFtQjtBQUFBLE1BQ2pCO0FBQUEsVUFDQSxpQ0FBbUIsWUFBMkI7QUFDNUMsdUJBQWUsU0FBUyxtQkFBbUIsT0FBTyxFQUFFO0FBQ3BELHFCQUFhLEtBQUssS0FBSyxLQUFLLFNBQVMsWUFBWTtBQUNqRCxjQUFNLFdBQVcsQ0FBQztBQUFBLE1BQ3BCLENBQUM7QUFBQSxJQUNIO0FBRUEsc0JBQWtCLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXpELFVBQU0sa0JBQWtCLGtCQUFrQixTQUFTLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxZQUFZLEtBQUssRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDO0FBQ2pILG9CQUFnQjtBQUFBLE1BQ2Q7QUFBQSxVQUNBLGlDQUFtQixPQUFPLFVBQXdDO0FBQ2hFLFlBQUksTUFBTSxRQUFRLFNBQVM7QUFDekIsZ0JBQU0sT0FBTyxTQUFTLGdCQUFnQixPQUFPLEVBQUU7QUFDL0MsY0FBSSxRQUFRLEtBQUssUUFBUSxZQUFZO0FBQ25DLGtCQUFNLFdBQVcsSUFBSTtBQUFBLFVBQ3ZCO0FBQUEsUUFDRjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFFQSxzQkFBa0IsV0FBVyxFQUFFLE1BQU0sVUFBVSxPQUFPLFVBQVUsQ0FBQyxPQUFPLE9BQU8sVUFBVSxDQUFDLGtCQUFrQixPQUFPLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUVuSSxhQUFTLGVBQWUsTUFBYyxtQkFBMkIsV0FBVyxPQUEwQjtBQUNwRyxZQUFNLE9BQU8sa0JBQWtCLFNBQVMsS0FBSyxFQUFFLEtBQUssYUFBYSxNQUFNLElBQUksT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUM5RyxVQUFJLFVBQVU7QUFDWixhQUFLLFNBQVMsVUFBVTtBQUN4QixhQUFLLFVBQVUsQ0FBQyxVQUE0QjtBQUMxQyxnQkFBTSxlQUFlO0FBQUEsUUFDdkI7QUFBQSxNQUNGLE9BQU87QUFDTCxhQUFLO0FBQUEsVUFDSDtBQUFBLGNBQ0EsaUNBQW1CLE9BQU8sVUFBcUM7QUFDN0Qsa0JBQU0sZUFBZTtBQUNyQixrQkFBTSxXQUFXLGlCQUFpQjtBQUFBLFVBQ3BDLENBQUM7QUFBQSxRQUNIO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLGlCQUFlLFdBQVcsWUFBbUM7QUFDM0QsY0FBVSxNQUFNO0FBQ2hCLGNBQVUsU0FBUyxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkQsVUFBTSxjQUFjLGFBQWEsS0FBSztBQUN0QyxVQUFNLFdBQVcsYUFBYTtBQUM5QixVQUFNLHFCQUFxQixLQUFLLE1BQU0sWUFBWSxRQUFRO0FBRTFELFVBQU0sZUFBZSxHQUFHO0FBRXhCLE9BQUcsWUFBWTtBQUNmLFFBQUk7QUFDRixZQUFNLFNBQVMsa0JBQWtCO0FBQUEsSUFDbkMsU0FBUyxHQUFHO0FBQ1YsU0FBRyxVQUFVLGFBQUksNEJBQWMsQ0FBQyxDQUFDLEVBQUU7QUFBQSxJQUNyQyxVQUFFO0FBRUEsU0FBRyxZQUFZO0FBQUEsSUFDakI7QUFFQSw2QkFBeUIsVUFBVTtBQUFBLEVBQ3JDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
254
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvYXBpL2lubGluZS1hcGkuZC50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIERhdGFBcnJheSxcbiAgRGF0YXZpZXdBcGksXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvaW5kZXguZC50cyc7XG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHR5cGUgeyBDb21iaW5lZEZyb250bWF0dGVyIH0gZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5cbmltcG9ydCB7IGNvbnZlcnRBc3luY1RvU3luYyB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7XG4gIGVycm9yVG9TdHJpbmcsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5cbi8qKlxuICogRXhwb3J0IERhdGVUaW1lIGFuZCBMaW5rIHR5cGVzIGZyb20gdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IHR5cGUge1xuICBEYXRlVGltZSxcbiAgTGlua1xufSBmcm9tICcuL0B0eXBlcy9EYXRhdmlldy9pbmRleC5kLnRzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdBcGl9IG9iamVjdCByZXByZXNlbnRzIHRoZSBBUEkgZm9yIGludGVyYWN0aW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdmFycy1vbi10b3BcbiAgdmFyIERhdGF2aWV3QVBJOiBEYXRhdmlld0FwaSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBIGNvbWJpbmVkIHBhZ2UgdHlwZSwgd2hpY2ggaW5jbHVkZXMgdGhlIGZyb250IG1hdHRlciBhbmQgdGhlIFNNYXJrZG93blBhZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+ID0gQ29tYmluZWRGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj4gJiBTTWFya2Rvd25QYWdlO1xuXG4vKipcbiAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgdGhlIERhdGF2aWV3IElubGluZSBBUEksIHByb3ZpZGluZyBhZGRpdGlvbmFsIG1ldGhvZHMgZm9yIGN1c3RvbSBwYWdlIHR5cGVzIGFuZCBhcnJheSBoYW5kbGluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhdmlld0lubGluZUFwaSBleHRlbmRzIERhdGF2aWV3SW5saW5lQXBpT3JpZ2luYWwge1xuICAvKipcbiAgICogV3JhcHMgYW4gYXJyYXkgb2YgaXRlbXMgaW50byBhIHtAbGluayBEYXRhQXJyYXl9IG9iamVjdC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIGluIHRoZSBhcnJheS5cbiAgICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byB3cmFwLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBEYXRhQXJyYXl9IGNvbnRhaW5pbmcgdGhlIGl0ZW1zLlxuICAgKi9cbiAgYXJyYXk8VD4oYXJyOiBUW10pOiBEYXRhQXJyYXk8VD47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBwYWdlLCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBwYWdlLlxuICAgKi9cbiAgY3VycmVudDxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KCk6IENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udG1hdHRlcj47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBwYWdlcyBiYXNlZCBvbiBhbiBvcHRpb25hbCBxdWVyeSwgd2l0aCBhbiBvcHRpb25hbCBjdXN0b20gcGFnZSB0eXBlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAgICogQHBhcmFtIHF1ZXJ5IC0gQW4gb3B0aW9uYWwgc3RyaW5nIHF1ZXJ5IHRvIGZpbHRlciB0aGUgcGFnZXMuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIERhdGFBcnJheX0gb2YgcGFnZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgcGFnZXM8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPihxdWVyeT86IHN0cmluZyk6IERhdGFBcnJheTxDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRtYXR0ZXI+PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBhcmFncmFwaCBIVE1MIGVsZW1lbnQgd2l0aCB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3B0aW9uYWwgRE9NIGVsZW1lbnQgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgY29udGVudCBvZiB0aGUgcGFyYWdyYXBoLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnQuXG4gICAqL1xuICBwYXJhZ3JhcGgoXG4gICAgdGV4dDogdW5rbm93bixcbiAgICBvcHRpb25zPzogRG9tRWxlbWVudEluZm9XaXRoQ29udGFpbmVyXG4gICk6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xufVxuXG4vKipcbiAqIERvbUVsZW1lbnRJbmZvIHdpdGggYW4gb3B0aW9uYWwgY29udGFpbmVyLlxuICovXG5leHBvcnQgdHlwZSBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXIgPSB7IGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IH0gJiBEb21FbGVtZW50SW5mbztcblxuLyoqXG4gKiBBIGNvbWJpbmVkIGZpbGUgdHlwZSwgd2hpY2ggaW5jbHVkZXMgdGhlIGZyb250IG1hdHRlciBhbmQgdGhlIFNNYXJrZG93bkZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIFBhZ2VGaWxlID0gU01hcmtkb3duUGFnZVsnZmlsZSddO1xuXG4vKipcbiAqIExpc3Qgb2YgcGFnZSBmaWxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGVzID0gQXJyYXlPckRhdGFBcnJheTxQYWdlRmlsZT47XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgY3VycmVudCBmaWxlIGNhY2hlIHVzaW5nIHRoZSBEYXRhdmlldyBBUEkuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjYWNoZSBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUoZHY6IERhdGF2aWV3SW5saW5lQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IERhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZ2V0RmlsZShkdi5hcHAsIGR2LmN1cnJlbnQoKS5maWxlLnBhdGgpKTtcbn1cblxuY29uc3QgcGFnaW5hdGlvbkNzcyA9IGBcbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IGdyYXk7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICBtYXJnaW46IDAgNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGJsdWU7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuY3VycmVudCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2luYXRpb24gc2VsZWN0LFxuLnBhZ2luYXRpb24gaW5wdXQge1xuICBtYXJnaW46IDAgNXB4O1xufVxuYDtcblxuLyoqXG4gKiBBcnJheSBvciBEYXRhQXJyYXkgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlPckRhdGFBcnJheTxUPiA9IERhdGFBcnJheTxUPiB8IFRbXTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVuZGVySWZyYW1lfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJJZnJhbWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIERhdGF2aWV3SW5saW5lQXBpfSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogQSBoZWlnaHQgb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIGhlaWdodDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJlc291cmNlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaWZyYW1lLlxuICAgKi9cbiAgcmVsYXRpdmVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHdpZHRoIG9mIHRoZSBpZnJhbWUuXG4gICAqL1xuICB3aWR0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZW5kZXJQYWdpbmF0ZWRMaXN0fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRMaXN0T3B0aW9uczxUPiB7XG4gIC8qKlxuICAgKiBBIHtAbGluayBEYXRhdmlld0lubGluZUFwaX0gaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlLiBEZWZhdWx0cyB0byBgWzEwLCAyMCwgNTAsIDEwMF1gLlxuICAgKi9cbiAgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZW5kZXJQYWdpbmF0ZWR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZE9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHJvd3NGb3JPbmVQYWdlIC0gVGhlIHJvd3MgdG8gcmVuZGVyLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVuZGVyZWQuXG4gICAqL1xuICByZW5kZXJlcihyb3dzRm9yT25lUGFnZTogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIFJvd3MgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZW5kZXJQYWdpbmF0ZWRUYWJsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyUGFnaW5hdGVkVGFibGVPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIERhdGF2aWV3SW5saW5lQXBpfSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogQSBoZWFkZXJzIG9mIHRoZSB0YWJsZS5cbiAgICovXG4gIGhlYWRlcnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS4gRGVmYXVsdHMgdG8gYFsxMCwgMjAsIDUwLCAxMDBdYC5cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXTtcblxuICAvKipcbiAgICogUm93cyBvZiB0aGUgdGFibGUgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGNvbnRlbnQgdXNpbmcgdGhlIHByb3ZpZGVkIHJlbmRlcmVyIGZ1bmN0aW9uIGluIGEgdGVtcG9yYXJ5IGNvbnRhaW5lcixcbiAqIGFuZCB0aGVuIHJldHVybnMgdGhlIGNvbnRhaW5lci5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcmVuZGVyZXIgLSBUaGUgZnVuY3Rpb24gcmVzcG9uc2libGUgZm9yIHJlbmRlcmluZyB0aGUgY29udGVudC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnRcbiAqIHRoYXQgd2FzIHVzZWQgYXMgdGhlIHRlbXBvcmFyeSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZW5kZXJlZENvbnRhaW5lcihkdjogRGF0YXZpZXdJbmxpbmVBcGksIHJlbmRlcmVyOiAoKSA9PiBQcm9taXNhYmxlPHZvaWQ+KTogUHJvbWlzZTxIVE1MUGFyYWdyYXBoRWxlbWVudD4ge1xuICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZHYucGFyYWdyYXBoKCcnKTtcbiAgZHYuY29udGFpbmVyID0gdGVtcENvbnRhaW5lcjtcbiAgZHYuY29udGFpbmVyLmVtcHR5KCk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCByZW5kZXJlcigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZHYucGFyYWdyYXBoKGBcdTI3NEMke2Vycm9yVG9TdHJpbmcoZSl9YCk7XG4gIH0gZmluYWxseSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXNcbiAgICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyLnBhcmVudEVsZW1lbnQgPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignQ29udGFpbmVyIHBhcmVudCBub3QgZm91bmQnKSk7XG4gICAgdGVtcENvbnRhaW5lci5yZW1vdmUoKTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wQ29udGFpbmVyO1xufVxuXG4vKipcbiAqIEluc2VydHMgYSBjb2RlIGJsb2NrIGludG8gdGhlIHNwZWNpZmllZCBEYXRhdmlldyBpbnN0YW5jZSB1c2luZyB0aGUgcHJvdmlkZWQgbGFuZ3VhZ2UgYW5kIGNvZGUuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlIHRvIGluc2VydCB0aGUgY29kZSBibG9jayBpbnRvLlxuICogQHBhcmFtIGxhbmd1YWdlIC0gVGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgZm9yIHRoZSBjb2RlIGJsb2NrLlxuICogQHBhcmFtIGNvZGUgLSBUaGUgY29kZSBjb250ZW50IHRvIGJlIGluc2VydGVkIGludG8gdGhlIGNvZGUgYmxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRDb2RlQmxvY2soZHY6IERhdGF2aWV3SW5saW5lQXBpLCBsYW5ndWFnZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgTUlOX0ZFTkNFX0xFTkdUSCA9IDM7XG4gIGNvbnN0IGZlbmNlUmVnRXhwID0gbmV3IFJlZ0V4cChgXlxcYHske1N0cmluZyhNSU5fRkVOQ0VfTEVOR1RIKX0sfWAsICdnbScpO1xuICBjb25zdCBmZW5jZU1hdGNoZXMgPSBjb2RlLm1hdGNoQWxsKGZlbmNlUmVnRXhwKTtcbiAgY29uc3QgZmVuY2VMZW5ndGhzID0gQXJyYXkuZnJvbShmZW5jZU1hdGNoZXMpLm1hcCgoZmVuY2VNYXRjaCkgPT4gZmVuY2VNYXRjaFswXS5sZW5ndGgpO1xuICBjb25zdCBtYXhGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDAsIC4uLmZlbmNlTGVuZ3Rocyk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlTGVuZ3RoID0gTWF0aC5tYXgoTUlOX0ZFTkNFX0xFTkdUSCwgbWF4RmVuY2VMZW5ndGggKyAxKTtcbiAgY29uc3QgcmVzdWx0RmVuY2UgPSAnYCcucmVwZWF0KHJlc3VsdEZlbmNlTGVuZ3RoKTtcblxuICBkdi5wYXJhZ3JhcGgoYCR7cmVzdWx0RmVuY2V9JHtsYW5ndWFnZX1cbiR7Y29kZX1cbiR7cmVzdWx0RmVuY2V9YCk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhbiBpZnJhbWUgaW4gdGhlIERhdGF2aWV3IGNvbnRhaW5lciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVsYXRpdmUgcGF0aCwgd2lkdGgsIGFuZCBoZWlnaHQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBpZnJhbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJZnJhbWUob3B0aW9uczogUmVuZGVySWZyYW1lT3B0aW9ucyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaGVpZ2h0ID0gJzYwMHB4JyxcbiAgICByZWxhdGl2ZVBhdGhPckZpbGUsXG4gICAgd2lkdGggPSAnMTAwJSdcbiAgfSA9IG9wdGlvbnM7XG4gIGR2LmVsKCdpZnJhbWUnLCAnJywge1xuICAgIGF0dHI6IHtcbiAgICAgIGhlaWdodCxcbiAgICAgIHNyYzogcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybChkdi5hcHAsIGdldFBhdGgoZHYuYXBwLCByZWxhdGl2ZVBhdGhPckZpbGUpLCBkdi5jdXJyZW50KCkuZmlsZS5wYXRoKSxcbiAgICAgIHdpZHRoXG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgcGFnaW5hdGVkIGxpc3QgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSBsaXN0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgcGFnaW5hdGVkIGxpc3QuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBsaXN0IGlzIHJlbmRlcmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkTGlzdDxUPihvcHRpb25zOiBSZW5kZXJQYWdpbmF0ZWRMaXN0T3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93c0Zvck9uZVBhZ2U6IEFycmF5T3JEYXRhQXJyYXk8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGR2Lmxpc3Qocm93c0Zvck9uZVBhZ2UpO1xuICAgIH0sXG4gICAgcm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgcGFnaW5hdGVkIHRhYmxlIHVzaW5nIHRoZSBwcm92aWRlZCBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyBpbiB0aGUgdGFibGUgcm93cy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCB0YWJsZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRhYmxlIGlzIHJlbmRlcmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkVGFibGU8VCBleHRlbmRzIHVua25vd25bXT4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkVGFibGVPcHRpb25zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBoZWFkZXJzLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZCh7XG4gICAgZHYsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyxcbiAgICByZW5kZXJlcjogYXN5bmMgKHJvd3NGb3JPbmVQYWdlOiBBcnJheU9yRGF0YUFycmF5PFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBhd2FpdCBkdi50YWJsZShoZWFkZXJzLCByb3dzRm9yT25lUGFnZSk7XG4gICAgfSxcbiAgICByb3dzXG4gIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byByZW5kZXIgcGFnaW5hdGVkIGNvbnRlbnQgdXNpbmcgdGhlIHNwZWNpZmllZCByZW5kZXJlci5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyB0byBwYWdpbmF0ZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCBjb250ZW50LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBpcyByZW5kZXJlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkPFQ+KG9wdGlvbnM6IFJlbmRlclBhZ2luYXRlZE9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgU0VDT05EX1BBR0VfTlVNQkVSID0gMjtcbiAgY29uc3QgTU9SRV9QQUdFX05VTUJFUiA9IDM7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDIwLCA1MCwgMTAwXSxcbiAgICByb3dzXG4gIH0gPSBvcHRpb25zO1xuICBpZiAocm93cy5sZW5ndGggPT09IDApIHtcbiAgICBkdi5wYXJhZ3JhcGgoJ05vIGl0ZW1zIGZvdW5kJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcbiAgbGV0IGl0ZW1zUGVyUGFnZSA9IGl0ZW1zUGVyUGFnZU9wdGlvbnNbMF0gPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignSXRlbXMgcGVyIHBhZ2Ugb3B0aW9ucyBhcmUgZW1wdHknKSk7XG4gIGxldCB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHJvd3MubGVuZ3RoIC8gaXRlbXNQZXJQYWdlKTtcbiAgYXdhaXQgcmVuZGVyUGFnZSgxKTtcblxuICBmdW5jdGlvbiBjcmVhdGVQYWdpbmF0aW9uQ29udHJvbHMocGFnZU51bWJlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkRpdiA9IGNvbnRhaW5lci5jcmVhdGVEaXYoeyBjbHM6ICdwYWdpbmF0aW9uJyB9KTtcbiAgICBjb25zdCBwYWdpbmF0aW9uUm93MURpdiA9IHBhZ2luYXRpb25EaXYuY3JlYXRlRGl2KCk7XG5cbiAgICBjcmVhdGVQYWdlTGluaygnRmlyc3QnLCAxLCBwYWdlTnVtYmVyID09PSAxKTtcbiAgICBjcmVhdGVQYWdlTGluaygnUHJldicsIHBhZ2VOdW1iZXIgLSAxLCBwYWdlTnVtYmVyID09PSAxKTtcblxuICAgIGlmIChwYWdlTnVtYmVyID4gTU9SRV9QQUdFX05VTUJFUikge1xuICAgICAgcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlU3Bhbih7IHRleHQ6ICcuLi4nIH0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBNYXRoLm1heCgxLCBwYWdlTnVtYmVyIC0gU0VDT05EX1BBR0VfTlVNQkVSKTsgaSA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgU0VDT05EX1BBR0VfTlVNQkVSKTsgaSsrKSB7XG4gICAgICBjb25zdCBwYWdlTGluayA9IGNyZWF0ZVBhZ2VMaW5rKFN0cmluZyhpKSwgaSwgaSA9PT0gcGFnZU51bWJlcik7XG4gICAgICBpZiAoaSA9PT0gcGFnZU51bWJlcikge1xuICAgICAgICBwYWdlTGluay5hZGRDbGFzcygnY3VycmVudCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYWdlTnVtYmVyIDwgdG90YWxQYWdlcyAtIFNFQ09ORF9QQUdFX05VTUJFUikge1xuICAgICAgcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlU3Bhbih7IHRleHQ6ICcuLi4nIH0pO1xuICAgIH1cblxuICAgIGNyZWF0ZVBhZ2VMaW5rKCdOZXh0JywgcGFnZU51bWJlciArIDEsIHBhZ2VOdW1iZXIgPT09IHRvdGFsUGFnZXMpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKCdMYXN0JywgdG90YWxQYWdlcywgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uUm93MkRpdiA9IHBhZ2luYXRpb25EaXYuY3JlYXRlRGl2KCk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVTcGFuKHsgdGV4dDogJyBJdGVtcyBwZXIgcGFnZTogJyB9KTtcblxuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZVNlbGVjdCA9IHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdzZWxlY3QnKTtcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLmZvckVhY2goKG9wdGlvbjogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICBpdGVtc1BlclBhZ2VTZWxlY3QuY3JlYXRlRWwoJ29wdGlvbicsIHsgdGV4dDogU3RyaW5nKG9wdGlvbiksIHZhbHVlOiBTdHJpbmcob3B0aW9uKSB9KTtcbiAgICB9KTtcbiAgICBpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUgPSBTdHJpbmcoaXRlbXNQZXJQYWdlKTtcbiAgICBpdGVtc1BlclBhZ2VTZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoaXRlbXNQZXJQYWdlU2VsZWN0LnZhbHVlLCAxMCk7XG4gICAgICAgIHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICAgICAgICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlU3Bhbih7IHRleHQ6ICcgIEp1bXAgdG8gcGFnZTogJyB9KTtcblxuICAgIGNvbnN0IGp1bXBUb1BhZ2VJbnB1dCA9IHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdpbnB1dCcsIHsgYXR0cjogeyBtYXg6IHRvdGFsUGFnZXMsIG1pbjogMSB9LCB0eXBlOiAnbnVtYmVyJyB9KTtcbiAgICBqdW1wVG9QYWdlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChqdW1wVG9QYWdlSW5wdXQudmFsdWUsIDEwKTtcbiAgICAgICAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdG90YWxQYWdlcykge1xuICAgICAgICAgICAgYXdhaXQgcmVuZGVyUGFnZShwYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZVNwYW4oeyB0ZXh0OiBgICBQYWdlICR7U3RyaW5nKHBhZ2VOdW1iZXIpfSBvZiAke1N0cmluZyh0b3RhbFBhZ2VzKX0sIFRvdGFsIGl0ZW1zOiAke1N0cmluZyhyb3dzLmxlbmd0aCl9YCB9KTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhZ2VMaW5rKHRleHQ6IHN0cmluZywgY3VycmVudFBhZ2VOdW1iZXI6IG51bWJlciwgZGlzYWJsZWQgPSBmYWxzZSk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnYScsIHsgY2xzOiAncGFnZS1saW5rJywgaHJlZjogYCMke1N0cmluZyhjdXJyZW50UGFnZU51bWJlcil9YCwgdGV4dCB9KTtcbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICBsaW5rLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICBsaW5rLm9uY2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICdjbGljaycsXG4gICAgICAgICAgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UoY3VycmVudFBhZ2VOdW1iZXIpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGluaztcbiAgICB9XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnRhaW5lci5lbXB0eSgpO1xuICAgIGNvbnRhaW5lci5jcmVhdGVFbCgnc3R5bGUnLCB7IHRleHQ6IHBhZ2luYXRpb25Dc3MgfSk7XG5cbiAgICBjb25zdCBzdGFydEluZGV4ID0gKHBhZ2VOdW1iZXIgLSAxKSAqIGl0ZW1zUGVyUGFnZTtcbiAgICBjb25zdCBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3Qgcm93c0ZvckN1cnJlbnRQYWdlID0gcm93cy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCk7XG5cbiAgICBjb25zdCBvbGRDb250YWluZXIgPSBkdi5jb250YWluZXI7XG5cbiAgICBkdi5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9wdGlvbnMucmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkdi5wYXJhZ3JhcGgoYFx1Mjc0QyR7ZXJyb3JUb1N0cmluZyhlKX1gKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXNcbiAgICAgIGR2LmNvbnRhaW5lciA9IG9sZENvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBjcmVhdGVQYWdpbmF0aW9uQ29udHJvbHMocGFnZU51bWJlcik7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCQSxtQkFBbUM7QUFDbkMsbUJBR087QUFDUCx3QkFHTztBQUNQLHlCQUEwQztBQXlGMUMsZUFBc0IsdUJBQXVCLElBQXNDO0FBQ2pGLFFBQU0sYUFBYSxNQUFNLFdBQU8sMkJBQVEsR0FBRyxLQUFLLEdBQUcsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDO0FBQ3pFO0FBRUEsTUFBTSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFB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
@@ -14,12 +14,12 @@ import type { CombinedFrontmatter } from './Frontmatter.cjs';
14
14
  export type { DateTime, Link } from './@types/Dataview/index.d.cjs';
15
15
  declare global {
16
16
  /**
17
- * The DataviewAPI object represents the API for interacting with Dataview in Obsidian.
17
+ * A {@link DataviewApi} object represents the API for interacting with Dataview in Obsidian.
18
18
  */
19
19
  var DataviewAPI: DataviewApi | undefined;
20
20
  }
21
21
  /**
22
- * The combined page type, which includes the front matter and the SMarkdownPage.
22
+ * A combined page type, which includes the front matter and the SMarkdownPage.
23
23
  */
24
24
  export type CombinedPage<CustomFrontmatter = unknown> = CombinedFrontmatter<CustomFrontmatter> & SMarkdownPage;
25
25
  /**
@@ -67,7 +67,7 @@ export type DomElementInfoWithContainer = {
67
67
  container?: HTMLElement;
68
68
  } & DomElementInfo;
69
69
  /**
70
- * The combined file type, which includes the front matter and the SMarkdownFile.
70
+ * A combined file type, which includes the front matter and the SMarkdownFile.
71
71
  */
72
72
  export type PageFile = SMarkdownPage['file'];
73
73
  /**
@@ -86,32 +86,32 @@ export declare function reloadCurrentFileCache(dv: DataviewInlineApi): Promise<v
86
86
  */
87
87
  export type ArrayOrDataArray<T> = DataArray<T> | T[];
88
88
  /**
89
- * Options for rendering an iframe in the Dataview container.
89
+ * Options for {@link renderIframe}.
90
90
  */
91
91
  export interface RenderIframeOptions {
92
92
  /**
93
- * The DataviewInlineApi instance.
93
+ * A {@link DataviewInlineApi} instance.
94
94
  */
95
95
  dv: DataviewInlineApi;
96
96
  /**
97
- * The height of the iframe.
97
+ * A height of the iframe.
98
98
  */
99
99
  height: string;
100
100
  /**
101
- * The relative path to the resource to be displayed in the iframe.
101
+ * A relative path to the resource to be displayed in the iframe.
102
102
  */
103
103
  relativePathOrFile: PathOrFile;
104
104
  /**
105
- * The width of the iframe.
105
+ * A width of the iframe.
106
106
  */
107
107
  width: string;
108
108
  }
109
109
  /**
110
- * Options for rendering a paginated list using the Dataview API.
110
+ * Options for {@link renderPaginatedList}.
111
111
  */
112
112
  export interface RenderPaginatedListOptions<T> {
113
113
  /**
114
- * The DataviewInlineApi instance.
114
+ * A {@link DataviewInlineApi} instance.
115
115
  */
116
116
  dv: DataviewInlineApi;
117
117
  /**
@@ -119,16 +119,16 @@ export interface RenderPaginatedListOptions<T> {
119
119
  */
120
120
  itemsPerPageOptions?: number[];
121
121
  /**
122
- * The list of items to paginate.
122
+ * A list of items to paginate.
123
123
  */
124
124
  rows: ArrayOrDataArray<T>;
125
125
  }
126
126
  /**
127
- * Options for rendering a paginated element using the Dataview API.
127
+ * Options for {@link renderPaginated}.
128
128
  */
129
129
  export interface RenderPaginatedOptions<T> {
130
130
  /**
131
- * The DataviewInlineApi instance.
131
+ * A {@link DataviewInlineApi} instance.
132
132
  */
133
133
  dv: DataviewInlineApi;
134
134
  /**
@@ -136,27 +136,27 @@ export interface RenderPaginatedOptions<T> {
136
136
  */
137
137
  itemsPerPageOptions: number[];
138
138
  /**
139
- * The renderer function to display the paginated content.
139
+ * Display the paginated content.
140
140
  *
141
141
  * @param rowsForOnePage - The rows to render.
142
142
  * @returns A {@link Promise} that resolves when the content is rendered.
143
143
  */
144
- renderer: (rowsForOnePage: ArrayOrDataArray<T>) => Promisable<void>;
144
+ renderer(rowsForOnePage: ArrayOrDataArray<T>): Promisable<void>;
145
145
  /**
146
- * The rows to paginate.
146
+ * Rows to paginate.
147
147
  */
148
148
  rows: ArrayOrDataArray<T>;
149
149
  }
150
150
  /**
151
- * Options for rendering a paginated table using the Dataview API.
151
+ * Options for {@link renderPaginatedTable}.
152
152
  */
153
153
  export interface RenderPaginatedTableOptions<T> {
154
154
  /**
155
- * The DataviewInlineApi instance.
155
+ * A {@link DataviewInlineApi} instance.
156
156
  */
157
157
  dv: DataviewInlineApi;
158
158
  /**
159
- * The headers of the table.
159
+ * A headers of the table.
160
160
  */
161
161
  headers: string[];
162
162
  /**
@@ -164,7 +164,7 @@ export interface RenderPaginatedTableOptions<T> {
164
164
  */
165
165
  itemsPerPageOptions?: number[];
166
166
  /**
167
- * The rows of the table to paginate.
167
+ * Rows of the table to paginate.
168
168
  */
169
169
  rows: ArrayOrDataArray<T>;
170
170
  }
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -342,4 +342,4 @@ function validateChanges(changes, content, frontmatter, path, shouldShowWarning)
342
342
  isFrontmatterChange,
343
343
  isFrontmatterChangeWithOffsets
344
344
  });
345
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVDaGFuZ2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSB0eXBlcyBhbmQgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBmaWxlIGNoYW5nZXMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICBSZWZlcmVuY2UsXG4gIFJlZmVyZW5jZUNhY2hlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQ2FudmFzRGF0YSB9IGZyb20gJ29ic2lkaWFuL0NhbnZhcy5kLnRzJztcblxuaW1wb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgaXNSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJy4uL09iamVjdFV0aWxzLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVQcm92aWRlciB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udG1hdHRlciB9IGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIH0gZnJvbSAnLi9Gcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgQ2FudmFzRmlsZU5vZGVSZWZlcmVuY2UsXG4gIENhbnZhc1JlZmVyZW5jZSxcbiAgQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2Vcbn0gZnJvbSAnLi9SZWZlcmVuY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQcm9jZXNzT3B0aW9ucyB9IGZyb20gJy4vVmF1bHQudHMnO1xuXG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJy4uL0RlYnVnLnRzJztcbmltcG9ydCB7XG4gIGRlZXBFcXVhbCxcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZVxufSBmcm9tICcuLi9PYmplY3RVdGlscy50cyc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICcuLi9WYWx1ZVByb3ZpZGVyLnRzJztcbmltcG9ydCB7XG4gIGdldFBhdGgsXG4gIGlzQ2FudmFzRmlsZVxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHtcbiAgcGFyc2VGcm9udG1hdHRlcixcbiAgc2V0RnJvbnRtYXR0ZXJcbn0gZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5pbXBvcnQgeyBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMgfSBmcm9tICcuL0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMudHMnO1xuaW1wb3J0IHtcbiAgaXNDYW52YXNSZWZlcmVuY2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZVxufSBmcm9tICcuL1JlZmVyZW5jZS50cyc7XG5pbXBvcnQgeyBwcm9jZXNzIH0gZnJvbSAnLi9WYXVsdC50cyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZpbGUgY2hhbmdlIGluIHRoZSBWYXVsdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBuZXcgY29udGVudCB0byByZXBsYWNlIHRoZSBvbGQgY29udGVudC5cbiAgICovXG4gIG5ld0NvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9sZCBjb250ZW50IHRoYXQgd2lsbCBiZSByZXBsYWNlZC5cbiAgICovXG4gIG9sZENvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSB0aGF0IGNhdXNlZCB0aGUgY2hhbmdlLlxuICAgKi9cbiAgcmVmZXJlbmNlOiBSZWZlcmVuY2U7XG59XG50eXBlIENhbnZhc0NoYW5nZSA9IHsgcmVmZXJlbmNlOiBDYW52YXNSZWZlcmVuY2UgfSAmIEZpbGVDaGFuZ2U7XG50eXBlIENhbnZhc0ZpbGVOb2RlQ2hhbmdlID0geyByZWZlcmVuY2U6IENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlIH0gJiBGaWxlQ2hhbmdlO1xudHlwZSBDYW52YXNUZXh0Tm9kZUNoYW5nZSA9IHsgcmVmZXJlbmNlOiBDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSB9ICYgRmlsZUNoYW5nZTtcbnR5cGUgQ29udGVudENoYW5nZSA9IHsgcmVmZXJlbmNlOiBSZWZlcmVuY2VDYWNoZSB9ICYgRmlsZUNoYW5nZTtcbnR5cGUgRnJvbnRtYXR0ZXJDaGFuZ2UgPSB7IHJlZmVyZW5jZTogRnJvbnRtYXR0ZXJMaW5rQ2FjaGUgfSAmIEZpbGVDaGFuZ2U7XG50eXBlIEZyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHMgPSB7IHJlZmVyZW5jZTogRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyB9ICYgRmlsZUNoYW5nZTtcblxuLyoqXG4gKiBBcHBsaWVzIGEgc2VyaWVzIG9mIGNvbnRlbnQgY2hhbmdlcyB0byB0aGUgc3BlY2lmaWVkIGNvbnRlbnQuXG4gKlxuICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBjb250cm9sIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uLlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCB0byB3aGljaCB0aGUgY2hhbmdlcyBzaG91bGQgYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gd2hpY2ggdGhlIGNoYW5nZXMgc2hvdWxkIGJlIGFwcGxpZWQuXG4gKiBAcGFyYW0gY2hhbmdlc1Byb3ZpZGVyIC0gQSBwcm92aWRlciB0aGF0IHJldHVybnMgYW4gYXJyYXkgb2YgY29udGVudCBjaGFuZ2VzIHRvIGFwcGx5LlxuICogQHBhcmFtIHNob3VsZFJldHJ5T25JbnZhbGlkQ2hhbmdlcyAtIFdoZXRoZXIgdG8gcmV0cnkgdGhlIG9wZXJhdGlvbiBpZiB0aGUgY2hhbmdlcyBhcmUgaW52YWxpZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHVwZGF0ZWQgY29udGVudCBvciB0byBgbnVsbGAgaWYgdXBkYXRlIGRpZG4ndCBzdWNjZWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlDb250ZW50Q2hhbmdlcyhcbiAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsLFxuICBjb250ZW50OiBzdHJpbmcsXG4gIHBhdGg6IHN0cmluZyxcbiAgY2hhbmdlc1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPEZpbGVDaGFuZ2VbXT4sXG4gIHNob3VsZFJldHJ5T25JbnZhbGlkQ2hhbmdlcyA9IHRydWVcbik6IFByb21pc2U8bnVsbCB8IHN0cmluZz4ge1xuICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICBsZXQgY2hhbmdlcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjaGFuZ2VzUHJvdmlkZXIsIGFib3J0U2lnbmFsKTtcbiAgbGV0IGZyb250bWF0dGVyOiBDb21iaW5lZEZyb250bWF0dGVyPHVua25vd24+ID0ge307XG4gIGxldCBoYXNGcm9udG1hdHRlckVycm9yID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgZnJvbnRtYXR0ZXIgPSBwYXJzZUZyb250bWF0dGVyKGNvbnRlbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IobmV3IEVycm9yKGBGcm9udG1hdHRlciBwYXJzaW5nIGZhaWxlZCBpbiAke3BhdGh9YCwgeyBjYXVzZTogZXJyb3IgfSkpO1xuICAgIGhhc0Zyb250bWF0dGVyRXJyb3IgPSB0cnVlO1xuICB9XG5cbiAgaWYgKCF2YWxpZGF0ZUNoYW5nZXMoY2hhbmdlcywgY29udGVudCwgZnJvbnRtYXR0ZXIsIHBhdGgsIHNob3VsZFJldHJ5T25JbnZhbGlkQ2hhbmdlcykpIHtcbiAgICByZXR1cm4gc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzID8gbnVsbCA6IGNvbnRlbnQ7XG4gIH1cblxuICBjaGFuZ2VzLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoaXNDb250ZW50Q2hhbmdlKGEpICYmIGlzQ29udGVudENoYW5nZShiKSkge1xuICAgICAgcmV0dXJuIGEucmVmZXJlbmNlLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCAtIGIucmVmZXJlbmNlLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoaXNGcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzKGEpICYmIGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyhiKSkge1xuICAgICAgcmV0dXJuIGEucmVmZXJlbmNlLmtleS5sb2NhbGVDb21wYXJlKGIucmVmZXJlbmNlLmtleSkgfHwgYS5yZWZlcmVuY2Uuc3RhcnRPZmZzZXQgLSBiLnJlZmVyZW5jZS5zdGFydE9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoaXNGcm9udG1hdHRlckNoYW5nZShhKSAmJiBpc0Zyb250bWF0dGVyQ2hhbmdlKGIpKSB7XG4gICAgICByZXR1cm4gYS5yZWZlcmVuY2Uua2V5LmxvY2FsZUNvbXBhcmUoYi5yZWZlcmVuY2Uua2V5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNDb250ZW50Q2hhbmdlKGEpID8gLTEgOiAxO1xuICB9KTtcblxuICAvLyBCVUc6IGh0dHBzOi8vZm9ydW0ub2JzaWRpYW4ubWQvdC9idWctZHVwbGljYXRlZC1saW5rcy1pbi1tZXRhZGF0YWNhY2hlLWluc2lkZS1mb290bm90ZXMvODU1NTFcbiAgY2hhbmdlcyA9IGNoYW5nZXMuZmlsdGVyKChjaGFuZ2UsIGluZGV4KSA9PiB7XG4gICAgaWYgKGNoYW5nZS5vbGRDb250ZW50ID09PSBjaGFuZ2UubmV3Q29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gIWRlZXBFcXVhbChjaGFuZ2UsIGNoYW5nZXNbaW5kZXggLSAxXSk7XG4gIH0pO1xuXG4gIGZvciAobGV0IGkgPSAxOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKCFjaGFuZ2UpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBwcmV2aW91c0NoYW5nZSA9IGNoYW5nZXNbaSAtIDFdO1xuICAgIGlmICghcHJldmlvdXNDaGFuZ2UpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGlzQ29udGVudENoYW5nZShwcmV2aW91c0NoYW5nZSkgJiYgaXNDb250ZW50Q2hhbmdlKGNoYW5nZSkgJiYgcHJldmlvdXNDaGFuZ2UucmVmZXJlbmNlLnBvc2l0aW9uLmVuZC5vZmZzZXRcbiAgICAgICYmIHByZXZpb3VzQ2hhbmdlLnJlZmVyZW5jZS5wb3NpdGlvbi5lbmQub2Zmc2V0ID4gY2hhbmdlLnJlZmVyZW5jZS5wb3NpdGlvbi5zdGFydC5vZmZzZXRcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybignT3ZlcmxhcHBpbmcgY2hhbmdlcycsIHtcbiAgICAgICAgY2hhbmdlLFxuICAgICAgICBwcmV2aW91c0NoYW5nZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBsZXQgbmV3Q29udGVudCA9ICcnO1xuICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgbGV0IGZyb250bWF0dGVyQ2hhbmdlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRNYXAgPSBuZXcgTWFwPHN0cmluZywgRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0c1tdPigpO1xuXG4gIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcbiAgICBpZiAoaXNDb250ZW50Q2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgIG5ld0NvbnRlbnQgKz0gY29udGVudC5zbGljZShsYXN0SW5kZXgsIGNoYW5nZS5yZWZlcmVuY2UucG9zaXRpb24uc3RhcnQub2Zmc2V0KTtcbiAgICAgIG5ld0NvbnRlbnQgKz0gY2hhbmdlLm5ld0NvbnRlbnQ7XG4gICAgICBsYXN0SW5kZXggPSBjaGFuZ2UucmVmZXJlbmNlLnBvc2l0aW9uLmVuZC5vZmZzZXQ7XG4gICAgfSBlbHNlIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHMoY2hhbmdlKSkge1xuICAgICAgaWYgKGhhc0Zyb250bWF0dGVyRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGFwcGx5IGZyb250bWF0dGVyIGNoYW5nZSBpbiAke3BhdGh9LCBiZWNhdXNlIGZyb250bWF0dGVyIHBhcnNpbmcgZmFpbGVkYCwge1xuICAgICAgICAgIGNoYW5nZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBmcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0cyA9IGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRNYXAuZ2V0KGNoYW5nZS5yZWZlcmVuY2Uua2V5KTtcbiAgICAgICAgaWYgKCFmcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0cykge1xuICAgICAgICAgIGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRzID0gW107XG4gICAgICAgICAgZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldE1hcC5zZXQoY2hhbmdlLnJlZmVyZW5jZS5rZXksIGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRzKTtcbiAgICAgICAgfVxuICAgICAgICBmcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0cy5wdXNoKGNoYW5nZSk7XG4gICAgICAgIGZyb250bWF0dGVyQ2hhbmdlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgIGlmIChoYXNGcm9udG1hdHRlckVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYENhbm5vdCBhcHBseSBmcm9udG1hdHRlciBjaGFuZ2UgaW4gJHtwYXRofSwgYmVjYXVzZSBmcm9udG1hdHRlciBwYXJzaW5nIGZhaWxlZGAsIHtcbiAgICAgICAgICBjaGFuZ2VcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250bWF0dGVyLCBjaGFuZ2UucmVmZXJlbmNlLmtleSwgY2hhbmdlLm5ld0NvbnRlbnQpO1xuICAgICAgICBmcm9udG1hdHRlckNoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGF3YWl0IGFwcGx5RnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldHMoYWJvcnRTaWduYWwsIGZyb250bWF0dGVyLCBmcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0TWFwLCBwYXRoKTtcbiAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICBuZXdDb250ZW50ICs9IGNvbnRlbnQuc2xpY2UobGFzdEluZGV4KTtcbiAgaWYgKGZyb250bWF0dGVyQ2hhbmdlZCkge1xuICAgIG5ld0NvbnRlbnQgPSBzZXRGcm9udG1hdHRlcihuZXdDb250ZW50LCBmcm9udG1hdHRlcik7XG4gIH1cblxuICByZXR1cm4gbmV3Q29udGVudDtcbn1cblxuLyoqXG4gKiBBcHBsaWVzIGEgc2VyaWVzIG9mIGZpbGUgY2hhbmdlcyB0byB0aGUgc3BlY2lmaWVkIGZpbGUgb3IgcGF0aCB3aXRoaW4gdGhlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2Ugd2hlcmUgdGhlIGZpbGUgY2hhbmdlcyB3aWxsIGJlIGFwcGxpZWQuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gd2hpY2ggdGhlIGNoYW5nZXMgc2hvdWxkIGJlIGFwcGxpZWQuXG4gKiBAcGFyYW0gY2hhbmdlc1Byb3ZpZGVyIC0gQSBwcm92aWRlciB0aGF0IHJldHVybnMgYW4gYXJyYXkgb2YgZmlsZSBjaGFuZ2VzIHRvIGFwcGx5LlxuICogQHBhcmFtIHByb2Nlc3NPcHRpb25zIC0gT3B0aW9uYWwgb3B0aW9ucyBmb3IgcHJvY2Vzc2luZy9yZXRyeWluZyB0aGUgb3BlcmF0aW9uLlxuICogQHBhcmFtIHNob3VsZFJldHJ5T25JbnZhbGlkQ2hhbmdlcyAtIFdoZXRoZXIgdG8gcmV0cnkgdGhlIG9wZXJhdGlvbiBpZiB0aGUgY2hhbmdlcyBhcmUgaW52YWxpZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgY2hhbmdlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGFwcGxpZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcHBseUZpbGVDaGFuZ2VzKFxuICBhcHA6IEFwcCxcbiAgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSxcbiAgY2hhbmdlc1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPEZpbGVDaGFuZ2VbXT4sXG4gIHByb2Nlc3NPcHRpb25zOiBQcm9jZXNzT3B0aW9ucyA9IHt9LFxuICBzaG91bGRSZXRyeU9uSW52YWxpZENoYW5nZXMgPSB0cnVlXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcHJvY2VzcyhhcHAsIHBhdGhPckZpbGUsIGFzeW5jIChhYm9ydFNpZ25hbCwgY29udGVudCkgPT4ge1xuICAgIGlmIChpc0NhbnZhc0ZpbGUoYXBwLCBwYXRoT3JGaWxlKSkge1xuICAgICAgcmV0dXJuIGF3YWl0IGFwcGx5Q2FudmFzQ2hhbmdlcyhhYm9ydFNpZ25hbCwgY29udGVudCwgZ2V0UGF0aChhcHAsIHBhdGhPckZpbGUpLCBjaGFuZ2VzUHJvdmlkZXIsIHNob3VsZFJldHJ5T25JbnZhbGlkQ2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IGFwcGx5Q29udGVudENoYW5nZXMoYWJvcnRTaWduYWwsIGNvbnRlbnQsIGdldFBhdGgoYXBwLCBwYXRoT3JGaWxlKSwgY2hhbmdlc1Byb3ZpZGVyLCBzaG91bGRSZXRyeU9uSW52YWxpZENoYW5nZXMpO1xuICB9LCBwcm9jZXNzT3B0aW9ucyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBjYW52YXMgY2hhbmdlLlxuICpcbiAqIEBwYXJhbSBjaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGNhbnZhcyBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc0NoYW5nZShjaGFuZ2U6IEZpbGVDaGFuZ2UpOiBjaGFuZ2UgaXMgQ2FudmFzQ2hhbmdlIHtcbiAgcmV0dXJuIGlzQ2FudmFzUmVmZXJlbmNlKGNoYW5nZS5yZWZlcmVuY2UpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgY2FudmFzIGZpbGUgbm9kZSBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIGNoYW5nZSAtIFRoZSBmaWxlIGNoYW5nZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGZpbGUgY2hhbmdlIGlzIGEgY2FudmFzIGZpbGUgbm9kZSBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc0ZpbGVOb2RlQ2hhbmdlKGNoYW5nZTogRmlsZUNoYW5nZSk6IGNoYW5nZSBpcyBDYW52YXNGaWxlTm9kZUNoYW5nZSB7XG4gIHJldHVybiBpc0NhbnZhc0NoYW5nZShjaGFuZ2UpICYmIGNoYW5nZS5yZWZlcmVuY2UudHlwZSA9PT0gJ2ZpbGUnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgY2FudmFzIHRleHQgbm9kZSBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIGNoYW5nZSAtIFRoZSBmaWxlIGNoYW5nZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGZpbGUgY2hhbmdlIGlzIGEgY2FudmFzIHRleHQgbm9kZSBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc1RleHROb2RlQ2hhbmdlKGNoYW5nZTogRmlsZUNoYW5nZSk6IGNoYW5nZSBpcyBDYW52YXNUZXh0Tm9kZUNoYW5nZSB7XG4gIHJldHVybiBpc0NhbnZhc0NoYW5nZShjaGFuZ2UpICYmIGNoYW5nZS5yZWZlcmVuY2UudHlwZSA9PT0gJ3RleHQnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgY29udGVudCBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIGZpbGVDaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGNvbnRlbnQgY2hhbmdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZW50Q2hhbmdlKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIENvbnRlbnRDaGFuZ2Uge1xuICByZXR1cm4gaXNSZWZlcmVuY2VDYWNoZShmaWxlQ2hhbmdlLnJlZmVyZW5jZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBmcm9udG1hdHRlciBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIGZpbGVDaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGZyb250bWF0dGVyIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRnJvbnRtYXR0ZXJDaGFuZ2UoZmlsZUNoYW5nZTogRmlsZUNoYW5nZSk6IGZpbGVDaGFuZ2UgaXMgRnJvbnRtYXR0ZXJDaGFuZ2Uge1xuICByZXR1cm4gaXNGcm9udG1hdHRlckxpbmtDYWNoZShmaWxlQ2hhbmdlLnJlZmVyZW5jZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBmcm9udG1hdHRlciBjaGFuZ2Ugd2l0aCBvZmZzZXRzLlxuICpcbiAqIEBwYXJhbSBmaWxlQ2hhbmdlIC0gVGhlIGZpbGUgY2hhbmdlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjaGFuZ2UgaXMgYSBmcm9udG1hdHRlciBjaGFuZ2Ugd2l0aCBvZmZzZXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIEZyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHMge1xuICByZXR1cm4gaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKGZpbGVDaGFuZ2UucmVmZXJlbmNlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlDYW52YXNDaGFuZ2VzKFxuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgcGF0aDogc3RyaW5nLFxuICBjaGFuZ2VzUHJvdmlkZXI6IFZhbHVlUHJvdmlkZXI8RmlsZUNoYW5nZVtdPixcbiAgc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzID0gdHJ1ZVxuKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIGNvbnN0IGNoYW5nZXMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY2hhbmdlc1Byb3ZpZGVyLCBhYm9ydFNpZ25hbCk7XG4gIGNvbnN0IGNhbnZhc0RhdGEgPSBwYXJzZUpzb25TYWZlKGNvbnRlbnQpIGFzIENhbnZhc0RhdGE7XG5cbiAgY29uc3QgY2FudmFzVGV4dENoYW5nZXMgPSBuZXcgTWFwPG51bWJlciwgQ2FudmFzVGV4dE5vZGVDaGFuZ2VbXT4oKTtcblxuICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBjaGFuZ2VzKSB7XG4gICAgaWYgKCFpc0NhbnZhc0NoYW5nZShjaGFuZ2UpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ09ubHkgY2FudmFzIGNoYW5nZXMgYXJlIHN1cHBvcnRlZCBmb3IgY2FudmFzIGZpbGVzJywge1xuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIHBhdGhcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZSA9IGNhbnZhc0RhdGEubm9kZXNbY2hhbmdlLnJlZmVyZW5jZS5ub2RlSW5kZXhdO1xuICAgIGlmICghbm9kZSkge1xuICAgICAgY29uc29sZS53YXJuKCdOb2RlIG5vdCBmb3VuZCcsIHtcbiAgICAgICAgbm9kZUluZGV4OiBjaGFuZ2UucmVmZXJlbmNlLm5vZGVJbmRleCxcbiAgICAgICAgcGF0aFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYW52YXNGaWxlTm9kZUNoYW5nZShjaGFuZ2UpKSB7XG4gICAgICBpZiAobm9kZS5maWxlICE9PSBjaGFuZ2Uub2xkQ29udGVudCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XG4gICAgICAgICAgYWN0dWFsQ29udGVudDogbm9kZS5maWxlIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IGNoYW5nZS5vbGRDb250ZW50LFxuICAgICAgICAgIG5vZGVJbmRleDogY2hhbmdlLnJlZmVyZW5jZS5ub2RlSW5kZXgsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICB0eXBlOiAnZmlsZSdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBub2RlLmZpbGUgPSBjaGFuZ2UubmV3Q29udGVudDtcbiAgICB9IGVsc2UgaWYgKGlzQ2FudmFzVGV4dE5vZGVDaGFuZ2UoY2hhbmdlKSkge1xuICAgICAgbGV0IGNhbnZhc1RleHRDaGFuZ2VzRm9yTm9kZSA9IGNhbnZhc1RleHRDaGFuZ2VzLmdldChjaGFuZ2UucmVmZXJlbmNlLm5vZGVJbmRleCk7XG4gICAgICBpZiAoIWNhbnZhc1RleHRDaGFuZ2VzRm9yTm9kZSkge1xuICAgICAgICBjYW52YXNUZXh0Q2hhbmdlc0Zvck5vZGUgPSBbXTtcbiAgICAgICAgY2FudmFzVGV4dENoYW5nZXMuc2V0KGNoYW5nZS5yZWZlcmVuY2Uubm9kZUluZGV4LCBjYW52YXNUZXh0Q2hhbmdlc0Zvck5vZGUpO1xuICAgICAgfVxuXG4gICAgICBjYW52YXNUZXh0Q2hhbmdlc0Zvck5vZGUucHVzaChjaGFuZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgW25vZGVJbmRleCwgY2FudmFzVGV4dENoYW5nZXNGb3JOb2RlXSBvZiBjYW52YXNUZXh0Q2hhbmdlcy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBub2RlID0gY2FudmFzRGF0YS5ub2Rlc1tub2RlSW5kZXhdO1xuICAgIGlmICghbm9kZSkge1xuICAgICAgY29uc29sZS53YXJuKCdOb2RlIG5vdCBmb3VuZCcsIHtcbiAgICAgICAgbm9kZUluZGV4LFxuICAgICAgICBwYXRoXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBub2RlLnRleHQgIT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vZGUgdGV4dCBpcyBub3QgYSBzdHJpbmcnLCB7XG4gICAgICAgIG5vZGVJbmRleCxcbiAgICAgICAgcGF0aFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VzID0gY2FudmFzVGV4dENoYW5nZXNGb3JOb2RlLm1hcCgoY2hhbmdlKSA9PiByZWZlcmVuY2VUb0ZpbGVDaGFuZ2UoY2hhbmdlLnJlZmVyZW5jZS5vcmlnaW5hbFJlZmVyZW5jZSwgY2hhbmdlLm5ld0NvbnRlbnQpKTtcbiAgICBub2RlLnRleHQgPSBhd2FpdCBhcHBseUNvbnRlbnRDaGFuZ2VzKFxuICAgICAgYWJvcnRTaWduYWwsXG4gICAgICBub2RlLnRleHQsXG4gICAgICBgJHtwYXRofS5ub2RlJHtTdHJpbmcobm9kZUluZGV4KX0uVklSVFVBTF9GSUxFLm1kYCxcbiAgICAgIGNvbnRlbnRDaGFuZ2VzLFxuICAgICAgc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShjYW52YXNEYXRhLCBudWxsLCAnXFx0Jyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFwcGx5RnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldHMoXG4gIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCxcbiAgZnJvbnRtYXR0ZXI6IENvbWJpbmVkRnJvbnRtYXR0ZXI8dW5rbm93bj4sXG4gIGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRNYXA6IE1hcDxzdHJpbmcsIEZyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHNbXT4sXG4gIHBhdGg6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgW2tleSwgZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldHNdIG9mIGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRNYXAuZW50cmllcygpKSB7XG4gICAgY29uc3QgcHJvcGVydHlWYWx1ZSA9IGdldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRtYXR0ZXIsIGtleSk7XG4gICAgaWYgKHR5cGVvZiBwcm9wZXJ0eVZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VzOiBDb250ZW50Q2hhbmdlW10gPSBmcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0cy5tYXAoKGNoYW5nZSkgPT4gKHtcbiAgICAgIG5ld0NvbnRlbnQ6IGNoYW5nZS5uZXdDb250ZW50LFxuICAgICAgb2xkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXG4gICAgICByZWZlcmVuY2U6IHtcbiAgICAgICAgbGluazogJycsXG4gICAgICAgIG9yaWdpbmFsOiAnJyxcbiAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICBlbmQ6IHtcbiAgICAgICAgICAgIGNvbDogY2hhbmdlLnJlZmVyZW5jZS5lbmRPZmZzZXQsXG4gICAgICAgICAgICBsaW5lOiAwLFxuICAgICAgICAgICAgb2Zmc2V0OiBjaGFuZ2UucmVmZXJlbmNlLmVuZE9mZnNldFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgIGNvbDogY2hhbmdlLnJlZmVyZW5jZS5zdGFydE9mZnNldCxcbiAgICAgICAgICAgIGxpbmU6IDAsXG4gICAgICAgICAgICBvZmZzZXQ6IGNoYW5nZS5yZWZlcmVuY2Uuc3RhcnRPZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGFzIENvbnRlbnRDaGFuZ2UpKTtcblxuICAgIGNvbnN0IG5ld1Byb3BlcnR5VmFsdWUgPSBhd2FpdCBhcHBseUNvbnRlbnRDaGFuZ2VzKGFib3J0U2lnbmFsLCBwcm9wZXJ0eVZhbHVlLCBgJHtwYXRofS5mcm9udG1hdHRlci4ke2tleX0uVklSVFVBTF9GSUxFLm1kYCwgY29udGVudENoYW5nZXMpO1xuICAgIGlmIChuZXdQcm9wZXJ0eVZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZShmcm9udG1hdHRlciwga2V5LCBuZXdQcm9wZXJ0eVZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUpzb25TYWZlKGNvbnRlbnQ6IHN0cmluZyk6IEdlbmVyaWNPYmplY3Qge1xuICBsZXQgcGFyc2VkOiB1bmtub3duO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IEpTT04ucGFyc2UoY29udGVudCk7XG4gIH0gY2F0Y2gge1xuICAgIHBhcnNlZCA9IG51bGw7XG4gIH1cblxuICBpZiAocGFyc2VkID09PSBudWxsIHx8IHR5cGVvZiBwYXJzZWQgIT09ICdvYmplY3QnKSB7XG4gICAgcGFyc2VkID0ge307XG4gIH1cblxuICByZXR1cm4gcGFyc2VkIGFzIEdlbmVyaWNPYmplY3Q7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQ2hhbmdlcyhjaGFuZ2VzOiBGaWxlQ2hhbmdlW10sIGNvbnRlbnQ6IHN0cmluZywgZnJvbnRtYXR0ZXI6IENvbWJpbmVkRnJvbnRtYXR0ZXI8dW5rbm93bj4sIHBhdGg6IHN0cmluZywgc2hvdWxkU2hvd1dhcm5pbmc6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgY29uc3QgdmFsaWRhdGVDaGFuZ2VzRGVidWdnZXIgPSBnZXREZWJ1Z2dlcignRmlsZUNoYW5nZTp2YWxpZGF0ZUNoYW5nZXMnKTtcbiAgY29uc3QgbG9nZ2VyID0gc2hvdWxkU2hvd1dhcm5pbmcgPyBjb25zb2xlLndhcm4uYmluZChjb25zb2xlKSA6IHZhbGlkYXRlQ2hhbmdlc0RlYnVnZ2VyO1xuICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBjaGFuZ2VzKSB7XG4gICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XG4gICAgICBjb25zdCBzdGFydE9mZnNldCA9IGNoYW5nZS5yZWZlcmVuY2UucG9zaXRpb24uc3RhcnQub2Zmc2V0O1xuICAgICAgY29uc3QgZW5kT2Zmc2V0ID0gY2hhbmdlLnJlZmVyZW5jZS5wb3NpdGlvbi5lbmQub2Zmc2V0O1xuICAgICAgY29uc3QgYWN0dWFsQ29udGVudCA9IGNvbnRlbnQuc2xpY2Uoc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7XG4gICAgICBpZiAoYWN0dWFsQ29udGVudCAhPT0gY2hhbmdlLm9sZENvbnRlbnQpIHtcbiAgICAgICAgbG9nZ2VyKCdDb250ZW50IG1pc21hdGNoJywge1xuICAgICAgICAgIGFjdHVhbENvbnRlbnQsXG4gICAgICAgICAgZW5kT2Zmc2V0LFxuICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBzdGFydE9mZnNldFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHMoY2hhbmdlKSkge1xuICAgICAgY29uc3QgcHJvcGVydHlWYWx1ZSA9IGdldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRtYXR0ZXIsIGNoYW5nZS5yZWZlcmVuY2Uua2V5KTtcbiAgICAgIGlmICh0eXBlb2YgcHJvcGVydHlWYWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgbG9nZ2VyKCdQcm9wZXJ0eSB2YWx1ZSBpcyBub3QgYSBzdHJpbmcnLCB7XG4gICAgICAgICAgZnJvbnRtYXR0ZXJLZXk6IGNoYW5nZS5yZWZlcmVuY2Uua2V5LFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgcHJvcGVydHlWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhY3R1YWxDb250ZW50ID0gcHJvcGVydHlWYWx1ZS5zbGljZShjaGFuZ2UucmVmZXJlbmNlLnN0YXJ0T2Zmc2V0LCBjaGFuZ2UucmVmZXJlbmNlLmVuZE9mZnNldCk7XG4gICAgICBpZiAoYWN0dWFsQ29udGVudCAhPT0gY2hhbmdlLm9sZENvbnRlbnQpIHtcbiAgICAgICAgbG9nZ2VyKCdDb250ZW50IG1pc21hdGNoJywge1xuICAgICAgICAgIGFjdHVhbENvbnRlbnQsXG4gICAgICAgICAgZXhwZWN0ZWRDb250ZW50OiBjaGFuZ2Uub2xkQ29udGVudCxcbiAgICAgICAgICBmcm9udG1hdHRlcktleTogY2hhbmdlLnJlZmVyZW5jZS5rZXksXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBzdGFydE9mZnNldDogY2hhbmdlLnJlZmVyZW5jZS5zdGFydE9mZnNldFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgIGNvbnN0IGFjdHVhbENvbnRlbnQgPSBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250bWF0dGVyLCBjaGFuZ2UucmVmZXJlbmNlLmtleSk7XG4gICAgICBpZiAoYWN0dWFsQ29udGVudCAhPT0gY2hhbmdlLm9sZENvbnRlbnQpIHtcbiAgICAgICAgbG9nZ2VyKCdDb250ZW50IG1pc21hdGNoJywge1xuICAgICAgICAgIGFjdHVhbENvbnRlbnQsXG4gICAgICAgICAgZXhwZWN0ZWRDb250ZW50OiBjaGFuZ2Uub2xkQ29udGVudCxcbiAgICAgICAgICBmcm9udG1hdHRlcktleTogY2hhbmdlLnJlZmVyZW5jZS5rZXksXG4gICAgICAgICAgcGF0aFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0EsNkJBR087QUFjUCxtQkFBNEI7QUFDNUIseUJBSU87QUFDUCwyQkFBNkI7QUFDN0Isd0JBR087QUFDUCx5QkFHTztBQUNQLDZDQUFrRDtBQUNsRCx1QkFHTztBQUNQLG1CQUF3QjtBQXNDeEIsZUFBc0Isb0JBQ3BCLGFBQ0EsU0FDQSxNQUNBLGlCQUNBLDhCQUE4QixNQUNOO0FBQ3hCLGNBQVksZUFBZTtBQUMzQixNQUFJLFVBQVUsVUFBTSxtQ0FBYSxpQkFBaUIsV0FBVztBQUM3RCxNQUFJLGNBQTRDLENBQUM7QUFDakQsTUFBSSxzQkFBc0I7QUFDMUIsTUFBSTtBQUNGLHNCQUFjLHFDQUFpQixPQUFPO0FBQUEsRUFDeEMsU0FBUyxPQUFP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
345
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVDaGFuZ2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSB0eXBlcyBhbmQgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBmaWxlIGNoYW5nZXMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICBSZWZlcmVuY2UsXG4gIFJlZmVyZW5jZUNhY2hlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQ2FudmFzRGF0YSB9IGZyb20gJ29ic2lkaWFuL0NhbnZhcy5kLnRzJztcblxuaW1wb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgaXNSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJy4uL09iamVjdFV0aWxzLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVQcm92aWRlciB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udG1hdHRlciB9IGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIH0gZnJvbSAnLi9Gcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgQ2FudmFzRmlsZU5vZGVSZWZlcmVuY2UsXG4gIENhbnZhc1JlZmVyZW5jZSxcbiAgQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2Vcbn0gZnJvbSAnLi9SZWZlcmVuY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQcm9jZXNzT3B0aW9ucyB9IGZyb20gJy4vVmF1bHQudHMnO1xuXG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJy4uL0RlYnVnLnRzJztcbmltcG9ydCB7XG4gIGRlZXBFcXVhbCxcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZVxufSBmcm9tICcuLi9PYmplY3RVdGlscy50cyc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICcuLi9WYWx1ZVByb3ZpZGVyLnRzJztcbmltcG9ydCB7XG4gIGdldFBhdGgsXG4gIGlzQ2FudmFzRmlsZVxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHtcbiAgcGFyc2VGcm9udG1hdHRlcixcbiAgc2V0RnJvbnRtYXR0ZXJcbn0gZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5pbXBvcnQgeyBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMgfSBmcm9tICcuL0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMudHMnO1xuaW1wb3J0IHtcbiAgaXNDYW52YXNSZWZlcmVuY2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZVxufSBmcm9tICcuL1JlZmVyZW5jZS50cyc7XG5pbXBvcnQgeyBwcm9jZXNzIH0gZnJvbSAnLi9WYXVsdC50cyc7XG5cbi8qKlxuICogQSBmaWxlIGNoYW5nZSBpbiB0aGUgdmF1bHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUNoYW5nZSB7XG4gIC8qKlxuICAgKiBBIG5ldyBjb250ZW50IHRvIHJlcGxhY2UgdGhlIG9sZCBjb250ZW50LlxuICAgKi9cbiAgbmV3Q29udGVudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvbGQgY29udGVudCB0aGF0IHdpbGwgYmUgcmVwbGFjZWQuXG4gICAqL1xuICBvbGRDb250ZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRoYXQgY2F1c2VkIHRoZSBjaGFuZ2UuXG4gICAqL1xuICByZWZlcmVuY2U6IFJlZmVyZW5jZTtcbn1cbnR5cGUgQ2FudmFzQ2hhbmdlID0geyByZWZlcmVuY2U6IENhbnZhc1JlZmVyZW5jZSB9ICYgRmlsZUNoYW5nZTtcbnR5cGUgQ2FudmFzRmlsZU5vZGVDaGFuZ2UgPSB7IHJlZmVyZW5jZTogQ2FudmFzRmlsZU5vZGVSZWZlcmVuY2UgfSAmIEZpbGVDaGFuZ2U7XG50eXBlIENhbnZhc1RleHROb2RlQ2hhbmdlID0geyByZWZlcmVuY2U6IENhbnZhc1RleHROb2RlUmVmZXJlbmNlIH0gJiBGaWxlQ2hhbmdlO1xudHlwZSBDb250ZW50Q2hhbmdlID0geyByZWZlcmVuY2U6IFJlZmVyZW5jZUNhY2hlIH0gJiBGaWxlQ2hhbmdlO1xudHlwZSBGcm9udG1hdHRlckNoYW5nZSA9IHsgcmVmZXJlbmNlOiBGcm9udG1hdHRlckxpbmtDYWNoZSB9ICYgRmlsZUNoYW5nZTtcbnR5cGUgRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyA9IHsgcmVmZXJlbmNlOiBGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIH0gJiBGaWxlQ2hhbmdlO1xuXG4vKipcbiAqIEFwcGxpZXMgYSBzZXJpZXMgb2YgY29udGVudCBjaGFuZ2VzIHRvIHRoZSBzcGVjaWZpZWQgY29udGVudC5cbiAqXG4gKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGNvbnRyb2wgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAcGFyYW0gY29udGVudCAtIFRoZSBjb250ZW50IHRvIHdoaWNoIHRoZSBjaGFuZ2VzIHNob3VsZCBiZSBhcHBsaWVkLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byB3aGljaCB0aGUgY2hhbmdlcyBzaG91bGQgYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBjaGFuZ2VzUHJvdmlkZXIgLSBBIHByb3ZpZGVyIHRoYXQgcmV0dXJucyBhbiBhcnJheSBvZiBjb250ZW50IGNoYW5nZXMgdG8gYXBwbHkuXG4gKiBAcGFyYW0gc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzIC0gV2hldGhlciB0byByZXRyeSB0aGUgb3BlcmF0aW9uIGlmIHRoZSBjaGFuZ2VzIGFyZSBpbnZhbGlkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgdXBkYXRlZCBjb250ZW50IG9yIHRvIGBudWxsYCBpZiB1cGRhdGUgZGlkbid0IHN1Y2NlZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcHBseUNvbnRlbnRDaGFuZ2VzKFxuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgcGF0aDogc3RyaW5nLFxuICBjaGFuZ2VzUHJvdmlkZXI6IFZhbHVlUHJvdmlkZXI8RmlsZUNoYW5nZVtdPixcbiAgc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzID0gdHJ1ZVxuKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG4gIGxldCBjaGFuZ2VzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNoYW5nZXNQcm92aWRlciwgYWJvcnRTaWduYWwpO1xuICBsZXQgZnJvbnRtYXR0ZXI6IENvbWJpbmVkRnJvbnRtYXR0ZXI8dW5rbm93bj4gPSB7fTtcbiAgbGV0IGhhc0Zyb250bWF0dGVyRXJyb3IgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICBmcm9udG1hdHRlciA9IHBhcnNlRnJvbnRtYXR0ZXIoY29udGVudCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoYEZyb250bWF0dGVyIHBhcnNpbmcgZmFpbGVkIGluICR7cGF0aH1gLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgaGFzRnJvbnRtYXR0ZXJFcnJvciA9IHRydWU7XG4gIH1cblxuICBpZiAoIXZhbGlkYXRlQ2hhbmdlcyhjaGFuZ2VzLCBjb250ZW50LCBmcm9udG1hdHRlciwgcGF0aCwgc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzKSkge1xuICAgIHJldHVybiBzaG91bGRSZXRyeU9uSW52YWxpZENoYW5nZXMgPyBudWxsIDogY29udGVudDtcbiAgfVxuXG4gIGNoYW5nZXMuc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UoYSkgJiYgaXNDb250ZW50Q2hhbmdlKGIpKSB7XG4gICAgICByZXR1cm4gYS5yZWZlcmVuY2UucG9zaXRpb24uc3RhcnQub2Zmc2V0IC0gYi5yZWZlcmVuY2UucG9zaXRpb24uc3RhcnQub2Zmc2V0O1xuICAgIH1cblxuICAgIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHMoYSkgJiYgaXNGcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzKGIpKSB7XG4gICAgICByZXR1cm4gYS5yZWZlcmVuY2Uua2V5LmxvY2FsZUNvbXBhcmUoYi5yZWZlcmVuY2Uua2V5KSB8fCBhLnJlZmVyZW5jZS5zdGFydE9mZnNldCAtIGIucmVmZXJlbmNlLnN0YXJ0T2Zmc2V0O1xuICAgIH1cblxuICAgIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGEpICYmIGlzRnJvbnRtYXR0ZXJDaGFuZ2UoYikpIHtcbiAgICAgIHJldHVybiBhLnJlZmVyZW5jZS5rZXkubG9jYWxlQ29tcGFyZShiLnJlZmVyZW5jZS5rZXkpO1xuICAgIH1cblxuICAgIHJldHVybiBpc0NvbnRlbnRDaGFuZ2UoYSkgPyAtMSA6IDE7XG4gIH0pO1xuXG4gIC8vIEJVRzogaHR0cHM6Ly9mb3J1bS5vYnNpZGlhbi5tZC90L2J1Zy1kdXBsaWNhdGVkLWxpbmtzLWluLW1ldGFkYXRhY2FjaGUtaW5zaWRlLWZvb3Rub3Rlcy84NTU1MVxuICBjaGFuZ2VzID0gY2hhbmdlcy5maWx0ZXIoKGNoYW5nZSwgaW5kZXgpID0+IHtcbiAgICBpZiAoY2hhbmdlLm9sZENvbnRlbnQgPT09IGNoYW5nZS5uZXdDb250ZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiAhZGVlcEVxdWFsKGNoYW5nZSwgY2hhbmdlc1tpbmRleCAtIDFdKTtcbiAgfSk7XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHByZXZpb3VzQ2hhbmdlID0gY2hhbmdlc1tpIC0gMV07XG4gICAgaWYgKCFwcmV2aW91c0NoYW5nZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaXNDb250ZW50Q2hhbmdlKHByZXZpb3VzQ2hhbmdlKSAmJiBpc0NvbnRlbnRDaGFuZ2UoY2hhbmdlKSAmJiBwcmV2aW91c0NoYW5nZS5yZWZlcmVuY2UucG9zaXRpb24uZW5kLm9mZnNldFxuICAgICAgJiYgcHJldmlvdXNDaGFuZ2UucmVmZXJlbmNlLnBvc2l0aW9uLmVuZC5vZmZzZXQgPiBjaGFuZ2UucmVmZXJlbmNlLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldFxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKCdPdmVybGFwcGluZyBjaGFuZ2VzJywge1xuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIHByZXZpb3VzQ2hhbmdlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGxldCBuZXdDb250ZW50ID0gJyc7XG4gIGxldCBsYXN0SW5kZXggPSAwO1xuICBsZXQgZnJvbnRtYXR0ZXJDaGFuZ2VkID0gZmFsc2U7XG5cbiAgY29uc3QgZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBGcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzW10+KCk7XG5cbiAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgY2hhbmdlcykge1xuICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UoY2hhbmdlKSkge1xuICAgICAgbmV3Q29udGVudCArPSBjb250ZW50LnNsaWNlKGxhc3RJbmRleCwgY2hhbmdlLnJlZmVyZW5jZS5wb3NpdGlvbi5zdGFydC5vZmZzZXQpO1xuICAgICAgbmV3Q29udGVudCArPSBjaGFuZ2UubmV3Q29udGVudDtcbiAgICAgIGxhc3RJbmRleCA9IGNoYW5nZS5yZWZlcmVuY2UucG9zaXRpb24uZW5kLm9mZnNldDtcbiAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyhjaGFuZ2UpKSB7XG4gICAgICBpZiAoaGFzRnJvbnRtYXR0ZXJFcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgYXBwbHkgZnJvbnRtYXR0ZXIgY2hhbmdlIGluICR7cGF0aH0sIGJlY2F1c2UgZnJvbnRtYXR0ZXIgcGFyc2luZyBmYWlsZWRgLCB7XG4gICAgICAgICAgY2hhbmdlXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRzID0gZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldE1hcC5nZXQoY2hhbmdlLnJlZmVyZW5jZS5rZXkpO1xuICAgICAgICBpZiAoIWZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRzKSB7XG4gICAgICAgICAgZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldHMgPSBbXTtcbiAgICAgICAgICBmcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0TWFwLnNldChjaGFuZ2UucmVmZXJlbmNlLmtleSwgZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldHMpO1xuICAgICAgICB9XG4gICAgICAgIGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgZnJvbnRtYXR0ZXJDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2UoY2hhbmdlKSkge1xuICAgICAgaWYgKGhhc0Zyb250bWF0dGVyRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGFwcGx5IGZyb250bWF0dGVyIGNoYW5nZSBpbiAke3BhdGh9LCBiZWNhdXNlIGZyb250bWF0dGVyIHBhcnNpbmcgZmFpbGVkYCwge1xuICAgICAgICAgIGNoYW5nZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRtYXR0ZXIsIGNoYW5nZS5yZWZlcmVuY2Uua2V5LCBjaGFuZ2UubmV3Q29udGVudCk7XG4gICAgICAgIGZyb250bWF0dGVyQ2hhbmdlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgYXBwbHlGcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0cyhhYm9ydFNpZ25hbCwgZnJvbnRtYXR0ZXIsIGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRNYXAsIHBhdGgpO1xuICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIG5ld0NvbnRlbnQgKz0gY29udGVudC5zbGljZShsYXN0SW5kZXgpO1xuICBpZiAoZnJvbnRtYXR0ZXJDaGFuZ2VkKSB7XG4gICAgbmV3Q29udGVudCA9IHNldEZyb250bWF0dGVyKG5ld0NvbnRlbnQsIGZyb250bWF0dGVyKTtcbiAgfVxuXG4gIHJldHVybiBuZXdDb250ZW50O1xufVxuXG4vKipcbiAqIEFwcGxpZXMgYSBzZXJpZXMgb2YgZmlsZSBjaGFuZ2VzIHRvIHRoZSBzcGVjaWZpZWQgZmlsZSBvciBwYXRoIHdpdGhpbiB0aGUgYXBwbGljYXRpb24uXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZSB3aGVyZSB0aGUgZmlsZSBjaGFuZ2VzIHdpbGwgYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byB3aGljaCB0aGUgY2hhbmdlcyBzaG91bGQgYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBjaGFuZ2VzUHJvdmlkZXIgLSBBIHByb3ZpZGVyIHRoYXQgcmV0dXJucyBhbiBhcnJheSBvZiBmaWxlIGNoYW5nZXMgdG8gYXBwbHkuXG4gKiBAcGFyYW0gcHJvY2Vzc09wdGlvbnMgLSBPcHRpb25hbCBvcHRpb25zIGZvciBwcm9jZXNzaW5nL3JldHJ5aW5nIHRoZSBvcGVyYXRpb24uXG4gKiBAcGFyYW0gc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzIC0gV2hldGhlciB0byByZXRyeSB0aGUgb3BlcmF0aW9uIGlmIHRoZSBjaGFuZ2VzIGFyZSBpbnZhbGlkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBjaGFuZ2VzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgYXBwbGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5RmlsZUNoYW5nZXMoXG4gIGFwcDogQXBwLFxuICBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLFxuICBjaGFuZ2VzUHJvdmlkZXI6IFZhbHVlUHJvdmlkZXI8RmlsZUNoYW5nZVtdPixcbiAgcHJvY2Vzc09wdGlvbnM6IFByb2Nlc3NPcHRpb25zID0ge30sXG4gIHNob3VsZFJldHJ5T25JbnZhbGlkQ2hhbmdlcyA9IHRydWVcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBwcm9jZXNzKGFwcCwgcGF0aE9yRmlsZSwgYXN5bmMgKGFib3J0U2lnbmFsLCBjb250ZW50KSA9PiB7XG4gICAgaWYgKGlzQ2FudmFzRmlsZShhcHAsIHBhdGhPckZpbGUpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgYXBwbHlDYW52YXNDaGFuZ2VzKGFib3J0U2lnbmFsLCBjb250ZW50LCBnZXRQYXRoKGFwcCwgcGF0aE9yRmlsZSksIGNoYW5nZXNQcm92aWRlciwgc2hvdWxkUmV0cnlPbkludmFsaWRDaGFuZ2VzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgYXBwbHlDb250ZW50Q2hhbmdlcyhhYm9ydFNpZ25hbCwgY29udGVudCwgZ2V0UGF0aChhcHAsIHBhdGhPckZpbGUpLCBjaGFuZ2VzUHJvdmlkZXIsIHNob3VsZFJldHJ5T25JbnZhbGlkQ2hhbmdlcyk7XG4gIH0sIHByb2Nlc3NPcHRpb25zKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBmaWxlIGNoYW5nZSBpcyBhIGNhbnZhcyBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIGNoYW5nZSAtIFRoZSBmaWxlIGNoYW5nZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGZpbGUgY2hhbmdlIGlzIGEgY2FudmFzIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzQ2hhbmdlKGNoYW5nZTogRmlsZUNoYW5nZSk6IGNoYW5nZSBpcyBDYW52YXNDaGFuZ2Uge1xuICByZXR1cm4gaXNDYW52YXNSZWZlcmVuY2UoY2hhbmdlLnJlZmVyZW5jZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBjYW52YXMgZmlsZSBub2RlIGNoYW5nZS5cbiAqXG4gKiBAcGFyYW0gY2hhbmdlIC0gVGhlIGZpbGUgY2hhbmdlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZmlsZSBjaGFuZ2UgaXMgYSBjYW52YXMgZmlsZSBub2RlIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzRmlsZU5vZGVDaGFuZ2UoY2hhbmdlOiBGaWxlQ2hhbmdlKTogY2hhbmdlIGlzIENhbnZhc0ZpbGVOb2RlQ2hhbmdlIHtcbiAgcmV0dXJuIGlzQ2FudmFzQ2hhbmdlKGNoYW5nZSkgJiYgY2hhbmdlLnJlZmVyZW5jZS50eXBlID09PSAnZmlsZSc7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBjYW52YXMgdGV4dCBub2RlIGNoYW5nZS5cbiAqXG4gKiBAcGFyYW0gY2hhbmdlIC0gVGhlIGZpbGUgY2hhbmdlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZmlsZSBjaGFuZ2UgaXMgYSBjYW52YXMgdGV4dCBub2RlIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzVGV4dE5vZGVDaGFuZ2UoY2hhbmdlOiBGaWxlQ2hhbmdlKTogY2hhbmdlIGlzIENhbnZhc1RleHROb2RlQ2hhbmdlIHtcbiAgcmV0dXJuIGlzQ2FudmFzQ2hhbmdlKGNoYW5nZSkgJiYgY2hhbmdlLnJlZmVyZW5jZS50eXBlID09PSAndGV4dCc7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBjb250ZW50IGNoYW5nZS5cbiAqXG4gKiBAcGFyYW0gZmlsZUNoYW5nZSAtIFRoZSBmaWxlIGNoYW5nZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY2hhbmdlIGlzIGEgY29udGVudCBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRlbnRDaGFuZ2UoZmlsZUNoYW5nZTogRmlsZUNoYW5nZSk6IGZpbGVDaGFuZ2UgaXMgQ29udGVudENoYW5nZSB7XG4gIHJldHVybiBpc1JlZmVyZW5jZUNhY2hlKGZpbGVDaGFuZ2UucmVmZXJlbmNlKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBmaWxlIGNoYW5nZSBpcyBhIGZyb250bWF0dGVyIGNoYW5nZS5cbiAqXG4gKiBAcGFyYW0gZmlsZUNoYW5nZSAtIFRoZSBmaWxlIGNoYW5nZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY2hhbmdlIGlzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGcm9udG1hdHRlckNoYW5nZShmaWxlQ2hhbmdlOiBGaWxlQ2hhbmdlKTogZmlsZUNoYW5nZSBpcyBGcm9udG1hdHRlckNoYW5nZSB7XG4gIHJldHVybiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKGZpbGVDaGFuZ2UucmVmZXJlbmNlKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBmaWxlIGNoYW5nZSBpcyBhIGZyb250bWF0dGVyIGNoYW5nZSB3aXRoIG9mZnNldHMuXG4gKlxuICogQHBhcmFtIGZpbGVDaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGZyb250bWF0dGVyIGNoYW5nZSB3aXRoIG9mZnNldHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHMoZmlsZUNoYW5nZTogRmlsZUNoYW5nZSk6IGZpbGVDaGFuZ2UgaXMgRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyB7XG4gIHJldHVybiBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoZmlsZUNoYW5nZS5yZWZlcmVuY2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBhcHBseUNhbnZhc0NoYW5nZXMoXG4gIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCxcbiAgY29udGVudDogc3RyaW5nLFxuICBwYXRoOiBzdHJpbmcsXG4gIGNoYW5nZXNQcm92aWRlcjogVmFsdWVQcm92aWRlcjxGaWxlQ2hhbmdlW10+LFxuICBzaG91bGRSZXRyeU9uSW52YWxpZENoYW5nZXMgPSB0cnVlXG4pOiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHtcbiAgY29uc3QgY2hhbmdlcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjaGFuZ2VzUHJvdmlkZXIsIGFib3J0U2lnbmFsKTtcbiAgY29uc3QgY2FudmFzRGF0YSA9IHBhcnNlSnNvblNhZmUoY29udGVudCkgYXMgQ2FudmFzRGF0YTtcblxuICBjb25zdCBjYW52YXNUZXh0Q2hhbmdlcyA9IG5ldyBNYXA8bnVtYmVyLCBDYW52YXNUZXh0Tm9kZUNoYW5nZVtdPigpO1xuXG4gIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcbiAgICBpZiAoIWlzQ2FudmFzQ2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybignT25seSBjYW52YXMgY2hhbmdlcyBhcmUgc3VwcG9ydGVkIGZvciBjYW52YXMgZmlsZXMnLCB7XG4gICAgICAgIGNoYW5nZSxcbiAgICAgICAgcGF0aFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gY2FudmFzRGF0YS5ub2Rlc1tjaGFuZ2UucmVmZXJlbmNlLm5vZGVJbmRleF07XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vZGUgbm90IGZvdW5kJywge1xuICAgICAgICBub2RlSW5kZXg6IGNoYW5nZS5yZWZlcmVuY2Uubm9kZUluZGV4LFxuICAgICAgICBwYXRoXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChpc0NhbnZhc0ZpbGVOb2RlQ2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgIGlmIChub2RlLmZpbGUgIT09IGNoYW5nZS5vbGRDb250ZW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQ29udGVudCBtaXNtYXRjaCcsIHtcbiAgICAgICAgICBhY3R1YWxDb250ZW50OiBub2RlLmZpbGUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXG4gICAgICAgICAgbm9kZUluZGV4OiBjaGFuZ2UucmVmZXJlbmNlLm5vZGVJbmRleCxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHR5cGU6ICdmaWxlJ1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIG5vZGUuZmlsZSA9IGNoYW5nZS5uZXdDb250ZW50O1xuICAgIH0gZWxzZSBpZiAoaXNDYW52YXNUZXh0Tm9kZUNoYW5nZShjaGFuZ2UpKSB7XG4gICAgICBsZXQgY2FudmFzVGV4dENoYW5nZXNGb3JOb2RlID0gY2FudmFzVGV4dENoYW5nZXMuZ2V0KGNoYW5nZS5yZWZlcmVuY2Uubm9kZUluZGV4KTtcbiAgICAgIGlmICghY2FudmFzVGV4dENoYW5nZXNGb3JOb2RlKSB7XG4gICAgICAgIGNhbnZhc1RleHRDaGFuZ2VzRm9yTm9kZSA9IFtdO1xuICAgICAgICBjYW52YXNUZXh0Q2hhbmdlcy5zZXQoY2hhbmdlLnJlZmVyZW5jZS5ub2RlSW5kZXgsIGNhbnZhc1RleHRDaGFuZ2VzRm9yTm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGNhbnZhc1RleHRDaGFuZ2VzRm9yTm9kZS5wdXNoKGNoYW5nZSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBbbm9kZUluZGV4LCBjYW52YXNUZXh0Q2hhbmdlc0Zvck5vZGVdIG9mIGNhbnZhc1RleHRDaGFuZ2VzLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IG5vZGUgPSBjYW52YXNEYXRhLm5vZGVzW25vZGVJbmRleF07XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vZGUgbm90IGZvdW5kJywge1xuICAgICAgICBub2RlSW5kZXgsXG4gICAgICAgIHBhdGhcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG5vZGUudGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnNvbGUud2FybignTm9kZSB0ZXh0IGlzIG5vdCBhIHN0cmluZycsIHtcbiAgICAgICAgbm9kZUluZGV4LFxuICAgICAgICBwYXRoXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudENoYW5nZXMgPSBjYW52YXNUZXh0Q2hhbmdlc0Zvck5vZGUubWFwKChjaGFuZ2UpID0+IHJlZmVyZW5jZVRvRmlsZUNoYW5nZShjaGFuZ2UucmVmZXJlbmNlLm9yaWdpbmFsUmVmZXJlbmNlLCBjaGFuZ2UubmV3Q29udGVudCkpO1xuICAgIG5vZGUudGV4dCA9IGF3YWl0IGFwcGx5Q29udGVudENoYW5nZXMoXG4gICAgICBhYm9ydFNpZ25hbCxcbiAgICAgIG5vZGUudGV4dCxcbiAgICAgIGAke3BhdGh9Lm5vZGUke1N0cmluZyhub2RlSW5kZXgpfS5WSVJUVUFMX0ZJTEUubWRgLFxuICAgICAgY29udGVudENoYW5nZXMsXG4gICAgICBzaG91bGRSZXRyeU9uSW52YWxpZENoYW5nZXNcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGNhbnZhc0RhdGEsIG51bGwsICdcXHQnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlGcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0cyhcbiAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsLFxuICBmcm9udG1hdHRlcjogQ29tYmluZWRGcm9udG1hdHRlcjx1bmtub3duPixcbiAgZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldE1hcDogTWFwPHN0cmluZywgRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0c1tdPixcbiAgcGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBba2V5LCBmcm9udG1hdHRlckNoYW5nZXNXaXRoT2Zmc2V0c10gb2YgZnJvbnRtYXR0ZXJDaGFuZ2VzV2l0aE9mZnNldE1hcC5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBwcm9wZXJ0eVZhbHVlID0gZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZShmcm9udG1hdHRlciwga2V5KTtcbiAgICBpZiAodHlwZW9mIHByb3BlcnR5VmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudENoYW5nZXM6IENvbnRlbnRDaGFuZ2VbXSA9IGZyb250bWF0dGVyQ2hhbmdlc1dpdGhPZmZzZXRzLm1hcCgoY2hhbmdlKSA9PiAoe1xuICAgICAgbmV3Q29udGVudDogY2hhbmdlLm5ld0NvbnRlbnQsXG4gICAgICBvbGRDb250ZW50OiBjaGFuZ2Uub2xkQ29udGVudCxcbiAgICAgIHJlZmVyZW5jZToge1xuICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgb3JpZ2luYWw6ICcnLFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgY29sOiBjaGFuZ2UucmVmZXJlbmNlLmVuZE9mZnNldCxcbiAgICAgICAgICAgIGxpbmU6IDAsXG4gICAgICAgICAgICBvZmZzZXQ6IGNoYW5nZS5yZWZlcmVuY2UuZW5kT2Zmc2V0XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgY29sOiBjaGFuZ2UucmVmZXJlbmNlLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgbGluZTogMCxcbiAgICAgICAgICAgIG9mZnNldDogY2hhbmdlLnJlZmVyZW5jZS5zdGFydE9mZnNldFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gYXMgQ29udGVudENoYW5nZSkpO1xuXG4gICAgY29uc3QgbmV3UHJvcGVydHlWYWx1ZSA9IGF3YWl0IGFwcGx5Q29udGVudENoYW5nZXMoYWJvcnRTaWduYWwsIHByb3BlcnR5VmFsdWUsIGAke3BhdGh9LmZyb250bWF0dGVyLiR7a2V5fS5WSVJUVUFMX0ZJTEUubWRgLCBjb250ZW50Q2hhbmdlcyk7XG4gICAgaWYgKG5ld1Byb3BlcnR5VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250bWF0dGVyLCBrZXksIG5ld1Byb3BlcnR5VmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlSnNvblNhZmUoY29udGVudDogc3RyaW5nKTogR2VuZXJpY09iamVjdCB7XG4gIGxldCBwYXJzZWQ6IHVua25vd247XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gSlNPTi5wYXJzZShjb250ZW50KTtcbiAgfSBjYXRjaCB7XG4gICAgcGFyc2VkID0gbnVsbDtcbiAgfVxuXG4gIGlmIChwYXJzZWQgPT09IG51bGwgfHwgdHlwZW9mIHBhcnNlZCAhPT0gJ29iamVjdCcpIHtcbiAgICBwYXJzZWQgPSB7fTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZWQgYXMgR2VuZXJpY09iamVjdDtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGFuZ2VzKGNoYW5nZXM6IEZpbGVDaGFuZ2VbXSwgY29udGVudDogc3RyaW5nLCBmcm9udG1hdHRlcjogQ29tYmluZWRGcm9udG1hdHRlcjx1bmtub3duPiwgcGF0aDogc3RyaW5nLCBzaG91bGRTaG93V2FybmluZzogYm9vbGVhbik6IGJvb2xlYW4ge1xuICBjb25zdCB2YWxpZGF0ZUNoYW5nZXNEZWJ1Z2dlciA9IGdldERlYnVnZ2VyKCdGaWxlQ2hhbmdlOnZhbGlkYXRlQ2hhbmdlcycpO1xuICBjb25zdCBsb2dnZXIgPSBzaG91bGRTaG93V2FybmluZyA/IGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpIDogdmFsaWRhdGVDaGFuZ2VzRGVidWdnZXI7XG4gIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcbiAgICBpZiAoaXNDb250ZW50Q2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gY2hhbmdlLnJlZmVyZW5jZS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ7XG4gICAgICBjb25zdCBlbmRPZmZzZXQgPSBjaGFuZ2UucmVmZXJlbmNlLnBvc2l0aW9uLmVuZC5vZmZzZXQ7XG4gICAgICBjb25zdCBhY3R1YWxDb250ZW50ID0gY29udGVudC5zbGljZShzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTtcbiAgICAgIGlmIChhY3R1YWxDb250ZW50ICE9PSBjaGFuZ2Uub2xkQ29udGVudCkge1xuICAgICAgICBsb2dnZXIoJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XG4gICAgICAgICAgYWN0dWFsQ29udGVudCxcbiAgICAgICAgICBlbmRPZmZzZXQsXG4gICAgICAgICAgZXhwZWN0ZWRDb250ZW50OiBjaGFuZ2Uub2xkQ29udGVudCxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHN0YXJ0T2Zmc2V0XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyhjaGFuZ2UpKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eVZhbHVlID0gZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZShmcm9udG1hdHRlciwgY2hhbmdlLnJlZmVyZW5jZS5rZXkpO1xuICAgICAgaWYgKHR5cGVvZiBwcm9wZXJ0eVZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICBsb2dnZXIoJ1Byb3BlcnR5IHZhbHVlIGlzIG5vdCBhIHN0cmluZycsIHtcbiAgICAgICAgICBmcm9udG1hdHRlcktleTogY2hhbmdlLnJlZmVyZW5jZS5rZXksXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBwcm9wZXJ0eVZhbHVlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFjdHVhbENvbnRlbnQgPSBwcm9wZXJ0eVZhbHVlLnNsaWNlKGNoYW5nZS5yZWZlcmVuY2Uuc3RhcnRPZmZzZXQsIGNoYW5nZS5yZWZlcmVuY2UuZW5kT2Zmc2V0KTtcbiAgICAgIGlmIChhY3R1YWxDb250ZW50ICE9PSBjaGFuZ2Uub2xkQ29udGVudCkge1xuICAgICAgICBsb2dnZXIoJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XG4gICAgICAgICAgYWN0dWFsQ29udGVudCxcbiAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IGNoYW5nZS5vbGRDb250ZW50LFxuICAgICAgICAgIGZyb250bWF0dGVyS2V5OiBjaGFuZ2UucmVmZXJlbmNlLmtleSxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHN0YXJ0T2Zmc2V0OiBjaGFuZ2UucmVmZXJlbmNlLnN0YXJ0T2Zmc2V0XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2UoY2hhbmdlKSkge1xuICAgICAgY29uc3QgYWN0dWFsQ29udGVudCA9IGdldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRtYXR0ZXIsIGNoYW5nZS5yZWZlcmVuY2Uua2V5KTtcbiAgICAgIGlmIChhY3R1YWxDb250ZW50ICE9PSBjaGFuZ2Uub2xkQ29udGVudCkge1xuICAgICAgICBsb2dnZXIoJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XG4gICAgICAgICAgYWN0dWFsQ29udGVudCxcbiAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IGNoYW5nZS5vbGRDb250ZW50LFxuICAgICAgICAgIGZyb250bWF0dGVyS2V5OiBjaGFuZ2UucmVmZXJlbmNlLmtleSxcbiAgICAgICAgICBwYXRoXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSw2QkFHTztBQWNQLG1CQUE0QjtBQUM1Qix5QkFJTztBQUNQLDJCQUE2QjtBQUM3Qix3QkFHTztBQUNQLHlCQUdPO0FBQ1AsNkNBQWtEO0FBQ2xELHVCQUdPO0FBQ1AsbUJBQXdCO0FBc0N4QixlQUFzQixvQkFDcEIsYUFDQSxTQUNBLE1BQ0EsaUJBQ0EsOEJBQThCLE1BQ047QUFDeEIsY0FBWSxlQUFlO0FBQzNCLE1BQUksVUFBVSxVQUFNLG1DQUFhLGlCQUFpQixXQUFXO0FBQzdELE1BQUksY0FBNEMsQ0FBQztBQUNqRCxNQUFJLHNCQUFzQjtBQUMxQixNQUFJO0FBQ0Ysc0JBQWMscUNBQWlCLE9BQU87QUFBQSxFQUN4QyxTQUFTLE9BQU87QUFDZCxZQUFRLE1BQU0s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
@@ -10,19 +10,19 @@ import type { FrontmatterLinkCacheWithOffsets } from './FrontmatterLinkCacheWith
10
10
  import type { CanvasFileNodeReference, CanvasReference, CanvasTextNodeReference } from './Reference.cjs';
11
11
  import type { ProcessOptions } from './Vault.cjs';
12
12
  /**
13
- * Represents a file change in the Vault.
13
+ * A file change in the vault.
14
14
  */
15
15
  export interface FileChange {
16
16
  /**
17
- * The new content to replace the old content.
17
+ * A new content to replace the old content.
18
18
  */
19
19
  newContent: string;
20
20
  /**
21
- * The old content that will be replaced.
21
+ * An old content that will be replaced.
22
22
  */
23
23
  oldContent: string;
24
24
  /**
25
- * The reference that caused the change.
25
+ * A reference that caused the change.
26
26
  */
27
27
  reference: Reference;
28
28
  }
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
6
+ (function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;