obsidian-dev-utils 70.1.0 → 70.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +23 -5
  2. package/dist/dev/main.js +138 -67
  3. package/dist/dprint.json +1 -1
  4. package/dist/lib/cjs/abort-controller.cjs +1 -1
  5. package/dist/lib/cjs/library.cjs +1 -1
  6. package/dist/lib/cjs/library.d.cts +1 -1
  7. package/dist/lib/cjs/object-utils.cjs +1 -1
  8. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +17 -10
  9. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +13 -2
  10. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +9 -1
  11. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +6 -0
  12. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +1 -1
  13. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +1 -1
  14. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +77 -25
  15. package/dist/lib/cjs/obsidian/link.cjs +2 -4
  16. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +2 -4
  17. package/dist/lib/cjs/obsidian/markdown.cjs +80 -28
  18. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
  19. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +2 -0
  20. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +1 -1
  21. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +1 -1
  22. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +1 -1
  23. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +1 -1
  24. package/dist/lib/cjs/script-utils/build.cjs +22 -1
  25. package/dist/lib/cjs/script-utils/build.d.cts +6 -0
  26. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +2 -2
  27. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +1 -1
  28. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +2 -2
  29. package/dist/lib/cjs/script-utils/check-project-types.cjs +209 -0
  30. package/dist/lib/cjs/script-utils/check-project-types.d.cts +76 -0
  31. package/dist/lib/cjs/script-utils/exec.cjs +1 -1
  32. package/dist/lib/cjs/script-utils/index.cjs +7 -1
  33. package/dist/lib/cjs/script-utils/index.d.cts +2 -0
  34. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +38 -1
  35. package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +1 -1
  36. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +1 -1
  37. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +1 -1
  38. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +3 -1
  39. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +4 -0
  40. package/dist/lib/cjs/script-utils/validate-declarations.cjs +203 -0
  41. package/dist/lib/cjs/script-utils/validate-declarations.d.cts +24 -0
  42. package/dist/lib/cjs/type.cjs +1 -1
  43. package/dist/lib/esm/abort-controller.mjs +1 -1
  44. package/dist/lib/esm/library.d.mts +1 -1
  45. package/dist/lib/esm/library.mjs +1 -1
  46. package/dist/lib/esm/object-utils.mjs +1 -1
  47. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +13 -2
  48. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +17 -10
  49. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +6 -0
  50. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +9 -1
  51. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +1 -1
  52. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +1 -1
  53. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +77 -25
  54. package/dist/lib/esm/obsidian/link.mjs +2 -4
  55. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +2 -4
  56. package/dist/lib/esm/obsidian/markdown.mjs +80 -28
  57. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +2 -0
  58. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
  59. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +1 -1
  60. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +1 -1
  61. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +1 -1
  62. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +1 -1
  63. package/dist/lib/esm/script-utils/build.d.mts +6 -0
  64. package/dist/lib/esm/script-utils/build.mjs +27 -1
  65. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +2 -2
  66. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +1 -1
  67. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +2 -2
  68. package/dist/lib/esm/script-utils/check-project-types.d.mts +76 -0
  69. package/dist/lib/esm/script-utils/check-project-types.mjs +98 -0
  70. package/dist/lib/esm/script-utils/exec.mjs +1 -1
  71. package/dist/lib/esm/script-utils/index.d.mts +2 -0
  72. package/dist/lib/esm/script-utils/index.mjs +5 -1
  73. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +38 -1
  74. package/dist/lib/esm/script-utils/linters/eslint-no-restricted-syntax.mjs +1 -1
  75. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +1 -1
  76. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +1 -1
  77. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +4 -0
  78. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
  79. package/dist/lib/esm/script-utils/validate-declarations.d.mts +24 -0
  80. package/dist/lib/esm/script-utils/validate-declarations.mjs +106 -0
  81. package/dist/lib/esm/type.mjs +1 -1
  82. package/package.json +9 -9
  83. package/script-utils/check-project-types/package.json +6 -0
  84. package/script-utils/validate-declarations/package.json +6 -0
  85. package/scripts/postinstall.mjs +0 -29
@@ -72,9 +72,7 @@ async function getCodeBlockMarkdownInfo(params) {
72
72
  textLineOffsets.set(linesBeforeSectionCount + i + 1, lineOffset);
73
73
  lastTextLineOffset = lineOffset;
74
74
  }
75
- const potentialCodeBlockTextLines = textLines.map(
76
- (line, index) => approximateSectionInfo.lineStart <= index && index <= approximateSectionInfo.lineEnd ? line : ""
77
- );
75
+ const potentialCodeBlockTextLines = textLines.map((line, index) => approximateSectionInfo.lineStart <= index && index <= approximateSectionInfo.lineEnd ? line : "");
78
76
  const potentialCodeBlockText = potentialCodeBlockTextLines.join("\n");
79
77
  const REG_EXP = /(?<=^|\n)(?<LinePrefix> {0,3}(?:> {1,3})*)(?<CodeBlockStartDelimiter>(?<CodeBlockStartDelimiterChar>[`~])(?:\k<CodeBlockStartDelimiterChar>{2,}))(?<CodeBlockLanguage>\S*)(?:[ \t](?<CodeBlockArgs>.*?))?(?:\n(?<CodeBlockContent>(?:\n?\k<LinePrefix>.*)+?))?\n\k<LinePrefix>(?<CodeBlockEndDelimiter>\k<CodeBlockStartDelimiter>\k<CodeBlockStartDelimiterChar>*)[ \t]*(?=\n|$)/g;
80
78
  for (const match of potentialCodeBlockText.matchAll(REG_EXP)) {
@@ -261,4 +259,4 @@ export {
261
259
  removeCodeBlock,
262
260
  replaceCodeBlock
263
261
  };
264
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgY29kZSBibG9ja3MgaW4gT2JzaWRpYW4uXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsXG4gIE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi4vdmFsdWUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmltcG9ydCB0eXBlIHsgQ29udGVudEFyZ3MgfSBmcm9tICcuL3ZhdWx0LnRzJztcblxuaW1wb3J0IHsgYWJvcnRTaWduYWxBbnkgfSBmcm9tICcuLi9hYm9ydC1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jIH0gZnJvbSAnLi4vYXN5bmMudHMnO1xuaW1wb3J0IHtcbiAgZW5zdXJlTGZFbmRpbmdzLFxuICBnZXRMZk5vcm1hbGl6ZWRPZmZzZXRUb09yaWdpbmFsT2Zmc2V0TWFwcGVyLFxuICBoYXNTaW5nbGVPY2N1cnJlbmNlLFxuICBpbmRlbnQsXG4gIHVuaW5kZW50XG59IGZyb20gJy4uL3N0cmluZy50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB7IGdldEZpbGVPck51bGwgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7XG4gIGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayxcbiAgcHJvY2VzcyxcbiAgc2F2ZU5vdGVcbn0gZnJvbSAnLi92YXVsdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdldENvZGVCbG9ja01hcmtkb3duSW5mb30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIHtAbGluayBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0fSBvYmplY3QuXG4gICAqL1xuICByZWFkb25seSBjdHg6IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEge0BsaW5rIEhUTUxFbGVtZW50fSByZXByZXNlbnRpbmcgdGhlIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEEgc291cmNlIG9mIHRoZSBjb2RlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGluc2VydEFmdGVyQ29kZUJsb2NrfSAvIHtAbGluayBpbnNlcnRCZWZvcmVDb2RlQmxvY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydENvZGVCbG9ja1BhcmFtcyBleHRlbmRzIEdldENvZGVCbG9ja01hcmtkb3duSW5mb1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBIG51bWJlciBvZiBsaW5lcyB0byBvZmZzZXQgdGhlIGluc2VydGlvbiBieS4gRGVmYXVsdCBpcyBgMGAuXG4gICAqL1xuICByZWFkb25seSBsaW5lT2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZXNlcnZlIHRoZSBsaW5lIHByZWZpeCBvZiB0aGUgY29kZSBibG9jay4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSB0ZXh0IHRvIGluc2VydCBhZnRlciB0aGUgY29kZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVtb3ZlQ29kZUJsb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW1vdmVDb2RlQmxvY2tQYXJhbXMgZXh0ZW5kcyBHZXRDb2RlQmxvY2tNYXJrZG93bkluZm9QYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciB0byBrZWVwIHRoZSBnYXAgYWZ0ZXIgcmVtb3ZpbmcgdGhlIGNvZGUgYmxvY2suIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEtlZXBHYXA/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZXBsYWNlQ29kZUJsb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlQ29kZUJsb2NrUGFyYW1zIGV4dGVuZHMgR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIGFib3J0IHNpZ25hbCB0byBjb250cm9sIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBuZXcgY29kZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCbG9ja1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPHN0cmluZywgQ29udGVudEFyZ3M+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGtlZXAgdGhlIGdhcCB3aGVuIHRoZSBuZXcgY29kZSBibG9jayBpcyBlbXB0eS4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkS2VlcEdhcFdoZW5FbXB0eT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJlc2VydmUgdGhlIGxpbmUgcHJlZml4IG9mIHRoZSBjb2RlIGJsb2NrLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXg/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlTWFya2Rvd25JbmZvRnJvbU1hdGNoUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXBwcm94aW1hdGVTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb247XG4gIHJlYWRvbmx5IGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5O1xuICByZWFkb25seSBub3RlQ29udGVudDogc3RyaW5nO1xuICByZWFkb25seSBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZUxpbmVzQ291bnQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdGV4dExpbmVPZmZzZXRzOiBSZWFkb25seU1hcDxudW1iZXIsIG51bWJlcj47XG59XG5cbi8qKlxuICogR2V0cyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2RlIGJsb2NrIGluIGEgTWFya2Rvd24gc2VjdGlvbi5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29kZSBibG9jayBpbiB0aGUgTWFya2Rvd24gc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENvZGVCbG9ja01hcmtkb3duSW5mbyhwYXJhbXM6IEdldENvZGVCbG9ja01hcmtkb3duSW5mb1BhcmFtcyk6IFByb21pc2U8Q29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbiB8IG51bGw+IHtcbiAgY29uc3QgeyBhcHAsIGN0eCwgZWwsIHNvdXJjZSB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHNvdXJjZUZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgY3R4LnNvdXJjZVBhdGgpO1xuICBhc3NlcnROb25OdWxsYWJsZShzb3VyY2VGaWxlLCBgU291cmNlIGZpbGUgJHtjdHguc291cmNlUGF0aH0gbm90IGZvdW5kLmApO1xuXG4gIGF3YWl0IHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jKCk7XG4gIGF3YWl0IHNhdmVOb3RlKGFwcCwgc291cmNlRmlsZSk7XG5cbiAgbGV0IG1hcmtkb3duSW5mbzogQ29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGF3YWl0IGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayhhcHAsIHNvdXJjZUZpbGUsIChub3RlQ29udGVudCkgPT4ge1xuICAgIGNvbnN0IG5vdGVDb250ZW50TGYgPSBlbnN1cmVMZkVuZGluZ3Mobm90ZUNvbnRlbnQpO1xuXG4gICAgY29uc3QgYXBwcm94aW1hdGVTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gPSB7XG4gICAgICBsaW5lRW5kOiBub3RlQ29udGVudExmLnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxLFxuICAgICAgbGluZVN0YXJ0OiAwLFxuICAgICAgdGV4dDogbm90ZUNvbnRlbnRMZlxuICAgIH07XG5cbiAgICBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHQgPSBlbnN1cmVMZkVuZGluZ3MoYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0KTtcbiAgICBjb25zdCBzb3VyY2VMZiA9IGVuc3VyZUxmRW5kaW5ncyhzb3VyY2UpO1xuXG4gICAgaWYgKCFoYXNTaW5nbGVPY2N1cnJlbmNlKG5vdGVDb250ZW50TGYsIGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWN0aW9uT2Zmc2V0ID0gbm90ZUNvbnRlbnRMZi5pbmRleE9mKGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dCk7XG4gICAgY29uc3QgbGluZXNCZWZvcmVTZWN0aW9uQ291bnQgPSBub3RlQ29udGVudExmLnNsaWNlKDAsIHNlY3Rpb25PZmZzZXQpLnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxO1xuXG4gICAgY29uc3QgaXNJbkNhbGxvdXQgPSAhIWVsLnBhcmVudEVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygnY2FsbG91dC1jb250ZW50Jyk7XG5cbiAgICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlRnJvbUVsZW1lbnQoZWwpO1xuICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc291cmNlTGYuc3BsaXQoJ1xcbicpO1xuXG4gICAgY29uc3QgdGV4dExpbmVzID0gYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCB0ZXh0TGluZU9mZnNldHMgPSBuZXcgTWFwPG51bWJlciwgbnVtYmVyPigpO1xuICAgIHRleHRMaW5lT2Zmc2V0cy5zZXQobGluZXNCZWZvcmVTZWN0aW9uQ291bnQsIHNlY3Rpb25PZmZzZXQpO1xuXG4gICAgbGV0IGxhc3RUZXh0TGluZU9mZnNldCA9IHNlY3Rpb25PZmZzZXQ7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0TGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRleHRMaW5lID0gdGV4dExpbmVzW2ldID8/ICcnO1xuICAgICAgY29uc3QgbGluZU9mZnNldCA9IGxhc3RUZXh0TGluZU9mZnNldCArIHRleHRMaW5lLmxlbmd0aCArIDE7XG4gICAgICB0ZXh0TGluZU9mZnNldHMuc2V0KGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50ICsgaSArIDEsIGxpbmVPZmZzZXQpO1xuICAgICAgbGFzdFRleHRMaW5lT2Zmc2V0ID0gbGluZU9mZnNldDtcbiAgICB9XG5cbiAgICBjb25zdCBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0TGluZXMgPSB0ZXh0TGluZXMubWFwKChsaW5lLCBpbmRleCkgPT5cbiAgICAgIGFwcHJveGltYXRlU2VjdGlvbkluZm8ubGluZVN0YXJ0IDw9IGluZGV4ICYmIGluZGV4IDw9IGFwcHJveGltYXRlU2VjdGlvbkluZm8ubGluZUVuZCA/IGxpbmUgOiAnJ1xuICAgICk7XG4gICAgY29uc3QgcG90ZW50aWFsQ29kZUJsb2NrVGV4dCA9IHBvdGVudGlhbENvZGVCbG9ja1RleHRMaW5lcy5qb2luKCdcXG4nKTtcblxuICAgIGNvbnN0IFJFR19FWFAgPVxuICAgICAgLyg/PD1efFxcbikoPzxMaW5lUHJlZml4PiB7MCwzfSg/Oj4gezEsM30pKikoPzxDb2RlQmxvY2tTdGFydERlbGltaXRlcj4oPzxDb2RlQmxvY2tTdGFydERlbGltaXRlckNoYXI+W2B+XSkoPzpcXGs8Q29kZUJsb2NrU3RhcnREZWxpbWl0ZXJDaGFyPnsyLH0pKSg/PENvZGVCbG9ja0xhbmd1YWdlPlxcUyopKD86WyBcXHRdKD88Q29kZUJsb2NrQXJncz4uKj8pKT8oPzpcXG4oPzxDb2RlQmxvY2tDb250ZW50Pig/Olxcbj9cXGs8TGluZVByZWZpeD4uKikrPykpP1xcblxcazxMaW5lUHJlZml4Pig/PENvZGVCbG9ja0VuZERlbGltaXRlcj5cXGs8Q29kZUJsb2NrU3RhcnREZWxpbWl0ZXI+XFxrPENvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyQ2hhcj4qKVsgXFx0XSooPz1cXG58JCkvZztcblxuICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgcG90ZW50aWFsQ29kZUJsb2NrVGV4dC5tYXRjaEFsbChSRUdfRVhQKSkge1xuICAgICAgaWYgKCFpc1N1aXRhYmxlQ29kZUJsb2NrKG1hdGNoLCBsYW5ndWFnZSwgc291cmNlTGYsIGlzSW5DYWxsb3V0KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hcmtkb3duSW5mbykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG1hcmtkb3duSW5mbyA9IGNyZWF0ZU1hcmtkb3duSW5mb0Zyb21NYXRjaCh7XG4gICAgICAgIGFwcHJveGltYXRlU2VjdGlvbkluZm8sXG4gICAgICAgIGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50LFxuICAgICAgICBtYXRjaCxcbiAgICAgICAgbm90ZUNvbnRlbnQsXG4gICAgICAgIHBvdGVudGlhbENvZGVCbG9ja1RleHQsXG4gICAgICAgIHNvdXJjZUxpbmVzQ291bnQ6IHNvdXJjZUxpbmVzLmxlbmd0aCxcbiAgICAgICAgdGV4dExpbmVPZmZzZXRzXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIW1hcmtkb3duSW5mbykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChub3RlQ29udGVudExmID09PSBub3RlQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxmT2Zmc2V0TWFwcGVyID0gZ2V0TGZOb3JtYWxpemVkT2Zmc2V0VG9PcmlnaW5hbE9mZnNldE1hcHBlcihub3RlQ29udGVudCk7XG4gICAgbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLnN0YXJ0Lm9mZnNldCA9IGxmT2Zmc2V0TWFwcGVyKG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5vZmZzZXQpO1xuICAgIG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5lbmQub2Zmc2V0ID0gbGZPZmZzZXRNYXBwZXIobWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLmVuZC5vZmZzZXQpO1xuICB9KTtcblxuICByZXR1cm4gbWFya2Rvd25JbmZvO1xufVxuXG4vKipcbiAqIEluc2VydHMgdGV4dCBhZnRlciB0aGUgY29kZSBibG9jay5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEludGVudGlvbmFsbHkgc2hhcmVzIEluc2VydENvZGVCbG9ja1BhcmFtcyB3aXRoIGluc2VydEJlZm9yZUNvZGVCbG9jay5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnNlcnRBZnRlckNvZGVCbG9jayhwYXJhbXM6IEluc2VydENvZGVCbG9ja1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCwgY3R4LCBsaW5lT2Zmc2V0ID0gMCwgdGV4dCB9ID0gcGFyYW1zO1xuXG4gIGF3YWl0IHByb2Nlc3MoYXBwLCBjdHguc291cmNlUGF0aCwgYXN5bmMgKHsgY29udGVudCB9KSA9PiB7XG4gICAgY29uc3QgbWFya2Rvd25JbmZvID0gYXdhaXQgZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvKHBhcmFtcyk7XG4gICAgYXNzZXJ0Tm9uTnVsbGFibGUobWFya2Rvd25JbmZvLCAnQ291bGQgbm90IHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBjb2RlIGJsb2NrLicpO1xuXG4gICAgaWYgKGNvbnRlbnQgIT09IG1hcmtkb3duSW5mby5ub3RlQ29udGVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaW5zZXJ0TGluZUluZGV4ID0gbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLmVuZC5saW5lICsgbGluZU9mZnNldCArIDE7XG4gICAgcmV0dXJuIGluc2VydFRleHQoY29udGVudCwgaW5zZXJ0TGluZUluZGV4LCB0ZXh0LCBwYXJhbXMuc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4KTtcbiAgfSk7XG59XG5cbi8qKlxuICogSW5zZXJ0cyB0ZXh0IGJlZm9yZSB0aGUgY29kZSBibG9jay5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEludGVudGlvbmFsbHkgc2hhcmVzIEluc2VydENvZGVCbG9ja1BhcmFtcyB3aXRoIGluc2VydEFmdGVyQ29kZUJsb2NrLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydEJlZm9yZUNvZGVCbG9jayhwYXJhbXM6IEluc2VydENvZGVCbG9ja1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCwgY3R4LCBsaW5lT2Zmc2V0ID0gMCwgdGV4dCB9ID0gcGFyYW1zO1xuXG4gIGF3YWl0IHByb2Nlc3MoYXBwLCBjdHguc291cmNlUGF0aCwgYXN5bmMgKHsgY29udGVudCB9KSA9PiB7XG4gICAgY29uc3QgbWFya2Rvd25JbmZvID0gYXdhaXQgZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvKHBhcmFtcyk7XG4gICAgaWYgKCFtYXJrZG93bkluZm8pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBjb2RlIGJsb2NrLicpO1xuICAgIH1cblxuICAgIGlmIChjb250ZW50ICE9PSBtYXJrZG93bkluZm8ubm90ZUNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGluc2VydExpbmVJbmRleCA9IG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5saW5lIC0gbGluZU9mZnNldDtcbiAgICByZXR1cm4gaW5zZXJ0VGV4dChjb250ZW50LCBpbnNlcnRMaW5lSW5kZXgsIHRleHQsIHBhcmFtcy5zaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXgpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVtb3ZlQ29kZUJsb2NrKHBhcmFtczogUmVtb3ZlQ29kZUJsb2NrUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJlcGxhY2VDb2RlQmxvY2soe1xuICAgIC4uLnBhcmFtcyxcbiAgICBjb2RlQmxvY2tQcm92aWRlcjogJycsXG4gICAgc2hvdWxkS2VlcEdhcFdoZW5FbXB0eTogcGFyYW1zLnNob3VsZEtlZXBHYXAgPz8gZmFsc2VcbiAgfSk7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBsYWNlQ29kZUJsb2NrKHBhcmFtczogUmVwbGFjZUNvZGVCbG9ja1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCwgY29kZUJsb2NrUHJvdmlkZXIsIGN0eCB9ID0gcGFyYW1zO1xuICBwYXJhbXMuYWJvcnRTaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG5cbiAgYXdhaXQgcHJvY2VzcyhhcHAsIGN0eC5zb3VyY2VQYXRoLCBhc3luYyAoeyBhYm9ydFNpZ25hbCwgY29udGVudCB9KSA9PiB7XG4gICAgYWJvcnRTaWduYWwgPSBhYm9ydFNpZ25hbEFueShhYm9ydFNpZ25hbCwgcGFyYW1zLmFib3J0U2lnbmFsKTtcbiAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgIGNvbnN0IG1hcmtkb3duSW5mbyA9IGF3YWl0IGdldENvZGVCbG9ja01hcmtkb3duSW5mbyhwYXJhbXMpO1xuICAgIGlmICghbWFya2Rvd25JbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCB1bmlxdWVseSBpZGVudGlmeSB0aGUgY29kZSBibG9jay4nKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGVudCAhPT0gbWFya2Rvd25JbmZvLm5vdGVDb250ZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgb2xkQ29kZUJsb2NrID0gY29udGVudC5zbGljZShtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuc3RhcnQub2Zmc2V0LCBtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuZW5kLm9mZnNldCk7XG4gICAgaWYgKHBhcmFtcy5zaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXgpIHtcbiAgICAgIG9sZENvZGVCbG9jayA9IHVuaW5kZW50KG9sZENvZGVCbG9jaywgbWFya2Rvd25JbmZvLmxpbmVQcmVmaXgpO1xuICAgIH1cblxuICAgIGxldCBuZXdDb2RlQmxvY2sgPSBhd2FpdCByZXNvbHZlVmFsdWUoY29kZUJsb2NrUHJvdmlkZXIsIHsgYWJvcnRTaWduYWwsIGNvbnRlbnQ6IG9sZENvZGVCbG9jayB9KTtcbiAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgIGlmICgobmV3Q29kZUJsb2NrIHx8IHBhcmFtcy5zaG91bGRLZWVwR2FwV2hlbkVtcHR5KSAmJiBwYXJhbXMuc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4KSB7XG4gICAgICBuZXdDb2RlQmxvY2sgPSBpbmRlbnQobmV3Q29kZUJsb2NrLCBtYXJrZG93bkluZm8ubGluZVByZWZpeCk7XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dEJlZm9yZUNvZGVCbG9jayA9IGNvbnRlbnQuc2xpY2UoMCwgbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLnN0YXJ0Lm9mZnNldCk7XG4gICAgY29uc3QgdGV4dEFmdGVyQ29kZUJsb2NrID0gY29udGVudC5zbGljZShtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuZW5kLm9mZnNldCk7XG5cbiAgICBpZiAobmV3Q29kZUJsb2NrIHx8IHBhcmFtcy5zaG91bGRLZWVwR2FwV2hlbkVtcHR5KSB7XG4gICAgICByZXR1cm4gYCR7dGV4dEJlZm9yZUNvZGVCbG9ja30ke25ld0NvZGVCbG9ja30ke3RleHRBZnRlckNvZGVCbG9ja31gO1xuICAgIH1cblxuICAgIGlmICghdGV4dEJlZm9yZUNvZGVCbG9jayAmJiAhdGV4dEFmdGVyQ29kZUJsb2NrKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKHRleHRCZWZvcmVDb2RlQmxvY2spIHtcbiAgICAgIHJldHVybiBgJHt0ZXh0QmVmb3JlQ29kZUJsb2NrLnNsaWNlKDAsIC0xKX0ke3RleHRBZnRlckNvZGVCbG9ja31gO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0ZXh0QmVmb3JlQ29kZUJsb2NrfSR7dGV4dEFmdGVyQ29kZUJsb2NrLnNsaWNlKDEpfWA7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVNYXJrZG93bkluZm9Gcm9tTWF0Y2gocGFyYW1zOiBDcmVhdGVNYXJrZG93bkluZm9Gcm9tTWF0Y2hQYXJhbXMpOiBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIHtcbiAgY29uc3Qge1xuICAgIGFwcHJveGltYXRlU2VjdGlvbkluZm8sXG4gICAgbGluZXNCZWZvcmVTZWN0aW9uQ291bnQsXG4gICAgbWF0Y2gsXG4gICAgbm90ZUNvbnRlbnQsXG4gICAgcG90ZW50aWFsQ29kZUJsb2NrVGV4dCxcbiAgICBzb3VyY2VMaW5lc0NvdW50LFxuICAgIHRleHRMaW5lT2Zmc2V0c1xuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGxpbmVQcmVmaXggPSBtYXRjaC5ncm91cHM/LlsnTGluZVByZWZpeCddID8/ICcnO1xuICBjb25zdCBjb2RlQmxvY2tTdGFydERlbGltaXRlciA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tTdGFydERlbGltaXRlciddID8/ICcnO1xuICBjb25zdCBjb2RlQmxvY2tFbmREZWxpbWl0ZXIgPSBtYXRjaC5ncm91cHM/LlsnQ29kZUJsb2NrRW5kRGVsaW1pdGVyJ10gPz8gJyc7XG4gIGNvbnN0IGNvZGVCbG9ja0FyZ3NTdHIgPSBtYXRjaC5ncm91cHM/LlsnQ29kZUJsb2NrQXJncyddID8/ICcnO1xuICBjb25zdCBsYW5ndWFnZSA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tMYW5ndWFnZSddID8/ICcnO1xuXG4gIGNvbnN0IHByZXZpb3VzVGV4dCA9IHBvdGVudGlhbENvZGVCbG9ja1RleHQuc2xpY2UoMCwgbWF0Y2guaW5kZXgpO1xuICBjb25zdCBwcmV2aW91c1RleHRMaW5lc0NvdW50ID0gcHJldmlvdXNUZXh0LnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxO1xuXG4gIGNvbnN0IHN0YXJ0TGluZSA9IGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50ICsgcHJldmlvdXNUZXh0TGluZXNDb3VudDtcbiAgY29uc3QgZW5kTGluZSA9IHN0YXJ0TGluZSArIHNvdXJjZUxpbmVzQ291bnQgKyAxO1xuXG4gIHJldHVybiB7XG4gICAgYXJnczogY29kZUJsb2NrQXJnc1N0ci5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKSxcbiAgICBlbmREZWxpbWl0ZXI6IGNvZGVCbG9ja0VuZERlbGltaXRlcixcbiAgICBsYW5ndWFnZSxcbiAgICBsaW5lUHJlZml4LFxuICAgIG5vdGVDb250ZW50LFxuICAgIHBvc2l0aW9uSW5Ob3RlOiB7XG4gICAgICBlbmQ6IHtcbiAgICAgICAgY29sOiAodGV4dExpbmVPZmZzZXRzLmdldChlbmRMaW5lICsgMSkgPz8gMCkgLSAodGV4dExpbmVPZmZzZXRzLmdldChlbmRMaW5lKSA/PyAwKSAtIDEsXG4gICAgICAgIGxpbmU6IGVuZExpbmUsXG4gICAgICAgIG9mZnNldDogKHRleHRMaW5lT2Zmc2V0cy5nZXQoZW5kTGluZSArIDEpID8/IDApIC0gMVxuICAgICAgfSxcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGNvbDogMCxcbiAgICAgICAgbGluZTogc3RhcnRMaW5lLFxuICAgICAgICBvZmZzZXQ6IHRleHRMaW5lT2Zmc2V0cy5nZXQoc3RhcnRMaW5lKSA/PyAwXG4gICAgICB9XG4gICAgfSxcbiAgICByYXdBcmdzU3RyOiBjb2RlQmxvY2tBcmdzU3RyLFxuICAgIHNlY3Rpb25JbmZvOiB7XG4gICAgICBsaW5lRW5kOiBwcmV2aW91c1RleHRMaW5lc0NvdW50ICsgc291cmNlTGluZXNDb3VudCArIDEsXG4gICAgICBsaW5lU3RhcnQ6IHByZXZpb3VzVGV4dExpbmVzQ291bnQsXG4gICAgICB0ZXh0OiBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHRcbiAgICB9LFxuICAgIHN0YXJ0RGVsaW1pdGVyOiBjb2RlQmxvY2tTdGFydERlbGltaXRlclxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRMYW5ndWFnZUZyb21FbGVtZW50KGVsOiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gIGNvbnN0IEJMT0NLX0xBTkdVQUdFX1BSRUZJWCA9ICdibG9jay1sYW5ndWFnZS0nO1xuICByZXR1cm4gQXJyYXkuZnJvbShlbC5jbGFzc0xpc3QpLmZpbmQoKGNscykgPT4gY2xzLnN0YXJ0c1dpdGgoQkxPQ0tfTEFOR1VBR0VfUFJFRklYKSk/LnNsaWNlKEJMT0NLX0xBTkdVQUdFX1BSRUZJWC5sZW5ndGgpID8/ICcnO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRUZXh0KGNvbnRlbnQ6IHN0cmluZywgaW5zZXJ0TGluZUluZGV4OiBudW1iZXIsIHRleHQ6IHN0cmluZywgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4PzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJyk7XG4gIGNvbnN0IG5ld0xpbmVzID0gbGluZXMuc2xpY2UoKTtcbiAgY29uc3QgdGV4dExpbmVzID0gdGV4dC5zcGxpdCgnXFxuJyk7XG5cbiAgaWYgKGluc2VydExpbmVJbmRleCA8IDApIHtcbiAgICBpbnNlcnRMaW5lSW5kZXggPSAwO1xuICB9XG4gIGlmIChpbnNlcnRMaW5lSW5kZXggPiBsaW5lcy5sZW5ndGgpIHtcbiAgICBpbnNlcnRMaW5lSW5kZXggPSBsaW5lcy5sZW5ndGg7XG4gIH1cblxuICBjb25zdCBQUkVGSVhfTElORV9SRUdfRVhQID0gL14gezAsM30oPzo+IHsxLDN9KSovZztcbiAgY29uc3QgbWF0Y2ggPSAobGluZXNbaW5zZXJ0TGluZUluZGV4XSA/PyAnJykubWF0Y2goUFJFRklYX0xJTkVfUkVHX0VYUCk7XG4gIGNvbnN0IGxpbmVQcmVmaXggPSBtYXRjaD8uWzBdID8/ICcnO1xuICBuZXdMaW5lcy5zcGxpY2UoaW5zZXJ0TGluZUluZGV4LCAwLCAuLi4oc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4ID8gdGV4dExpbmVzLm1hcCgobGluZSkgPT4gaW5kZW50KGxpbmUsIGxpbmVQcmVmaXgpKSA6IHRleHRMaW5lcykpO1xuICByZXR1cm4gbmV3TGluZXMuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIGlzU3VpdGFibGVDb2RlQmxvY2soXG4gIG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5LFxuICBsYW5ndWFnZTogc3RyaW5nLFxuICBzb3VyY2VMZjogc3RyaW5nLFxuICBpc0luQ2FsbG91dDogYm9vbGVhblxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNvZGVCbG9ja0xhbmd1YWdlID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja0xhbmd1YWdlJ10gPz8gJyc7XG4gIGlmIChjb2RlQmxvY2tMYW5ndWFnZSAhPT0gbGFuZ3VhZ2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBsaW5lUHJlZml4ID0gbWF0Y2guZ3JvdXBzPy5bJ0xpbmVQcmVmaXgnXSA/PyAnJztcblxuICBpZiAoaXNJbkNhbGxvdXQgJiYgIWxpbmVQcmVmaXguaW5jbHVkZXMoJz4gJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjb2RlQmxvY2tDb250ZW50ID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja0NvbnRlbnQnXSA/PyAnJztcbiAgY29uc3QgY2xlYW5Db2RlQmxvY2tDb250ZW50ID0gY29kZUJsb2NrQ29udGVudC5zcGxpdCgnXFxuJykubWFwKChsaW5lKSA9PiBsaW5lLnNsaWNlKGxpbmVQcmVmaXgubGVuZ3RoKSkuam9pbignXFxuJyk7XG5cbiAgcmV0dXJuIGNsZWFuQ29kZUJsb2NrQ29udGVudCA9PT0gc291cmNlTGY7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGtDQUFrQztBQUMzQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMscUJBQXFCO0FBQzlCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQWtHUCxlQUFzQix5QkFBeUIsUUFBc0Y7QUFDbkksUUFBTSxFQUFFLEtBQUssS0FBSyxJQUFJLE9BQU8sSUFBSTtBQUVqQyxRQUFNLGFBQWEsY0FBYyxLQUFLLElBQUksVUFBVTtBQUNwRCxvQkFBa0IsWUFBWSxlQUFlLElBQUksVUFBVSxhQUFhO0FBRXhFLFFBQU0sMkJBQTJCO0FBQ2pDLFFBQU0sU0FBUyxLQUFLLFVBQVU7QUFFOUIsTUFBSSxlQUFvRDtBQUV4RCxRQUFNLHlCQUF5QixLQUFLLFlBQVksQ0FBQyxnQkFBZ0I7QUFDL0QsVUFBTSxnQkFBZ0IsZ0JBQWdCLFdBQVc7QUFFakQsVUFBTSx5QkFBcUQ7QUFBQSxNQUN6RCxTQUFTLGNBQWMsTUFBTSxJQUFJLEVBQUUsU0FBUztBQUFBLE1BQzVDLFdBQVc7QUFBQSxNQUNYLE1BQU07QUFBQSxJQUNSO0FBRUEsMkJBQXVCLE9BQU8sZ0JBQWdCLHVCQUF1QixJQUFJO0FBQ3pFLFVBQU0sV0FBVyxnQkFBZ0IsTUFBTTtBQUV2QyxRQUFJLENBQUMsb0JBQW9CLGVBQWUsdUJBQXVCLElBQUksR0FBRztBQUNwRTtBQUFBLElBQ0Y7QUFFQSxVQUFNLGdCQUFnQixj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
262
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgY29kZSBibG9ja3MgaW4gT2JzaWRpYW4uXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsXG4gIE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi4vdmFsdWUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmltcG9ydCB0eXBlIHsgQ29udGVudEFyZ3MgfSBmcm9tICcuL3ZhdWx0LnRzJztcblxuaW1wb3J0IHsgYWJvcnRTaWduYWxBbnkgfSBmcm9tICcuLi9hYm9ydC1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jIH0gZnJvbSAnLi4vYXN5bmMudHMnO1xuaW1wb3J0IHtcbiAgZW5zdXJlTGZFbmRpbmdzLFxuICBnZXRMZk5vcm1hbGl6ZWRPZmZzZXRUb09yaWdpbmFsT2Zmc2V0TWFwcGVyLFxuICBoYXNTaW5nbGVPY2N1cnJlbmNlLFxuICBpbmRlbnQsXG4gIHVuaW5kZW50XG59IGZyb20gJy4uL3N0cmluZy50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB7IGdldEZpbGVPck51bGwgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7XG4gIGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayxcbiAgcHJvY2VzcyxcbiAgc2F2ZU5vdGVcbn0gZnJvbSAnLi92YXVsdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdldENvZGVCbG9ja01hcmtkb3duSW5mb30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIHtAbGluayBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0fSBvYmplY3QuXG4gICAqL1xuICByZWFkb25seSBjdHg6IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEge0BsaW5rIEhUTUxFbGVtZW50fSByZXByZXNlbnRpbmcgdGhlIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEEgc291cmNlIG9mIHRoZSBjb2RlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGluc2VydEFmdGVyQ29kZUJsb2NrfSAvIHtAbGluayBpbnNlcnRCZWZvcmVDb2RlQmxvY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydENvZGVCbG9ja1BhcmFtcyBleHRlbmRzIEdldENvZGVCbG9ja01hcmtkb3duSW5mb1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBIG51bWJlciBvZiBsaW5lcyB0byBvZmZzZXQgdGhlIGluc2VydGlvbiBieS4gRGVmYXVsdCBpcyBgMGAuXG4gICAqL1xuICByZWFkb25seSBsaW5lT2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZXNlcnZlIHRoZSBsaW5lIHByZWZpeCBvZiB0aGUgY29kZSBibG9jay4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSB0ZXh0IHRvIGluc2VydCBhZnRlciB0aGUgY29kZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVtb3ZlQ29kZUJsb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW1vdmVDb2RlQmxvY2tQYXJhbXMgZXh0ZW5kcyBHZXRDb2RlQmxvY2tNYXJrZG93bkluZm9QYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciB0byBrZWVwIHRoZSBnYXAgYWZ0ZXIgcmVtb3ZpbmcgdGhlIGNvZGUgYmxvY2suIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEtlZXBHYXA/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZXBsYWNlQ29kZUJsb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlQ29kZUJsb2NrUGFyYW1zIGV4dGVuZHMgR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIGFib3J0IHNpZ25hbCB0byBjb250cm9sIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBuZXcgY29kZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCbG9ja1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPHN0cmluZywgQ29udGVudEFyZ3M+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGtlZXAgdGhlIGdhcCB3aGVuIHRoZSBuZXcgY29kZSBibG9jayBpcyBlbXB0eS4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkS2VlcEdhcFdoZW5FbXB0eT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJlc2VydmUgdGhlIGxpbmUgcHJlZml4IG9mIHRoZSBjb2RlIGJsb2NrLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXg/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlTWFya2Rvd25JbmZvRnJvbU1hdGNoUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXBwcm94aW1hdGVTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb247XG4gIHJlYWRvbmx5IGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5O1xuICByZWFkb25seSBub3RlQ29udGVudDogc3RyaW5nO1xuICByZWFkb25seSBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZUxpbmVzQ291bnQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdGV4dExpbmVPZmZzZXRzOiBSZWFkb25seU1hcDxudW1iZXIsIG51bWJlcj47XG59XG5cbi8qKlxuICogR2V0cyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2RlIGJsb2NrIGluIGEgTWFya2Rvd24gc2VjdGlvbi5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29kZSBibG9jayBpbiB0aGUgTWFya2Rvd24gc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENvZGVCbG9ja01hcmtkb3duSW5mbyhwYXJhbXM6IEdldENvZGVCbG9ja01hcmtkb3duSW5mb1BhcmFtcyk6IFByb21pc2U8Q29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbiB8IG51bGw+IHtcbiAgY29uc3QgeyBhcHAsIGN0eCwgZWwsIHNvdXJjZSB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHNvdXJjZUZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgY3R4LnNvdXJjZVBhdGgpO1xuICBhc3NlcnROb25OdWxsYWJsZShzb3VyY2VGaWxlLCBgU291cmNlIGZpbGUgJHtjdHguc291cmNlUGF0aH0gbm90IGZvdW5kLmApO1xuXG4gIGF3YWl0IHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jKCk7XG4gIGF3YWl0IHNhdmVOb3RlKGFwcCwgc291cmNlRmlsZSk7XG5cbiAgbGV0IG1hcmtkb3duSW5mbzogQ29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGF3YWl0IGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayhhcHAsIHNvdXJjZUZpbGUsIChub3RlQ29udGVudCkgPT4ge1xuICAgIGNvbnN0IG5vdGVDb250ZW50TGYgPSBlbnN1cmVMZkVuZGluZ3Mobm90ZUNvbnRlbnQpO1xuXG4gICAgY29uc3QgYXBwcm94aW1hdGVTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gPSB7XG4gICAgICBsaW5lRW5kOiBub3RlQ29udGVudExmLnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxLFxuICAgICAgbGluZVN0YXJ0OiAwLFxuICAgICAgdGV4dDogbm90ZUNvbnRlbnRMZlxuICAgIH07XG5cbiAgICBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHQgPSBlbnN1cmVMZkVuZGluZ3MoYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0KTtcbiAgICBjb25zdCBzb3VyY2VMZiA9IGVuc3VyZUxmRW5kaW5ncyhzb3VyY2UpO1xuXG4gICAgaWYgKCFoYXNTaW5nbGVPY2N1cnJlbmNlKG5vdGVDb250ZW50TGYsIGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWN0aW9uT2Zmc2V0ID0gbm90ZUNvbnRlbnRMZi5pbmRleE9mKGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dCk7XG4gICAgY29uc3QgbGluZXNCZWZvcmVTZWN0aW9uQ291bnQgPSBub3RlQ29udGVudExmLnNsaWNlKDAsIHNlY3Rpb25PZmZzZXQpLnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxO1xuXG4gICAgY29uc3QgaXNJbkNhbGxvdXQgPSAhIWVsLnBhcmVudEVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygnY2FsbG91dC1jb250ZW50Jyk7XG5cbiAgICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlRnJvbUVsZW1lbnQoZWwpO1xuICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc291cmNlTGYuc3BsaXQoJ1xcbicpO1xuXG4gICAgY29uc3QgdGV4dExpbmVzID0gYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCB0ZXh0TGluZU9mZnNldHMgPSBuZXcgTWFwPG51bWJlciwgbnVtYmVyPigpO1xuICAgIHRleHRMaW5lT2Zmc2V0cy5zZXQobGluZXNCZWZvcmVTZWN0aW9uQ291bnQsIHNlY3Rpb25PZmZzZXQpO1xuXG4gICAgbGV0IGxhc3RUZXh0TGluZU9mZnNldCA9IHNlY3Rpb25PZmZzZXQ7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0TGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRleHRMaW5lID0gdGV4dExpbmVzW2ldID8/ICcnO1xuICAgICAgY29uc3QgbGluZU9mZnNldCA9IGxhc3RUZXh0TGluZU9mZnNldCArIHRleHRMaW5lLmxlbmd0aCArIDE7XG4gICAgICB0ZXh0TGluZU9mZnNldHMuc2V0KGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50ICsgaSArIDEsIGxpbmVPZmZzZXQpO1xuICAgICAgbGFzdFRleHRMaW5lT2Zmc2V0ID0gbGluZU9mZnNldDtcbiAgICB9XG5cbiAgICBjb25zdCBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0TGluZXMgPSB0ZXh0TGluZXMubWFwKChsaW5lLCBpbmRleCkgPT4gYXBwcm94aW1hdGVTZWN0aW9uSW5mby5saW5lU3RhcnQgPD0gaW5kZXggJiYgaW5kZXggPD0gYXBwcm94aW1hdGVTZWN0aW9uSW5mby5saW5lRW5kID8gbGluZSA6ICcnKTtcbiAgICBjb25zdCBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0ID0gcG90ZW50aWFsQ29kZUJsb2NrVGV4dExpbmVzLmpvaW4oJ1xcbicpO1xuXG4gICAgY29uc3QgUkVHX0VYUCA9IC8oPzw9XnxcXG4pKD88TGluZVByZWZpeD4gezAsM30oPzo+IHsxLDN9KSopKD88Q29kZUJsb2NrU3RhcnREZWxpbWl0ZXI+KD88Q29kZUJsb2NrU3RhcnREZWxpbWl0ZXJDaGFyPltgfl0pKD86XFxrPENvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyQ2hhcj57Mix9KSkoPzxDb2RlQmxvY2tMYW5ndWFnZT5cXFMqKSg/OlsgXFx0XSg/PENvZGVCbG9ja0FyZ3M+Lio/KSk/KD86XFxuKD88Q29kZUJsb2NrQ29udGVudD4oPzpcXG4/XFxrPExpbmVQcmVmaXg+LiopKz8pKT9cXG5cXGs8TGluZVByZWZpeD4oPzxDb2RlQmxvY2tFbmREZWxpbWl0ZXI+XFxrPENvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyPlxcazxDb2RlQmxvY2tTdGFydERlbGltaXRlckNoYXI+KilbIFxcdF0qKD89XFxufCQpL2c7XG5cbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIHBvdGVudGlhbENvZGVCbG9ja1RleHQubWF0Y2hBbGwoUkVHX0VYUCkpIHtcbiAgICAgIGlmICghaXNTdWl0YWJsZUNvZGVCbG9jayhtYXRjaCwgbGFuZ3VhZ2UsIHNvdXJjZUxmLCBpc0luQ2FsbG91dCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXJrZG93bkluZm8pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBtYXJrZG93bkluZm8gPSBjcmVhdGVNYXJrZG93bkluZm9Gcm9tTWF0Y2goe1xuICAgICAgICBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLFxuICAgICAgICBsaW5lc0JlZm9yZVNlY3Rpb25Db3VudCxcbiAgICAgICAgbWF0Y2gsXG4gICAgICAgIG5vdGVDb250ZW50LFxuICAgICAgICBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0LFxuICAgICAgICBzb3VyY2VMaW5lc0NvdW50OiBzb3VyY2VMaW5lcy5sZW5ndGgsXG4gICAgICAgIHRleHRMaW5lT2Zmc2V0c1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFtYXJrZG93bkluZm8pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm90ZUNvbnRlbnRMZiA9PT0gbm90ZUNvbnRlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsZk9mZnNldE1hcHBlciA9IGdldExmTm9ybWFsaXplZE9mZnNldFRvT3JpZ2luYWxPZmZzZXRNYXBwZXIobm90ZUNvbnRlbnQpO1xuICAgIG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5vZmZzZXQgPSBsZk9mZnNldE1hcHBlcihtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuc3RhcnQub2Zmc2V0KTtcbiAgICBtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuZW5kLm9mZnNldCA9IGxmT2Zmc2V0TWFwcGVyKG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5lbmQub2Zmc2V0KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1hcmtkb3duSW5mbztcbn1cblxuLyoqXG4gKiBJbnNlcnRzIHRleHQgYWZ0ZXIgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBJbnRlbnRpb25hbGx5IHNoYXJlcyBJbnNlcnRDb2RlQmxvY2tQYXJhbXMgd2l0aCBpbnNlcnRCZWZvcmVDb2RlQmxvY2suXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zZXJ0QWZ0ZXJDb2RlQmxvY2socGFyYW1zOiBJbnNlcnRDb2RlQmxvY2tQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBhcHAsIGN0eCwgbGluZU9mZnNldCA9IDAsIHRleHQgfSA9IHBhcmFtcztcblxuICBhd2FpdCBwcm9jZXNzKGFwcCwgY3R4LnNvdXJjZVBhdGgsIGFzeW5jICh7IGNvbnRlbnQgfSkgPT4ge1xuICAgIGNvbnN0IG1hcmtkb3duSW5mbyA9IGF3YWl0IGdldENvZGVCbG9ja01hcmtkb3duSW5mbyhwYXJhbXMpO1xuICAgIGFzc2VydE5vbk51bGxhYmxlKG1hcmtkb3duSW5mbywgJ0NvdWxkIG5vdCB1bmlxdWVseSBpZGVudGlmeSB0aGUgY29kZSBibG9jay4nKTtcblxuICAgIGlmIChjb250ZW50ICE9PSBtYXJrZG93bkluZm8ubm90ZUNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGluc2VydExpbmVJbmRleCA9IG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5lbmQubGluZSArIGxpbmVPZmZzZXQgKyAxO1xuICAgIHJldHVybiBpbnNlcnRUZXh0KGNvbnRlbnQsIGluc2VydExpbmVJbmRleCwgdGV4dCwgcGFyYW1zLnNob3VsZFByZXNlcnZlTGluZVByZWZpeCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEluc2VydHMgdGV4dCBiZWZvcmUgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBJbnRlbnRpb25hbGx5IHNoYXJlcyBJbnNlcnRDb2RlQmxvY2tQYXJhbXMgd2l0aCBpbnNlcnRBZnRlckNvZGVCbG9jay5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnNlcnRCZWZvcmVDb2RlQmxvY2socGFyYW1zOiBJbnNlcnRDb2RlQmxvY2tQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBhcHAsIGN0eCwgbGluZU9mZnNldCA9IDAsIHRleHQgfSA9IHBhcmFtcztcblxuICBhd2FpdCBwcm9jZXNzKGFwcCwgY3R4LnNvdXJjZVBhdGgsIGFzeW5jICh7IGNvbnRlbnQgfSkgPT4ge1xuICAgIGNvbnN0IG1hcmtkb3duSW5mbyA9IGF3YWl0IGdldENvZGVCbG9ja01hcmtkb3duSW5mbyhwYXJhbXMpO1xuICAgIGlmICghbWFya2Rvd25JbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCB1bmlxdWVseSBpZGVudGlmeSB0aGUgY29kZSBibG9jay4nKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGVudCAhPT0gbWFya2Rvd25JbmZvLm5vdGVDb250ZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBpbnNlcnRMaW5lSW5kZXggPSBtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuc3RhcnQubGluZSAtIGxpbmVPZmZzZXQ7XG4gICAgcmV0dXJuIGluc2VydFRleHQoY29udGVudCwgaW5zZXJ0TGluZUluZGV4LCB0ZXh0LCBwYXJhbXMuc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4KTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgY29kZSBibG9jay5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbW92ZUNvZGVCbG9jayhwYXJhbXM6IFJlbW92ZUNvZGVCbG9ja1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCByZXBsYWNlQ29kZUJsb2NrKHtcbiAgICAuLi5wYXJhbXMsXG4gICAgY29kZUJsb2NrUHJvdmlkZXI6ICcnLFxuICAgIHNob3VsZEtlZXBHYXBXaGVuRW1wdHk6IHBhcmFtcy5zaG91bGRLZWVwR2FwID8/IGZhbHNlXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwbGFjZUNvZGVCbG9jayhwYXJhbXM6IFJlcGxhY2VDb2RlQmxvY2tQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBhcHAsIGNvZGVCbG9ja1Byb3ZpZGVyLCBjdHggfSA9IHBhcmFtcztcbiAgcGFyYW1zLmFib3J0U2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGF3YWl0IHByb2Nlc3MoYXBwLCBjdHguc291cmNlUGF0aCwgYXN5bmMgKHsgYWJvcnRTaWduYWwsIGNvbnRlbnQgfSkgPT4ge1xuICAgIGFib3J0U2lnbmFsID0gYWJvcnRTaWduYWxBbnkoYWJvcnRTaWduYWwsIHBhcmFtcy5hYm9ydFNpZ25hbCk7XG4gICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICBjb25zdCBtYXJrZG93bkluZm8gPSBhd2FpdCBnZXRDb2RlQmxvY2tNYXJrZG93bkluZm8ocGFyYW1zKTtcbiAgICBpZiAoIW1hcmtkb3duSW5mbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGNvZGUgYmxvY2suJyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQgIT09IG1hcmtkb3duSW5mby5ub3RlQ29udGVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IG9sZENvZGVCbG9jayA9IGNvbnRlbnQuc2xpY2UobWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLnN0YXJ0Lm9mZnNldCwgbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLmVuZC5vZmZzZXQpO1xuICAgIGlmIChwYXJhbXMuc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4KSB7XG4gICAgICBvbGRDb2RlQmxvY2sgPSB1bmluZGVudChvbGRDb2RlQmxvY2ssIG1hcmtkb3duSW5mby5saW5lUHJlZml4KTtcbiAgICB9XG5cbiAgICBsZXQgbmV3Q29kZUJsb2NrID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNvZGVCbG9ja1Byb3ZpZGVyLCB7IGFib3J0U2lnbmFsLCBjb250ZW50OiBvbGRDb2RlQmxvY2sgfSk7XG4gICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICBpZiAoKG5ld0NvZGVCbG9jayB8fCBwYXJhbXMuc2hvdWxkS2VlcEdhcFdoZW5FbXB0eSkgJiYgcGFyYW1zLnNob3VsZFByZXNlcnZlTGluZVByZWZpeCkge1xuICAgICAgbmV3Q29kZUJsb2NrID0gaW5kZW50KG5ld0NvZGVCbG9jaywgbWFya2Rvd25JbmZvLmxpbmVQcmVmaXgpO1xuICAgIH1cblxuICAgIGNvbnN0IHRleHRCZWZvcmVDb2RlQmxvY2sgPSBjb250ZW50LnNsaWNlKDAsIG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5vZmZzZXQpO1xuICAgIGNvbnN0IHRleHRBZnRlckNvZGVCbG9jayA9IGNvbnRlbnQuc2xpY2UobWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLmVuZC5vZmZzZXQpO1xuXG4gICAgaWYgKG5ld0NvZGVCbG9jayB8fCBwYXJhbXMuc2hvdWxkS2VlcEdhcFdoZW5FbXB0eSkge1xuICAgICAgcmV0dXJuIGAke3RleHRCZWZvcmVDb2RlQmxvY2t9JHtuZXdDb2RlQmxvY2t9JHt0ZXh0QWZ0ZXJDb2RlQmxvY2t9YDtcbiAgICB9XG5cbiAgICBpZiAoIXRleHRCZWZvcmVDb2RlQmxvY2sgJiYgIXRleHRBZnRlckNvZGVCbG9jaykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmICh0ZXh0QmVmb3JlQ29kZUJsb2NrKSB7XG4gICAgICByZXR1cm4gYCR7dGV4dEJlZm9yZUNvZGVCbG9jay5zbGljZSgwLCAtMSl9JHt0ZXh0QWZ0ZXJDb2RlQmxvY2t9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7dGV4dEJlZm9yZUNvZGVCbG9ja30ke3RleHRBZnRlckNvZGVCbG9jay5zbGljZSgxKX1gO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTWFya2Rvd25JbmZvRnJvbU1hdGNoKHBhcmFtczogQ3JlYXRlTWFya2Rvd25JbmZvRnJvbU1hdGNoUGFyYW1zKTogQ29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbiB7XG4gIGNvbnN0IHtcbiAgICBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLFxuICAgIGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50LFxuICAgIG1hdGNoLFxuICAgIG5vdGVDb250ZW50LFxuICAgIHBvdGVudGlhbENvZGVCbG9ja1RleHQsXG4gICAgc291cmNlTGluZXNDb3VudCxcbiAgICB0ZXh0TGluZU9mZnNldHNcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBsaW5lUHJlZml4ID0gbWF0Y2guZ3JvdXBzPy5bJ0xpbmVQcmVmaXgnXSA/PyAnJztcbiAgY29uc3QgY29kZUJsb2NrU3RhcnREZWxpbWl0ZXIgPSBtYXRjaC5ncm91cHM/LlsnQ29kZUJsb2NrU3RhcnREZWxpbWl0ZXInXSA/PyAnJztcbiAgY29uc3QgY29kZUJsb2NrRW5kRGVsaW1pdGVyID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja0VuZERlbGltaXRlciddID8/ICcnO1xuICBjb25zdCBjb2RlQmxvY2tBcmdzU3RyID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja0FyZ3MnXSA/PyAnJztcbiAgY29uc3QgbGFuZ3VhZ2UgPSBtYXRjaC5ncm91cHM/LlsnQ29kZUJsb2NrTGFuZ3VhZ2UnXSA/PyAnJztcblxuICBjb25zdCBwcmV2aW91c1RleHQgPSBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0LnNsaWNlKDAsIG1hdGNoLmluZGV4KTtcbiAgY29uc3QgcHJldmlvdXNUZXh0TGluZXNDb3VudCA9IHByZXZpb3VzVGV4dC5zcGxpdCgnXFxuJykubGVuZ3RoIC0gMTtcblxuICBjb25zdCBzdGFydExpbmUgPSBsaW5lc0JlZm9yZVNlY3Rpb25Db3VudCArIHByZXZpb3VzVGV4dExpbmVzQ291bnQ7XG4gIGNvbnN0IGVuZExpbmUgPSBzdGFydExpbmUgKyBzb3VyY2VMaW5lc0NvdW50ICsgMTtcblxuICByZXR1cm4ge1xuICAgIGFyZ3M6IGNvZGVCbG9ja0FyZ3NTdHIuc3BsaXQoL1xccysvKS5maWx0ZXIoQm9vbGVhbiksXG4gICAgZW5kRGVsaW1pdGVyOiBjb2RlQmxvY2tFbmREZWxpbWl0ZXIsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbGluZVByZWZpeCxcbiAgICBub3RlQ29udGVudCxcbiAgICBwb3NpdGlvbkluTm90ZToge1xuICAgICAgZW5kOiB7XG4gICAgICAgIGNvbDogKHRleHRMaW5lT2Zmc2V0cy5nZXQoZW5kTGluZSArIDEpID8/IDApIC0gKHRleHRMaW5lT2Zmc2V0cy5nZXQoZW5kTGluZSkgPz8gMCkgLSAxLFxuICAgICAgICBsaW5lOiBlbmRMaW5lLFxuICAgICAgICBvZmZzZXQ6ICh0ZXh0TGluZU9mZnNldHMuZ2V0KGVuZExpbmUgKyAxKSA/PyAwKSAtIDFcbiAgICAgIH0sXG4gICAgICBzdGFydDoge1xuICAgICAgICBjb2w6IDAsXG4gICAgICAgIGxpbmU6IHN0YXJ0TGluZSxcbiAgICAgICAgb2Zmc2V0OiB0ZXh0TGluZU9mZnNldHMuZ2V0KHN0YXJ0TGluZSkgPz8gMFxuICAgICAgfVxuICAgIH0sXG4gICAgcmF3QXJnc1N0cjogY29kZUJsb2NrQXJnc1N0cixcbiAgICBzZWN0aW9uSW5mbzoge1xuICAgICAgbGluZUVuZDogcHJldmlvdXNUZXh0TGluZXNDb3VudCArIHNvdXJjZUxpbmVzQ291bnQgKyAxLFxuICAgICAgbGluZVN0YXJ0OiBwcmV2aW91c1RleHRMaW5lc0NvdW50LFxuICAgICAgdGV4dDogYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0XG4gICAgfSxcbiAgICBzdGFydERlbGltaXRlcjogY29kZUJsb2NrU3RhcnREZWxpbWl0ZXJcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VGcm9tRWxlbWVudChlbDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICBjb25zdCBCTE9DS19MQU5HVUFHRV9QUkVGSVggPSAnYmxvY2stbGFuZ3VhZ2UtJztcbiAgcmV0dXJuIEFycmF5LmZyb20oZWwuY2xhc3NMaXN0KS5maW5kKChjbHMpID0+IGNscy5zdGFydHNXaXRoKEJMT0NLX0xBTkdVQUdFX1BSRUZJWCkpPy5zbGljZShCTE9DS19MQU5HVUFHRV9QUkVGSVgubGVuZ3RoKSA/PyAnJztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0VGV4dChjb250ZW50OiBzdHJpbmcsIGluc2VydExpbmVJbmRleDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIHNob3VsZFByZXNlcnZlTGluZVByZWZpeD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBuZXdMaW5lcyA9IGxpbmVzLnNsaWNlKCk7XG4gIGNvbnN0IHRleHRMaW5lcyA9IHRleHQuc3BsaXQoJ1xcbicpO1xuXG4gIGlmIChpbnNlcnRMaW5lSW5kZXggPCAwKSB7XG4gICAgaW5zZXJ0TGluZUluZGV4ID0gMDtcbiAgfVxuICBpZiAoaW5zZXJ0TGluZUluZGV4ID4gbGluZXMubGVuZ3RoKSB7XG4gICAgaW5zZXJ0TGluZUluZGV4ID0gbGluZXMubGVuZ3RoO1xuICB9XG5cbiAgY29uc3QgUFJFRklYX0xJTkVfUkVHX0VYUCA9IC9eIHswLDN9KD86PiB7MSwzfSkqL2c7XG4gIGNvbnN0IG1hdGNoID0gKGxpbmVzW2luc2VydExpbmVJbmRleF0gPz8gJycpLm1hdGNoKFBSRUZJWF9MSU5FX1JFR19FWFApO1xuICBjb25zdCBsaW5lUHJlZml4ID0gbWF0Y2g/LlswXSA/PyAnJztcbiAgbmV3TGluZXMuc3BsaWNlKGluc2VydExpbmVJbmRleCwgMCwgLi4uKHNob3VsZFByZXNlcnZlTGluZVByZWZpeCA/IHRleHRMaW5lcy5tYXAoKGxpbmUpID0+IGluZGVudChsaW5lLCBsaW5lUHJlZml4KSkgOiB0ZXh0TGluZXMpKTtcbiAgcmV0dXJuIG5ld0xpbmVzLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBpc1N1aXRhYmxlQ29kZUJsb2NrKFxuICBtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSxcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgc291cmNlTGY6IHN0cmluZyxcbiAgaXNJbkNhbGxvdXQ6IGJvb2xlYW5cbik6IGJvb2xlYW4ge1xuICBjb25zdCBjb2RlQmxvY2tMYW5ndWFnZSA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tMYW5ndWFnZSddID8/ICcnO1xuICBpZiAoY29kZUJsb2NrTGFuZ3VhZ2UgIT09IGxhbmd1YWdlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgbGluZVByZWZpeCA9IG1hdGNoLmdyb3Vwcz8uWydMaW5lUHJlZml4J10gPz8gJyc7XG5cbiAgaWYgKGlzSW5DYWxsb3V0ICYmICFsaW5lUHJlZml4LmluY2x1ZGVzKCc+ICcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29kZUJsb2NrQ29udGVudCA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tDb250ZW50J10gPz8gJyc7XG4gIGNvbnN0IGNsZWFuQ29kZUJsb2NrQ29udGVudCA9IGNvZGVCbG9ja0NvbnRlbnQuc3BsaXQoJ1xcbicpLm1hcCgobGluZSkgPT4gbGluZS5zbGljZShsaW5lUHJlZml4Lmxlbmd0aCkpLmpvaW4oJ1xcbicpO1xuXG4gIHJldHVybiBjbGVhbkNvZGVCbG9ja0NvbnRlbnQgPT09IHNvdXJjZUxmO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxrQ0FBa0M7QUFDM0M7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLHFCQUFxQjtBQUM5QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFrR1AsZUFBc0IseUJBQXlCLFFBQXNGO0FBQ25JLFFBQU0sRUFBRSxLQUFLLEtBQUssSUFBSSxPQUFPLElBQUk7QUFFakMsUUFBTSxhQUFhLGNBQWMsS0FBSyxJQUFJLFVBQVU7QUFDcEQsb0JBQWtCLFlBQVksZUFBZSxJQUFJLFVBQVUsYUFBYTtBQUV4RSxRQUFNLDJCQUEyQjtBQUNqQyxRQUFNLFNBQVMsS0FBSyxVQUFVO0FBRTlCLE1BQUksZUFBb0Q7QUFFeEQsUUFBTSx5QkFBeUIsS0FBSyxZQUFZLENBQUMsZ0JBQWdCO0FBQy9ELFVBQU0sZ0JBQWdCLGdCQUFnQixXQUFXO0FBRWpELFVBQU0seUJBQXFEO0FBQUEsTUFDekQsU0FBUyxjQUFjLE1BQU0sSUFBSSxFQUFFLFNBQVM7QUFBQSxNQUM1QyxXQUFXO0FBQUEsTUFDWCxNQUFNO0FBQUEsSUFDUjtBQUVBLDJCQUF1QixPQUFPLGdCQUFnQix1QkFBdUIsSUFBSTtBQUN6RSxVQUFNLFdBQVcsZ0JBQWdCLE1BQU07QUFFdkMsUUFBSSxDQUFDLG9CQUFvQixlQUFlLHVCQUF1QixJQUFJLEdBQUc7QUFDcEU7QUFBQSxJQUNGO0FBRUEsVUFBTSxnQkFBZ0IsY0FBYyxRQUFRLHVCQUF1QixJQUFJ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
@@ -21,6 +21,51 @@ if you want to view the source, please visit the github repository of this plugi
21
21
  globalThis.process = browserProcess;
22
22
  })();
23
23
 
24
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
25
+ var __typeError = (msg) => {
26
+ throw TypeError(msg);
27
+ };
28
+ var __using = (stack, value, async) => {
29
+ if (value != null) {
30
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
31
+ var dispose, inner;
32
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
33
+ if (dispose === void 0) {
34
+ dispose = value[__knownSymbol("dispose")];
35
+ if (async) inner = dispose;
36
+ }
37
+ if (typeof dispose !== "function") __typeError("Object not disposable");
38
+ if (inner) dispose = function() {
39
+ try {
40
+ inner.call(this);
41
+ } catch (e) {
42
+ return Promise.reject(e);
43
+ }
44
+ };
45
+ stack.push([async, dispose, value]);
46
+ } else if (async) {
47
+ stack.push([async]);
48
+ }
49
+ return value;
50
+ };
51
+ var __callDispose = (stack, error, hasError) => {
52
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
53
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
54
+ };
55
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
56
+ var next = (it) => {
57
+ while (it = stack.pop()) {
58
+ try {
59
+ var result = it[1] && it[1].call(it[2]);
60
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
61
+ } catch (e) {
62
+ fail(e);
63
+ }
64
+ }
65
+ if (hasError) throw error;
66
+ };
67
+ return next();
68
+ };
24
69
  import { InternalPluginName } from "@obsidian-typings/obsidian-public-latest/implementations";
25
70
  import {
26
71
  Component,
@@ -71,34 +116,41 @@ class FixedZIndexDomEventsHandlersInfo {
71
116
  }
72
117
  }
73
118
  async function fullRender(params) {
74
- const sourcePath = params.sourcePath ?? "/";
75
- let shouldUnloadComponent = false;
76
- let component;
77
- if (params.component) {
78
- component = params.component;
79
- } else {
80
- component = new Component();
81
- component.load();
82
- shouldUnloadComponent = true;
83
- }
84
- using patch = component.addChild(new MonkeyAroundComponent());
85
- patch.registerMethodPatch({
86
- methodName: "md",
87
- obj: params.app.embedRegistry.embedByExtension,
88
- patchHandler: ({
89
- fallback,
90
- originalArgs: [context]
91
- }) => {
92
- context.displayMode = false;
93
- return fallback();
119
+ var _stack = [];
120
+ try {
121
+ const sourcePath = params.sourcePath ?? "/";
122
+ let shouldUnloadComponent = false;
123
+ let component;
124
+ if (params.component) {
125
+ component = params.component;
126
+ } else {
127
+ component = new Component();
128
+ component.load();
129
+ shouldUnloadComponent = true;
94
130
  }
95
- });
96
- await MarkdownRenderer.render(params.app, params.markdown, params.el, sourcePath, component);
97
- if (shouldUnloadComponent) {
98
- component.unload();
99
- }
100
- if (params.shouldRegisterLinkHandlers) {
101
- await registerLinkHandlers(params.app, params.el, params.sourcePath);
131
+ const patch = __using(_stack, component.addChild(new MonkeyAroundComponent()));
132
+ patch.registerMethodPatch({
133
+ methodName: "md",
134
+ obj: params.app.embedRegistry.embedByExtension,
135
+ patchHandler: ({
136
+ fallback,
137
+ originalArgs: [context]
138
+ }) => {
139
+ context.displayMode = false;
140
+ return fallback();
141
+ }
142
+ });
143
+ await MarkdownRenderer.render(params.app, params.markdown, params.el, sourcePath, component);
144
+ if (shouldUnloadComponent) {
145
+ component.unload();
146
+ }
147
+ if (params.shouldRegisterLinkHandlers) {
148
+ await registerLinkHandlers(params.app, params.el, params.sourcePath);
149
+ }
150
+ } catch (_) {
151
+ var _error = _, _hasError = true;
152
+ } finally {
153
+ __callDispose(_stack, _error, _hasError);
102
154
  }
103
155
  }
104
156
  async function markdownToHtml(app, markdown, sourcePath) {
@@ -164,4 +216,4 @@ export {
164
216
  renderExternalLink,
165
217
  renderInternalLink
166
218
  };
167
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgTWFya2Rvd24gY29udGVudCBpbiBPYnNpZGlhbi5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIERvbUV2ZW50c0hhbmRsZXJzLFxuICBEb21FdmVudHNIYW5kbGVyc0luZm9cbn0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5pbXBvcnQgdHlwZSB7IEV4dHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QvaW1wbGVtZW50YXRpb25zJztcbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBJbnRlcm5hbFBsdWdpbk5hbWUgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEhvdmVyUG9wb3ZlcixcbiAgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIsXG4gIE1hcmtkb3duUmVuZGVyZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBhdGhPckFic3RyYWN0RmlsZSB9IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuXG5pbXBvcnQgeyBnZXRaSW5kZXggfSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgTW9ua2V5QXJvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9ycy9nZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7XG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0UGF0aCxcbiAgaXNGb2xkZXJcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbnR5cGUgRG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvciA9IEV4dHJhY3RDb25zdHJ1Y3RvcjxEb21FdmVudHNIYW5kbGVycz47XG5cbmxldCBkb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yOiBEb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yIHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogVGhlIHBhcmFtcyBmb3IgdGhlIGZ1bGwgcmVuZGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxSZW5kZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29tcG9uZW50IGluc3RhbmNlIHRvIHVzZSBmb3IgdGhlIHJlbmRlci5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBvbmVudD86IENvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIEhUTUxFbGVtZW50IHRvIHJlbmRlciB0by5cbiAgICovXG4gIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIE1hcmtkb3duIHN0cmluZyB0byByZW5kZXIuXG4gICAqL1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlZ2lzdGVyIGxpbmsgaGFuZGxlcnMgZm9yIHRoZSByZW5kZXJlZCBlbGVtZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVnaXN0ZXJMaW5rSGFuZGxlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIHBhdGggdG8gcmVzb2x2ZSByZWxhdGl2ZSBsaW5rcy5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBGaXhlZFpJbmRleERvbUV2ZW50c0hhbmRsZXJzSW5mb0NvbnN0cnVjdG9yUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5jbGFzcyBGaXhlZFpJbmRleERvbUV2ZW50c0hhbmRsZXJzSW5mbyBpbXBsZW1lbnRzIERvbUV2ZW50c0hhbmRsZXJzSW5mbyB7XG4gIHB1YmxpYyByZWFkb25seSBhcHA6IEFwcDtcbiAgcHVibGljIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcbiAgcHVibGljIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IGhvdmVyUG9wb3ZlcigpOiBIb3ZlclBvcG92ZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faG92ZXJQb3BvdmVyO1xuICB9XG5cbiAgcHVibGljIHNldCBob3ZlclBvcG92ZXIoaG92ZXJQb3BvdmVyOiBIb3ZlclBvcG92ZXIgfCBudWxsKSB7XG4gICAgdGhpcy5faG92ZXJQb3BvdmVyID0gaG92ZXJQb3BvdmVyO1xuICAgIGlmIChob3ZlclBvcG92ZXIgJiYgdGhpcy56SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgaG92ZXJQb3BvdmVyLmhvdmVyRWwuc2V0Q3NzU3R5bGVzKHtcbiAgICAgICAgekluZGV4OiBTdHJpbmcodGhpcy56SW5kZXgpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9ob3ZlclBvcG92ZXI6IEhvdmVyUG9wb3ZlciB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgekluZGV4PzogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IEZpeGVkWkluZGV4RG9tRXZlbnRzSGFuZGxlcnNJbmZvQ29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5wYXRoID0gcGFyYW1zLnBhdGg7XG4gICAgdGhpcy5lbCA9IHBhcmFtcy5lbDtcblxuICAgIGlmICh0aGlzLmVsLmlzQ29ubmVjdGVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZVpJbmRleCh0aGlzLmVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbC5vbk5vZGVJbnNlcnRlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlWkluZGV4KHRoaXMuZWwpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVaSW5kZXgoZWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy56SW5kZXggPSBnZXRaSW5kZXgoZWwpICsgMTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgbWFya2Rvd24gYW5kIGVtYmVkcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdWxsIHJlbmRlci5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmdWxsIHJlbmRlciBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZ1bGxSZW5kZXIocGFyYW1zOiBGdWxsUmVuZGVyUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHNvdXJjZVBhdGggPSBwYXJhbXMuc291cmNlUGF0aCA/PyAnLyc7XG4gIGxldCBzaG91bGRVbmxvYWRDb21wb25lbnQgPSBmYWxzZTtcbiAgbGV0IGNvbXBvbmVudDogQ29tcG9uZW50O1xuICBpZiAocGFyYW1zLmNvbXBvbmVudCkge1xuICAgIGNvbXBvbmVudCA9IHBhcmFtcy5jb21wb25lbnQ7XG4gIH0gZWxzZSB7XG4gICAgY29tcG9uZW50ID0gbmV3IENvbXBvbmVudCgpO1xuICAgIGNvbXBvbmVudC5sb2FkKCk7XG4gICAgc2hvdWxkVW5sb2FkQ29tcG9uZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHVzaW5nIHBhdGNoID0gY29tcG9uZW50LmFkZENoaWxkKG5ldyBNb25rZXlBcm91bmRDb21wb25lbnQoKSk7XG5cbiAgcGF0Y2gucmVnaXN0ZXJNZXRob2RQYXRjaCh7XG4gICAgbWV0aG9kTmFtZTogJ21kJyxcbiAgICBvYmo6IHBhcmFtcy5hcHAuZW1iZWRSZWdpc3RyeS5lbWJlZEJ5RXh0ZW5zaW9uLFxuICAgIHBhdGNoSGFuZGxlcjogKHtcbiAgICAgIGZhbGxiYWNrLFxuICAgICAgb3JpZ2luYWxBcmdzOiBbY29udGV4dF1cbiAgICB9KSA9PiB7XG4gICAgICBjb250ZXh0LmRpc3BsYXlNb2RlID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsbGJhY2soKTtcbiAgICB9XG4gIH0pO1xuXG4gIGF3YWl0IE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBhcmFtcy5hcHAsIHBhcmFtcy5tYXJrZG93biwgcGFyYW1zLmVsLCBzb3VyY2VQYXRoLCBjb21wb25lbnQpO1xuXG4gIGlmIChzaG91bGRVbmxvYWRDb21wb25lbnQpIHtcbiAgICBjb21wb25lbnQudW5sb2FkKCk7XG4gIH1cblxuICBpZiAocGFyYW1zLnNob3VsZFJlZ2lzdGVyTGlua0hhbmRsZXJzKSB7XG4gICAgYXdhaXQgcmVnaXN0ZXJMaW5rSGFuZGxlcnMocGFyYW1zLmFwcCwgcGFyYW1zLmVsLCBwYXJhbXMuc291cmNlUGF0aCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBNYXJrZG93biB0byBIVE1MLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIG1hcmtkb3duIC0gVGhlIE1hcmtkb3duIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHBhcmFtIHNvdXJjZVBhdGggLSAob3B0aW9uYWwpIFRoZSBzb3VyY2UgcGF0aCB0byByZXNvbHZlIHJlbGF0aXZlIGxpbmtzLlxuICogQHJldHVybnMgVGhlIEhUTUwgc3RyaW5nLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFya2Rvd25Ub0h0bWwoYXBwOiBBcHAsIG1hcmtkb3duOiBzdHJpbmcsIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjb21wb25lbnQgPSBuZXcgQ29tcG9uZW50KCk7XG4gIGNvbXBvbmVudC5sb2FkKCk7XG4gIGNvbnN0IHJlbmRlckRpdiA9IGNyZWF0ZURpdigpO1xuICBhd2FpdCBNYXJrZG93blJlbmRlcmVyLnJlbmRlcihhcHAsIG1hcmtkb3duLCByZW5kZXJEaXYsIHNvdXJjZVBhdGggPz8gJycsIGNvbXBvbmVudCk7XG4gIGNvbnN0IGh0bWwgPSByZW5kZXJEaXYuaW5uZXJIVE1MO1xuICBjb21wb25lbnQudW5sb2FkKCk7XG4gIHJldHVybiBodG1sO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBsaW5rIGhhbmRsZXJzIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MRWxlbWVudCB0byByZWdpc3RlciBsaW5rIGhhbmRsZXJzIGZvci5cbiAqIEBwYXJhbSBzb3VyY2VQYXRoIC0gVGhlIHNvdXJjZSBwYXRoIHRvIHJlc29sdmUgcmVsYXRpdmUgbGlua3MgZnJvbS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyTGlua0hhbmRsZXJzKGFwcDogQXBwLCBlbDogSFRNTEVsZW1lbnQsIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXMgLS0gTm8gcmFjZSBjb25kaXRpb24uXG4gIGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgPz89IGF3YWl0IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IoYXBwKTtcbiAgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIucmVnaXN0ZXJEb21FdmVudHMoXG4gICAgZWwsXG4gICAgbmV3IGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IoXG4gICAgICBuZXcgRml4ZWRaSW5kZXhEb21FdmVudHNIYW5kbGVyc0luZm8oe1xuICAgICAgICBhcHAsXG4gICAgICAgIGVsLFxuICAgICAgICBwYXRoOiBzb3VyY2VQYXRoID8/ICcnXG4gICAgICB9KVxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGFuIGV4dGVybmFsIGxpbmsuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gdXJsIC0gVGhlIFVSTCB0byByZW5kZXIgdGhlIGV4dGVybmFsIGxpbmsgZm9yLlxuICogQHBhcmFtIGRpc3BsYXlUZXh0IC0gVGhlIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIGV4dGVybmFsIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgSFRNTEFuY2hvckVsZW1lbnQgY29udGFpbmluZyB0aGUgcmVuZGVyZWQgZXh0ZXJuYWwgbGluay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckV4dGVybmFsTGluayhhcHA6IEFwcCwgdXJsOiBzdHJpbmcsIGRpc3BsYXlUZXh0Pzogc3RyaW5nKTogUHJvbWlzZTxIVE1MQW5jaG9yRWxlbWVudD4ge1xuICBkaXNwbGF5VGV4dCA/Pz0gdXJsO1xuICBjb25zdCB3cmFwcGVyRWwgPSBjcmVhdGVTcGFuKCk7XG4gIGF3YWl0IGZ1bGxSZW5kZXIoe1xuICAgIGFwcCxcbiAgICBlbDogd3JhcHBlckVsLFxuICAgIG1hcmtkb3duOiBgWyR7ZGlzcGxheVRleHR9XSgke3VybH0pYFxuICB9KTtcbiAgY29uc3QgYUVsID0gd3JhcHBlckVsLmZpbmQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgYXdhaXQgcmVnaXN0ZXJMaW5rSGFuZGxlcnMoYXBwLCBhRWwpO1xuICByZXR1cm4gYUVsO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gaW50ZXJuYWwgbGluay5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JBYnN0cmFjdEZpbGUgLSBUaGUgcGF0aCBvciBhYnN0cmFjdCBmaWxlIHRvIHJlbmRlciB0aGUgaW50ZXJuYWwgbGluayBmb3IuXG4gKiBAcGFyYW0gZGlzcGxheVRleHQgLSBUaGUgdGV4dCB0byBkaXNwbGF5IGZvciB0aGUgaW50ZXJuYWwgbGluay5cbiAqIEByZXR1cm5zIFRoZSBIVE1MQW5jaG9yRWxlbWVudCBjb250YWluaW5nIHRoZSByZW5kZXJlZCBpbnRlcm5hbCBsaW5rLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVySW50ZXJuYWxMaW5rKGFwcDogQXBwLCBwYXRoT3JBYnN0cmFjdEZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSwgZGlzcGxheVRleHQ/OiBzdHJpbmcpOiBQcm9taXNlPEhUTUxBbmNob3JFbGVtZW50PiB7XG4gIGNvbnN0IGFic3RyYWN0RmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGhPckFic3RyYWN0RmlsZSk7XG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKGFwcCwgcGF0aE9yQWJzdHJhY3RGaWxlKTtcbiAgZGlzcGxheVRleHQgPz89IHBhdGg7XG4gIGlmIChpc0ZvbGRlcihhYnN0cmFjdEZpbGUpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsKCdhJywgeyB0ZXh0OiBkaXNwbGF5VGV4dCB9LCAoYUVsKSA9PiB7XG4gICAgICBhRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZ0KSA9PiB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBhcHAuaW50ZXJuYWxQbHVnaW5zLmdldEVuYWJsZWRQbHVnaW5CeUlkKEludGVybmFsUGx1Z2luTmFtZS5GaWxlRXhwbG9yZXIpPy5yZXZlYWxJbkZvbGRlcihhYnN0cmFjdEZpbGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCB3cmFwcGVyRWwgPSBjcmVhdGVTcGFuKCk7XG4gIGF3YWl0IGZ1bGxSZW5kZXIoe1xuICAgIGFwcCxcbiAgICBlbDogd3JhcHBlckVsLFxuICAgIG1hcmtkb3duOiBgW1ske3BhdGh9fCR7ZGlzcGxheVRleHR9XV1gXG4gIH0pO1xuICBjb25zdCBhRWwgPSB3cmFwcGVyRWwuZmluZCgnYScpIGFzIEhUTUxBbmNob3JFbGVtZW50O1xuICBhd2FpdCByZWdpc3RlckxpbmtIYW5kbGVycyhhcHAsIGFFbCk7XG4gIHJldHVybiBhRWw7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLFNBQVMsMEJBQTBCO0FBQ25DO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHVDQUF1QztBQUNoRDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxJQUFJLCtCQUFvRTtBQTJDeEUsTUFBTSxpQ0FBa0U7QUFBQSxFQUN0RDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFaEIsSUFBVyxlQUFvQztBQUM3QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFQSxJQUFXLGFBQWEsY0FBbUM7QUFDekQsU0FBSyxnQkFBZ0I7QUFDckIsUUFBSSxnQkFBZ0IsS0FBSyxXQUFXLFFBQVc7QUFDN0MsbUJBQWEsUUFBUSxhQUFhO0FBQUEsUUFDaEMsUUFBUSxPQUFPLEtBQUssTUFBTTtBQUFBLE1BQzVCLENBQUM7QUFBQSxJQUNIO0FBQUEs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
219
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgTWFya2Rvd24gY29udGVudCBpbiBPYnNpZGlhbi5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIERvbUV2ZW50c0hhbmRsZXJzLFxuICBEb21FdmVudHNIYW5kbGVyc0luZm9cbn0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5pbXBvcnQgdHlwZSB7IEV4dHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QvaW1wbGVtZW50YXRpb25zJztcbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBJbnRlcm5hbFBsdWdpbk5hbWUgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEhvdmVyUG9wb3ZlcixcbiAgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIsXG4gIE1hcmtkb3duUmVuZGVyZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBhdGhPckFic3RyYWN0RmlsZSB9IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuXG5pbXBvcnQgeyBnZXRaSW5kZXggfSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgTW9ua2V5QXJvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9ycy9nZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7XG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0UGF0aCxcbiAgaXNGb2xkZXJcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbnR5cGUgRG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvciA9IEV4dHJhY3RDb25zdHJ1Y3RvcjxEb21FdmVudHNIYW5kbGVycz47XG5cbmxldCBkb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yOiBEb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yIHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogVGhlIHBhcmFtcyBmb3IgdGhlIGZ1bGwgcmVuZGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxSZW5kZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29tcG9uZW50IGluc3RhbmNlIHRvIHVzZSBmb3IgdGhlIHJlbmRlci5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBvbmVudD86IENvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIEhUTUxFbGVtZW50IHRvIHJlbmRlciB0by5cbiAgICovXG4gIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIE1hcmtkb3duIHN0cmluZyB0byByZW5kZXIuXG4gICAqL1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlZ2lzdGVyIGxpbmsgaGFuZGxlcnMgZm9yIHRoZSByZW5kZXJlZCBlbGVtZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVnaXN0ZXJMaW5rSGFuZGxlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIHBhdGggdG8gcmVzb2x2ZSByZWxhdGl2ZSBsaW5rcy5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBGaXhlZFpJbmRleERvbUV2ZW50c0hhbmRsZXJzSW5mb0NvbnN0cnVjdG9yUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5jbGFzcyBGaXhlZFpJbmRleERvbUV2ZW50c0hhbmRsZXJzSW5mbyBpbXBsZW1lbnRzIERvbUV2ZW50c0hhbmRsZXJzSW5mbyB7XG4gIHB1YmxpYyByZWFkb25seSBhcHA6IEFwcDtcbiAgcHVibGljIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcbiAgcHVibGljIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IGhvdmVyUG9wb3ZlcigpOiBIb3ZlclBvcG92ZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faG92ZXJQb3BvdmVyO1xuICB9XG5cbiAgcHVibGljIHNldCBob3ZlclBvcG92ZXIoaG92ZXJQb3BvdmVyOiBIb3ZlclBvcG92ZXIgfCBudWxsKSB7XG4gICAgdGhpcy5faG92ZXJQb3BvdmVyID0gaG92ZXJQb3BvdmVyO1xuICAgIGlmIChob3ZlclBvcG92ZXIgJiYgdGhpcy56SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgaG92ZXJQb3BvdmVyLmhvdmVyRWwuc2V0Q3NzU3R5bGVzKHtcbiAgICAgICAgekluZGV4OiBTdHJpbmcodGhpcy56SW5kZXgpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9ob3ZlclBvcG92ZXI6IEhvdmVyUG9wb3ZlciB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgekluZGV4PzogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IEZpeGVkWkluZGV4RG9tRXZlbnRzSGFuZGxlcnNJbmZvQ29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5wYXRoID0gcGFyYW1zLnBhdGg7XG4gICAgdGhpcy5lbCA9IHBhcmFtcy5lbDtcblxuICAgIGlmICh0aGlzLmVsLmlzQ29ubmVjdGVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZVpJbmRleCh0aGlzLmVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbC5vbk5vZGVJbnNlcnRlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlWkluZGV4KHRoaXMuZWwpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVaSW5kZXgoZWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy56SW5kZXggPSBnZXRaSW5kZXgoZWwpICsgMTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgbWFya2Rvd24gYW5kIGVtYmVkcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdWxsIHJlbmRlci5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmdWxsIHJlbmRlciBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZ1bGxSZW5kZXIocGFyYW1zOiBGdWxsUmVuZGVyUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHNvdXJjZVBhdGggPSBwYXJhbXMuc291cmNlUGF0aCA/PyAnLyc7XG4gIGxldCBzaG91bGRVbmxvYWRDb21wb25lbnQgPSBmYWxzZTtcbiAgbGV0IGNvbXBvbmVudDogQ29tcG9uZW50O1xuICBpZiAocGFyYW1zLmNvbXBvbmVudCkge1xuICAgIGNvbXBvbmVudCA9IHBhcmFtcy5jb21wb25lbnQ7XG4gIH0gZWxzZSB7XG4gICAgY29tcG9uZW50ID0gbmV3IENvbXBvbmVudCgpO1xuICAgIGNvbXBvbmVudC5sb2FkKCk7XG4gICAgc2hvdWxkVW5sb2FkQ29tcG9uZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHVzaW5nIHBhdGNoID0gY29tcG9uZW50LmFkZENoaWxkKG5ldyBNb25rZXlBcm91bmRDb21wb25lbnQoKSk7XG5cbiAgcGF0Y2gucmVnaXN0ZXJNZXRob2RQYXRjaCh7XG4gICAgbWV0aG9kTmFtZTogJ21kJyxcbiAgICBvYmo6IHBhcmFtcy5hcHAuZW1iZWRSZWdpc3RyeS5lbWJlZEJ5RXh0ZW5zaW9uLFxuICAgIHBhdGNoSGFuZGxlcjogKHtcbiAgICAgIGZhbGxiYWNrLFxuICAgICAgb3JpZ2luYWxBcmdzOiBbY29udGV4dF1cbiAgICB9KSA9PiB7XG4gICAgICBjb250ZXh0LmRpc3BsYXlNb2RlID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsbGJhY2soKTtcbiAgICB9XG4gIH0pO1xuXG4gIGF3YWl0IE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBhcmFtcy5hcHAsIHBhcmFtcy5tYXJrZG93biwgcGFyYW1zLmVsLCBzb3VyY2VQYXRoLCBjb21wb25lbnQpO1xuXG4gIGlmIChzaG91bGRVbmxvYWRDb21wb25lbnQpIHtcbiAgICBjb21wb25lbnQudW5sb2FkKCk7XG4gIH1cblxuICBpZiAocGFyYW1zLnNob3VsZFJlZ2lzdGVyTGlua0hhbmRsZXJzKSB7XG4gICAgYXdhaXQgcmVnaXN0ZXJMaW5rSGFuZGxlcnMocGFyYW1zLmFwcCwgcGFyYW1zLmVsLCBwYXJhbXMuc291cmNlUGF0aCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBNYXJrZG93biB0byBIVE1MLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIG1hcmtkb3duIC0gVGhlIE1hcmtkb3duIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHBhcmFtIHNvdXJjZVBhdGggLSAob3B0aW9uYWwpIFRoZSBzb3VyY2UgcGF0aCB0byByZXNvbHZlIHJlbGF0aXZlIGxpbmtzLlxuICogQHJldHVybnMgVGhlIEhUTUwgc3RyaW5nLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFya2Rvd25Ub0h0bWwoYXBwOiBBcHAsIG1hcmtkb3duOiBzdHJpbmcsIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjb21wb25lbnQgPSBuZXcgQ29tcG9uZW50KCk7XG4gIGNvbXBvbmVudC5sb2FkKCk7XG4gIGNvbnN0IHJlbmRlckRpdiA9IGNyZWF0ZURpdigpO1xuICBhd2FpdCBNYXJrZG93blJlbmRlcmVyLnJlbmRlcihhcHAsIG1hcmtkb3duLCByZW5kZXJEaXYsIHNvdXJjZVBhdGggPz8gJycsIGNvbXBvbmVudCk7XG4gIGNvbnN0IGh0bWwgPSByZW5kZXJEaXYuaW5uZXJIVE1MO1xuICBjb21wb25lbnQudW5sb2FkKCk7XG4gIHJldHVybiBodG1sO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBsaW5rIGhhbmRsZXJzIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MRWxlbWVudCB0byByZWdpc3RlciBsaW5rIGhhbmRsZXJzIGZvci5cbiAqIEBwYXJhbSBzb3VyY2VQYXRoIC0gVGhlIHNvdXJjZSBwYXRoIHRvIHJlc29sdmUgcmVsYXRpdmUgbGlua3MgZnJvbS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyTGlua0hhbmRsZXJzKGFwcDogQXBwLCBlbDogSFRNTEVsZW1lbnQsIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXMgLS0gTm8gcmFjZSBjb25kaXRpb24uXG4gIGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgPz89IGF3YWl0IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IoYXBwKTtcbiAgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIucmVnaXN0ZXJEb21FdmVudHMoXG4gICAgZWwsXG4gICAgbmV3IGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IoXG4gICAgICBuZXcgRml4ZWRaSW5kZXhEb21FdmVudHNIYW5kbGVyc0luZm8oe1xuICAgICAgICBhcHAsXG4gICAgICAgIGVsLFxuICAgICAgICBwYXRoOiBzb3VyY2VQYXRoID8/ICcnXG4gICAgICB9KVxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGFuIGV4dGVybmFsIGxpbmsuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gdXJsIC0gVGhlIFVSTCB0byByZW5kZXIgdGhlIGV4dGVybmFsIGxpbmsgZm9yLlxuICogQHBhcmFtIGRpc3BsYXlUZXh0IC0gVGhlIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIGV4dGVybmFsIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgSFRNTEFuY2hvckVsZW1lbnQgY29udGFpbmluZyB0aGUgcmVuZGVyZWQgZXh0ZXJuYWwgbGluay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckV4dGVybmFsTGluayhhcHA6IEFwcCwgdXJsOiBzdHJpbmcsIGRpc3BsYXlUZXh0Pzogc3RyaW5nKTogUHJvbWlzZTxIVE1MQW5jaG9yRWxlbWVudD4ge1xuICBkaXNwbGF5VGV4dCA/Pz0gdXJsO1xuICBjb25zdCB3cmFwcGVyRWwgPSBjcmVhdGVTcGFuKCk7XG4gIGF3YWl0IGZ1bGxSZW5kZXIoe1xuICAgIGFwcCxcbiAgICBlbDogd3JhcHBlckVsLFxuICAgIG1hcmtkb3duOiBgWyR7ZGlzcGxheVRleHR9XSgke3VybH0pYFxuICB9KTtcbiAgY29uc3QgYUVsID0gd3JhcHBlckVsLmZpbmQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgYXdhaXQgcmVnaXN0ZXJMaW5rSGFuZGxlcnMoYXBwLCBhRWwpO1xuICByZXR1cm4gYUVsO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gaW50ZXJuYWwgbGluay5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JBYnN0cmFjdEZpbGUgLSBUaGUgcGF0aCBvciBhYnN0cmFjdCBmaWxlIHRvIHJlbmRlciB0aGUgaW50ZXJuYWwgbGluayBmb3IuXG4gKiBAcGFyYW0gZGlzcGxheVRleHQgLSBUaGUgdGV4dCB0byBkaXNwbGF5IGZvciB0aGUgaW50ZXJuYWwgbGluay5cbiAqIEByZXR1cm5zIFRoZSBIVE1MQW5jaG9yRWxlbWVudCBjb250YWluaW5nIHRoZSByZW5kZXJlZCBpbnRlcm5hbCBsaW5rLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVySW50ZXJuYWxMaW5rKGFwcDogQXBwLCBwYXRoT3JBYnN0cmFjdEZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSwgZGlzcGxheVRleHQ/OiBzdHJpbmcpOiBQcm9taXNlPEhUTUxBbmNob3JFbGVtZW50PiB7XG4gIGNvbnN0IGFic3RyYWN0RmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGhPckFic3RyYWN0RmlsZSk7XG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKGFwcCwgcGF0aE9yQWJzdHJhY3RGaWxlKTtcbiAgZGlzcGxheVRleHQgPz89IHBhdGg7XG4gIGlmIChpc0ZvbGRlcihhYnN0cmFjdEZpbGUpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsKCdhJywgeyB0ZXh0OiBkaXNwbGF5VGV4dCB9LCAoYUVsKSA9PiB7XG4gICAgICBhRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZ0KSA9PiB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBhcHAuaW50ZXJuYWxQbHVnaW5zLmdldEVuYWJsZWRQbHVnaW5CeUlkKEludGVybmFsUGx1Z2luTmFtZS5GaWxlRXhwbG9yZXIpPy5yZXZlYWxJbkZvbGRlcihhYnN0cmFjdEZpbGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCB3cmFwcGVyRWwgPSBjcmVhdGVTcGFuKCk7XG4gIGF3YWl0IGZ1bGxSZW5kZXIoe1xuICAgIGFwcCxcbiAgICBlbDogd3JhcHBlckVsLFxuICAgIG1hcmtkb3duOiBgW1ske3BhdGh9fCR7ZGlzcGxheVRleHR9XV1gXG4gIH0pO1xuICBjb25zdCBhRWwgPSB3cmFwcGVyRWwuZmluZCgnYScpIGFzIEhUTUxBbmNob3JFbGVtZW50O1xuICBhd2FpdCByZWdpc3RlckxpbmtIYW5kbGVycyhhcHAsIGFFbCk7XG4gIHJldHVybiBhRWw7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLFNBQVMsMEJBQTBCO0FBQ25DO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHVDQUF1QztBQUNoRDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxJQUFJLCtCQUFvRTtBQTJDeEUsTUFBTSxpQ0FBa0U7QUFBQSxFQUN0RDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFaEIsSUFBVyxlQUFvQztBQUM3QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFQSxJQUFXLGFBQWEsY0FBbUM7QUFDekQsU0FBSyxnQkFBZ0I7QUFDckIsUUFBSSxnQkFBZ0IsS0FBSyxXQUFXLFFBQVc7QUFDN0MsbUJBQWEsUUFBUSxhQUFhO0FBQUEsUUFDaEMsUUFBUSxP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
@@ -90,6 +90,8 @@ export declare enum ObsidianPluginRepoPaths {
90
90
  PackageLockJson = "package-lock.json",
91
91
  /** Scripts folder. */
92
92
  Scripts = "scripts",
93
+ /** Script utilities folder (dev-only tooling that runs in the consumer's Node environment, not the Obsidian runtime). */
94
+ ScriptUtils = "src/script-utils",
93
95
  /** Source folder. */
94
96
  Src = "src",
95
97
  /** Styles CSS file. */
@@ -63,6 +63,7 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
63
63
  ObsidianPluginRepoPaths2["PackageJson"] = "package.json";
64
64
  ObsidianPluginRepoPaths2["PackageLockJson"] = "package-lock.json";
65
65
  ObsidianPluginRepoPaths2["Scripts"] = "scripts";
66
+ ObsidianPluginRepoPaths2["ScriptUtils"] = "src/script-utils";
66
67
  ObsidianPluginRepoPaths2["Src"] = "src";
67
68
  ObsidianPluginRepoPaths2["StylesCss"] = "styles.css";
68
69
  ObsidianPluginRepoPaths2["Tests"] = "__tests__";
@@ -74,4 +75,4 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
74
75
  export {
75
76
  ObsidianPluginRepoPaths
76
77
  };
77
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZm9sZGVyIHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBmb2xkZXIgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKiBDb21tb25KUyBmaWxlLiAqL1xuICBBbnlDanMgPSAnKi5janMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEFueUpzID0gJyouanMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBBbnlNanMgPSAnKi5tanMnLFxuXG4gIC8qKiBBbnkgcGF0aCByZWN1cnNpdmVseS4gKi9cbiAgQW55UGF0aCA9ICcqKicsXG5cbiAgLyoqIEFueSB0ZXN0IFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VGVzdFRzID0gJyoudGVzdC50cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqIFJlYWN0SlMgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUc3ggPSAnKi50c3gnLFxuXG4gIC8qKiBDaGFuZ2Vsb2cgZmlsZS4gKi9cbiAgQ2hhbmdlbG9nTWQgPSAnQ0hBTkdFTE9HLm1kJyxcblxuICAvKiogQ29tbWl0bGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEN1cnJlbnQgZm9sZGVyLiAqL1xuICBDdXJyZW50Rm9sZGVyID0gJy4nLFxuXG4gIC8qKiBEaXN0cmlidXRpb24gZm9sZGVyLiAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKiBCdWlsZCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiAqL1xuICBEaXN0QnVpbGQgPSAnZGlzdC9idWlsZCcsXG5cbiAgLyoqIERldmVsb3BtZW50IGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIuICovXG4gIERpc3REZXYgPSAnZGlzdC9kZXYnLFxuXG4gIC8qKiBDb21tb25KUyBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBFc2xpbnRDb25maWdDanMgPSAnZXNsaW50LmNvbmZpZy5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnSnMgPSAnZXNsaW50LmNvbmZpZy5qcycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ01qcyA9ICdlc2xpbnQuY29uZmlnLm1qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnVHMgPSAnZXNsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEhvdCByZWxvYWQgZmlsZS4gKi9cbiAgSG90UmVsb2FkID0gJy5ob3RyZWxvYWQnLFxuXG4gIC8qKiBNYWluIENTUyBmaWxlLiAqL1xuICBNYWluQ3NzID0gJ21haW4uY3NzJyxcblxuICAvKiogTWFpbiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIE1haW5KcyA9ICdtYWluLmpzJyxcblxuICAvKiogTWFpbiBUeXBlU2NyaXB0IGZpbGUuICovXG4gIE1haW5UcyA9ICdtYWluLnRzJyxcblxuICAvKiogTWFuaWZlc3QgZmlsZSBmb3IgYmV0YSByZWxlYXNlcy4gKi9cbiAgTWFuaWZlc3RCZXRhSnNvbiA9ICdtYW5pZmVzdC1iZXRhLmpzb24nLFxuXG4gIC8qKiBNYW5pZmVzdCBmaWxlLiAqL1xuICBNYW5pZmVzdEpzb24gPSAnbWFuaWZlc3QuanNvbicsXG5cbiAgLyoqIENvbW1vbkpTIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyA9ICcubWFya2Rvd25saW50LWNsaTIuY2pzJyxcblxuICAvKiogSlNPTkMgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKiogRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTXRzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tdHMnLFxuXG4gIC8qKiBZQU1MIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC1jbGkyLnlhbWwnLFxuXG4gIC8qKiBDb21tb25KUyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdDanMgPSAnLm1hcmtkb3dubGludC5janMnLFxuXG4gIC8qKiBKU09OIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENvbmZpZ0pzb24gPSAnLm1hcmtkb3dubGludC5qc29uJyxcblxuICAvKiogSlNPTkMgTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC5qc29uYycsXG5cbiAgLyoqIEVTTSBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdNanMgPSAnLm1hcmtkb3dubGludC5tanMnLFxuXG4gIC8qKiBZQU1MIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC55YW1sJyxcblxuICAvKiogWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZbWwgPSAnLm1hcmtkb3dubGludC55bWwnLFxuXG4gIC8qKiBNb2NrcyBmb2xkZXIuICovXG4gIE1vY2tzID0gJ3NyYy90ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKiBOUE0gc2hyaW5rd3JhcCBmaWxlLiAqL1xuICBOcG1TaHJpbmt3cmFwSnNvbiA9ICducG0tc2hyaW5rd3JhcC5qc29uJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFBhY2thZ2UtbG9jayBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VMb2NrSnNvbiA9ICdwYWNrYWdlLWxvY2suanNvbicsXG5cbiAgLyoqIFNjcmlwdHMgZm9sZGVyLiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3R5bGVzIENTUyBmaWxlLiAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqIFRlc3RzIGZvbGRlci4gKi9cbiAgVGVzdHMgPSAnX190ZXN0c19fJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVmVyc2lvbnMgSlNPTiBmaWxlLiAqL1xuICBWZXJzaW9uc0pzb24gPSAndmVyc2lvbnMuanNvbicsXG5cbiAgLyoqIFZpdGVzdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFZpdGVzdENvbmZpZ1RzID0gJ3ZpdGVzdC5jb25maWcudHMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNPLElBQUssMEJBQUwsa0JBQUtBLDZCQUFMO0FBRUwsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLFdBQVE7QUFHUixFQUFBQSx5QkFBQSxZQUFTO0FBR1QsRUFBQUEseUJBQUEsYUFBVTtBQUdWLEVBQUFBLHlCQUFBLGVBQVk7QUFHWixFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLGlCQUFjO0FBR2QsRUFBQUEseUJBQUEsd0JBQXFCO0FBR3JCLEVBQUFBLHlCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSx5QkFBQSxVQUFPO0FBR1AsRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUdqQixFQUFBQSx5QkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUdqQixFQUFBQSx5QkFBQSxlQUFZO0FBR1osRUFBQUEseUJBQUEsYUFBVTtBQUdWLEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxZQUFTO0FBR1QsRUFBQUEseUJBQUEsc0JBQW1CO0FBR25CLEVBQUFBLHlCQUFBLGtCQUFlO0FBR2YsRUFBQUEseUJBQUEsK0JBQTRCO0FBRzVCLEVBQUFBLHlCQUFBLGlDQUE4QjtBQUc5QixFQUFBQSx5QkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEseUJBQUEsK0JBQTRCO0FBRzVCLEVBQUFBLHlCQUFBLGdDQUE2QjtBQUc3QixFQUFBQSx5QkFBQSwyQkFBd0I7QUFHeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBR3pCLEVBQUFBLHlCQUFBLDZCQUEwQjtBQUcxQixFQUFBQSx5QkFBQSwyQkFBd0I7QUFHeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBR3pCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUd4QixFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsdUJBQW9CO0FBR3BCLEVBQUFBLHlCQUFBLGlCQUFjO0FBR2QsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxTQUFNO0FBR04sRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLFdBQVE7QUFHUixFQUFBQSx5QkFBQSxrQkFBZTtBQUdmLEVBQUFBLHlCQUFBLGtCQUFlO0FBR2YsRUFBQUEseUJBQUEsb0JBQWlCO0FBNUlQLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMiXQp9Cg==
78
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZm9sZGVyIHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBmb2xkZXIgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKiBDb21tb25KUyBmaWxlLiAqL1xuICBBbnlDanMgPSAnKi5janMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEFueUpzID0gJyouanMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBBbnlNanMgPSAnKi5tanMnLFxuXG4gIC8qKiBBbnkgcGF0aCByZWN1cnNpdmVseS4gKi9cbiAgQW55UGF0aCA9ICcqKicsXG5cbiAgLyoqIEFueSB0ZXN0IFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VGVzdFRzID0gJyoudGVzdC50cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqIFJlYWN0SlMgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUc3ggPSAnKi50c3gnLFxuXG4gIC8qKiBDaGFuZ2Vsb2cgZmlsZS4gKi9cbiAgQ2hhbmdlbG9nTWQgPSAnQ0hBTkdFTE9HLm1kJyxcblxuICAvKiogQ29tbWl0bGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEN1cnJlbnQgZm9sZGVyLiAqL1xuICBDdXJyZW50Rm9sZGVyID0gJy4nLFxuXG4gIC8qKiBEaXN0cmlidXRpb24gZm9sZGVyLiAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKiBCdWlsZCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiAqL1xuICBEaXN0QnVpbGQgPSAnZGlzdC9idWlsZCcsXG5cbiAgLyoqIERldmVsb3BtZW50IGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIuICovXG4gIERpc3REZXYgPSAnZGlzdC9kZXYnLFxuXG4gIC8qKiBDb21tb25KUyBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBFc2xpbnRDb25maWdDanMgPSAnZXNsaW50LmNvbmZpZy5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnSnMgPSAnZXNsaW50LmNvbmZpZy5qcycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ01qcyA9ICdlc2xpbnQuY29uZmlnLm1qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnVHMgPSAnZXNsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEhvdCByZWxvYWQgZmlsZS4gKi9cbiAgSG90UmVsb2FkID0gJy5ob3RyZWxvYWQnLFxuXG4gIC8qKiBNYWluIENTUyBmaWxlLiAqL1xuICBNYWluQ3NzID0gJ21haW4uY3NzJyxcblxuICAvKiogTWFpbiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIE1haW5KcyA9ICdtYWluLmpzJyxcblxuICAvKiogTWFpbiBUeXBlU2NyaXB0IGZpbGUuICovXG4gIE1haW5UcyA9ICdtYWluLnRzJyxcblxuICAvKiogTWFuaWZlc3QgZmlsZSBmb3IgYmV0YSByZWxlYXNlcy4gKi9cbiAgTWFuaWZlc3RCZXRhSnNvbiA9ICdtYW5pZmVzdC1iZXRhLmpzb24nLFxuXG4gIC8qKiBNYW5pZmVzdCBmaWxlLiAqL1xuICBNYW5pZmVzdEpzb24gPSAnbWFuaWZlc3QuanNvbicsXG5cbiAgLyoqIENvbW1vbkpTIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyA9ICcubWFya2Rvd25saW50LWNsaTIuY2pzJyxcblxuICAvKiogSlNPTkMgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKiogRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTXRzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tdHMnLFxuXG4gIC8qKiBZQU1MIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC1jbGkyLnlhbWwnLFxuXG4gIC8qKiBDb21tb25KUyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdDanMgPSAnLm1hcmtkb3dubGludC5janMnLFxuXG4gIC8qKiBKU09OIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENvbmZpZ0pzb24gPSAnLm1hcmtkb3dubGludC5qc29uJyxcblxuICAvKiogSlNPTkMgTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC5qc29uYycsXG5cbiAgLyoqIEVTTSBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdNanMgPSAnLm1hcmtkb3dubGludC5tanMnLFxuXG4gIC8qKiBZQU1MIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC55YW1sJyxcblxuICAvKiogWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZbWwgPSAnLm1hcmtkb3dubGludC55bWwnLFxuXG4gIC8qKiBNb2NrcyBmb2xkZXIuICovXG4gIE1vY2tzID0gJ3NyYy90ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKiBOUE0gc2hyaW5rd3JhcCBmaWxlLiAqL1xuICBOcG1TaHJpbmt3cmFwSnNvbiA9ICducG0tc2hyaW5rd3JhcC5qc29uJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFBhY2thZ2UtbG9jayBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VMb2NrSnNvbiA9ICdwYWNrYWdlLWxvY2suanNvbicsXG5cbiAgLyoqIFNjcmlwdHMgZm9sZGVyLiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBTY3JpcHQgdXRpbGl0aWVzIGZvbGRlciAoZGV2LW9ubHkgdG9vbGluZyB0aGF0IHJ1bnMgaW4gdGhlIGNvbnN1bWVyJ3MgTm9kZSBlbnZpcm9ubWVudCwgbm90IHRoZSBPYnNpZGlhbiBydW50aW1lKS4gKi9cbiAgU2NyaXB0VXRpbHMgPSAnc3JjL3NjcmlwdC11dGlscycsXG5cbiAgLyoqIFNvdXJjZSBmb2xkZXIuICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKiBTdHlsZXMgQ1NTIGZpbGUuICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKiogVGVzdHMgZm9sZGVyLiAqL1xuICBUZXN0cyA9ICdfX3Rlc3RzX18nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKiBWZXJzaW9ucyBKU09OIGZpbGUuICovXG4gIFZlcnNpb25zSnNvbiA9ICd2ZXJzaW9ucy5qc29uJyxcblxuICAvKiogVml0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgVml0ZXN0Q29uZmlnVHMgPSAndml0ZXN0LmNvbmZpZy50cydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sSUFBSywwQkFBTCxrQkFBS0EsNkJBQUw7QUFFTCxFQUFBQSx5QkFBQSxZQUFTO0FBR1QsRUFBQUEseUJBQUEsV0FBUTtBQUdSLEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxhQUFVO0FBR1YsRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLFdBQVE7QUFHUixFQUFBQSx5QkFBQSxZQUFTO0FBR1QsRUFBQUEseUJBQUEsaUJBQWM7QUFHZCxFQUFBQSx5QkFBQSx3QkFBcUI7QUFHckIsRUFBQUEseUJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLHlCQUFBLFVBQU87QUFHUCxFQUFBQSx5QkFBQSxlQUFZO0FBR1osRUFBQUEseUJBQUEsYUFBVTtBQUdWLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSx5QkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEseUJBQUEsb0JBQWlCO0FBR2pCLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSx5QkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEseUJBQUEsb0JBQWlCO0FBR2pCLEVBQUFBLHlCQUFBLGVBQVk7QUFHWixFQUFBQSx5QkFBQSxhQUFVO0FBR1YsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxzQkFBbUI7QUFHbkIsRUFBQUEseUJBQUEsa0JBQWU7QUFHZixFQUFBQSx5QkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEseUJBQUEsaUNBQThCO0FBRzlCLEVBQUFBLHlCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSx5QkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEseUJBQUEsZ0NBQTZCO0FBRzdCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUd4QixFQUFBQSx5QkFBQSw0QkFBeUI7QUFHekIsRUFBQUEseUJBQUEsNkJBQTBCO0FBRzFCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUd4QixFQUFBQSx5QkFBQSw0QkFBeUI7QUFHekIsRUFBQUEseUJBQUEsMkJBQXdCO0FBR3hCLEVBQUFBLHlCQUFBLFdBQVE7QUFHUixFQUFBQSx5QkFBQSx1QkFBb0I7QUFHcEIsRUFBQUEseUJBQUEsaUJBQWM7QUFHZCxFQUFBQSx5QkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEseUJBQUEsYUFBVTtBQUdWLEVBQUFBLHlCQUFBLGlCQUFjO0FBR2QsRUFBQUEseUJBQUEsU0FBTTtBQUdOLEVBQUFBLHlCQUFBLGVBQVk7QUFHWixFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsa0JBQWU7QUFHZixFQUFBQSx5QkFBQSxrQkFBZTtBQUdmLEVBQUFBLHlCQUFBLG9CQUFpQjtBQS9JUCxTQUFBQTtBQUFBLEdBQUE7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIl0KfQo=
@@ -253,4 +253,4 @@ class CodeHighlighterComponent extends ValueComponent {
253
253
  export {
254
254
  CodeHighlighterComponent
255
255
  };
256
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9jb2RlLWhpZ2hsaWdodGVyLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIG11bHRpcGxlIHRleHQgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7IGxvYWRQcmlzbSB9IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QvaW1wbGVtZW50YXRpb25zJztcbmltcG9ydCB7XG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL2h0bWwtZWxlbWVudC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBpbml0UGx1Z2luQ29udGV4dGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYFNldHRpbmdFeGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uL3NldHRpbmctZXgudHMnO1xuaW1wb3J0IHR5cGUgeyBUZXh0QmFzZWRDb21wb25lbnQgfSBmcm9tICcuL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHlcbn0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdG9QeCB9IGZyb20gJy4uLy4uL2h0bWwtZWxlbWVudC50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBjb2RlLlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkQ29kZUhpZ2hsaWdodGVyfS5cbiAqXG4gKiBJbiBvcmRlciB0byBhZGQgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudCwgdXNlIHtAbGluayBpbml0UGx1Z2luQ29udGV4dH0gaW4geW91ciBwbHVnaW4ncyBgb25sb2FkKClgIGZ1bmN0aW9uLlxuICpcbiAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gY29weSBzdHlsZXMgZnJvbSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3R5bGVzLmNzc30uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxzdHJpbmc+XG4gIGltcGxlbWVudHMgVGV4dEJhc2VkQ29tcG9uZW50PHN0cmluZz4sIFZhbGlkYXRvckNvbXBvbmVudCwgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8c3RyaW5nPiB7XG4gIC8qKlxuICAgKiBBbiBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucHV0RWwoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMudGV4dEFyZWFDb21wb25lbnQuaW5wdXRFbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZUVsOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBwbGFjZWhvbGRlciA9ICcnO1xuICBwcml2YXRlIHJlYWRvbmx5IHByZUVsOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBzaW11bGF0ZUNoYW5nZUNhbGxiYWNrPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSB0YWJTaXplOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dEFyZWFDb21wb25lbnQ6IFRleHRBcmVhQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG11bHRpcGxlIHRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXMoY29udGFpbmVyRWwsIENzc0NsYXNzLkNvZGVIaWdobGlnaHRlckNvbXBvbmVudCk7XG5cbiAgICBjb25zdCB3cmFwcGVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh3cmFwcGVyLCBDc3NDbGFzcy5TZXR0aW5nQ29tcG9uZW50V3JhcHBlcik7XG5cbiAgICB0aGlzLnRleHRBcmVhQ29tcG9uZW50ID0gbmV3IFRleHRBcmVhQ29tcG9uZW50KHdyYXBwZXIpO1xuICAgIHRoaXMucHJlRWwgPSB3cmFwcGVyLmNyZWF0ZUVsKCdwcmUnLCB7XG4gICAgICBhdHRyOiB7XG4gICAgICAgIHRhYkluZGV4OiAnLTEnXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jb2RlRWwgPSB0aGlzLnByZUVsLmNyZWF0ZUVsKCdjb2RlJywge1xuICAgICAgYXR0cjoge1xuICAgICAgICB0YWJJbmRleDogJy0xJ1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgY29udmVydEFzeW5jVG9TeW5jKHRoaXMudXBkYXRlSGlnaGxpZ2h0ZWRDb2RlLmJpbmQodGhpcykpKTtcbiAgICB0aGlzLmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVTY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmhhbmRsZUtleURvd24uYmluZCh0aGlzKSk7XG4gICAgY29uc3QgREVGQVVMVF9UQUJfU0laRSA9IDI7XG4gICAgdGhpcy50YWJTaXplID0gREVGQVVMVF9UQUJfU0laRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbXB0aWVzIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZW1wdHkoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tcG9uZW50IGlzIGVtcHR5LlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNvbXBvbmVudCBpcyBlbXB0eSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5nZXRWYWx1ZSgpID09PSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hhbmdlIGxpc3RlbmVyIHRvIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgY29uc3QgY2hhbmdlSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNhbGxiYWNrKHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgfTtcbiAgICB0aGlzLnNpbXVsYXRlQ2hhbmdlQ2FsbGJhY2sgPSBjaGFuZ2VIYW5kbGVyO1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQub25DaGFuZ2UoY2hhbmdlSGFuZGxlcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpc2FibGVkIC0gVGhlIGRpc2FibGVkIHN0YXRlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHRoaXMge1xuICAgIHN1cGVyLnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICB0aGlzLnRleHRBcmVhQ29tcG9uZW50LnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYW5ndWFnZSBmb3IgY29kZSBoaWdobGlnaHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBsYW5ndWFnZSAtIFRoZSBsYW5ndWFnZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHRoaXMge1xuICAgIGNvbnN0IExBTkdVQUdFX0NMQVNTX1BSRUZJWCA9ICdsYW5ndWFnZS0nO1xuICAgIGZvciAoY29uc3QgZWwgb2YgW3RoaXMucHJlRWwsIHRoaXMuY29kZUVsXSkge1xuICAgICAgZm9yIChjb25zdCBjbHMgb2YgQXJyYXkuZnJvbShlbC5jbGFzc0xpc3QpKSB7XG4gICAgICAgIGlmIChjbHMuc3RhcnRzV2l0aChMQU5HVUFHRV9DTEFTU19QUkVGSVgpKSB7XG4gICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShjbHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKGAke0xBTkdVQUdFX0NMQVNTX1BSRUZJWH0ke2xhbmd1YWdlfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXIgLSBUaGUgcGxhY2Vob2xkZXIgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkodGhpcy51cGRhdGVIaWdobGlnaHRlZENvZGUuYmluZCh0aGlzKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyVmFsdWUgLSBUaGUgcGxhY2Vob2xkZXIgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyVmFsdWUocGxhY2Vob2xkZXJWYWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlclZhbHVlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YWIgc2l6ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdGFiU2l6ZSAtIFRoZSB0YWIgc2l6ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0VGFiU2l6ZSh0YWJTaXplOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLnRhYlNpemUgPSB0YWJTaXplO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQuc2V0VmFsdWUodmFsdWUpO1xuICAgIGludm9rZUFzeW5jU2FmZWx5KHRoaXMudXBkYXRlSGlnaGxpZ2h0ZWRDb2RlLmJpbmQodGhpcykpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb25seSBmcm9tIHRlc3RzIHRvIHNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIHNpbXVsYXRlQ2hhbmdlX18oKTogdm9pZCB7XG4gICAgdGhpcy5zaW11bGF0ZUNoYW5nZUNhbGxiYWNrPy4oKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZ0LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmIChldnQuY3RybEtleSB8fCBldnQubWV0YUtleSkge1xuICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IEFycmF5LmZyb20oYWN0aXZlRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgICAgICc6aXMoYSwgYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XSk6bm90KFt0YWJpbmRleD1cIi0xXCJdKTpub3QoOmRpc2FibGVkKTpub3QoW3R5cGU9XCJoaWRkZW5cIl0pJ1xuICAgICAgKSk7XG4gICAgICBjb25zdCBpbmRleCA9IGZvY3VzYWJsZXMuaW5kZXhPZih0aGlzLmlucHV0RWwpO1xuICAgICAgY29uc3QgZGVsdGFJbmRleCA9IGV2dC5zaGlmdEtleSA/IC0xIDogMTtcbiAgICAgIGNvbnN0IG5leHRDb250cm9sID0gZm9jdXNhYmxlc1soaW5kZXggKyBkZWx0YUluZGV4ICsgZm9jdXNhYmxlcy5sZW5ndGgpICUgZm9jdXNhYmxlcy5sZW5ndGhdO1xuICAgICAgbmV4dENvbnRyb2w/LmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0aGlzLmlucHV0RWwuc2VsZWN0aW9uU3RhcnQ7XG4gICAgY29uc3Qgc2VsZWN0aW9uRW5kID0gdGhpcy5pbnB1dEVsLnNlbGVjdGlvbkVuZDtcbiAgICBjb25zdCBiZWZvcmVTZWxlY3Rpb24gPSBvbGRWYWx1ZS5zbGljZSgwLCBzZWxlY3Rpb25TdGFydCk7XG4gICAgY29uc3QgYWZ0ZXJTZWxlY3Rpb24gPSBvbGRWYWx1ZS5zbGljZShzZWxlY3Rpb25FbmQpO1xuICAgIGNvbnN0IHRhYnMgPSAnICcucmVwZWF0KHRoaXMudGFiU2l6ZSk7XG4gICAgbGV0IG5ld0JlZm9yZVNlbGVjdGlvbiA9IGJlZm9yZVNlbGVjdGlvbjtcblxuICAgIGlmIChldnQuc2hpZnRLZXkpIHtcbiAgICAgIGlmIChiZWZvcmVTZWxlY3Rpb24uZW5kc1dpdGgodGFicykpIHtcbiAgICAgICAgbmV3QmVmb3JlU2VsZWN0aW9uID0gYmVmb3JlU2VsZWN0aW9uLnNsaWNlKDAsIC10aGlzLnRhYlNpemUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdCZWZvcmVTZWxlY3Rpb24gPSBiZWZvcmVTZWxlY3Rpb24gKyB0YWJzO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1ZhbHVlID0gYCR7bmV3QmVmb3JlU2VsZWN0aW9ufSR7YWZ0ZXJTZWxlY3Rpb259YDtcbiAgICB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmlucHV0RWwuc2VsZWN0aW9uU3RhcnQgPSBuZXdCZWZvcmVTZWxlY3Rpb24ubGVuZ3RoO1xuICAgIHRoaXMuaW5wdXRFbC5zZWxlY3Rpb25FbmQgPSBuZXdCZWZvcmVTZWxlY3Rpb24ubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5wcmVFbC5zY3JvbGxUb3AgPSB0aGlzLmlucHV0RWwuc2Nyb2xsVG9wO1xuICAgIHRoaXMucHJlRWwuc2Nyb2xsTGVmdCA9IHRoaXMuaW5wdXRFbC5zY3JvbGxMZWZ0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVIaWdobGlnaHRlZENvZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb2RlRWwudGV4dENvbnRlbnQgPSB0aGlzLmlucHV0RWwudmFsdWUgfHwgdGhpcy5wbGFjZWhvbGRlcjtcbiAgICBjb25zdCBwcmlzbSA9IGF3YWl0IGxvYWRQcmlzbSgpO1xuICAgIHByaXNtLmhpZ2hsaWdodEVsZW1lbnQodGhpcy5jb2RlRWwpO1xuICAgIHRoaXMucHJlRWwudG9nZ2xlQ2xhc3MoQ3NzQ2xhc3MuSXNQbGFjZWhvbGRlciwgdGhpcy5pc0VtcHR5KCkpO1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgY29uc3QgZ2FwID0gTWF0aC5tYXgoMCwgdGhpcy5pbnB1dEVsLnNjcm9sbEhlaWdodCAtIHRoaXMucHJlRWwuc2Nyb2xsSGVpZ2h0KTtcbiAgICAgIHRoaXMucHJlRWwuc2V0Q3NzUHJvcHMoe1xuICAgICAgICAnLS1ib3R0b20tZ2FwJzogdG9QeChnYXApXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFXUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEs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
256
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9jb2RlLWhpZ2hsaWdodGVyLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIG11bHRpcGxlIHRleHQgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7IGxvYWRQcmlzbSB9IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QvaW1wbGVtZW50YXRpb25zJztcbmltcG9ydCB7XG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL2h0bWwtZWxlbWVudC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBpbml0UGx1Z2luQ29udGV4dGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYFNldHRpbmdFeGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uL3NldHRpbmctZXgudHMnO1xuaW1wb3J0IHR5cGUgeyBUZXh0QmFzZWRDb21wb25lbnQgfSBmcm9tICcuL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHlcbn0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdG9QeCB9IGZyb20gJy4uLy4uL2h0bWwtZWxlbWVudC50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBjb2RlLlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkQ29kZUhpZ2hsaWdodGVyfS5cbiAqXG4gKiBJbiBvcmRlciB0byBhZGQgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudCwgdXNlIHtAbGluayBpbml0UGx1Z2luQ29udGV4dH0gaW4geW91ciBwbHVnaW4ncyBgb25sb2FkKClgIGZ1bmN0aW9uLlxuICpcbiAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gY29weSBzdHlsZXMgZnJvbSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3R5bGVzLmNzc30uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxzdHJpbmc+IGltcGxlbWVudHMgVGV4dEJhc2VkQ29tcG9uZW50PHN0cmluZz4sIFZhbGlkYXRvckNvbXBvbmVudCwgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8c3RyaW5nPiB7XG4gIC8qKlxuICAgKiBBbiBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucHV0RWwoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMudGV4dEFyZWFDb21wb25lbnQuaW5wdXRFbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZUVsOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBwbGFjZWhvbGRlciA9ICcnO1xuICBwcml2YXRlIHJlYWRvbmx5IHByZUVsOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBzaW11bGF0ZUNoYW5nZUNhbGxiYWNrPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSB0YWJTaXplOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dEFyZWFDb21wb25lbnQ6IFRleHRBcmVhQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG11bHRpcGxlIHRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXMoY29udGFpbmVyRWwsIENzc0NsYXNzLkNvZGVIaWdobGlnaHRlckNvbXBvbmVudCk7XG5cbiAgICBjb25zdCB3cmFwcGVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh3cmFwcGVyLCBDc3NDbGFzcy5TZXR0aW5nQ29tcG9uZW50V3JhcHBlcik7XG5cbiAgICB0aGlzLnRleHRBcmVhQ29tcG9uZW50ID0gbmV3IFRleHRBcmVhQ29tcG9uZW50KHdyYXBwZXIpO1xuICAgIHRoaXMucHJlRWwgPSB3cmFwcGVyLmNyZWF0ZUVsKCdwcmUnLCB7XG4gICAgICBhdHRyOiB7XG4gICAgICAgIHRhYkluZGV4OiAnLTEnXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jb2RlRWwgPSB0aGlzLnByZUVsLmNyZWF0ZUVsKCdjb2RlJywge1xuICAgICAgYXR0cjoge1xuICAgICAgICB0YWJJbmRleDogJy0xJ1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgY29udmVydEFzeW5jVG9TeW5jKHRoaXMudXBkYXRlSGlnaGxpZ2h0ZWRDb2RlLmJpbmQodGhpcykpKTtcbiAgICB0aGlzLmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVTY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmhhbmRsZUtleURvd24uYmluZCh0aGlzKSk7XG4gICAgY29uc3QgREVGQVVMVF9UQUJfU0laRSA9IDI7XG4gICAgdGhpcy50YWJTaXplID0gREVGQVVMVF9UQUJfU0laRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbXB0aWVzIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZW1wdHkoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tcG9uZW50IGlzIGVtcHR5LlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNvbXBvbmVudCBpcyBlbXB0eSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5nZXRWYWx1ZSgpID09PSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hhbmdlIGxpc3RlbmVyIHRvIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgY29uc3QgY2hhbmdlSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNhbGxiYWNrKHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgfTtcbiAgICB0aGlzLnNpbXVsYXRlQ2hhbmdlQ2FsbGJhY2sgPSBjaGFuZ2VIYW5kbGVyO1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQub25DaGFuZ2UoY2hhbmdlSGFuZGxlcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpc2FibGVkIC0gVGhlIGRpc2FibGVkIHN0YXRlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHRoaXMge1xuICAgIHN1cGVyLnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICB0aGlzLnRleHRBcmVhQ29tcG9uZW50LnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYW5ndWFnZSBmb3IgY29kZSBoaWdobGlnaHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBsYW5ndWFnZSAtIFRoZSBsYW5ndWFnZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHRoaXMge1xuICAgIGNvbnN0IExBTkdVQUdFX0NMQVNTX1BSRUZJWCA9ICdsYW5ndWFnZS0nO1xuICAgIGZvciAoY29uc3QgZWwgb2YgW3RoaXMucHJlRWwsIHRoaXMuY29kZUVsXSkge1xuICAgICAgZm9yIChjb25zdCBjbHMgb2YgQXJyYXkuZnJvbShlbC5jbGFzc0xpc3QpKSB7XG4gICAgICAgIGlmIChjbHMuc3RhcnRzV2l0aChMQU5HVUFHRV9DTEFTU19QUkVGSVgpKSB7XG4gICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShjbHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKGAke0xBTkdVQUdFX0NMQVNTX1BSRUZJWH0ke2xhbmd1YWdlfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXIgLSBUaGUgcGxhY2Vob2xkZXIgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkodGhpcy51cGRhdGVIaWdobGlnaHRlZENvZGUuYmluZCh0aGlzKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyVmFsdWUgLSBUaGUgcGxhY2Vob2xkZXIgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyVmFsdWUocGxhY2Vob2xkZXJWYWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlclZhbHVlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YWIgc2l6ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdGFiU2l6ZSAtIFRoZSB0YWIgc2l6ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0VGFiU2l6ZSh0YWJTaXplOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLnRhYlNpemUgPSB0YWJTaXplO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQuc2V0VmFsdWUodmFsdWUpO1xuICAgIGludm9rZUFzeW5jU2FmZWx5KHRoaXMudXBkYXRlSGlnaGxpZ2h0ZWRDb2RlLmJpbmQodGhpcykpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb25seSBmcm9tIHRlc3RzIHRvIHNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIHNpbXVsYXRlQ2hhbmdlX18oKTogdm9pZCB7XG4gICAgdGhpcy5zaW11bGF0ZUNoYW5nZUNhbGxiYWNrPy4oKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZ0LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmIChldnQuY3RybEtleSB8fCBldnQubWV0YUtleSkge1xuICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IEFycmF5LmZyb20oYWN0aXZlRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgICAgICc6aXMoYSwgYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XSk6bm90KFt0YWJpbmRleD1cIi0xXCJdKTpub3QoOmRpc2FibGVkKTpub3QoW3R5cGU9XCJoaWRkZW5cIl0pJ1xuICAgICAgKSk7XG4gICAgICBjb25zdCBpbmRleCA9IGZvY3VzYWJsZXMuaW5kZXhPZih0aGlzLmlucHV0RWwpO1xuICAgICAgY29uc3QgZGVsdGFJbmRleCA9IGV2dC5zaGlmdEtleSA/IC0xIDogMTtcbiAgICAgIGNvbnN0IG5leHRDb250cm9sID0gZm9jdXNhYmxlc1soaW5kZXggKyBkZWx0YUluZGV4ICsgZm9jdXNhYmxlcy5sZW5ndGgpICUgZm9jdXNhYmxlcy5sZW5ndGhdO1xuICAgICAgbmV4dENvbnRyb2w/LmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0aGlzLmlucHV0RWwuc2VsZWN0aW9uU3RhcnQ7XG4gICAgY29uc3Qgc2VsZWN0aW9uRW5kID0gdGhpcy5pbnB1dEVsLnNlbGVjdGlvbkVuZDtcbiAgICBjb25zdCBiZWZvcmVTZWxlY3Rpb24gPSBvbGRWYWx1ZS5zbGljZSgwLCBzZWxlY3Rpb25TdGFydCk7XG4gICAgY29uc3QgYWZ0ZXJTZWxlY3Rpb24gPSBvbGRWYWx1ZS5zbGljZShzZWxlY3Rpb25FbmQpO1xuICAgIGNvbnN0IHRhYnMgPSAnICcucmVwZWF0KHRoaXMudGFiU2l6ZSk7XG4gICAgbGV0IG5ld0JlZm9yZVNlbGVjdGlvbiA9IGJlZm9yZVNlbGVjdGlvbjtcblxuICAgIGlmIChldnQuc2hpZnRLZXkpIHtcbiAgICAgIGlmIChiZWZvcmVTZWxlY3Rpb24uZW5kc1dpdGgodGFicykpIHtcbiAgICAgICAgbmV3QmVmb3JlU2VsZWN0aW9uID0gYmVmb3JlU2VsZWN0aW9uLnNsaWNlKDAsIC10aGlzLnRhYlNpemUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdCZWZvcmVTZWxlY3Rpb24gPSBiZWZvcmVTZWxlY3Rpb24gKyB0YWJzO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1ZhbHVlID0gYCR7bmV3QmVmb3JlU2VsZWN0aW9ufSR7YWZ0ZXJTZWxlY3Rpb259YDtcbiAgICB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmlucHV0RWwuc2VsZWN0aW9uU3RhcnQgPSBuZXdCZWZvcmVTZWxlY3Rpb24ubGVuZ3RoO1xuICAgIHRoaXMuaW5wdXRFbC5zZWxlY3Rpb25FbmQgPSBuZXdCZWZvcmVTZWxlY3Rpb24ubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5wcmVFbC5zY3JvbGxUb3AgPSB0aGlzLmlucHV0RWwuc2Nyb2xsVG9wO1xuICAgIHRoaXMucHJlRWwuc2Nyb2xsTGVmdCA9IHRoaXMuaW5wdXRFbC5zY3JvbGxMZWZ0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVIaWdobGlnaHRlZENvZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb2RlRWwudGV4dENvbnRlbnQgPSB0aGlzLmlucHV0RWwudmFsdWUgfHwgdGhpcy5wbGFjZWhvbGRlcjtcbiAgICBjb25zdCBwcmlzbSA9IGF3YWl0IGxvYWRQcmlzbSgpO1xuICAgIHByaXNtLmhpZ2hsaWdodEVsZW1lbnQodGhpcy5jb2RlRWwpO1xuICAgIHRoaXMucHJlRWwudG9nZ2xlQ2xhc3MoQ3NzQ2xhc3MuSXNQbGFjZWhvbGRlciwgdGhpcy5pc0VtcHR5KCkpO1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgY29uc3QgZ2FwID0gTWF0aC5tYXgoMCwgdGhpcy5pbnB1dEVsLnNjcm9sbEhlaWdodCAtIHRoaXMucHJlRWwuc2Nyb2xsSGVpZ2h0KTtcbiAgICAgIHRoaXMucHJlRWwuc2V0Q3NzUHJvcHMoe1xuICAgICAgICAnLS1ib3R0b20tZ2FwJzogdG9QeChnYXApXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFXUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FD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
@@ -135,4 +135,4 @@ class MultipleDropdownComponent extends ValueComponent {
135
135
  export {
136
136
  MultipleDropdownComponent
137
137
  };
138
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG11bHRpLXNlbGVjdCBkcm9wZG93bi5cbiAqL1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckVsZW1lbnQgfSBmcm9tICcuLi8uLi9odG1sLWVsZW1lbnQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgaW5pdFBsdWdpbkNvbnRleHRgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBTZXR0aW5nRXhgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi9zZXR0aW5nLWV4LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIEEgbXVsdGktc2VsZWN0IGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZE11bHRpcGxlRHJvcGRvd259LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxyZWFkb25seSBzdHJpbmdbXT5cbiAgaW1wbGVtZW50cyBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPHJlYWRvbmx5IHN0cmluZ1tdPiB7XG4gIC8qKlxuICAgKiBBIHNlbGVjdCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZWxlY3QgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0RWwoKTogSFRNTFNlbGVjdEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbGlkYXRvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JFbCgpOiBWYWxpZGF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25Db21wb25lbnQ6IERyb3Bkb3duQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQgPSBuZXcgRHJvcGRvd25Db21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwubXVsdGlwbGUgPSB0cnVlO1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXMoY29udGFpbmVyRWwsIENzc0NsYXNzLk11bHRpcGxlRHJvcGRvd25Db21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gb3B0aW9uIHRvIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBvcHRpb24uXG4gICAqIEBwYXJhbSBkaXNwbGF5IC0gVGhlIGRpc3BsYXkgdGV4dCBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbih2YWx1ZTogc3RyaW5nLCBkaXNwbGF5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LmFkZE9wdGlvbih2YWx1ZSwgZGlzcGxheSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBtdWx0aXBsZSBvcHRpb25zIHRvIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBhZGQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYWRkT3B0aW9ucyhvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdGhpcyB7XG4gICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudC5hZGRPcHRpb25zKG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IHJlYWRvbmx5IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsLnNlbGVjdGVkT3B0aW9ucykubWFwKChvKSA9PiBvLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNoYW5nZWQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNoYW5nZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6ICh2YWx1ZTogcmVhZG9ubHkgc3RyaW5nW10pID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCBjaGFuZ2VIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKTtcbiAgICB9O1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjayA9IGNoYW5nZUhhbmRsZXI7XG4gICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudC5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBUaGUgZGlzYWJsZWQgc3RhdGUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgQXJyYXkuZnJvbSh0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsLm9wdGlvbnMpKSB7XG4gICAgICBvcHRpb24uc2VsZWN0ZWQgPSB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb25seSBmcm9tIHRlc3RzIHRvIHNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIHNpbXVsYXRlQ2hhbmdlX18oKTogdm9pZCB7XG4gICAgdGhpcy5zaW11bGF0ZUNoYW5nZUNhbGxiYWNrPy4oKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQVVQLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsMkJBQTJCO0FBVzdCLE1BQU0sa0NBQWtDLGVBQ3NDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTW5GLElBQVcsV0FBOEI7QUFDdkMsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2hDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxjQUFnQztBQUN6QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFaUI7QUFBQSxFQUVUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0QsWUFBWSxhQUEwQjtBQUMzQyxVQUFNO0FBQ04sU0FBSyxvQkFBb0IsSUFBSSxrQkFBa0IsV0FBVztBQUMxRCxTQUFLLGtCQUFrQixTQUFTLFdBQVc7QUFDM0Msd0JBQW9CLGFBQWEsU0FBUyx5QkFBeUI7QUFBQSxFQUNyRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTTyxVQUFVLE9BQWUsU0FBdUI7QUFDckQsU0FBSyxrQkFBa0IsVUFBVSxPQUFPLE9BQU87QUFDL0MsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFdBQVcsU0FBdUM7QUFDdkQsU0FBSyxrQkFBa0IsV0FBVyxPQUFPO0FBQ3pDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sV0FBOEI7QUFDbkMsV0FBTyxNQUFNLEtBQUssS0FBSyxrQkFBa0IsU0FBUyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLO0FBQUEsRUFDdkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFNBQVMsVUFBb0Q7QUFDbEUsVUFBTSxnQkFBZ0IsTUFBWTtBQUNoQyxlQUFTLEtBQUssU0FBUyxDQUFDO0FBQUEsSUFDMUI7QUFDQSxTQUFLLHlCQUF5QjtBQUM5QixTQUFLLGtCQUFrQixTQUFTLGFBQWE7QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixZQUFZLFVBQXlCO0FBQ25ELFVBQU0sWUFBWSxRQUFRO0FBQzFCLFNBQUssa0JBQWtCLFlBQVksUUFBUTtBQUMzQyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxPQUFnQztBQUM5QyxlQUFXLFVBQVUsTUFBTSxLQUFLLEtBQUssa0JBQWtCLFNBQVMsT0FBTyxHQUFHO0FBQ3hFLGFBQU8sV0FBVyxNQUFNLFNBQVMsT0FBTyxLQUFLO0FBQUEsSUFDL0M7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLG1CQUF5QjtBQUM5QixTQUFLLHlCQUF5QjtBQUFBLEVBQ2hDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
138
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG11bHRpLXNlbGVjdCBkcm9wZG93bi5cbiAqL1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckVsZW1lbnQgfSBmcm9tICcuLi8uLi9odG1sLWVsZW1lbnQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgaW5pdFBsdWdpbkNvbnRleHRgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBTZXR0aW5nRXhgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi9zZXR0aW5nLWV4LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIEEgbXVsdGktc2VsZWN0IGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZE11bHRpcGxlRHJvcGRvd259LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxyZWFkb25seSBzdHJpbmdbXT4gaW1wbGVtZW50cyBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPHJlYWRvbmx5IHN0cmluZ1tdPiB7XG4gIC8qKlxuICAgKiBBIHNlbGVjdCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZWxlY3QgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0RWwoKTogSFRNTFNlbGVjdEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbGlkYXRvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JFbCgpOiBWYWxpZGF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25Db21wb25lbnQ6IERyb3Bkb3duQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQgPSBuZXcgRHJvcGRvd25Db21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwubXVsdGlwbGUgPSB0cnVlO1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXMoY29udGFpbmVyRWwsIENzc0NsYXNzLk11bHRpcGxlRHJvcGRvd25Db21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gb3B0aW9uIHRvIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBvcHRpb24uXG4gICAqIEBwYXJhbSBkaXNwbGF5IC0gVGhlIGRpc3BsYXkgdGV4dCBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbih2YWx1ZTogc3RyaW5nLCBkaXNwbGF5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LmFkZE9wdGlvbih2YWx1ZSwgZGlzcGxheSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBtdWx0aXBsZSBvcHRpb25zIHRvIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBhZGQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYWRkT3B0aW9ucyhvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdGhpcyB7XG4gICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudC5hZGRPcHRpb25zKG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IHJlYWRvbmx5IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsLnNlbGVjdGVkT3B0aW9ucykubWFwKChvKSA9PiBvLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNoYW5nZWQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNoYW5nZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6ICh2YWx1ZTogcmVhZG9ubHkgc3RyaW5nW10pID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCBjaGFuZ2VIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKTtcbiAgICB9O1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjayA9IGNoYW5nZUhhbmRsZXI7XG4gICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudC5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBUaGUgZGlzYWJsZWQgc3RhdGUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgQXJyYXkuZnJvbSh0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsLm9wdGlvbnMpKSB7XG4gICAgICBvcHRpb24uc2VsZWN0ZWQgPSB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb25seSBmcm9tIHRlc3RzIHRvIHNpbXVsYXRlIGEgY2hhbmdlIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIHNpbXVsYXRlQ2hhbmdlX18oKTogdm9pZCB7XG4gICAgdGhpcy5zaW11bGF0ZUNoYW5nZUNhbGxiYWNrPy4oKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQVVQLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsMkJBQTJCO0FBVzdCLE1BQU0sa0NBQWtDLGVBQXFIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTWxLLElBQVcsV0FBOEI7QUFDdkMsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2hDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxjQUFnQztBQUN6QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFaUI7QUFBQSxFQUVUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0QsWUFBWSxhQUEwQjtBQUMzQyxVQUFNO0FBQ04sU0FBSyxvQkFBb0IsSUFBSSxrQkFBa0IsV0FBVztBQUMxRCxTQUFLLGtCQUFrQixTQUFTLFdBQVc7QUFDM0Msd0JBQW9CLGFBQWEsU0FBUyx5QkFBeUI7QUFBQSxFQUNyRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTTyxVQUFVLE9BQWUsU0FBdUI7QUFDckQsU0FBSyxrQkFBa0IsVUFBVSxPQUFPLE9BQU87QUFDL0MsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFdBQVcsU0FBdUM7QUFDdkQsU0FBSyxrQkFBa0IsV0FBVyxPQUFPO0FBQ3pDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sV0FBOEI7QUFDbkMsV0FBTyxNQUFNLEtBQUssS0FBSyxrQkFBa0IsU0FBUyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLO0FBQUEsRUFDdkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFNBQVMsVUFBb0Q7QUFDbEUsVUFBTSxnQkFBZ0IsTUFBWTtBQUNoQyxlQUFTLEtBQUssU0FBUyxDQUFDO0FBQUEsSUFDMUI7QUFDQSxTQUFLLHlCQUF5QjtBQUM5QixTQUFLLGtCQUFrQixTQUFTLGFBQWE7QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixZQUFZLFVBQXlCO0FBQ25ELFVBQU0sWUFBWSxRQUFRO0FBQzFCLFNBQUssa0JBQWtCLFlBQVksUUFBUTtBQUMzQyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxPQUFnQztBQUM5QyxlQUFXLFVBQVUsTUFBTSxLQUFLLEtBQUssa0JBQWtCLFNBQVMsT0FBTyxHQUFHO0FBQ3hFLGFBQU8sV0FBVyxNQUFNLFNBQVMsT0FBTyxLQUFLO0FBQUEsSUFDL0M7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLG1CQUF5QjtBQUM5QixTQUFLLHlCQUF5QjtBQUFBLEVBQ2hDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -148,4 +148,4 @@ class MultipleTextComponent extends ValueComponent {
148
148
  export {
149
149
  MultipleTextComponent
150
150
  };
151
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS10ZXh0LWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIG11bHRpcGxlIHRleHQgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7XG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL2h0bWwtZWxlbWVudC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBpbml0UGx1Z2luQ29udGV4dGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYFNldHRpbmdFeGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uL3NldHRpbmctZXgudHMnO1xuaW1wb3J0IHR5cGUgeyBUZXh0QmFzZWRDb21wb25lbnQgfSBmcm9tICcuL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIG11bHRpcGxlIHRleHQgdmFsdWVzLlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkTXVsdGlwbGVUZXh0fS5cbiAqXG4gKiBJbiBvcmRlciB0byBhZGQgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudCwgdXNlIHtAbGluayBpbml0UGx1Z2luQ29udGV4dH0gaW4geW91ciBwbHVnaW4ncyBgb25sb2FkKClgIGZ1bmN0aW9uLlxuICpcbiAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gY29weSBzdHlsZXMgZnJvbSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3R5bGVzLmNzc30uXG4gKi9cbmV4cG9ydCBjbGFzcyBNdWx0aXBsZVRleHRDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxyZWFkb25seSBzdHJpbmdbXT5cbiAgaW1wbGVtZW50cyBUZXh0QmFzZWRDb21wb25lbnQ8cmVhZG9ubHkgc3RyaW5nW10+LCBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPHJlYWRvbmx5IHN0cmluZ1tdPiB7XG4gIC8qKlxuICAgKiBBbiBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucHV0RWwoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMudGV4dEFyZWFDb21wb25lbnQuaW5wdXRFbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbDtcbiAgfVxuXG4gIHByaXZhdGUgc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0QXJlYUNvbXBvbmVudDogVGV4dEFyZWFDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgdGV4dCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250YWluZXJFbCAtIFRoZSBjb250YWluZXIgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudCA9IG5ldyBUZXh0QXJlYUNvbXBvbmVudChjb250YWluZXJFbCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhjb250YWluZXJFbCwgQ3NzQ2xhc3MuTXVsdGlwbGVUZXh0Q29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbXB0aWVzIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZW1wdHkoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0VmFsdWUoKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRleHRBcmVhQ29tcG9uZW50LmdldFZhbHVlKCkuc3BsaXQoJ1xcbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tcG9uZW50IGlzIGVtcHR5LlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNvbXBvbmVudCBpcyBlbXB0eSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5nZXRWYWx1ZSgpID09PSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hhbmdlIGxpc3RlbmVyIHRvIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6IChuZXdWYWx1ZTogcmVhZG9ubHkgc3RyaW5nW10pID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCBjaGFuZ2VIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKTtcbiAgICB9O1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjayA9IGNoYW5nZUhhbmRsZXI7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBUaGUgZGlzYWJsZWQgc3RhdGUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwbGFjZWhvbGRlciAtIFRoZSBwbGFjZWhvbGRlciB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQuc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwbGFjZWhvbGRlclZhbHVlIC0gVGhlIHBsYWNlaG9sZGVyIHZhbHVlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlclZhbHVlKHBsYWNlaG9sZGVyVmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcih0aGlzLnZhbHVlVG9TdHJpbmcocGxhY2Vob2xkZXJWYWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VmFsdWUodmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5zZXRWYWx1ZSh0aGlzLnZhbHVlVG9TdHJpbmcodmFsdWUpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9ubHkgZnJvbSB0ZXN0cyB0byBzaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyBzaW11bGF0ZUNoYW5nZV9fKCk6IHZvaWQge1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz8uKCk7XG4gIH1cblxuICBwcml2YXRlIHZhbHVlVG9TdHJpbmcodmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUuam9pbignXFxuJyk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFXUCxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLDJCQUEyQjtBQVc3QixNQUFNLDhCQUE4QixlQUNpRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU0xSCxJQUFXLFVBQStCO0FBQ3hDLFdBQU8sS0FBSyxrQkFBa0I7QUFBQSxFQUNoQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsY0FBZ0M7QUFDekMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRVE7QUFBQSxFQUVTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1YsWUFBWSxhQUEwQjtBQUMzQyxVQUFNO0FBQ04sU0FBSyxvQkFBb0IsSUFBSSxrQkFBa0IsV0FBVztBQUMxRCx3QkFBb0IsYUFBYSxTQUFTLHFCQUFxQjtBQUFBLEVBQ2pFO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxRQUFjO0FBQ25CLFNBQUssa0JBQWtCLFNBQVMsRUFBRTtBQUFBLEVBQ3BDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2dCLFdBQThCO0FBQzVDLFdBQU8sS0FBSyxrQkFBa0IsU0FBUyxFQUFFLE1BQU0sSUFBSTtBQUFBLEVBQ3JEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sVUFBbUI7QUFDeEIsV0FBTyxLQUFLLGtCQUFrQixTQUFTLE1BQU07QUFBQSxFQUMvQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxVQUF1RDtBQUNyRSxVQUFNLGdCQUFnQixNQUFZO0FBQ2hDLGVBQVMsS0FBSyxTQUFTLENBQUM7QUFBQSxJQUMxQjtBQUNBLFNBQUsseUJBQXlCO0FBQzlCLFNBQUssa0JBQWtCLFNBQVMsYUFBYTtBQUM3QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLFlBQVksVUFBeUI7QUFDbkQsVUFBTSxZQUFZLFFBQVE7QUFDMUIsU0FBSyxrQkFBa0IsWUFBWSxRQUFRO0FBQzNDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxlQUFlLGFBQTJCO0FBQy9DLFNBQUssa0JBQWtCLGVBQWUsV0FBVztBQUNqRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sb0JBQW9CLGtCQUEyQztBQUNwRSxTQUFLLGVBQWUsS0FBSyxjQUFjLGdCQUFnQixDQUFDO0FBQ3hELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsU0FBUyxPQUFnQztBQUN2RCxTQUFLLGtCQUFrQixTQUFTLEtBQUssY0FBYyxLQUFLLENBQUM7QUFDekQsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxtQkFBeUI7QUFDOUIsU0FBSyx5QkFBeUI7QUFBQSxFQUNoQztBQUFBLEVBRVEsY0FBYyxPQUFrQztBQUN0RCxXQUFPLE1BQU0sS0FBSyxJQUFJO0FBQUEsRUFDeEI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
151
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS10ZXh0LWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIG11bHRpcGxlIHRleHQgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7XG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL2h0bWwtZWxlbWVudC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBpbml0UGx1Z2luQ29udGV4dGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYFNldHRpbmdFeGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uL3NldHRpbmctZXgudHMnO1xuaW1wb3J0IHR5cGUgeyBUZXh0QmFzZWRDb21wb25lbnQgfSBmcm9tICcuL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIG11bHRpcGxlIHRleHQgdmFsdWVzLlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkTXVsdGlwbGVUZXh0fS5cbiAqXG4gKiBJbiBvcmRlciB0byBhZGQgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudCwgdXNlIHtAbGluayBpbml0UGx1Z2luQ29udGV4dH0gaW4geW91ciBwbHVnaW4ncyBgb25sb2FkKClgIGZ1bmN0aW9uLlxuICpcbiAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gY29weSBzdHlsZXMgZnJvbSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3R5bGVzLmNzc30uXG4gKi9cbmV4cG9ydCBjbGFzcyBNdWx0aXBsZVRleHRDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxyZWFkb25seSBzdHJpbmdbXT4gaW1wbGVtZW50cyBUZXh0QmFzZWRDb21wb25lbnQ8cmVhZG9ubHkgc3RyaW5nW10+LCBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPHJlYWRvbmx5IHN0cmluZ1tdPiB7XG4gIC8qKlxuICAgKiBBbiBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucHV0RWwoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMudGV4dEFyZWFDb21wb25lbnQuaW5wdXRFbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbDtcbiAgfVxuXG4gIHByaXZhdGUgc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0QXJlYUNvbXBvbmVudDogVGV4dEFyZWFDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgdGV4dCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250YWluZXJFbCAtIFRoZSBjb250YWluZXIgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudCA9IG5ldyBUZXh0QXJlYUNvbXBvbmVudChjb250YWluZXJFbCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhjb250YWluZXJFbCwgQ3NzQ2xhc3MuTXVsdGlwbGVUZXh0Q29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbXB0aWVzIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZW1wdHkoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0VmFsdWUoKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRleHRBcmVhQ29tcG9uZW50LmdldFZhbHVlKCkuc3BsaXQoJ1xcbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tcG9uZW50IGlzIGVtcHR5LlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNvbXBvbmVudCBpcyBlbXB0eSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5nZXRWYWx1ZSgpID09PSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hhbmdlIGxpc3RlbmVyIHRvIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6IChuZXdWYWx1ZTogcmVhZG9ubHkgc3RyaW5nW10pID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCBjaGFuZ2VIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKTtcbiAgICB9O1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjayA9IGNoYW5nZUhhbmRsZXI7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBUaGUgZGlzYWJsZWQgc3RhdGUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwbGFjZWhvbGRlciAtIFRoZSBwbGFjZWhvbGRlciB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQuc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwbGFjZWhvbGRlclZhbHVlIC0gVGhlIHBsYWNlaG9sZGVyIHZhbHVlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlclZhbHVlKHBsYWNlaG9sZGVyVmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcih0aGlzLnZhbHVlVG9TdHJpbmcocGxhY2Vob2xkZXJWYWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VmFsdWUodmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5zZXRWYWx1ZSh0aGlzLnZhbHVlVG9TdHJpbmcodmFsdWUpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9ubHkgZnJvbSB0ZXN0cyB0byBzaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyBzaW11bGF0ZUNoYW5nZV9fKCk6IHZvaWQge1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz8uKCk7XG4gIH1cblxuICBwcml2YXRlIHZhbHVlVG9TdHJpbmcodmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUuam9pbignXFxuJyk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFXUCxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLDJCQUEyQjtBQVc3QixNQUFNLDhCQUE4QixlQUE0SjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1yTSxJQUFXLFVBQStCO0FBQ3hDLFdBQU8sS0FBSyxrQkFBa0I7QUFBQSxFQUNoQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsY0FBZ0M7QUFDekMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRVE7QUFBQSxFQUVTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1YsWUFBWSxhQUEwQjtBQUMzQyxVQUFNO0FBQ04sU0FBSyxvQkFBb0IsSUFBSSxrQkFBa0IsV0FBVztBQUMxRCx3QkFBb0IsYUFBYSxTQUFTLHFCQUFxQjtBQUFBLEVBQ2pFO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxRQUFjO0FBQ25CLFNBQUssa0JBQWtCLFNBQVMsRUFBRTtBQUFBLEVBQ3BDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2dCLFdBQThCO0FBQzVDLFdBQU8sS0FBSyxrQkFBa0IsU0FBUyxFQUFFLE1BQU0sSUFBSTtBQUFBLEVBQ3JEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sVUFBbUI7QUFDeEIsV0FBTyxLQUFLLGtCQUFrQixTQUFTLE1BQU07QUFBQSxFQUMvQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxVQUF1RDtBQUNyRSxVQUFNLGdCQUFnQixNQUFZO0FBQ2hDLGVBQVMsS0FBSyxTQUFTLENBQUM7QUFBQSxJQUMxQjtBQUNBLFNBQUsseUJBQXlCO0FBQzlCLFNBQUssa0JBQWtCLFNBQVMsYUFBYTtBQUM3QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLFlBQVksVUFBeUI7QUFDbkQsVUFBTSxZQUFZLFFBQVE7QUFDMUIsU0FBSyxrQkFBa0IsWUFBWSxRQUFRO0FBQzNDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxlQUFlLGFBQTJCO0FBQy9DLFNBQUssa0JBQWtCLGVBQWUsV0FBVztBQUNqRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sb0JBQW9CLGtCQUEyQztBQUNwRSxTQUFLLGVBQWUsS0FBSyxjQUFjLGdCQUFnQixDQUFDO0FBQ3hELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsU0FBUyxPQUFnQztBQUN2RCxTQUFLLGtCQUFrQixTQUFTLEtBQUssY0FBYyxLQUFLLENBQUM7QUFDekQsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxtQkFBeUI7QUFDOUIsU0FBSyx5QkFBeUI7QUFBQSxFQUNoQztBQUFBLEVBRVEsY0FBYyxPQUFrQztBQUN0RCxXQUFPLE1BQU0sS0FBSyxJQUFJO0FBQUEsRUFDeEI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -140,4 +140,4 @@ class TypedMultipleDropdownComponent extends ValueComponent {
140
140
  export {
141
141
  TypedMultipleDropdownComponent
142
142
  };
143
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG11bHRpLXNlbGVjdCBkcm9wZG93bi5cbiAqL1xuXG5pbXBvcnQgeyBWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JFbGVtZW50IH0gZnJvbSAnLi4vLi4vaHRtbC1lbGVtZW50LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYGluaXRQbHVnaW5Db250ZXh0YCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbmltcG9ydCB0eXBlIHsgaW5pdFBsdWdpbkNvbnRleHQgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgU2V0dGluZ0V4YCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbmltcG9ydCB0eXBlIHsgU2V0dGluZ0V4IH0gZnJvbSAnLi4vc2V0dGluZy1leC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vdmFsaWRhdG9yLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi92YWx1ZS1jb21wb25lbnQtd2l0aC1jaGFuZ2UtdHJhY2tpbmcudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbmltcG9ydCB7IE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogQSBtdWx0aS1zZWxlY3QgZHJvcGRvd24gY29tcG9uZW50LlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkVHlwZWRNdWx0aXBsZURyb3Bkb3dufS5cbiAqXG4gKiBJbiBvcmRlciB0byBhZGQgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudCwgdXNlIHtAbGluayBpbml0UGx1Z2luQ29udGV4dH0gaW4geW91ciBwbHVnaW4ncyBgb25sb2FkKClgIGZ1bmN0aW9uLlxuICpcbiAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gY29weSBzdHlsZXMgZnJvbSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3R5bGVzLmNzc30uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHRvIHNlbGVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudDxUPiBleHRlbmRzIFZhbHVlQ29tcG9uZW50PHJlYWRvbmx5IFRbXT5cbiAgaW1wbGVtZW50cyBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPHJlYWRvbmx5IFRbXT4ge1xuICAvKipcbiAgICogQSBzZWxlY3QgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2VsZWN0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNlbGVjdEVsKCk6IEhUTUxTZWxlY3RFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbGlkYXRvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JFbCgpOiBWYWxpZGF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudDogTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudDtcbiAgcHJpdmF0ZSBzaW11bGF0ZUNoYW5nZUNhbGxiYWNrPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZXM6IFRbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG11bHRpcGxlIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lckVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgPSBuZXcgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudChjb250YWluZXJFbCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhjb250YWluZXJFbCwgQ3NzQ2xhc3MuVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9wdGlvbiB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcGFyYW0gZGlzcGxheSAtIFRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIG9wdGlvbi5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRPcHRpb24odmFsdWU6IFQsIGRpc3BsYXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGxldCBpbmRleCA9IHRoaXMudmFsdWVzLmluZGV4T2YodmFsdWUpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgaW5kZXggPSB0aGlzLnZhbHVlcy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLm11bHRpcGxlRHJvcGRvd25Db21wb25lbnQuYWRkT3B0aW9uKFN0cmluZyhpbmRleCksIGRpc3BsYXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgb3B0aW9ucyB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbnMob3B0aW9uczogTWFwPFQsIHN0cmluZz4pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IFt2YWx1ZSwgZGlzcGxheV0gb2Ygb3B0aW9ucy5lbnRyaWVzKCkpIHtcbiAgICAgIHRoaXMuYWRkT3B0aW9uKHZhbHVlLCBkaXNwbGF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogcmVhZG9ubHkgVFtdIHtcbiAgICBjb25zdCBpbmRpY2VzID0gdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LmdldFZhbHVlKCkubWFwKChzdHIpID0+IHBhcnNlSW50KHN0ciwgMTApKTtcbiAgICByZXR1cm4gaW5kaWNlcy5tYXAoKGluZGV4KSA9PiB0aGlzLnZhbHVlc1tpbmRleF0pLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBUID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiByZWFkb25seSBUW10pID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCBjaGFuZ2VIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKTtcbiAgICB9O1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjayA9IGNoYW5nZUhhbmRsZXI7XG4gICAgdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50Lm9uQ2hhbmdlKGNoYW5nZUhhbmRsZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBkaXNhYmxlZCAtIFRoZSBkaXNhYmxlZCBzdGF0ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICBzdXBlci5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiByZWFkb25seSBUW10pOiB0aGlzIHtcbiAgICBjb25zdCBpbmRpY2VzID0gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnZhbHVlcy5pbmRleE9mKHYpKS5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCAhPT0gLTEpO1xuICAgIHRoaXMubXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudC5zZXRWYWx1ZShpbmRpY2VzLm1hcCgoaW5kZXgpID0+IFN0cmluZyhpbmRleCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9ubHkgZnJvbSB0ZXN0cyB0byBzaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyBzaW11bGF0ZUNoYW5nZV9fKCk6IHZvaWQge1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz8uKCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxzQkFBc0I7QUFVL0IsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyxpQ0FBaUM7QUFhbkMsTUFBTSx1Q0FBMEMsZUFDeUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNOUUsSUFBVyxXQUE4QjtBQUN2QyxXQUFPLEtBQUssMEJBQTBCO0FBQUEsRUFDeEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLGNBQWdDO0FBQ3pDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVpQjtBQUFBLEVBQ1Q7QUFBQSxFQUNTLFNBQWMsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU96QixZQUFZLGFBQTBCO0FBQzNDLFVBQU07QUFDTixTQUFLLDRCQUE0QixJQUFJLDBCQUEwQixXQUFXO0FBQzFFLHdCQUFvQixhQUFhLFNBQVMsOEJBQThCO0FBQUEsRUFDMUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sVUFBVSxPQUFVLFNBQXVCO0FBQ2hELFFBQUksUUFBUSxLQUFLLE9BQU8sUUFBUSxLQUFLO0FBQ3JDLFFBQUksVUFBVSxJQUFJO0FBQ2hCLFdBQUssT0FBTyxLQUFLLEtBQUs7QUFDdEIsY0FBUSxLQUFLLE9BQU8sU0FBUztBQUFBLElBQy9CO0FBQ0EsU0FBSywwQkFBMEIsVUFBVSxPQUFPLEtBQUssR0FBRyxPQUFPO0FBQy9ELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxXQUFXLFNBQStCO0FBQy9DLGVBQVcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLFFBQVEsR0FBRztBQUNoRCxXQUFLLFVBQVUsT0FBTyxPQUFPO0FBQUEsSUFDL0I7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLFdBQXlCO0FBQzlCLFVBQU0sVUFBVSxLQUFLLDBCQUEwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsU0FBUyxLQUFLLEVBQUUsQ0FBQztBQUN4RixXQUFPLFFBQVEsSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFzQixVQUFVLE1BQVM7QUFBQSxFQUNyRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxVQUErQztBQUM3RCxVQUFNLGdCQUFnQixNQUFZO0FBQ2hDLGVBQVMsS0FBSyxTQUFTLENBQUM7QUFBQSxJQUMxQjtBQUNBLFNBQUsseUJBQXlCO0FBQzlCLFNBQUssMEJBQTBCLFNBQVMsYUFBYTtBQUNyRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLFlBQVksVUFBeUI7QUFDbkQsVUFBTSxZQUFZLFFBQVE7QUFDMUIsU0FBSywwQkFBMEIsWUFBWSxRQUFRO0FBQ25ELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLE9BQTJCO0FBQ3pDLFVBQU0sVUFBVSxNQUFNLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLFVBQVUsRUFBRTtBQUN2RixTQUFLLDBCQUEwQixTQUFTLFFBQVEsSUFBSSxDQUFDLFVBQVUsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUM3RSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLG1CQUF5QjtBQUM5QixTQUFLLHlCQUF5QjtBQUFBLEVBQ2hDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
143
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG11bHRpLXNlbGVjdCBkcm9wZG93bi5cbiAqL1xuXG5pbXBvcnQgeyBWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JFbGVtZW50IH0gZnJvbSAnLi4vLi4vaHRtbC1lbGVtZW50LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYGluaXRQbHVnaW5Db250ZXh0YCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbmltcG9ydCB0eXBlIHsgaW5pdFBsdWdpbkNvbnRleHQgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgU2V0dGluZ0V4YCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbmltcG9ydCB0eXBlIHsgU2V0dGluZ0V4IH0gZnJvbSAnLi4vc2V0dGluZy1leC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vdmFsaWRhdG9yLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi92YWx1ZS1jb21wb25lbnQtd2l0aC1jaGFuZ2UtdHJhY2tpbmcudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbmltcG9ydCB7IE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogQSBtdWx0aS1zZWxlY3QgZHJvcGRvd24gY29tcG9uZW50LlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkVHlwZWRNdWx0aXBsZURyb3Bkb3dufS5cbiAqXG4gKiBJbiBvcmRlciB0byBhZGQgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudCwgdXNlIHtAbGluayBpbml0UGx1Z2luQ29udGV4dH0gaW4geW91ciBwbHVnaW4ncyBgb25sb2FkKClgIGZ1bmN0aW9uLlxuICpcbiAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gY29weSBzdHlsZXMgZnJvbSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3R5bGVzLmNzc30uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHRvIHNlbGVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudDxUPiBleHRlbmRzIFZhbHVlQ29tcG9uZW50PHJlYWRvbmx5IFRbXT4gaW1wbGVtZW50cyBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPHJlYWRvbmx5IFRbXT4ge1xuICAvKipcbiAgICogQSBzZWxlY3QgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2VsZWN0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNlbGVjdEVsKCk6IEhUTUxTZWxlY3RFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbGlkYXRvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JFbCgpOiBWYWxpZGF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudDogTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudDtcbiAgcHJpdmF0ZSBzaW11bGF0ZUNoYW5nZUNhbGxiYWNrPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZXM6IFRbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG11bHRpcGxlIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lckVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgPSBuZXcgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudChjb250YWluZXJFbCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhjb250YWluZXJFbCwgQ3NzQ2xhc3MuVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9wdGlvbiB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcGFyYW0gZGlzcGxheSAtIFRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIG9wdGlvbi5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRPcHRpb24odmFsdWU6IFQsIGRpc3BsYXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGxldCBpbmRleCA9IHRoaXMudmFsdWVzLmluZGV4T2YodmFsdWUpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgaW5kZXggPSB0aGlzLnZhbHVlcy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLm11bHRpcGxlRHJvcGRvd25Db21wb25lbnQuYWRkT3B0aW9uKFN0cmluZyhpbmRleCksIGRpc3BsYXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgb3B0aW9ucyB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbnMob3B0aW9uczogTWFwPFQsIHN0cmluZz4pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IFt2YWx1ZSwgZGlzcGxheV0gb2Ygb3B0aW9ucy5lbnRyaWVzKCkpIHtcbiAgICAgIHRoaXMuYWRkT3B0aW9uKHZhbHVlLCBkaXNwbGF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogcmVhZG9ubHkgVFtdIHtcbiAgICBjb25zdCBpbmRpY2VzID0gdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LmdldFZhbHVlKCkubWFwKChzdHIpID0+IHBhcnNlSW50KHN0ciwgMTApKTtcbiAgICByZXR1cm4gaW5kaWNlcy5tYXAoKGluZGV4KSA9PiB0aGlzLnZhbHVlc1tpbmRleF0pLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBUID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiByZWFkb25seSBUW10pID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCBjaGFuZ2VIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKTtcbiAgICB9O1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjayA9IGNoYW5nZUhhbmRsZXI7XG4gICAgdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50Lm9uQ2hhbmdlKGNoYW5nZUhhbmRsZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBkaXNhYmxlZCAtIFRoZSBkaXNhYmxlZCBzdGF0ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICBzdXBlci5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgdGhpcy5tdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiByZWFkb25seSBUW10pOiB0aGlzIHtcbiAgICBjb25zdCBpbmRpY2VzID0gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnZhbHVlcy5pbmRleE9mKHYpKS5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCAhPT0gLTEpO1xuICAgIHRoaXMubXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudC5zZXRWYWx1ZShpbmRpY2VzLm1hcCgoaW5kZXgpID0+IFN0cmluZyhpbmRleCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9ubHkgZnJvbSB0ZXN0cyB0byBzaW11bGF0ZSBhIGNoYW5nZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyBzaW11bGF0ZUNoYW5nZV9fKCk6IHZvaWQge1xuICAgIHRoaXMuc2ltdWxhdGVDaGFuZ2VDYWxsYmFjaz8uKCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxzQkFBc0I7QUFVL0IsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyxpQ0FBaUM7QUFhbkMsTUFBTSx1Q0FBMEMsZUFBMkc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNaEssSUFBVyxXQUE4QjtBQUN2QyxXQUFPLEtBQUssMEJBQTBCO0FBQUEsRUFDeEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLGNBQWdDO0FBQ3pDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVpQjtBQUFBLEVBQ1Q7QUFBQSxFQUNTLFNBQWMsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU96QixZQUFZLGFBQTBCO0FBQzNDLFVBQU07QUFDTixTQUFLLDRCQUE0QixJQUFJLDBCQUEwQixXQUFXO0FBQzFFLHdCQUFvQixhQUFhLFNBQVMsOEJBQThCO0FBQUEsRUFDMUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sVUFBVSxPQUFVLFNBQXVCO0FBQ2hELFFBQUksUUFBUSxLQUFLLE9BQU8sUUFBUSxLQUFLO0FBQ3JDLFFBQUksVUFBVSxJQUFJO0FBQ2hCLFdBQUssT0FBTyxLQUFLLEtBQUs7QUFDdEIsY0FBUSxLQUFLLE9BQU8sU0FBUztBQUFBLElBQy9CO0FBQ0EsU0FBSywwQkFBMEIsVUFBVSxPQUFPLEtBQUssR0FBRyxPQUFPO0FBQy9ELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxXQUFXLFNBQStCO0FBQy9DLGVBQVcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLFFBQVEsR0FBRztBQUNoRCxXQUFLLFVBQVUsT0FBTyxPQUFPO0FBQUEsSUFDL0I7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLFdBQXlCO0FBQzlCLFVBQU0sVUFBVSxLQUFLLDBCQUEwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsU0FBUyxLQUFLLEVBQUUsQ0FBQztBQUN4RixXQUFPLFFBQVEsSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFzQixVQUFVLE1BQVM7QUFBQSxFQUNyRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxVQUErQztBQUM3RCxVQUFNLGdCQUFnQixNQUFZO0FBQ2hDLGVBQVMsS0FBSyxTQUFTLENBQUM7QUFBQSxJQUMxQjtBQUNBLFNBQUsseUJBQXlCO0FBQzlCLFNBQUssMEJBQTBCLFNBQVMsYUFBYTtBQUNyRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLFlBQVksVUFBeUI7QUFDbkQsVUFBTSxZQUFZLFFBQVE7QUFDMUIsU0FBSywwQkFBMEIsWUFBWSxRQUFRO0FBQ25ELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLE9BQTJCO0FBQ3pDLFVBQU0sVUFBVSxNQUFNLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLFVBQVUsRUFBRTtBQUN2RixTQUFLLDBCQUEwQixTQUFTLFFBQVEsSUFBSSxDQUFDLFVBQVUsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUM3RSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLG1CQUF5QjtBQUM5QixTQUFLLHlCQUF5QjtBQUFBLEVBQ2hDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==