appium-geckodriver 1.0.2 → 1.0.5

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.
package/.releaserc CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "plugins": [
3
- "@semantic-release/commit-analyzer",
3
+ ["@semantic-release/commit-analyzer", {
4
+ "preset": "angular",
5
+ "releaseRules": [
6
+ {"type": "chore", "release": "patch"}
7
+
8
+ ]
9
+ }],
4
10
  "@semantic-release/npm",
5
11
  "@semantic-release/release-notes-generator",
6
12
  ["@semantic-release/git", {
package/build/index.js CHANGED
@@ -49,4 +49,4 @@ var _default = _driver.default;
49
49
  exports.default = _default;require('source-map-support').install();
50
50
 
51
51
 
52
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfSE9TVCIsIkRFRkFVTFRfUE9SVCIsIm1haW4iLCJnZXRBcmdWYWx1ZSIsImFyZ05hbWUiLCJhcmdJbmRleCIsInByb2Nlc3MiLCJhcmd2IiwiaW5kZXhPZiIsInBvcnQiLCJwYXJzZUludCIsImhvc3QiLCJyZXF1aXJlIiwibW9kdWxlIiwiR2Vja29Ecml2ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsWUFBWSxHQUFHLFdBQXJCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLElBQXJCOztBQUVBLGVBQWVDLElBQWYsR0FBdUI7QUFDckIsUUFBTUMsV0FBVyxHQUFJQyxPQUFELElBQWE7QUFDL0IsVUFBTUMsUUFBUSxHQUFHQyxPQUFPLENBQUNDLElBQVIsQ0FBYUMsT0FBYixDQUFxQkosT0FBckIsQ0FBakI7QUFDQSxXQUFPQyxRQUFRLEdBQUcsQ0FBWCxHQUFlQyxPQUFPLENBQUNDLElBQVIsQ0FBYUYsUUFBUSxHQUFHLENBQXhCLENBQWYsR0FBNEMsSUFBbkQ7QUFDRCxHQUhEOztBQUlBLFFBQU1JLElBQUksR0FBR0MsUUFBUSxDQUFDUCxXQUFXLENBQUMsUUFBRCxDQUFaLEVBQXdCLEVBQXhCLENBQVIsSUFBdUNGLFlBQXBEO0FBQ0EsUUFBTVUsSUFBSSxHQUFHUixXQUFXLENBQUMsUUFBRCxDQUFYLElBQXlCSCxZQUF0QztBQUNBLFNBQU8sTUFBTSx5QkFBWVMsSUFBWixFQUFrQkUsSUFBbEIsQ0FBYjtBQUNEOztBQUVELElBQUlDLE9BQU8sQ0FBQ1YsSUFBUixLQUFpQlcsTUFBckIsRUFBNkI7QUFDM0IsMEJBQVNYLElBQVQ7QUFDRDs7ZUFFY1ksZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBHZWNrb0RyaXZlciBmcm9tICcuL2xpYi9kcml2ZXInO1xuaW1wb3J0IHsgc3RhcnRTZXJ2ZXIgfSBmcm9tICcuL2xpYi9zZXJ2ZXInO1xuaW1wb3J0IHsgYXN5bmNpZnkgfSBmcm9tICdhc3luY2JveCc7XG5cbmNvbnN0IERFRkFVTFRfSE9TVCA9ICdsb2NhbGhvc3QnO1xuY29uc3QgREVGQVVMVF9QT1JUID0gNDc5NztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbiAoKSB7XG4gIGNvbnN0IGdldEFyZ1ZhbHVlID0gKGFyZ05hbWUpID0+IHtcbiAgICBjb25zdCBhcmdJbmRleCA9IHByb2Nlc3MuYXJndi5pbmRleE9mKGFyZ05hbWUpO1xuICAgIHJldHVybiBhcmdJbmRleCA+IDAgPyBwcm9jZXNzLmFyZ3ZbYXJnSW5kZXggKyAxXSA6IG51bGw7XG4gIH07XG4gIGNvbnN0IHBvcnQgPSBwYXJzZUludChnZXRBcmdWYWx1ZSgnLS1wb3J0JyksIDEwKSB8fCBERUZBVUxUX1BPUlQ7XG4gIGNvbnN0IGhvc3QgPSBnZXRBcmdWYWx1ZSgnLS1ob3N0JykgfHwgREVGQVVMVF9IT1NUO1xuICByZXR1cm4gYXdhaXQgc3RhcnRTZXJ2ZXIocG9ydCwgaG9zdCk7XG59XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBhc3luY2lmeShtYWluKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgR2Vja29Ecml2ZXI7XG5leHBvcnQgeyBHZWNrb0RyaXZlciwgc3RhcnRTZXJ2ZXIgfTtcbiJdLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4ifQ==
52
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJERUZBVUxUX0hPU1QiLCJERUZBVUxUX1BPUlQiLCJtYWluIiwiZ2V0QXJnVmFsdWUiLCJhcmdOYW1lIiwiYXJnSW5kZXgiLCJwcm9jZXNzIiwiYXJndiIsImluZGV4T2YiLCJwb3J0IiwicGFyc2VJbnQiLCJob3N0IiwicmVxdWlyZSIsIm1vZHVsZSIsIkdlY2tvRHJpdmVyIl0sInNvdXJjZVJvb3QiOiIuLiIsInNvdXJjZXMiOlsiaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdlY2tvRHJpdmVyIGZyb20gJy4vbGliL2RyaXZlcic7XG5pbXBvcnQgeyBzdGFydFNlcnZlciB9IGZyb20gJy4vbGliL3NlcnZlcic7XG5pbXBvcnQgeyBhc3luY2lmeSB9IGZyb20gJ2FzeW5jYm94JztcblxuY29uc3QgREVGQVVMVF9IT1NUID0gJ2xvY2FsaG9zdCc7XG5jb25zdCBERUZBVUxUX1BPUlQgPSA0Nzk3O1xuXG5hc3luYyBmdW5jdGlvbiBtYWluICgpIHtcbiAgY29uc3QgZ2V0QXJnVmFsdWUgPSAoYXJnTmFtZSkgPT4ge1xuICAgIGNvbnN0IGFyZ0luZGV4ID0gcHJvY2Vzcy5hcmd2LmluZGV4T2YoYXJnTmFtZSk7XG4gICAgcmV0dXJuIGFyZ0luZGV4ID4gMCA/IHByb2Nlc3MuYXJndlthcmdJbmRleCArIDFdIDogbnVsbDtcbiAgfTtcbiAgY29uc3QgcG9ydCA9IHBhcnNlSW50KGdldEFyZ1ZhbHVlKCctLXBvcnQnKSwgMTApIHx8IERFRkFVTFRfUE9SVDtcbiAgY29uc3QgaG9zdCA9IGdldEFyZ1ZhbHVlKCctLWhvc3QnKSB8fCBERUZBVUxUX0hPU1Q7XG4gIHJldHVybiBhd2FpdCBzdGFydFNlcnZlcihwb3J0LCBob3N0KTtcbn1cblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGFzeW5jaWZ5KG1haW4pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBHZWNrb0RyaXZlcjtcbmV4cG9ydCB7IEdlY2tvRHJpdmVyLCBzdGFydFNlcnZlciB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFlBQVksR0FBRyxXQUFyQjtBQUNBLE1BQU1DLFlBQVksR0FBRyxJQUFyQjs7QUFFQSxlQUFlQyxJQUFmLEdBQXVCO0VBQ3JCLE1BQU1DLFdBQVcsR0FBSUMsT0FBRCxJQUFhO0lBQy9CLE1BQU1DLFFBQVEsR0FBR0MsT0FBTyxDQUFDQyxJQUFSLENBQWFDLE9BQWIsQ0FBcUJKLE9BQXJCLENBQWpCO0lBQ0EsT0FBT0MsUUFBUSxHQUFHLENBQVgsR0FBZUMsT0FBTyxDQUFDQyxJQUFSLENBQWFGLFFBQVEsR0FBRyxDQUF4QixDQUFmLEdBQTRDLElBQW5EO0VBQ0QsQ0FIRDs7RUFJQSxNQUFNSSxJQUFJLEdBQUdDLFFBQVEsQ0FBQ1AsV0FBVyxDQUFDLFFBQUQsQ0FBWixFQUF3QixFQUF4QixDQUFSLElBQXVDRixZQUFwRDtFQUNBLE1BQU1VLElBQUksR0FBR1IsV0FBVyxDQUFDLFFBQUQsQ0FBWCxJQUF5QkgsWUFBdEM7RUFDQSxPQUFPLE1BQU0seUJBQVlTLElBQVosRUFBa0JFLElBQWxCLENBQWI7QUFDRDs7QUFFRCxJQUFJQyxPQUFPLENBQUNWLElBQVIsS0FBaUJXLE1BQXJCLEVBQTZCO0VBQzNCLHdCQUFTWCxJQUFUO0FBQ0Q7O2VBRWNZLGUifQ==
@@ -25,4 +25,4 @@ var _default = commands;
25
25
  exports.default = _default;require('source-map-support').install();
26
26
 
27
27
 
28
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9maW5kLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiZmluZEVsT3JFbHMiLCJzdHJhdGVneSIsInNlbGVjdG9yIiwibXVsdCIsImNvbnRleHQiLCJ1dGlsIiwidW53cmFwRWxlbWVudCIsImVuZHBvaW50IiwiZ2Vja28iLCJwcm94eSIsImNvbW1hbmQiLCJ1c2luZyIsInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7OztBQUdBQSxRQUFRLENBQUNDLFdBQVQsR0FBdUIsZUFBZUEsV0FBZixDQUE0QkMsUUFBNUIsRUFBc0NDLFFBQXRDLEVBQWdEQyxJQUFoRCxFQUFzREMsT0FBdEQsRUFBK0Q7QUFDcEZBLEVBQUFBLE9BQU8sR0FBR0MsY0FBS0MsYUFBTCxDQUFtQkYsT0FBbkIsQ0FBVjtBQUNBLFFBQU1HLFFBQVEsR0FBSSxXQUFVSCxPQUFPLEdBQUksSUFBR0EsT0FBUSxVQUFmLEdBQTJCLEVBQUcsR0FBRUQsSUFBSSxHQUFHLEdBQUgsR0FBUyxFQUFHLEVBQW5GO0FBRUEsU0FBTyxNQUFNLEtBQUtLLEtBQUwsQ0FBV0MsS0FBWCxDQUFpQkMsT0FBakIsQ0FBeUJILFFBQXpCLEVBQW1DLE1BQW5DLEVBQTJDO0FBQ3RESSxJQUFBQSxLQUFLLEVBQUVWLFFBRCtDO0FBRXREVyxJQUFBQSxLQUFLLEVBQUVWO0FBRitDLEdBQTNDLENBQWI7QUFJRCxDQVJEOztlQVllSCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLy8gVGhpcyBpcyBuZWVkZWQgdG8gbWFrZSBsb29rdXAgYnkgaW1hZ2Ugd29ya2luZ1xuY29tbWFuZHMuZmluZEVsT3JFbHMgPSBhc3luYyBmdW5jdGlvbiBmaW5kRWxPckVscyAoc3RyYXRlZ3ksIHNlbGVjdG9yLCBtdWx0LCBjb250ZXh0KSB7XG4gIGNvbnRleHQgPSB1dGlsLnVud3JhcEVsZW1lbnQoY29udGV4dCk7XG4gIGNvbnN0IGVuZHBvaW50ID0gYC9lbGVtZW50JHtjb250ZXh0ID8gYC8ke2NvbnRleHR9L2VsZW1lbnRgIDogJyd9JHttdWx0ID8gJ3MnIDogJyd9YDtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5nZWNrby5wcm94eS5jb21tYW5kKGVuZHBvaW50LCAnUE9TVCcsIHtcbiAgICB1c2luZzogc3RyYXRlZ3ksXG4gICAgdmFsdWU6IHNlbGVjdG9yLFxuICB9KTtcbn07XG5cblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvZmluZC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
28
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2ZpbmQuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImZpbmRFbE9yRWxzIiwic3RyYXRlZ3kiLCJzZWxlY3RvciIsIm11bHQiLCJjb250ZXh0IiwidXRpbCIsInVud3JhcEVsZW1lbnQiLCJlbmRwb2ludCIsImdlY2tvIiwicHJveHkiLCJjb21tYW5kIiwidXNpbmciLCJ2YWx1ZSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9maW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8vIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2UgbG9va3VwIGJ5IGltYWdlIHdvcmtpbmdcbmNvbW1hbmRzLmZpbmRFbE9yRWxzID0gYXN5bmMgZnVuY3Rpb24gZmluZEVsT3JFbHMgKHN0cmF0ZWd5LCBzZWxlY3RvciwgbXVsdCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gdXRpbC51bndyYXBFbGVtZW50KGNvbnRleHQpO1xuICBjb25zdCBlbmRwb2ludCA9IGAvZWxlbWVudCR7Y29udGV4dCA/IGAvJHtjb250ZXh0fS9lbGVtZW50YCA6ICcnfSR7bXVsdCA/ICdzJyA6ICcnfWA7XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZ2Vja28ucHJveHkuY29tbWFuZChlbmRwb2ludCwgJ1BPU1QnLCB7XG4gICAgdXNpbmc6IHN0cmF0ZWd5LFxuICAgIHZhbHVlOiBzZWxlY3RvcixcbiAgfSk7XG59O1xuXG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOzs7QUFHQUEsUUFBUSxDQUFDQyxXQUFULEdBQXVCLGVBQWVBLFdBQWYsQ0FBNEJDLFFBQTVCLEVBQXNDQyxRQUF0QyxFQUFnREMsSUFBaEQsRUFBc0RDLE9BQXRELEVBQStEO0VBQ3BGQSxPQUFPLEdBQUdDLGNBQUtDLGFBQUwsQ0FBbUJGLE9BQW5CLENBQVY7RUFDQSxNQUFNRyxRQUFRLEdBQUksV0FBVUgsT0FBTyxHQUFJLElBQUdBLE9BQVEsVUFBZixHQUEyQixFQUFHLEdBQUVELElBQUksR0FBRyxHQUFILEdBQVMsRUFBRyxFQUFuRjtFQUVBLE9BQU8sTUFBTSxLQUFLSyxLQUFMLENBQVdDLEtBQVgsQ0FBaUJDLE9BQWpCLENBQXlCSCxRQUF6QixFQUFtQyxNQUFuQyxFQUEyQztJQUN0REksS0FBSyxFQUFFVixRQUQrQztJQUV0RFcsS0FBSyxFQUFFVjtFQUYrQyxDQUEzQyxDQUFiO0FBSUQsQ0FSRDs7ZUFZZUgsUSJ9
@@ -18,4 +18,4 @@ var _default = commands;
18
18
  exports.default = _default;require('source-map-support').install();
19
19
 
20
20
 
21
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImZpbmRDbWRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFDQUMsTUFBTSxDQUFDQyxNQUFQLENBQ0VGLFFBREYsRUFFRUcsYUFGRjtlQU9lSCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpbmRDbWRzIGZyb20gJy4vZmluZCc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5PYmplY3QuYXNzaWduKFxuICBjb21tYW5kcyxcbiAgZmluZENtZHMsXG4gIC8vIGFkZCBvdGhlciBjb21tYW5kIHR5cGVzIGhlcmVcbik7XG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
21
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2luZGV4LmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJmaW5kQ21kcyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmluZENtZHMgZnJvbSAnLi9maW5kJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcbk9iamVjdC5hc3NpZ24oXG4gIGNvbW1hbmRzLFxuICBmaW5kQ21kcyxcbiAgLy8gYWRkIG90aGVyIGNvbW1hbmQgdHlwZXMgaGVyZVxuKTtcblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFDQUMsTUFBTSxDQUFDQyxNQUFQLENBQ0VGLFFBREYsRUFFRUcsYUFGRjtlQU9lSCxRIn0=
@@ -14,4 +14,4 @@ const VERBOSITY = {
14
14
  exports.VERBOSITY = VERBOSITY;require('source-map-support').install();
15
15
 
16
16
 
17
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiVkVSQk9TSVRZIiwiREVCVUciLCJUUkFDRSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsTUFBTUEsU0FBUyxHQUFHO0FBQ2hCQyxFQUFBQSxLQUFLLEVBQUUsT0FEUztBQUVoQkMsRUFBQUEsS0FBSyxFQUFFO0FBRlMsQ0FBbEIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWRVJCT1NJVFkgPSB7XG4gIERFQlVHOiAnZGVidWcnLFxuICBUUkFDRTogJ3RyYWNlJyxcbn07XG5cbmV4cG9ydCB7IFZFUkJPU0lUWSB9O1xuIl0sImZpbGUiOiJsaWIvY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
17
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbnN0YW50cy5qcyIsIm5hbWVzIjpbIlZFUkJPU0lUWSIsIkRFQlVHIiwiVFJBQ0UiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFZFUkJPU0lUWSA9IHtcbiAgREVCVUc6ICdkZWJ1ZycsXG4gIFRSQUNFOiAndHJhY2UnLFxufTtcblxuZXhwb3J0IHsgVkVSQk9TSVRZIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE1BQU1BLFNBQVMsR0FBRztFQUNoQkMsS0FBSyxFQUFFLE9BRFM7RUFFaEJDLEtBQUssRUFBRTtBQUZTLENBQWxCIn0=
@@ -55,4 +55,4 @@ const desiredCapConstraints = {
55
55
  exports.desiredCapConstraints = desiredCapConstraints;require('source-map-support').install();
56
56
 
57
57
 
58
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kZXNpcmVkLWNhcHMuanMiXSwibmFtZXMiOlsiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwiYnJvd3Nlck5hbWUiLCJpc1N0cmluZyIsImJyb3dzZXJWZXJzaW9uIiwiYWNjZXB0SW5zZWN1cmVDZXJ0cyIsImlzQm9vbGVhbiIsInBhZ2VMb2FkU3RyYXRlZ3kiLCJwcm94eSIsImlzT2JqZWN0Iiwic2V0V2luZG93UmVjdCIsInRpbWVvdXRzIiwidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiLCJzeXN0ZW1Qb3J0IiwiaXNOdW1iZXIiLCJtYXJpb25ldHRlUG9ydCIsInZlcmJvc2l0eSIsImluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSIsIk9iamVjdCIsInZhbHVlcyIsIlZFUkJPU0lUWSIsImFuZHJvaWRTdG9yYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxxQkFBcUIsR0FBRztBQUM1QkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1hDLElBQUFBLFFBQVEsRUFBRTtBQURDLEdBRGU7QUFJNUJDLEVBQUFBLGNBQWMsRUFBRTtBQUNkRCxJQUFBQSxRQUFRLEVBQUU7QUFESSxHQUpZO0FBTzVCRSxFQUFBQSxtQkFBbUIsRUFBRTtBQUNuQkMsSUFBQUEsU0FBUyxFQUFFO0FBRFEsR0FQTztBQVU1QkMsRUFBQUEsZ0JBQWdCLEVBQUU7QUFDaEJKLElBQUFBLFFBQVEsRUFBRTtBQURNLEdBVlU7QUFhNUJLLEVBQUFBLEtBQUssRUFBRTtBQUNMQyxJQUFBQSxRQUFRLEVBQUU7QUFETCxHQWJxQjtBQWdCNUJDLEVBQUFBLGFBQWEsRUFBRTtBQUNiSixJQUFBQSxTQUFTLEVBQUU7QUFERSxHQWhCYTtBQW1CNUJLLEVBQUFBLFFBQVEsRUFBRTtBQUNSRixJQUFBQSxRQUFRLEVBQUU7QUFERixHQW5Ca0I7QUFzQjVCRyxFQUFBQSx1QkFBdUIsRUFBRTtBQUN2QlQsSUFBQUEsUUFBUSxFQUFFO0FBRGEsR0F0Qkc7QUF5QjVCVSxFQUFBQSxVQUFVLEVBQUU7QUFDVkMsSUFBQUEsUUFBUSxFQUFFO0FBREEsR0F6QmdCO0FBNEI1QkMsRUFBQUEsY0FBYyxFQUFFO0FBQ2RELElBQUFBLFFBQVEsRUFBRTtBQURJLEdBNUJZO0FBK0I1QkUsRUFBQUEsU0FBUyxFQUFFO0FBQ1RiLElBQUFBLFFBQVEsRUFBRSxJQUREO0FBRVRjLElBQUFBLHdCQUF3QixFQUFFQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0Msb0JBQWQ7QUFGakIsR0EvQmlCO0FBbUM1QkMsRUFBQUEsY0FBYyxFQUFFO0FBQ2RsQixJQUFBQSxRQUFRLEVBQUUsSUFESTtBQUVkYyxJQUFBQSx3QkFBd0IsRUFBRSxDQUFDLE1BQUQsRUFBUyxLQUFULEVBQWdCLFVBQWhCLEVBQTRCLFFBQTVCO0FBRlosR0FuQ1k7QUF1QzVCLHdCQUFzQjtBQUNwQlIsSUFBQUEsUUFBUSxFQUFFO0FBRFU7QUF2Q00sQ0FBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWRVJCT1NJVFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IGRlc2lyZWRDYXBDb25zdHJhaW50cyA9IHtcbiAgYnJvd3Nlck5hbWU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBicm93c2VyVmVyc2lvbjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFjY2VwdEluc2VjdXJlQ2VydHM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcGFnZUxvYWRTdHJhdGVneToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHByb3h5OiB7XG4gICAgaXNPYmplY3Q6IHRydWVcbiAgfSxcbiAgc2V0V2luZG93UmVjdDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICB0aW1lb3V0czoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIHVuaGFuZGxlZFByb21wdEJlaGF2aW9yOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgc3lzdGVtUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIG1hcmlvbmV0dGVQb3J0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgdmVyYm9zaXR5OiB7XG4gICAgaXNTdHJpbmc6IHRydWUsXG4gICAgaW5jbHVzaW9uQ2FzZUluc2Vuc2l0aXZlOiBPYmplY3QudmFsdWVzKFZFUkJPU0lUWSlcbiAgfSxcbiAgYW5kcm9pZFN0b3JhZ2U6IHtcbiAgICBpc1N0cmluZzogdHJ1ZSxcbiAgICBpbmNsdXNpb25DYXNlSW5zZW5zaXRpdmU6IFsnYXV0bycsICdhcHAnLCAnaW50ZXJuYWwnLCAnc2RjYXJkJ11cbiAgfSxcbiAgJ21vejpmaXJlZm94T3B0aW9ucyc6IHtcbiAgICBpc09iamVjdDogdHJ1ZVxuICB9XG59O1xuXG5leHBvcnQgeyBkZXNpcmVkQ2FwQ29uc3RyYWludHMgfTtcbiJdLCJmaWxlIjoibGliL2Rlc2lyZWQtY2Fwcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
58
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2Rlc2lyZWQtY2Fwcy5qcyIsIm5hbWVzIjpbImRlc2lyZWRDYXBDb25zdHJhaW50cyIsImJyb3dzZXJOYW1lIiwiaXNTdHJpbmciLCJicm93c2VyVmVyc2lvbiIsImFjY2VwdEluc2VjdXJlQ2VydHMiLCJpc0Jvb2xlYW4iLCJwYWdlTG9hZFN0cmF0ZWd5IiwicHJveHkiLCJpc09iamVjdCIsInNldFdpbmRvd1JlY3QiLCJ0aW1lb3V0cyIsInVuaGFuZGxlZFByb21wdEJlaGF2aW9yIiwic3lzdGVtUG9ydCIsImlzTnVtYmVyIiwibWFyaW9uZXR0ZVBvcnQiLCJ2ZXJib3NpdHkiLCJpbmNsdXNpb25DYXNlSW5zZW5zaXRpdmUiLCJPYmplY3QiLCJ2YWx1ZXMiLCJWRVJCT1NJVFkiLCJhbmRyb2lkU3RvcmFnZSJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9kZXNpcmVkLWNhcHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVkVSQk9TSVRZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5jb25zdCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgPSB7XG4gIGJyb3dzZXJOYW1lOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYnJvd3NlclZlcnNpb246IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhY2NlcHRJbnNlY3VyZUNlcnRzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHBhZ2VMb2FkU3RyYXRlZ3k6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBwcm94eToge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIHNldFdpbmRvd1JlY3Q6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgdGltZW91dHM6IHtcbiAgICBpc09iamVjdDogdHJ1ZVxuICB9LFxuICB1bmhhbmRsZWRQcm9tcHRCZWhhdmlvcjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHN5c3RlbVBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBtYXJpb25ldHRlUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIHZlcmJvc2l0eToge1xuICAgIGlzU3RyaW5nOiB0cnVlLFxuICAgIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZTogT2JqZWN0LnZhbHVlcyhWRVJCT1NJVFkpXG4gIH0sXG4gIGFuZHJvaWRTdG9yYWdlOiB7XG4gICAgaXNTdHJpbmc6IHRydWUsXG4gICAgaW5jbHVzaW9uQ2FzZUluc2Vuc2l0aXZlOiBbJ2F1dG8nLCAnYXBwJywgJ2ludGVybmFsJywgJ3NkY2FyZCddXG4gIH0sXG4gICdtb3o6ZmlyZWZveE9wdGlvbnMnOiB7XG4gICAgaXNPYmplY3Q6IHRydWVcbiAgfVxufTtcblxuZXhwb3J0IHsgZGVzaXJlZENhcENvbnN0cmFpbnRzIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLHFCQUFxQixHQUFHO0VBQzVCQyxXQUFXLEVBQUU7SUFDWEMsUUFBUSxFQUFFO0VBREMsQ0FEZTtFQUk1QkMsY0FBYyxFQUFFO0lBQ2RELFFBQVEsRUFBRTtFQURJLENBSlk7RUFPNUJFLG1CQUFtQixFQUFFO0lBQ25CQyxTQUFTLEVBQUU7RUFEUSxDQVBPO0VBVTVCQyxnQkFBZ0IsRUFBRTtJQUNoQkosUUFBUSxFQUFFO0VBRE0sQ0FWVTtFQWE1QkssS0FBSyxFQUFFO0lBQ0xDLFFBQVEsRUFBRTtFQURMLENBYnFCO0VBZ0I1QkMsYUFBYSxFQUFFO0lBQ2JKLFNBQVMsRUFBRTtFQURFLENBaEJhO0VBbUI1QkssUUFBUSxFQUFFO0lBQ1JGLFFBQVEsRUFBRTtFQURGLENBbkJrQjtFQXNCNUJHLHVCQUF1QixFQUFFO0lBQ3ZCVCxRQUFRLEVBQUU7RUFEYSxDQXRCRztFQXlCNUJVLFVBQVUsRUFBRTtJQUNWQyxRQUFRLEVBQUU7RUFEQSxDQXpCZ0I7RUE0QjVCQyxjQUFjLEVBQUU7SUFDZEQsUUFBUSxFQUFFO0VBREksQ0E1Qlk7RUErQjVCRSxTQUFTLEVBQUU7SUFDVGIsUUFBUSxFQUFFLElBREQ7SUFFVGMsd0JBQXdCLEVBQUVDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjQyxvQkFBZDtFQUZqQixDQS9CaUI7RUFtQzVCQyxjQUFjLEVBQUU7SUFDZGxCLFFBQVEsRUFBRSxJQURJO0lBRWRjLHdCQUF3QixFQUFFLENBQUMsTUFBRCxFQUFTLEtBQVQsRUFBZ0IsVUFBaEIsRUFBNEIsUUFBNUI7RUFGWixDQW5DWTtFQXVDNUIsc0JBQXNCO0lBQ3BCUixRQUFRLEVBQUU7RUFEVTtBQXZDTSxDQUE5QiJ9
@@ -13,8 +13,6 @@ var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
14
  var _baseDriver = require("@appium/base-driver");
15
15
 
16
- var _logger = _interopRequireDefault(require("./logger"));
17
-
18
16
  var _gecko = _interopRequireDefault(require("./gecko"));
19
17
 
20
18
  var _desiredCaps = require("./desired-caps");
@@ -57,7 +55,7 @@ class GeckoDriver extends _baseDriver.BaseDriver {
57
55
 
58
56
  async createSession(...args) {
59
57
  const [sessionId, caps] = await super.createSession(...args);
60
- this.gecko = new _gecko.default(caps);
58
+ this.gecko = new _gecko.default(this.log, caps);
61
59
 
62
60
  try {
63
61
  await this.gecko.start((0, _utils.formatCapsForServer)(caps));
@@ -72,8 +70,7 @@ class GeckoDriver extends _baseDriver.BaseDriver {
72
70
  }
73
71
 
74
72
  async deleteSession() {
75
- _logger.default.info('Ending Gecko Driver session');
76
-
73
+ this.log.info('Ending Gecko Driver session');
77
74
  await this.gecko.stop();
78
75
  this.resetState();
79
76
  await super.deleteSession();
@@ -85,4 +82,4 @@ var _default = GeckoDriver;
85
82
  exports.default = _default;require('source-map-support').install();
86
83
 
87
84
 
88
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcml2ZXIuanMiXSwibmFtZXMiOlsiTk9fUFJPWFkiLCJSZWdFeHAiLCJHZWNrb0RyaXZlciIsIkJhc2VEcml2ZXIiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJsb2NhdG9yU3RyYXRlZ2llcyIsInJlc2V0U3RhdGUiLCJjbWQiLCJmbiIsIl8iLCJ0b1BhaXJzIiwiY29tbWFuZHMiLCJwcm90b3R5cGUiLCJnZWNrbyIsInByb3h5UmVxUmVzIiwiaXNQcm94eUFjdGl2ZSIsInByb3h5QWN0aXZlIiwiZ2V0UHJveHlBdm9pZExpc3QiLCJjYW5Qcm94eSIsImNyZWF0ZVNlc3Npb24iLCJhcmdzIiwic2Vzc2lvbklkIiwiY2FwcyIsIkdlY2tvRHJpdmVyU2VydmVyIiwic3RhcnQiLCJlIiwiZGVsZXRlU2Vzc2lvbiIsInByb3h5IiwiYmluZCIsImxvZyIsImluZm8iLCJzdG9wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxDQUNmLENBQUMsS0FBRCxFQUFRLElBQUlDLE1BQUosQ0FBVyx3QkFBWCxDQUFSLENBRGUsRUFFZixDQUFDLE1BQUQsRUFBUyxJQUFJQSxNQUFKLENBQVcsd0JBQVgsQ0FBVCxDQUZlLEVBR2YsQ0FBQyxNQUFELEVBQVMsSUFBSUEsTUFBSixDQUFXLDBDQUFYLENBQVQsQ0FIZSxFQUlmLENBQUMsTUFBRCxFQUFTLElBQUlBLE1BQUosQ0FBVyw0QkFBWCxDQUFULENBSmUsQ0FBakI7O0FBT0EsTUFBTUMsV0FBTixTQUEwQkMsc0JBQTFCLENBQXFDO0FBQ25DQyxFQUFBQSxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7QUFDdEIsVUFBTUEsSUFBTjtBQUNBLFNBQUtDLHFCQUFMLEdBQTZCQSxrQ0FBN0I7QUFDQSxTQUFLQyxpQkFBTCxHQUF5QixDQUN2QixPQUR1QixFQUV2QixVQUZ1QixFQUd2QixXQUh1QixFQUl2QixtQkFKdUIsRUFLdkIsY0FMdUIsRUFPdkIsSUFQdUIsRUFRdkIsTUFSdUIsQ0FBekI7QUFVQSxTQUFLQyxVQUFMOztBQUVBLFNBQUssTUFBTSxDQUFDQyxHQUFELEVBQU1DLEVBQU4sQ0FBWCxJQUF3QkMsZ0JBQUVDLE9BQUYsQ0FBVUMsY0FBVixDQUF4QixFQUE2QztBQUMzQ1gsTUFBQUEsV0FBVyxDQUFDWSxTQUFaLENBQXNCTCxHQUF0QixJQUE2QkMsRUFBN0I7QUFDRDtBQUNGOztBQUVERixFQUFBQSxVQUFVLEdBQUk7QUFDWixTQUFLTyxLQUFMLEdBQWEsSUFBYjtBQUNBLFNBQUtDLFdBQUwsR0FBbUIsSUFBbkI7QUFDQSxTQUFLQyxhQUFMLEdBQXFCLEtBQXJCO0FBQ0Q7O0FBRURDLEVBQUFBLFdBQVcsR0FBSTtBQUNiLFdBQU8sS0FBS0QsYUFBWjtBQUNEOztBQUVERSxFQUFBQSxpQkFBaUIsR0FBSTtBQUNuQixXQUFPbkIsUUFBUDtBQUNEOztBQUVEb0IsRUFBQUEsUUFBUSxHQUFJO0FBQ1YsV0FBTyxJQUFQO0FBQ0Q7O0FBRWtCLFFBQWJDLGFBQWEsQ0FBRSxHQUFHQyxJQUFMLEVBQVc7QUFDNUIsVUFBTSxDQUFDQyxTQUFELEVBQVlDLElBQVosSUFBb0IsTUFBTSxNQUFNSCxhQUFOLENBQW9CLEdBQUdDLElBQXZCLENBQWhDO0FBQ0EsU0FBS1AsS0FBTCxHQUFhLElBQUlVLGNBQUosQ0FBc0JELElBQXRCLENBQWI7O0FBQ0EsUUFBSTtBQUNGLFlBQU0sS0FBS1QsS0FBTCxDQUFXVyxLQUFYLENBQWlCLGdDQUFvQkYsSUFBcEIsQ0FBakIsQ0FBTjtBQUNELEtBRkQsQ0FFRSxPQUFPRyxDQUFQLEVBQVU7QUFDVixZQUFNLEtBQUtDLGFBQUwsRUFBTjtBQUNBLFlBQU1ELENBQU47QUFDRDs7QUFDRCxTQUFLWCxXQUFMLEdBQW1CLEtBQUtELEtBQUwsQ0FBV2MsS0FBWCxDQUFpQmIsV0FBakIsQ0FBNkJjLElBQTdCLENBQWtDLEtBQUtmLEtBQUwsQ0FBV2MsS0FBN0MsQ0FBbkI7QUFDQSxTQUFLWixhQUFMLEdBQXFCLElBQXJCO0FBQ0EsV0FBTyxDQUFDTSxTQUFELEVBQVlDLElBQVosQ0FBUDtBQUNEOztBQUVrQixRQUFiSSxhQUFhLEdBQUk7QUFDckJHLG9CQUFJQyxJQUFKLENBQVMsNkJBQVQ7O0FBQ0EsVUFBTSxLQUFLakIsS0FBTCxDQUFXa0IsSUFBWCxFQUFOO0FBQ0EsU0FBS3pCLFVBQUw7QUFFQSxVQUFNLE1BQU1vQixhQUFOLEVBQU47QUFDRDs7QUEzRGtDOztlQThEdEIxQixXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJhc2VEcml2ZXIgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IEdlY2tvRHJpdmVyU2VydmVyIGZyb20gJy4vZ2Vja28nO1xuaW1wb3J0IHsgZGVzaXJlZENhcENvbnN0cmFpbnRzIH0gZnJvbSAnLi9kZXNpcmVkLWNhcHMnO1xuaW1wb3J0IGNvbW1hbmRzIGZyb20gJy4vY29tbWFuZHMvaW5kZXgnO1xuaW1wb3J0IHsgZm9ybWF0Q2Fwc0ZvclNlcnZlciB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBOT19QUk9YWSA9IFtcbiAgWydHRVQnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvYXBwaXVtJyldLFxuICBbJ1BPU1QnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvYXBwaXVtJyldLFxuICBbJ1BPU1QnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvZWxlbWVudC9bXi9dKy9lbGVtZW50cz8kJyldLFxuICBbJ1BPU1QnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvZWxlbWVudHM/JCcpXSxcbl07XG5cbmNsYXNzIEdlY2tvRHJpdmVyIGV4dGVuZHMgQmFzZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcihvcHRzKTtcbiAgICB0aGlzLmRlc2lyZWRDYXBDb25zdHJhaW50cyA9IGRlc2lyZWRDYXBDb25zdHJhaW50cztcbiAgICB0aGlzLmxvY2F0b3JTdHJhdGVnaWVzID0gW1xuICAgICAgJ3hwYXRoJyxcbiAgICAgICd0YWcgbmFtZScsXG4gICAgICAnbGluayB0ZXh0JyxcbiAgICAgICdwYXJ0aWFsIGxpbmsgdGV4dCcsXG4gICAgICAnY3NzIHNlbGVjdG9yJyxcbiAgICAgIC8vIExldCB0aGVzZSB0d28gcmVhY2ggR2Vja28gRHJpdmVyIGFuZCBmYWlsIHRoZXJlIHdpdGggYSBwcm9wZXIgZXJyb3IgbWVzc2FnZVxuICAgICAgJ2lkJyxcbiAgICAgICduYW1lJyxcbiAgICBdO1xuICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuXG4gICAgZm9yIChjb25zdCBbY21kLCBmbl0gb2YgXy50b1BhaXJzKGNvbW1hbmRzKSkge1xuICAgICAgR2Vja29Ecml2ZXIucHJvdG90eXBlW2NtZF0gPSBmbjtcbiAgICB9XG4gIH1cblxuICByZXNldFN0YXRlICgpIHtcbiAgICB0aGlzLmdlY2tvID0gbnVsbDtcbiAgICB0aGlzLnByb3h5UmVxUmVzID0gbnVsbDtcbiAgICB0aGlzLmlzUHJveHlBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHByb3h5QWN0aXZlICgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1Byb3h5QWN0aXZlO1xuICB9XG5cbiAgZ2V0UHJveHlBdm9pZExpc3QgKCkge1xuICAgIHJldHVybiBOT19QUk9YWTtcbiAgfVxuXG4gIGNhblByb3h5ICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24gKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbc2Vzc2lvbklkLCBjYXBzXSA9IGF3YWl0IHN1cGVyLmNyZWF0ZVNlc3Npb24oLi4uYXJncyk7XG4gICAgdGhpcy5nZWNrbyA9IG5ldyBHZWNrb0RyaXZlclNlcnZlcihjYXBzKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5nZWNrby5zdGFydChmb3JtYXRDYXBzRm9yU2VydmVyKGNhcHMpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZVNlc3Npb24oKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHRoaXMucHJveHlSZXFSZXMgPSB0aGlzLmdlY2tvLnByb3h5LnByb3h5UmVxUmVzLmJpbmQodGhpcy5nZWNrby5wcm94eSk7XG4gICAgdGhpcy5pc1Byb3h5QWN0aXZlID0gdHJ1ZTtcbiAgICByZXR1cm4gW3Nlc3Npb25JZCwgY2Fwc107XG4gIH1cblxuICBhc3luYyBkZWxldGVTZXNzaW9uICgpIHtcbiAgICBsb2cuaW5mbygnRW5kaW5nIEdlY2tvIERyaXZlciBzZXNzaW9uJyk7XG4gICAgYXdhaXQgdGhpcy5nZWNrby5zdG9wKCk7XG4gICAgdGhpcy5yZXNldFN0YXRlKCk7XG5cbiAgICBhd2FpdCBzdXBlci5kZWxldGVTZXNzaW9uKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgR2Vja29Ecml2ZXI7XG4iXSwiZmlsZSI6ImxpYi9kcml2ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
85
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2RyaXZlci5qcyIsIm5hbWVzIjpbIk5PX1BST1hZIiwiUmVnRXhwIiwiR2Vja29Ecml2ZXIiLCJCYXNlRHJpdmVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9jYXRvclN0cmF0ZWdpZXMiLCJyZXNldFN0YXRlIiwiY21kIiwiZm4iLCJfIiwidG9QYWlycyIsImNvbW1hbmRzIiwicHJvdG90eXBlIiwiZ2Vja28iLCJwcm94eVJlcVJlcyIsImlzUHJveHlBY3RpdmUiLCJwcm94eUFjdGl2ZSIsImdldFByb3h5QXZvaWRMaXN0IiwiY2FuUHJveHkiLCJjcmVhdGVTZXNzaW9uIiwiYXJncyIsInNlc3Npb25JZCIsImNhcHMiLCJHZWNrb0RyaXZlclNlcnZlciIsImxvZyIsInN0YXJ0IiwiZSIsImRlbGV0ZVNlc3Npb24iLCJwcm94eSIsImJpbmQiLCJpbmZvIiwic3RvcCJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9kcml2ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJhc2VEcml2ZXIgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCBHZWNrb0RyaXZlclNlcnZlciBmcm9tICcuL2dlY2tvJztcbmltcG9ydCB7IGRlc2lyZWRDYXBDb25zdHJhaW50cyB9IGZyb20gJy4vZGVzaXJlZC1jYXBzJztcbmltcG9ydCBjb21tYW5kcyBmcm9tICcuL2NvbW1hbmRzL2luZGV4JztcbmltcG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgTk9fUFJPWFkgPSBbXG4gIFsnR0VUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnQvW14vXSsvZWxlbWVudHM/JCcpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnRzPyQnKV0sXG5dO1xuXG5jbGFzcyBHZWNrb0RyaXZlciBleHRlbmRzIEJhc2VEcml2ZXIge1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgc3VwZXIob3B0cyk7XG4gICAgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMgPSBkZXNpcmVkQ2FwQ29uc3RyYWludHM7XG4gICAgdGhpcy5sb2NhdG9yU3RyYXRlZ2llcyA9IFtcbiAgICAgICd4cGF0aCcsXG4gICAgICAndGFnIG5hbWUnLFxuICAgICAgJ2xpbmsgdGV4dCcsXG4gICAgICAncGFydGlhbCBsaW5rIHRleHQnLFxuICAgICAgJ2NzcyBzZWxlY3RvcicsXG4gICAgICAvLyBMZXQgdGhlc2UgdHdvIHJlYWNoIEdlY2tvIERyaXZlciBhbmQgZmFpbCB0aGVyZSB3aXRoIGEgcHJvcGVyIGVycm9yIG1lc3NhZ2VcbiAgICAgICdpZCcsXG4gICAgICAnbmFtZScsXG4gICAgXTtcbiAgICB0aGlzLnJlc2V0U3RhdGUoKTtcblxuICAgIGZvciAoY29uc3QgW2NtZCwgZm5dIG9mIF8udG9QYWlycyhjb21tYW5kcykpIHtcbiAgICAgIEdlY2tvRHJpdmVyLnByb3RvdHlwZVtjbWRdID0gZm47XG4gICAgfVxuICB9XG5cbiAgcmVzZXRTdGF0ZSAoKSB7XG4gICAgdGhpcy5nZWNrbyA9IG51bGw7XG4gICAgdGhpcy5wcm94eVJlcVJlcyA9IG51bGw7XG4gICAgdGhpcy5pc1Byb3h5QWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICBwcm94eUFjdGl2ZSAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNQcm94eUFjdGl2ZTtcbiAgfVxuXG4gIGdldFByb3h5QXZvaWRMaXN0ICgpIHtcbiAgICByZXR1cm4gTk9fUFJPWFk7XG4gIH1cblxuICBjYW5Qcm94eSAoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBjcmVhdGVTZXNzaW9uICguLi5hcmdzKSB7XG4gICAgY29uc3QgW3Nlc3Npb25JZCwgY2Fwc10gPSBhd2FpdCBzdXBlci5jcmVhdGVTZXNzaW9uKC4uLmFyZ3MpO1xuICAgIHRoaXMuZ2Vja28gPSBuZXcgR2Vja29Ecml2ZXJTZXJ2ZXIodGhpcy5sb2csIGNhcHMpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmdlY2tvLnN0YXJ0KGZvcm1hdENhcHNGb3JTZXJ2ZXIoY2FwcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbigpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuZ2Vja28ucHJveHkucHJveHlSZXFSZXMuYmluZCh0aGlzLmdlY2tvLnByb3h5KTtcbiAgICB0aGlzLmlzUHJveHlBY3RpdmUgPSB0cnVlO1xuICAgIHJldHVybiBbc2Vzc2lvbklkLCBjYXBzXTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVNlc3Npb24gKCkge1xuICAgIHRoaXMubG9nLmluZm8oJ0VuZGluZyBHZWNrbyBEcml2ZXIgc2Vzc2lvbicpO1xuICAgIGF3YWl0IHRoaXMuZ2Vja28uc3RvcCgpO1xuICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuXG4gICAgYXdhaXQgc3VwZXIuZGVsZXRlU2Vzc2lvbigpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEdlY2tvRHJpdmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxDQUNmLENBQUMsS0FBRCxFQUFRLElBQUlDLE1BQUosQ0FBVyx3QkFBWCxDQUFSLENBRGUsRUFFZixDQUFDLE1BQUQsRUFBUyxJQUFJQSxNQUFKLENBQVcsd0JBQVgsQ0FBVCxDQUZlLEVBR2YsQ0FBQyxNQUFELEVBQVMsSUFBSUEsTUFBSixDQUFXLDBDQUFYLENBQVQsQ0FIZSxFQUlmLENBQUMsTUFBRCxFQUFTLElBQUlBLE1BQUosQ0FBVyw0QkFBWCxDQUFULENBSmUsQ0FBakI7O0FBT0EsTUFBTUMsV0FBTixTQUEwQkMsc0JBQTFCLENBQXFDO0VBQ25DQyxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7SUFDdEIsTUFBTUEsSUFBTjtJQUNBLEtBQUtDLHFCQUFMLEdBQTZCQSxrQ0FBN0I7SUFDQSxLQUFLQyxpQkFBTCxHQUF5QixDQUN2QixPQUR1QixFQUV2QixVQUZ1QixFQUd2QixXQUh1QixFQUl2QixtQkFKdUIsRUFLdkIsY0FMdUIsRUFPdkIsSUFQdUIsRUFRdkIsTUFSdUIsQ0FBekI7SUFVQSxLQUFLQyxVQUFMOztJQUVBLEtBQUssTUFBTSxDQUFDQyxHQUFELEVBQU1DLEVBQU4sQ0FBWCxJQUF3QkMsZ0JBQUVDLE9BQUYsQ0FBVUMsY0FBVixDQUF4QixFQUE2QztNQUMzQ1gsV0FBVyxDQUFDWSxTQUFaLENBQXNCTCxHQUF0QixJQUE2QkMsRUFBN0I7SUFDRDtFQUNGOztFQUVERixVQUFVLEdBQUk7SUFDWixLQUFLTyxLQUFMLEdBQWEsSUFBYjtJQUNBLEtBQUtDLFdBQUwsR0FBbUIsSUFBbkI7SUFDQSxLQUFLQyxhQUFMLEdBQXFCLEtBQXJCO0VBQ0Q7O0VBRURDLFdBQVcsR0FBSTtJQUNiLE9BQU8sS0FBS0QsYUFBWjtFQUNEOztFQUVERSxpQkFBaUIsR0FBSTtJQUNuQixPQUFPbkIsUUFBUDtFQUNEOztFQUVEb0IsUUFBUSxHQUFJO0lBQ1YsT0FBTyxJQUFQO0VBQ0Q7O0VBRWtCLE1BQWJDLGFBQWEsQ0FBRSxHQUFHQyxJQUFMLEVBQVc7SUFDNUIsTUFBTSxDQUFDQyxTQUFELEVBQVlDLElBQVosSUFBb0IsTUFBTSxNQUFNSCxhQUFOLENBQW9CLEdBQUdDLElBQXZCLENBQWhDO0lBQ0EsS0FBS1AsS0FBTCxHQUFhLElBQUlVLGNBQUosQ0FBc0IsS0FBS0MsR0FBM0IsRUFBZ0NGLElBQWhDLENBQWI7O0lBQ0EsSUFBSTtNQUNGLE1BQU0sS0FBS1QsS0FBTCxDQUFXWSxLQUFYLENBQWlCLGdDQUFvQkgsSUFBcEIsQ0FBakIsQ0FBTjtJQUNELENBRkQsQ0FFRSxPQUFPSSxDQUFQLEVBQVU7TUFDVixNQUFNLEtBQUtDLGFBQUwsRUFBTjtNQUNBLE1BQU1ELENBQU47SUFDRDs7SUFDRCxLQUFLWixXQUFMLEdBQW1CLEtBQUtELEtBQUwsQ0FBV2UsS0FBWCxDQUFpQmQsV0FBakIsQ0FBNkJlLElBQTdCLENBQWtDLEtBQUtoQixLQUFMLENBQVdlLEtBQTdDLENBQW5CO0lBQ0EsS0FBS2IsYUFBTCxHQUFxQixJQUFyQjtJQUNBLE9BQU8sQ0FBQ00sU0FBRCxFQUFZQyxJQUFaLENBQVA7RUFDRDs7RUFFa0IsTUFBYkssYUFBYSxHQUFJO0lBQ3JCLEtBQUtILEdBQUwsQ0FBU00sSUFBVCxDQUFjLDZCQUFkO0lBQ0EsTUFBTSxLQUFLakIsS0FBTCxDQUFXa0IsSUFBWCxFQUFOO0lBQ0EsS0FBS3pCLFVBQUw7SUFFQSxNQUFNLE1BQU1xQixhQUFOLEVBQU47RUFDRDs7QUEzRGtDOztlQThEdEIzQixXIn0=
@@ -29,8 +29,6 @@ var _child_process = require("child_process");
29
29
 
30
30
  var _constants = require("./constants");
31
31
 
32
- const log = _support.logger.getLogger('GeckoDriverServer');
33
-
34
32
  const GD_BINARY = `geckodriver${_support.system.isWindows() ? '.exe' : ''}`;
35
33
  const STARTUP_TIMEOUT_MS = 10000;
36
34
  const GECKO_PORT_RANGE = [5200, 5300];
@@ -61,11 +59,12 @@ class GeckoProxy extends _baseDriver.JWProxy {
61
59
  }
62
60
 
63
61
  class GeckoDriverProcess {
64
- constructor(opts = {}) {
62
+ constructor(log, opts = {}) {
65
63
  for (const [optName, propName] of _lodash.default.toPairs(PROCESS_SPECIFIC_OPTION_NAMES_MAP)) {
66
64
  this[propName] = opts[optName];
67
65
  }
68
66
 
67
+ this.log = log;
69
68
  this.proc = null;
70
69
  }
71
70
 
@@ -118,8 +117,8 @@ class GeckoDriverProcess {
118
117
  args.push('--connect-existing');
119
118
 
120
119
  if (_lodash.default.isNil(this.marionettePort)) {
121
- log.info(`'marionettePort' capability value is not provided while 'noReset' is enabled`);
122
- log.info(`Assigning 'marionettePort' to the default value (${DEFAULT_MARIONETTE_PORT})`);
120
+ this.log.info(`'marionettePort' capability value is not provided while 'noReset' is enabled`);
121
+ this.log.info(`Assigning 'marionettePort' to the default value (${DEFAULT_MARIONETTE_PORT})`);
123
122
  }
124
123
 
125
124
  args.push('--marionette-port', (_this$marionettePort = this.marionettePort) !== null && _this$marionettePort !== void 0 ? _this$marionettePort : DEFAULT_MARIONETTE_PORT);
@@ -138,13 +137,13 @@ class GeckoDriverProcess {
138
137
  const line = _lodash.default.trim(stdout || stderr);
139
138
 
140
139
  if (line) {
141
- log.debug(`[${GD_BINARY}] ${line}`);
140
+ this.log.debug(`[${GD_BINARY}] ${line}`);
142
141
  }
143
142
  });
144
143
  this.proc.on('exit', (code, signal) => {
145
- log.info(`${GD_BINARY} has exited with code ${code}, signal ${signal}`);
144
+ this.log.info(`${GD_BINARY} has exited with code ${code}, signal ${signal}`);
146
145
  });
147
- log.info(`Starting '${driverBin}' with args ${JSON.stringify(args)}`);
146
+ this.log.info(`Starting '${driverBin}' with args ${JSON.stringify(args)}`);
148
147
  await this.proc.start(0);
149
148
  }
150
149
 
@@ -166,18 +165,21 @@ class GeckoDriverProcess {
166
165
 
167
166
  const RUNNING_PROCESS_IDS = [];
168
167
  process.once('exit', () => {
169
- for (const pid of RUNNING_PROCESS_IDS) {
170
- const command = _support.system.isWindows() ? `taskkill.exe /PID ${pid}` : `kill ${pid}`;
171
-
172
- try {
173
- (0, _child_process.execSync)(command);
174
- } catch (ign) {}
168
+ if (_lodash.default.isEmpty(RUNNING_PROCESS_IDS)) {
169
+ return;
175
170
  }
171
+
172
+ const command = _support.system.isWindows() ? 'taskkill.exe ' + RUNNING_PROCESS_IDS.map(pid => `/PID ${pid}`).join(' ') : `kill ${RUNNING_PROCESS_IDS.join(' ')}`;
173
+
174
+ try {
175
+ (0, _child_process.execSync)(command);
176
+ } catch (ign) {}
176
177
  });
177
178
 
178
179
  class GeckoDriverServer {
179
- constructor(caps) {
180
- this.process = new GeckoDriverProcess(caps);
180
+ constructor(log, caps) {
181
+ this.process = new GeckoDriverProcess(log, caps);
182
+ this.log = log;
181
183
  this.proxy = null;
182
184
  }
183
185
 
@@ -192,6 +194,7 @@ class GeckoDriverServer {
192
194
  this.proxy = new GeckoProxy({
193
195
  server: '127.0.0.1',
194
196
  port: this.process.port,
197
+ log: this.log,
195
198
  base: '',
196
199
  keepAlive: true
197
200
  });
@@ -243,7 +246,7 @@ class GeckoDriverServer {
243
246
  var _this$proxy;
244
247
 
245
248
  if (!this.isRunning) {
246
- log.info(`Gecko Driver session cannot be stopped, because the server is not running`);
249
+ this.log.info(`Gecko Driver session cannot be stopped, because the server is not running`);
247
250
  return;
248
251
  }
249
252
 
@@ -251,14 +254,14 @@ class GeckoDriverServer {
251
254
  try {
252
255
  await this.proxy.command(`/session/${this.proxy.sessionId}`, 'DELETE');
253
256
  } catch (e) {
254
- log.info(`Gecko Driver session cannot be deleted. Original error: ${e.message}`);
257
+ this.log.info(`Gecko Driver session cannot be deleted. Original error: ${e.message}`);
255
258
  }
256
259
  }
257
260
 
258
261
  try {
259
262
  await this.process.stop();
260
263
  } catch (e) {
261
- log.warn(`Gecko Driver process cannot be stopped (${e.message}). Killing it forcefully`);
264
+ this.log.warn(`Gecko Driver process cannot be stopped (${e.message}). Killing it forcefully`);
262
265
  await this.process.kill();
263
266
  }
264
267
  }
@@ -269,4 +272,4 @@ var _default = GeckoDriverServer;
269
272
  exports.default = _default;require('source-map-support').install();
270
273
 
271
274
 
272
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9nZWNrby5qcyJdLCJuYW1lcyI6WyJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJHRF9CSU5BUlkiLCJzeXN0ZW0iLCJpc1dpbmRvd3MiLCJTVEFSVFVQX1RJTUVPVVRfTVMiLCJHRUNLT19QT1JUX1JBTkdFIiwiR0VDS09fU0VSVkVSX0dVQVJEIiwidXRpbCIsImdldExvY2tGaWxlR3VhcmQiLCJwYXRoIiwicmVzb2x2ZSIsIm9zIiwidG1wZGlyIiwidGltZW91dCIsInRyeVJlY292ZXJ5IiwiREVGQVVMVF9NQVJJT05FVFRFX1BPUlQiLCJQUk9DRVNTX1NQRUNJRklDX09QVElPTl9OQU1FU19NQVAiLCJPYmplY3QiLCJmcmVlemUiLCJub1Jlc2V0IiwidmVyYm9zaXR5IiwiYW5kcm9pZFN0b3JhZ2UiLCJtYXJpb25ldHRlUG9ydCIsInN5c3RlbVBvcnQiLCJHZWNrb1Byb3h5IiwiSldQcm94eSIsInByb3h5Q29tbWFuZCIsInVybCIsIm1ldGhvZCIsImJvZHkiLCJkaWRQcm9jZXNzRXhpdCIsImVycm9ycyIsIkludmFsaWRDb250ZXh0RXJyb3IiLCJHZWNrb0RyaXZlclByb2Nlc3MiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJvcHROYW1lIiwicHJvcE5hbWUiLCJfIiwidG9QYWlycyIsInByb2MiLCJpc1J1bm5pbmciLCJpbml0IiwicG9ydCIsInN0YXJ0UG9ydCIsImVuZFBvcnQiLCJlIiwiRXJyb3IiLCJkcml2ZXJCaW4iLCJmcyIsIndoaWNoIiwiYXJncyIsInRvTG93ZXIiLCJWRVJCT1NJVFkiLCJERUJVRyIsInB1c2giLCJUUkFDRSIsImlzTmlsIiwiaW5mbyIsIlN1YlByb2Nlc3MiLCJvbiIsInN0ZG91dCIsInN0ZGVyciIsImxpbmUiLCJ0cmltIiwiZGVidWciLCJjb2RlIiwic2lnbmFsIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0Iiwic3RvcCIsImtpbGwiLCJpZ24iLCJSVU5OSU5HX1BST0NFU1NfSURTIiwicHJvY2VzcyIsIm9uY2UiLCJwaWQiLCJjb21tYW5kIiwiR2Vja29Ecml2ZXJTZXJ2ZXIiLCJjYXBzIiwicHJveHkiLCJnZWNrb0NhcHMiLCJzZXJ2ZXIiLCJiYXNlIiwia2VlcEFsaXZlIiwiZXJyIiwibWVzc2FnZSIsIndhaXRNcyIsImludGVydmFsTXMiLCJ0ZXN0IiwicHVsbCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsInNlc3Npb25JZCIsIndhcm4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsR0FBRyxHQUFHQyxnQkFBT0MsU0FBUCxDQUFpQixtQkFBakIsQ0FBWjs7QUFFQSxNQUFNQyxTQUFTLEdBQUksY0FBYUMsZ0JBQU9DLFNBQVAsS0FBcUIsTUFBckIsR0FBOEIsRUFBRyxFQUFqRTtBQUNBLE1BQU1DLGtCQUFrQixHQUFHLEtBQTNCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFELEVBQU8sSUFBUCxDQUF6Qjs7QUFDQSxNQUFNQyxrQkFBa0IsR0FBR0MsY0FBS0MsZ0JBQUwsQ0FDekJDLGNBQUtDLE9BQUwsQ0FBYUMsWUFBR0MsTUFBSCxFQUFiLEVBQTBCLHlCQUExQixDQUR5QixFQUV6QjtBQUFDQyxFQUFBQSxPQUFPLEVBQUUsQ0FBVjtBQUFhQyxFQUFBQSxXQUFXLEVBQUU7QUFBMUIsQ0FGeUIsQ0FBM0I7O0FBSUEsTUFBTUMsdUJBQXVCLEdBQUcsSUFBaEM7QUFDQSxNQUFNQyxpQ0FBaUMsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDdERDLEVBQUFBLE9BQU8sRUFBRSxTQUQ2QztBQUV0REMsRUFBQUEsU0FBUyxFQUFFLFdBRjJDO0FBR3REQyxFQUFBQSxjQUFjLEVBQUUsZ0JBSHNDO0FBSXREQyxFQUFBQSxjQUFjLEVBQUUsZ0JBSnNDO0FBS3REQyxFQUFBQSxVQUFVLEVBQUU7QUFMMEMsQ0FBZCxDQUExQzs7QUFTQSxN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OztBQWxGcUI7O2VBcUZUTyxpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBKV1Byb3h5LCBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IGZzLCBsb2dnZXIsIHV0aWwsIHN5c3RlbSB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBmaW5kQVBvcnROb3RJblVzZSB9IGZyb20gJ3BvcnRzY2FubmVyJztcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBWRVJCT1NJVFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0dlY2tvRHJpdmVyU2VydmVyJyk7XG5cbmNvbnN0IEdEX0JJTkFSWSA9IGBnZWNrb2RyaXZlciR7c3lzdGVtLmlzV2luZG93cygpID8gJy5leGUnIDogJyd9YDtcbmNvbnN0IFNUQVJUVVBfVElNRU9VVF9NUyA9IDEwMDAwOyAvLyAxMCBzZWNvbmRzXG5jb25zdCBHRUNLT19QT1JUX1JBTkdFID0gWzUyMDAsIDUzMDBdO1xuY29uc3QgR0VDS09fU0VSVkVSX0dVQVJEID0gdXRpbC5nZXRMb2NrRmlsZUd1YXJkKFxuICBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksICdnZWNrb19zZXJ2ZXJfZ3VhcmQubG9jaycpLFxuICB7dGltZW91dDogNSwgdHJ5UmVjb3Zlcnk6IHRydWV9XG4pO1xuY29uc3QgREVGQVVMVF9NQVJJT05FVFRFX1BPUlQgPSAyODI4O1xuY29uc3QgUFJPQ0VTU19TUEVDSUZJQ19PUFRJT05fTkFNRVNfTUFQID0gT2JqZWN0LmZyZWV6ZSh7XG4gIG5vUmVzZXQ6ICdub1Jlc2V0JyxcbiAgdmVyYm9zaXR5OiAndmVyYm9zaXR5JyxcbiAgYW5kcm9pZFN0b3JhZ2U6ICdhbmRyb2lkU3RvcmFnZScsXG4gIG1hcmlvbmV0dGVQb3J0OiAnbWFyaW9uZXR0ZVBvcnQnLFxuICBzeXN0ZW1Qb3J0OiAncG9ydCcsXG59KTtcblxuXG5jbGFzcyBHZWNrb1Byb3h5IGV4dGVuZHMgSldQcm94eSB7XG4gIGFzeW5jIHByb3h5Q29tbWFuZCAodXJsLCBtZXRob2QsIGJvZHkgPSBudWxsKSB7XG4gICAgaWYgKHRoaXMuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZENvbnRleHRFcnJvcihcbiAgICAgICAgYCcke21ldGhvZH0gJHt1cmx9JyBjYW5ub3QgYmUgcHJveGllZCB0byBHZWNrbyBEcml2ZXIgc2VydmVyIGJlY2F1c2UgYCArXG4gICAgICAgICdpdHMgcHJvY2VzcyBpcyBub3QgcnVubmluZyAocHJvYmFibHkgY3Jhc2hlZCkuIENoZWNrIHRoZSBBcHBpdW0gbG9nIGZvciBtb3JlIGRldGFpbHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLnByb3h5Q29tbWFuZCh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cbn1cblxuY2xhc3MgR2Vja29Ecml2ZXJQcm9jZXNzIHtcbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIGZvciAoY29uc3QgW29wdE5hbWUsIHByb3BOYW1lXSBvZiBfLnRvUGFpcnMoUFJPQ0VTU19TUEVDSUZJQ19PUFRJT05fTkFNRVNfTUFQKSkge1xuICAgICAgdGhpc1twcm9wTmFtZV0gPSBvcHRzW29wdE5hbWVdO1xuICAgIH1cbiAgICB0aGlzLnByb2MgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvYz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIGluaXQgKCkge1xuICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wb3J0KSB7XG4gICAgICBhd2FpdCBHRUNLT19TRVJWRVJfR1VBUkQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBbc3RhcnRQb3J0LCBlbmRQb3J0XSA9IEdFQ0tPX1BPUlRfUkFOR0U7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5wb3J0ID0gYXdhaXQgZmluZEFQb3J0Tm90SW5Vc2Uoc3RhcnRQb3J0LCBlbmRQb3J0KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBDYW5ub3QgZmluZCBhbnkgZnJlZSBwb3J0IGluIHJhbmdlICR7c3RhcnRQb3J0fS4uJHtlbmRQb3J0fS4gYCArXG4gICAgICAgICAgICBgRG91YmxlIGNoZWNrIHRoZSBwcm9jZXNzZXMgdGhhdCBhcmUgbG9ja2luZyBwb3J0cyB3aXRoaW4gdGhpcyByYW5nZSBhbmQgdGVybWluYXRlIGAgK1xuICAgICAgICAgICAgYHRoZXNlIHdoaWNoIGFyZSBub3QgbmVlZGVkIGFueW1vcmUgb3Igc2V0IGFueSBmcmVlIHBvcnQgbnVtYmVyIHRvIHRoZSAnc3lzdGVtUG9ydCcgY2FwYWJpbGl0eWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgZHJpdmVyQmluO1xuICAgIHRyeSB7XG4gICAgICBkcml2ZXJCaW4gPSBhd2FpdCBmcy53aGljaChHRF9CSU5BUlkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtHRF9CSU5BUll9IGJpbmFyeSBjYW5ub3QgYmUgZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIHByZXNlbnQgb24geW91ciBzeXN0ZW1gKTtcbiAgICB9XG4gICAgY29uc3QgYXJncyA9IFtdO1xuICAgIC8qICNyZWdpb24gT3B0aW9ucyAqL1xuICAgIHN3aXRjaCAoXy50b0xvd2VyKHRoaXMudmVyYm9zaXR5KSkge1xuICAgICAgY2FzZSBWRVJCT1NJVFkuREVCVUc6XG4gICAgICAgIGFyZ3MucHVzaCgnLXYnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZFUkJPU0lUWS5UUkFDRTpcbiAgICAgICAgYXJncy5wdXNoKCctdnYnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLm5vUmVzZXQpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1jb25uZWN0LWV4aXN0aW5nJyk7XG4gICAgICAvLyBodHRwczovL2ZpcmVmb3gtc291cmNlLWRvY3MubW96aWxsYS5vcmcvdGVzdGluZy9nZWNrb2RyaXZlci9GbGFncy5odG1sI2NvZGUtY29ubmVjdC1leGlzdGluZy1jb2RlXG4gICAgICBpZiAoXy5pc05pbCh0aGlzLm1hcmlvbmV0dGVQb3J0KSkge1xuICAgICAgICBsb2cuaW5mbyhgJ21hcmlvbmV0dGVQb3J0JyBjYXBhYmlsaXR5IHZhbHVlIGlzIG5vdCBwcm92aWRlZCB3aGlsZSAnbm9SZXNldCcgaXMgZW5hYmxlZGApO1xuICAgICAgICBsb2cuaW5mbyhgQXNzaWduaW5nICdtYXJpb25ldHRlUG9ydCcgdG8gdGhlIGRlZmF1bHQgdmFsdWUgKCR7REVGQVVMVF9NQVJJT05FVFRFX1BPUlR9KWApO1xuICAgICAgfVxuICAgICAgYXJncy5wdXNoKCctLW1hcmlvbmV0dGUtcG9ydCcsIHRoaXMubWFyaW9uZXR0ZVBvcnQgPz8gREVGQVVMVF9NQVJJT05FVFRFX1BPUlQpO1xuICAgIH0gZWxzZSBpZiAoIV8uaXNOaWwodGhpcy5tYXJpb25ldHRlUG9ydCkpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1tYXJpb25ldHRlLXBvcnQnLCB0aGlzLm1hcmlvbmV0dGVQb3J0KTtcbiAgICB9XG4gICAgLyogI2VuZHJlZ2lvbiAqL1xuXG4gICAgYXJncy5wdXNoKCctcCcsIHRoaXMucG9ydCk7XG4gICAgaWYgKHRoaXMuYW5kcm9pZFN0b3JhZ2UpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1hbmRyb2lkLXN0b3JhZ2UnLCB0aGlzLmFuZHJvaWRTdG9yYWdlKTtcbiAgICB9XG4gICAgdGhpcy5wcm9jID0gbmV3IFN1YlByb2Nlc3MoZHJpdmVyQmluLCBhcmdzKTtcbiAgICB0aGlzLnByb2Mub24oJ291dHB1dCcsIChzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgY29uc3QgbGluZSA9IF8udHJpbShzdGRvdXQgfHwgc3RkZXJyKTtcbiAgICAgIGlmIChsaW5lKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgWyR7R0RfQklOQVJZfV0gJHtsaW5lfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucHJvYy5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIGxvZy5pbmZvKGAke0dEX0JJTkFSWX0gaGFzIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICAgIH0pO1xuICAgIGxvZy5pbmZvKGBTdGFydGluZyAnJHtkcml2ZXJCaW59JyB3aXRoIGFyZ3MgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICBhd2FpdCB0aGlzLnByb2Muc3RhcnQoMCk7XG4gIH1cblxuICBhc3luYyBzdG9wICgpIHtcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGF3YWl0IHRoaXMucHJvYy5zdG9wKCdTSUdURVJNJyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMga2lsbCAoKSB7XG4gICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2Muc3RvcCgnU0lHS0lMTCcpO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBSVU5OSU5HX1BST0NFU1NfSURTID0gW107XG5wcm9jZXNzLm9uY2UoJ2V4aXQnLCAoKSA9PiB7XG4gIGZvciAoY29uc3QgcGlkIG9mIFJVTk5JTkdfUFJPQ0VTU19JRFMpIHtcbiAgICBjb25zdCBjb21tYW5kID0gc3lzdGVtLmlzV2luZG93cygpID8gYHRhc2traWxsLmV4ZSAvUElEICR7cGlkfWAgOiBga2lsbCAke3BpZH1gO1xuICAgIHRyeSB7XG4gICAgICBleGVjU3luYyhjb21tYW5kKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbn0pO1xuXG5jbGFzcyBHZWNrb0RyaXZlclNlcnZlciB7XG4gIGNvbnN0cnVjdG9yIChjYXBzKSB7XG4gICAgdGhpcy5wcm9jZXNzID0gbmV3IEdlY2tvRHJpdmVyUHJvY2VzcyhjYXBzKTtcbiAgICB0aGlzLnByb3h5ID0gbnVsbDtcbiAgfVxuXG4gIGdldCBpc1J1bm5pbmcgKCkge1xuICAgIHJldHVybiAhISh0aGlzLnByb2Nlc3M/LmlzUnVubmluZyk7XG4gIH1cblxuICBhc3luYyBzdGFydCAoZ2Vja29DYXBzKSB7XG4gICAgYXdhaXQgdGhpcy5wcm9jZXNzLmluaXQoKTtcblxuICAgIHRoaXMucHJveHkgPSBuZXcgR2Vja29Qcm94eSh7XG4gICAgICBzZXJ2ZXI6ICcxMjcuMC4wLjEnLFxuICAgICAgcG9ydDogdGhpcy5wcm9jZXNzLnBvcnQsXG4gICAgICBiYXNlOiAnJyxcbiAgICAgIGtlZXBBbGl2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0ID0gZmFsc2U7XG4gICAgdGhpcy5wcm9jZXNzLnByb2Mub24oJ2V4aXQnLCAoKSA9PiB7XG4gICAgICB0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0ID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnByb3h5LmNvbW1hbmQoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICh0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAgd2FpdE1zOiBTVEFSVFVQX1RJTUVPVVRfTVMsXG4gICAgICAgIGludGVydmFsTXM6IDEwMDAsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAodGhpcy5wcm9jZXNzLmlzUnVubmluZykge1xuICAgICAgICAvLyBhdm9pZCBcImZyb3plblwiIHByb2Nlc3NlcyxcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzLmtpbGwoKTtcbiAgICAgIH1cbiAgICAgIGlmICgvQ29uZGl0aW9uIHVubWV0Ly50ZXN0KGUubWVzc2FnZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHZWNrbyBEcml2ZXIgc2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgd2l0aGluICR7U1RBUlRVUF9USU1FT1VUX01TfW1zIHRpbWVvdXQuIGAgK1xuICAgICAgICAgIGBNYWtlIHN1cmUgaXQgY291bGQgYmUgc3RhcnRlZCBtYW51YWxseSBmcm9tIGEgdGVybWluYWxgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGNvbnN0IHBpZCA9IHRoaXMucHJvY2Vzcy5wcm9jLnBpZDtcbiAgICBSVU5OSU5HX1BST0NFU1NfSURTLnB1c2gocGlkKTtcbiAgICB0aGlzLnByb2Nlc3MucHJvYy5vbignZXhpdCcsICgpID0+IHZvaWQgXy5wdWxsKFJVTk5JTkdfUFJPQ0VTU19JRFMsIHBpZCkpO1xuXG4gICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKCcvc2Vzc2lvbicsICdQT1NUJywge1xuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIGZpcnN0TWF0Y2g6IFt7fV0sXG4gICAgICAgIGFsd2F5c01hdGNoOiBnZWNrb0NhcHMsXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICBsb2cuaW5mbyhgR2Vja28gRHJpdmVyIHNlc3Npb24gY2Fubm90IGJlIHN0b3BwZWQsIGJlY2F1c2UgdGhlIHNlcnZlciBpcyBub3QgcnVubmluZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3h5Py5zZXNzaW9uSWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZChgL3Nlc3Npb24vJHt0aGlzLnByb3h5LnNlc3Npb25JZH1gLCAnREVMRVRFJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGxvZy5pbmZvKGBHZWNrbyBEcml2ZXIgc2Vzc2lvbiBjYW5ub3QgYmUgZGVsZXRlZC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnByb2Nlc3Muc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZy53YXJuKGBHZWNrbyBEcml2ZXIgcHJvY2VzcyBjYW5ub3QgYmUgc3RvcHBlZCAoJHtlLm1lc3NhZ2V9KS4gS2lsbGluZyBpdCBmb3JjZWZ1bGx5YCk7XG4gICAgICBhd2FpdCB0aGlzLnByb2Nlc3Mua2lsbCgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBHZWNrb0RyaXZlclNlcnZlcjtcbiJdLCJmaWxlIjoibGliL2dlY2tvLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
275
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2dlY2tvLmpzIiwibmFtZXMiOlsiR0RfQklOQVJZIiwic3lzdGVtIiwiaXNXaW5kb3dzIiwiU1RBUlRVUF9USU1FT1VUX01TIiwiR0VDS09fUE9SVF9SQU5HRSIsIkdFQ0tPX1NFUlZFUl9HVUFSRCIsInV0aWwiLCJnZXRMb2NrRmlsZUd1YXJkIiwicGF0aCIsInJlc29sdmUiLCJvcyIsInRtcGRpciIsInRpbWVvdXQiLCJ0cnlSZWNvdmVyeSIsIkRFRkFVTFRfTUFSSU9ORVRURV9QT1JUIiwiUFJPQ0VTU19TUEVDSUZJQ19PUFRJT05fTkFNRVNfTUFQIiwiT2JqZWN0IiwiZnJlZXplIiwibm9SZXNldCIsInZlcmJvc2l0eSIsImFuZHJvaWRTdG9yYWdlIiwibWFyaW9uZXR0ZVBvcnQiLCJzeXN0ZW1Qb3J0IiwiR2Vja29Qcm94eSIsIkpXUHJveHkiLCJwcm94eUNvbW1hbmQiLCJ1cmwiLCJtZXRob2QiLCJib2R5IiwiZGlkUHJvY2Vzc0V4aXQiLCJlcnJvcnMiLCJJbnZhbGlkQ29udGV4dEVycm9yIiwiR2Vja29Ecml2ZXJQcm9jZXNzIiwiY29uc3RydWN0b3IiLCJsb2ciLCJvcHRzIiwib3B0TmFtZSIsInByb3BOYW1lIiwiXyIsInRvUGFpcnMiLCJwcm9jIiwiaXNSdW5uaW5nIiwiaW5pdCIsInBvcnQiLCJzdGFydFBvcnQiLCJlbmRQb3J0IiwiZSIsIkVycm9yIiwiZHJpdmVyQmluIiwiZnMiLCJ3aGljaCIsImFyZ3MiLCJ0b0xvd2VyIiwiVkVSQk9TSVRZIiwiREVCVUciLCJwdXNoIiwiVFJBQ0UiLCJpc05pbCIsImluZm8iLCJTdWJQcm9jZXNzIiwib24iLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsImRlYnVnIiwiY29kZSIsInNpZ25hbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydCIsInN0b3AiLCJraWxsIiwiaWduIiwiUlVOTklOR19QUk9DRVNTX0lEUyIsInByb2Nlc3MiLCJvbmNlIiwiaXNFbXB0eSIsImNvbW1hbmQiLCJtYXAiLCJwaWQiLCJqb2luIiwiR2Vja29Ecml2ZXJTZXJ2ZXIiLCJjYXBzIiwicHJveHkiLCJnZWNrb0NhcHMiLCJzZXJ2ZXIiLCJiYXNlIiwia2VlcEFsaXZlIiwiZXJyIiwibWVzc2FnZSIsIndhaXRNcyIsImludGVydmFsTXMiLCJ0ZXN0IiwicHVsbCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsInNlc3Npb25JZCIsIndhcm4iXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvZ2Vja28uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEpXUHJveHksIGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgZnMsIHV0aWwsIHN5c3RlbSB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBmaW5kQVBvcnROb3RJblVzZSB9IGZyb20gJ3BvcnRzY2FubmVyJztcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBWRVJCT1NJVFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IEdEX0JJTkFSWSA9IGBnZWNrb2RyaXZlciR7c3lzdGVtLmlzV2luZG93cygpID8gJy5leGUnIDogJyd9YDtcbmNvbnN0IFNUQVJUVVBfVElNRU9VVF9NUyA9IDEwMDAwOyAvLyAxMCBzZWNvbmRzXG5jb25zdCBHRUNLT19QT1JUX1JBTkdFID0gWzUyMDAsIDUzMDBdO1xuY29uc3QgR0VDS09fU0VSVkVSX0dVQVJEID0gdXRpbC5nZXRMb2NrRmlsZUd1YXJkKFxuICBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksICdnZWNrb19zZXJ2ZXJfZ3VhcmQubG9jaycpLFxuICB7dGltZW91dDogNSwgdHJ5UmVjb3Zlcnk6IHRydWV9XG4pO1xuY29uc3QgREVGQVVMVF9NQVJJT05FVFRFX1BPUlQgPSAyODI4O1xuY29uc3QgUFJPQ0VTU19TUEVDSUZJQ19PUFRJT05fTkFNRVNfTUFQID0gT2JqZWN0LmZyZWV6ZSh7XG4gIG5vUmVzZXQ6ICdub1Jlc2V0JyxcbiAgdmVyYm9zaXR5OiAndmVyYm9zaXR5JyxcbiAgYW5kcm9pZFN0b3JhZ2U6ICdhbmRyb2lkU3RvcmFnZScsXG4gIG1hcmlvbmV0dGVQb3J0OiAnbWFyaW9uZXR0ZVBvcnQnLFxuICBzeXN0ZW1Qb3J0OiAncG9ydCcsXG59KTtcblxuXG5jbGFzcyBHZWNrb1Byb3h5IGV4dGVuZHMgSldQcm94eSB7XG4gIGFzeW5jIHByb3h5Q29tbWFuZCAodXJsLCBtZXRob2QsIGJvZHkgPSBudWxsKSB7XG4gICAgaWYgKHRoaXMuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZENvbnRleHRFcnJvcihcbiAgICAgICAgYCcke21ldGhvZH0gJHt1cmx9JyBjYW5ub3QgYmUgcHJveGllZCB0byBHZWNrbyBEcml2ZXIgc2VydmVyIGJlY2F1c2UgYCArXG4gICAgICAgICdpdHMgcHJvY2VzcyBpcyBub3QgcnVubmluZyAocHJvYmFibHkgY3Jhc2hlZCkuIENoZWNrIHRoZSBBcHBpdW0gbG9nIGZvciBtb3JlIGRldGFpbHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLnByb3h5Q29tbWFuZCh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cbn1cblxuY2xhc3MgR2Vja29Ecml2ZXJQcm9jZXNzIHtcbiAgY29uc3RydWN0b3IgKGxvZywgb3B0cyA9IHt9KSB7XG4gICAgZm9yIChjb25zdCBbb3B0TmFtZSwgcHJvcE5hbWVdIG9mIF8udG9QYWlycyhQUk9DRVNTX1NQRUNJRklDX09QVElPTl9OQU1FU19NQVApKSB7XG4gICAgICB0aGlzW3Byb3BOYW1lXSA9IG9wdHNbb3B0TmFtZV07XG4gICAgfVxuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMucHJvYyA9IG51bGw7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9jPy5pc1J1bm5pbmcpO1xuICB9XG5cbiAgYXN5bmMgaW5pdCAoKSB7XG4gICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBvcnQpIHtcbiAgICAgIGF3YWl0IEdFQ0tPX1NFUlZFUl9HVUFSRChhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzdGFydFBvcnQsIGVuZFBvcnRdID0gR0VDS09fUE9SVF9SQU5HRTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnBvcnQgPSBhd2FpdCBmaW5kQVBvcnROb3RJblVzZShzdGFydFBvcnQsIGVuZFBvcnQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYENhbm5vdCBmaW5kIGFueSBmcmVlIHBvcnQgaW4gcmFuZ2UgJHtzdGFydFBvcnR9Li4ke2VuZFBvcnR9LiBgICtcbiAgICAgICAgICAgIGBEb3VibGUgY2hlY2sgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBsb2NraW5nIHBvcnRzIHdpdGhpbiB0aGlzIHJhbmdlIGFuZCB0ZXJtaW5hdGUgYCArXG4gICAgICAgICAgICBgdGhlc2Ugd2hpY2ggYXJlIG5vdCBuZWVkZWQgYW55bW9yZSBvciBzZXQgYW55IGZyZWUgcG9ydCBudW1iZXIgdG8gdGhlICdzeXN0ZW1Qb3J0JyBjYXBhYmlsaXR5YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBkcml2ZXJCaW47XG4gICAgdHJ5IHtcbiAgICAgIGRyaXZlckJpbiA9IGF3YWl0IGZzLndoaWNoKEdEX0JJTkFSWSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0dEX0JJTkFSWX0gYmluYXJ5IGNhbm5vdCBiZSBmb3VuZCBpbiBQQVRILiBgICtcbiAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgcHJlc2VudCBvbiB5b3VyIHN5c3RlbWApO1xuICAgIH1cbiAgICBjb25zdCBhcmdzID0gW107XG4gICAgLyogI3JlZ2lvbiBPcHRpb25zICovXG4gICAgc3dpdGNoIChfLnRvTG93ZXIodGhpcy52ZXJib3NpdHkpKSB7XG4gICAgICBjYXNlIFZFUkJPU0lUWS5ERUJVRzpcbiAgICAgICAgYXJncy5wdXNoKCctdicpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVkVSQk9TSVRZLlRSQUNFOlxuICAgICAgICBhcmdzLnB1c2goJy12dicpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKHRoaXMubm9SZXNldCkge1xuICAgICAgYXJncy5wdXNoKCctLWNvbm5lY3QtZXhpc3RpbmcnKTtcbiAgICAgIC8vIGh0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9yZy90ZXN0aW5nL2dlY2tvZHJpdmVyL0ZsYWdzLmh0bWwjY29kZS1jb25uZWN0LWV4aXN0aW5nLWNvZGVcbiAgICAgIGlmIChfLmlzTmlsKHRoaXMubWFyaW9uZXR0ZVBvcnQpKSB7XG4gICAgICAgIHRoaXMubG9nLmluZm8oYCdtYXJpb25ldHRlUG9ydCcgY2FwYWJpbGl0eSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQgd2hpbGUgJ25vUmVzZXQnIGlzIGVuYWJsZWRgKTtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgQXNzaWduaW5nICdtYXJpb25ldHRlUG9ydCcgdG8gdGhlIGRlZmF1bHQgdmFsdWUgKCR7REVGQVVMVF9NQVJJT05FVFRFX1BPUlR9KWApO1xuICAgICAgfVxuICAgICAgYXJncy5wdXNoKCctLW1hcmlvbmV0dGUtcG9ydCcsIHRoaXMubWFyaW9uZXR0ZVBvcnQgPz8gREVGQVVMVF9NQVJJT05FVFRFX1BPUlQpO1xuICAgIH0gZWxzZSBpZiAoIV8uaXNOaWwodGhpcy5tYXJpb25ldHRlUG9ydCkpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1tYXJpb25ldHRlLXBvcnQnLCB0aGlzLm1hcmlvbmV0dGVQb3J0KTtcbiAgICB9XG4gICAgLyogI2VuZHJlZ2lvbiAqL1xuXG4gICAgYXJncy5wdXNoKCctcCcsIHRoaXMucG9ydCk7XG4gICAgaWYgKHRoaXMuYW5kcm9pZFN0b3JhZ2UpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1hbmRyb2lkLXN0b3JhZ2UnLCB0aGlzLmFuZHJvaWRTdG9yYWdlKTtcbiAgICB9XG4gICAgdGhpcy5wcm9jID0gbmV3IFN1YlByb2Nlc3MoZHJpdmVyQmluLCBhcmdzKTtcbiAgICB0aGlzLnByb2Mub24oJ291dHB1dCcsIChzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgY29uc3QgbGluZSA9IF8udHJpbShzdGRvdXQgfHwgc3RkZXJyKTtcbiAgICAgIGlmIChsaW5lKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBbJHtHRF9CSU5BUll9XSAke2xpbmV9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5wcm9jLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgJHtHRF9CSU5BUll9IGhhcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICB9KTtcbiAgICB0aGlzLmxvZy5pbmZvKGBTdGFydGluZyAnJHtkcml2ZXJCaW59JyB3aXRoIGFyZ3MgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICBhd2FpdCB0aGlzLnByb2Muc3RhcnQoMCk7XG4gIH1cblxuICBhc3luYyBzdG9wICgpIHtcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGF3YWl0IHRoaXMucHJvYy5zdG9wKCdTSUdURVJNJyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMga2lsbCAoKSB7XG4gICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2Muc3RvcCgnU0lHS0lMTCcpO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBSVU5OSU5HX1BST0NFU1NfSURTID0gW107XG5wcm9jZXNzLm9uY2UoJ2V4aXQnLCAoKSA9PiB7XG4gIGlmIChfLmlzRW1wdHkoUlVOTklOR19QUk9DRVNTX0lEUykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBjb21tYW5kID0gc3lzdGVtLmlzV2luZG93cygpXG4gICAgPyAoJ3Rhc2traWxsLmV4ZSAnICsgUlVOTklOR19QUk9DRVNTX0lEUy5tYXAoKHBpZCkgPT4gYC9QSUQgJHtwaWR9YCkuam9pbignICcpKVxuICAgIDogYGtpbGwgJHtSVU5OSU5HX1BST0NFU1NfSURTLmpvaW4oJyAnKX1gO1xuICB0cnkge1xuICAgIGV4ZWNTeW5jKGNvbW1hbmQpO1xuICB9IGNhdGNoIChpZ24pIHt9XG59KTtcblxuY2xhc3MgR2Vja29Ecml2ZXJTZXJ2ZXIge1xuICBjb25zdHJ1Y3RvciAobG9nLCBjYXBzKSB7XG4gICAgdGhpcy5wcm9jZXNzID0gbmV3IEdlY2tvRHJpdmVyUHJvY2Vzcyhsb2csIGNhcHMpO1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMucHJveHkgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvY2Vzcz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0IChnZWNrb0NhcHMpIHtcbiAgICBhd2FpdCB0aGlzLnByb2Nlc3MuaW5pdCgpO1xuXG4gICAgdGhpcy5wcm94eSA9IG5ldyBHZWNrb1Byb3h5KHtcbiAgICAgIHNlcnZlcjogJzEyNy4wLjAuMScsXG4gICAgICBwb3J0OiB0aGlzLnByb2Nlc3MucG9ydCxcbiAgICAgIGxvZzogdGhpcy5sb2csXG4gICAgICBiYXNlOiAnJyxcbiAgICAgIGtlZXBBbGl2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0ID0gZmFsc2U7XG4gICAgdGhpcy5wcm9jZXNzLnByb2Mub24oJ2V4aXQnLCAoKSA9PiB7XG4gICAgICB0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0ID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnByb3h5LmNvbW1hbmQoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICh0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAgd2FpdE1zOiBTVEFSVFVQX1RJTUVPVVRfTVMsXG4gICAgICAgIGludGVydmFsTXM6IDEwMDAsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAodGhpcy5wcm9jZXNzLmlzUnVubmluZykge1xuICAgICAgICAvLyBhdm9pZCBcImZyb3plblwiIHByb2Nlc3NlcyxcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzLmtpbGwoKTtcbiAgICAgIH1cbiAgICAgIGlmICgvQ29uZGl0aW9uIHVubWV0Ly50ZXN0KGUubWVzc2FnZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHZWNrbyBEcml2ZXIgc2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgd2l0aGluICR7U1RBUlRVUF9USU1FT1VUX01TfW1zIHRpbWVvdXQuIGAgK1xuICAgICAgICAgIGBNYWtlIHN1cmUgaXQgY291bGQgYmUgc3RhcnRlZCBtYW51YWxseSBmcm9tIGEgdGVybWluYWxgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGNvbnN0IHBpZCA9IHRoaXMucHJvY2Vzcy5wcm9jLnBpZDtcbiAgICBSVU5OSU5HX1BST0NFU1NfSURTLnB1c2gocGlkKTtcbiAgICB0aGlzLnByb2Nlc3MucHJvYy5vbignZXhpdCcsICgpID0+IHZvaWQgXy5wdWxsKFJVTk5JTkdfUFJPQ0VTU19JRFMsIHBpZCkpO1xuXG4gICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKCcvc2Vzc2lvbicsICdQT1NUJywge1xuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIGZpcnN0TWF0Y2g6IFt7fV0sXG4gICAgICAgIGFsd2F5c01hdGNoOiBnZWNrb0NhcHMsXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBHZWNrbyBEcml2ZXIgc2Vzc2lvbiBjYW5ub3QgYmUgc3RvcHBlZCwgYmVjYXVzZSB0aGUgc2VydmVyIGlzIG5vdCBydW5uaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJveHk/LnNlc3Npb25JZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKGAvc2Vzc2lvbi8ke3RoaXMucHJveHkuc2Vzc2lvbklkfWAsICdERUxFVEUnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgR2Vja28gRHJpdmVyIHNlc3Npb24gY2Fubm90IGJlIGRlbGV0ZWQuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzLnN0b3AoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKGBHZWNrbyBEcml2ZXIgcHJvY2VzcyBjYW5ub3QgYmUgc3RvcHBlZCAoJHtlLm1lc3NhZ2V9KS4gS2lsbGluZyBpdCBmb3JjZWZ1bGx5YCk7XG4gICAgICBhd2FpdCB0aGlzLnByb2Nlc3Mua2lsbCgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBHZWNrb0RyaXZlclNlcnZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxTQUFTLEdBQUksY0FBYUMsZ0JBQU9DLFNBQVAsS0FBcUIsTUFBckIsR0FBOEIsRUFBRyxFQUFqRTtBQUNBLE1BQU1DLGtCQUFrQixHQUFHLEtBQTNCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFELEVBQU8sSUFBUCxDQUF6Qjs7QUFDQSxNQUFNQyxrQkFBa0IsR0FBR0MsY0FBS0MsZ0JBQUwsQ0FDekJDLGNBQUtDLE9BQUwsQ0FBYUMsWUFBR0MsTUFBSCxFQUFiLEVBQTBCLHlCQUExQixDQUR5QixFQUV6QjtFQUFDQyxPQUFPLEVBQUUsQ0FBVjtFQUFhQyxXQUFXLEVBQUU7QUFBMUIsQ0FGeUIsQ0FBM0I7O0FBSUEsTUFBTUMsdUJBQXVCLEdBQUcsSUFBaEM7QUFDQSxNQUFNQyxpQ0FBaUMsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7RUFDdERDLE9BQU8sRUFBRSxTQUQ2QztFQUV0REMsU0FBUyxFQUFFLFdBRjJDO0VBR3REQyxjQUFjLEVBQUUsZ0JBSHNDO0VBSXREQyxjQUFjLEVBQUUsZ0JBSnNDO0VBS3REQyxVQUFVLEVBQUU7QUFMMEMsQ0FBZCxDQUExQzs7QUFTQSxNQUFNQyxVQUFOLFNBQXlCQyxtQkFBekIsQ0FBaUM7RUFDYixNQUFaQyxZQUFZLENBQUVDLEdBQUYsRUFBT0MsTUFBUCxFQUFlQyxJQUFJLEdBQUcsSUFBdEIsRUFBNEI7SUFDNUMsSUFBSSxLQUFLQyxjQUFULEVBQXlCO01B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
@@ -15,4 +15,4 @@ var _default = log;
15
15
  exports.default = _default;require('source-map-support').install();
16
16
 
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLGFBQWpCLENBQVo7O2VBRWVGLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5jb25zdCBsb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdHZWNrb0RyaXZlcicpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwiZmlsZSI6ImxpYi9sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
18
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsIm5hbWVzIjpbImxvZyIsImxvZ2dlciIsImdldExvZ2dlciJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignR2Vja29Ecml2ZXInKTtcblxuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLGFBQWpCLENBQVo7O2VBRWVGLEcifQ==
@@ -33,4 +33,4 @@ async function startServer(port, address) {
33
33
  }require('source-map-support').install();
34
34
 
35
35
 
36
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXIuanMiXSwibmFtZXMiOlsic3RhcnRTZXJ2ZXIiLCJwb3J0IiwiYWRkcmVzcyIsImQiLCJHZWNrb0RyaXZlciIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsInNlcnZlciIsImhvc3RuYW1lIiwibG9nIiwiaW5mbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFFQSxlQUFlQSxXQUFmLENBQTRCQyxJQUE1QixFQUFrQ0MsT0FBbEMsRUFBMkM7QUFDekMsTUFBSUMsQ0FBQyxHQUFHLElBQUlDLGVBQUosQ0FBZ0I7QUFBQ0gsSUFBQUEsSUFBRDtBQUFPQyxJQUFBQTtBQUFQLEdBQWhCLENBQVI7QUFDQSxNQUFJRyx3QkFBd0IsR0FBRywwQ0FBV0YsQ0FBWCxDQUEvQjtBQUNBLE1BQUlHLE1BQU0sR0FBRyxNQUFNLHdCQUFXO0FBQUNELElBQUFBLHdCQUFEO0FBQTJCSixJQUFBQSxJQUEzQjtBQUFpQ00sSUFBQUEsUUFBUSxFQUFFTDtBQUEzQyxHQUFYLENBQW5COztBQUNBTSxrQkFBSUMsSUFBSixDQUFVLDJDQUEwQ1AsT0FBUSxJQUFHRCxJQUFLLEVBQXBFOztBQUNBLFNBQU9LLE1BQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtcbiAgc2VydmVyIGFzIGJhc2VTZXJ2ZXIsIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiBhcyBtYWtlUm91dGVyXG59IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IEdlY2tvRHJpdmVyIGZyb20gJy4vZHJpdmVyJztcblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXJ2ZXIgKHBvcnQsIGFkZHJlc3MpIHtcbiAgbGV0IGQgPSBuZXcgR2Vja29Ecml2ZXIoe3BvcnQsIGFkZHJlc3N9KTtcbiAgbGV0IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiA9IG1ha2VSb3V0ZXIoZCk7XG4gIGxldCBzZXJ2ZXIgPSBhd2FpdCBiYXNlU2VydmVyKHtyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sIHBvcnQsIGhvc3RuYW1lOiBhZGRyZXNzfSk7XG4gIGxvZy5pbmZvKGBHZWNrbyBEcml2ZXIgc2VydmVyIGxpc3RlbmluZyBvbiBodHRwOi8vJHthZGRyZXNzfToke3BvcnR9YCk7XG4gIHJldHVybiBzZXJ2ZXI7XG59XG5cbmV4cG9ydCB7IHN0YXJ0U2VydmVyIH07XG4iXSwiZmlsZSI6ImxpYi9zZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
36
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3NlcnZlci5qcyIsIm5hbWVzIjpbInN0YXJ0U2VydmVyIiwicG9ydCIsImFkZHJlc3MiLCJkIiwiR2Vja29Ecml2ZXIiLCJyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24iLCJzZXJ2ZXIiLCJob3N0bmFtZSIsImxvZyIsImluZm8iXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvc2VydmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtcbiAgc2VydmVyIGFzIGJhc2VTZXJ2ZXIsIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiBhcyBtYWtlUm91dGVyXG59IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IEdlY2tvRHJpdmVyIGZyb20gJy4vZHJpdmVyJztcblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXJ2ZXIgKHBvcnQsIGFkZHJlc3MpIHtcbiAgbGV0IGQgPSBuZXcgR2Vja29Ecml2ZXIoe3BvcnQsIGFkZHJlc3N9KTtcbiAgbGV0IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiA9IG1ha2VSb3V0ZXIoZCk7XG4gIGxldCBzZXJ2ZXIgPSBhd2FpdCBiYXNlU2VydmVyKHtyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sIHBvcnQsIGhvc3RuYW1lOiBhZGRyZXNzfSk7XG4gIGxvZy5pbmZvKGBHZWNrbyBEcml2ZXIgc2VydmVyIGxpc3RlbmluZyBvbiBodHRwOi8vJHthZGRyZXNzfToke3BvcnR9YCk7XG4gIHJldHVybiBzZXJ2ZXI7XG59XG5cbmV4cG9ydCB7IHN0YXJ0U2VydmVyIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBRUEsZUFBZUEsV0FBZixDQUE0QkMsSUFBNUIsRUFBa0NDLE9BQWxDLEVBQTJDO0VBQ3pDLElBQUlDLENBQUMsR0FBRyxJQUFJQyxlQUFKLENBQWdCO0lBQUNILElBQUQ7SUFBT0M7RUFBUCxDQUFoQixDQUFSO0VBQ0EsSUFBSUcsd0JBQXdCLEdBQUcsMENBQVdGLENBQVgsQ0FBL0I7RUFDQSxJQUFJRyxNQUFNLEdBQUcsTUFBTSx3QkFBVztJQUFDRCx3QkFBRDtJQUEyQkosSUFBM0I7SUFBaUNNLFFBQVEsRUFBRUw7RUFBM0MsQ0FBWCxDQUFuQjs7RUFDQU0sZ0JBQUlDLElBQUosQ0FBVSwyQ0FBMENQLE9BQVEsSUFBR0QsSUFBSyxFQUFwRTs7RUFDQSxPQUFPSyxNQUFQO0FBQ0QifQ==
@@ -35,4 +35,4 @@ function formatCapsForServer(caps) {
35
35
  }require('source-map-support').install();
36
36
 
37
37
 
38
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlscy5qcyJdLCJuYW1lcyI6WyJHRUNLT19DQVBfUFJFRklYRVMiLCJTVEFOREFSRF9DQVBTIiwiZm9ybWF0Q2Fwc0ZvclNlcnZlciIsImNhcHMiLCJyZXN1bHQiLCJicm93c2VyTmFtZSIsIm5hbWUiLCJ2YWx1ZSIsIl8iLCJ0b1BhaXJzIiwic29tZSIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJpbmNsdWRlcyIsInBsYXRmb3JtTmFtZSIsInRvTG93ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsa0JBQWtCLEdBQUcsQ0FBQyxNQUFELENBQTNCO0FBRUEsTUFBTUMsYUFBYSxHQUFHLENBQ3BCLGdCQURvQixFQUVwQixjQUZvQixFQUdwQixxQkFIb0IsRUFJcEIsa0JBSm9CLEVBS3BCLE9BTG9CLEVBTXBCLGVBTm9CLEVBT3BCLFVBUG9CLEVBUXBCLHlCQVJvQixDQUF0Qjs7QUFXQSxTQUFTQyxtQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDbEMsUUFBTUMsTUFBTSxHQUFHLEVBQWY7O0FBQ0EsTUFBSUQsSUFBSSxDQUFDRSxXQUFULEVBQXNCO0FBQ3BCRCxJQUFBQSxNQUFNLENBQUNDLFdBQVAsR0FBcUIsU0FBckI7QUFDRDs7QUFDRCxPQUFLLE1BQU0sQ0FBQ0MsSUFBRCxFQUFPQyxLQUFQLENBQVgsSUFBNEJDLGdCQUFFQyxPQUFGLENBQVVOLElBQVYsQ0FBNUIsRUFBNkM7QUFDM0MsUUFBSUgsa0JBQWtCLENBQUNVLElBQW5CLENBQXlCQyxNQUFELElBQVlMLElBQUksQ0FBQ00sVUFBTCxDQUFnQkQsTUFBaEIsQ0FBcEMsS0FBZ0VWLGFBQWEsQ0FBQ1ksUUFBZCxDQUF1QlAsSUFBdkIsQ0FBcEUsRUFBa0c7QUFDaEdGLE1BQUFBLE1BQU0sQ0FBQ0UsSUFBRCxDQUFOLEdBQWVDLEtBQWY7QUFDRDtBQUNGOztBQUNELE1BQUlILE1BQU0sQ0FBQ1UsWUFBWCxFQUF5QjtBQUV2QlYsSUFBQUEsTUFBTSxDQUFDVSxZQUFQLEdBQXNCTixnQkFBRU8sT0FBRixDQUFVWCxNQUFNLENBQUNVLFlBQWpCLENBQXRCO0FBQ0Q7O0FBQ0QsU0FBT1YsTUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgR0VDS09fQ0FQX1BSRUZJWEVTID0gWydtb3o6J107XG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNjYXBhYmlsaXRpZXNcbmNvbnN0IFNUQU5EQVJEX0NBUFMgPSBbXG4gICdicm93c2VyVmVyc2lvbicsXG4gICdwbGF0Zm9ybU5hbWUnLFxuICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycsXG4gICdwYWdlTG9hZFN0cmF0ZWd5JyxcbiAgJ3Byb3h5JyxcbiAgJ3NldFdpbmRvd1JlY3QnLFxuICAndGltZW91dHMnLFxuICAndW5oYW5kbGVkUHJvbXB0QmVoYXZpb3InLFxuXTtcblxuZnVuY3Rpb24gZm9ybWF0Q2Fwc0ZvclNlcnZlciAoY2Fwcykge1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgaWYgKGNhcHMuYnJvd3Nlck5hbWUpIHtcbiAgICByZXN1bHQuYnJvd3Nlck5hbWUgPSAnZmlyZWZveCc7XG4gIH1cbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIF8udG9QYWlycyhjYXBzKSkge1xuICAgIGlmIChHRUNLT19DQVBfUFJFRklYRVMuc29tZSgocHJlZml4KSA9PiBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkgfHwgU1RBTkRBUkRfQ0FQUy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgcmVzdWx0W25hbWVdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIGlmIChyZXN1bHQucGxhdGZvcm1OYW1lKSB7XG4gICAgLy8gR2Vja29kcml2ZXIgb25seSBzdXBwb3J0cyBsb3dlcmNhc2UgcGxhdGZvcm0gbmFtZXNcbiAgICByZXN1bHQucGxhdGZvcm1OYW1lID0gXy50b0xvd2VyKHJlc3VsdC5wbGF0Zm9ybU5hbWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfTtcbiJdLCJmaWxlIjoibGliL3V0aWxzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
38
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3V0aWxzLmpzIiwibmFtZXMiOlsiR0VDS09fQ0FQX1BSRUZJWEVTIiwiU1RBTkRBUkRfQ0FQUyIsImZvcm1hdENhcHNGb3JTZXJ2ZXIiLCJjYXBzIiwicmVzdWx0IiwiYnJvd3Nlck5hbWUiLCJuYW1lIiwidmFsdWUiLCJfIiwidG9QYWlycyIsInNvbWUiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJwbGF0Zm9ybU5hbWUiLCJ0b0xvd2VyIl0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IEdFQ0tPX0NBUF9QUkVGSVhFUyA9IFsnbW96OiddO1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jY2FwYWJpbGl0aWVzXG5jb25zdCBTVEFOREFSRF9DQVBTID0gW1xuICAnYnJvd3NlclZlcnNpb24nLFxuICAncGxhdGZvcm1OYW1lJyxcbiAgJ2FjY2VwdEluc2VjdXJlQ2VydHMnLFxuICAncGFnZUxvYWRTdHJhdGVneScsXG4gICdwcm94eScsXG4gICdzZXRXaW5kb3dSZWN0JyxcbiAgJ3RpbWVvdXRzJyxcbiAgJ3VuaGFuZGxlZFByb21wdEJlaGF2aW9yJyxcbl07XG5cbmZ1bmN0aW9uIGZvcm1hdENhcHNGb3JTZXJ2ZXIgKGNhcHMpIHtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGlmIChjYXBzLmJyb3dzZXJOYW1lKSB7XG4gICAgcmVzdWx0LmJyb3dzZXJOYW1lID0gJ2ZpcmVmb3gnO1xuICB9XG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBfLnRvUGFpcnMoY2FwcykpIHtcbiAgICBpZiAoR0VDS09fQ0FQX1BSRUZJWEVTLnNvbWUoKHByZWZpeCkgPT4gbmFtZS5zdGFydHNXaXRoKHByZWZpeCkpIHx8IFNUQU5EQVJEX0NBUFMuaW5jbHVkZXMobmFtZSkpIHtcbiAgICAgIHJlc3VsdFtuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBpZiAocmVzdWx0LnBsYXRmb3JtTmFtZSkge1xuICAgIC8vIEdlY2tvZHJpdmVyIG9ubHkgc3VwcG9ydHMgbG93ZXJjYXNlIHBsYXRmb3JtIG5hbWVzXG4gICAgcmVzdWx0LnBsYXRmb3JtTmFtZSA9IF8udG9Mb3dlcihyZXN1bHQucGxhdGZvcm1OYW1lKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgeyBmb3JtYXRDYXBzRm9yU2VydmVyIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsa0JBQWtCLEdBQUcsQ0FBQyxNQUFELENBQTNCO0FBRUEsTUFBTUMsYUFBYSxHQUFHLENBQ3BCLGdCQURvQixFQUVwQixjQUZvQixFQUdwQixxQkFIb0IsRUFJcEIsa0JBSm9CLEVBS3BCLE9BTG9CLEVBTXBCLGVBTm9CLEVBT3BCLFVBUG9CLEVBUXBCLHlCQVJvQixDQUF0Qjs7QUFXQSxTQUFTQyxtQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7RUFDbEMsTUFBTUMsTUFBTSxHQUFHLEVBQWY7O0VBQ0EsSUFBSUQsSUFBSSxDQUFDRSxXQUFULEVBQXNCO0lBQ3BCRCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsU0FBckI7RUFDRDs7RUFDRCxLQUFLLE1BQU0sQ0FBQ0MsSUFBRCxFQUFPQyxLQUFQLENBQVgsSUFBNEJDLGdCQUFFQyxPQUFGLENBQVVOLElBQVYsQ0FBNUIsRUFBNkM7SUFDM0MsSUFBSUgsa0JBQWtCLENBQUNVLElBQW5CLENBQXlCQyxNQUFELElBQVlMLElBQUksQ0FBQ00sVUFBTCxDQUFnQkQsTUFBaEIsQ0FBcEMsS0FBZ0VWLGFBQWEsQ0FBQ1ksUUFBZCxDQUF1QlAsSUFBdkIsQ0FBcEUsRUFBa0c7TUFDaEdGLE1BQU0sQ0FBQ0UsSUFBRCxDQUFOLEdBQWVDLEtBQWY7SUFDRDtFQUNGOztFQUNELElBQUlILE1BQU0sQ0FBQ1UsWUFBWCxFQUF5QjtJQUV2QlYsTUFBTSxDQUFDVSxZQUFQLEdBQXNCTixnQkFBRU8sT0FBRixDQUFVWCxNQUFNLENBQUNVLFlBQWpCLENBQXRCO0VBQ0Q7O0VBQ0QsT0FBT1YsTUFBUDtBQUNEIn0=
@@ -56,4 +56,4 @@ describe('Desktop Gecko Driver', function () {
56
56
  });require('source-map-support').install();
57
57
 
58
58
 
59
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZnVuY3Rpb25hbC9kZXNrdG9wLWRyaXZlci1lMmUtc3BlY3MuanMiXSwibmFtZXMiOlsiY2hhaSIsInNob3VsZCIsInVzZSIsImNoYWlBc1Byb21pc2VkIiwiQ0FQUyIsImJyb3dzZXJOYW1lIiwicGxhdGZvcm1OYW1lIiwiZGVzY3JpYmUiLCJ0aW1lb3V0IiwiTU9DSEFfVElNRU9VVCIsInNlcnZlciIsImRyaXZlciIsImJlZm9yZSIsIlBPUlQiLCJIT1NUIiwiYWZ0ZXIiLCJjbG9zZSIsImJlZm9yZUVhY2giLCJob3N0bmFtZSIsInBvcnQiLCJjYXBhYmlsaXRpZXMiLCJhZnRlckVhY2giLCJkZWxldGVTZXNzaW9uIiwiaXQiLCJ1cmwiLCJidXR0b24iLCIkIiwiZ2V0VGV4dCIsImV2ZW50dWFsbHkiLCJlcWwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBQSxjQUFLQyxNQUFMOztBQUNBRCxjQUFLRSxHQUFMLENBQVNDLHVCQUFUOztBQUVBLE1BQU1DLElBQUksR0FBRztBQUNYQyxFQUFBQSxXQUFXLEVBQUUsZ0JBREY7QUFFWEMsRUFBQUEsWUFBWSxFQUFFO0FBRkgsQ0FBYjtBQUtBQyxRQUFRLENBQUMsc0JBQUQsRUFBeUIsWUFBWTtBQUMzQyxPQUFLQyxPQUFMLENBQWFDLG9CQUFiO0FBRUEsTUFBSUMsTUFBSjtBQUNBLE1BQUlDLE1BQUo7QUFDQUMsRUFBQUEsTUFBTSxDQUFDLGtCQUFrQjtBQUN2QkYsSUFBQUEsTUFBTSxHQUFHLE1BQU0sbUJBQVlHLFdBQVosRUFBa0JDLFdBQWxCLENBQWY7QUFDRCxHQUZLLENBQU47QUFHQUMsRUFBQUEsS0FBSyxDQUFDLGtCQUFrQjtBQUN0QixRQUFJTCxNQUFKLEVBQVk7QUFDVixZQUFNQSxNQUFNLENBQUNNLEtBQVAsRUFBTjtBQUNBTixNQUFBQSxNQUFNLEdBQUcsSUFBVDtBQUNEO0FBQ0YsR0FMSSxDQUFMO0FBTUFPLEVBQUFBLFVBQVUsQ0FBQyxrQkFBa0I7QUFDM0JOLElBQUFBLE1BQU0sR0FBRyxNQUFNLHlCQUFPO0FBQ3BCTyxNQUFBQSxRQUFRLEVBQUVKLFdBRFU7QUFFcEJLLE1BQUFBLElBQUksRUFBRU4sV0FGYztBQUdwQk8sTUFBQUEsWUFBWSxFQUFFaEI7QUFITSxLQUFQLENBQWY7QUFLRCxHQU5TLENBQVY7QUFPQWlCLEVBQUFBLFNBQVMsQ0FBQyxrQkFBa0I7QUFDMUIsUUFBSVYsTUFBSixFQUFZO0FBQ1YsWUFBTUEsTUFBTSxDQUFDVyxhQUFQLEVBQU47QUFDQVgsTUFBQUEsTUFBTSxHQUFHLElBQVQ7QUFDRDtBQUNGLEdBTFEsQ0FBVDtBQU9BWSxFQUFBQSxFQUFFLENBQUMsaUNBQUQsRUFBb0Msa0JBQWtCO0FBQ3RELFVBQU1aLE1BQU0sQ0FBQ2EsR0FBUCxDQUFXLG9CQUFYLENBQU47QUFDQSxVQUFNQyxNQUFNLEdBQUcsTUFBTWQsTUFBTSxDQUFDZSxDQUFQLENBQVMsZUFBVCxDQUFyQjtBQUNBLFVBQU1ELE1BQU0sQ0FBQ0UsT0FBUCxHQUFpQjFCLE1BQWpCLENBQXdCMkIsVUFBeEIsQ0FBbUNDLEdBQW5DLENBQXVDLGlCQUF2QyxDQUFOO0FBQ0QsR0FKQyxDQUFGO0FBS0QsQ0FqQ08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbW90ZSB9IGZyb20gJ3dlYmRyaXZlcmlvJztcbmltcG9ydCB7IHN0YXJ0U2VydmVyIH0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5pbXBvcnQgeyBIT1NULCBQT1JULCBNT0NIQV9USU1FT1VUIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jaGFpLnNob3VsZCgpO1xuY2hhaS51c2UoY2hhaUFzUHJvbWlzZWQpO1xuXG5jb25zdCBDQVBTID0ge1xuICBicm93c2VyTmFtZTogJ01vemlsbGFGaXJlZm94JyxcbiAgcGxhdGZvcm1OYW1lOiAnbGludXgnLFxufTtcblxuZGVzY3JpYmUoJ0Rlc2t0b3AgR2Vja28gRHJpdmVyJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnRpbWVvdXQoTU9DSEFfVElNRU9VVCk7XG5cbiAgbGV0IHNlcnZlcjtcbiAgbGV0IGRyaXZlcjtcbiAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBzZXJ2ZXIgPSBhd2FpdCBzdGFydFNlcnZlcihQT1JULCBIT1NUKTtcbiAgfSk7XG4gIGFmdGVyKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2VydmVyKSB7XG4gICAgICBhd2FpdCBzZXJ2ZXIuY2xvc2UoKTtcbiAgICAgIHNlcnZlciA9IG51bGw7XG4gICAgfVxuICB9KTtcbiAgYmVmb3JlRWFjaChhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgZHJpdmVyID0gYXdhaXQgcmVtb3RlKHtcbiAgICAgIGhvc3RuYW1lOiBIT1NULFxuICAgICAgcG9ydDogUE9SVCxcbiAgICAgIGNhcGFiaWxpdGllczogQ0FQUyxcbiAgICB9KTtcbiAgfSk7XG4gIGFmdGVyRWFjaChhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGRyaXZlcikge1xuICAgICAgYXdhaXQgZHJpdmVyLmRlbGV0ZVNlc3Npb24oKTtcbiAgICAgIGRyaXZlciA9IG51bGw7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIHN0YXJ0IGFuZCBzdG9wIGEgc2Vzc2lvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBhd2FpdCBkcml2ZXIudXJsKCdodHRwczovL2FwcGl1bS5pby8nKTtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCBkcml2ZXIuJCgnI2Rvd25sb2FkTGluaycpO1xuICAgIGF3YWl0IGJ1dHRvbi5nZXRUZXh0KCkuc2hvdWxkLmV2ZW50dWFsbHkuZXFsKCdEb3dubG9hZCBBcHBpdW0nKTtcbiAgfSk7XG59KTtcblxuXG4iXSwiZmlsZSI6InRlc3QvZnVuY3Rpb25hbC9kZXNrdG9wLWRyaXZlci1lMmUtc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
59
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC9mdW5jdGlvbmFsL2Rlc2t0b3AtZHJpdmVyLWUyZS1zcGVjcy5qcyIsIm5hbWVzIjpbImNoYWkiLCJzaG91bGQiLCJ1c2UiLCJjaGFpQXNQcm9taXNlZCIsIkNBUFMiLCJicm93c2VyTmFtZSIsInBsYXRmb3JtTmFtZSIsImRlc2NyaWJlIiwidGltZW91dCIsIk1PQ0hBX1RJTUVPVVQiLCJzZXJ2ZXIiLCJkcml2ZXIiLCJiZWZvcmUiLCJQT1JUIiwiSE9TVCIsImFmdGVyIiwiY2xvc2UiLCJiZWZvcmVFYWNoIiwiaG9zdG5hbWUiLCJwb3J0IiwiY2FwYWJpbGl0aWVzIiwiYWZ0ZXJFYWNoIiwiZGVsZXRlU2Vzc2lvbiIsIml0IiwidXJsIiwiYnV0dG9uIiwiJCIsImdldFRleHQiLCJldmVudHVhbGx5IiwiZXFsIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsidGVzdC9mdW5jdGlvbmFsL2Rlc2t0b3AtZHJpdmVyLWUyZS1zcGVjcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW1vdGUgfSBmcm9tICd3ZWJkcml2ZXJpbyc7XG5pbXBvcnQgeyBzdGFydFNlcnZlciB9IGZyb20gJy4uLy4uJztcbmltcG9ydCBjaGFpQXNQcm9taXNlZCBmcm9tICdjaGFpLWFzLXByb21pc2VkJztcbmltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuaW1wb3J0IHsgSE9TVCwgUE9SVCwgTU9DSEFfVElNRU9VVCB9IGZyb20gJy4uL3V0aWxzJztcblxuY2hhaS5zaG91bGQoKTtcbmNoYWkudXNlKGNoYWlBc1Byb21pc2VkKTtcblxuY29uc3QgQ0FQUyA9IHtcbiAgYnJvd3Nlck5hbWU6ICdNb3ppbGxhRmlyZWZveCcsXG4gIHBsYXRmb3JtTmFtZTogJ2xpbnV4Jyxcbn07XG5cbmRlc2NyaWJlKCdEZXNrdG9wIEdlY2tvIERyaXZlcicsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy50aW1lb3V0KE1PQ0hBX1RJTUVPVVQpO1xuXG4gIGxldCBzZXJ2ZXI7XG4gIGxldCBkcml2ZXI7XG4gIGJlZm9yZShhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgc2VydmVyID0gYXdhaXQgc3RhcnRTZXJ2ZXIoUE9SVCwgSE9TVCk7XG4gIH0pO1xuICBhZnRlcihhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHNlcnZlcikge1xuICAgICAgYXdhaXQgc2VydmVyLmNsb3NlKCk7XG4gICAgICBzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG4gIGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGRyaXZlciA9IGF3YWl0IHJlbW90ZSh7XG4gICAgICBob3N0bmFtZTogSE9TVCxcbiAgICAgIHBvcnQ6IFBPUlQsXG4gICAgICBjYXBhYmlsaXRpZXM6IENBUFMsXG4gICAgfSk7XG4gIH0pO1xuICBhZnRlckVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChkcml2ZXIpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5kZWxldGVTZXNzaW9uKCk7XG4gICAgICBkcml2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzdGFydCBhbmQgc3RvcCBhIHNlc3Npb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgZHJpdmVyLnVybCgnaHR0cHM6Ly9hcHBpdW0uaW8vJyk7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgZHJpdmVyLiQoJyNkb3dubG9hZExpbmsnKTtcbiAgICBhd2FpdCBidXR0b24uZ2V0VGV4dCgpLnNob3VsZC5ldmVudHVhbGx5LmVxbCgnRG93bmxvYWQgQXBwaXVtJyk7XG4gIH0pO1xufSk7XG5cblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQUEsY0FBS0MsTUFBTDs7QUFDQUQsY0FBS0UsR0FBTCxDQUFTQyx1QkFBVDs7QUFFQSxNQUFNQyxJQUFJLEdBQUc7RUFDWEMsV0FBVyxFQUFFLGdCQURGO0VBRVhDLFlBQVksRUFBRTtBQUZILENBQWI7QUFLQUMsUUFBUSxDQUFDLHNCQUFELEVBQXlCLFlBQVk7RUFDM0MsS0FBS0MsT0FBTCxDQUFhQyxvQkFBYjtFQUVBLElBQUlDLE1BQUo7RUFDQSxJQUFJQyxNQUFKO0VBQ0FDLE1BQU0sQ0FBQyxrQkFBa0I7SUFDdkJGLE1BQU0sR0FBRyxNQUFNLG1CQUFZRyxXQUFaLEVBQWtCQyxXQUFsQixDQUFmO0VBQ0QsQ0FGSyxDQUFOO0VBR0FDLEtBQUssQ0FBQyxrQkFBa0I7SUFDdEIsSUFBSUwsTUFBSixFQUFZO01BQ1YsTUFBTUEsTUFBTSxDQUFDTSxLQUFQLEVBQU47TUFDQU4sTUFBTSxHQUFHLElBQVQ7SUFDRDtFQUNGLENBTEksQ0FBTDtFQU1BTyxVQUFVLENBQUMsa0JBQWtCO0lBQzNCTixNQUFNLEdBQUcsTUFBTSx5QkFBTztNQUNwQk8sUUFBUSxFQUFFSixXQURVO01BRXBCSyxJQUFJLEVBQUVOLFdBRmM7TUFHcEJPLFlBQVksRUFBRWhCO0lBSE0sQ0FBUCxDQUFmO0VBS0QsQ0FOUyxDQUFWO0VBT0FpQixTQUFTLENBQUMsa0JBQWtCO0lBQzFCLElBQUlWLE1BQUosRUFBWTtNQUNWLE1BQU1BLE1BQU0sQ0FBQ1csYUFBUCxFQUFOO01BQ0FYLE1BQU0sR0FBRyxJQUFUO0lBQ0Q7RUFDRixDQUxRLENBQVQ7RUFPQVksRUFBRSxDQUFDLGlDQUFELEVBQW9DLGtCQUFrQjtJQUN0RCxNQUFNWixNQUFNLENBQUNhLEdBQVAsQ0FBVyxvQkFBWCxDQUFOO0lBQ0EsTUFBTUMsTUFBTSxHQUFHLE1BQU1kLE1BQU0sQ0FBQ2UsQ0FBUCxDQUFTLGVBQVQsQ0FBckI7SUFDQSxNQUFNRCxNQUFNLENBQUNFLE9BQVAsR0FBaUIxQixNQUFqQixDQUF3QjJCLFVBQXhCLENBQW1DQyxHQUFuQyxDQUF1QyxpQkFBdkMsQ0FBTjtFQUNELENBSkMsQ0FBRjtBQUtELENBakNPLENBQVIifQ==
@@ -66,4 +66,4 @@ describe('Mobile GeckoDriver', function () {
66
66
  });require('source-map-support').install();
67
67
 
68
68
 
69
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZnVuY3Rpb25hbC9tb2JpbGUtZHJpdmVyLWUyZS1zcGVjcy5qcyJdLCJuYW1lcyI6WyJjaGFpIiwic2hvdWxkIiwidXNlIiwiY2hhaUFzUHJvbWlzZWQiLCJERVZJQ0VfTkFNRSIsInByb2Nlc3MiLCJlbnYiLCJDQVBTIiwicGxhdGZvcm1OYW1lIiwidmVyYm9zaXR5IiwiYW5kcm9pZERldmljZVNlcmlhbCIsImFuZHJvaWRQYWNrYWdlIiwiYW5kcm9pZFN0b3JhZ2UiLCJkZXNjcmliZSIsInRpbWVvdXQiLCJNT0NIQV9USU1FT1VUIiwic2VydmVyIiwiZHJpdmVyIiwiYmVmb3JlIiwiQ0kiLCJza2lwIiwiUE9SVCIsIkhPU1QiLCJhZnRlciIsImNsb3NlIiwiYmVmb3JlRWFjaCIsImhvc3RuYW1lIiwicG9ydCIsImNhcGFiaWxpdGllcyIsImFmdGVyRWFjaCIsImRlbGV0ZVNlc3Npb24iLCJpdCIsInVybCIsImJ1dHRvbiIsIiQiLCJnZXRUZXh0IiwiZXZlbnR1YWxseSIsImVxbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLGNBQUtDLE1BQUw7O0FBQ0FELGNBQUtFLEdBQUwsQ0FBU0MsdUJBQVQ7O0FBRUEsTUFBTUMsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUYsV0FBWixJQUEyQixlQUEvQztBQUVBLE1BQU1HLElBQUksR0FBRztBQUNYQyxFQUFBQSxZQUFZLEVBQUUsT0FESDtBQUdYQyxFQUFBQSxTQUFTLEVBQUUsT0FIQTtBQUlYLHdCQUFzQjtBQUNwQkMsSUFBQUEsbUJBQW1CLEVBQUVOLFdBREQ7QUFFcEJPLElBQUFBLGNBQWMsRUFBRTtBQUZJLEdBSlg7QUFRWEMsRUFBQUEsY0FBYyxFQUFFO0FBUkwsQ0FBYjtBQVdBQyxRQUFRLENBQUMsb0JBQUQsRUFBdUIsWUFBWTtBQUN6QyxPQUFLQyxPQUFMLENBQWFDLG9CQUFiO0FBRUEsTUFBSUMsTUFBSjtBQUNBLE1BQUlDLE1BQUo7QUFDQUMsRUFBQUEsTUFBTSxDQUFDLGtCQUFrQjtBQUN2QixRQUFJYixPQUFPLENBQUNDLEdBQVIsQ0FBWWEsRUFBaEIsRUFBb0I7QUFFbEIsYUFBTyxLQUFLQyxJQUFMLEVBQVA7QUFDRDs7QUFDREosSUFBQUEsTUFBTSxHQUFHLE1BQU0sbUJBQVlLLFdBQVosRUFBa0JDLFdBQWxCLENBQWY7QUFDRCxHQU5LLENBQU47QUFPQUMsRUFBQUEsS0FBSyxDQUFDLGtCQUFrQjtBQUN0QixRQUFJUCxNQUFKLEVBQVk7QUFDVixZQUFNQSxNQUFNLENBQUNRLEtBQVAsRUFBTjtBQUNBUixNQUFBQSxNQUFNLEdBQUcsSUFBVDtBQUNEO0FBQ0YsR0FMSSxDQUFMO0FBTUFTLEVBQUFBLFVBQVUsQ0FBQyxrQkFBa0I7QUFDM0JSLElBQUFBLE1BQU0sR0FBRyxNQUFNLHlCQUFPO0FBQ3BCUyxNQUFBQSxRQUFRLEVBQUVKLFdBRFU7QUFFcEJLLE1BQUFBLElBQUksRUFBRU4sV0FGYztBQUdwQk8sTUFBQUEsWUFBWSxFQUFFckI7QUFITSxLQUFQLENBQWY7QUFLRCxHQU5TLENBQVY7QUFPQXNCLEVBQUFBLFNBQVMsQ0FBQyxrQkFBa0I7QUFDMUIsUUFBSVosTUFBSixFQUFZO0FBQ1YsWUFBTUEsTUFBTSxDQUFDYSxhQUFQLEVBQU47QUFDQWIsTUFBQUEsTUFBTSxHQUFHLElBQVQ7QUFDRDtBQUNGLEdBTFEsQ0FBVDtBQU9BYyxFQUFBQSxFQUFFLENBQUMsaUNBQUQsRUFBb0Msa0JBQWtCO0FBQ3RELFVBQU1kLE1BQU0sQ0FBQ2UsR0FBUCxDQUFXLG9CQUFYLENBQU47QUFDQSxVQUFNQyxNQUFNLEdBQUcsTUFBTWhCLE1BQU0sQ0FBQ2lCLENBQVAsQ0FBUyxlQUFULENBQXJCO0FBQ0EsVUFBTUQsTUFBTSxDQUFDRSxPQUFQLEdBQWlCbEMsTUFBakIsQ0FBd0JtQyxVQUF4QixDQUFtQ0MsR0FBbkMsQ0FBdUMsaUJBQXZDLENBQU47QUFDRCxHQUpDLENBQUY7QUFLRCxDQXJDTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVtb3RlIH0gZnJvbSAnd2ViZHJpdmVyaW8nO1xuaW1wb3J0IHsgc3RhcnRTZXJ2ZXIgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgY2hhaUFzUHJvbWlzZWQgZnJvbSAnY2hhaS1hcy1wcm9taXNlZCc7XG5pbXBvcnQgY2hhaSBmcm9tICdjaGFpJztcbmltcG9ydCB7IEhPU1QsIFBPUlQsIE1PQ0hBX1RJTUVPVVQgfSBmcm9tICcuLi91dGlscyc7XG5cbmNoYWkuc2hvdWxkKCk7XG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5cbmNvbnN0IERFVklDRV9OQU1FID0gcHJvY2Vzcy5lbnYuREVWSUNFX05BTUUgfHwgJ2VtdWxhdG9yLTU1NTQnO1xuLy8gVGhlIEZpcmVmb3ggYmluYXJ5IGNvdWxkIGJlIHJldHJpZXZlZCBmcm9tIGh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2VuLUdCL2ZpcmVmb3gvYWxsLyNwcm9kdWN0LWFuZHJvaWQtcmVsZWFzZVxuY29uc3QgQ0FQUyA9IHtcbiAgcGxhdGZvcm1OYW1lOiAnbGludXgnLFxuICAvLyBwbGF0Zm9ybU5hbWU6ICdtYWMnLFxuICB2ZXJib3NpdHk6ICd0cmFjZScsXG4gICdtb3o6ZmlyZWZveE9wdGlvbnMnOiB7XG4gICAgYW5kcm9pZERldmljZVNlcmlhbDogREVWSUNFX05BTUUsXG4gICAgYW5kcm9pZFBhY2thZ2U6ICdvcmcubW96aWxsYS5maXJlZm94JyxcbiAgfSxcbiAgYW5kcm9pZFN0b3JhZ2U6ICdpbnRlcm5hbCcsXG59O1xuXG5kZXNjcmliZSgnTW9iaWxlIEdlY2tvRHJpdmVyJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnRpbWVvdXQoTU9DSEFfVElNRU9VVCk7XG5cbiAgbGV0IHNlcnZlcjtcbiAgbGV0IGRyaXZlcjtcbiAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuQ0kpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgYSB3YXkgdG8gcnVuIHRoaXMgb24gQXp1cmVcbiAgICAgIHJldHVybiB0aGlzLnNraXAoKTtcbiAgICB9XG4gICAgc2VydmVyID0gYXdhaXQgc3RhcnRTZXJ2ZXIoUE9SVCwgSE9TVCk7XG4gIH0pO1xuICBhZnRlcihhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHNlcnZlcikge1xuICAgICAgYXdhaXQgc2VydmVyLmNsb3NlKCk7XG4gICAgICBzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG4gIGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGRyaXZlciA9IGF3YWl0IHJlbW90ZSh7XG4gICAgICBob3N0bmFtZTogSE9TVCxcbiAgICAgIHBvcnQ6IFBPUlQsXG4gICAgICBjYXBhYmlsaXRpZXM6IENBUFMsXG4gICAgfSk7XG4gIH0pO1xuICBhZnRlckVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChkcml2ZXIpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5kZWxldGVTZXNzaW9uKCk7XG4gICAgICBkcml2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzdGFydCBhbmQgc3RvcCBhIHNlc3Npb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgZHJpdmVyLnVybCgnaHR0cHM6Ly9hcHBpdW0uaW8vJyk7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgZHJpdmVyLiQoJyNkb3dubG9hZExpbmsnKTtcbiAgICBhd2FpdCBidXR0b24uZ2V0VGV4dCgpLnNob3VsZC5ldmVudHVhbGx5LmVxbCgnRG93bmxvYWQgQXBwaXVtJyk7XG4gIH0pO1xufSk7XG5cblxuIl0sImZpbGUiOiJ0ZXN0L2Z1bmN0aW9uYWwvbW9iaWxlLWRyaXZlci1lMmUtc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
69
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC9mdW5jdGlvbmFsL21vYmlsZS1kcml2ZXItZTJlLXNwZWNzLmpzIiwibmFtZXMiOlsiY2hhaSIsInNob3VsZCIsInVzZSIsImNoYWlBc1Byb21pc2VkIiwiREVWSUNFX05BTUUiLCJwcm9jZXNzIiwiZW52IiwiQ0FQUyIsInBsYXRmb3JtTmFtZSIsInZlcmJvc2l0eSIsImFuZHJvaWREZXZpY2VTZXJpYWwiLCJhbmRyb2lkUGFja2FnZSIsImFuZHJvaWRTdG9yYWdlIiwiZGVzY3JpYmUiLCJ0aW1lb3V0IiwiTU9DSEFfVElNRU9VVCIsInNlcnZlciIsImRyaXZlciIsImJlZm9yZSIsIkNJIiwic2tpcCIsIlBPUlQiLCJIT1NUIiwiYWZ0ZXIiLCJjbG9zZSIsImJlZm9yZUVhY2giLCJob3N0bmFtZSIsInBvcnQiLCJjYXBhYmlsaXRpZXMiLCJhZnRlckVhY2giLCJkZWxldGVTZXNzaW9uIiwiaXQiLCJ1cmwiLCJidXR0b24iLCIkIiwiZ2V0VGV4dCIsImV2ZW50dWFsbHkiLCJlcWwiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJ0ZXN0L2Z1bmN0aW9uYWwvbW9iaWxlLWRyaXZlci1lMmUtc3BlY3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVtb3RlIH0gZnJvbSAnd2ViZHJpdmVyaW8nO1xuaW1wb3J0IHsgc3RhcnRTZXJ2ZXIgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgY2hhaUFzUHJvbWlzZWQgZnJvbSAnY2hhaS1hcy1wcm9taXNlZCc7XG5pbXBvcnQgY2hhaSBmcm9tICdjaGFpJztcbmltcG9ydCB7IEhPU1QsIFBPUlQsIE1PQ0hBX1RJTUVPVVQgfSBmcm9tICcuLi91dGlscyc7XG5cbmNoYWkuc2hvdWxkKCk7XG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5cbmNvbnN0IERFVklDRV9OQU1FID0gcHJvY2Vzcy5lbnYuREVWSUNFX05BTUUgfHwgJ2VtdWxhdG9yLTU1NTQnO1xuLy8gVGhlIEZpcmVmb3ggYmluYXJ5IGNvdWxkIGJlIHJldHJpZXZlZCBmcm9tIGh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2VuLUdCL2ZpcmVmb3gvYWxsLyNwcm9kdWN0LWFuZHJvaWQtcmVsZWFzZVxuY29uc3QgQ0FQUyA9IHtcbiAgcGxhdGZvcm1OYW1lOiAnbGludXgnLFxuICAvLyBwbGF0Zm9ybU5hbWU6ICdtYWMnLFxuICB2ZXJib3NpdHk6ICd0cmFjZScsXG4gICdtb3o6ZmlyZWZveE9wdGlvbnMnOiB7XG4gICAgYW5kcm9pZERldmljZVNlcmlhbDogREVWSUNFX05BTUUsXG4gICAgYW5kcm9pZFBhY2thZ2U6ICdvcmcubW96aWxsYS5maXJlZm94JyxcbiAgfSxcbiAgYW5kcm9pZFN0b3JhZ2U6ICdpbnRlcm5hbCcsXG59O1xuXG5kZXNjcmliZSgnTW9iaWxlIEdlY2tvRHJpdmVyJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnRpbWVvdXQoTU9DSEFfVElNRU9VVCk7XG5cbiAgbGV0IHNlcnZlcjtcbiAgbGV0IGRyaXZlcjtcbiAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuQ0kpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgYSB3YXkgdG8gcnVuIHRoaXMgb24gQXp1cmVcbiAgICAgIHJldHVybiB0aGlzLnNraXAoKTtcbiAgICB9XG4gICAgc2VydmVyID0gYXdhaXQgc3RhcnRTZXJ2ZXIoUE9SVCwgSE9TVCk7XG4gIH0pO1xuICBhZnRlcihhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHNlcnZlcikge1xuICAgICAgYXdhaXQgc2VydmVyLmNsb3NlKCk7XG4gICAgICBzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG4gIGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGRyaXZlciA9IGF3YWl0IHJlbW90ZSh7XG4gICAgICBob3N0bmFtZTogSE9TVCxcbiAgICAgIHBvcnQ6IFBPUlQsXG4gICAgICBjYXBhYmlsaXRpZXM6IENBUFMsXG4gICAgfSk7XG4gIH0pO1xuICBhZnRlckVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChkcml2ZXIpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5kZWxldGVTZXNzaW9uKCk7XG4gICAgICBkcml2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzdGFydCBhbmQgc3RvcCBhIHNlc3Npb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgZHJpdmVyLnVybCgnaHR0cHM6Ly9hcHBpdW0uaW8vJyk7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgZHJpdmVyLiQoJyNkb3dubG9hZExpbmsnKTtcbiAgICBhd2FpdCBidXR0b24uZ2V0VGV4dCgpLnNob3VsZC5ldmVudHVhbGx5LmVxbCgnRG93bmxvYWQgQXBwaXVtJyk7XG4gIH0pO1xufSk7XG5cblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQUEsY0FBS0MsTUFBTDs7QUFDQUQsY0FBS0UsR0FBTCxDQUFTQyx1QkFBVDs7QUFFQSxNQUFNQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZRixXQUFaLElBQTJCLGVBQS9DO0FBRUEsTUFBTUcsSUFBSSxHQUFHO0VBQ1hDLFlBQVksRUFBRSxPQURIO0VBR1hDLFNBQVMsRUFBRSxPQUhBO0VBSVgsc0JBQXNCO0lBQ3BCQyxtQkFBbUIsRUFBRU4sV0FERDtJQUVwQk8sY0FBYyxFQUFFO0VBRkksQ0FKWDtFQVFYQyxjQUFjLEVBQUU7QUFSTCxDQUFiO0FBV0FDLFFBQVEsQ0FBQyxvQkFBRCxFQUF1QixZQUFZO0VBQ3pDLEtBQUtDLE9BQUwsQ0FBYUMsb0JBQWI7RUFFQSxJQUFJQyxNQUFKO0VBQ0EsSUFBSUMsTUFBSjtFQUNBQyxNQUFNLENBQUMsa0JBQWtCO0lBQ3ZCLElBQUliLE9BQU8sQ0FBQ0MsR0FBUixDQUFZYSxFQUFoQixFQUFvQjtNQUVsQixPQUFPLEtBQUtDLElBQUwsRUFBUDtJQUNEOztJQUNESixNQUFNLEdBQUcsTUFBTSxtQkFBWUssV0FBWixFQUFrQkMsV0FBbEIsQ0FBZjtFQUNELENBTkssQ0FBTjtFQU9BQyxLQUFLLENBQUMsa0JBQWtCO0lBQ3RCLElBQUlQLE1BQUosRUFBWTtNQUNWLE1BQU1BLE1BQU0sQ0FBQ1EsS0FBUCxFQUFOO01BQ0FSLE1BQU0sR0FBRyxJQUFUO0lBQ0Q7RUFDRixDQUxJLENBQUw7RUFNQVMsVUFBVSxDQUFDLGtCQUFrQjtJQUMzQlIsTUFBTSxHQUFHLE1BQU0seUJBQU87TUFDcEJTLFFBQVEsRUFBRUosV0FEVTtNQUVwQkssSUFBSSxFQUFFTixXQUZjO01BR3BCTyxZQUFZLEVBQUVyQjtJQUhNLENBQVAsQ0FBZjtFQUtELENBTlMsQ0FBVjtFQU9Bc0IsU0FBUyxDQUFDLGtCQUFrQjtJQUMxQixJQUFJWixNQUFKLEVBQVk7TUFDVixNQUFNQSxNQUFNLENBQUNhLGFBQVAsRUFBTjtNQUNBYixNQUFNLEdBQUcsSUFBVDtJQUNEO0VBQ0YsQ0FMUSxDQUFUO0VBT0FjLEVBQUUsQ0FBQyxpQ0FBRCxFQUFvQyxrQkFBa0I7SUFDdEQsTUFBTWQsTUFBTSxDQUFDZSxHQUFQLENBQVcsb0JBQVgsQ0FBTjtJQUNBLE1BQU1DLE1BQU0sR0FBRyxNQUFNaEIsTUFBTSxDQUFDaUIsQ0FBUCxDQUFTLGVBQVQsQ0FBckI7SUFDQSxNQUFNRCxNQUFNLENBQUNFLE9BQVAsR0FBaUJsQyxNQUFqQixDQUF3Qm1DLFVBQXhCLENBQW1DQyxHQUFuQyxDQUF1QyxpQkFBdkMsQ0FBTjtFQUNELENBSkMsQ0FBRjtBQUtELENBckNPLENBQVIifQ==
@@ -17,4 +17,4 @@ describe('GeckoDriver', function () {
17
17
  });require('source-map-support').install();
18
18
 
19
19
 
20
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvdW5pdC9kcml2ZXItc3BlY3MuanMiXSwibmFtZXMiOlsic2hvdWxkIiwiY2hhaSIsImRlc2NyaWJlIiwiaXQiLCJleGlzdCIsIkdlY2tvRHJpdmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQSxNQUFNQSxNQUFNLEdBQUdDLGNBQUtELE1BQUwsRUFBZjs7QUFFQUUsUUFBUSxDQUFDLGFBQUQsRUFBZ0IsWUFBWTtBQUNsQ0MsRUFBQUEsRUFBRSxDQUFDLGNBQUQsRUFBaUIsWUFBWTtBQUM3QkgsSUFBQUEsTUFBTSxDQUFDSSxLQUFQLENBQWFDLFNBQWI7QUFDRCxHQUZDLENBQUY7QUFHRCxDQUpPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR2Vja29Ecml2ZXIgZnJvbSAnLi4vLi4nO1xuaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5jb25zdCBzaG91bGQgPSBjaGFpLnNob3VsZCgpO1xuXG5kZXNjcmliZSgnR2Vja29Ecml2ZXInLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdzaG91bGQgZXhpc3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgc2hvdWxkLmV4aXN0KEdlY2tvRHJpdmVyKTtcbiAgfSk7XG59KTtcbiJdLCJmaWxlIjoidGVzdC91bml0L2RyaXZlci1zcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC91bml0L2RyaXZlci1zcGVjcy5qcyIsIm5hbWVzIjpbInNob3VsZCIsImNoYWkiLCJkZXNjcmliZSIsIml0IiwiZXhpc3QiLCJHZWNrb0RyaXZlciJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbInRlc3QvdW5pdC9kcml2ZXItc3BlY3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdlY2tvRHJpdmVyIGZyb20gJy4uLy4uJztcbmltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuY29uc3Qgc2hvdWxkID0gY2hhaS5zaG91bGQoKTtcblxuZGVzY3JpYmUoJ0dlY2tvRHJpdmVyJywgZnVuY3Rpb24gKCkge1xuICBpdCgnc2hvdWxkIGV4aXN0JywgZnVuY3Rpb24gKCkge1xuICAgIHNob3VsZC5leGlzdChHZWNrb0RyaXZlcik7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBLE1BQU1BLE1BQU0sR0FBR0MsY0FBS0QsTUFBTCxFQUFmOztBQUVBRSxRQUFRLENBQUMsYUFBRCxFQUFnQixZQUFZO0VBQ2xDQyxFQUFFLENBQUMsY0FBRCxFQUFpQixZQUFZO0lBQzdCSCxNQUFNLENBQUNJLEtBQVAsQ0FBYUMsU0FBYjtFQUNELENBRkMsQ0FBRjtBQUdELENBSk8sQ0FBUiJ9
@@ -43,4 +43,4 @@ describe('formatCapsForServer', function () {
43
43
  });require('source-map-support').install();
44
44
 
45
45
 
46
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvdW5pdC91dGlscy1zcGVjcy5qcyJdLCJuYW1lcyI6WyJjaGFpIiwic2hvdWxkIiwiZGVzY3JpYmUiLCJpdCIsInJlc3VsdCIsImVxbCIsImJyb3dzZXJOYW1lIiwiYnJvd3NlclZlcnNpb24iLCJwbGF0Zm9ybU5hbWUiLCJiYXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUVBQSxjQUFLQyxNQUFMOztBQUVBQyxRQUFRLENBQUMscUJBQUQsRUFBd0IsWUFBWTtBQUMxQ0MsRUFBQUEsRUFBRSxDQUFDLDBCQUFELEVBQTZCLFlBQVk7QUFDekMsVUFBTUMsTUFBTSxHQUFHLGdDQUFvQixFQUFwQixDQUFmO0FBQ0FBLElBQUFBLE1BQU0sQ0FBQ0gsTUFBUCxDQUFjSSxHQUFkLENBQWtCLEVBQWxCO0FBQ0QsR0FIQyxDQUFGO0FBS0FGLEVBQUFBLEVBQUUsQ0FBQyw0QkFBRCxFQUErQixZQUFZO0FBQzNDLFVBQU1DLE1BQU0sR0FBRyxnQ0FBb0I7QUFDakNFLE1BQUFBLFdBQVcsRUFBRSxNQURvQjtBQUVqQ0MsTUFBQUEsY0FBYyxFQUFFLElBRmlCO0FBR2pDQyxNQUFBQSxZQUFZLEVBQUU7QUFIbUIsS0FBcEIsQ0FBZjtBQUtBSixJQUFBQSxNQUFNLENBQUNILE1BQVAsQ0FBY0ksR0FBZCxDQUFrQjtBQUNoQkMsTUFBQUEsV0FBVyxFQUFFLFNBREc7QUFFaEJDLE1BQUFBLGNBQWMsRUFBRSxJQUZBO0FBR2hCQyxNQUFBQSxZQUFZLEVBQUU7QUFIRSxLQUFsQjtBQUtELEdBWEMsQ0FBRjtBQWFBTCxFQUFBQSxFQUFFLENBQUMsK0NBQUQsRUFBa0QsWUFBWTtBQUM5RCxVQUFNQyxNQUFNLEdBQUcsZ0NBQW9CO0FBQ2pDRyxNQUFBQSxjQUFjLEVBQUUsSUFEaUI7QUFFakNFLE1BQUFBLEdBQUcsRUFBRSxJQUY0QjtBQUdqQyxpQkFBVyxNQUhzQjtBQUlqQyxxQkFBZSxLQUprQjtBQUtqQyxvQkFBYztBQUxtQixLQUFwQixDQUFmO0FBT0FMLElBQUFBLE1BQU0sQ0FBQ0gsTUFBUCxDQUFjSSxHQUFkLENBQWtCO0FBQ2hCRSxNQUFBQSxjQUFjLEVBQUUsSUFEQTtBQUVoQixpQkFBVztBQUZLLEtBQWxCO0FBSUQsR0FaQyxDQUFGO0FBYUQsQ0FoQ08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5cbmNoYWkuc2hvdWxkKCk7XG5cbmRlc2NyaWJlKCdmb3JtYXRDYXBzRm9yU2VydmVyJywgZnVuY3Rpb24gKCkge1xuICBpdCgnc2hvdWxkIGZvcm1hdCBlbXB0eSBjYXBzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdENhcHNGb3JTZXJ2ZXIoe30pO1xuICAgIHJlc3VsdC5zaG91bGQuZXFsKHt9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBhc3NpZ24gZGVmYXVsdCBjYXBzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdENhcHNGb3JTZXJ2ZXIoe1xuICAgICAgYnJvd3Nlck5hbWU6ICd5b2xvJyxcbiAgICAgIGJyb3dzZXJWZXJzaW9uOiAnNTInLFxuICAgICAgcGxhdGZvcm1OYW1lOiAnTWFjJyxcbiAgICB9KTtcbiAgICByZXN1bHQuc2hvdWxkLmVxbCh7XG4gICAgICBicm93c2VyTmFtZTogJ2ZpcmVmb3gnLFxuICAgICAgYnJvd3NlclZlcnNpb246ICc1MicsXG4gICAgICBwbGF0Zm9ybU5hbWU6ICdtYWMnLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIG9ubHkgcGFzcyBjYXBzIHdpdGggc3VwcG9ydGVkIHByZWZpeGVzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdENhcHNGb3JTZXJ2ZXIoe1xuICAgICAgYnJvd3NlclZlcnNpb246ICc1MicsXG4gICAgICBiYXI6ICc2NycsXG4gICAgICAnbW96OmZvbyc6ICcxMjM0JyxcbiAgICAgICd3ZWJraXQ6eW9sbyc6ICc1NjcnLFxuICAgICAgJ2FwcGl1bTpiYXInOiAnNzg5JyxcbiAgICB9KTtcbiAgICByZXN1bHQuc2hvdWxkLmVxbCh7XG4gICAgICBicm93c2VyVmVyc2lvbjogJzUyJyxcbiAgICAgICdtb3o6Zm9vJzogJzEyMzQnLFxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sImZpbGUiOiJ0ZXN0L3VuaXQvdXRpbHMtc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
46
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC91bml0L3V0aWxzLXNwZWNzLmpzIiwibmFtZXMiOlsiY2hhaSIsInNob3VsZCIsImRlc2NyaWJlIiwiaXQiLCJyZXN1bHQiLCJlcWwiLCJicm93c2VyTmFtZSIsImJyb3dzZXJWZXJzaW9uIiwicGxhdGZvcm1OYW1lIiwiYmFyIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsidGVzdC91bml0L3V0aWxzLXNwZWNzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5cbmNoYWkuc2hvdWxkKCk7XG5cbmRlc2NyaWJlKCdmb3JtYXRDYXBzRm9yU2VydmVyJywgZnVuY3Rpb24gKCkge1xuICBpdCgnc2hvdWxkIGZvcm1hdCBlbXB0eSBjYXBzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdENhcHNGb3JTZXJ2ZXIoe30pO1xuICAgIHJlc3VsdC5zaG91bGQuZXFsKHt9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBhc3NpZ24gZGVmYXVsdCBjYXBzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdENhcHNGb3JTZXJ2ZXIoe1xuICAgICAgYnJvd3Nlck5hbWU6ICd5b2xvJyxcbiAgICAgIGJyb3dzZXJWZXJzaW9uOiAnNTInLFxuICAgICAgcGxhdGZvcm1OYW1lOiAnTWFjJyxcbiAgICB9KTtcbiAgICByZXN1bHQuc2hvdWxkLmVxbCh7XG4gICAgICBicm93c2VyTmFtZTogJ2ZpcmVmb3gnLFxuICAgICAgYnJvd3NlclZlcnNpb246ICc1MicsXG4gICAgICBwbGF0Zm9ybU5hbWU6ICdtYWMnLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIG9ubHkgcGFzcyBjYXBzIHdpdGggc3VwcG9ydGVkIHByZWZpeGVzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdENhcHNGb3JTZXJ2ZXIoe1xuICAgICAgYnJvd3NlclZlcnNpb246ICc1MicsXG4gICAgICBiYXI6ICc2NycsXG4gICAgICAnbW96OmZvbyc6ICcxMjM0JyxcbiAgICAgICd3ZWJraXQ6eW9sbyc6ICc1NjcnLFxuICAgICAgJ2FwcGl1bTpiYXInOiAnNzg5JyxcbiAgICB9KTtcbiAgICByZXN1bHQuc2hvdWxkLmVxbCh7XG4gICAgICBicm93c2VyVmVyc2lvbjogJzUyJyxcbiAgICAgICdtb3o6Zm9vJzogJzEyMzQnLFxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFFQUEsY0FBS0MsTUFBTDs7QUFFQUMsUUFBUSxDQUFDLHFCQUFELEVBQXdCLFlBQVk7RUFDMUNDLEVBQUUsQ0FBQywwQkFBRCxFQUE2QixZQUFZO0lBQ3pDLE1BQU1DLE1BQU0sR0FBRyxnQ0FBb0IsRUFBcEIsQ0FBZjtJQUNBQSxNQUFNLENBQUNILE1BQVAsQ0FBY0ksR0FBZCxDQUFrQixFQUFsQjtFQUNELENBSEMsQ0FBRjtFQUtBRixFQUFFLENBQUMsNEJBQUQsRUFBK0IsWUFBWTtJQUMzQyxNQUFNQyxNQUFNLEdBQUcsZ0NBQW9CO01BQ2pDRSxXQUFXLEVBQUUsTUFEb0I7TUFFakNDLGNBQWMsRUFBRSxJQUZpQjtNQUdqQ0MsWUFBWSxFQUFFO0lBSG1CLENBQXBCLENBQWY7SUFLQUosTUFBTSxDQUFDSCxNQUFQLENBQWNJLEdBQWQsQ0FBa0I7TUFDaEJDLFdBQVcsRUFBRSxTQURHO01BRWhCQyxjQUFjLEVBQUUsSUFGQTtNQUdoQkMsWUFBWSxFQUFFO0lBSEUsQ0FBbEI7RUFLRCxDQVhDLENBQUY7RUFhQUwsRUFBRSxDQUFDLCtDQUFELEVBQWtELFlBQVk7SUFDOUQsTUFBTUMsTUFBTSxHQUFHLGdDQUFvQjtNQUNqQ0csY0FBYyxFQUFFLElBRGlCO01BRWpDRSxHQUFHLEVBQUUsSUFGNEI7TUFHakMsV0FBVyxNQUhzQjtNQUlqQyxlQUFlLEtBSmtCO01BS2pDLGNBQWM7SUFMbUIsQ0FBcEIsQ0FBZjtJQU9BTCxNQUFNLENBQUNILE1BQVAsQ0FBY0ksR0FBZCxDQUFrQjtNQUNoQkUsY0FBYyxFQUFFLElBREE7TUFFaEIsV0FBVztJQUZLLENBQWxCO0VBSUQsQ0FaQyxDQUFGO0FBYUQsQ0FoQ08sQ0FBUiJ9
@@ -15,4 +15,4 @@ const MOCHA_TIMEOUT = 240000;
15
15
  exports.MOCHA_TIMEOUT = MOCHA_TIMEOUT;require('source-map-support').install();
16
16
 
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvdXRpbHMuanMiXSwibmFtZXMiOlsiSE9TVCIsIlBPUlQiLCJNT0NIQV9USU1FT1VUIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxNQUFNQSxJQUFJLEdBQUcsV0FBYjs7QUFDQSxNQUFNQyxJQUFJLEdBQUcsSUFBYjs7QUFDQSxNQUFNQyxhQUFhLEdBQUcsTUFBdEIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBIT1NUID0gJzEyNy4wLjAuMSc7XG5jb25zdCBQT1JUID0gNDU2NztcbmNvbnN0IE1PQ0hBX1RJTUVPVVQgPSAyNDAwMDA7XG5cbmV4cG9ydCB7IEhPU1QsIFBPUlQsIE1PQ0hBX1RJTUVPVVQgfTtcbiJdLCJmaWxlIjoidGVzdC91dGlscy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
18
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC91dGlscy5qcyIsIm5hbWVzIjpbIkhPU1QiLCJQT1JUIiwiTU9DSEFfVElNRU9VVCJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbInRlc3QvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSE9TVCA9ICcxMjcuMC4wLjEnO1xuY29uc3QgUE9SVCA9IDQ1Njc7XG5jb25zdCBNT0NIQV9USU1FT1VUID0gMjQwMDAwO1xuXG5leHBvcnQgeyBIT1NULCBQT1JULCBNT0NIQV9USU1FT1VUIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE1BQU1BLElBQUksR0FBRyxXQUFiOztBQUNBLE1BQU1DLElBQUksR0FBRyxJQUFiOztBQUNBLE1BQU1DLGFBQWEsR0FBRyxNQUF0QiJ9
package/lib/driver.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import _ from 'lodash';
2
2
  import { BaseDriver } from '@appium/base-driver';
3
- import log from './logger';
4
3
  import GeckoDriverServer from './gecko';
5
4
  import { desiredCapConstraints } from './desired-caps';
6
5
  import commands from './commands/index';
@@ -54,7 +53,7 @@ class GeckoDriver extends BaseDriver {
54
53
 
55
54
  async createSession (...args) {
56
55
  const [sessionId, caps] = await super.createSession(...args);
57
- this.gecko = new GeckoDriverServer(caps);
56
+ this.gecko = new GeckoDriverServer(this.log, caps);
58
57
  try {
59
58
  await this.gecko.start(formatCapsForServer(caps));
60
59
  } catch (e) {
@@ -67,7 +66,7 @@ class GeckoDriver extends BaseDriver {
67
66
  }
68
67
 
69
68
  async deleteSession () {
70
- log.info('Ending Gecko Driver session');
69
+ this.log.info('Ending Gecko Driver session');
71
70
  await this.gecko.stop();
72
71
  this.resetState();
73
72
 
package/lib/gecko.js CHANGED
@@ -2,15 +2,13 @@ import _ from 'lodash';
2
2
  import os from 'os';
3
3
  import path from 'path';
4
4
  import { JWProxy, errors } from '@appium/base-driver';
5
- import { fs, logger, util, system } from '@appium/support';
5
+ import { fs, util, system } from '@appium/support';
6
6
  import { SubProcess } from 'teen_process';
7
7
  import { waitForCondition } from 'asyncbox';
8
8
  import { findAPortNotInUse } from 'portscanner';
9
9
  import { execSync } from 'child_process';
10
10
  import { VERBOSITY } from './constants';
11
11
 
12
- const log = logger.getLogger('GeckoDriverServer');
13
-
14
12
  const GD_BINARY = `geckodriver${system.isWindows() ? '.exe' : ''}`;
15
13
  const STARTUP_TIMEOUT_MS = 10000; // 10 seconds
16
14
  const GECKO_PORT_RANGE = [5200, 5300];
@@ -40,10 +38,11 @@ class GeckoProxy extends JWProxy {
40
38
  }
41
39
 
42
40
  class GeckoDriverProcess {
43
- constructor (opts = {}) {
41
+ constructor (log, opts = {}) {
44
42
  for (const [optName, propName] of _.toPairs(PROCESS_SPECIFIC_OPTION_NAMES_MAP)) {
45
43
  this[propName] = opts[optName];
46
44
  }
45
+ this.log = log;
47
46
  this.proc = null;
48
47
  }
49
48
 
@@ -91,8 +90,8 @@ class GeckoDriverProcess {
91
90
  args.push('--connect-existing');
92
91
  // https://firefox-source-docs.mozilla.org/testing/geckodriver/Flags.html#code-connect-existing-code
93
92
  if (_.isNil(this.marionettePort)) {
94
- log.info(`'marionettePort' capability value is not provided while 'noReset' is enabled`);
95
- log.info(`Assigning 'marionettePort' to the default value (${DEFAULT_MARIONETTE_PORT})`);
93
+ this.log.info(`'marionettePort' capability value is not provided while 'noReset' is enabled`);
94
+ this.log.info(`Assigning 'marionettePort' to the default value (${DEFAULT_MARIONETTE_PORT})`);
96
95
  }
97
96
  args.push('--marionette-port', this.marionettePort ?? DEFAULT_MARIONETTE_PORT);
98
97
  } else if (!_.isNil(this.marionettePort)) {
@@ -108,13 +107,13 @@ class GeckoDriverProcess {
108
107
  this.proc.on('output', (stdout, stderr) => {
109
108
  const line = _.trim(stdout || stderr);
110
109
  if (line) {
111
- log.debug(`[${GD_BINARY}] ${line}`);
110
+ this.log.debug(`[${GD_BINARY}] ${line}`);
112
111
  }
113
112
  });
114
113
  this.proc.on('exit', (code, signal) => {
115
- log.info(`${GD_BINARY} has exited with code ${code}, signal ${signal}`);
114
+ this.log.info(`${GD_BINARY} has exited with code ${code}, signal ${signal}`);
116
115
  });
117
- log.info(`Starting '${driverBin}' with args ${JSON.stringify(args)}`);
116
+ this.log.info(`Starting '${driverBin}' with args ${JSON.stringify(args)}`);
118
117
  await this.proc.start(0);
119
118
  }
120
119
 
@@ -135,17 +134,22 @@ class GeckoDriverProcess {
135
134
 
136
135
  const RUNNING_PROCESS_IDS = [];
137
136
  process.once('exit', () => {
138
- for (const pid of RUNNING_PROCESS_IDS) {
139
- const command = system.isWindows() ? `taskkill.exe /PID ${pid}` : `kill ${pid}`;
140
- try {
141
- execSync(command);
142
- } catch (ign) {}
137
+ if (_.isEmpty(RUNNING_PROCESS_IDS)) {
138
+ return;
143
139
  }
140
+
141
+ const command = system.isWindows()
142
+ ? ('taskkill.exe ' + RUNNING_PROCESS_IDS.map((pid) => `/PID ${pid}`).join(' '))
143
+ : `kill ${RUNNING_PROCESS_IDS.join(' ')}`;
144
+ try {
145
+ execSync(command);
146
+ } catch (ign) {}
144
147
  });
145
148
 
146
149
  class GeckoDriverServer {
147
- constructor (caps) {
148
- this.process = new GeckoDriverProcess(caps);
150
+ constructor (log, caps) {
151
+ this.process = new GeckoDriverProcess(log, caps);
152
+ this.log = log;
149
153
  this.proxy = null;
150
154
  }
151
155
 
@@ -159,6 +163,7 @@ class GeckoDriverServer {
159
163
  this.proxy = new GeckoProxy({
160
164
  server: '127.0.0.1',
161
165
  port: this.process.port,
166
+ log: this.log,
162
167
  base: '',
163
168
  keepAlive: true,
164
169
  });
@@ -207,7 +212,7 @@ class GeckoDriverServer {
207
212
 
208
213
  async stop () {
209
214
  if (!this.isRunning) {
210
- log.info(`Gecko Driver session cannot be stopped, because the server is not running`);
215
+ this.log.info(`Gecko Driver session cannot be stopped, because the server is not running`);
211
216
  return;
212
217
  }
213
218
 
@@ -215,14 +220,14 @@ class GeckoDriverServer {
215
220
  try {
216
221
  await this.proxy.command(`/session/${this.proxy.sessionId}`, 'DELETE');
217
222
  } catch (e) {
218
- log.info(`Gecko Driver session cannot be deleted. Original error: ${e.message}`);
223
+ this.log.info(`Gecko Driver session cannot be deleted. Original error: ${e.message}`);
219
224
  }
220
225
  }
221
226
 
222
227
  try {
223
228
  await this.process.stop();
224
229
  } catch (e) {
225
- log.warn(`Gecko Driver process cannot be stopped (${e.message}). Killing it forcefully`);
230
+ this.log.warn(`Gecko Driver process cannot be stopped (${e.message}). Killing it forcefully`);
226
231
  await this.process.kill();
227
232
  }
228
233
  }