botframework-webchat 4.14.1 → 4.15.2-main.20220413.af6e8a3

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 (108) hide show
  1. package/.eslintrc.yml +5 -109
  2. package/.prettierrc.yml +1 -1
  3. package/README.md +1 -1
  4. package/lib/AddFullBundle.d.ts.map +1 -1
  5. package/lib/AddFullBundle.js +1 -2
  6. package/lib/FullComposer.d.ts.map +1 -1
  7. package/lib/FullComposer.js +3 -3
  8. package/lib/FullReactWebChat.js +2 -2
  9. package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.d.ts +1 -1
  10. package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.d.ts.map +1 -1
  11. package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.js +3 -1
  12. package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.d.ts +1 -1
  13. package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.d.ts.map +1 -1
  14. package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.js +10 -3
  15. package/lib/adaptiveCards/Attachment/AdaptiveCardContent.js +2 -2
  16. package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.d.ts +3 -2
  17. package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.d.ts.map +1 -1
  18. package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.js +138 -74
  19. package/lib/adaptiveCards/Attachment/AnimationCardContent.d.ts +1 -1
  20. package/lib/adaptiveCards/Attachment/AnimationCardContent.d.ts.map +1 -1
  21. package/lib/adaptiveCards/Attachment/AnimationCardContent.js +3 -1
  22. package/lib/adaptiveCards/Attachment/AudioCardContent.d.ts +1 -1
  23. package/lib/adaptiveCards/Attachment/AudioCardContent.d.ts.map +1 -1
  24. package/lib/adaptiveCards/Attachment/AudioCardContent.js +3 -1
  25. package/lib/adaptiveCards/Attachment/HeroCardContent.d.ts +1 -1
  26. package/lib/adaptiveCards/Attachment/HeroCardContent.d.ts.map +1 -1
  27. package/lib/adaptiveCards/Attachment/HeroCardContent.js +4 -2
  28. package/lib/adaptiveCards/Attachment/OAuthCardContent.d.ts +1 -1
  29. package/lib/adaptiveCards/Attachment/OAuthCardContent.d.ts.map +1 -1
  30. package/lib/adaptiveCards/Attachment/OAuthCardContent.js +3 -1
  31. package/lib/adaptiveCards/Attachment/ReceiptCardContent.d.ts +1 -1
  32. package/lib/adaptiveCards/Attachment/ReceiptCardContent.d.ts.map +1 -1
  33. package/lib/adaptiveCards/Attachment/ReceiptCardContent.js +3 -1
  34. package/lib/adaptiveCards/Attachment/SignInCardContent.d.ts +1 -1
  35. package/lib/adaptiveCards/Attachment/SignInCardContent.d.ts.map +1 -1
  36. package/lib/adaptiveCards/Attachment/SignInCardContent.js +1 -1
  37. package/lib/adaptiveCards/Attachment/ThumbnailCardContent.d.ts +1 -1
  38. package/lib/adaptiveCards/Attachment/ThumbnailCardContent.d.ts.map +1 -1
  39. package/lib/adaptiveCards/Attachment/ThumbnailCardContent.js +3 -1
  40. package/lib/adaptiveCards/Attachment/VideoCardContent.d.ts +1 -1
  41. package/lib/adaptiveCards/Attachment/VideoCardContent.d.ts.map +1 -1
  42. package/lib/adaptiveCards/Attachment/VideoCardContent.js +5 -3
  43. package/lib/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.d.ts +3 -0
  44. package/lib/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.d.ts.map +1 -1
  45. package/lib/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.js +8 -1
  46. package/lib/adaptiveCards/Styles/adaptiveCardHostConfig.js +2 -2
  47. package/lib/adaptiveCards/Styles/createAdaptiveCardsStyleSet.js +2 -2
  48. package/lib/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.d.ts.map +1 -1
  49. package/lib/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.js +26 -29
  50. package/lib/adaptiveCards/normalizeStyleOptions.js +2 -2
  51. package/lib/addVersion.js +2 -2
  52. package/lib/createDirectLineSpeechAdapters.d.ts +1 -1
  53. package/lib/createDirectLineSpeechAdapters.d.ts.map +1 -1
  54. package/lib/createDirectLineSpeechAdapters.js +1 -1
  55. package/lib/createFullStyleSet.d.ts +325 -56
  56. package/lib/createFullStyleSet.d.ts.map +1 -1
  57. package/lib/createFullStyleSet.js +2 -2
  58. package/lib/fullBundleDefaultStyleOptions.js +2 -2
  59. package/lib/index-es5.d.ts +1 -21
  60. package/lib/index-es5.d.ts.map +1 -1
  61. package/lib/index-es5.js +4 -44
  62. package/lib/index-minimal.js +22 -20
  63. package/lib/index.d.ts +30 -8
  64. package/lib/index.d.ts.map +1 -1
  65. package/lib/index.js +11 -8
  66. package/lib/polyfill.d.ts +23 -0
  67. package/lib/polyfill.d.ts.map +1 -0
  68. package/lib/polyfill.js +46 -0
  69. package/lib/renderMarkdown.d.ts.map +1 -1
  70. package/lib/renderMarkdown.js +34 -6
  71. package/lib/speech/CustomAudioInputStream.d.ts.map +1 -1
  72. package/lib/speech/CustomAudioInputStream.js +40 -15
  73. package/lib/speech/bytesPerSample.d.ts.map +1 -1
  74. package/lib/speech/bytesPerSample.js +3 -1
  75. package/lib/speech/createAudioConfig.d.ts.map +1 -1
  76. package/lib/speech/createAudioConfig.js +9 -3
  77. package/lib/speech/createMicrophoneAudioConfigAndAudioContext.d.ts.map +1 -1
  78. package/lib/speech/createMicrophoneAudioConfigAndAudioContext.js +3 -1
  79. package/lib/speech/getUserMedia.d.ts.map +1 -1
  80. package/lib/speech/getUserMedia.js +5 -2
  81. package/package.json +43 -43
  82. package/src/AddFullBundle.tsx +0 -1
  83. package/src/FullComposer.tsx +2 -0
  84. package/src/adaptiveCards/Attachment/AdaptiveCardAttachment.tsx +3 -1
  85. package/src/adaptiveCards/Attachment/AdaptiveCardBuilder.ts +8 -3
  86. package/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx +183 -89
  87. package/src/adaptiveCards/Attachment/AnimationCardContent.tsx +3 -1
  88. package/src/adaptiveCards/Attachment/AudioCardContent.tsx +3 -1
  89. package/src/adaptiveCards/Attachment/HeroCardContent.tsx +4 -2
  90. package/src/adaptiveCards/Attachment/OAuthCardContent.tsx +3 -1
  91. package/src/adaptiveCards/Attachment/ReceiptCardContent.tsx +28 -48
  92. package/src/adaptiveCards/Attachment/SignInCardContent.tsx +1 -1
  93. package/src/adaptiveCards/Attachment/ThumbnailCardContent.tsx +3 -1
  94. package/src/adaptiveCards/Attachment/VideoCardContent.tsx +5 -3
  95. package/src/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.ts +8 -0
  96. package/src/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.tsx +0 -1
  97. package/src/createCognitiveServicesSpeechServicesPonyfillFactory.spec.js +2 -3
  98. package/src/createDirectLineSpeechAdapters.ts +1 -1
  99. package/src/index-es5.ts +3 -26
  100. package/src/polyfill.ts +29 -0
  101. package/src/renderMarkdown.ts +40 -4
  102. package/src/speech/CustomAudioInputStream.ts +38 -7
  103. package/src/speech/bytesPerSample.ts +2 -0
  104. package/src/speech/createAudioConfig.spec.js +1 -1
  105. package/src/speech/createAudioConfig.ts +7 -0
  106. package/src/speech/createMicrophoneAudioConfigAndAudioContext.ts +2 -0
  107. package/src/speech/getUserMedia.ts +4 -1
  108. package/.eslintignore +0 -1
@@ -32,6 +32,16 @@ var SANITIZE_HTML_OPTIONS = {
32
32
  var TRANSPARENT_GIF = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'; // This is used for parsing Markdown for external links.
33
33
 
34
34
  var internalMarkdownIt = new _markdownIt.default();
35
+ var MARKDOWN_ATTRS_LEFT_DELIMITER = '⟬'; // Make sure the delimiter is free from any RegExp characters, such as *, ?, etc.
36
+ // IE11 does not support "u" flag and Babel could not remove it. We intentionally omitting the "u" flag here.
37
+ // eslint-disable-next-line security/detect-non-literal-regexp, require-unicode-regexp
38
+
39
+ var MARKDOWN_ATTRS_LEFT_DELIMITER_PATTERN = new RegExp(MARKDOWN_ATTRS_LEFT_DELIMITER, 'g');
40
+ var MARKDOWN_ATTRS_RIGHT_DELIMITER = '⟭'; // Make sure the delimiter is free from any RegExp characters, such as *, ?, etc.
41
+ // IE11 does not support "u" flag and Babel could not remove it. We intentionally omitting the "u" flag here.
42
+ // eslint-disable-next-line security/detect-non-literal-regexp, require-unicode-regexp
43
+
44
+ var MARKDOWN_ATTRS_RIGHT_DELIMITER_PATTERN = new RegExp(MARKDOWN_ATTRS_RIGHT_DELIMITER, 'g');
35
45
 
36
46
  function render(markdown, _ref) {
37
47
  var markdownRespectCRLF = _ref.markdownRespectCRLF;
@@ -44,16 +54,32 @@ function render(markdown, _ref) {
44
54
  markdown = markdown.replace(/\n\r|\r\n/g, function (carriageReturn) {
45
55
  return carriageReturn === '\n\r' ? '\r\n' : '\n\r';
46
56
  });
47
- }
57
+ } // Related to #3165.
58
+ // We only support attributes "aria-label" and should leave other attributes as-is.
59
+ // However, `markdown-it-attrs` remove unrecognized attributes, such as {hello}.
60
+ // Before passing to `markdown-it-attrs`, we will convert known attributes from {aria-label="..."} into ⟬aria-label="..."⟭ (using white tortoise shell brackets).
61
+ // Then, we ask `markdown-it-attrs` to only process the new brackets, so it should only try to process things that we allowlisted.
62
+ // Lastly, we revert tortoise shell brackets back to curly brackets, for unprocessed attributes.
48
63
 
64
+
65
+ markdown = markdown.replace(/\{[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*aria\x2Dlabel()[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*\}/gi, "".concat(MARKDOWN_ATTRS_LEFT_DELIMITER, "aria-label").concat(MARKDOWN_ATTRS_RIGHT_DELIMITER)).replace(/\{[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*aria\x2Dlabel=("(?:(?!")[\s\S])*"|(?:(?![\t-\r \}\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])[\s\S])*)[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*\}/gi, function (_, valueInsideQuotes) {
66
+ return "".concat(MARKDOWN_ATTRS_LEFT_DELIMITER, "aria-label=").concat(valueInsideQuotes).concat(MARKDOWN_ATTRS_RIGHT_DELIMITER);
67
+ });
49
68
  var html = new _markdownIt.default({
50
69
  breaks: false,
51
70
  html: false,
52
71
  linkify: true,
53
72
  typographer: true,
54
73
  xhtmlOut: true
55
- }).use(_markdownItAttrsEs.default).use(_markdownItForInline.default, 'url_new_win', 'link_open', function (tokens, index) {
56
- var token = tokens[index];
74
+ }).use(_markdownItAttrsEs.default, {
75
+ // `markdown-it-attrs` is added for accessibility and allow bot developers to specify `aria-label`.
76
+ // We are allowlisting `aria-label` only as it is allowlisted in `sanitize-html`.
77
+ // Other `aria-*` will be sanitized even we allowlisted here.
78
+ allowedAttributes: ['aria-label'],
79
+ leftDelimiter: MARKDOWN_ATTRS_LEFT_DELIMITER,
80
+ rightDelimiter: MARKDOWN_ATTRS_RIGHT_DELIMITER
81
+ }).use(_markdownItForInline.default, 'url_new_win', 'link_open', function (tokens, index) {
82
+ var token = tokens[+index];
57
83
  token.attrSet('rel', 'noopener noreferrer');
58
84
  token.attrSet('target', '_blank');
59
85
  var linkOpenToken = tokens.find(function (_ref3) {
@@ -78,10 +104,12 @@ function render(markdown, _ref) {
78
104
  iconTokens[0].attrJoin('class', 'webchat__markdown__external-link-icon');
79
105
  tokens.splice.apply(tokens, [index + 2, 0].concat((0, _toConsumableArray2.default)(iconTokens)));
80
106
  }
81
- }).render(markdown); // The signature from "sanitize-html" module is not correct.
82
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
107
+ }).render(markdown); // Restore attributes not processed by `markdown-it-attrs`.
108
+ // TODO: [P2] #2511 After we fixed our polyfill story, we should use "String.prototype.replaceAll" instead of RegExp for replace all occurrences.
109
+
110
+ html = html.replace(MARKDOWN_ATTRS_LEFT_DELIMITER_PATTERN, '{').replace(MARKDOWN_ATTRS_RIGHT_DELIMITER_PATTERN, '}'); // The signature from "sanitize-html" module is not correct.
83
111
  // @ts-ignore
84
112
 
85
113
  return (0, _sanitizeHtml.default)(html, SANITIZE_HTML_OPTIONS);
86
114
  }
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJNYXJrZG93bi50cyJdLCJuYW1lcyI6WyJTQU5JVElaRV9IVE1MX09QVElPTlMiLCJhbGxvd2VkQXR0cmlidXRlcyIsImEiLCJpbWciLCJhbGxvd2VkU2NoZW1lcyIsImFsbG93ZWRUYWdzIiwiVFJBTlNQQVJFTlRfR0lGIiwiaW50ZXJuYWxNYXJrZG93bkl0IiwiTWFya2Rvd25JdCIsInJlbmRlciIsIm1hcmtkb3duIiwibWFya2Rvd25SZXNwZWN0Q1JMRiIsImV4dGVybmFsTGlua0FsdCIsInJlcGxhY2UiLCJjYXJyaWFnZVJldHVybiIsImh0bWwiLCJicmVha3MiLCJsaW5raWZ5IiwidHlwb2dyYXBoZXIiLCJ4aHRtbE91dCIsInVzZSIsIm1hcmtkb3duSXRBdHRycyIsIml0ZXJhdG9yIiwidG9rZW5zIiwiaW5kZXgiLCJ0b2tlbiIsImF0dHJTZXQiLCJsaW5rT3BlblRva2VuIiwiZmluZCIsInR5cGUiLCJhdHRycyIsIm5hbWUiLCJocmVmIiwidGVzdCIsImljb25Ub2tlbnMiLCJwYXJzZUlubGluZSIsImNoaWxkcmVuIiwiYXR0ckpvaW4iLCJzcGxpY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFMQTtBQU9BLElBQU1BLHFCQUFxQixHQUFHO0FBQzVCQyxFQUFBQSxpQkFBaUIsRUFBRTtBQUNqQkMsSUFBQUEsQ0FBQyxFQUFFLENBQUMsWUFBRCxFQUFlLE1BQWYsRUFBdUIsTUFBdkIsRUFBK0IsS0FBL0IsRUFBc0MsUUFBdEMsRUFBZ0QsT0FBaEQsQ0FEYztBQUVqQkMsSUFBQUEsR0FBRyxFQUFFLENBQUMsS0FBRCxFQUFRLE9BQVIsRUFBaUIsS0FBakI7QUFGWSxHQURTO0FBSzVCQyxFQUFBQSxjQUFjLEVBQUUsQ0FBQyxNQUFELEVBQVMsTUFBVCxFQUFpQixPQUFqQixFQUEwQixLQUExQixFQUFpQyxRQUFqQyxFQUEyQyxLQUEzQyxFQUFrRCxLQUFsRCxDQUxZO0FBTTVC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QUFBQSxNQUFNLENBQUNlLE1BQVAsT0FBQWYsTUFBTSxHQUFRQyxLQUFLLEdBQUcsQ0FBaEIsRUFBbUIsQ0FBbkIsMENBQXlCVSxVQUF6QixHQUFOO0FBQ0Q7QUFDRixHQTVCVSxFQTZCVnpCLE1BN0JVLENBNkJIQyxRQTdCRyxDQUFiLENBTFEsQ0FvQ1I7QUFDQTtBQUNBOztBQUNBLFNBQU8sMkJBQWFLLElBQWIsRUFBbUJmLHFCQUFuQixDQUFQO0FBQ0QiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFswLCAxLCAyXSB9XSAqL1xuXG5pbXBvcnQgaXRlcmF0b3IgZnJvbSAnbWFya2Rvd24taXQtZm9yLWlubGluZSc7XG5pbXBvcnQgTWFya2Rvd25JdCBmcm9tICdtYXJrZG93bi1pdCc7XG5pbXBvcnQgbWFya2Rvd25JdEF0dHJzIGZyb20gJ21hcmtkb3duLWl0LWF0dHJzLWVzNSc7XG5pbXBvcnQgc2FuaXRpemVIVE1MIGZyb20gJ3Nhbml0aXplLWh0bWwnO1xuXG5jb25zdCBTQU5JVElaRV9IVE1MX09QVElPTlMgPSB7XG4gIGFsbG93ZWRBdHRyaWJ1dGVzOiB7XG4gICAgYTogWydhcmlhLWxhYmVsJywgJ2hyZWYnLCAnbmFtZScsICdyZWwnLCAndGFyZ2V0JywgJ3RpdGxlJ10sXG4gICAgaW1nOiBbJ2FsdCcsICdjbGFzcycsICdzcmMnXVxuICB9LFxuICBhbGxvd2VkU2NoZW1lczogWydkYXRhJywgJ2h0dHAnLCAnaHR0cHMnLCAnZnRwJywgJ21haWx0bycsICdzaXAnLCAndGVsJ10sXG4gIGFsbG93ZWRUYWdzOiBbXG4gICAgJ2EnLFxuICAgICdiJyxcbiAgICAnYmxvY2txdW90ZScsXG4gICAgJ2JyJyxcbiAgICAnY2FwdGlvbicsXG4gICAgJ2NvZGUnLFxuICAgICdkZWwnLFxuICAgICdkaXYnLFxuICAgICdlbScsXG4gICAgJ2gxJyxcbiAgICAnaDInLFxuICAgICdoMycsXG4gICAgJ2g0JyxcbiAgICAnaDUnLFxuICAgICdoNicsXG4gICAgJ2hyJyxcbiAgICAnaScsXG4gICAgJ2ltZycsXG4gICAgJ2lucycsXG4gICAgJ2xpJyxcbiAgICAnbmwnLFxuICAgICdvbCcsXG4gICAgJ3AnLFxuICAgICdwcmUnLFxuICAgICdzJyxcbiAgICAnc3BhbicsXG4gICAgJ3N0cmlrZScsXG4gICAgJ3N0cm9uZycsXG4gICAgJ3RhYmxlJyxcbiAgICAndGJvZHknLFxuICAgICd0ZCcsXG4gICAgJ3Rmb290JyxcbiAgICAndGgnLFxuICAgICd0aGVhZCcsXG4gICAgJ3RyJyxcbiAgICAndWwnXG4gIF1cbn07XG5cbi8vIFB1dCBhIHRyYW5zcGFyZW50IHBpeGVsIGluc3RlYWQgb2YgdGhlIFwib3BlbiBpbiBuZXcgd2luZG93XCIgaWNvbiwgc28gZGV2ZWxvcGVycyBjYW4gZWFzaWx5IG1vZGlmeSB0aGUgaWNvbiBpbiBDU1MuXG5jb25zdCBUUkFOU1BBUkVOVF9HSUYgPSAnZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3JztcblxuLy8gVGhpcyBpcyB1c2VkIGZvciBwYXJzaW5nIE1hcmtkb3duIGZvciBleHRlcm5hbCBsaW5rcy5cbmNvbnN0IGludGVybmFsTWFya2Rvd25JdCA9IG5ldyBNYXJrZG93bkl0KCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmRlcihcbiAgbWFya2Rvd246IHN0cmluZyxcbiAgeyBtYXJrZG93blJlc3BlY3RDUkxGIH06IHsgbWFya2Rvd25SZXNwZWN0Q1JMRjogYm9vbGVhbiB9LFxuICB7IGV4dGVybmFsTGlua0FsdCA9ICcnIH06IHsgZXh0ZXJuYWxMaW5rQWx0Pzogc3RyaW5nIH0gPSB7fVxuKTogc3RyaW5nIHtcbiAgaWYgKG1hcmtkb3duUmVzcGVjdENSTEYpIHtcbiAgICBtYXJrZG93biA9IG1hcmtkb3duLnJlcGxhY2UoL1xcblxccnxcXHJcXG4vZ3UsIGNhcnJpYWdlUmV0dXJuID0+IChjYXJyaWFnZVJldHVybiA9PT0gJ1xcblxccicgPyAnXFxyXFxuJyA6ICdcXG5cXHInKSk7XG4gIH1cblxuICBjb25zdCBodG1sID0gbmV3IE1hcmtkb3duSXQoe1xuICAgIGJyZWFrczogZmFsc2UsXG4gICAgaHRtbDogZmFsc2UsXG4gICAgbGlua2lmeTogdHJ1ZSxcbiAgICB0eXBvZ3JhcGhlcjogdHJ1ZSxcbiAgICB4aHRtbE91dDogdHJ1ZVxuICB9KVxuICAgIC51c2UobWFya2Rvd25JdEF0dHJzKVxuICAgIC51c2UoaXRlcmF0b3IsICd1cmxfbmV3X3dpbicsICdsaW5rX29wZW4nLCAodG9rZW5zLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaW5kZXhdO1xuXG4gICAgICB0b2tlbi5hdHRyU2V0KCdyZWwnLCAnbm9vcGVuZXIgbm9yZWZlcnJlcicpO1xuICAgICAgdG9rZW4uYXR0clNldCgndGFyZ2V0JywgJ19ibGFuaycpO1xuXG4gICAgICBjb25zdCBsaW5rT3BlblRva2VuID0gdG9rZW5zLmZpbmQoKHsgdHlwZSB9KSA9PiB0eXBlID09PSAnbGlua19vcGVuJyk7XG4gICAgICBjb25zdCBbLCBocmVmXSA9IGxpbmtPcGVuVG9rZW4uYXR0cnMuZmluZCgoW25hbWVdKSA9PiBuYW1lID09PSAnaHJlZicpO1xuXG4gICAgICAvLyBBZGRzIGEgbmV3IGljb24gaWYgdGhlIGxpbmsgaXMgaHR0cDogb3IgaHR0cHM6LlxuICAgICAgLy8gRG9uJ3QgYWRkIGlmIGl0J3MgYSBwaG9uZSBudW1iZXIsIGV0Yy5cbiAgICAgIGlmICgvXmh0dHBzPzovaXUudGVzdChocmVmKSkge1xuICAgICAgICBleHRlcm5hbExpbmtBbHQgJiYgdG9rZW4uYXR0clNldCgndGl0bGUnLCBleHRlcm5hbExpbmtBbHQpO1xuXG4gICAgICAgIGNvbnN0IGljb25Ub2tlbnMgPSBpbnRlcm5hbE1hcmtkb3duSXQucGFyc2VJbmxpbmUoYCFbJHtleHRlcm5hbExpbmtBbHR9XSgke1RSQU5TUEFSRU5UX0dJRn0pYClbMF0uY2hpbGRyZW47XG5cbiAgICAgICAgaWNvblRva2Vuc1swXS5hdHRySm9pbignY2xhc3MnLCAnd2ViY2hhdF9fbWFya2Rvd25fX2V4dGVybmFsLWxpbmstaWNvbicpO1xuXG4gICAgICAgIHRva2Vucy5zcGxpY2UoaW5kZXggKyAyLCAwLCAuLi5pY29uVG9rZW5zKTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC5yZW5kZXIobWFya2Rvd24pO1xuXG4gIC8vIFRoZSBzaWduYXR1cmUgZnJvbSBcInNhbml0aXplLWh0bWxcIiBtb2R1bGUgaXMgbm90IGNvcnJlY3QuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gc2FuaXRpemVIVE1MKGh0bWwsIFNBTklUSVpFX0hUTUxfT1BUSU9OUyk7XG59XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJNYXJrZG93bi50cyJdLCJuYW1lcyI6WyJTQU5JVElaRV9IVE1MX09QVElPTlMiLCJhbGxvd2VkQXR0cmlidXRlcyIsImEiLCJpbWciLCJhbGxvd2VkU2NoZW1lcyIsImFsbG93ZWRUYWdzIiwiVFJBTlNQQVJFTlRfR0lGIiwiaW50ZXJuYWxNYXJrZG93bkl0IiwiTWFya2Rvd25JdCIsIk1BUktET1dOX0FUVFJTX0xFRlRfREVMSU1JVEVSIiwiTUFSS0RPV05fQVRUUlNfTEVGVF9ERUxJTUlURVJfUEFUVEVSTiIsIlJlZ0V4cCIsIk1BUktET1dOX0FUVFJTX1JJR0hUX0RFTElNSVRFUiIsIk1BUktET1dOX0FUVFJTX1JJR0hUX0RFTElNSVRFUl9QQVRURVJOIiwicmVuZGVyIiwibWFya2Rvd24iLCJtYXJrZG93blJlc3BlY3RDUkxGIiwiZXh0ZXJuYWxMaW5rQWx0IiwicmVwbGFjZSIsImNhcnJpYWdlUmV0dXJuIiwiXyIsInZhbHVlSW5zaWRlUXVvdGVzIiwiaHRtbCIsImJyZWFrcyIsImxpbmtpZnkiLCJ0eXBvZ3JhcGhlciIsInhodG1sT3V0IiwidXNlIiwibWFya2Rvd25JdEF0dHJzIiwibGVmdERlbGltaXRlciIsInJpZ2h0RGVsaW1pdGVyIiwiaXRlcmF0b3IiLCJ0b2tlbnMiLCJpbmRleCIsInRva2VuIiwiYXR0clNldCIsImxpbmtPcGVuVG9rZW4iLCJmaW5kIiwidHlwZSIsImF0dHJzIiwibmFtZSIsImhyZWYiLCJ0ZXN0IiwiaWNvblRva2VucyIsInBhcnNlSW5saW5lIiwiY2hpbGRyZW4iLCJhdHRySm9pbiIsInNwbGljZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUxBO0FBT0EsSUFBTUEscUJBQXFCLEdBQUc7QUFDNUJDLEVBQUFBLGlCQUFpQixFQUFFO0FBQ2pCQyxJQUFBQSxDQUFDLEVBQUUsQ0FBQyxZQUFELEVBQWUsTUFBZixFQUF1QixNQUF2QixFQUErQixL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Q1I3QixNQXBDUSxDQW9DREMsUUFwQ0MsQ0FBWCxDQW5CUSxDQXlEUjtBQUNBOztBQUNBTyxFQUFBQSxJQUFJLEdBQUdBLElBQUksQ0FBQ0osT0FBTCxDQUFhUixxQ0FBYixFQUFvRCxHQUFwRCxFQUF5RFEsT0FBekQsQ0FBaUVMLHNDQUFqRSxFQUF5RyxHQUF6RyxDQUFQLENBM0RRLENBNkRSO0FBQ0E7O0FBQ0EsU0FBTywyQkFBYVMsSUFBYixFQUFtQnRCLHFCQUFuQixDQUFQO0FBQ0QiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFswLCAxLCAyXSB9XSAqL1xuXG5pbXBvcnQgaXRlcmF0b3IgZnJvbSAnbWFya2Rvd24taXQtZm9yLWlubGluZSc7XG5pbXBvcnQgTWFya2Rvd25JdCBmcm9tICdtYXJrZG93bi1pdCc7XG5pbXBvcnQgbWFya2Rvd25JdEF0dHJzIGZyb20gJ21hcmtkb3duLWl0LWF0dHJzLWVzNSc7XG5pbXBvcnQgc2FuaXRpemVIVE1MIGZyb20gJ3Nhbml0aXplLWh0bWwnO1xuXG5jb25zdCBTQU5JVElaRV9IVE1MX09QVElPTlMgPSB7XG4gIGFsbG93ZWRBdHRyaWJ1dGVzOiB7XG4gICAgYTogWydhcmlhLWxhYmVsJywgJ2hyZWYnLCAnbmFtZScsICdyZWwnLCAndGFyZ2V0JywgJ3RpdGxlJ10sXG4gICAgaW1nOiBbJ2FsdCcsICdjbGFzcycsICdzcmMnXVxuICB9LFxuICBhbGxvd2VkU2NoZW1lczogWydkYXRhJywgJ2h0dHAnLCAnaHR0cHMnLCAnZnRwJywgJ21haWx0bycsICdzaXAnLCAndGVsJ10sXG4gIGFsbG93ZWRUYWdzOiBbXG4gICAgJ2EnLFxuICAgICdiJyxcbiAgICAnYmxvY2txdW90ZScsXG4gICAgJ2JyJyxcbiAgICAnY2FwdGlvbicsXG4gICAgJ2NvZGUnLFxuICAgICdkZWwnLFxuICAgICdkaXYnLFxuICAgICdlbScsXG4gICAgJ2gxJyxcbiAgICAnaDInLFxuICAgICdoMycsXG4gICAgJ2g0JyxcbiAgICAnaDUnLFxuICAgICdoNicsXG4gICAgJ2hyJyxcbiAgICAnaScsXG4gICAgJ2ltZycsXG4gICAgJ2lucycsXG4gICAgJ2xpJyxcbiAgICAnbmwnLFxuICAgICdvbCcsXG4gICAgJ3AnLFxuICAgICdwcmUnLFxuICAgICdzJyxcbiAgICAnc3BhbicsXG4gICAgJ3N0cmlrZScsXG4gICAgJ3N0cm9uZycsXG4gICAgJ3RhYmxlJyxcbiAgICAndGJvZHknLFxuICAgICd0ZCcsXG4gICAgJ3Rmb290JyxcbiAgICAndGgnLFxuICAgICd0aGVhZCcsXG4gICAgJ3RyJyxcbiAgICAndWwnXG4gIF1cbn07XG5cbi8vIFB1dCBhIHRyYW5zcGFyZW50IHBpeGVsIGluc3RlYWQgb2YgdGhlIFwib3BlbiBpbiBuZXcgd2luZG93XCIgaWNvbiwgc28gZGV2ZWxvcGVycyBjYW4gZWFzaWx5IG1vZGlmeSB0aGUgaWNvbiBpbiBDU1MuXG5jb25zdCBUUkFOU1BBUkVOVF9HSUYgPSAnZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3JztcblxuLy8gVGhpcyBpcyB1c2VkIGZvciBwYXJzaW5nIE1hcmtkb3duIGZvciBleHRlcm5hbCBsaW5rcy5cbmNvbnN0IGludGVybmFsTWFya2Rvd25JdCA9IG5ldyBNYXJrZG93bkl0KCk7XG5cbmNvbnN0IE1BUktET1dOX0FUVFJTX0xFRlRfREVMSU1JVEVSID0gJ+KfrCc7XG4vLyBNYWtlIHN1cmUgdGhlIGRlbGltaXRlciBpcyBmcmVlIGZyb20gYW55IFJlZ0V4cCBjaGFyYWN0ZXJzLCBzdWNoIGFzICosID8sIGV0Yy5cbi8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBcInVcIiBmbGFnIGFuZCBCYWJlbCBjb3VsZCBub3QgcmVtb3ZlIGl0LiBXZSBpbnRlbnRpb25hbGx5IG9taXR0aW5nIHRoZSBcInVcIiBmbGFnIGhlcmUuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW5vbi1saXRlcmFsLXJlZ2V4cCwgcmVxdWlyZS11bmljb2RlLXJlZ2V4cFxuY29uc3QgTUFSS0RPV05fQVRUUlNfTEVGVF9ERUxJTUlURVJfUEFUVEVSTiA9IG5ldyBSZWdFeHAoTUFSS0RPV05fQVRUUlNfTEVGVF9ERUxJTUlURVIsICdnJyk7XG5cbmNvbnN0IE1BUktET1dOX0FUVFJTX1JJR0hUX0RFTElNSVRFUiA9ICfin60nO1xuLy8gTWFrZSBzdXJlIHRoZSBkZWxpbWl0ZXIgaXMgZnJlZSBmcm9tIGFueSBSZWdFeHAgY2hhcmFjdGVycywgc3VjaCBhcyAqLCA/LCBldGMuXG4vLyBJRTExIGRvZXMgbm90IHN1cHBvcnQgXCJ1XCIgZmxhZyBhbmQgQmFiZWwgY291bGQgbm90IHJlbW92ZSBpdC4gV2UgaW50ZW50aW9uYWxseSBvbWl0dGluZyB0aGUgXCJ1XCIgZmxhZyBoZXJlLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1ub24tbGl0ZXJhbC1yZWdleHAsIHJlcXVpcmUtdW5pY29kZS1yZWdleHBcbmNvbnN0IE1BUktET1dOX0FUVFJTX1JJR0hUX0RFTElNSVRFUl9QQVRURVJOID0gbmV3IFJlZ0V4cChNQVJLRE9XTl9BVFRSU19SSUdIVF9ERUxJTUlURVIsICdnJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmRlcihcbiAgbWFya2Rvd246IHN0cmluZyxcbiAgeyBtYXJrZG93blJlc3BlY3RDUkxGIH06IHsgbWFya2Rvd25SZXNwZWN0Q1JMRjogYm9vbGVhbiB9LFxuICB7IGV4dGVybmFsTGlua0FsdCA9ICcnIH06IHsgZXh0ZXJuYWxMaW5rQWx0Pzogc3RyaW5nIH0gPSB7fVxuKTogc3RyaW5nIHtcbiAgaWYgKG1hcmtkb3duUmVzcGVjdENSTEYpIHtcbiAgICBtYXJrZG93biA9IG1hcmtkb3duLnJlcGxhY2UoL1xcblxccnxcXHJcXG4vZ3UsIGNhcnJpYWdlUmV0dXJuID0+IChjYXJyaWFnZVJldHVybiA9PT0gJ1xcblxccicgPyAnXFxyXFxuJyA6ICdcXG5cXHInKSk7XG4gIH1cblxuICAvLyBSZWxhdGVkIHRvICMzMTY1LlxuICAvLyBXZSBvbmx5IHN1cHBvcnQgYXR0cmlidXRlcyBcImFyaWEtbGFiZWxcIiBhbmQgc2hvdWxkIGxlYXZlIG90aGVyIGF0dHJpYnV0ZXMgYXMtaXMuXG4gIC8vIEhvd2V2ZXIsIGBtYXJrZG93bi1pdC1hdHRyc2AgcmVtb3ZlIHVucmVjb2duaXplZCBhdHRyaWJ1dGVzLCBzdWNoIGFzIHtoZWxsb30uXG4gIC8vIEJlZm9yZSBwYXNzaW5nIHRvIGBtYXJrZG93bi1pdC1hdHRyc2AsIHdlIHdpbGwgY29udmVydCBrbm93biBhdHRyaWJ1dGVzIGZyb20ge2FyaWEtbGFiZWw9XCIuLi5cIn0gaW50byDin6xhcmlhLWxhYmVsPVwiLi4uXCLin60gKHVzaW5nIHdoaXRlIHRvcnRvaXNlIHNoZWxsIGJyYWNrZXRzKS5cbiAgLy8gVGhlbiwgd2UgYXNrIGBtYXJrZG93bi1pdC1hdHRyc2AgdG8gb25seSBwcm9jZXNzIHRoZSBuZXcgYnJhY2tldHMsIHNvIGl0IHNob3VsZCBvbmx5IHRyeSB0byBwcm9jZXNzIHRoaW5ncyB0aGF0IHdlIGFsbG93bGlzdGVkLlxuICAvLyBMYXN0bHksIHdlIHJldmVydCB0b3J0b2lzZSBzaGVsbCBicmFja2V0cyBiYWNrIHRvIGN1cmx5IGJyYWNrZXRzLCBmb3IgdW5wcm9jZXNzZWQgYXR0cmlidXRlcy5cbiAgbWFya2Rvd24gPSBtYXJrZG93blxuICAgIC5yZXBsYWNlKC9cXHtcXHMqYXJpYS1sYWJlbCgpXFxzKlxcfS9naXUsIGAke01BUktET1dOX0FUVFJTX0xFRlRfREVMSU1JVEVSfWFyaWEtbGFiZWwke01BUktET1dOX0FUVFJTX1JJR0hUX0RFTElNSVRFUn1gKVxuICAgIC5yZXBsYWNlKFxuICAgICAgL1xce1xccyphcmlhLWxhYmVsPShcIlteXCJdKlwifFteXFxzfV0qKVxccypcXH0vZ2l1LFxuICAgICAgKF8sIHZhbHVlSW5zaWRlUXVvdGVzKSA9PlxuICAgICAgICBgJHtNQVJLRE9XTl9BVFRSU19MRUZUX0RFTElNSVRFUn1hcmlhLWxhYmVsPSR7dmFsdWVJbnNpZGVRdW90ZXN9JHtNQVJLRE9XTl9BVFRSU19SSUdIVF9ERUxJTUlURVJ9YFxuICAgICk7XG5cbiAgbGV0IGh0bWwgPSBuZXcgTWFya2Rvd25JdCh7XG4gICAgYnJlYWtzOiBmYWxzZSxcbiAgICBodG1sOiBmYWxzZSxcbiAgICBsaW5raWZ5OiB0cnVlLFxuICAgIHR5cG9ncmFwaGVyOiB0cnVlLFxuICAgIHhodG1sT3V0OiB0cnVlXG4gIH0pXG4gICAgLnVzZShtYXJrZG93bkl0QXR0cnMsIHtcbiAgICAgIC8vIGBtYXJrZG93bi1pdC1hdHRyc2AgaXMgYWRkZWQgZm9yIGFjY2Vzc2liaWxpdHkgYW5kIGFsbG93IGJvdCBkZXZlbG9wZXJzIHRvIHNwZWNpZnkgYGFyaWEtbGFiZWxgLlxuICAgICAgLy8gV2UgYXJlIGFsbG93bGlzdGluZyBgYXJpYS1sYWJlbGAgb25seSBhcyBpdCBpcyBhbGxvd2xpc3RlZCBpbiBgc2FuaXRpemUtaHRtbGAuXG4gICAgICAvLyBPdGhlciBgYXJpYS0qYCB3aWxsIGJlIHNhbml0aXplZCBldmVuIHdlIGFsbG93bGlzdGVkIGhlcmUuXG4gICAgICBhbGxvd2VkQXR0cmlidXRlczogWydhcmlhLWxhYmVsJ10sXG4gICAgICBsZWZ0RGVsaW1pdGVyOiBNQVJLRE9XTl9BVFRSU19MRUZUX0RFTElNSVRFUixcbiAgICAgIHJpZ2h0RGVsaW1pdGVyOiBNQVJLRE9XTl9BVFRSU19SSUdIVF9ERUxJTUlURVJcbiAgICB9KVxuICAgIC51c2UoaXRlcmF0b3IsICd1cmxfbmV3X3dpbicsICdsaW5rX29wZW4nLCAodG9rZW5zLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbK2luZGV4XTtcblxuICAgICAgdG9rZW4uYXR0clNldCgncmVsJywgJ25vb3BlbmVyIG5vcmVmZXJyZXInKTtcbiAgICAgIHRva2VuLmF0dHJTZXQoJ3RhcmdldCcsICdfYmxhbmsnKTtcblxuICAgICAgY29uc3QgbGlua09wZW5Ub2tlbiA9IHRva2Vucy5maW5kKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gJ2xpbmtfb3BlbicpO1xuICAgICAgY29uc3QgWywgaHJlZl0gPSBsaW5rT3BlblRva2VuLmF0dHJzLmZpbmQoKFtuYW1lXSkgPT4gbmFtZSA9PT0gJ2hyZWYnKTtcblxuICAgICAgLy8gQWRkcyBhIG5ldyBpY29uIGlmIHRoZSBsaW5rIGlzIGh0dHA6IG9yIGh0dHBzOi5cbiAgICAgIC8vIERvbid0IGFkZCBpZiBpdCdzIGEgcGhvbmUgbnVtYmVyLCBldGMuXG4gICAgICBpZiAoL15odHRwcz86L2l1LnRlc3QoaHJlZikpIHtcbiAgICAgICAgZXh0ZXJuYWxMaW5rQWx0ICYmIHRva2VuLmF0dHJTZXQoJ3RpdGxlJywgZXh0ZXJuYWxMaW5rQWx0KTtcblxuICAgICAgICBjb25zdCBpY29uVG9rZW5zID0gaW50ZXJuYWxNYXJrZG93bkl0LnBhcnNlSW5saW5lKGAhWyR7ZXh0ZXJuYWxMaW5rQWx0fV0oJHtUUkFOU1BBUkVOVF9HSUZ9KWApWzBdLmNoaWxkcmVuO1xuXG4gICAgICAgIGljb25Ub2tlbnNbMF0uYXR0ckpvaW4oJ2NsYXNzJywgJ3dlYmNoYXRfX21hcmtkb3duX19leHRlcm5hbC1saW5rLWljb24nKTtcblxuICAgICAgICB0b2tlbnMuc3BsaWNlKGluZGV4ICsgMiwgMCwgLi4uaWNvblRva2Vucyk7XG4gICAgICB9XG4gICAgfSlcbiAgICAucmVuZGVyKG1hcmtkb3duKTtcblxuICAvLyBSZXN0b3JlIGF0dHJpYnV0ZXMgbm90IHByb2Nlc3NlZCBieSBgbWFya2Rvd24taXQtYXR0cnNgLlxuICAvLyBUT0RPOiBbUDJdICMyNTExIEFmdGVyIHdlIGZpeGVkIG91ciBwb2x5ZmlsbCBzdG9yeSwgd2Ugc2hvdWxkIHVzZSBcIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbFwiIGluc3RlYWQgb2YgUmVnRXhwIGZvciByZXBsYWNlIGFsbCBvY2N1cnJlbmNlcy5cbiAgaHRtbCA9IGh0bWwucmVwbGFjZShNQVJLRE9XTl9BVFRSU19MRUZUX0RFTElNSVRFUl9QQVRURVJOLCAneycpLnJlcGxhY2UoTUFSS0RPV05fQVRUUlNfUklHSFRfREVMSU1JVEVSX1BBVFRFUk4sICd9Jyk7XG5cbiAgLy8gVGhlIHNpZ25hdHVyZSBmcm9tIFwic2FuaXRpemUtaHRtbFwiIG1vZHVsZSBpcyBub3QgY29ycmVjdC5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gc2FuaXRpemVIVE1MKGh0bWwsIFNBTklUSVpFX0hUTUxfT1BUSU9OUyk7XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"CustomAudioInputStream.d.ts","sourceRoot":"","sources":["../../src/speech/CustomAudioInputStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomAudioInputStream.d.ts","sourceRoot":"","sources":["../../src/speech/CustomAudioInputStream.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,8 @@ var _AudioStreamFormat = require("microsoft-cognitiveservices-speech-sdk/distrib
35
35
 
36
36
  var _Exports2 = require("microsoft-cognitiveservices-speech-sdk/distrib/lib/src/common.speech/Exports");
37
37
 
38
+ var _botframeworkWebchatCore = require("botframework-webchat-core");
39
+
38
40
  var _uuid = require("uuid");
39
41
 
40
42
  var _pDeferEs = _interopRequireDefault(require("p-defer-es5"));
@@ -68,10 +70,18 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
68
70
  var normalizedOptions = {
69
71
  debug: options.debug || false,
70
72
  id: options.id || (0, _uuid.v4)().replace(/\x2D/g, '')
71
- };
72
- _this[SYMBOL_DEVICE_INFO_DEFERRED] = (0, _pDeferEs.default)();
73
- _this[SYMBOL_EVENTS] = new _Exports.EventSource();
74
- _this[SYMBOL_FORMAT_DEFERRED] = (0, _pDeferEs.default)();
73
+ }; // False alarm: indexer is a constant of type Symbol.
74
+ // eslint-disable-next-line security/detect-object-injection
75
+
76
+ _this[SYMBOL_DEVICE_INFO_DEFERRED] = (0, _pDeferEs.default)(); // False alarm: indexer is a constant of type Symbol.
77
+ // eslint-disable-next-line security/detect-object-injection
78
+
79
+ _this[SYMBOL_EVENTS] = new _Exports.EventSource(); // False alarm: indexer is a constant of type Symbol.
80
+ // eslint-disable-next-line security/detect-object-injection
81
+
82
+ _this[SYMBOL_FORMAT_DEFERRED] = (0, _pDeferEs.default)(); // False alarm: indexer is a constant of type Symbol.
83
+ // eslint-disable-next-line security/detect-object-injection
84
+
75
85
  _this[SYMBOL_OPTIONS] = normalizedOptions;
76
86
  return _this;
77
87
  }
@@ -81,9 +91,10 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
81
91
  get:
82
92
  /** Gets the event source for listening to events. */
83
93
  // ESLint: This code will only works in browsers other than IE11. Only works in ES5 is okay.
84
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
85
94
  // @ts-ignore Accessors are only available when targeting ECMAScript 5 and higher.ts(1056)
86
95
  function get() {
96
+ // False alarm: indexer is a constant of type Symbol.
97
+ // eslint-disable-next-line security/detect-object-injection
87
98
  return this[SYMBOL_EVENTS];
88
99
  }
89
100
  /** Gets the format of the audio stream. */
@@ -93,13 +104,14 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
93
104
  // Speech SDK quirks: In normal speech recognition, getter of "format" is called only after "attach".
94
105
  // But in Direct Line Speech, it is called before "attach".
95
106
  // ESLint: This code will only works in browsers other than IE11. Only works in ES5 is okay.
96
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
97
107
  // @ts-ignore Accessors are only available when targeting ECMAScript 5 and higher.ts(1056)
98
108
 
99
109
  }, {
100
110
  key: "format",
101
111
  get: function get() {
102
- this.debug('Getting "format".');
112
+ this.debug('Getting "format".'); // False alarm: indexer is a constant of type Symbol.
113
+ // eslint-disable-next-line security/detect-object-injection
114
+
103
115
  return this[SYMBOL_FORMAT_DEFERRED].promise;
104
116
  }
105
117
  /** Gets the ID of this audio stream. */
@@ -107,6 +119,8 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
107
119
  }, {
108
120
  key: "id",
109
121
  value: function id() {
122
+ // False alarm: indexer is a constant of type Symbol.
123
+ // eslint-disable-next-line security/detect-object-injection
110
124
  return this[SYMBOL_OPTIONS].id;
111
125
  }
112
126
  /** Emits an event. */
@@ -116,6 +130,8 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
116
130
  }, {
117
131
  key: "onEvent",
118
132
  value: function onEvent(event) {
133
+ // False alarm: indexer is a constant of type Symbol.
134
+ // eslint-disable-next-line security/detect-object-injection
119
135
  this[SYMBOL_EVENTS].onEvent(event);
120
136
 
121
137
  _Exports.Events.instance.onEvent(event);
@@ -193,7 +209,6 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
193
209
  this.onEvent(new _Exports.AudioSourceOffEvent(this.id()));
194
210
  } // Speech SDK quirks: Although "close" is marked as abstract, it is never called in our observations.
195
211
  // ESLint: Speech SDK requires this function, but we are not implementing it.
196
- // eslint-disable-next-line class-methods-use-this
197
212
 
198
213
  }, {
199
214
  key: "close",
@@ -227,7 +242,8 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
227
242
  }
228
243
 
229
244
  // ESLint: For debugging, will only log when "debug" is set to "true".
230
- // eslint-disable-next-line no-console
245
+ // False alarm: indexer is a constant of type Symbol.
246
+ // eslint-disable-next-line no-console, security/detect-object-injection
231
247
  this[SYMBOL_OPTIONS].debug && (_console = console).info.apply(_console, ["CustomAudioInputStream: ".concat(message)].concat(args));
232
248
  }
233
249
  /** Implements this function. When called, it should start recording and return an `IAudioStreamNode`. */
@@ -262,7 +278,11 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
262
278
 
263
279
  // Although only getter of "format" is called before "attach" (in Direct Line Speech),
264
280
  // we are handling both "deviceInfo" and "format" in similar way for uniformity.
265
- _this2[SYMBOL_DEVICE_INFO_DEFERRED].resolve(deviceInfo);
281
+ // False alarm: indexer is a constant of type Symbol.
282
+ // eslint-disable-next-line security/detect-object-injection
283
+ _this2[SYMBOL_DEVICE_INFO_DEFERRED].resolve(deviceInfo); // False alarm: indexer is a constant of type Symbol.
284
+ // eslint-disable-next-line security/detect-object-injection
285
+
266
286
 
267
287
  _this2[SYMBOL_FORMAT_DEFERRED].resolve(new _AudioStreamFormat.AudioStreamFormatImpl(format.samplesPerSec, format.bitsPerSample, format.channels));
268
288
 
@@ -377,13 +397,14 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
377
397
  }()
378
398
  /** Gets the device information. */
379
399
  // ESLint: This code will only works in browsers other than IE11. Only works in ES5 is okay.
380
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
381
400
  // @ts-ignore Accessors are only available when targeting ECMAScript 5 and higher.ts(1056)
382
401
 
383
402
  }, {
384
403
  key: "deviceInfo",
385
404
  get: function get() {
386
- this.debug("Getting \"deviceInfo\".");
405
+ this.debug("Getting \"deviceInfo\"."); // False alarm: indexer is a constant of type Symbol.
406
+ // eslint-disable-next-line security/detect-object-injection
407
+
387
408
  return Promise.all([this[SYMBOL_DEVICE_INFO_DEFERRED].promise, this[SYMBOL_FORMAT_DEFERRED].promise]).then(function (_ref2) {
388
409
  var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
389
410
  _ref3$ = _ref3[0],
@@ -399,11 +420,15 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
399
420
  return {
400
421
  bitspersample: bitsPerSample,
401
422
  channelcount: channels,
402
- connectivity: typeof connectivity === 'string' ? _Exports2.connectivity[connectivity] : connectivity || _Exports2.connectivity.Unknown,
423
+ connectivity: typeof connectivity === 'string' && !(0, _botframeworkWebchatCore.isForbiddenPropertyName)(connectivity) ? // Mitigated through denylisting.
424
+ // eslint-disable-next-line security/detect-object-injection
425
+ _Exports2.connectivity[connectivity] : connectivity || _Exports2.connectivity.Unknown,
403
426
  manufacturer: manufacturer || '',
404
427
  model: model || '',
405
428
  samplerate: samplesPerSec,
406
- type: typeof type === 'string' ? _Exports2.type[type] : type || _Exports2.type.Unknown
429
+ // Mitigated through denylisting.
430
+ // eslint-disable-next-line security/detect-object-injection
431
+ type: typeof type === 'string' && !(0, _botframeworkWebchatCore.isForbiddenPropertyName)(type) ? _Exports2.type[type] : type || _Exports2.type.Unknown
407
432
  };
408
433
  });
409
434
  }
@@ -413,4 +438,4 @@ var CustomAudioInputStream = /*#__PURE__*/function (_AudioInputStream) {
413
438
 
414
439
  var _default = CustomAudioInputStream;
415
440
  exports.default = _default;
416
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvQ3VzdG9tQXVkaW9JbnB1dFN0cmVhbS50cyJdLCJuYW1lcyI6WyJTWU1CT0xfREVWSUNFX0lORk9fREVGRVJSRUQiLCJTeW1ib2wiLCJTWU1CT0xfRVZFTlRTIiwiU1lNQk9MX0ZPUk1BVF9ERUZFUlJFRCIsIlNZTUJPTF9PUFRJT05TIiwiQ3VzdG9tQXVkaW9JbnB1dFN0cmVhbSIsIm9wdGlvbnMiLCJub3JtYWxpemVkT3B0aW9ucyIsImRlYnVnIiwiaWQiLCJyZXBsYWNlIiwiRXZlbnRTb3VyY2UiLCJwcm9taXNlIiwiZXZlbnQiLCJvbkV2ZW50IiwiRXZlbnRzIiwiaW5zdGFuY2UiLCJBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50IiwiQXVkaW9Tb3VyY2VSZWFkeUV2ZW50IiwiZXJyb3IiLCJBdWRpb1NvdXJjZUVycm9yRXZlbnQiLCJtZXNzYWdlIiwiYXVkaW9Ob2RlSWQiLCJBdWRpb1N0cmVhbU5vZGVBdHRhY2hpbmdFdmVudCIsIkF1ZGlvU3RyZWFtTm9kZUF0dGFjaGVkRXZlbnQiLCJBdWRpb1N0cmVhbU5vZGVFcnJvckV2ZW50IiwiQXVkaW9TdHJlYW1Ob2RlRGV0YWNoZWRFdmVudCIsIkF1ZGlvU291cmNlT2ZmRXZlbnQiLCJFcnJvciIsImFyZ3MiLCJjb25zb2xlIiwiaW5mbyIsImVtaXROb2RlQXR0YWNoaW5nIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZW1pdEluaXRpYWxpemluZyIsInBlcmZvcm1BdHRhY2giLCJhdWRpb1N0cmVhbU5vZGUiLCJkZXZpY2VJbmZvIiwiZm9ybWF0IiwiQXVkaW9TdHJlYW1Gb3JtYXRJbXBsIiwic2FtcGxlc1BlclNlYyIsImJpdHNQZXJTYW1wbGUiLCJjaGFubmVscyIsImVtaXRSZWFkeSIsImVtaXROb2RlQXR0YWNoZWQiLCJkZXRhY2giLCJlbWl0T2ZmIiwiZW1pdE5vZGVEZXRhY2hlZCIsInJlYWQiLCJlbWl0Tm9kZUVycm9yIiwicGVyZm9ybVR1cm5PZmYiLCJhbGwiLCJjb25uZWN0aXZpdHkiLCJtYW51ZmFjdHVyZXIiLCJtb2RlbCIsInR5cGUiLCJiaXRzcGVyc2FtcGxlIiwiY2hhbm5lbGNvdW50IiwiQ29ubmVjdGl2aXR5IiwiVW5rbm93biIsInNhbXBsZXJhdGUiLCJUeXBlIiwiQXVkaW9JbnB1dFN0cmVhbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFjQTs7QUFFQTs7QUFNQTs7QUFDQTs7Ozs7O0FBZ0RBLElBQU1BLDJCQUEyQixHQUFHQyxNQUFNLENBQUMsb0JBQUQsQ0FBMUM7QUFDQSxJQUFNQyxhQUFhLEdBQUdELE1BQU0sQ0FBQyxRQUFELENBQTVCO0FBQ0EsSUFBTUUsc0JBQXNCLEdBQUdGLE1BQU0sQ0FBQyxnQkFBRCxDQUFyQztBQUNBLElBQU1HLGNBQWMsR0FBR0gsTUFBTSxDQUFDLFNBQUQsQ0FBN0IsQyxDQUVBO0FBQ0E7QUFDQTs7SUFDZUksc0I7Ozs7O0FBQ2Isb0NBQW1DO0FBQUE7O0FBQUEsUUFBdkJDLE9BQXVCLHVFQUFKLEVBQUk7QUFBQTtBQUNqQztBQURpQywrRUFjbENOLDJCQWRrQztBQUFBLCtFQWVsQ0UsYUFma0M7QUFBQSwrRUFnQmxDQyxzQkFoQmtDO0FBQUEsK0VBaUJsQ0MsY0FqQmtDO0FBR2pDLFFBQU1HLGlCQUFvQyxHQUFHO0FBQzNDQyxNQUFBQSxLQUFLLEVBQUVGLE9BQU8sQ0FBQ0UsS0FBUixJQUFpQixLQURtQjtBQUUzQ0MsTUFBQUEsRUFBRSxFQUFFSCxPQUFPLENBQUNHLEVBQVIsSUFBYyxnQkFBS0MsT0FBTCxDQUFhLE9BQWIsRUFBb0IsRUFBcEI7QUFGeUIsS0FBN0M7QUFLQSxVQUFLViwyQkFBTCxJQUFvQyx3QkFBcEM7QUFDQSxVQUFLRSxhQUFMLElBQXNCLElBQUlTLG9CQUFKLEVBQXRCO0FBQ0EsVUFBS1Isc0JBQUwsSUFBK0Isd0JBQS9CO0FBQ0EsVUFBS0MsY0FBTCxJQUF1QkcsaUJBQXZCO0FBWGlDO0FBWWxDOzs7OztBQU9EO0FB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RCxXQUFLNUMsS0FBTDtBQUVBLGFBQU95QixPQUFPLENBQUNvQixHQUFSLENBQVksQ0FBQyxLQUFLckQsMkJBQUwsRUFBa0NZLE9BQW5DLEVBQTRDLEtBQUtULHNCQUFMLEVBQTZCUyxPQUF6RSxDQUFaLEVBQStGdUIsSUFBL0YsQ0FDTDtBQUFBO0FBQUE7QUFBQSxZQUFJbUIsWUFBSixVQUFJQSxZQUFKO0FBQUEsWUFBa0JDLFlBQWxCLFVBQWtCQSxZQUFsQjtBQUFBLFlBQWdDQyxLQUFoQyxVQUFnQ0EsS0FBaEM7QUFBQSxZQUF1Q0MsSUFBdkMsVUFBdUNBLElBQXZDO0FBQUE7QUFBQSxZQUFpRGQsYUFBakQsV0FBaURBLGFBQWpEO0FBQUEsWUFBZ0VDLFFBQWhFLFdBQWdFQSxRQUFoRTtBQUFBLFlBQTBFRixhQUExRSxXQUEwRUEsYUFBMUU7O0FBQUEsZUFBZ0c7QUFDOUZnQixVQUFBQSxhQUFhLEVBQUVmLGFBRCtFO0FBRTlGZ0IsVUFBQUEsWUFBWSxFQUFFZixRQUZnRjtBQUc5RlUsVUFBQUEsWUFBWSxFQUNWLE9BQU9BLFlBQVAsS0FBd0IsUUFBeEIsR0FBbUNNLHVCQUFhTixZQUFiLENBQW5DLEdBQWdFQSxZQUFZLElBQUlNLHVCQUFhQyxPQUpEO0FBSzlGTixVQUFBQSxZQUFZLEVBQUVBLFlBQVksSUFBSSxFQUxnRTtBQU05RkMsVUFBQUEsS0FBSyxFQUFFQSxLQUFLLElBQUksRUFOOEU7QUFPOUZNLFVBQUFBLFVBQVUsRUFBRXBCLGFBUGtGO0FBUTlGZSxVQUFBQSxJQUFJLEVBQUUsT0FBT0EsSUFBUCxLQUFnQixRQUFoQixHQUEyQk0sZUFBS04sSUFBTCxDQUEzQixHQUF3Q0EsSUFBSSxJQUFJTSxlQUFLRjtBQVJtQyxTQUFoRztBQUFBLE9BREssQ0FBUDtBQVlEOzs7RUE5TzJDRyxxRDs7ZUFpUC9CM0Qsc0IiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1ZGlvSW5wdXRTdHJlYW0gfSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkayc7XG5cbmltcG9ydCB7XG4gIEF1ZGlvU291cmNlRXJyb3JFdmVudCxcbiAgQXVkaW9Tb3VyY2VFdmVudCxcbiAgQXVkaW9Tb3VyY2VJbml0aWFsaXppbmdFdmVudCxcbiAgQXVkaW9Tb3VyY2VPZmZFdmVudCxcbiAgQXVkaW9Tb3VyY2VSZWFkeUV2ZW50LFxuICBBdWRpb1N0cmVhbU5vZGVBdHRhY2hlZEV2ZW50LFxuICBBdWRpb1N0cmVhbU5vZGVBdHRhY2hpbmdFdmVudCxcbiAgQXVkaW9TdHJlYW1Ob2RlRGV0YWNoZWRFdmVudCxcbiAgQXVkaW9TdHJlYW1Ob2RlRXJyb3JFdmVudCxcbiAgRXZlbnRzLFxuICBFdmVudFNvdXJjZVxufSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkay9kaXN0cmliL2xpYi9zcmMvY29tbW9uL0V4cG9ydHMnO1xuXG5pbXBvcnQgeyBBdWRpb1N0cmVhbUZvcm1hdEltcGwgfSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkay9kaXN0cmliL2xpYi9zcmMvc2RrL0F1ZGlvL0F1ZGlvU3RyZWFtRm9ybWF0JztcblxuaW1wb3J0IHtcbiAgY29ubmVjdGl2aXR5IGFzIENvbm5lY3Rpdml0eSxcbiAgSVNwZWVjaENvbmZpZ0F1ZGlvRGV2aWNlLFxuICB0eXBlIGFzIFR5cGVcbn0gZnJvbSAnbWljcm9zb2Z0LWNvZ25pdGl2ZXNlcnZpY2VzLXNwZWVjaC1zZGsvZGlzdHJpYi9saWIvc3JjL2NvbW1vbi5zcGVlY2gvRXhwb3J0cyc7XG5cbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgY3JlYXRlRGVmZXJyZWQsIHsgRGVmZXJyZWRQcm9taXNlIH0gZnJvbSAncC1kZWZlci1lczUnO1xuXG50eXBlIEF1ZGlvU3RyZWFtTm9kZSA9IHtcbiAgZGV0YWNoOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBpZDogKCkgPT4gc3RyaW5nO1xuICByZWFkOiAoKSA9PiBQcm9taXNlPFN0cmVhbUNodW5rPEFycmF5QnVmZmVyPj47XG59O1xuXG50eXBlIERldmljZUluZm8gPSB7XG4gIGNvbm5lY3Rpdml0eT86IENvbm5lY3Rpdml0eSB8ICdCbHVldG9vdGgnIHwgJ1dpcmVkJyB8ICdXaUZpJyB8ICdDZWxsdWxhcicgfCAnSW5CdWlsdCcgfCAnVW5rbm93bic7XG4gIG1hbnVmYWN0dXJlcj86IHN0cmluZztcbiAgbW9kZWw/OiBzdHJpbmc7XG4gIHR5cGU/OlxuICAgIHwgVHlwZVxuICAgIHwgJ1Bob25lJ1xuICAgIHwgJ1NwZWFrZXInXG4gICAgfCAnQ2FyJ1xuICAgIHwgJ0hlYWRzZXQnXG4gICAgfCAnVGhlcm1vc3RhdCdcbiAgICB8ICdNaWNyb3Bob25lcydcbiAgICB8ICdEZXNrcGhvbmUnXG4gICAgfCAnUmVtb3RlQ29udHJvbCdcbiAgICB8ICdVbmtub3duJ1xuICAgIHwgJ0ZpbGUnXG4gICAgfCAnU3RyZWFtJztcbn07XG5cbnR5cGUgRm9ybWF0ID0ge1xuICBiaXRzUGVyU2FtcGxlOiBudW1iZXI7XG4gIGNoYW5uZWxzOiBudW1iZXI7XG4gIHNhbXBsZXNQZXJTZWM6IG51bWJlcjtcbn07XG5cbnR5cGUgTm9ybWFsaXplZE9wdGlvbnMgPSBSZXF1aXJlZDxPbWl0PE9wdGlvbnMsICdkZWJ1Zyc+PiAmIHtcbiAgZGVidWc6IGJvb2xlYW47XG59O1xuXG50eXBlIE9wdGlvbnMgPSB7XG4gIGRlYnVnPzogdHJ1ZTtcbiAgaWQ/OiBzdHJpbmc7XG59O1xuXG50eXBlIFN0cmVhbUNodW5rPFQ+ID0ge1xuICBpc0VuZDogYm9vbGVhbjtcbiAgYnVmZmVyOiBUO1xuICB0aW1lUmVjZWl2ZWQ6IG51bWJlcjtcbn07XG5cbmNvbnN0IFNZTUJPTF9ERVZJQ0VfSU5GT19ERUZFUlJFRCA9IFN5bWJvbCgnZGV2aWNlSW5mb0RlZmVycmVkJyk7XG5jb25zdCBTWU1CT0xfRVZFTlRTID0gU3ltYm9sKCdldmVudHMnKTtcbmNvbnN0IFNZTUJPTF9GT1JNQVRfREVGRVJSRUQgPSBTeW1ib2woJ2Zvcm1hdERlZmVycmVkJyk7XG5jb25zdCBTWU1CT0xfT1BUSU9OUyA9IFN5bWJvbCgnb3B0aW9ucycpO1xuXG4vLyBTcGVlY2ggU0RLIHF1aXJrczogT25seSAyIGxpZmVjeWNsZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IHVzZWQuXG4vLyAgICAgICAgICAgICAgICAgICAgVGhleSBhcmU6IGF0dGFjaCgpIGFuZCB0dXJuT2ZmKCkuXG4vLyAgICAgICAgICAgICAgICAgICAgT3RoZXJzIGFyZSBub3QgdXNlZCwgaW5jbHVkaW5nOiBibG9iKCksIGNsb3NlKCksIGRldGFjaCgpLCB0dXJuT24oKS5cbmFic3RyYWN0IGNsYXNzIEN1c3RvbUF1ZGlvSW5wdXRTdHJlYW0gZXh0ZW5kcyBBdWRpb0lucHV0U3RyZWFtIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRPcHRpb25zOiBOb3JtYWxpemVkT3B0aW9ucyA9IHtcbiAgICAgIGRlYnVnOiBvcHRpb25zLmRlYnVnIHx8IGZhbHNlLFxuICAgICAgaWQ6IG9wdGlvbnMuaWQgfHwgdjQoKS5yZXBsYWNlKC8tL2d1LCAnJylcbiAgICB9O1xuXG4gICAgdGhpc1tTWU1CT0xfREVWSUNFX0lORk9fREVGRVJSRURdID0gY3JlYXRlRGVmZXJyZWQ8RGV2aWNlSW5mbz4oKTtcbiAgICB0aGlzW1NZTUJPTF9FVkVOVFNdID0gbmV3IEV2ZW50U291cmNlPEF1ZGlvU291cmNlRXZlbnQ+KCk7XG4gICAgdGhpc1tTWU1CT0xfRk9STUFUX0RFRkVSUkVEXSA9IGNyZWF0ZURlZmVycmVkPEF1ZGlvU3RyZWFtRm9ybWF0SW1wbD4oKTtcbiAgICB0aGlzW1NZTUJPTF9PUFRJT05TXSA9IG5vcm1hbGl6ZWRPcHRpb25zO1xuICB9XG5cbiAgW1NZTUJPTF9ERVZJQ0VfSU5GT19ERUZFUlJFRF06IERlZmVycmVkUHJvbWlzZTxEZXZpY2VJbmZvPjtcbiAgW1NZTUJPTF9FVkVOVFNdOiBFdmVudFNvdXJjZTxBdWRpb1NvdXJjZUV2ZW50PjtcbiAgW1NZTUJPTF9GT1JNQVRfREVGRVJSRURdOiBEZWZlcnJlZFByb21pc2U8QXVkaW9TdHJlYW1Gb3JtYXRJbXBsPjtcbiAgW1NZTUJPTF9PUFRJT05TXTogTm9ybWFsaXplZE9wdGlvbnM7XG5cbiAgLyoqIEdldHMgdGhlIGV2ZW50IHNvdXJjZSBmb3IgbGlzdGVuaW5nIHRvIGV2ZW50cy4gKi9cbiAgLy8gRVNMaW50OiBUaGlzIGNvZGUgd2lsbCBvbmx5IHdvcmtzIGluIGJyb3dzZXJzIG90aGVyIHRoYW4gSUUxMS4gT25seSB3b3JrcyBpbiBFUzUgaXMgb2theS5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlIEFjY2Vzc29ycyBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0YXJnZXRpbmcgRUNNQVNjcmlwdCA1IGFuZCBoaWdoZXIudHMoMTA1NilcbiAgZ2V0IGV2ZW50cygpOiBFdmVudFNvdXJjZTxBdWRpb1NvdXJjZUV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXNbU1lNQk9MX0VWRU5UU107XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZm9ybWF0IG9mIHRoZSBhdWRpbyBzdHJlYW0uICovXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBgQXVkaW9TdHJlYW1Gb3JtYXRJbXBsYCBpcyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiB3aGlsZSBgQXVkaW9TdHJlYW1Gb3JtYXRgIGlzIHB1YmxpYy5cbiAgLy8gICAgICAgICAgICAgICAgICAgIEl0IGlzIHdlaXJkIHRvIGV4cG9zZSBgQXVkaW9TdHJlYW1Gb3JtYXRJbXBsYCBpbnN0ZWFkIG9mIGBBdWRpb1N0cmVhbUZvcm1hdGAuXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBJdCBpcyB3ZWlyZCB0byByZXR1cm4gYSBgUHJvbWlzZWAgaW4gYSBwcm9wZXJ0eS5cbiAgLy8gU3BlZWNoIFNESyBxdWlya3M6IEluIG5vcm1hbCBzcGVlY2ggcmVjb2duaXRpb24sIGdldHRlciBvZiBcImZvcm1hdFwiIGlzIGNhbGxlZCBvbmx5IGFmdGVyIFwiYXR0YWNoXCIuXG4gIC8vICAgICAgICAgICAgICAgICAgICBCdXQgaW4gRGlyZWN0IExpbmUgU3BlZWNoLCBpdCBpcyBjYWxsZWQgYmVmb3JlIFwiYXR0YWNoXCIuXG4gIC8vIEVTTGludDogVGhpcyBjb2RlIHdpbGwgb25seSB3b3JrcyBpbiBicm93c2VycyBvdGhlciB0aGFuIElFMTEuIE9ubHkgd29ya3MgaW4gRVM1IGlzIG9rYXkuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZSBBY2Nlc3NvcnMgYXJlIG9ubHkgYXZhaWxhYmxlIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgNSBhbmQgaGlnaGVyLnRzKDEwNTYpXG4gIGdldCBmb3JtYXQoKTogUHJvbWlzZTxBdWRpb1N0cmVhbUZvcm1hdEltcGw+IHtcbiAgICB0aGlzLmRlYnVnKCdHZXR0aW5nIFwiZm9ybWF0XCIuJyk7XG5cbiAgICByZXR1cm4gdGhpc1tTWU1CT0xfRk9STUFUX0RFRkVSUkVEXS5wcm9taXNlO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIElEIG9mIHRoaXMgYXVkaW8gc3RyZWFtLiAqL1xuICBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzW1NZTUJPTF9PUFRJT05TXS5pZDtcbiAgfVxuXG4gIC8qKiBFbWl0cyBhbiBldmVudC4gKi9cbiAgLy8gU3BlZWNoIFNESyBxdWlya3M6IEluIEphdmFTY3JpcHQsIG9uWHh4IG1lYW5zIFwibGlzdGVuIHRvIGV2ZW50IFhYWFwiLlxuICAvLyAgICAgICAgICAgICAgICAgICAgSW5zdGVhZCwgaW4gU3BlZWNoIFNESywgaXQgbWVhbnMgXCJlbWl0IGV2ZW50IFhYWFwiLlxuICBwcm90ZWN0ZWQgb25FdmVudChldmVudDogQXVkaW9Tb3VyY2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXNbU1lNQk9MX0VWRU5UU10ub25FdmVudChldmVudCk7XG4gICAgRXZlbnRzLmluc3RhbmNlLm9uRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgLyoqIEVtaXRzIGFuIGBBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50YC4gKi9cbiAgcHJvdGVjdGVkIGVtaXRJbml0aWFsaXppbmcoKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnRW1pdHRpbmcgXCJBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50XCIuJyk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50KHRoaXMuaWQoKSkpO1xuICB9XG5cbiAgLyoqIEVtaXRzIGFuIGBBdWRpb1NvdXJjZVJlYWR5RXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdFJlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoJ0VtaXR0aW5nIFwiQXVkaW9Tb3VyY2VSZWFkeUV2ZW50XCIuJyk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1NvdXJjZVJlYWR5RXZlbnQodGhpcy5pZCgpKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU291cmNlRXJyb3JFdmVudGAuICovXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBTaW5jZSBcInR1cm5PblwiIGlzIG5ldmVyIGNhbGxlZCBhbmQgXCJ0dXJuT2ZmXCIgZG9lcyBub3Qgd29yayBpbiBEaXJlY3QgTGluZSBTcGVlY2gsIHRoZSBcInNvdXJjZSBlcnJvclwiIGV2ZW50IGlzIG5vdCBlbWl0dGVkIGF0IGFsbC5cbiAgLy8gICAgICAgICAgICAgICAgICAgIEluc3RlYWQsIHdlIG9ubHkgZW1pdCBcIm5vZGUgZXJyb3JcIiBldmVudC5cbiAgcHJvdGVjdGVkIGVtaXRFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmRlYnVnKCdFbWl0dGluZyBcIkF1ZGlvU291cmNlRXJyb3JFdmVudFwiLicsIHsgZXJyb3IgfSk7XG5cbiAgICAvLyBTcGVlY2ggU0RLIHF1aXJrczogXCJlcnJvclwiIGlzIGEgc3RyaW5nLCBpbnN0ZWFkIG9mIG9iamVjdCBvZiB0eXBlIFwiRXJyb3JcIi5cbiAgICB0aGlzLm9uRXZlbnQobmV3IEF1ZGlvU291cmNlRXJyb3JFdmVudCh0aGlzLmlkKCksIGVycm9yLm1lc3NhZ2UpKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyBhbiBgQXVkaW9TdHJlYW1Ob2RlQXR0YWNoaW5nRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVBdHRhY2hpbmcoYXVkaW9Ob2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoYEVtaXR0aW5nIFwiQXVkaW9TdHJlYW1Ob2RlQXR0YWNoaW5nRXZlbnRcIiBmb3Igbm9kZSBcIiR7YXVkaW9Ob2RlSWR9XCIuYCk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1N0cmVhbU5vZGVBdHRhY2hpbmdFdmVudCh0aGlzLmlkKCksIGF1ZGlvTm9kZUlkKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU3RyZWFtTm9kZUF0dGFjaGVkRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVBdHRhY2hlZChhdWRpb05vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZyhgRW1pdHRpbmcgXCJBdWRpb1N0cmVhbU5vZGVBdHRhY2hlZEV2ZW50XCIgZm9yIG5vZGUgXCIke2F1ZGlvTm9kZUlkfVwiLmApO1xuICAgIHRoaXMub25FdmVudChuZXcgQXVkaW9TdHJlYW1Ob2RlQXR0YWNoZWRFdmVudCh0aGlzLmlkKCksIGF1ZGlvTm9kZUlkKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU3RyZWFtTm9kZUVycm9yRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVFcnJvcihhdWRpb05vZGVJZDogc3RyaW5nLCBlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmRlYnVnKGBFbWl0dGluZyBcIkF1ZGlvU3RyZWFtTm9kZUVycm9yRXZlbnRcIiBmb3Igbm9kZSBcIiR7YXVkaW9Ob2RlSWR9XCIuYCwgeyBlcnJvciB9KTtcblxuICAgIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBcImVycm9yXCIgaXMgYSBzdHJpbmcsIGluc3RlYWQgb2Ygb2JqZWN0IG9mIHR5cGUgXCJFcnJvclwiLlxuICAgIHRoaXMub25FdmVudChuZXcgQXVkaW9TdHJlYW1Ob2RlRXJyb3JFdmVudCh0aGlzLmlkKCksIGF1ZGlvTm9kZUlkLCBlcnJvci5tZXNzYWdlKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU3RyZWFtTm9kZURldGFjaGVkRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVEZXRhY2hlZChhdWRpb05vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnRW1pdHRpbmcgXCJBdWRpb1N0cmVhbU5vZGVEZXRhY2hlZEV2ZW50XCIuJyk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1N0cmVhbU5vZGVEZXRhY2hlZEV2ZW50KHRoaXMuaWQoKSwgYXVkaW9Ob2RlSWQpKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyBhbiBgQXVkaW9Tb3VyY2VPZmZFdmVudGAuICovXG4gIHByb3RlY3RlZCBlbWl0T2ZmKCk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoJ0VtaXR0aW5nIFwiQXVkaW9Tb3VyY2VPZmZFdmVudFwiLicpO1xuICAgIHRoaXMub25FdmVudChuZXcgQXVkaW9Tb3VyY2VPZmZFdmVudCh0aGlzLmlkKCkpKTtcbiAgfVxuXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBBbHRob3VnaCBcImNsb3NlXCIgaXMgbWFya2VkIGFzIGFic3RyYWN0LCBpdCBpcyBuZXZlciBjYWxsZWQgaW4gb3VyIG9ic2VydmF0aW9ucy5cbiAgLy8gRVNMaW50OiBTcGVlY2ggU0RLIHJlcXVpcmVzIHRoaXMgZnVuY3Rpb24sIGJ1dCB3ZSBhcmUgbm90IGltcGxlbWVudGluZyBpdC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnQ2FsbGJhY2sgZm9yIFwiY2xvc2VcIi4nKTtcblxuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvLyBTcGVlY2ggU0RLIHF1aXJrczogQWx0aG91Z2ggXCJ0dXJuT25cIiBpcyBpbXBsZW1lbnRlZCBpbiBTcGVlY2ggU0RLIFB1c2gvUHVsbEF1ZGlvSW5wdXRTdHJlYW0sIGl0IGlzIG5ldmVyIGNhbGxlZCBpbiBvdXIgb2JzZXJ2YXRpb25zLlxuICB0dXJuT24oKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnQ2FsbGJhY2sgZm9yIFwidHVybk9uXCIuJyk7XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLy8gU3BlZWNoIFNESyBxdWlya3M6IEFsdGhvdWdoIFwiZGV0YWNoXCIgaXMgaW1wbGVtZW50ZWQgaW4gU3BlZWNoIFNESyBQdXNoL1B1bGxBdWRpb0lucHV0U3RyZWFtLCBpdCBpcyBuZXZlciBjYWxsZWQgaW4gb3VyIG9ic2VydmF0aW9ucy5cbiAgZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoJ0NhbGxiYWNrIGZvciBcImRldGFjaFwiLicpO1xuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBMb2cgdGhlIG1lc3NhZ2UgdG8gY29uc29sZSBpZiBgZGVidWdgIGlzIHNldCB0byBgdHJ1ZWAuICovXG4gIHByaXZhdGUgZGVidWcobWVzc2FnZSwgLi4uYXJncykge1xuICAgIC8vIEVTTGludDogRm9yIGRlYnVnZ2luZywgd2lsbCBvbmx5IGxvZyB3aGVuIFwiZGVidWdcIiBpcyBzZXQgdG8gXCJ0cnVlXCIuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICB0aGlzW1NZTUJPTF9PUFRJT05TXS5kZWJ1ZyAmJiBjb25zb2xlLmluZm8oYEN1c3RvbUF1ZGlvSW5wdXRTdHJlYW06ICR7bWVzc2FnZX1gLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKiBJbXBsZW1lbnRzIHRoaXMgZnVuY3Rpb24uIFdoZW4gY2FsbGVkLCBpdCBzaG91bGQgc3RhcnQgcmVjb3JkaW5nIGFuZCByZXR1cm4gYW4gYElBdWRpb1N0cmVhbU5vZGVgLiAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcGVyZm9ybUF0dGFjaChhdWRpb05vZGVJZDogc3RyaW5nKTogUHJvbWlzZTx7XG4gICAgYXVkaW9TdHJlYW1Ob2RlOiBBdWRpb1N0cmVhbU5vZGU7XG4gICAgZGV2aWNlSW5mbzogRGV2aWNlSW5mbztcbiAgICBmb3JtYXQ6IEZvcm1hdDtcbiAgfT47XG5cbiAgLyoqIEF0dGFjaGVzIHRoZSBkZXZpY2UgYnkgcmV0dXJuaW5nIGFuIGF1ZGlvIG5vZGUuICovXG4gIGF0dGFjaChhdWRpb05vZGVJZDogc3RyaW5nKTogUHJvbWlzZTxBdWRpb1N0cmVhbU5vZGU+IHtcbiAgICB0aGlzLmRlYnVnKGBDYWxsYmFjayBmb3IgXCJhdHRhY2hcIiB3aXRoIFwiJHthdWRpb05vZGVJZH1cIi5gKTtcblxuICAgIHRoaXMuZW1pdE5vZGVBdHRhY2hpbmcoYXVkaW9Ob2RlSWQpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW48QXVkaW9TdHJlYW1Ob2RlPihhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLmVtaXRJbml0aWFsaXppbmcoKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBhdWRpb1N0cmVhbU5vZGUsIGRldmljZUluZm8sIGZvcm1hdCB9ID0gYXdhaXQgdGhpcy5wZXJmb3JtQXR0YWNoKGF1ZGlvTm9kZUlkKTtcblxuICAgICAgICAvLyBBbHRob3VnaCBvbmx5IGdldHRlciBvZiBcImZvcm1hdFwiIGlzIGNhbGxlZCBiZWZvcmUgXCJhdHRhY2hcIiAoaW4gRGlyZWN0IExpbmUgU3BlZWNoKSxcbiAgICAgICAgLy8gd2UgYXJlIGhhbmRsaW5nIGJvdGggXCJkZXZpY2VJbmZvXCIgYW5kIFwiZm9ybWF0XCIgaW4gc2ltaWxhciB3YXkgZm9yIHVuaWZvcm1pdHkuXG4gICAgICAgIHRoaXNbU1lNQk9MX0RFVklDRV9JTkZPX0RFRkVSUkVEXS5yZXNvbHZlKGRldmljZUluZm8pO1xuICAgICAgICB0aGlzW1NZTUJPTF9GT1JNQVRfREVGRVJSRURdLnJlc29sdmUoXG4gICAgICAgICAgbmV3IEF1ZGlvU3RyZWFtRm9ybWF0SW1wbChmb3JtYXQuc2FtcGxlc1BlclNlYywgZm9ybWF0LmJpdHNQZXJTYW1wbGUsIGZvcm1hdC5jaGFubmVscylcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmVtaXRSZWFkeSgpO1xuICAgICAgICB0aGlzLmVtaXROb2RlQXR0YWNoZWQoYXVkaW9Ob2RlSWQpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGV0YWNoOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRlYnVnKGBEZXRhY2hpbmcgYXVkaW8gbm9kZSBcIiR7YXVkaW9Ob2RlSWR9XCIuYCk7XG5cbiAgICAgICAgICAgIGF3YWl0IGF1ZGlvU3RyZWFtTm9kZS5kZXRhY2goKTtcblxuICAgICAgICAgICAgLy8gU3BlZWNoIFNESyBxdWlya3M6IFNpbmNlIFwidHVybk9mZlwiIGlzIG5vdCBjYWxsZWQgaW4gRGlyZWN0IExpbmUgU3BlZWNoLCB3ZSB3aWxsIGVtaXQgZXZlbnQgXCJzb3VyY2Ugb2ZmXCIgaGVyZSBpbnN0ZWFkLlxuICAgICAgICAgICAgdGhpcy5lbWl0T2ZmKCk7XG4gICAgICAgICAgICB0aGlzLmVtaXROb2RlRGV0YWNoZWQoYXVkaW9Ob2RlSWQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaWQ6ICgpID0+IGF1ZGlvU3RyZWFtTm9kZS5pZCgpLFxuICAgICAgICAgIHJlYWQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVidWcoJ1JlYWRpbmcnKTtcblxuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU3RyZWFtTm9kZS5yZWFkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5lbWl0Tm9kZUVycm9yKGF1ZGlvTm9kZUlkLCBlcnJvcik7XG5cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50cyB0aGlzIGZ1bmN0aW9uLiBXaGVuIGNhbGxlZCwgaXQgc2hvdWxkIHN0b3AgcmVjb3JkaW5nLiBUaGlzIGlzIGNhbGxlZCBiZWZvcmUgdGhlIGBJQXVkaW9TdHJlYW1Ob2RlLmRldGFjaGAgZnVuY3Rpb24uXG4gICAqXG4gICAqIE5vdGU6IHdoZW4gdXNpbmcgd2l0aCBEaXJlY3QgTGluZSBTcGVlY2gsIHRoaXMgZnVuY3Rpb24gaXMgbmV2ZXIgY2FsbGVkLlxuICAgKi9cblxuICAvLyBFU0xpbnQ6IFdlIGFyZSBub3QgaW1wbGVtZW50aW5nIHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpdCBpcyBub3QgY2FsbGVkIGJ5IERpcmVjdCBMaW5lIFNwZWVjaC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgcHJvdGVjdGVkIHBlcmZvcm1UdXJuT2ZmKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEVTTGludDogXCJyZXR1cm5cIiBpcyByZXF1aXJlZCBieSBUeXBlU2NyaXB0XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqIFR1cm4gb2ZmIHRoZSBhdWRpbyBkZXZpY2UuIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBkZXRhY2hpbmcgZnJvbSB0aGUgZ3JhcGguICovXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBJdCBpcyBjb25mdXNlZCB0byBoYXZlIGJvdGggXCJ0dXJuT2ZmXCIgYW5kIFwiZGV0YWNoXCIuIFwidHVybk9mZlwiIGlzIGNhbGxlZCBiZWZvcmUgXCJkZXRhY2hcIi5cbiAgLy8gICAgICAgICAgICAgICAgICAgIFdoeSBkb24ndCB3ZSBwdXQgYWxsIGxvZ2ljcyBhdCBcImRldGFjaFwiP1xuICAvLyBTcGVlY2ggU0RLIHF1aXJrczogRGlyZWN0IExpbmUgU3BlZWNoIG5ldmVyIGNhbGwgXCJ0dXJuT2ZmXCIuIFwiU291cmNlIG9mZlwiIGV2ZW50IG5lZWQgdG8gYmUgZW1pdHRlZCBkdXJpbmcgXCJkZXRhY2hcIiBpbnN0ZWFkLlxuICAvLyAgICAgICAgICAgICAgICAgICAgQWxzbywgY3VzdG9tIGltcGxlbWVudGF0aW9uIHNob3VsZCBiZSBkb25lIGF0IFwiZGV0YWNoXCIgaW5zdGVhZCwgc3VjaCBhcyBlbmRpbmcgYW5kIGNsb3Npbmcgb3V0cHV0IHN0cmVhbXMuXG4gIGFzeW5jIHR1cm5PZmYoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5kZWJ1ZyhgQ2FsbGJhY2sgZm9yIFwidHVybk9mZlwiLmApO1xuXG4gICAgYXdhaXQgdGhpcy5wZXJmb3JtVHVybk9mZigpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRldmljZSBpbmZvcm1hdGlvbi4gKi9cbiAgLy8gRVNMaW50OiBUaGlzIGNvZGUgd2lsbCBvbmx5IHdvcmtzIGluIGJyb3dzZXJzIG90aGVyIHRoYW4gSUUxMS4gT25seSB3b3JrcyBpbiBFUzUgaXMgb2theS5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlIEFjY2Vzc29ycyBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0YXJnZXRpbmcgRUNNQVNjcmlwdCA1IGFuZCBoaWdoZXIudHMoMTA1NilcbiAgZ2V0IGRldmljZUluZm8oKTogUHJvbWlzZTxJU3BlZWNoQ29uZmlnQXVkaW9EZXZpY2U+IHtcbiAgICB0aGlzLmRlYnVnKGBHZXR0aW5nIFwiZGV2aWNlSW5mb1wiLmApO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFt0aGlzW1NZTUJPTF9ERVZJQ0VfSU5GT19ERUZFUlJFRF0ucHJvbWlzZSwgdGhpc1tTWU1CT0xfRk9STUFUX0RFRkVSUkVEXS5wcm9taXNlXSkudGhlbihcbiAgICAgIChbeyBjb25uZWN0aXZpdHksIG1hbnVmYWN0dXJlciwgbW9kZWwsIHR5cGUgfSwgeyBiaXRzUGVyU2FtcGxlLCBjaGFubmVscywgc2FtcGxlc1BlclNlYyB9XSkgPT4gKHtcbiAgICAgICAgYml0c3BlcnNhbXBsZTogYml0c1BlclNhbXBsZSxcbiAgICAgICAgY2hhbm5lbGNvdW50OiBjaGFubmVscyxcbiAgICAgICAgY29ubmVjdGl2aXR5OlxuICAgICAgICAgIHR5cGVvZiBjb25uZWN0aXZpdHkgPT09ICdzdHJpbmcnID8gQ29ubmVjdGl2aXR5W2Nvbm5lY3Rpdml0eV0gOiBjb25uZWN0aXZpdHkgfHwgQ29ubmVjdGl2aXR5LlVua25vd24sXG4gICAgICAgIG1hbnVmYWN0dXJlcjogbWFudWZhY3R1cmVyIHx8ICcnLFxuICAgICAgICBtb2RlbDogbW9kZWwgfHwgJycsXG4gICAgICAgIHNhbXBsZXJhdGU6IHNhbXBsZXNQZXJTZWMsXG4gICAgICAgIHR5cGU6IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyA/IFR5cGVbdHlwZV0gOiB0eXBlIHx8IFR5cGUuVW5rbm93blxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbUF1ZGlvSW5wdXRTdHJlYW07XG5cbmV4cG9ydCB0eXBlIHsgQXVkaW9TdHJlYW1Ob2RlLCBEZXZpY2VJbmZvLCBGb3JtYXQsIE9wdGlvbnMgfTtcbiJdfQ==
441
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvQ3VzdG9tQXVkaW9JbnB1dFN0cmVhbS50cyJdLCJuYW1lcyI6WyJTWU1CT0xfREVWSUNFX0lORk9fREVGRVJSRUQiLCJTeW1ib2wiLCJTWU1CT0xfRVZFTlRTIiwiU1lNQk9MX0ZPUk1BVF9ERUZFUlJFRCIsIlNZTUJPTF9PUFRJT05TIiwiQ3VzdG9tQXVkaW9JbnB1dFN0cmVhbSIsIm9wdGlvbnMiLCJub3JtYWxpemVkT3B0aW9ucyIsImRlYnVnIiwiaWQiLCJyZXBsYWNlIiwiRXZlbnRTb3VyY2UiLCJwcm9taXNlIiwiZXZlbnQiLCJvbkV2ZW50IiwiRXZlbnRzIiwiaW5zdGFuY2UiLCJBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50IiwiQXVkaW9Tb3VyY2VSZWFkeUV2ZW50IiwiZXJyb3IiLCJBdWRpb1NvdXJjZUVycm9yRXZlbnQiLCJtZXNzYWdlIiwiYXVkaW9Ob2RlSWQiLCJBdWRpb1N0cmVhbU5vZGVBdHRhY2hpbmdFdmVudCIsIkF1ZGlvU3RyZWFtTm9kZUF0dGFjaGVkRXZlbnQiLCJBdWRpb1N0cmVhbU5vZGVFcnJvckV2ZW50IiwiQXVkaW9TdHJlYW1Ob2RlRGV0YWNoZWRFdmVudCIsIkF1ZGlvU291cmNlT2ZmRXZlbnQiLCJFcnJvciIsImFyZ3MiLCJjb25zb2xlIiwiaW5mbyIsImVtaXROb2RlQXR0YWNoaW5nIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZW1pdEluaXRpYWxpemluZyIsInBlcmZvcm1BdHRhY2giLCJhdWRpb1N0cmVhbU5vZGUiLCJkZXZpY2VJbmZvIiwiZm9ybWF0IiwiQXVkaW9TdHJlYW1Gb3JtYXRJbXBsIiwic2FtcGxlc1BlclNlYyIsImJpdHNQZXJTYW1wbGUiLCJjaGFubmVscyIsImVtaXRSZWFkeSIsImVtaXROb2RlQXR0YWNoZWQiLCJkZXRhY2giLCJlbWl0T2ZmIiwiZW1pdE5vZGVEZXRhY2hlZCIsInJlYWQiLCJlbWl0Tm9kZUVycm9yIiwicGVyZm9ybVR1cm5PZmYiLCJhbGwiLCJjb25uZWN0aXZpdHkiLCJtYW51ZmFjdHVyZXIiLCJtb2RlbCIsInR5cGUiLCJiaXRzcGVyc2FtcGxlIiwiY2hhbm5lbGNvdW50IiwiQ29ubmVjdGl2aXR5IiwiVW5rbm93biIsInNhbXBsZXJhdGUiLCJUeXBlIiwiQXVkaW9JbnB1dFN0cmVhbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFjQTs7QUFFQTs7QUFNQTs7QUFDQTs7QUFDQTs7Ozs7O0FBZ0RBLElBQU1BLDJCQUEyQixHQUFHQyxNQUFNLENBQUMsb0JBQUQsQ0FBMUM7QUFDQSxJQUFNQyxhQUFhLEdBQUdELE1BQU0sQ0FBQyxRQUFELENBQTVCO0FBQ0EsSUFBTUUsc0JBQXNCLEdBQUdGLE1BQU0sQ0FBQyxnQkFBRCxDQUFyQztBQUNBLElBQU1HLGNBQWMsR0FBR0gsTUFBTSxDQUFDLFNBQUQsQ0FBN0IsQyxDQUVBO0FBQ0E7QUFDQTs7SUFDZUksc0I7Ozs7O0FBQ2Isb0NBQW1DO0FBQUE7O0FBQUEsUUFBdkJDLE9BQXVCLHVFQUFKLEVBQUk7QUFBQTtBQUNqQztBQURpQywrRUF5QmxDTiwyQkF6QmtDO0FBQUEsK0VBMEJsQ0UsYUExQmtDO0FBQUEsK0VBMkJsQ0Msc0JBM0JrQztBQUFBLCtFQTRCbENDLGNBNUJrQztBQUdqQyxRQUFNRyxpQkFBb0MsR0FBRztBQUMzQ0MsTUFBQUEsS0FBSyxFQUFFRixPQUFPLENBQUNFLEtBQVIsSUFBaUIsS0FEbUI7QUFFM0NDLE1BQUFBLEVBQUUsRUFBRUgsT0FBTyxDQUFDRyxFQUFSLElBQWMsZ0JBQUtDLE9BQUwsQ0FBYSxPQUFiLEVBQW9CLEVBQXBCO0FBRnlCLEtBQTdDLENBSGlDLENBUWpDO0FBQ0E7O0FBQ0EsVUFBS1YsMkJBQUwsSUFBb0Msd0JBQXBDLENBVmlDLENBWWpDO0FBQ0E7O0FBQ0EsVUFBS0UsYUFBTCxJQUFzQixJQUFJUyxvQkFBSixFQUF0QixDQWRpQyxDQWdCakM7QUFDQTs7QUFDQSxVQUFLUixzQkFBTCxJ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S0FBZ0IsUUFBaEIsSUFBNEIsQ0FBQyxzREFBd0JBLElBQXhCLENBQTdCLEdBQTZETSxlQUFLTixJQUFMLENBQTdELEdBQTBFQSxJQUFJLElBQUlNLGVBQUtGO0FBZEMsU0FBaEc7QUFBQSxPQURLLENBQVA7QUFrQkQ7OztFQTVRMkNHLHFEOztlQStRL0IzRCxzQiIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXVkaW9JbnB1dFN0cmVhbSB9IGZyb20gJ21pY3Jvc29mdC1jb2duaXRpdmVzZXJ2aWNlcy1zcGVlY2gtc2RrJztcblxuaW1wb3J0IHtcbiAgQXVkaW9Tb3VyY2VFcnJvckV2ZW50LFxuICBBdWRpb1NvdXJjZUV2ZW50LFxuICBBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50LFxuICBBdWRpb1NvdXJjZU9mZkV2ZW50LFxuICBBdWRpb1NvdXJjZVJlYWR5RXZlbnQsXG4gIEF1ZGlvU3RyZWFtTm9kZUF0dGFjaGVkRXZlbnQsXG4gIEF1ZGlvU3RyZWFtTm9kZUF0dGFjaGluZ0V2ZW50LFxuICBBdWRpb1N0cmVhbU5vZGVEZXRhY2hlZEV2ZW50LFxuICBBdWRpb1N0cmVhbU5vZGVFcnJvckV2ZW50LFxuICBFdmVudHMsXG4gIEV2ZW50U291cmNlXG59IGZyb20gJ21pY3Jvc29mdC1jb2duaXRpdmVzZXJ2aWNlcy1zcGVlY2gtc2RrL2Rpc3RyaWIvbGliL3NyYy9jb21tb24vRXhwb3J0cyc7XG5cbmltcG9ydCB7IEF1ZGlvU3RyZWFtRm9ybWF0SW1wbCB9IGZyb20gJ21pY3Jvc29mdC1jb2duaXRpdmVzZXJ2aWNlcy1zcGVlY2gtc2RrL2Rpc3RyaWIvbGliL3NyYy9zZGsvQXVkaW8vQXVkaW9TdHJlYW1Gb3JtYXQnO1xuXG5pbXBvcnQge1xuICBjb25uZWN0aXZpdHkgYXMgQ29ubmVjdGl2aXR5LFxuICBJU3BlZWNoQ29uZmlnQXVkaW9EZXZpY2UsXG4gIHR5cGUgYXMgVHlwZVxufSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkay9kaXN0cmliL2xpYi9zcmMvY29tbW9uLnNwZWVjaC9FeHBvcnRzJztcblxuaW1wb3J0IHsgaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgY3JlYXRlRGVmZXJyZWQsIHsgRGVmZXJyZWRQcm9taXNlIH0gZnJvbSAncC1kZWZlci1lczUnO1xuXG50eXBlIEF1ZGlvU3RyZWFtTm9kZSA9IHtcbiAgZGV0YWNoOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBpZDogKCkgPT4gc3RyaW5nO1xuICByZWFkOiAoKSA9PiBQcm9taXNlPFN0cmVhbUNodW5rPEFycmF5QnVmZmVyPj47XG59O1xuXG50eXBlIERldmljZUluZm8gPSB7XG4gIGNvbm5lY3Rpdml0eT86IENvbm5lY3Rpdml0eSB8ICdCbHVldG9vdGgnIHwgJ1dpcmVkJyB8ICdXaUZpJyB8ICdDZWxsdWxhcicgfCAnSW5CdWlsdCcgfCAnVW5rbm93bic7XG4gIG1hbnVmYWN0dXJlcj86IHN0cmluZztcbiAgbW9kZWw/OiBzdHJpbmc7XG4gIHR5cGU/OlxuICAgIHwgVHlwZVxuICAgIHwgJ1Bob25lJ1xuICAgIHwgJ1NwZWFrZXInXG4gICAgfCAnQ2FyJ1xuICAgIHwgJ0hlYWRzZXQnXG4gICAgfCAnVGhlcm1vc3RhdCdcbiAgICB8ICdNaWNyb3Bob25lcydcbiAgICB8ICdEZXNrcGhvbmUnXG4gICAgfCAnUmVtb3RlQ29udHJvbCdcbiAgICB8ICdVbmtub3duJ1xuICAgIHwgJ0ZpbGUnXG4gICAgfCAnU3RyZWFtJztcbn07XG5cbnR5cGUgRm9ybWF0ID0ge1xuICBiaXRzUGVyU2FtcGxlOiBudW1iZXI7XG4gIGNoYW5uZWxzOiBudW1iZXI7XG4gIHNhbXBsZXNQZXJTZWM6IG51bWJlcjtcbn07XG5cbnR5cGUgTm9ybWFsaXplZE9wdGlvbnMgPSBSZXF1aXJlZDxPbWl0PE9wdGlvbnMsICdkZWJ1Zyc+PiAmIHtcbiAgZGVidWc6IGJvb2xlYW47XG59O1xuXG50eXBlIE9wdGlvbnMgPSB7XG4gIGRlYnVnPzogdHJ1ZTtcbiAgaWQ/OiBzdHJpbmc7XG59O1xuXG50eXBlIFN0cmVhbUNodW5rPFQ+ID0ge1xuICBpc0VuZDogYm9vbGVhbjtcbiAgYnVmZmVyOiBUO1xuICB0aW1lUmVjZWl2ZWQ6IG51bWJlcjtcbn07XG5cbmNvbnN0IFNZTUJPTF9ERVZJQ0VfSU5GT19ERUZFUlJFRCA9IFN5bWJvbCgnZGV2aWNlSW5mb0RlZmVycmVkJyk7XG5jb25zdCBTWU1CT0xfRVZFTlRTID0gU3ltYm9sKCdldmVudHMnKTtcbmNvbnN0IFNZTUJPTF9GT1JNQVRfREVGRVJSRUQgPSBTeW1ib2woJ2Zvcm1hdERlZmVycmVkJyk7XG5jb25zdCBTWU1CT0xfT1BUSU9OUyA9IFN5bWJvbCgnb3B0aW9ucycpO1xuXG4vLyBTcGVlY2ggU0RLIHF1aXJrczogT25seSAyIGxpZmVjeWNsZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IHVzZWQuXG4vLyAgICAgICAgICAgICAgICAgICAgVGhleSBhcmU6IGF0dGFjaCgpIGFuZCB0dXJuT2ZmKCkuXG4vLyAgICAgICAgICAgICAgICAgICAgT3RoZXJzIGFyZSBub3QgdXNlZCwgaW5jbHVkaW5nOiBibG9iKCksIGNsb3NlKCksIGRldGFjaCgpLCB0dXJuT24oKS5cbmFic3RyYWN0IGNsYXNzIEN1c3RvbUF1ZGlvSW5wdXRTdHJlYW0gZXh0ZW5kcyBBdWRpb0lucHV0U3RyZWFtIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRPcHRpb25zOiBOb3JtYWxpemVkT3B0aW9ucyA9IHtcbiAgICAgIGRlYnVnOiBvcHRpb25zLmRlYnVnIHx8IGZhbHNlLFxuICAgICAgaWQ6IG9wdGlvbnMuaWQgfHwgdjQoKS5yZXBsYWNlKC8tL2d1LCAnJylcbiAgICB9O1xuXG4gICAgLy8gRmFsc2UgYWxhcm06IGluZGV4ZXIgaXMgYSBjb25zdGFudCBvZiB0eXBlIFN5bWJvbC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICB0aGlzW1NZTUJPTF9ERVZJQ0VfSU5GT19ERUZFUlJFRF0gPSBjcmVhdGVEZWZlcnJlZDxEZXZpY2VJbmZvPigpO1xuXG4gICAgLy8gRmFsc2UgYWxhcm06IGluZGV4ZXIgaXMgYSBjb25zdGFudCBvZiB0eXBlIFN5bWJvbC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICB0aGlzW1NZTUJPTF9FVkVOVFNdID0gbmV3IEV2ZW50U291cmNlPEF1ZGlvU291cmNlRXZlbnQ+KCk7XG5cbiAgICAvLyBGYWxzZSBhbGFybTogaW5kZXhlciBpcyBhIGNvbnN0YW50IG9mIHR5cGUgU3ltYm9sLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgIHRoaXNbU1lNQk9MX0ZPUk1BVF9ERUZFUlJFRF0gPSBjcmVhdGVEZWZlcnJlZDxBdWRpb1N0cmVhbUZvcm1hdEltcGw+KCk7XG5cbiAgICAvLyBGYWxzZSBhbGFybTogaW5kZXhlciBpcyBhIGNvbnN0YW50IG9mIHR5cGUgU3ltYm9sLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgIHRoaXNbU1lNQk9MX09QVElPTlNdID0gbm9ybWFsaXplZE9wdGlvbnM7XG4gIH1cblxuICBbU1lNQk9MX0RFVklDRV9JTkZPX0RFRkVSUkVEXTogRGVmZXJyZWRQcm9taXNlPERldmljZUluZm8+O1xuICBbU1lNQk9MX0VWRU5UU106IEV2ZW50U291cmNlPEF1ZGlvU291cmNlRXZlbnQ+O1xuICBbU1lNQk9MX0ZPUk1BVF9ERUZFUlJFRF06IERlZmVycmVkUHJvbWlzZTxBdWRpb1N0cmVhbUZvcm1hdEltcGw+O1xuICBbU1lNQk9MX09QVElPTlNdOiBOb3JtYWxpemVkT3B0aW9ucztcblxuICAvKiogR2V0cyB0aGUgZXZlbnQgc291cmNlIGZvciBsaXN0ZW5pbmcgdG8gZXZlbnRzLiAqL1xuICAvLyBFU0xpbnQ6IFRoaXMgY29kZSB3aWxsIG9ubHkgd29ya3MgaW4gYnJvd3NlcnMgb3RoZXIgdGhhbiBJRTExLiBPbmx5IHdvcmtzIGluIEVTNSBpcyBva2F5LlxuICAvLyBAdHMtaWdub3JlIEFjY2Vzc29ycyBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0YXJnZXRpbmcgRUNNQVNjcmlwdCA1IGFuZCBoaWdoZXIudHMoMTA1NilcbiAgZ2V0IGV2ZW50cygpOiBFdmVudFNvdXJjZTxBdWRpb1NvdXJjZUV2ZW50PiB7XG4gICAgLy8gRmFsc2UgYWxhcm06IGluZGV4ZXIgaXMgYSBjb25zdGFudCBvZiB0eXBlIFN5bWJvbC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICByZXR1cm4gdGhpc1tTWU1CT0xfRVZFTlRTXTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBmb3JtYXQgb2YgdGhlIGF1ZGlvIHN0cmVhbS4gKi9cbiAgLy8gU3BlZWNoIFNESyBxdWlya3M6IGBBdWRpb1N0cmVhbUZvcm1hdEltcGxgIGlzIGludGVybmFsIGltcGxlbWVudGF0aW9uIHdoaWxlIGBBdWRpb1N0cmVhbUZvcm1hdGAgaXMgcHVibGljLlxuICAvLyAgICAgICAgICAgICAgICAgICAgSXQgaXMgd2VpcmQgdG8gZXhwb3NlIGBBdWRpb1N0cmVhbUZvcm1hdEltcGxgIGluc3RlYWQgb2YgYEF1ZGlvU3RyZWFtRm9ybWF0YC5cbiAgLy8gU3BlZWNoIFNESyBxdWlya3M6IEl0IGlzIHdlaXJkIHRvIHJldHVybiBhIGBQcm9taXNlYCBpbiBhIHByb3BlcnR5LlxuICAvLyBTcGVlY2ggU0RLIHF1aXJrczogSW4gbm9ybWFsIHNwZWVjaCByZWNvZ25pdGlvbiwgZ2V0dGVyIG9mIFwiZm9ybWF0XCIgaXMgY2FsbGVkIG9ubHkgYWZ0ZXIgXCJhdHRhY2hcIi5cbiAgLy8gICAgICAgICAgICAgICAgICAgIEJ1dCBpbiBEaXJlY3QgTGluZSBTcGVlY2gsIGl0IGlzIGNhbGxlZCBiZWZvcmUgXCJhdHRhY2hcIi5cbiAgLy8gRVNMaW50OiBUaGlzIGNvZGUgd2lsbCBvbmx5IHdvcmtzIGluIGJyb3dzZXJzIG90aGVyIHRoYW4gSUUxMS4gT25seSB3b3JrcyBpbiBFUzUgaXMgb2theS5cbiAgLy8gQHRzLWlnbm9yZSBBY2Nlc3NvcnMgYXJlIG9ubHkgYXZhaWxhYmxlIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgNSBhbmQgaGlnaGVyLnRzKDEwNTYpXG4gIGdldCBmb3JtYXQoKTogUHJvbWlzZTxBdWRpb1N0cmVhbUZvcm1hdEltcGw+IHtcbiAgICB0aGlzLmRlYnVnKCdHZXR0aW5nIFwiZm9ybWF0XCIuJyk7XG5cbiAgICAvLyBGYWxzZSBhbGFybTogaW5kZXhlciBpcyBhIGNvbnN0YW50IG9mIHR5cGUgU3ltYm9sLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgIHJldHVybiB0aGlzW1NZTUJPTF9GT1JNQVRfREVGRVJSRURdLnByb21pc2U7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgSUQgb2YgdGhpcyBhdWRpbyBzdHJlYW0uICovXG4gIGlkKCk6IHN0cmluZyB7XG4gICAgLy8gRmFsc2UgYWxhcm06IGluZGV4ZXIgaXMgYSBjb25zdGFudCBvZiB0eXBlIFN5bWJvbC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICByZXR1cm4gdGhpc1tTWU1CT0xfT1BUSU9OU10uaWQ7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gZXZlbnQuICovXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBJbiBKYXZhU2NyaXB0LCBvblh4eCBtZWFucyBcImxpc3RlbiB0byBldmVudCBYWFhcIi5cbiAgLy8gICAgICAgICAgICAgICAgICAgIEluc3RlYWQsIGluIFNwZWVjaCBTREssIGl0IG1lYW5zIFwiZW1pdCBldmVudCBYWFhcIi5cbiAgcHJvdGVjdGVkIG9uRXZlbnQoZXZlbnQ6IEF1ZGlvU291cmNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBGYWxzZSBhbGFybTogaW5kZXhlciBpcyBhIGNvbnN0YW50IG9mIHR5cGUgU3ltYm9sLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgIHRoaXNbU1lNQk9MX0VWRU5UU10ub25FdmVudChldmVudCk7XG4gICAgRXZlbnRzLmluc3RhbmNlLm9uRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgLyoqIEVtaXRzIGFuIGBBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50YC4gKi9cbiAgcHJvdGVjdGVkIGVtaXRJbml0aWFsaXppbmcoKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnRW1pdHRpbmcgXCJBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50XCIuJyk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1NvdXJjZUluaXRpYWxpemluZ0V2ZW50KHRoaXMuaWQoKSkpO1xuICB9XG5cbiAgLyoqIEVtaXRzIGFuIGBBdWRpb1NvdXJjZVJlYWR5RXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdFJlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoJ0VtaXR0aW5nIFwiQXVkaW9Tb3VyY2VSZWFkeUV2ZW50XCIuJyk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1NvdXJjZVJlYWR5RXZlbnQodGhpcy5pZCgpKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU291cmNlRXJyb3JFdmVudGAuICovXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBTaW5jZSBcInR1cm5PblwiIGlzIG5ldmVyIGNhbGxlZCBhbmQgXCJ0dXJuT2ZmXCIgZG9lcyBub3Qgd29yayBpbiBEaXJlY3QgTGluZSBTcGVlY2gsIHRoZSBcInNvdXJjZSBlcnJvclwiIGV2ZW50IGlzIG5vdCBlbWl0dGVkIGF0IGFsbC5cbiAgLy8gICAgICAgICAgICAgICAgICAgIEluc3RlYWQsIHdlIG9ubHkgZW1pdCBcIm5vZGUgZXJyb3JcIiBldmVudC5cbiAgcHJvdGVjdGVkIGVtaXRFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmRlYnVnKCdFbWl0dGluZyBcIkF1ZGlvU291cmNlRXJyb3JFdmVudFwiLicsIHsgZXJyb3IgfSk7XG5cbiAgICAvLyBTcGVlY2ggU0RLIHF1aXJrczogXCJlcnJvclwiIGlzIGEgc3RyaW5nLCBpbnN0ZWFkIG9mIG9iamVjdCBvZiB0eXBlIFwiRXJyb3JcIi5cbiAgICB0aGlzLm9uRXZlbnQobmV3IEF1ZGlvU291cmNlRXJyb3JFdmVudCh0aGlzLmlkKCksIGVycm9yLm1lc3NhZ2UpKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyBhbiBgQXVkaW9TdHJlYW1Ob2RlQXR0YWNoaW5nRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVBdHRhY2hpbmcoYXVkaW9Ob2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoYEVtaXR0aW5nIFwiQXVkaW9TdHJlYW1Ob2RlQXR0YWNoaW5nRXZlbnRcIiBmb3Igbm9kZSBcIiR7YXVkaW9Ob2RlSWR9XCIuYCk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1N0cmVhbU5vZGVBdHRhY2hpbmdFdmVudCh0aGlzLmlkKCksIGF1ZGlvTm9kZUlkKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU3RyZWFtTm9kZUF0dGFjaGVkRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVBdHRhY2hlZChhdWRpb05vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZyhgRW1pdHRpbmcgXCJBdWRpb1N0cmVhbU5vZGVBdHRhY2hlZEV2ZW50XCIgZm9yIG5vZGUgXCIke2F1ZGlvTm9kZUlkfVwiLmApO1xuICAgIHRoaXMub25FdmVudChuZXcgQXVkaW9TdHJlYW1Ob2RlQXR0YWNoZWRFdmVudCh0aGlzLmlkKCksIGF1ZGlvTm9kZUlkKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU3RyZWFtTm9kZUVycm9yRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVFcnJvcihhdWRpb05vZGVJZDogc3RyaW5nLCBlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmRlYnVnKGBFbWl0dGluZyBcIkF1ZGlvU3RyZWFtTm9kZUVycm9yRXZlbnRcIiBmb3Igbm9kZSBcIiR7YXVkaW9Ob2RlSWR9XCIuYCwgeyBlcnJvciB9KTtcblxuICAgIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBcImVycm9yXCIgaXMgYSBzdHJpbmcsIGluc3RlYWQgb2Ygb2JqZWN0IG9mIHR5cGUgXCJFcnJvclwiLlxuICAgIHRoaXMub25FdmVudChuZXcgQXVkaW9TdHJlYW1Ob2RlRXJyb3JFdmVudCh0aGlzLmlkKCksIGF1ZGlvTm9kZUlkLCBlcnJvci5tZXNzYWdlKSk7XG4gIH1cblxuICAvKiogRW1pdHMgYW4gYEF1ZGlvU3RyZWFtTm9kZURldGFjaGVkRXZlbnRgLiAqL1xuICBwcm90ZWN0ZWQgZW1pdE5vZGVEZXRhY2hlZChhdWRpb05vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnRW1pdHRpbmcgXCJBdWRpb1N0cmVhbU5vZGVEZXRhY2hlZEV2ZW50XCIuJyk7XG4gICAgdGhpcy5vbkV2ZW50KG5ldyBBdWRpb1N0cmVhbU5vZGVEZXRhY2hlZEV2ZW50KHRoaXMuaWQoKSwgYXVkaW9Ob2RlSWQpKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyBhbiBgQXVkaW9Tb3VyY2VPZmZFdmVudGAuICovXG4gIHByb3RlY3RlZCBlbWl0T2ZmKCk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoJ0VtaXR0aW5nIFwiQXVkaW9Tb3VyY2VPZmZFdmVudFwiLicpO1xuICAgIHRoaXMub25FdmVudChuZXcgQXVkaW9Tb3VyY2VPZmZFdmVudCh0aGlzLmlkKCkpKTtcbiAgfVxuXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBBbHRob3VnaCBcImNsb3NlXCIgaXMgbWFya2VkIGFzIGFic3RyYWN0LCBpdCBpcyBuZXZlciBjYWxsZWQgaW4gb3VyIG9ic2VydmF0aW9ucy5cbiAgLy8gRVNMaW50OiBTcGVlY2ggU0RLIHJlcXVpcmVzIHRoaXMgZnVuY3Rpb24sIGJ1dCB3ZSBhcmUgbm90IGltcGxlbWVudGluZyBpdC5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnQ2FsbGJhY2sgZm9yIFwiY2xvc2VcIi4nKTtcblxuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvLyBTcGVlY2ggU0RLIHF1aXJrczogQWx0aG91Z2ggXCJ0dXJuT25cIiBpcyBpbXBsZW1lbnRlZCBpbiBTcGVlY2ggU0RLIFB1c2gvUHVsbEF1ZGlvSW5wdXRTdHJlYW0sIGl0IGlzIG5ldmVyIGNhbGxlZCBpbiBvdXIgb2JzZXJ2YXRpb25zLlxuICB0dXJuT24oKTogdm9pZCB7XG4gICAgdGhpcy5kZWJ1ZygnQ2FsbGJhY2sgZm9yIFwidHVybk9uXCIuJyk7XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLy8gU3BlZWNoIFNESyBxdWlya3M6IEFsdGhvdWdoIFwiZGV0YWNoXCIgaXMgaW1wbGVtZW50ZWQgaW4gU3BlZWNoIFNESyBQdXNoL1B1bGxBdWRpb0lucHV0U3RyZWFtLCBpdCBpcyBuZXZlciBjYWxsZWQgaW4gb3VyIG9ic2VydmF0aW9ucy5cbiAgZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuZGVidWcoJ0NhbGxiYWNrIGZvciBcImRldGFjaFwiLicpO1xuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBMb2cgdGhlIG1lc3NhZ2UgdG8gY29uc29sZSBpZiBgZGVidWdgIGlzIHNldCB0byBgdHJ1ZWAuICovXG4gIHByaXZhdGUgZGVidWcobWVzc2FnZSwgLi4uYXJncykge1xuICAgIC8vIEVTTGludDogRm9yIGRlYnVnZ2luZywgd2lsbCBvbmx5IGxvZyB3aGVuIFwiZGVidWdcIiBpcyBzZXQgdG8gXCJ0cnVlXCIuXG4gICAgLy8gRmFsc2UgYWxhcm06IGluZGV4ZXIgaXMgYSBjb25zdGFudCBvZiB0eXBlIFN5bWJvbC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSwgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICB0aGlzW1NZTUJPTF9PUFRJT05TXS5kZWJ1ZyAmJiBjb25zb2xlLmluZm8oYEN1c3RvbUF1ZGlvSW5wdXRTdHJlYW06ICR7bWVzc2FnZX1gLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKiBJbXBsZW1lbnRzIHRoaXMgZnVuY3Rpb24uIFdoZW4gY2FsbGVkLCBpdCBzaG91bGQgc3RhcnQgcmVjb3JkaW5nIGFuZCByZXR1cm4gYW4gYElBdWRpb1N0cmVhbU5vZGVgLiAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcGVyZm9ybUF0dGFjaChhdWRpb05vZGVJZDogc3RyaW5nKTogUHJvbWlzZTx7XG4gICAgYXVkaW9TdHJlYW1Ob2RlOiBBdWRpb1N0cmVhbU5vZGU7XG4gICAgZGV2aWNlSW5mbzogRGV2aWNlSW5mbztcbiAgICBmb3JtYXQ6IEZvcm1hdDtcbiAgfT47XG5cbiAgLyoqIEF0dGFjaGVzIHRoZSBkZXZpY2UgYnkgcmV0dXJuaW5nIGFuIGF1ZGlvIG5vZGUuICovXG4gIGF0dGFjaChhdWRpb05vZGVJZDogc3RyaW5nKTogUHJvbWlzZTxBdWRpb1N0cmVhbU5vZGU+IHtcbiAgICB0aGlzLmRlYnVnKGBDYWxsYmFjayBmb3IgXCJhdHRhY2hcIiB3aXRoIFwiJHthdWRpb05vZGVJZH1cIi5gKTtcblxuICAgIHRoaXMuZW1pdE5vZGVBdHRhY2hpbmcoYXVkaW9Ob2RlSWQpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW48QXVkaW9TdHJlYW1Ob2RlPihhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLmVtaXRJbml0aWFsaXppbmcoKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBhdWRpb1N0cmVhbU5vZGUsIGRldmljZUluZm8sIGZvcm1hdCB9ID0gYXdhaXQgdGhpcy5wZXJmb3JtQXR0YWNoKGF1ZGlvTm9kZUlkKTtcblxuICAgICAgICAvLyBBbHRob3VnaCBvbmx5IGdldHRlciBvZiBcImZvcm1hdFwiIGlzIGNhbGxlZCBiZWZvcmUgXCJhdHRhY2hcIiAoaW4gRGlyZWN0IExpbmUgU3BlZWNoKSxcbiAgICAgICAgLy8gd2UgYXJlIGhhbmRsaW5nIGJvdGggXCJkZXZpY2VJbmZvXCIgYW5kIFwiZm9ybWF0XCIgaW4gc2ltaWxhciB3YXkgZm9yIHVuaWZvcm1pdHkuXG5cbiAgICAgICAgLy8gRmFsc2UgYWxhcm06IGluZGV4ZXIgaXMgYSBjb25zdGFudCBvZiB0eXBlIFN5bWJvbC5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgIHRoaXNbU1lNQk9MX0RFVklDRV9JTkZPX0RFRkVSUkVEXS5yZXNvbHZlKGRldmljZUluZm8pO1xuXG4gICAgICAgIC8vIEZhbHNlIGFsYXJtOiBpbmRleGVyIGlzIGEgY29uc3RhbnQgb2YgdHlwZSBTeW1ib2wuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICB0aGlzW1NZTUJPTF9GT1JNQVRfREVGRVJSRURdLnJlc29sdmUoXG4gICAgICAgICAgbmV3IEF1ZGlvU3RyZWFtRm9ybWF0SW1wbChmb3JtYXQuc2FtcGxlc1BlclNlYywgZm9ybWF0LmJpdHNQZXJTYW1wbGUsIGZvcm1hdC5jaGFubmVscylcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmVtaXRSZWFkeSgpO1xuICAgICAgICB0aGlzLmVtaXROb2RlQXR0YWNoZWQoYXVkaW9Ob2RlSWQpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGV0YWNoOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRlYnVnKGBEZXRhY2hpbmcgYXVkaW8gbm9kZSBcIiR7YXVkaW9Ob2RlSWR9XCIuYCk7XG5cbiAgICAgICAgICAgIGF3YWl0IGF1ZGlvU3RyZWFtTm9kZS5kZXRhY2goKTtcblxuICAgICAgICAgICAgLy8gU3BlZWNoIFNESyBxdWlya3M6IFNpbmNlIFwidHVybk9mZlwiIGlzIG5vdCBjYWxsZWQgaW4gRGlyZWN0IExpbmUgU3BlZWNoLCB3ZSB3aWxsIGVtaXQgZXZlbnQgXCJzb3VyY2Ugb2ZmXCIgaGVyZSBpbnN0ZWFkLlxuICAgICAgICAgICAgdGhpcy5lbWl0T2ZmKCk7XG4gICAgICAgICAgICB0aGlzLmVtaXROb2RlRGV0YWNoZWQoYXVkaW9Ob2RlSWQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaWQ6ICgpID0+IGF1ZGlvU3RyZWFtTm9kZS5pZCgpLFxuICAgICAgICAgIHJlYWQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVidWcoJ1JlYWRpbmcnKTtcblxuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU3RyZWFtTm9kZS5yZWFkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5lbWl0Tm9kZUVycm9yKGF1ZGlvTm9kZUlkLCBlcnJvcik7XG5cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50cyB0aGlzIGZ1bmN0aW9uLiBXaGVuIGNhbGxlZCwgaXQgc2hvdWxkIHN0b3AgcmVjb3JkaW5nLiBUaGlzIGlzIGNhbGxlZCBiZWZvcmUgdGhlIGBJQXVkaW9TdHJlYW1Ob2RlLmRldGFjaGAgZnVuY3Rpb24uXG4gICAqXG4gICAqIE5vdGU6IHdoZW4gdXNpbmcgd2l0aCBEaXJlY3QgTGluZSBTcGVlY2gsIHRoaXMgZnVuY3Rpb24gaXMgbmV2ZXIgY2FsbGVkLlxuICAgKi9cblxuICAvLyBFU0xpbnQ6IFdlIGFyZSBub3QgaW1wbGVtZW50aW5nIHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpdCBpcyBub3QgY2FsbGVkIGJ5IERpcmVjdCBMaW5lIFNwZWVjaC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgcHJvdGVjdGVkIHBlcmZvcm1UdXJuT2ZmKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEVTTGludDogXCJyZXR1cm5cIiBpcyByZXF1aXJlZCBieSBUeXBlU2NyaXB0XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqIFR1cm4gb2ZmIHRoZSBhdWRpbyBkZXZpY2UuIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBkZXRhY2hpbmcgZnJvbSB0aGUgZ3JhcGguICovXG4gIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBJdCBpcyBjb25mdXNlZCB0byBoYXZlIGJvdGggXCJ0dXJuT2ZmXCIgYW5kIFwiZGV0YWNoXCIuIFwidHVybk9mZlwiIGlzIGNhbGxlZCBiZWZvcmUgXCJkZXRhY2hcIi5cbiAgLy8gICAgICAgICAgICAgICAgICAgIFdoeSBkb24ndCB3ZSBwdXQgYWxsIGxvZ2ljcyBhdCBcImRldGFjaFwiP1xuICAvLyBTcGVlY2ggU0RLIHF1aXJrczogRGlyZWN0IExpbmUgU3BlZWNoIG5ldmVyIGNhbGwgXCJ0dXJuT2ZmXCIuIFwiU291cmNlIG9mZlwiIGV2ZW50IG5lZWQgdG8gYmUgZW1pdHRlZCBkdXJpbmcgXCJkZXRhY2hcIiBpbnN0ZWFkLlxuICAvLyAgICAgICAgICAgICAgICAgICAgQWxzbywgY3VzdG9tIGltcGxlbWVudGF0aW9uIHNob3VsZCBiZSBkb25lIGF0IFwiZGV0YWNoXCIgaW5zdGVhZCwgc3VjaCBhcyBlbmRpbmcgYW5kIGNsb3Npbmcgb3V0cHV0IHN0cmVhbXMuXG4gIGFzeW5jIHR1cm5PZmYoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5kZWJ1ZyhgQ2FsbGJhY2sgZm9yIFwidHVybk9mZlwiLmApO1xuXG4gICAgYXdhaXQgdGhpcy5wZXJmb3JtVHVybk9mZigpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRldmljZSBpbmZvcm1hdGlvbi4gKi9cbiAgLy8gRVNMaW50OiBUaGlzIGNvZGUgd2lsbCBvbmx5IHdvcmtzIGluIGJyb3dzZXJzIG90aGVyIHRoYW4gSUUxMS4gT25seSB3b3JrcyBpbiBFUzUgaXMgb2theS5cbiAgLy8gQHRzLWlnbm9yZSBBY2Nlc3NvcnMgYXJlIG9ubHkgYXZhaWxhYmxlIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgNSBhbmQgaGlnaGVyLnRzKDEwNTYpXG4gIGdldCBkZXZpY2VJbmZvKCk6IFByb21pc2U8SVNwZWVjaENvbmZpZ0F1ZGlvRGV2aWNlPiB7XG4gICAgdGhpcy5kZWJ1ZyhgR2V0dGluZyBcImRldmljZUluZm9cIi5gKTtcblxuICAgIC8vIEZhbHNlIGFsYXJtOiBpbmRleGVyIGlzIGEgY29uc3RhbnQgb2YgdHlwZSBTeW1ib2wuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFt0aGlzW1NZTUJPTF9ERVZJQ0VfSU5GT19ERUZFUlJFRF0ucHJvbWlzZSwgdGhpc1tTWU1CT0xfRk9STUFUX0RFRkVSUkVEXS5wcm9taXNlXSkudGhlbihcbiAgICAgIChbeyBjb25uZWN0aXZpdHksIG1hbnVmYWN0dXJlciwgbW9kZWwsIHR5cGUgfSwgeyBiaXRzUGVyU2FtcGxlLCBjaGFubmVscywgc2FtcGxlc1BlclNlYyB9XSkgPT4gKHtcbiAgICAgICAgYml0c3BlcnNhbXBsZTogYml0c1BlclNhbXBsZSxcbiAgICAgICAgY2hhbm5lbGNvdW50OiBjaGFubmVscyxcbiAgICAgICAgY29ubmVjdGl2aXR5OlxuICAgICAgICAgIHR5cGVvZiBjb25uZWN0aXZpdHkgPT09ICdzdHJpbmcnICYmICFpc0ZvcmJpZGRlblByb3BlcnR5TmFtZShjb25uZWN0aXZpdHkpXG4gICAgICAgICAgICA/IC8vIE1pdGlnYXRlZCB0aHJvdWdoIGRlbnlsaXN0aW5nLlxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgQ29ubmVjdGl2aXR5W2Nvbm5lY3Rpdml0eV1cbiAgICAgICAgICAgIDogY29ubmVjdGl2aXR5IHx8IENvbm5lY3Rpdml0eS5Vbmtub3duLFxuICAgICAgICBtYW51ZmFjdHVyZXI6IG1hbnVmYWN0dXJlciB8fCAnJyxcbiAgICAgICAgbW9kZWw6IG1vZGVsIHx8ICcnLFxuICAgICAgICBzYW1wbGVyYXRlOiBzYW1wbGVzUGVyU2VjLFxuICAgICAgICAvLyBNaXRpZ2F0ZWQgdGhyb3VnaCBkZW55bGlzdGluZy5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgIHR5cGU6IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyAmJiAhaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUodHlwZSkgPyBUeXBlW3R5cGVdIDogdHlwZSB8fCBUeXBlLlVua25vd25cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDdXN0b21BdWRpb0lucHV0U3RyZWFtO1xuXG5leHBvcnQgdHlwZSB7IEF1ZGlvU3RyZWFtTm9kZSwgRGV2aWNlSW5mbywgRm9ybWF0LCBPcHRpb25zIH07XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"bytesPerSample.d.ts","sourceRoot":"","sources":["../../src/speech/bytesPerSample.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,QAAQ,EAAE,kBAAkB,UAGlE"}
1
+ {"version":3,"file":"bytesPerSample.d.ts","sourceRoot":"","sources":["../../src/speech/bytesPerSample.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,QAAQ,EAAE,kBAAkB,UAKlE"}
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = bytesPerSample;
7
7
 
8
8
  function bytesPerSample(settings) {
9
+ // `channelCount` is not on @types/web@0.0.54 yet, related to https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1290.
10
+ // @ts-ignore
9
11
  // eslint-disable-next-line no-magic-numbers
10
12
  return (settings.sampleSize >> 3) * settings.channelCount * settings.sampleRate;
11
13
  }
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvYnl0ZXNQZXJTYW1wbGUudHMiXSwibmFtZXMiOlsiYnl0ZXNQZXJTYW1wbGUiLCJzZXR0aW5ncyIsInNhbXBsZVNpemUiLCJjaGFubmVsQ291bnQiLCJzYW1wbGVSYXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWUsU0FBU0EsY0FBVCxDQUF3QkMsUUFBeEIsRUFBc0Q7QUFDbkU7QUFDQSxTQUFPLENBQUVBLFFBQVEsQ0FBQ0MsVUFBVixJQUFtQyxDQUFwQyxJQUEwQ0QsUUFBUSxDQUFDRSxZQUFuRCxHQUE4RUYsUUFBUSxDQUFDRyxVQUE5RjtBQUNEIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBieXRlc1BlclNhbXBsZShzZXR0aW5nczogTWVkaWFUcmFja1NldHRpbmdzKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gIHJldHVybiAoKHNldHRpbmdzLnNhbXBsZVNpemUgYXMgbnVtYmVyKSA+PiAzKSAqIChzZXR0aW5ncy5jaGFubmVsQ291bnQgYXMgbnVtYmVyKSAqIChzZXR0aW5ncy5zYW1wbGVSYXRlIGFzIG51bWJlcik7XG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvYnl0ZXNQZXJTYW1wbGUudHMiXSwibmFtZXMiOlsiYnl0ZXNQZXJTYW1wbGUiLCJzZXR0aW5ncyIsInNhbXBsZVNpemUiLCJjaGFubmVsQ291bnQiLCJzYW1wbGVSYXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWUsU0FBU0EsY0FBVCxDQUF3QkMsUUFBeEIsRUFBc0Q7QUFDbkU7QUFDQTtBQUNBO0FBQ0EsU0FBTyxDQUFFQSxRQUFRLENBQUNDLFVBQVYsSUFBbUMsQ0FBcEMsSUFBMENELFFBQVEsQ0FBQ0UsWUFBbkQsR0FBOEVGLFFBQVEsQ0FBQ0csVUFBOUY7QUFDRCIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnl0ZXNQZXJTYW1wbGUoc2V0dGluZ3M6IE1lZGlhVHJhY2tTZXR0aW5ncykge1xuICAvLyBgY2hhbm5lbENvdW50YCBpcyBub3Qgb24gQHR5cGVzL3dlYkAwLjAuNTQgeWV0LCByZWxhdGVkIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC1ET00tbGliLWdlbmVyYXRvci9pc3N1ZXMvMTI5MC5cbiAgLy8gQHRzLWlnbm9yZVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICByZXR1cm4gKChzZXR0aW5ncy5zYW1wbGVTaXplIGFzIG51bWJlcikgPj4gMykgKiAoc2V0dGluZ3MuY2hhbm5lbENvdW50IGFzIG51bWJlcikgKiAoc2V0dGluZ3Muc2FtcGxlUmF0ZSBhcyBudW1iZXIpO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"createAudioConfig.d.ts","sourceRoot":"","sources":["../../src/speech/createAudioConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,OAA+B,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvG,aAAK,cAAc,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,aAAK,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAK3C,aAAK,wBAAwB,GAAG;IAC9B,6EAA6E;IAC7E,MAAM,EAAE,cAAc,CAAC;IAEvB,mEAAmE;IACnE,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B,CAAC;AAoCF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,eAE1E"}
1
+ {"version":3,"file":"createAudioConfig.d.ts","sourceRoot":"","sources":["../../src/speech/createAudioConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,OAA+B,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvG,aAAK,cAAc,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,aAAK,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAK3C,aAAK,wBAAwB,GAAG;IAC9B,6EAA6E;IAC7E,MAAM,EAAE,cAAc,CAAC;IAEvB,mEAAmE;IACnE,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B,CAAC;AA2CF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,eAE1E"}
@@ -55,10 +55,14 @@ var CreateAudioConfigAudioInputStream = /*#__PURE__*/function (_CustomAudioInput
55
55
 
56
56
  _this = _super.call(this, {
57
57
  debug: debug
58
- });
58
+ }); // False alarm: indexer is a constant of type Symbol.
59
+ // eslint-disable-next-line security/detect-object-injection
60
+
59
61
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), SYMBOL_ATTACH, void 0);
60
62
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), SYMBOL_TURN_OFF, void 0);
61
- _this[SYMBOL_ATTACH] = attach;
63
+ _this[SYMBOL_ATTACH] = attach; // False alarm: indexer is a constant of type Symbol.
64
+ // eslint-disable-next-line security/detect-object-injection
65
+
62
66
  _this[SYMBOL_TURN_OFF] = turnOff;
63
67
  return _this;
64
68
  }
@@ -66,6 +70,8 @@ var CreateAudioConfigAudioInputStream = /*#__PURE__*/function (_CustomAudioInput
66
70
  (0, _createClass2.default)(CreateAudioConfigAudioInputStream, [{
67
71
  key: "performAttach",
68
72
  value: function performAttach(audioNodeId) {
73
+ // False alarm: indexer is a constant of type Symbol.
74
+ // eslint-disable-next-line security/detect-object-injection
69
75
  return this[SYMBOL_ATTACH](audioNodeId);
70
76
  }
71
77
  }, {
@@ -81,4 +87,4 @@ var CreateAudioConfigAudioInputStream = /*#__PURE__*/function (_CustomAudioInput
81
87
  function createAudioConfig(options) {
82
88
  return _microsoftCognitiveservicesSpeechSdk.AudioConfig.fromStreamInput(new CreateAudioConfigAudioInputStream(options));
83
89
  }
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvY3JlYXRlQXVkaW9Db25maWcudHMiXSwibmFtZXMiOlsiU1lNQk9MX0FUVEFDSCIsIlN5bWJvbCIsIlNZTUJPTF9UVVJOX09GRiIsIkNyZWF0ZUF1ZGlvQ29uZmlnQXVkaW9JbnB1dFN0cmVhbSIsImF0dGFjaCIsImRlYnVnIiwidHVybk9mZiIsIkVycm9yIiwiYXVkaW9Ob2RlSWQiLCJDdXN0b21BdWRpb0lucHV0U3RyZWFtIiwiY3JlYXRlQXVkaW9Db25maWciLCJvcHRpb25zIiwiQXVkaW9Db25maWciLCJmcm9tU3RyZWFtSW5wdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBRUE7Ozs7OztBQVVBLElBQU1BLGFBQWEsR0FBR0MsTUFBTSxDQUFDLFFBQUQsQ0FBNUI7QUFDQSxJQUFNQyxlQUFlLEdBQUdELE1BQU0sQ0FBQyxTQUFELENBQTlCOztJQWlCTUUsaUM7Ozs7O0FBQ0osbURBQWtFO0FBQUE7O0FBQUEsUUFBcERDLE1BQW9ELFFBQXBEQSxNQUFvRDtBQUFBLFFBQTVDQyxLQUE0QyxRQUE1Q0EsS0FBNEM7QUFBQSxRQUFyQ0MsT0FBcUMsUUFBckNBLE9BQXFDO0FBQUE7O0FBQ2hFLFFBQUksQ0FBQ0YsTUFBRCxJQUFXLE9BQU9BLE1BQVAsS0FBa0IsVUFBakMsRUFBNkM7QUFDM0MsWUFBTSxJQUFJRyxLQUFKLENBQVUsOEJBQVYsQ0FBTjtBQUNEOztBQUVELFFBQUlELE9BQU8sSUFBSSxPQUFPQSxPQUFQLEtBQW1CLFVBQWxDLEVBQThDO0FBQzVDLFlBQU0sSUFBSUMsS0FBSixDQUFVLDRDQUFWLENBQU47QUFDRDs7QUFFRCw4QkFBTTtBQUFFRixNQUFBQSxLQUFLLEVBQUxBO0FBQUYsS0FBTjtBQVRnRSwrRUFlakVMLGFBZmlFO0FBQUEsK0VBZ0JqRUUsZUFoQmlFO0FBV2hFLFVBQUtGLGFBQUwsSUFBc0JJLE1BQXRCO0FBQ0EsVUFBS0YsZUFBTCxJQUF3QkksT0FBeEI7QUFaZ0U7QUFhakU7Ozs7V0FLRCx1QkFBd0JFLFdBQXhCLEVBSUc7QUFDRCxhQUFPLEtBQUtSLGFBQUwsRUFBb0JRLFdBQXBCLENBQVA7QUFDRDs7O1dBRUQsMEJBQTBDO0FBQ3hDLFVBQTJCRixPQUEzQixHQUF1QyxJQUF2QyxDQUFTSixlQUFUO0FBRUEsYUFBT0ksT0FBTyxJQUFJQSxPQUFPLEVBQXpCO0FBQ0Q7OztFQS9CNkNHLCtCOztBQWtDakMsU0FBU0MsaUJBQVQsQ0FBMkJDLE9BQTNCLEVBQThEO0FBQzNFLFNBQU9DLGlEQUFZQyxlQUFaLENBQTRCLElBQUlWLGlDQUFKLENBQXNDUSxPQUF0QyxDQUE1QixDQUFQO0FBQ0QiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFtQMl0gIzM5NzYgV2Ugc2hvdWxkIGV4cG9ydCB0aGlzIHRvIGFsbG93IHdlYiBkZXZlbG9wZXJzIHRvIGJyaW5nIGluIHRoZWlyIG93biBtaWNyb3Bob25lLlxuLy8gICAgICAgRm9yIGV4YW1wbGUsIGl0IHNob3VsZCBlbmFibGUgUmVhY3QgTmF0aXZlIGRldnMgdG8gYnJpbmcgaW4gdGhlaXIgbWljcm9waG9uZSBpbXBsZW1lbnRhdGlvbiBhbmQgdXNlIENvZ25pdGl2ZSBTZXJ2aWNlcyBTcGVlY2ggU2VydmljZXMuXG5cbmltcG9ydCB7IEF1ZGlvQ29uZmlnIH0gZnJvbSAnbWljcm9zb2Z0LWNvZ25pdGl2ZXNlcnZpY2VzLXNwZWVjaC1zZGsnO1xuXG5pbXBvcnQgQ3VzdG9tQXVkaW9JbnB1dFN0cmVhbSwgeyBBdWRpb1N0cmVhbU5vZGUsIERldmljZUluZm8sIEZvcm1hdCB9IGZyb20gJy4vQ3VzdG9tQXVkaW9JbnB1dFN0cmVhbSc7XG5cbnR5cGUgQXR0YWNoRnVuY3Rpb24gPSAoYXVkaW9Ob2RlSWQ6IHN0cmluZykgPT4gUHJvbWlzZTx7XG4gIGF1ZGlvU3RyZWFtTm9kZTogQXVkaW9TdHJlYW1Ob2RlO1xuICBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvO1xuICBmb3JtYXQ6IEZvcm1hdDtcbn0+O1xuXG50eXBlIFR1cm5PZmZGdW5jdGlvbiA9ICgpID0+IFByb21pc2U8dm9pZD47XG5cbmNvbnN0IFNZTUJPTF9BVFRBQ0ggPSBTeW1ib2woJ2F0dGFjaCcpO1xuY29uc3QgU1lNQk9MX1RVUk5fT0ZGID0gU3ltYm9sKCd0dXJuT2ZmJyk7XG5cbnR5cGUgQ3JlYXRlQXVkaW9Db25maWdPcHRpb25zID0ge1xuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIGF0dGFjaGluZyB0aGUgZGV2aWNlIGJ5IHJldHVybmluZyBhbiBhdWRpbyBub2RlLiAqL1xuICBhdHRhY2g6IEF0dGFjaEZ1bmN0aW9uO1xuXG4gIC8qKiBgdHJ1ZWAgdG8gZW5hYmxlIGRpYWdub3N0aWMgaW5mb3JtYXRpb24sIG90aGVyd2lzZSwgYGZhbHNlYC4gKi9cbiAgZGVidWc/OiB0cnVlO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdHVybmluZyBvZmYgdGhlIGRldmljZSBiZWZvcmUgZGV0YWNoaW5nIGl0cyBub2RlIGZyb20gYW4gYXVkaW8gZ3JhcGguXG4gICAqXG4gICAqIE5vdGU6IHRoaXMgaXMgbm90IGNhbGxlZCBmb3IgRGlyZWN0IExpbmUgU3BlZWNoLlxuICAgKi9cbiAgdHVybk9mZj86IFR1cm5PZmZGdW5jdGlvbjtcbn07XG5cbmNsYXNzIENyZWF0ZUF1ZGlvQ29uZmlnQXVkaW9JbnB1dFN0cmVhbSBleHRlbmRzIEN1c3RvbUF1ZGlvSW5wdXRTdHJlYW0ge1xuICBjb25zdHJ1Y3Rvcih7IGF0dGFjaCwgZGVidWcsIHR1cm5PZmYgfTogQ3JlYXRlQXVkaW9Db25maWdPcHRpb25zKSB7XG4gICAgaWYgKCFhdHRhY2ggfHwgdHlwZW9mIGF0dGFjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcImF0dGFjaFwiIG11c3QgYmUgYSBmdW5jdGlvbi4nKTtcbiAgICB9XG5cbiAgICBpZiAodHVybk9mZiAmJiB0eXBlb2YgdHVybk9mZiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcInR1cm5PZmZcIiwgaWYgZGVmaW5lZCwgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICAgIH1cblxuICAgIHN1cGVyKHsgZGVidWcgfSk7XG5cbiAgICB0aGlzW1NZTUJPTF9BVFRBQ0hdID0gYXR0YWNoO1xuICAgIHRoaXNbU1lNQk9MX1RVUk5fT0ZGXSA9IHR1cm5PZmY7XG4gIH1cblxuICBbU1lNQk9MX0FUVEFDSF06IEF0dGFjaEZ1bmN0aW9uO1xuICBbU1lNQk9MX1RVUk5fT0ZGXTogVHVybk9mZkZ1bmN0aW9uO1xuXG4gIHByb3RlY3RlZCBwZXJmb3JtQXR0YWNoKGF1ZGlvTm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPHtcbiAgICBhdWRpb1N0cmVhbU5vZGU6IEF1ZGlvU3RyZWFtTm9kZTtcbiAgICBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvO1xuICAgIGZvcm1hdDogRm9ybWF0O1xuICB9PiB7XG4gICAgcmV0dXJuIHRoaXNbU1lNQk9MX0FUVEFDSF0oYXVkaW9Ob2RlSWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBlcmZvcm1UdXJuT2ZmKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgW1NZTUJPTF9UVVJOX09GRl06IHR1cm5PZmYgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4gdHVybk9mZiAmJiB0dXJuT2ZmKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQXVkaW9Db25maWcob3B0aW9uczogQ3JlYXRlQXVkaW9Db25maWdPcHRpb25zKSB7XG4gIHJldHVybiBBdWRpb0NvbmZpZy5mcm9tU3RyZWFtSW5wdXQobmV3IENyZWF0ZUF1ZGlvQ29uZmlnQXVkaW9JbnB1dFN0cmVhbShvcHRpb25zKSk7XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvY3JlYXRlQXVkaW9Db25maWcudHMiXSwibmFtZXMiOlsiU1lNQk9MX0FUVEFDSCIsIlN5bWJvbCIsIlNZTUJPTF9UVVJOX09GRiIsIkNyZWF0ZUF1ZGlvQ29uZmlnQXVkaW9JbnB1dFN0cmVhbSIsImF0dGFjaCIsImRlYnVnIiwidHVybk9mZiIsIkVycm9yIiwiYXVkaW9Ob2RlSWQiLCJDdXN0b21BdWRpb0lucHV0U3RyZWFtIiwiY3JlYXRlQXVkaW9Db25maWciLCJvcHRpb25zIiwiQXVkaW9Db25maWciLCJmcm9tU3RyZWFtSW5wdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBRUE7Ozs7OztBQVVBLElBQU1BLGFBQWEsR0FBR0MsTUFBTSxDQUFDLFFBQUQsQ0FBNUI7QUFDQSxJQUFNQyxlQUFlLEdBQUdELE1BQU0sQ0FBQyxTQUFELENBQTlCOztJQWlCTUUsaUM7Ozs7O0FBQ0osbURBQWtFO0FBQUE7O0FBQUEsUUFBcERDLE1BQW9ELFFBQXBEQSxNQUFvRDtBQUFBLFFBQTVDQyxLQUE0QyxRQUE1Q0EsS0FBNEM7QUFBQSxRQUFyQ0MsT0FBcUMsUUFBckNBLE9BQXFDO0FBQUE7O0FBQ2hFLFFBQUksQ0FBQ0YsTUFBRCxJQUFXLE9BQU9BLE1BQVAsS0FBa0IsVUFBakMsRUFBNkM7QUFDM0MsWUFBTSxJQUFJRyxLQUFKLENBQVUsOEJBQVYsQ0FBTjtBQUNEOztBQUVELFFBQUlELE9BQU8sSUFBSSxPQUFPQSxPQUFQLEtBQW1CLFVBQWxDLEVBQThDO0FBQzVDLFlBQU0sSUFBSUMsS0FBSixDQUFVLDRDQUFWLENBQU47QUFDRDs7QUFFRCw4QkFBTTtBQUFFRixNQUFBQSxLQUFLLEVBQUxBO0FBQUYsS0FBTixFQVRnRSxDQVdoRTtBQUNBOztBQVpnRSwrRUFvQmpFTCxhQXBCaUU7QUFBQSwrRUFxQmpFRSxlQXJCaUU7QUFhaEUsVUFBS0YsYUFBTCxJQUFzQkksTUFBdEIsQ0FiZ0UsQ0FlaEU7QUFDQTs7QUFDQSxVQUFLRixlQUFMLElBQXdCSSxPQUF4QjtBQWpCZ0U7QUFrQmpFOzs7O1dBS0QsdUJBQXdCRSxXQUF4QixFQUlHO0FBQ0Q7QUFDQTtBQUNBLGFBQU8sS0FBS1IsYUFBTCxFQUFvQlEsV0FBcEIsQ0FBUDtBQUNEOzs7V0FFRCwwQkFBMEM7QUFDeEMsVUFBMkJGLE9BQTNCLEdBQXVDLElBQXZDLENBQVNKLGVBQVQ7QUFFQSxhQUFPSSxPQUFPLElBQUlBLE9BQU8sRUFBekI7QUFDRDs7O0VBdEM2Q0csK0I7O0FBeUNqQyxTQUFTQyxpQkFBVCxDQUEyQkMsT0FBM0IsRUFBOEQ7QUFDM0UsU0FBT0MsaURBQVlDLGVBQVosQ0FBNEIsSUFBSVYsaUNBQUosQ0FBc0NRLE9BQXRDLENBQTVCLENBQVA7QUFDRCIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETzogW1AyXSAjMzk3NiBXZSBzaG91bGQgZXhwb3J0IHRoaXMgdG8gYWxsb3cgd2ViIGRldmVsb3BlcnMgdG8gYnJpbmcgaW4gdGhlaXIgb3duIG1pY3JvcGhvbmUuXG4vLyAgICAgICBGb3IgZXhhbXBsZSwgaXQgc2hvdWxkIGVuYWJsZSBSZWFjdCBOYXRpdmUgZGV2cyB0byBicmluZyBpbiB0aGVpciBtaWNyb3Bob25lIGltcGxlbWVudGF0aW9uIGFuZCB1c2UgQ29nbml0aXZlIFNlcnZpY2VzIFNwZWVjaCBTZXJ2aWNlcy5cblxuaW1wb3J0IHsgQXVkaW9Db25maWcgfSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkayc7XG5cbmltcG9ydCBDdXN0b21BdWRpb0lucHV0U3RyZWFtLCB7IEF1ZGlvU3RyZWFtTm9kZSwgRGV2aWNlSW5mbywgRm9ybWF0IH0gZnJvbSAnLi9DdXN0b21BdWRpb0lucHV0U3RyZWFtJztcblxudHlwZSBBdHRhY2hGdW5jdGlvbiA9IChhdWRpb05vZGVJZDogc3RyaW5nKSA9PiBQcm9taXNlPHtcbiAgYXVkaW9TdHJlYW1Ob2RlOiBBdWRpb1N0cmVhbU5vZGU7XG4gIGRldmljZUluZm86IERldmljZUluZm87XG4gIGZvcm1hdDogRm9ybWF0O1xufT47XG5cbnR5cGUgVHVybk9mZkZ1bmN0aW9uID0gKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuY29uc3QgU1lNQk9MX0FUVEFDSCA9IFN5bWJvbCgnYXR0YWNoJyk7XG5jb25zdCBTWU1CT0xfVFVSTl9PRkYgPSBTeW1ib2woJ3R1cm5PZmYnKTtcblxudHlwZSBDcmVhdGVBdWRpb0NvbmZpZ09wdGlvbnMgPSB7XG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgYXR0YWNoaW5nIHRoZSBkZXZpY2UgYnkgcmV0dXJuaW5nIGFuIGF1ZGlvIG5vZGUuICovXG4gIGF0dGFjaDogQXR0YWNoRnVuY3Rpb247XG5cbiAgLyoqIGB0cnVlYCB0byBlbmFibGUgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbiwgb3RoZXJ3aXNlLCBgZmFsc2VgLiAqL1xuICBkZWJ1Zz86IHRydWU7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0dXJuaW5nIG9mZiB0aGUgZGV2aWNlIGJlZm9yZSBkZXRhY2hpbmcgaXRzIG5vZGUgZnJvbSBhbiBhdWRpbyBncmFwaC5cbiAgICpcbiAgICogTm90ZTogdGhpcyBpcyBub3QgY2FsbGVkIGZvciBEaXJlY3QgTGluZSBTcGVlY2guXG4gICAqL1xuICB0dXJuT2ZmPzogVHVybk9mZkZ1bmN0aW9uO1xufTtcblxuY2xhc3MgQ3JlYXRlQXVkaW9Db25maWdBdWRpb0lucHV0U3RyZWFtIGV4dGVuZHMgQ3VzdG9tQXVkaW9JbnB1dFN0cmVhbSB7XG4gIGNvbnN0cnVjdG9yKHsgYXR0YWNoLCBkZWJ1ZywgdHVybk9mZiB9OiBDcmVhdGVBdWRpb0NvbmZpZ09wdGlvbnMpIHtcbiAgICBpZiAoIWF0dGFjaCB8fCB0eXBlb2YgYXR0YWNoICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiYXR0YWNoXCIgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICAgIH1cblxuICAgIGlmICh0dXJuT2ZmICYmIHR5cGVvZiB0dXJuT2ZmICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1widHVybk9mZlwiLCBpZiBkZWZpbmVkLCBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgfVxuXG4gICAgc3VwZXIoeyBkZWJ1ZyB9KTtcblxuICAgIC8vIEZhbHNlIGFsYXJtOiBpbmRleGVyIGlzIGEgY29uc3RhbnQgb2YgdHlwZSBTeW1ib2wuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgdGhpc1tTWU1CT0xfQVRUQUNIXSA9IGF0dGFjaDtcblxuICAgIC8vIEZhbHNlIGFsYXJtOiBpbmRleGVyIGlzIGEgY29uc3RhbnQgb2YgdHlwZSBTeW1ib2wuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgdGhpc1tTWU1CT0xfVFVSTl9PRkZdID0gdHVybk9mZjtcbiAgfVxuXG4gIFtTWU1CT0xfQVRUQUNIXTogQXR0YWNoRnVuY3Rpb247XG4gIFtTWU1CT0xfVFVSTl9PRkZdOiBUdXJuT2ZmRnVuY3Rpb247XG5cbiAgcHJvdGVjdGVkIHBlcmZvcm1BdHRhY2goYXVkaW9Ob2RlSWQ6IHN0cmluZyk6IFByb21pc2U8e1xuICAgIGF1ZGlvU3RyZWFtTm9kZTogQXVkaW9TdHJlYW1Ob2RlO1xuICAgIGRldmljZUluZm86IERldmljZUluZm87XG4gICAgZm9ybWF0OiBGb3JtYXQ7XG4gIH0+IHtcbiAgICAvLyBGYWxzZSBhbGFybTogaW5kZXhlciBpcyBhIGNvbnN0YW50IG9mIHR5cGUgU3ltYm9sLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgIHJldHVybiB0aGlzW1NZTUJPTF9BVFRBQ0hdKGF1ZGlvTm9kZUlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwZXJmb3JtVHVybk9mZigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IFtTWU1CT0xfVFVSTl9PRkZdOiB0dXJuT2ZmIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIHR1cm5PZmYgJiYgdHVybk9mZigpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUF1ZGlvQ29uZmlnKG9wdGlvbnM6IENyZWF0ZUF1ZGlvQ29uZmlnT3B0aW9ucykge1xuICByZXR1cm4gQXVkaW9Db25maWcuZnJvbVN0cmVhbUlucHV0KG5ldyBDcmVhdGVBdWRpb0NvbmZpZ0F1ZGlvSW5wdXRTdHJlYW0ob3B0aW9ucykpO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"createMicrophoneAudioConfigAndAudioContext.d.ts","sourceRoot":"","sources":["../../src/speech/createMicrophoneAudioConfigAndAudioContext.ts"],"names":[],"mappings":"AA2HA,MAAM,CAAC,OAAO,UAAU,0CAA0C,CAAC,EACjE,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAChB,EAAE;IACD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB;;;EAcA"}
1
+ {"version":3,"file":"createMicrophoneAudioConfigAndAudioContext.d.ts","sourceRoot":"","sources":["../../src/speech/createMicrophoneAudioConfigAndAudioContext.ts"],"names":[],"mappings":"AA6HA,MAAM,CAAC,OAAO,UAAU,0CAA0C,CAAC,EACjE,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAChB,EAAE;IACD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB;;;EAcA"}
@@ -38,6 +38,8 @@ var PCM_RECORDER_HARDCODED_SETTINGS = Object.freeze({
38
38
  });
39
39
  var PCM_RECORDER_HARDCODED_FORMAT = Object.freeze({
40
40
  bitsPerSample: PCM_RECORDER_HARDCODED_SETTINGS.sampleSize,
41
+ // `channelCount` is not on @types/web@0.0.54 yet, related to https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1290.
42
+ // @ts-ignore
41
43
  channels: PCM_RECORDER_HARDCODED_SETTINGS.channelCount,
42
44
  samplesPerSec: PCM_RECORDER_HARDCODED_SETTINGS.sampleRate
43
45
  });
@@ -158,4 +160,4 @@ function createMicrophoneAudioConfigAndAudioContext(_ref) {
158
160
  audioContext: audioContext
159
161
  };
160
162
  }
161
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvY3JlYXRlTWljcm9waG9uZUF1ZGlvQ29uZmlnQW5kQXVkaW9Db250ZXh0LnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfQlVGRkVSX0RVUkFUSU9OX0lOX01TIiwiUENNX1JFQ09SREVSX0hBUkRDT0RFRF9TRVRUSU5HUyIsIk9iamVjdCIsImZyZWV6ZSIsImNoYW5uZWxDb3VudCIsInNhbXBsZVJhdGUiLCJzYW1wbGVTaXplIiwiUENNX1JFQ09SREVSX0hBUkRDT0RFRF9GT1JNQVQiLCJiaXRzUGVyU2FtcGxlIiwiY2hhbm5lbHMiLCJzYW1wbGVzUGVyU2VjIiwiY3JlYXRlTWljcm9waG9uZUF1ZGlvQ29uZmlnIiwib3B0aW9ucyIsImF1ZGlvQ29uc3RyYWludHMiLCJhdWRpb0NvbnRleHQiLCJkZWJ1ZyIsImVuYWJsZVRlbGVtZXRyeSIsInBjbVJlY29yZGVyV29ya2xldFVybCIsImJ1ZmZlckR1cmF0aW9uSW5NUyIsInBjbVJlY29yZGVyIiwiUGNtUmVjb3JkZXIiLCJzZXRXb3JrbGV0VXJsIiwiYXR0YWNoIiwiYXVkaW9Ob2RlSWQiLCJhdWRpbyIsInZpZGVvIiwibWVkaWFTdHJlYW0iLCJnZXRBdWRpb1RyYWNrcyIsImZpcnN0QXVkaW9UcmFjayIsIkVycm9yIiwib3V0cHV0U3RyZWFtIiwiQ2h1bmtlZEFycmF5QnVmZmVyU3RyZWFtIiwicmVjb3JkIiwiYXVkaW9TdHJlYW1Ob2RlIiwiZGV0YWNoIiwicmVhZEVuZGVkIiwiY2xvc2UiLCJyZWxlYXNlTWVkaWFSZXNvdXJjZXMiLCJnZXRUcmFja3MiLCJmb3JFYWNoIiwidHJhY2siLCJyZW1vdmVUcmFjayIsImlkIiwicmVhZCIsImRldmljZUluZm8iLCJtYW51ZmFjdHVyZXIiLCJtb2RlbCIsImxhYmVsIiwidHlwZSIsImZvcm1hdCIsImNyZWF0ZU1pY3JvcGhvbmVBdWRpb0NvbmZpZ0FuZEF1ZGlvQ29udGV4dCIsImF1ZGlvSW5wdXREZXZpY2VJZCIsImF1ZGlvQ29uZmln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LFlBQVksRUFBWkE7QUFOSyxHQUFQO0FBUUQiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENodW5rZWRBcnJheUJ1ZmZlclN0cmVhbSB9IGZyb20gJ21pY3Jvc29mdC1jb2duaXRpdmVzZXJ2aWNlcy1zcGVlY2gtc2RrL2Rpc3RyaWIvbGliL3NyYy9jb21tb24vRXhwb3J0cyc7XG5pbXBvcnQgeyBQY21SZWNvcmRlciB9IGZyb20gJ21pY3Jvc29mdC1jb2duaXRpdmVzZXJ2aWNlcy1zcGVlY2gtc2RrL2Rpc3RyaWIvbGliL3NyYy9jb21tb24uYnJvd3Nlci9FeHBvcnRzJztcblxuaW1wb3J0IHsgQXVkaW9TdHJlYW1Ob2RlLCBEZXZpY2VJbmZvLCBGb3JtYXQgfSBmcm9tICcuL0N1c3RvbUF1ZGlvSW5wdXRTdHJlYW0nO1xuaW1wb3J0IGJ5dGVzUGVyU2FtcGxlIGZyb20gJy4vYnl0ZXNQZXJTYW1wbGUnO1xuaW1wb3J0IGNyZWF0ZUF1ZGlvQ29uZmlnIGZyb20gJy4vY3JlYXRlQXVkaW9Db25maWcnO1xuaW1wb3J0IGNyZWF0ZUF1ZGlvQ29udGV4dCBmcm9tICcuL2NyZWF0ZUF1ZGlvQ29udGV4dCc7XG5pbXBvcnQgZ2V0VXNlck1lZGlhIGZyb20gJy4vZ2V0VXNlck1lZGlhJztcblxuLy8gVGhpcyBpcyBob3cgb2Z0ZW4gd2UgYXJlIGZsdXNoaW5nIGF1ZGlvIGJ1ZmZlciB0byB0aGUgbmV0d29yay4gTW9kaWZ5IHRoaXMgdmFsdWUgd2lsbCBhZmZlY3QgbGF0ZW5jeS5cbmNvbnN0IERFRkFVTFRfQlVGRkVSX0RVUkFUSU9OX0lOX01TID0gMTAwO1xuXG4vLyBUT0RPOiBbUDJdICMzOTc1IFdlIHNob3VsZCBjb25zaWRlciBidWlsZGluZyBvdXIgb3duIFBjbVJlY29yZGVyOlxuLy8gICAgICAgLSBVc2UgQXVkaW8gV29ya2xldCB2aWEgYmxvYiBVUkxcbi8vICAgICAgIC0gTm90IGhhcmRjb2RpbmcgdGhlIHNhbXBsZSByYXRlIG9yIG90aGVyIHZhbHVlc1xuLy8gUGNtUmVjb3JkZXIgYWx3YXlzIGRvd25zY2FsZSB0byAxNjAwMCBIei4gV2UgY2Fubm90IHVzZSB0aGUgZHluYW1pYyB2YWx1ZSBmcm9tIE1lZGlhQ29uc3RyYWludHMgb3IgTWVkaWFUcmFja1NldHRpbmdzLlxuY29uc3QgUENNX1JFQ09SREVSX0hBUkRDT0RFRF9TRVRUSU5HUzogTWVkaWFUcmFja1NldHRpbmdzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGNoYW5uZWxDb3VudDogMSxcbiAgc2FtcGxlUmF0ZTogMTYwMDAsXG4gIHNhbXBsZVNpemU6IDE2XG59KTtcblxuY29uc3QgUENNX1JFQ09SREVSX0hBUkRDT0RFRF9GT1JNQVQ6IEZvcm1hdCA9IE9iamVjdC5mcmVlemUoe1xuICBiaXRzUGVyU2FtcGxlOiBQQ01fUkVDT1JERVJfSEFSRENPREVEX1NFVFRJTkdTLnNhbXBsZVNpemUsXG4gIGNoYW5uZWxzOiBQQ01fUkVDT1JERVJfSEFSRENPREVEX1NFVFRJTkdTLmNoYW5uZWxDb3VudCxcbiAgc2FtcGxlc1BlclNlYzogUENNX1JFQ09SREVSX0hBUkRDT0RFRF9TRVRUSU5HUy5zYW1wbGVSYXRlXG59KTtcblxudHlwZSBNaWNyb3Bob25lQXVkaW9JbnB1dFN0cmVhbU9wdGlvbnMgPSB7XG4gIC8qKiBTcGVjaWZpZXMgdGhlIGNvbnN0cmFpbnRzIGZvciBzZWxlY3RpbmcgYW4gYXVkaW8gZGV2aWNlLiAqL1xuICBhdWRpb0NvbnN0cmFpbnRzPzogdHJ1ZSB8IE1lZGlhVHJhY2tDb25zdHJhaW50cztcblxuICAvKiogU3BlY2lmaWVzIHRoZSBgQXVkaW9Db250ZXh0YCB0byB1c2UuIFRoaXMgb2JqZWN0IG11c3QgYmUgcHJpbWVkIGFuZCByZWFkeSB0byB1c2UuICovXG4gIGF1ZGlvQ29udGV4dDogQXVkaW9Db250ZXh0O1xuXG4gIC8qKiBTcGVjaWZpZXMgdGhlIGJ1ZmZlcmluZyBkZWxheSBvbiBob3cgb2Z0ZW4gdG8gZmx1c2ggYXVkaW8gZGF0YSB0byBuZXR3b3JrLiBJbmNyZWFzaW5nIHRoZSB2YWx1ZSB3aWxsIGluY3JlYXNlIGF1ZGlvIGxhdGVuY3kuIERlZmF1bHQgaXMgMTAwIG1zLiAqL1xuICBidWZmZXJEdXJhdGlvbkluTVM/OiBudW1iZXI7XG5cbiAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGRpc3BsYXkgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbi4gKi9cbiAgZGVidWc/OiB0cnVlO1xuXG4gIC8qKiBTcGVjaWZpZXMgaWYgdGVsZW1ldHJ5IGRhdGEgc2hvdWxkIGJlIHNlbnQuIElmIG5vdCBzcGVjaWZpZWQsIHRlbGVtZXRyeSBkYXRhIHdpbGwgTk9UIGJlIHNlbnQuICovXG4gIGVuYWJsZVRlbGVtZXRyeT86IHRydWU7XG5cbiAgLyoqIFNwZWNpZmllcyB0aGUgYEF1ZGlvV29ya2xldGAgVVJMIGZvciBgUGNtUmVjb3JkZXJgLiBJZiBub3Qgc3BlY2lmaWVkLCB3aWxsIHVzZSBzY3JpcHQgcHJvY2Vzc29yIG9uIFVJIHRocmVhZCBpbnN0ZWFkLiAqL1xuICBwY21SZWNvcmRlcldvcmtsZXRVcmw/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVNaWNyb3Bob25lQXVkaW9Db25maWcob3B0aW9uczogTWljcm9waG9uZUF1ZGlvSW5wdXRTdHJlYW1PcHRpb25zKSB7XG4gIGNvbnN0IHsgYXVkaW9Db25zdHJhaW50cywgYXVkaW9Db250ZXh0LCBkZWJ1ZywgZW5hYmxlVGVsZW1ldHJ5LCBwY21SZWNvcmRlcldvcmtsZXRVcmwgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGJ1ZmZlckR1cmF0aW9uSW5NUyA9IG9wdGlvbnMuYnVmZmVyRHVyYXRpb25Jbk1TIHx8IERFRkFVTFRfQlVGRkVSX0RVUkFUSU9OX0lOX01TO1xuXG4gIGNvbnN0IHBjbVJlY29yZGVyID0gbmV3IFBjbVJlY29yZGVyKCk7XG5cbiAgcGNtUmVjb3JkZXJXb3JrbGV0VXJsICYmIHBjbVJlY29yZGVyLnNldFdvcmtsZXRVcmwocGNtUmVjb3JkZXJXb3JrbGV0VXJsKTtcblxuICByZXR1cm4gY3JlYXRlQXVkaW9Db25maWcoe1xuICAgIGFzeW5jIGF0dGFjaChhdWRpb05vZGVJZDogc3RyaW5nKTogUHJvbWlzZTx7XG4gICAgICBhdWRpb1N0cmVhbU5vZGU6IEF1ZGlvU3RyZWFtTm9kZTtcbiAgICAgIGRldmljZUluZm86IERldmljZUluZm87XG4gICAgICBmb3JtYXQ6IEZvcm1hdDtcbiAgICB9PiB7XG4gICAgICAvLyBXZSBuZWVkIHRvIGdldCBuZXcgTWVkaWFTdHJlYW0gb24gZXZlcnkgYXR0YWNoKCkuXG4gICAgICAvLyBUaGlzIGlzIGJlY2F1c2UgUGNtUmVjb3JkZXIucmVsZWFzZU1lZGlhUmVzb3VyY2VzKCkgZGlzY29ubmVjdGVkL3N0b3BwZWQgdGhlbS5cbiAgICAgIGNvbnN0IG1lZGlhU3RyZWFtID0gYXdhaXQgZ2V0VXNlck1lZGlhKHsgYXVkaW86IGF1ZGlvQ29uc3RyYWludHMsIHZpZGVvOiBmYWxzZSB9KTtcblxuICAgICAgY29uc3QgW2ZpcnN0QXVkaW9UcmFja10gPSBtZWRpYVN0cmVhbS5nZXRBdWRpb1RyYWNrcygpO1xuXG4gICAgICBpZiAoIWZpcnN0QXVkaW9UcmFjaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGF1ZGlvIGRldmljZSBpcyBmb3VuZC4nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3V0cHV0U3RyZWFtID0gbmV3IENodW5rZWRBcnJheUJ1ZmZlclN0cmVhbShcbiAgICAgICAgLy8gU3BlZWNoIFNESyBxdWlya3M6IFBjbVJlY29yZGVyIGhhcmRjb2RlZCBzYW1wbGUgcmF0ZSBvZiAxNjAwMCBIei5cbiAgICAgICAgYnl0ZXNQZXJTYW1wbGUoUENNX1JFQ09SREVSX0hBUkRDT0RFRF9TRVRUSU5HUykgKlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgICAgICAgKChidWZmZXJEdXJhdGlvbkluTVMgfHwgREVGQVVMVF9CVUZGRVJfRFVSQVRJT05fSU5fTVMpIC8gMTAwMCksXG4gICAgICAgIGF1ZGlvTm9kZUlkXG4gICAgICApO1xuXG4gICAgICBwY21SZWNvcmRlci5yZWNvcmQoYXVkaW9Db250ZXh0LCBtZWRpYVN0cmVhbSwgb3V0cHV0U3RyZWFtKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXVkaW9TdHJlYW1Ob2RlOiB7XG4gICAgICAgICAgLy8gU3BlZWNoIFNESyBxdWlya3M6IEluIFNESydzIG9yaWdpbmFsIE1pY0F1ZGlvU291cmNlIGltcGxlbWVudGF0aW9uLCBpdCBjYWxsIHR1cm5PZmYoKSBkdXJpbmcgZGV0YWNoKCkuXG4gICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIFRoYXQgbWVhbnMsIGl0IGNhbGwgdHVybk9mZigpLCB0aGVuIGRldGFjaCgpLCB0aGVuIHR1cm5PZmYoKSBhZ2Fpbi4gU2VlbXMgcmVkdW5kYW50LlxuICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBXaGVuIHVzaW5nIHdpdGggRGlyZWN0IExpbmUgU3BlZWNoLCB0dXJuT2ZmKCkgaXMgbmV2ZXIgY2FsbGVkLlxuICAgICAgICAgIGRldGFjaDogKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgLy8gU3BlZWNoIFNESyBxdWlya3M6IEluIFNESywgaXQgY2FsbCBvdXRwdXRTdHJlYW0uY2xvc2UoKSBpbiB0dXJuT2ZmKCkgYmVmb3JlIG91dHB1dFN0cmVhbS5yZWFkRW5kZWQoKSBpbiBkZXRhY2goKS5cbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBJIHRoaW5rIGl0IG1ha2Ugc2Vuc2UgdG8gY2FsbCByZWFkRW5kZWQoKSBiZWZvcmUgY2xvc2UoKS5cbiAgICAgICAgICAgIG91dHB1dFN0cmVhbS5yZWFkRW5kZWQoKTtcbiAgICAgICAgICAgIG91dHB1dFN0cmVhbS5jbG9zZSgpO1xuXG4gICAgICAgICAgICAvLyBQY21SZWNvcmRlci5yZWxlYXNlTWVkaWFSZXNvdXJjZXMoKSB3aWxsIGRpc2Nvbm5lY3Qvc3RvcCB0aGUgTWVkaWFTdHJlYW0uXG4gICAgICAgICAgICAvLyBXZSBjYW5ub3QgdXNlIE1lZGlhU3RyZWFtIGFnYWluIGFmdGVyIHR1cm5lZCBvZmYuXG4gICAgICAgICAgICBwY21SZWNvcmRlci5yZWxlYXNlTWVkaWFSZXNvdXJjZXMoYXVkaW9Db250ZXh0KTtcblxuICAgICAgICAgICAgLy8gTWVkaWFTdHJlYW0gd2lsbCBiZWNvbWUgaW5hY3RpdmUgYWZ0ZXIgYWxsIHRyYWNrcyBhcmUgcmVtb3ZlZC5cbiAgICAgICAgICAgIG1lZGlhU3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gbWVkaWFTdHJlYW0ucmVtb3ZlVHJhY2sodHJhY2spKTtcblxuICAgICAgICAgICAgLy8gRVNMaW50OiBcInJldHVyblwiIGlzIHJlcXVpcmVkIGJ5IFR5cGVTY3JpcHRcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaWQ6ICgpID0+IGF1ZGlvTm9kZUlkLFxuICAgICAgICAgIHJlYWQ6ICgpID0+IG91dHB1dFN0cmVhbS5yZWFkKClcbiAgICAgICAgfSxcbiAgICAgICAgZGV2aWNlSW5mbzoge1xuICAgICAgICAgIG1hbnVmYWN0dXJlcjogJ0JvdCBGcmFtZXdvcmsgV2ViIENoYXQnLFxuICAgICAgICAgIG1vZGVsOiBlbmFibGVUZWxlbWV0cnkgPyBmaXJzdEF1ZGlvVHJhY2subGFiZWwgOiAnJyxcbiAgICAgICAgICB0eXBlOiBlbmFibGVUZWxlbWV0cnkgPyAnTWljcm9waG9uZXMnIDogJ1Vua25vd24nXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBQY21SZWNvcmRlciBoYXJkY29kZWQgc2FtcGxlIHJhdGUgb2YgMTYwMDAgSHouXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBXZSBjYW5ub3Qgb2J0YWluIHRoaXMgbnVtYmVyIG90aGVyIHRoYW4gbG9va2luZyBhdCB0aGVpciBzb3VyY2UgY29kZS5cbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIEkuZS4gbm8gZ2V0dGVyIHByb3BlcnR5LlxuICAgICAgICAvLyBQY21SZWNvcmRlciBhbHdheXMgZG93bnNjYWxlIHRvIDE2MDAwIEh6LiBXZSBjYW5ub3QgdXNlIHRoZSBkeW5hbWljIHZhbHVlIGZyb20gTWVkaWFDb25zdHJhaW50cyBvciBNZWRpYVRyYWNrU2V0dGluZ3MuXG4gICAgICAgIGZvcm1hdDogUENNX1JFQ09SREVSX0hBUkRDT0RFRF9GT1JNQVRcbiAgICAgIH07XG4gICAgfSxcbiAgICBkZWJ1Z1xuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlTWljcm9waG9uZUF1ZGlvQ29uZmlnQW5kQXVkaW9Db250ZXh0KHtcbiAgYXVkaW9Db250ZXh0LFxuICBhdWRpb0lucHV0RGV2aWNlSWQsXG4gIGVuYWJsZVRlbGVtZXRyeVxufToge1xuICBhdWRpb0NvbnRleHQ/OiBBdWRpb0NvbnRleHQ7XG4gIGF1ZGlvSW5wdXREZXZpY2VJZD86IHN0cmluZztcbiAgZW5hYmxlVGVsZW1ldHJ5PzogdHJ1ZTtcbn0pIHtcbiAgLy8gV2ViIENoYXQgaGFzIGFuIGltcGxlbWVudGF0aW9uIG9mIEF1ZGlvQ29uZmlnIGZvciBtaWNyb3Bob25lIHRoYXQgd291bGQgZW5hYmxlIGJldHRlciBzdXBwb3J0IG9uIFNhZmFyaTpcbiAgLy8gLSBNYWludGFpbiBzYW1lIGluc3RhbmNlIG9mIGBBdWRpb0NvbnRleHRgIGFjcm9zcyByZWNvZ25pdGlvbnM7XG4gIC8vIC0gUmVzdW1lIHN1c3BlbmRlZCBgQXVkaW9Db250ZXh0YCBvbiB1c2VyIGdlc3R1cmVzLlxuICBhdWRpb0NvbnRleHQgfHwgKGF1ZGlvQ29udGV4dCA9IGNyZWF0ZUF1ZGlvQ29udGV4dCgpKTtcblxuICByZXR1cm4ge1xuICAgIGF1ZGlvQ29uZmlnOiBjcmVhdGVNaWNyb3Bob25lQXVkaW9Db25maWcoe1xuICAgICAgYXVkaW9Db25zdHJhaW50czogYXVkaW9JbnB1dERldmljZUlkID8geyBkZXZpY2VJZDogYXVkaW9JbnB1dERldmljZUlkIH0gOiB0cnVlLFxuICAgICAgYXVkaW9Db250ZXh0LFxuICAgICAgZW5hYmxlVGVsZW1ldHJ5OiBlbmFibGVUZWxlbWV0cnkgPyB0cnVlIDogdW5kZWZpbmVkXG4gICAgfSksXG4gICAgYXVkaW9Db250ZXh0XG4gIH07XG59XG4iXX0=
163
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvY3JlYXRlTWljcm9waG9uZUF1ZGlvQ29uZmlnQW5kQXVkaW9Db250ZXh0LnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfQlVGRkVSX0RVUkFUSU9OX0lOX01TIiwiUENNX1JFQ09SREVSX0hBUkRDT0RFRF9TRVRUSU5HUyIsIk9iamVjdCIsImZyZWV6ZSIsImNoYW5uZWxDb3VudCIsInNhbXBsZVJhdGUiLCJzYW1wbGVTaXplIiwiUENNX1JFQ09SREVSX0hBUkRDT0RFRF9GT1JNQVQiLCJiaXRzUGVyU2FtcGxlIiwiY2hhbm5lbHMiLCJzYW1wbGVzUGVyU2VjIiwiY3JlYXRlTWljcm9waG9uZUF1ZGlvQ29uZmlnIiwib3B0aW9ucyIsImF1ZGlvQ29uc3RyYWludHMiLCJhdWRpb0NvbnRleHQiLCJkZWJ1ZyIsImVuYWJsZVRlbGVtZXRyeSIsInBjbVJlY29yZGVyV29ya2xldFVybCIsImJ1ZmZlckR1cmF0aW9uSW5NUyIsInBjbVJlY29yZGVyIiwiUGNtUmVjb3JkZXIiLCJzZXRXb3JrbGV0VXJsIiwiYXR0YWNoIiwiYXVkaW9Ob2RlSWQiLCJhdWRpbyIsInZpZGVvIiwibWVkaWFTdHJlYW0iLCJnZXRBdWRpb1RyYWNrcyIsImZpcnN0QXVkaW9UcmFjayIsIkVycm9yIiwib3V0cHV0U3RyZWFtIiwiQ2h1bmtlZEFycmF5QnVmZmVyU3RyZWFtIiwicmVjb3JkIiwiYXVkaW9TdHJlYW1Ob2RlIiwiZGV0YWNoIiwicmVhZEVuZGVkIiwiY2xvc2UiLCJyZWxlYXNlTWVkaWFSZXNvdXJjZXMiLCJnZXRUcmFja3MiLCJmb3JFYWNoIiwidHJhY2siLCJyZW1vdmVUcmFjayIsImlkIiwicmVhZCIsImRldmljZUluZm8iLCJtYW51ZmFjdHVyZXIiLCJtb2RlbCIsImxhYmVsIiwidHlwZSIsImZvcm1hdCIsImNyZWF0ZU1pY3JvcGhvbmVBdWRpb0NvbmZpZ0FuZEF1ZGlvQ29udGV4dCIsImF1ZGlvSW5wdXREZXZpY2VJZCIsImF1ZGlvQ29uZmln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TUx4QyxJQUFBQSxZQUFZLEVBQVpBO0FBTkssR0FBUDtBQVFEIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaHVua2VkQXJyYXlCdWZmZXJTdHJlYW0gfSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkay9kaXN0cmliL2xpYi9zcmMvY29tbW9uL0V4cG9ydHMnO1xuaW1wb3J0IHsgUGNtUmVjb3JkZXIgfSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkay9kaXN0cmliL2xpYi9zcmMvY29tbW9uLmJyb3dzZXIvRXhwb3J0cyc7XG5cbmltcG9ydCB7IEF1ZGlvU3RyZWFtTm9kZSwgRGV2aWNlSW5mbywgRm9ybWF0IH0gZnJvbSAnLi9DdXN0b21BdWRpb0lucHV0U3RyZWFtJztcbmltcG9ydCBieXRlc1BlclNhbXBsZSBmcm9tICcuL2J5dGVzUGVyU2FtcGxlJztcbmltcG9ydCBjcmVhdGVBdWRpb0NvbmZpZyBmcm9tICcuL2NyZWF0ZUF1ZGlvQ29uZmlnJztcbmltcG9ydCBjcmVhdGVBdWRpb0NvbnRleHQgZnJvbSAnLi9jcmVhdGVBdWRpb0NvbnRleHQnO1xuaW1wb3J0IGdldFVzZXJNZWRpYSBmcm9tICcuL2dldFVzZXJNZWRpYSc7XG5cbi8vIFRoaXMgaXMgaG93IG9mdGVuIHdlIGFyZSBmbHVzaGluZyBhdWRpbyBidWZmZXIgdG8gdGhlIG5ldHdvcmsuIE1vZGlmeSB0aGlzIHZhbHVlIHdpbGwgYWZmZWN0IGxhdGVuY3kuXG5jb25zdCBERUZBVUxUX0JVRkZFUl9EVVJBVElPTl9JTl9NUyA9IDEwMDtcblxuLy8gVE9ETzogW1AyXSAjMzk3NSBXZSBzaG91bGQgY29uc2lkZXIgYnVpbGRpbmcgb3VyIG93biBQY21SZWNvcmRlcjpcbi8vICAgICAgIC0gVXNlIEF1ZGlvIFdvcmtsZXQgdmlhIGJsb2IgVVJMXG4vLyAgICAgICAtIE5vdCBoYXJkY29kaW5nIHRoZSBzYW1wbGUgcmF0ZSBvciBvdGhlciB2YWx1ZXNcbi8vIFBjbVJlY29yZGVyIGFsd2F5cyBkb3duc2NhbGUgdG8gMTYwMDAgSHouIFdlIGNhbm5vdCB1c2UgdGhlIGR5bmFtaWMgdmFsdWUgZnJvbSBNZWRpYUNvbnN0cmFpbnRzIG9yIE1lZGlhVHJhY2tTZXR0aW5ncy5cbmNvbnN0IFBDTV9SRUNPUkRFUl9IQVJEQ09ERURfU0VUVElOR1M6IE1lZGlhVHJhY2tTZXR0aW5ncyA9IE9iamVjdC5mcmVlemUoe1xuICBjaGFubmVsQ291bnQ6IDEsXG4gIHNhbXBsZVJhdGU6IDE2MDAwLFxuICBzYW1wbGVTaXplOiAxNlxufSk7XG5cbmNvbnN0IFBDTV9SRUNPUkRFUl9IQVJEQ09ERURfRk9STUFUOiBGb3JtYXQgPSBPYmplY3QuZnJlZXplKHtcbiAgYml0c1BlclNhbXBsZTogUENNX1JFQ09SREVSX0hBUkRDT0RFRF9TRVRUSU5HUy5zYW1wbGVTaXplLFxuICAvLyBgY2hhbm5lbENvdW50YCBpcyBub3Qgb24gQHR5cGVzL3dlYkAwLjAuNTQgeWV0LCByZWxhdGVkIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC1ET00tbGliLWdlbmVyYXRvci9pc3N1ZXMvMTI5MC5cbiAgLy8gQHRzLWlnbm9yZVxuICBjaGFubmVsczogUENNX1JFQ09SREVSX0hBUkRDT0RFRF9TRVRUSU5HUy5jaGFubmVsQ291bnQsXG4gIHNhbXBsZXNQZXJTZWM6IFBDTV9SRUNPUkRFUl9IQVJEQ09ERURfU0VUVElOR1Muc2FtcGxlUmF0ZVxufSk7XG5cbnR5cGUgTWljcm9waG9uZUF1ZGlvSW5wdXRTdHJlYW1PcHRpb25zID0ge1xuICAvKiogU3BlY2lmaWVzIHRoZSBjb25zdHJhaW50cyBmb3Igc2VsZWN0aW5nIGFuIGF1ZGlvIGRldmljZS4gKi9cbiAgYXVkaW9Db25zdHJhaW50cz86IHRydWUgfCBNZWRpYVRyYWNrQ29uc3RyYWludHM7XG5cbiAgLyoqIFNwZWNpZmllcyB0aGUgYEF1ZGlvQ29udGV4dGAgdG8gdXNlLiBUaGlzIG9iamVjdCBtdXN0IGJlIHByaW1lZCBhbmQgcmVhZHkgdG8gdXNlLiAqL1xuICBhdWRpb0NvbnRleHQ6IEF1ZGlvQ29udGV4dDtcblxuICAvKiogU3BlY2lmaWVzIHRoZSBidWZmZXJpbmcgZGVsYXkgb24gaG93IG9mdGVuIHRvIGZsdXNoIGF1ZGlvIGRhdGEgdG8gbmV0d29yay4gSW5jcmVhc2luZyB0aGUgdmFsdWUgd2lsbCBpbmNyZWFzZSBhdWRpbyBsYXRlbmN5LiBEZWZhdWx0IGlzIDEwMCBtcy4gKi9cbiAgYnVmZmVyRHVyYXRpb25Jbk1TPzogbnVtYmVyO1xuXG4gIC8qKiBTcGVjaWZpZXMgd2hldGhlciB0byBkaXNwbGF5IGRpYWdub3N0aWMgaW5mb3JtYXRpb24uICovXG4gIGRlYnVnPzogdHJ1ZTtcblxuICAvKiogU3BlY2lmaWVzIGlmIHRlbGVtZXRyeSBkYXRhIHNob3VsZCBiZSBzZW50LiBJZiBub3Qgc3BlY2lmaWVkLCB0ZWxlbWV0cnkgZGF0YSB3aWxsIE5PVCBiZSBzZW50LiAqL1xuICBlbmFibGVUZWxlbWV0cnk/OiB0cnVlO1xuXG4gIC8qKiBTcGVjaWZpZXMgdGhlIGBBdWRpb1dvcmtsZXRgIFVSTCBmb3IgYFBjbVJlY29yZGVyYC4gSWYgbm90IHNwZWNpZmllZCwgd2lsbCB1c2Ugc2NyaXB0IHByb2Nlc3NvciBvbiBVSSB0aHJlYWQgaW5zdGVhZC4gKi9cbiAgcGNtUmVjb3JkZXJXb3JrbGV0VXJsPzogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gY3JlYXRlTWljcm9waG9uZUF1ZGlvQ29uZmlnKG9wdGlvbnM6IE1pY3JvcGhvbmVBdWRpb0lucHV0U3RyZWFtT3B0aW9ucykge1xuICBjb25zdCB7IGF1ZGlvQ29uc3RyYWludHMsIGF1ZGlvQ29udGV4dCwgZGVidWcsIGVuYWJsZVRlbGVtZXRyeSwgcGNtUmVjb3JkZXJXb3JrbGV0VXJsIH0gPSBvcHRpb25zO1xuICBjb25zdCBidWZmZXJEdXJhdGlvbkluTVMgPSBvcHRpb25zLmJ1ZmZlckR1cmF0aW9uSW5NUyB8fCBERUZBVUxUX0JVRkZFUl9EVVJBVElPTl9JTl9NUztcblxuICBjb25zdCBwY21SZWNvcmRlciA9IG5ldyBQY21SZWNvcmRlcigpO1xuXG4gIHBjbVJlY29yZGVyV29ya2xldFVybCAmJiBwY21SZWNvcmRlci5zZXRXb3JrbGV0VXJsKHBjbVJlY29yZGVyV29ya2xldFVybCk7XG5cbiAgcmV0dXJuIGNyZWF0ZUF1ZGlvQ29uZmlnKHtcbiAgICBhc3luYyBhdHRhY2goYXVkaW9Ob2RlSWQ6IHN0cmluZyk6IFByb21pc2U8e1xuICAgICAgYXVkaW9TdHJlYW1Ob2RlOiBBdWRpb1N0cmVhbU5vZGU7XG4gICAgICBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvO1xuICAgICAgZm9ybWF0OiBGb3JtYXQ7XG4gICAgfT4ge1xuICAgICAgLy8gV2UgbmVlZCB0byBnZXQgbmV3IE1lZGlhU3RyZWFtIG9uIGV2ZXJ5IGF0dGFjaCgpLlxuICAgICAgLy8gVGhpcyBpcyBiZWNhdXNlIFBjbVJlY29yZGVyLnJlbGVhc2VNZWRpYVJlc291cmNlcygpIGRpc2Nvbm5lY3RlZC9zdG9wcGVkIHRoZW0uXG4gICAgICBjb25zdCBtZWRpYVN0cmVhbSA9IGF3YWl0IGdldFVzZXJNZWRpYSh7IGF1ZGlvOiBhdWRpb0NvbnN0cmFpbnRzLCB2aWRlbzogZmFsc2UgfSk7XG5cbiAgICAgIGNvbnN0IFtmaXJzdEF1ZGlvVHJhY2tdID0gbWVkaWFTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKTtcblxuICAgICAgaWYgKCFmaXJzdEF1ZGlvVHJhY2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhdWRpbyBkZXZpY2UgaXMgZm91bmQuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG91dHB1dFN0cmVhbSA9IG5ldyBDaHVua2VkQXJyYXlCdWZmZXJTdHJlYW0oXG4gICAgICAgIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBQY21SZWNvcmRlciBoYXJkY29kZWQgc2FtcGxlIHJhdGUgb2YgMTYwMDAgSHouXG4gICAgICAgIGJ5dGVzUGVyU2FtcGxlKFBDTV9SRUNPUkRFUl9IQVJEQ09ERURfU0VUVElOR1MpICpcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICAgICgoYnVmZmVyRHVyYXRpb25Jbk1TIHx8IERFRkFVTFRfQlVGRkVSX0RVUkFUSU9OX0lOX01TKSAvIDEwMDApLFxuICAgICAgICBhdWRpb05vZGVJZFxuICAgICAgKTtcblxuICAgICAgcGNtUmVjb3JkZXIucmVjb3JkKGF1ZGlvQ29udGV4dCwgbWVkaWFTdHJlYW0sIG91dHB1dFN0cmVhbSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1ZGlvU3RyZWFtTm9kZToge1xuICAgICAgICAgIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBJbiBTREsncyBvcmlnaW5hbCBNaWNBdWRpb1NvdXJjZSBpbXBsZW1lbnRhdGlvbiwgaXQgY2FsbCB0dXJuT2ZmKCkgZHVyaW5nIGRldGFjaCgpLlxuICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBUaGF0IG1lYW5zLCBpdCBjYWxsIHR1cm5PZmYoKSwgdGhlbiBkZXRhY2goKSwgdGhlbiB0dXJuT2ZmKCkgYWdhaW4uIFNlZW1zIHJlZHVuZGFudC5cbiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgV2hlbiB1c2luZyB3aXRoIERpcmVjdCBMaW5lIFNwZWVjaCwgdHVybk9mZigpIGlzIG5ldmVyIGNhbGxlZC5cbiAgICAgICAgICBkZXRhY2g6ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICAgIC8vIFNwZWVjaCBTREsgcXVpcmtzOiBJbiBTREssIGl0IGNhbGwgb3V0cHV0U3RyZWFtLmNsb3NlKCkgaW4gdHVybk9mZigpIGJlZm9yZSBvdXRwdXRTdHJlYW0ucmVhZEVuZGVkKCkgaW4gZGV0YWNoKCkuXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgSSB0aGluayBpdCBtYWtlIHNlbnNlIHRvIGNhbGwgcmVhZEVuZGVkKCkgYmVmb3JlIGNsb3NlKCkuXG4gICAgICAgICAgICBvdXRwdXRTdHJlYW0ucmVhZEVuZGVkKCk7XG4gICAgICAgICAgICBvdXRwdXRTdHJlYW0uY2xvc2UoKTtcblxuICAgICAgICAgICAgLy8gUGNtUmVjb3JkZXIucmVsZWFzZU1lZGlhUmVzb3VyY2VzKCkgd2lsbCBkaXNjb25uZWN0L3N0b3AgdGhlIE1lZGlhU3RyZWFtLlxuICAgICAgICAgICAgLy8gV2UgY2Fubm90IHVzZSBNZWRpYVN0cmVhbSBhZ2FpbiBhZnRlciB0dXJuZWQgb2ZmLlxuICAgICAgICAgICAgcGNtUmVjb3JkZXIucmVsZWFzZU1lZGlhUmVzb3VyY2VzKGF1ZGlvQ29udGV4dCk7XG5cbiAgICAgICAgICAgIC8vIE1lZGlhU3RyZWFtIHdpbGwgYmVjb21lIGluYWN0aXZlIGFmdGVyIGFsbCB0cmFja3MgYXJlIHJlbW92ZWQuXG4gICAgICAgICAgICBtZWRpYVN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IG1lZGlhU3RyZWFtLnJlbW92ZVRyYWNrKHRyYWNrKSk7XG5cbiAgICAgICAgICAgIC8vIEVTTGludDogXCJyZXR1cm5cIiBpcyByZXF1aXJlZCBieSBUeXBlU2NyaXB0XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlkOiAoKSA9PiBhdWRpb05vZGVJZCxcbiAgICAgICAgICByZWFkOiAoKSA9PiBvdXRwdXRTdHJlYW0ucmVhZCgpXG4gICAgICAgIH0sXG4gICAgICAgIGRldmljZUluZm86IHtcbiAgICAgICAgICBtYW51ZmFjdHVyZXI6ICdCb3QgRnJhbWV3b3JrIFdlYiBDaGF0JyxcbiAgICAgICAgICBtb2RlbDogZW5hYmxlVGVsZW1ldHJ5ID8gZmlyc3RBdWRpb1RyYWNrLmxhYmVsIDogJycsXG4gICAgICAgICAgdHlwZTogZW5hYmxlVGVsZW1ldHJ5ID8gJ01pY3JvcGhvbmVzJyA6ICdVbmtub3duJ1xuICAgICAgICB9LFxuICAgICAgICAvLyBTcGVlY2ggU0RLIHF1aXJrczogUGNtUmVjb3JkZXIgaGFyZGNvZGVkIHNhbXBsZSByYXRlIG9mIDE2MDAwIEh6LlxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgV2UgY2Fubm90IG9idGFpbiB0aGlzIG51bWJlciBvdGhlciB0aGFuIGxvb2tpbmcgYXQgdGhlaXIgc291cmNlIGNvZGUuXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBJLmUuIG5vIGdldHRlciBwcm9wZXJ0eS5cbiAgICAgICAgLy8gUGNtUmVjb3JkZXIgYWx3YXlzIGRvd25zY2FsZSB0byAxNjAwMCBIei4gV2UgY2Fubm90IHVzZSB0aGUgZHluYW1pYyB2YWx1ZSBmcm9tIE1lZGlhQ29uc3RyYWludHMgb3IgTWVkaWFUcmFja1NldHRpbmdzLlxuICAgICAgICBmb3JtYXQ6IFBDTV9SRUNPUkRFUl9IQVJEQ09ERURfRk9STUFUXG4gICAgICB9O1xuICAgIH0sXG4gICAgZGVidWdcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZU1pY3JvcGhvbmVBdWRpb0NvbmZpZ0FuZEF1ZGlvQ29udGV4dCh7XG4gIGF1ZGlvQ29udGV4dCxcbiAgYXVkaW9JbnB1dERldmljZUlkLFxuICBlbmFibGVUZWxlbWV0cnlcbn06IHtcbiAgYXVkaW9Db250ZXh0PzogQXVkaW9Db250ZXh0O1xuICBhdWRpb0lucHV0RGV2aWNlSWQ/OiBzdHJpbmc7XG4gIGVuYWJsZVRlbGVtZXRyeT86IHRydWU7XG59KSB7XG4gIC8vIFdlYiBDaGF0IGhhcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBBdWRpb0NvbmZpZyBmb3IgbWljcm9waG9uZSB0aGF0IHdvdWxkIGVuYWJsZSBiZXR0ZXIgc3VwcG9ydCBvbiBTYWZhcmk6XG4gIC8vIC0gTWFpbnRhaW4gc2FtZSBpbnN0YW5jZSBvZiBgQXVkaW9Db250ZXh0YCBhY3Jvc3MgcmVjb2duaXRpb25zO1xuICAvLyAtIFJlc3VtZSBzdXNwZW5kZWQgYEF1ZGlvQ29udGV4dGAgb24gdXNlciBnZXN0dXJlcy5cbiAgYXVkaW9Db250ZXh0IHx8IChhdWRpb0NvbnRleHQgPSBjcmVhdGVBdWRpb0NvbnRleHQoKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBhdWRpb0NvbmZpZzogY3JlYXRlTWljcm9waG9uZUF1ZGlvQ29uZmlnKHtcbiAgICAgIGF1ZGlvQ29uc3RyYWludHM6IGF1ZGlvSW5wdXREZXZpY2VJZCA/IHsgZGV2aWNlSWQ6IGF1ZGlvSW5wdXREZXZpY2VJZCB9IDogdHJ1ZSxcbiAgICAgIGF1ZGlvQ29udGV4dCxcbiAgICAgIGVuYWJsZVRlbGVtZXRyeTogZW5hYmxlVGVsZW1ldHJ5ID8gdHJ1ZSA6IHVuZGVmaW5lZFxuICAgIH0pLFxuICAgIGF1ZGlvQ29udGV4dFxuICB9O1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"getUserMedia.d.ts","sourceRoot":"","sources":["../../src/speech/getUserMedia.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAa9F"}
1
+ {"version":3,"file":"getUserMedia.d.ts","sourceRoot":"","sources":["../../src/speech/getUserMedia.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAgB9F"}
@@ -11,10 +11,13 @@ function getUserMedia(constraints) {
11
11
 
12
12
  if (typeof navigator.mediaDevices !== 'undefined') {
13
13
  return navigator.mediaDevices.getUserMedia(constraints);
14
- } // Although getUserMedia has vendor prefix, they are only used in very old version of browsers.
14
+ } // We are intentionally using the deprecated `navigator.getUserMedia` to make sure backward compatibility.
15
+ // @ts-ignore
15
16
 
16
17
 
17
18
  if (typeof navigator.getUserMedia !== 'undefined') {
19
+ // We are intentionally using the deprecated `navigator.getUserMedia` to make sure backward compatibility.
20
+ // @ts-ignore
18
21
  return new Promise(function (resolve, reject) {
19
22
  return navigator.getUserMedia(constraints, resolve, reject);
20
23
  });
@@ -22,4 +25,4 @@ function getUserMedia(constraints) {
22
25
 
23
26
  throw new Error('This browser does not support Web Audio API.');
24
27
  }
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvZ2V0VXNlck1lZGlhLnRzIl0sIm5hbWVzIjpbImdldFVzZXJNZWRpYSIsImNvbnN0cmFpbnRzIiwid2luZG93IiwibmF2aWdhdG9yIiwibWVkaWFEZXZpY2VzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFlLFNBQVNBLFlBQVQsQ0FBc0JDLFdBQXRCLEVBQWlGO0FBQzlGLGdCQUFzQkMsTUFBdEI7QUFBQSxNQUFRQyxTQUFSLFdBQVFBLFNBQVI7O0FBRUEsTUFBSSxPQUFPQSxTQUFTLENBQUNDLFlBQWpCLEtBQWtDLFdBQXRDLEVBQW1EO0FBQ2pELFdBQU9ELFNBQVMsQ0FBQ0MsWUFBVixDQUF1QkosWUFBdkIsQ0FBb0NDLFdBQXBDLENBQVA7QUFDRCxHQUw2RixDQU85Rjs7O0FBQ0EsTUFBSSxPQUFPRSxTQUFTLENBQUNILFlBQWpCLEtBQWtDLFdBQXRDLEVBQW1EO0FBQ2pELFdBQU8sSUFBSUssT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVjtBQUFBLGFBQXFCSixTQUFTLENBQUNILFlBQVYsQ0FBdUJDLFdBQXZCLEVBQW9DSyxPQUFwQyxFQUE2Q0MsTUFBN0MsQ0FBckI7QUFBQSxLQUFaLENBQVA7QUFDRDs7QUFFRCxRQUFNLElBQUlDLEtBQUosQ0FBVSw4Q0FBVixDQUFOO0FBQ0QiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVzZXJNZWRpYShjb25zdHJhaW50czogTWVkaWFTdHJlYW1Db25zdHJhaW50cyk6IFByb21pc2U8TWVkaWFTdHJlYW0+IHtcbiAgY29uc3QgeyBuYXZpZ2F0b3IgfSA9IHdpbmRvdztcblxuICBpZiAodHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKTtcbiAgfVxuXG4gIC8vIEFsdGhvdWdoIGdldFVzZXJNZWRpYSBoYXMgdmVuZG9yIHByZWZpeCwgdGhleSBhcmUgb25seSB1c2VkIGluIHZlcnkgb2xkIHZlcnNpb24gb2YgYnJvd3NlcnMuXG4gIGlmICh0eXBlb2YgbmF2aWdhdG9yLmdldFVzZXJNZWRpYSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gbmF2aWdhdG9yLmdldFVzZXJNZWRpYShjb25zdHJhaW50cywgcmVzb2x2ZSwgcmVqZWN0KSk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYiBBdWRpbyBBUEkuJyk7XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGVlY2gvZ2V0VXNlck1lZGlhLnRzIl0sIm5hbWVzIjpbImdldFVzZXJNZWRpYSIsImNvbnN0cmFpbnRzIiwid2luZG93IiwibmF2aWdhdG9yIiwibWVkaWFEZXZpY2VzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFlLFNBQVNBLFlBQVQsQ0FBc0JDLFdBQXRCLEVBQWlGO0FBQzlGLGdCQUFzQkMsTUFBdEI7QUFBQSxNQUFRQyxTQUFSLFdBQVFBLFNBQVI7O0FBRUEsTUFBSSxPQUFPQSxTQUFTLENBQUNDLFlBQWpCLEtBQWtDLFdBQXRDLEVBQW1EO0FBQ2pELFdBQU9ELFNBQVMsQ0FBQ0MsWUFBVixDQUF1QkosWUFBdkIsQ0FBb0NDLFdBQXBDLENBQVA7QUFDRCxHQUw2RixDQU85RjtBQUNBOzs7QUFDQSxNQUFJLE9BQU9FLFNBQVMsQ0FBQ0gsWUFBakIsS0FBa0MsV0FBdEMsRUFBbUQ7QUFDakQ7QUFDQTtBQUNBLFdBQU8sSUFBSUssT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVjtBQUFBLGFBQXFCSixTQUFTLENBQUNILFlBQVYsQ0FBdUJDLFdBQXZCLEVBQW9DSyxPQUFwQyxFQUE2Q0MsTUFBN0MsQ0FBckI7QUFBQSxLQUFaLENBQVA7QUFDRDs7QUFFRCxRQUFNLElBQUlDLEtBQUosQ0FBVSw4Q0FBVixDQUFOO0FBQ0QiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVzZXJNZWRpYShjb25zdHJhaW50czogTWVkaWFTdHJlYW1Db25zdHJhaW50cyk6IFByb21pc2U8TWVkaWFTdHJlYW0+IHtcbiAgY29uc3QgeyBuYXZpZ2F0b3IgfSA9IHdpbmRvdztcblxuICBpZiAodHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKTtcbiAgfVxuXG4gIC8vIFdlIGFyZSBpbnRlbnRpb25hbGx5IHVzaW5nIHRoZSBkZXByZWNhdGVkIGBuYXZpZ2F0b3IuZ2V0VXNlck1lZGlhYCB0byBtYWtlIHN1cmUgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgLy8gQHRzLWlnbm9yZVxuICBpZiAodHlwZW9mIG5hdmlnYXRvci5nZXRVc2VyTWVkaWEgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gV2UgYXJlIGludGVudGlvbmFsbHkgdXNpbmcgdGhlIGRlcHJlY2F0ZWQgYG5hdmlnYXRvci5nZXRVc2VyTWVkaWFgIHRvIG1ha2Ugc3VyZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gbmF2aWdhdG9yLmdldFVzZXJNZWRpYShjb25zdHJhaW50cywgcmVzb2x2ZSwgcmVqZWN0KSk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYiBBdWRpbyBBUEkuJyk7XG59XG4iXX0=