oxygen-cli 1.25.0-beta.2 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/.husky/pre-commit +4 -0
  2. package/CHANGELOG.md +65 -0
  3. package/build/core/OxygenCore.js +36 -257
  4. package/build/core/OxygenEvents.js +1 -11
  5. package/build/core/OxygenModule.js +1 -14
  6. package/build/core/OxygenService.js +1 -12
  7. package/build/core/OxygenSubModule.js +1 -10
  8. package/build/core/WebDriverModule.js +1 -30
  9. package/build/core/utils.js +1 -17
  10. package/build/errors/HookError.js +1 -7
  11. package/build/errors/ModuleError.js +1 -7
  12. package/build/errors/ModuleUnavailableError.js +1 -3
  13. package/build/errors/OxygenError.js +1 -33
  14. package/build/errors/ScriptNotFound.js +1 -7
  15. package/build/errors/helper.js +46 -77
  16. package/build/index.js +6 -18
  17. package/build/lib/cli-util.js +28 -90
  18. package/build/lib/cli.js +1 -23
  19. package/build/lib/debugger.js +1 -144
  20. package/build/lib/img-merge.js +1 -15
  21. package/build/lib/launcher.js +1 -28
  22. package/build/lib/moduleRequire.js +1 -4
  23. package/build/lib/param-manager.js +1 -28
  24. package/build/lib/param-reader-csv.js +1 -15
  25. package/build/lib/param-reader-excel.js +1 -14
  26. package/build/lib/param-reader-json.js +1 -10
  27. package/build/lib/util.js +3 -58
  28. package/build/model/case-result.js +1 -2
  29. package/build/model/failure.js +1 -2
  30. package/build/model/status.js +1 -2
  31. package/build/model/step-result.js +1 -2
  32. package/build/model/suite-result.js +1 -2
  33. package/build/model/test-result.js +1 -2
  34. package/build/model/testcase.js +1 -2
  35. package/build/model/testsuite.js +1 -2
  36. package/build/ox_modules/index.js +13 -33
  37. package/build/ox_modules/module-assert.js +8 -24
  38. package/build/ox_modules/module-date.js +3 -8
  39. package/build/ox_modules/module-db.js +7 -28
  40. package/build/ox_modules/module-email.js +10 -36
  41. package/build/ox_modules/module-eyes.js +5 -46
  42. package/build/ox_modules/module-http.js +42 -104
  43. package/build/ox_modules/module-log.js +5 -22
  44. package/build/ox_modules/module-mailinator.js +10 -32
  45. package/build/ox_modules/module-mob/commands/alertAccept.js +1 -2
  46. package/build/ox_modules/module-mob/commands/alertDismiss.js +1 -2
  47. package/build/ox_modules/module-mob/commands/assertAlert.js +1 -6
  48. package/build/ox_modules/module-mob/commands/assertText.js +1 -3
  49. package/build/ox_modules/module-mob/commands/assertTitle.js +1 -4
  50. package/build/ox_modules/module-mob/commands/assertValue.js +9 -15
  51. package/build/ox_modules/module-mob/commands/back.js +1 -2
  52. package/build/ox_modules/module-mob/commands/clear.js +1 -4
  53. package/build/ox_modules/module-mob/commands/click.js +3 -4
  54. package/build/ox_modules/module-mob/commands/clickHidden.js +3 -9
  55. package/build/ox_modules/module-mob/commands/clickLong.js +1 -2
  56. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +1 -4
  57. package/build/ox_modules/module-mob/commands/closeApp.js +1 -2
  58. package/build/ox_modules/module-mob/commands/debug.js +2 -2
  59. package/build/ox_modules/module-mob/commands/dragAndDrop.js +1 -2
  60. package/build/ox_modules/module-mob/commands/enableNetwork.js +4 -12
  61. package/build/ox_modules/module-mob/commands/execute.js +1 -2
  62. package/build/ox_modules/module-mob/commands/findElement.js +1 -3
  63. package/build/ox_modules/module-mob/commands/findElements.js +1 -4
  64. package/build/ox_modules/module-mob/commands/getAlertText.js +1 -2
  65. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +1 -2
  66. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +1 -10
  67. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +1 -2
  68. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +1 -2
  69. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +1 -9
  70. package/build/ox_modules/module-mob/commands/getDeviceTime.js +1 -2
  71. package/build/ox_modules/module-mob/commands/getLocation.js +1 -2
  72. package/build/ox_modules/module-mob/commands/getSource.js +1 -2
  73. package/build/ox_modules/module-mob/commands/getText.js +1 -4
  74. package/build/ox_modules/module-mob/commands/getTitle.js +1 -2
  75. package/build/ox_modules/module-mob/commands/getUrl.js +1 -2
  76. package/build/ox_modules/module-mob/commands/getValue.js +5 -9
  77. package/build/ox_modules/module-mob/commands/getWindowHandles.js +1 -2
  78. package/build/ox_modules/module-mob/commands/hideKeyboard.js +1 -2
  79. package/build/ox_modules/module-mob/commands/index.js +19 -94
  80. package/build/ox_modules/module-mob/commands/installApp.js +1 -2
  81. package/build/ox_modules/module-mob/commands/isAppInstalled.js +1 -2
  82. package/build/ox_modules/module-mob/commands/isCheckable.js +1 -2
  83. package/build/ox_modules/module-mob/commands/isChecked.js +1 -2
  84. package/build/ox_modules/module-mob/commands/isClickable.js +1 -2
  85. package/build/ox_modules/module-mob/commands/isExist.js +1 -3
  86. package/build/ox_modules/module-mob/commands/isSelected.js +1 -2
  87. package/build/ox_modules/module-mob/commands/isVisible.js +1 -3
  88. package/build/ox_modules/module-mob/commands/isWebViewContext.js +1 -2
  89. package/build/ox_modules/module-mob/commands/launchApp.js +1 -2
  90. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +1 -2
  91. package/build/ox_modules/module-mob/commands/open.js +1 -3
  92. package/build/ox_modules/module-mob/commands/pause.js +1 -2
  93. package/build/ox_modules/module-mob/commands/removeApp.js +1 -2
  94. package/build/ox_modules/module-mob/commands/resetApp.js +1 -2
  95. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +1 -6
  96. package/build/ox_modules/module-mob/commands/scrollIntoView.js +1 -2
  97. package/build/ox_modules/module-mob/commands/select.js +1 -4
  98. package/build/ox_modules/module-mob/commands/selectFrame.js +1 -4
  99. package/build/ox_modules/module-mob/commands/selectWindow.js +5 -26
  100. package/build/ox_modules/module-mob/commands/sendKeys.js +6 -9
  101. package/build/ox_modules/module-mob/commands/setContext.js +1 -2
  102. package/build/ox_modules/module-mob/commands/setNativeContext.js +1 -2
  103. package/build/ox_modules/module-mob/commands/setTimeout.js +1 -2
  104. package/build/ox_modules/module-mob/commands/setWebViewContext.js +3 -6
  105. package/build/ox_modules/module-mob/commands/shake.js +1 -2
  106. package/build/ox_modules/module-mob/commands/smsClickLink.js +1 -2
  107. package/build/ox_modules/module-mob/commands/smsGetText.js +3 -6
  108. package/build/ox_modules/module-mob/commands/swipe.js +1 -2
  109. package/build/ox_modules/module-mob/commands/swipeElement.js +1 -2
  110. package/build/ox_modules/module-mob/commands/swipeScreen.js +1 -2
  111. package/build/ox_modules/module-mob/commands/takeScreenshot.js +1 -2
  112. package/build/ox_modules/module-mob/commands/tap.js +1 -2
  113. package/build/ox_modules/module-mob/commands/type.js +3 -7
  114. package/build/ox_modules/module-mob/commands/unlockPattern.js +9 -10
  115. package/build/ox_modules/module-mob/commands/waitForExist.js +1 -2
  116. package/build/ox_modules/module-mob/commands/waitForInteractable.js +1 -3
  117. package/build/ox_modules/module-mob/commands/waitForVisible.js +1 -2
  118. package/build/ox_modules/module-mob.js +72 -142
  119. package/build/ox_modules/module-pdf.js +23 -62
  120. package/build/ox_modules/module-proxy.js +8 -68
  121. package/build/ox_modules/module-serial.js +7 -32
  122. package/build/ox_modules/module-shell.js +8 -27
  123. package/build/ox_modules/module-soap.js +14 -47
  124. package/build/ox_modules/module-twilio.js +10 -53
  125. package/build/ox_modules/module-utils.js +16 -51
  126. package/build/ox_modules/module-web/commands/alertAccept.js +1 -2
  127. package/build/ox_modules/module-web/commands/alertDismiss.js +1 -2
  128. package/build/ox_modules/module-web/commands/assertAlert.js +1 -6
  129. package/build/ox_modules/module-web/commands/assertExist.js +1 -2
  130. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +1 -4
  131. package/build/ox_modules/module-web/commands/assertSelectedValue.js +1 -3
  132. package/build/ox_modules/module-web/commands/assertText.js +1 -3
  133. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +1 -6
  134. package/build/ox_modules/module-web/commands/assertTextPresent.js +1 -6
  135. package/build/ox_modules/module-web/commands/assertTitle.js +1 -3
  136. package/build/ox_modules/module-web/commands/assertValue.js +1 -3
  137. package/build/ox_modules/module-web/commands/back.js +1 -2
  138. package/build/ox_modules/module-web/commands/clear.js +1 -5
  139. package/build/ox_modules/module-web/commands/click.js +4 -13
  140. package/build/ox_modules/module-web/commands/clickHidden.js +2 -7
  141. package/build/ox_modules/module-web/commands/closeWindow.js +1 -2
  142. package/build/ox_modules/module-web/commands/debug.js +2 -2
  143. package/build/ox_modules/module-web/commands/deleteCookies.js +1 -2
  144. package/build/ox_modules/module-web/commands/deselect.js +1 -2
  145. package/build/ox_modules/module-web/commands/doubleClick.js +3 -9
  146. package/build/ox_modules/module-web/commands/dragAndDrop.js +1 -2
  147. package/build/ox_modules/module-web/commands/execute.js +1 -2
  148. package/build/ox_modules/module-web/commands/fileBrowse.js +4 -10
  149. package/build/ox_modules/module-web/commands/findElement.js +1 -3
  150. package/build/ox_modules/module-web/commands/findElements.js +1 -4
  151. package/build/ox_modules/module-web/commands/fullscreenWindow.js +1 -2
  152. package/build/ox_modules/module-web/commands/getAlertText.js +1 -2
  153. package/build/ox_modules/module-web/commands/getAttribute.js +1 -4
  154. package/build/ox_modules/module-web/commands/getBrowserLogs.js +1 -3
  155. package/build/ox_modules/module-web/commands/getCookies.js +1 -2
  156. package/build/ox_modules/module-web/commands/getCssValue.js +1 -4
  157. package/build/ox_modules/module-web/commands/getElementCount.js +1 -2
  158. package/build/ox_modules/module-web/commands/getHTML.js +1 -2
  159. package/build/ox_modules/module-web/commands/getSource.js +1 -2
  160. package/build/ox_modules/module-web/commands/getText.js +1 -4
  161. package/build/ox_modules/module-web/commands/getTitle.js +1 -2
  162. package/build/ox_modules/module-web/commands/getUrl.js +1 -2
  163. package/build/ox_modules/module-web/commands/getValue.js +1 -5
  164. package/build/ox_modules/module-web/commands/getWindowHandles.js +1 -2
  165. package/build/ox_modules/module-web/commands/getWindowSize.js +1 -2
  166. package/build/ox_modules/module-web/commands/getXMLPageSource.js +1 -5
  167. package/build/ox_modules/module-web/commands/index.js +26 -99
  168. package/build/ox_modules/module-web/commands/isAlertPresent.js +1 -2
  169. package/build/ox_modules/module-web/commands/isChecked.js +1 -2
  170. package/build/ox_modules/module-web/commands/isExist.js +1 -3
  171. package/build/ox_modules/module-web/commands/isInteractable.js +33 -0
  172. package/build/ox_modules/module-web/commands/isSelected.js +1 -2
  173. package/build/ox_modules/module-web/commands/isVisible.js +1 -3
  174. package/build/ox_modules/module-web/commands/makeVisible.js +2 -10
  175. package/build/ox_modules/module-web/commands/maximizeWindow.js +1 -2
  176. package/build/ox_modules/module-web/commands/minimizeWindow.js +1 -2
  177. package/build/ox_modules/module-web/commands/newWindow.js +1 -2
  178. package/build/ox_modules/module-web/commands/open.js +1 -4
  179. package/build/ox_modules/module-web/commands/pause.js +1 -2
  180. package/build/ox_modules/module-web/commands/point.js +1 -2
  181. package/build/ox_modules/module-web/commands/pointJS.js +2 -8
  182. package/build/ox_modules/module-web/commands/refresh.js +1 -2
  183. package/build/ox_modules/module-web/commands/rightClick.js +3 -8
  184. package/build/ox_modules/module-web/commands/rightClickActions.js +1 -2
  185. package/build/ox_modules/module-web/commands/scrollToElement.js +1 -2
  186. package/build/ox_modules/module-web/commands/select.js +1 -5
  187. package/build/ox_modules/module-web/commands/selectFrame.js +1 -3
  188. package/build/ox_modules/module-web/commands/selectWindow.js +5 -26
  189. package/build/ox_modules/module-web/commands/sendKeys.js +3 -6
  190. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +2 -2
  191. package/build/ox_modules/module-web/commands/setTimeout.js +1 -2
  192. package/build/ox_modules/module-web/commands/setWindowSize.js +1 -2
  193. package/build/ox_modules/module-web/commands/takeScreenshot.js +3 -5
  194. package/build/ox_modules/module-web/commands/type.js +1 -5
  195. package/build/ox_modules/module-web/commands/waitForAngular.js +6 -11
  196. package/build/ox_modules/module-web/commands/waitForExist.js +1 -2
  197. package/build/ox_modules/module-web/commands/waitForInteractable.js +1 -2
  198. package/build/ox_modules/module-web/commands/waitForNotExist.js +1 -8
  199. package/build/ox_modules/module-web/commands/waitForNotText.js +3 -5
  200. package/build/ox_modules/module-web/commands/waitForNotValue.js +3 -5
  201. package/build/ox_modules/module-web/commands/waitForText.js +3 -5
  202. package/build/ox_modules/module-web/commands/waitForValue.js +3 -5
  203. package/build/ox_modules/module-web/commands/waitForVisible.js +1 -2
  204. package/build/ox_modules/module-web/commands/waitForWindow.js +4 -21
  205. package/build/ox_modules/module-web.js +86 -192
  206. package/build/ox_modules/module-win/commands/assertText.js +1 -3
  207. package/build/ox_modules/module-win/commands/assertTitle.js +1 -4
  208. package/build/ox_modules/module-win/commands/assertValue.js +9 -15
  209. package/build/ox_modules/module-win/commands/back.js +1 -2
  210. package/build/ox_modules/module-win/commands/clear.js +1 -4
  211. package/build/ox_modules/module-win/commands/click.js +1 -2
  212. package/build/ox_modules/module-win/commands/clickLong.js +1 -2
  213. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +1 -4
  214. package/build/ox_modules/module-win/commands/findElement.js +1 -3
  215. package/build/ox_modules/module-win/commands/findElements.js +1 -4
  216. package/build/ox_modules/module-win/commands/getAppiumLogs.js +1 -2
  217. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +1 -2
  218. package/build/ox_modules/module-win/commands/getLocation.js +1 -2
  219. package/build/ox_modules/module-win/commands/getSource.js +1 -2
  220. package/build/ox_modules/module-win/commands/getText.js +1 -4
  221. package/build/ox_modules/module-win/commands/getValue.js +5 -9
  222. package/build/ox_modules/module-win/commands/getWindowHandles.js +1 -2
  223. package/build/ox_modules/module-win/commands/index.js +5 -43
  224. package/build/ox_modules/module-win/commands/isCheckable.js +1 -2
  225. package/build/ox_modules/module-win/commands/isChecked.js +1 -2
  226. package/build/ox_modules/module-win/commands/isClickable.js +1 -2
  227. package/build/ox_modules/module-win/commands/isExist.js +1 -3
  228. package/build/ox_modules/module-win/commands/isSelected.js +1 -2
  229. package/build/ox_modules/module-win/commands/isVisible.js +1 -3
  230. package/build/ox_modules/module-win/commands/open.js +1 -2
  231. package/build/ox_modules/module-win/commands/pause.js +1 -2
  232. package/build/ox_modules/module-win/commands/rightClick.js +1 -2
  233. package/build/ox_modules/module-win/commands/selectWindow.js +1 -15
  234. package/build/ox_modules/module-win/commands/sendKeys.js +1 -4
  235. package/build/ox_modules/module-win/commands/setTimeout.js +1 -2
  236. package/build/ox_modules/module-win/commands/takeScreenshot.js +1 -2
  237. package/build/ox_modules/module-win/commands/tap.js +1 -2
  238. package/build/ox_modules/module-win/commands/type.js +1 -4
  239. package/build/ox_modules/module-win/commands/waitForExist.js +1 -2
  240. package/build/ox_modules/module-win/commands/waitForInteractable.js +1 -4
  241. package/build/ox_modules/module-win/commands/waitForVisible.js +1 -2
  242. package/build/ox_modules/module-win.js +48 -87
  243. package/build/ox_modules/utils.js +22 -76
  244. package/build/ox_reporters/reporter-excel.js +1 -58
  245. package/build/ox_reporters/reporter-html.js +1 -28
  246. package/build/ox_reporters/reporter-json.js +1 -14
  247. package/build/ox_reporters/reporter-junit.js +1 -24
  248. package/build/ox_reporters/reporter-pdf.js +1 -19
  249. package/build/ox_reporters/reporter-xml.js +1 -17
  250. package/build/ox_services/service-devtools/submodule-network.js +3 -84
  251. package/build/ox_services/service-devtools.js +1 -23
  252. package/build/reporter/FileReporterBase.js +5 -44
  253. package/build/reporter/ReportAggregator.js +1 -65
  254. package/build/reporter/ReporterBase.js +1 -6
  255. package/build/runners/WorkerProcess.js +1 -99
  256. package/build/runners/cucumber/CucumberEventListener.js +4 -29
  257. package/build/runners/cucumber/CucumberReporter.js +1 -56
  258. package/build/runners/cucumber/CucumberWorker.js +1 -66
  259. package/build/runners/cucumber/index.js +1 -30
  260. package/build/runners/cucumber/worker.js +1 -18
  261. package/build/runners/index.js +1 -6
  262. package/build/runners/oxygen/OxygenWorker.js +20 -54
  263. package/build/runners/oxygen/index.js +17 -177
  264. package/build/runners/oxygen/worker.js +2 -25
  265. package/package.json +28 -29
@@ -4,24 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  require("source-map-support/register");
9
-
10
8
  var _FileReporterBase = _interopRequireDefault(require("../reporter/FileReporterBase"));
11
-
12
9
  var _reporterHtml = _interopRequireDefault(require("./reporter-html"));
13
-
14
10
  var _path = _interopRequireDefault(require("path"));
15
-
16
11
  var _fs = _interopRequireDefault(require("fs"));
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  var exec = require('child_process').execFileSync;
21
-
22
14
  function convertToPdf(htmlFile) {
23
15
  var binPath;
24
-
25
16
  if (process.platform === 'win32') {
26
17
  binPath = _path.default.join(__dirname, 'pdf', 'wkhtmltopdf.exe');
27
18
  } else if (process.platform === 'linux') {
@@ -29,34 +20,25 @@ function convertToPdf(htmlFile) {
29
20
  } else {
30
21
  throw 'PDF reporter is not yet supported on OS X.';
31
22
  }
32
-
33
23
  var pdfPath = htmlFile.replace(new RegExp('.html', 'g'), '.pdf');
34
24
  exec(binPath, ['-q', '--viewport-size', '1600x900', '-O', 'Landscape', '-L', '10mm', '-R', '10mm', '-T', '10mm', '-B', '10mm', htmlFile, pdfPath], {
35
25
  stdio: [0, 1, 2]
36
26
  });
37
-
38
27
  _fs.default.unlinkSync(htmlFile);
39
-
40
28
  return pdfPath;
41
29
  }
42
-
43
30
  class PdfReporter extends _FileReporterBase.default {
44
31
  constructor(options) {
45
32
  super(options);
46
33
  }
47
-
48
34
  generate(results) {
49
35
  var resultFilePath = this.createFolderStructureAndFilePath('.xml');
50
-
51
36
  var resultFolderPath = _path.default.dirname(resultFilePath);
52
-
53
37
  this.replaceScreenshotsWithFiles(results, resultFolderPath);
54
38
  var reporter = new _reporterHtml.default(this.options);
55
39
  var htmlPath = reporter.generate(results);
56
40
  return convertToPdf(htmlPath);
57
41
  }
58
-
59
42
  }
60
-
61
43
  exports.default = PdfReporter;
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9yZXBvcnRlcnMvcmVwb3J0ZXItcGRmLmpzIl0sIm5hbWVzIjpbImV4ZWMiLCJyZXF1aXJlIiwiZXhlY0ZpbGVTeW5jIiwiY29udmVydFRvUGRmIiwiaHRtbEZpbGUiLCJiaW5QYXRoIiwicHJvY2VzcyIsInBsYXRmb3JtIiwicGF0aCIsImpvaW4iLCJfX2Rpcm5hbWUiLCJwZGZQYXRoIiwicmVwbGFjZSIsIlJlZ0V4cCIsInN0ZGlvIiwiZnMiLCJ1bmxpbmtTeW5jIiwiUGRmUmVwb3J0ZXIiLCJGaWxlUmVwb3J0ZXJCYXNlIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiZ2VuZXJhdGUiLCJyZXN1bHRzIiwicmVzdWx0RmlsZVBhdGgiLCJjcmVhdGVGb2xkZXJTdHJ1Y3R1cmVBbmRGaWxlUGF0aCIsInJlc3VsdEZvbGRlclBhdGgiLCJkaXJuYW1lIiwicmVwbGFjZVNjcmVlbnNob3RzV2l0aEZpbGVzIiwicmVwb3J0ZXIiLCJIdG1sUmVwb3J0ZXIiLCJodG1sUGF0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBWUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFDQSxJQUFJQSxJQUFJLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQVAsQ0FBeUJDLFlBQXBDOztBQUVBLFNBQVNDLFlBQVQsQ0FBc0JDLFFBQXRCLEVBQWdDO0FBQzVCLE1BQUlDLE9BQUo7O0FBRUEsTUFBSUMsT0FBTyxDQUFDQyxRQUFSLEtBQXFCLE9BQXpCLEVBQWtDO0FBQzlCRixJQUFBQSxPQUFPLEdBQUdHLGNBQUtDLElBQUwsQ0FBVUMsU0FBVixFQUFxQixLQUFyQixFQUE0QixpQkFBNUIsQ0FBVjtBQUNILEdBRkQsTUFFTyxJQUFJSixPQUFPLENBQUNDLFFBQVIsS0FBcUIsT0FBekIsRUFBa0M7QUFDckNGLElBQUFBLE9BQU8sR0FBR0csY0FBS0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLEtBQXJCLEVBQTRCLGlCQUE1QixDQUFWO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsVUFBTSw0Q0FBTjtBQUVIOztBQUVELE1BQUlDLE9BQU8sR0FBR1AsUUFBUSxDQUFDUSxPQUFULENBQWlCLElBQUlDLE1BQUosQ0FBVyxPQUFYLEVBQW9CLEdBQXBCLENBQWpCLEVBQTJDLE1BQTNDLENBQWQ7QUFFQWIsRUFBQUEsSUFBSSxDQUFDSyxPQUFELEVBQVUsQ0FBQyxJQUFELEVBQU8saUJBQVAsRUFBMEIsVUFBMUIsRUFBc0MsSUFBdEMsRUFBNEMsV0FBNUMsRUFBeUQsSUFBekQsRUFBK0QsTUFBL0QsRUFBdUUsSUFBdkUsRUFBNkUsTUFBN0UsRUFBcUYsSUFBckYsRUFBMkYsTUFBM0YsRUFBbUcsSUFBbkcsRUFBeUcsTUFBekcsRUFBaUhELFFBQWpILEVBQTJITyxPQUEzSCxDQUFWLEVBQStJO0FBQUNHLElBQUFBLEtBQUssRUFBQyxDQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTDtBQUFQLEdBQS9JLENBQUo7O0FBRUFDLGNBQUdDLFVBQUgsQ0FBY1osUUFBZDs7QUFFQSxTQUFPTyxPQUFQO0FBQ0g7O0FBRWMsTUFBTU0sV0FBTixTQUEwQkMseUJBQTFCLENBQTJDO0FBQ3REQyxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBVTtBQUNqQixVQUFNQSxPQUFOO0FBQ0g7O0FBRURDLEVBQUFBLFFBQVEsQ0FBQ0MsT0FBRCxFQUFVO0FBQ2QsUUFBSUMsY0FBYyxHQUFHLEtBQUtDLGdDQUFMLENBQXNDLE1BQXRDLENBQXJCOztBQUNBLFFBQUlDLGdCQUFnQixHQUFHakIsY0FBS2tCLE9BQUwsQ0FBYUgsY0FBYixDQUF2Qjs7QUFFQSxTQUFLSSwyQkFBTCxDQUFpQ0wsT0FBakMsRUFBMENHLGdCQUExQztBQUVBLFFBQUlHLFFBQVEsR0FBRyxJQUFJQyxxQkFBSixDQUFpQixLQUFLVCxPQUF0QixDQUFmO0FBQ0EsUUFBSVUsUUFBUSxHQUFHRixRQUFRLENBQUNQLFFBQVQsQ0FBa0JDLE9BQWxCLENBQWY7QUFFQSxXQUFPbkIsWUFBWSxDQUFDMkIsUUFBRCxDQUFuQjtBQUNIOztBQWZxRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLypcclxuICogT3h5Z2VuIFBERiBSZXBvcnRlclxyXG4gKi9cclxuaW1wb3J0IEZpbGVSZXBvcnRlckJhc2UgZnJvbSAnLi4vcmVwb3J0ZXIvRmlsZVJlcG9ydGVyQmFzZSc7XHJcbmltcG9ydCBIdG1sUmVwb3J0ZXIgZnJvbSAnLi9yZXBvcnRlci1odG1sJztcclxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XHJcbmltcG9ydCBmcyBmcm9tICdmcyc7XHJcbnZhciBleGVjID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWNGaWxlU3luYztcclxuXHJcbmZ1bmN0aW9uIGNvbnZlcnRUb1BkZihodG1sRmlsZSkge1xyXG4gICAgdmFyIGJpblBhdGg7XHJcblxyXG4gICAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicpIHtcclxuICAgICAgICBiaW5QYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3BkZicsICd3a2h0bWx0b3BkZi5leGUnKTtcclxuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2xpbnV4Jykge1xyXG4gICAgICAgIGJpblBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAncGRmJywgJ3draHRtbHRvcGRmLWxpbicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyAnUERGIHJlcG9ydGVyIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIG9uIE9TIFguJztcclxuICAgICAgICAvL2JpblBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAncGRmJywgJ3draHRtbHRvcGRmLW9zeCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBwZGZQYXRoID0gaHRtbEZpbGUucmVwbGFjZShuZXcgUmVnRXhwKCcuaHRtbCcsICdnJyksICcucGRmJyk7XHJcblxyXG4gICAgZXhlYyhiaW5QYXRoLCBbJy1xJywgJy0tdmlld3BvcnQtc2l6ZScsICcxNjAweDkwMCcsICctTycsICdMYW5kc2NhcGUnLCAnLUwnLCAnMTBtbScsICctUicsICcxMG1tJywgJy1UJywgJzEwbW0nLCAnLUInLCAnMTBtbScsIGh0bWxGaWxlLCBwZGZQYXRoXSwge3N0ZGlvOlswLDEsMl19KTtcclxuXHJcbiAgICBmcy51bmxpbmtTeW5jKGh0bWxGaWxlKTtcclxuXHJcbiAgICByZXR1cm4gcGRmUGF0aDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGRmUmVwb3J0ZXIgZXh0ZW5kcyBGaWxlUmVwb3J0ZXJCYXNlIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBnZW5lcmF0ZShyZXN1bHRzKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdEZpbGVQYXRoID0gdGhpcy5jcmVhdGVGb2xkZXJTdHJ1Y3R1cmVBbmRGaWxlUGF0aCgnLnhtbCcpO1xyXG4gICAgICAgIHZhciByZXN1bHRGb2xkZXJQYXRoID0gcGF0aC5kaXJuYW1lKHJlc3VsdEZpbGVQYXRoKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZXBsYWNlU2NyZWVuc2hvdHNXaXRoRmlsZXMocmVzdWx0cywgcmVzdWx0Rm9sZGVyUGF0aCk7XHJcblxyXG4gICAgICAgIHZhciByZXBvcnRlciA9IG5ldyBIdG1sUmVwb3J0ZXIodGhpcy5vcHRpb25zKTtcclxuICAgICAgICB2YXIgaHRtbFBhdGggPSByZXBvcnRlci5nZW5lcmF0ZShyZXN1bHRzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1BkZihodG1sUGF0aCk7XHJcbiAgICB9XHJcbn0iXX0=
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjIiwicmVxdWlyZSIsImV4ZWNGaWxlU3luYyIsImNvbnZlcnRUb1BkZiIsImh0bWxGaWxlIiwiYmluUGF0aCIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwicGRmUGF0aCIsInJlcGxhY2UiLCJSZWdFeHAiLCJzdGRpbyIsImZzIiwidW5saW5rU3luYyIsIlBkZlJlcG9ydGVyIiwiRmlsZVJlcG9ydGVyQmFzZSIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImdlbmVyYXRlIiwicmVzdWx0cyIsInJlc3VsdEZpbGVQYXRoIiwiY3JlYXRlRm9sZGVyU3RydWN0dXJlQW5kRmlsZVBhdGgiLCJyZXN1bHRGb2xkZXJQYXRoIiwiZGlybmFtZSIsInJlcGxhY2VTY3JlZW5zaG90c1dpdGhGaWxlcyIsInJlcG9ydGVyIiwiSHRtbFJlcG9ydGVyIiwiaHRtbFBhdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvb3hfcmVwb3J0ZXJzL3JlcG9ydGVyLXBkZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qXHJcbiAqIE94eWdlbiBQREYgUmVwb3J0ZXJcclxuICovXHJcbmltcG9ydCBGaWxlUmVwb3J0ZXJCYXNlIGZyb20gJy4uL3JlcG9ydGVyL0ZpbGVSZXBvcnRlckJhc2UnO1xyXG5pbXBvcnQgSHRtbFJlcG9ydGVyIGZyb20gJy4vcmVwb3J0ZXItaHRtbCc7XHJcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xyXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xyXG52YXIgZXhlYyA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKS5leGVjRmlsZVN5bmM7XHJcblxyXG5mdW5jdGlvbiBjb252ZXJ0VG9QZGYoaHRtbEZpbGUpIHtcclxuICAgIHZhciBiaW5QYXRoO1xyXG5cclxuICAgIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInKSB7XHJcbiAgICAgICAgYmluUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdwZGYnLCAnd2todG1sdG9wZGYuZXhlJyk7XHJcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICdsaW51eCcpIHtcclxuICAgICAgICBiaW5QYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3BkZicsICd3a2h0bWx0b3BkZi1saW4nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgJ1BERiByZXBvcnRlciBpcyBub3QgeWV0IHN1cHBvcnRlZCBvbiBPUyBYLic7XHJcbiAgICAgICAgLy9iaW5QYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3BkZicsICd3a2h0bWx0b3BkZi1vc3gnKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgcGRmUGF0aCA9IGh0bWxGaWxlLnJlcGxhY2UobmV3IFJlZ0V4cCgnLmh0bWwnLCAnZycpLCAnLnBkZicpO1xyXG5cclxuICAgIGV4ZWMoYmluUGF0aCwgWyctcScsICctLXZpZXdwb3J0LXNpemUnLCAnMTYwMHg5MDAnLCAnLU8nLCAnTGFuZHNjYXBlJywgJy1MJywgJzEwbW0nLCAnLVInLCAnMTBtbScsICctVCcsICcxMG1tJywgJy1CJywgJzEwbW0nLCBodG1sRmlsZSwgcGRmUGF0aF0sIHtzdGRpbzpbMCwxLDJdfSk7XHJcblxyXG4gICAgZnMudW5saW5rU3luYyhodG1sRmlsZSk7XHJcblxyXG4gICAgcmV0dXJuIHBkZlBhdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBkZlJlcG9ydGVyIGV4dGVuZHMgRmlsZVJlcG9ydGVyQmFzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2VuZXJhdGUocmVzdWx0cykge1xyXG4gICAgICAgIHZhciByZXN1bHRGaWxlUGF0aCA9IHRoaXMuY3JlYXRlRm9sZGVyU3RydWN0dXJlQW5kRmlsZVBhdGgoJy54bWwnKTtcclxuICAgICAgICB2YXIgcmVzdWx0Rm9sZGVyUGF0aCA9IHBhdGguZGlybmFtZShyZXN1bHRGaWxlUGF0aCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVwbGFjZVNjcmVlbnNob3RzV2l0aEZpbGVzKHJlc3VsdHMsIHJlc3VsdEZvbGRlclBhdGgpO1xyXG5cclxuICAgICAgICB2YXIgcmVwb3J0ZXIgPSBuZXcgSHRtbFJlcG9ydGVyKHRoaXMub3B0aW9ucyk7XHJcbiAgICAgICAgdmFyIGh0bWxQYXRoID0gcmVwb3J0ZXIuZ2VuZXJhdGUocmVzdWx0cyk7XHJcblxyXG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9QZGYoaHRtbFBhdGgpO1xyXG4gICAgfVxyXG59Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFBb0I7QUFDcEIsSUFBSUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUNDLFlBQVk7QUFFaEQsU0FBU0MsWUFBWSxDQUFDQyxRQUFRLEVBQUU7RUFDNUIsSUFBSUMsT0FBTztFQUVYLElBQUlDLE9BQU8sQ0FBQ0MsUUFBUSxLQUFLLE9BQU8sRUFBRTtJQUM5QkYsT0FBTyxHQUFHRyxhQUFJLENBQUNDLElBQUksQ0FBQ0MsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQztFQUM1RCxDQUFDLE1BQU0sSUFBSUosT0FBTyxDQUFDQyxRQUFRLEtBQUssT0FBTyxFQUFFO0lBQ3JDRixPQUFPLEdBQUdHLGFBQUksQ0FBQ0MsSUFBSSxDQUFDQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDO0VBQzVELENBQUMsTUFBTTtJQUNILE1BQU0sNENBQTRDO0VBRXREO0VBRUEsSUFBSUMsT0FBTyxHQUFHUCxRQUFRLENBQUNRLE9BQU8sQ0FBQyxJQUFJQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztFQUVoRWIsSUFBSSxDQUFDSyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRUQsUUFBUSxFQUFFTyxPQUFPLENBQUMsRUFBRTtJQUFDRyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7RUFBQyxDQUFDLENBQUM7RUFFbktDLFdBQUUsQ0FBQ0MsVUFBVSxDQUFDWixRQUFRLENBQUM7RUFFdkIsT0FBT08sT0FBTztBQUNsQjtBQUVlLE1BQU1NLFdBQVcsU0FBU0MseUJBQWdCLENBQUM7RUFDdERDLFdBQVcsQ0FBQ0MsT0FBTyxFQUFFO0lBQ2pCLEtBQUssQ0FBQ0EsT0FBTyxDQUFDO0VBQ2xCO0VBRUFDLFFBQVEsQ0FBQ0MsT0FBTyxFQUFFO0lBQ2QsSUFBSUMsY0FBYyxHQUFHLElBQUksQ0FBQ0MsZ0NBQWdDLENBQUMsTUFBTSxDQUFDO0lBQ2xFLElBQUlDLGdCQUFnQixHQUFHakIsYUFBSSxDQUFDa0IsT0FBTyxDQUFDSCxjQUFjLENBQUM7SUFFbkQsSUFBSSxDQUFDSSwyQkFBMkIsQ0FBQ0wsT0FBTyxFQUFFRyxnQkFBZ0IsQ0FBQztJQUUzRCxJQUFJRyxRQUFRLEdBQUcsSUFBSUMscUJBQVksQ0FBQyxJQUFJLENBQUNULE9BQU8sQ0FBQztJQUM3QyxJQUFJVSxRQUFRLEdBQUdGLFFBQVEsQ0FBQ1AsUUFBUSxDQUFDQyxPQUFPLENBQUM7SUFFekMsT0FBT25CLFlBQVksQ0FBQzJCLFFBQVEsQ0FBQztFQUNqQztBQUNKO0FBQUMifQ==
@@ -4,29 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  require("source-map-support/register");
9
-
10
8
  var _path = _interopRequireDefault(require("path"));
11
-
12
9
  var _fs = _interopRequireDefault(require("fs"));
13
-
14
10
  var _FileReporterBase = _interopRequireDefault(require("../reporter/FileReporterBase"));
15
-
16
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
12
  var EasyXml = require('easyxml');
19
-
20
13
  class XmlReporter extends _FileReporterBase.default {
21
14
  constructor(options) {
22
15
  super(options);
23
16
  }
24
-
25
17
  generate(results) {
26
18
  var resultFilePath = this.createFolderStructureAndFilePath('.xml');
27
-
28
19
  var resultFolderPath = _path.default.dirname(resultFilePath);
29
-
30
20
  var serializer = new EasyXml({
31
21
  singularize: true,
32
22
  rootElement: 'test-results',
@@ -38,7 +28,6 @@ class XmlReporter extends _FileReporterBase.default {
38
28
  });
39
29
  this.replaceScreenshotsWithFiles(results, resultFolderPath);
40
30
  const forXmlRender = [];
41
-
42
31
  if (results && Array.isArray(results) && results.length > 0) {
43
32
  results.map(result => {
44
33
  forXmlRender.push({
@@ -82,15 +71,10 @@ class XmlReporter extends _FileReporterBase.default {
82
71
  });
83
72
  });
84
73
  }
85
-
86
74
  var xml = serializer.render(forXmlRender);
87
-
88
75
  _fs.default.writeFileSync(resultFilePath, xml);
89
-
90
76
  return resultFilePath;
91
77
  }
92
-
93
78
  }
94
-
95
79
  exports.default = XmlReporter;
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9yZXBvcnRlcnMvcmVwb3J0ZXIteG1sLmpzIl0sIm5hbWVzIjpbIkVhc3lYbWwiLCJyZXF1aXJlIiwiWG1sUmVwb3J0ZXIiLCJGaWxlUmVwb3J0ZXJCYXNlIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiZ2VuZXJhdGUiLCJyZXN1bHRzIiwicmVzdWx0RmlsZVBhdGgiLCJjcmVhdGVGb2xkZXJTdHJ1Y3R1cmVBbmRGaWxlUGF0aCIsInJlc3VsdEZvbGRlclBhdGgiLCJwYXRoIiwiZGlybmFtZSIsInNlcmlhbGl6ZXIiLCJzaW5ndWxhcml6ZSIsInJvb3RFbGVtZW50Iiwicm9vdEFycmF5IiwiZGF0ZUZvcm1hdCIsIm1hbmlmZXN0IiwidW53cmFwQXJyYXlzIiwiZmlsdGVyTnVsbHMiLCJyZXBsYWNlU2NyZWVuc2hvdHNXaXRoRmlsZXMiLCJmb3JYbWxSZW5kZXIiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJtYXAiLCJyZXN1bHQiLCJwdXNoIiwibmFtZSIsInN0YXR1cyIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJkdXJhdGlvbiIsImZhaWx1cmUiLCJlbnZpcm9ubWVudCIsImNhcGFiaWxpdGllcyIsImN3ZCIsInRhcmdldCIsImJyb3dzZXJOYW1lIiwic2VsZW5pdW1VcmwiLCJhcHBpdW1VcmwiLCJyZW9wZW5TZXNzaW9uIiwicmVSdW5PbkZhaWxlZCIsIml0ZXJhdGlvbnMiLCJkZWJ1Z1BvcnQiLCJkZWxheSIsImNvbGxlY3REZXZpY2VMb2dzIiwiY29sbGVjdEFwcGl1bUxvZ3MiLCJjb2xsZWN0QnJvd3NlckxvZ3MiLCJyZXBvcnRpbmciLCJwYXJhbWV0ZXJzIiwiY29uY3VycmVuY3kiLCJzZXJ2aWNlcyIsIm1vZHVsZXMiLCJmcmFtZXdvcmsiLCJhcHBsaXRvb2xzT3B0cyIsImVudnMiLCJlbnYiLCJwbyIsInNjcmlwdENvbnRlbnRMaW5lT2Zmc2V0Iiwic3VpdGVzIiwieG1sIiwicmVuZGVyIiwiZnMiLCJ3cml0ZUZp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Q0FBa0J6QyxZQUFsQixDQUFWOztBQUNBMEMsZ0JBQUdDLGFBQUgsQ0FBaUJ6RCxjQUFqQixFQUFpQ3NELEdBQWpDOztBQUVBLFdBQU90RCxjQUFQO0FBQ0g7O0FBekVxRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLypcclxuICogT3h5Z2VuIFhNTCBSZXBvcnRlclxyXG4gKi9cclxuXHJcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xyXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xyXG5pbXBvcnQgRmlsZVJlcG9ydGVyQmFzZSBmcm9tICcuLi9yZXBvcnRlci9GaWxlUmVwb3J0ZXJCYXNlJztcclxudmFyIEVhc3lYbWwgPSByZXF1aXJlKCdlYXN5eG1sJyk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBYbWxSZXBvcnRlciBleHRlbmRzIEZpbGVSZXBvcnRlckJhc2Uge1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlKHJlc3VsdHMpIHtcclxuICAgICAgICB2YXIgcmVzdWx0RmlsZVBhdGggPSB0aGlzLmNyZWF0ZUZvbGRlclN0cnVjdHVyZUFuZEZpbGVQYXRoKCcueG1sJyk7XHJcbiAgICAgICAgdmFyIHJlc3VsdEZvbGRlclBhdGggPSBwYXRoLmRpcm5hbWUocmVzdWx0RmlsZVBhdGgpO1xyXG5cclxuICAgICAgICB2YXIgc2VyaWFsaXplciA9IG5ldyBFYXN5WG1sKHtcclxuICAgICAgICAgICAgc2luZ3VsYXJpemU6IHRydWUsXHJcbiAgICAgICAgICAgIHJvb3RFbGVtZW50OiAndGVzdC1yZXN1bHRzJyxcclxuICAgICAgICAgICAgcm9vdEFycmF5OiAndGVzdC1yZXN1bHRzJyxcclxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogJ0lTTycsXHJcbiAgICAgICAgICAgIG1hbmlmZXN0OiB0cnVlLFxyXG4gICAgICAgICAgICB1bndyYXBBcnJheXM6IGZhbHNlLFxyXG4gICAgICAgICAgICBmaWx0ZXJOdWxsczogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJlcGxhY2VTY3JlZW5zaG90c1dpdGhGaWxlcyhyZXN1bHRzLCByZXN1bHRGb2xkZXJQYXRoKTtcclxuICAgICAgICBjb25zdCBmb3JYbWxSZW5kZXIgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgQXJyYXkuaXNBcnJheShyZXN1bHRzKSAmJiByZXN1bHRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yWG1sUmVuZGVyLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHJlc3VsdC5zdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogcmVzdWx0LmVuZFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IHJlc3VsdC5kdXJhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlOiByZXN1bHQuZmFpbHVyZSxcclxuICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogcmVzdWx0LmVudmlyb25tZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllczogcmVzdWx0LmNhcGFiaWxpdGllcyxcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN3ZDogcmVzdWx0Lm9wdGlvbnMuY3dkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6ICByZXN1bHQub3B0aW9ucy50YXJnZXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJOYW1lOiByZXN1bHQub3B0aW9ucy5icm93c2VyTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZW5pdW1Vcmw6IHJlc3VsdC5vcHRpb25zLnNlbGVuaXVtVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBpdW1Vcmw6IHJlc3VsdC5vcHRpb25zLmFwcGl1bVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVvcGVuU2Vzc2lvbjogcmVzdWx0Lm9wdGlvbnMucmVvcGVuU2Vzc2lvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVSdW5PbkZhaWxlZDogcmVzdWx0Lm9wdGlvbnMucmVSdW5PbkZhaWxlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uczogcmVzdWx0Lm9wdGlvbnMuaXRlcmF0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdQb3J0OiByZXN1bHQub3B0aW9ucy5kZWJ1Z1BvcnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5OiByZXN1bHQub3B0aW9ucy5kZWxheSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdERldmljZUxvZ3M6IHJlc3VsdC5vcHRpb25zLmNvbGxlY3REZXZpY2VMb2dzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0QXBwaXVtTG9nczogcmVzdWx0Lm9wdGlvbnMuY29sbGVjdEFwcGl1bUxvZ3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3RCcm93c2VyTG9nczogcmVzdWx0Lm9wdGlvbnMuY29sbGVjdEJyb3dzZXJMb2dzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRpbmc6IHJlc3VsdC5vcHRpb25zLnJlcG9ydGluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogcmVzdWx0Lm9wdGlvbnMucGFyYW1ldGVycyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3VpdGVzOiByZXN1bHQub3B0aW9ucy5zdWl0ZXMsIC8vIGlnbm9yZSwgZnVuY3Rpb24gaW5zaWRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmN1cnJlbmN5OiByZXN1bHQub3B0aW9ucy5jb25jdXJyZW5jeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiByZXN1bHQub3B0aW9ucy5jYXBhYmlsaXRpZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzOiByZXN1bHQub3B0aW9ucy5zZXJ2aWNlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlczogcmVzdWx0Lm9wdGlvbnMubW9kdWxlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWV3b3JrOiByZXN1bHQub3B0aW9ucy5mcmFtZXdvcmssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpdG9vbHNPcHRzOiByZXN1bHQub3B0aW9ucy5hcHBsaXRvb2xzT3B0cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaG9va3M6IHJlc3VsdC5vcHRpb25zLmhvb2tzLCAvLyBpZ25vcmUsIGZ1bmN0aW9uIGluc2lkZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZzOiByZXN1bHQub3B0aW9ucy5lbnZzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiByZXN1bHQub3B0aW9ucy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnY6IHJlc3VsdC5vcHRpb25zLmVudixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG86IHJlc3VsdC5vcHRpb25zLnBvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb250ZW50TGluZU9mZnNldDogcmVzdWx0Lm9wdGlvbnMuc2NyaXB0Q29udGVudExpbmVPZmZzZXRcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN1aXRlczogcmVzdWx0LnN1aXRlc1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gc2VyaWFsaXplIHRlc3QgcmVzdWx0cyB0byBYTUwgYW5kIHNhdmUgdG8gZmlsZVxyXG4gICAgICAgIHZhciB4bWwgPSBzZXJpYWxpemVyLnJlbmRlcihmb3JYbWxSZW5kZXIpO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocmVzdWx0RmlsZVBhdGgsIHhtbCk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHRGaWxlUGF0aDtcclxuICAgIH1cclxufSJdfQ==
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5WG1sIiwicmVxdWlyZSIsIlhtbFJlcG9ydGVyIiwiRmlsZVJlcG9ydGVyQmFzZSIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImdlbmVyYXRlIiwicmVzdWx0cyIsInJlc3VsdEZpbGVQYXRoIiwiY3JlYXRlRm9sZGVyU3RydWN0dXJlQW5kRmlsZVBhdGgiLCJyZXN1bHRGb2xkZXJQYXRoIiwicGF0aCIsImRpcm5hbWUiLCJzZXJpYWxpemVyIiwic2luZ3VsYXJpemUiLCJyb290RWxlbWVudCIsInJvb3RBcnJheSIsImRhdGVGb3JtYXQiLCJtYW5pZmVzdCIsInVud3JhcEFycmF5cyIsImZpbHRlck51bGxzIiwicmVwbGFjZVNjcmVlbnNob3RzV2l0aEZpbGVzIiwiZm9yWG1sUmVuZGVyIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwibWFwIiwicmVzdWx0IiwicHVzaCIsIm5hbWUiLCJzdGF0dXMiLCJzdGFydFRpbWUiLCJlbmRUaW1lIiwiZHVyYXRpb24iLCJmYWlsdXJlIiwiZW52aXJvbm1lbnQiLCJjYXBhYmlsaXRpZXMiLCJjd2QiLCJ0YXJnZXQiLCJicm93c2VyTmFtZSIsInNlbGVuaXVtVXJsIiwiYXBwaXVtVXJsIiwicmVvcGVuU2Vzc2lvbiIsInJlUnVuT25GYWlsZWQiLCJpdGVyYXRpb25zIiwiZGVidWdQb3J0IiwiZGVsYXkiLCJjb2xsZWN0RGV2aWNlTG9ncyIsImNvbGxlY3RBcHBpdW1Mb2dzIiwiY29sbGVjdEJyb3dzZXJMb2dzIiwicmVwb3J0aW5nIiwicGFyYW1ldGVycyIsImNvbmN1cnJlbmN5Iiwic2VydmljZXMiLCJtb2R1bGVzIiwiZnJhbWV3b3JrIiwiYXBwbGl0b29sc09wdHMiLCJlbnZzIiwiZW52IiwicG8iLCJzY3JpcHRDb250ZW50TGluZU9mZnNldCIsInN1aXRlcyIsInhtbCIsInJlbmRlciIsImZzIiwid3JpdGVGaWxlU3luYyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9yZXBvcnRlcnMvcmVwb3J0ZXIteG1sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLypcclxuICogT3h5Z2VuIFhNTCBSZXBvcnRlclxyXG4gKi9cclxuXHJcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xyXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xyXG5pbXBvcnQgRmlsZVJlcG9ydGVyQmFzZSBmcm9tICcuLi9yZXBvcnRlci9GaWxlUmVwb3J0ZXJCYXNlJztcclxudmFyIEVhc3lYbWwgPSByZXF1aXJlKCdlYXN5eG1sJyk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBYbWxSZXBvcnRlciBleHRlbmRzIEZpbGVSZXBvcnRlckJhc2Uge1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlKHJlc3VsdHMpIHtcclxuICAgICAgICB2YXIgcmVzdWx0RmlsZVBhdGggPSB0aGlzLmNyZWF0ZUZvbGRlclN0cnVjdHVyZUFuZEZpbGVQYXRoKCcueG1sJyk7XHJcbiAgICAgICAgdmFyIHJlc3VsdEZvbGRlclBhdGggPSBwYXRoLmRpcm5hbWUocmVzdWx0RmlsZVBhdGgpO1xyXG5cclxuICAgICAgICB2YXIgc2VyaWFsaXplciA9IG5ldyBFYXN5WG1sKHtcclxuICAgICAgICAgICAgc2luZ3VsYXJpemU6IHRydWUsXHJcbiAgICAgICAgICAgIHJvb3RFbGVtZW50OiAndGVzdC1yZXN1bHRzJyxcclxuICAgICAgICAgICAgcm9vdEFycmF5OiAndGVzdC1yZXN1bHRzJyxcclxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogJ0lTTycsXHJcbiAgICAgICAgICAgIG1hbmlmZXN0OiB0cnVlLFxyXG4gICAgICAgICAgICB1bndyYXBBcnJheXM6IGZhbHNlLFxyXG4gICAgICAgICAgICBmaWx0ZXJOdWxsczogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJlcGxhY2VTY3JlZW5zaG90c1dpdGhGaWxlcyhyZXN1bHRzLCByZXN1bHRGb2xkZXJQYXRoKTtcclxuICAgICAgICBjb25zdCBmb3JYbWxSZW5kZXIgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgQXJyYXkuaXNBcnJheShyZXN1bHRzKSAmJiByZXN1bHRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yWG1sUmVuZGVyLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHJlc3VsdC5zdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogcmVzdWx0LmVuZFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IHJlc3VsdC5kdXJhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlOiByZXN1bHQuZmFpbHVyZSxcclxuICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogcmVzdWx0LmVudmlyb25tZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllczogcmVzdWx0LmNhcGFiaWxpdGllcyxcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN3ZDogcmVzdWx0Lm9wdGlvbnMuY3dkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6ICByZXN1bHQub3B0aW9ucy50YXJnZXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJOYW1lOiByZXN1bHQub3B0aW9ucy5icm93c2VyTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZW5pdW1Vcmw6IHJlc3VsdC5vcHRpb25zLnNlbGVuaXVtVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBpdW1Vcmw6IHJlc3VsdC5vcHRpb25zLmFwcGl1bVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVvcGVuU2Vzc2lvbjogcmVzdWx0Lm9wdGlvbnMucmVvcGVuU2Vzc2lvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVSdW5PbkZhaWxlZDogcmVzdWx0Lm9wdGlvbnMucmVSdW5PbkZhaWxlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uczogcmVzdWx0Lm9wdGlvbnMuaXRlcmF0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdQb3J0OiByZXN1bHQub3B0aW9ucy5kZWJ1Z1BvcnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5OiByZXN1bHQub3B0aW9ucy5kZWxheSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdERldmljZUxvZ3M6IHJlc3VsdC5vcHRpb25zLmNvbGxlY3REZXZpY2VMb2dzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0QXBwaXVtTG9nczogcmVzdWx0Lm9wdGlvbnMuY29sbGVjdEFwcGl1bUxvZ3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3RCcm93c2VyTG9nczogcmVzdWx0Lm9wdGlvbnMuY29sbGVjdEJyb3dzZXJMb2dzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRpbmc6IHJlc3VsdC5vcHRpb25zLnJlcG9ydGluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogcmVzdWx0Lm9wdGlvbnMucGFyYW1ldGVycyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3VpdGVzOiByZXN1bHQub3B0aW9ucy5zdWl0ZXMsIC8vIGlnbm9yZSwgZnVuY3Rpb24gaW5zaWRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmN1cnJlbmN5OiByZXN1bHQub3B0aW9ucy5jb25jdXJyZW5jeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiByZXN1bHQub3B0aW9ucy5jYXBhYmlsaXRpZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzOiByZXN1bHQub3B0aW9ucy5zZXJ2aWNlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlczogcmVzdWx0Lm9wdGlvbnMubW9kdWxlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWV3b3JrOiByZXN1bHQub3B0aW9ucy5mcmFtZXdvcmssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpdG9vbHNPcHRzOiByZXN1bHQub3B0aW9ucy5hcHBsaXRvb2xzT3B0cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaG9va3M6IHJlc3VsdC5vcHRpb25zLmhvb2tzLCAvLyBpZ25vcmUsIGZ1bmN0aW9uIGluc2lkZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZzOiByZXN1bHQub3B0aW9ucy5lbnZzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiByZXN1bHQub3B0aW9ucy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnY6IHJlc3VsdC5vcHRpb25zLmVudixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG86IHJlc3VsdC5vcHRpb25zLnBvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb250ZW50TGluZU9mZnNldDogcmVzdWx0Lm9wdGlvbnMuc2NyaXB0Q29udGVudExpbmVPZmZzZXRcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN1aXRlczogcmVzdWx0LnN1aXRlc1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gc2VyaWFsaXplIHRlc3QgcmVzdWx0cyB0byBYTUwgYW5kIHNhdmUgdG8gZmlsZVxyXG4gICAgICAgIHZhciB4bWwgPSBzZXJpYWxpemVyLnJlbmRlcihmb3JYbWxSZW5kZXIpO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocmVzdWx0RmlsZVBhdGgsIHhtbCk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHRGaWxlUGF0aDtcclxuICAgIH1cclxufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUE0RDtBQUM1RCxJQUFJQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFFakIsTUFBTUMsV0FBVyxTQUFTQyx5QkFBZ0IsQ0FBQztFQUN0REMsV0FBVyxDQUFDQyxPQUFPLEVBQUU7SUFDakIsS0FBSyxDQUFDQSxPQUFPLENBQUM7RUFDbEI7RUFFQUMsUUFBUSxDQUFDQyxPQUFPLEVBQUU7SUFDZCxJQUFJQyxjQUFjLEdBQUcsSUFBSSxDQUFDQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUM7SUFDbEUsSUFBSUMsZ0JBQWdCLEdBQUdDLGFBQUksQ0FBQ0MsT0FBTyxDQUFDSixjQUFjLENBQUM7SUFFbkQsSUFBSUssVUFBVSxHQUFHLElBQUliLE9BQU8sQ0FBQztNQUN6QmMsV0FBVyxFQUFFLElBQUk7TUFD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