appium-espresso-driver 2.4.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/build/index.js +10 -38
- package/build/lib/commands/execute.js +3 -3
- package/build/lib/commands/general.js +9 -9
- package/build/lib/driver.js +7 -7
- package/build/lib/espresso-runner.js +5 -5
- package/build/lib/logger.js +2 -2
- package/build/lib/server-builder.js +3 -3
- package/build/lib/utils.js +2 -2
- package/espresso-server/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk +0 -0
- package/espresso-server/app/build.gradle.kts +12 -2
- package/index.js +2 -26
- package/lib/commands/execute.js +1 -1
- package/lib/commands/general.js +2 -2
- package/lib/driver.js +2 -2
- package/lib/espresso-runner.js +2 -2
- package/lib/logger.js +1 -1
- package/lib/server-builder.js +3 -2
- package/lib/utils.js +1 -1
- package/npm-shrinkwrap.json +3344 -1905
- package/package.json +5 -4
- package/build/lib/server.js +0 -39
- package/lib/server.js +0 -18
package/README.md
CHANGED
|
@@ -229,6 +229,7 @@ composeVersion | The version for the Jetpack Compose dependencies to use for Esp
|
|
|
229
229
|
sourceCompatibility | The minimum version of JVM the project sources are compatible with. The default value is `VERSION_1_8` | VERSION_12
|
|
230
230
|
targetCompatibility | The target version of JVM the project sources are compatible with. The default value is `VERSION_1_8` | VERSION_12
|
|
231
231
|
jvmTarget | Target version of the generated JVM bytecode as a string. The default value is `1_8` | `1_10`
|
|
232
|
+
annotationVersion | The target version of `androidx.annotation:annotation` pakage. By default the version from the app [build.gradle.kts](https://github.com/appium/appium-espresso-driver/blob/master/espresso-server/app/build.gradle.kts) is used | '1.2.0'
|
|
232
233
|
|
|
233
234
|
### additionalAppDependencies
|
|
234
235
|
|
package/build/index.js
CHANGED
|
@@ -3,48 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
6
|
+
Object.defineProperty(exports, "EspressoDriver", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _driver.EspressoDriver;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
exports.default = void 0;
|
|
7
13
|
|
|
8
14
|
require("source-map-support/register");
|
|
9
15
|
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var driver = _interopRequireWildcard(require("./lib/driver"));
|
|
13
|
-
|
|
14
|
-
var server = _interopRequireWildcard(require("./lib/server"));
|
|
15
|
-
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
|
-
const {
|
|
21
|
-
EspressoDriver
|
|
22
|
-
} = driver;
|
|
23
|
-
exports.EspressoDriver = EspressoDriver;
|
|
24
|
-
const {
|
|
25
|
-
startServer
|
|
26
|
-
} = server;
|
|
27
|
-
exports.startServer = startServer;
|
|
28
|
-
const DEFAULT_HOST = 'localhost';
|
|
29
|
-
const DEFAULT_PORT = 4884;
|
|
30
|
-
|
|
31
|
-
async function main() {
|
|
32
|
-
const getArgValue = argName => {
|
|
33
|
-
const argIndex = process.argv.indexOf(argName);
|
|
34
|
-
return argIndex > 0 ? process.argv[argIndex + 1] : null;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const port = parseInt(getArgValue('--port'), 10) || DEFAULT_PORT;
|
|
38
|
-
const host = getArgValue('--host') || DEFAULT_HOST;
|
|
39
|
-
return await startServer(port, host);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (require.main === module) {
|
|
43
|
-
(0, _asyncbox.asyncify)(main);
|
|
44
|
-
}
|
|
16
|
+
var _driver = require("./lib/driver");
|
|
45
17
|
|
|
46
|
-
var _default = EspressoDriver;
|
|
18
|
+
var _default = _driver.EspressoDriver;
|
|
47
19
|
exports.default = _default;require('source-map-support').install();
|
|
48
20
|
|
|
49
21
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJFc3ByZXNzb0RyaXZlciJdLCJzb3VyY2VSb290IjoiLi4iLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptYWluXG5pbXBvcnQgeyBFc3ByZXNzb0RyaXZlciB9IGZyb20gJy4vbGliL2RyaXZlcic7XG5cbmV4cG9ydCB7IEVzcHJlc3NvRHJpdmVyIH07XG5leHBvcnQgZGVmYXVsdCBFc3ByZXNzb0RyaXZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O2VBR2VBLHNCIn0=
|
|
@@ -11,7 +11,7 @@ require("source-map-support/register");
|
|
|
11
11
|
|
|
12
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _driver = require("appium/driver");
|
|
15
15
|
|
|
16
16
|
const extensions = {};
|
|
17
17
|
|
|
@@ -56,7 +56,7 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
|
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
if (!_lodash.default.has(mobileCommandsMapping, mobileCommand)) {
|
|
59
|
-
throw new
|
|
59
|
+
throw new _driver.errors.UnknownCommandError(`Unknown mobile command "${mobileCommand}". ` + `Only ${_lodash.default.keys(mobileCommandsMapping)} commands are supported.`);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
return await this[mobileCommandsMapping[mobileCommand]](opts);
|
|
@@ -66,4 +66,4 @@ var _default = extensions;
|
|
|
66
66
|
exports.default = _default;require('source-map-support').install();
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiZXhlY3V0ZU1vYmlsZSIsIm1vYmlsZUNvbW1hbmQiLCJvcHRzIiwibW9iaWxlQ29tbWFuZHNNYXBwaW5nIiwic2hlbGwiLCJleGVjRW11Q29uc29sZUNvbW1hbmQiLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsInN3aXBlIiwic2Nyb2xsVG9QYWdlIiwibmF2aWdhdGVUbyIsImNsaWNrQWN0aW9uIiwiZGV2aWNlSW5mbyIsImlzVG9hc3RWaXNpYmxlIiwib3BlbkRyYXdlciIsImNsb3NlRHJhd2VyIiwic2V0RGF0ZSIsInNldFRpbWUiLCJnZXREZXZpY2VUaW1lIiwiYmFja2Rvb3IiLCJmbGFzaEVsZW1lbnQiLCJ1aWF1dG9tYXRvciIsInVpYXV0b21hdG9yUGFnZVNvdXJjZSIsIndlYkF0b21zIiwiZ2V0Q29udGV4dHMiLCJkaXNtaXNzQXV0b2ZpbGwiLCJnZXROb3RpZmljYXRpb25zIiwibGlzdFNtcyIsInNlbnNvclNldCIsImRlbGV0ZUZpbGUiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsInJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwidW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsImxpc3RJZGxpbmdSZXNvdXJjZXMiLCJ1bmxvY2siLCJyZWZyZXNoR3BzQ2FjaGUiLCJfIiwiaGFzIiwiZXJyb3JzIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsImtleXMiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZXhlY3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5cbmNvbnN0IGV4dGVuc2lvbnMgPSB7fTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBwZXJmb3JtRWRpdG9yQWN0aW9uOiAnbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbicsXG5cbiAgICBjaGFuZ2VQZXJtaXNzaW9uczogJ21vYmlsZUNoYW5nZVBlcm1pc3Npb25zJyxcbiAgICBnZXRQZXJtaXNzaW9uczogJ21vYmlsZUdldFBlcm1pc3Npb25zJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIHN3aXBlOiAnbW9iaWxlU3dpcGUnLFxuICAgIHNjcm9sbFRvUGFnZTogJ21vYmlsZVNjcm9sbFRvUGFnZScsXG4gICAgbmF2aWdhdGVUbzogJ21vYmlsZU5hdmlnYXRlVG8nLFxuICAgIGNsaWNrQWN0aW9uOiAnbW9iaWxlQ2xpY2tBY3Rpb24nLFxuXG4gICAgZGV2aWNlSW5mbzogJ21vYmlsZUdldERldmljZUluZm8nLFxuXG4gICAgaXNUb2FzdFZpc2libGU6ICdtb2JpbGVJc1RvYXN0VmlzaWJsZScsXG5cbiAgICBvcGVuRHJhd2VyOiAnbW9iaWxlT3BlbkRyYXdlcicsXG4gICAgY2xvc2VEcmF3ZXI6ICdtb2JpbGVDbG9zZURyYXdlcicsXG5cbiAgICBzZXREYXRlOiAnbW9iaWxlU2V0RGF0ZScsXG4gICAgc2V0VGltZTogJ21vYmlsZVNldFRpbWUnLFxuXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuXG4gICAgYmFja2Rvb3I6ICdtb2JpbGVCYWNrZG9vcicsXG5cbiAgICBmbGFzaEVsZW1lbnQ6ICdtb2JpbGVGbGFzaEVsZW1lbnQnLFxuXG4gICAgdWlhdXRvbWF0b3I6ICdtb2JpbGVVaWF1dG9tYXRvcicsXG4gICAgdWlhdXRvbWF0b3JQYWdlU291cmNlOiAnbW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlJyxcblxuICAgIHdlYkF0b21zOiAnbW9iaWxlV2ViQXRvbXMnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgZGlzbWlzc0F1dG9maWxsOiAnbW9iaWxlRGlzbWlzc0F1dG9maWxsJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIHNlbnNvclNldDogJ3NlbnNvclNldCcsXG5cbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG5cbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuXG4gICAgcmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVSZWdpc3RlcklkbGluZ1Jlc291cmNlcycsXG4gICAgdW5yZWdpc3RlcklkbGluZ1Jlc291cmNlczogJ21vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIGxpc3RJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzJyxcblxuICAgIHVubG9jazogJ21vYmlsZVVubG9jaycsXG5cbiAgICByZWZyZXNoR3BzQ2FjaGU6ICdtb2JpbGVSZWZyZXNoR3BzQ2FjaGUnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLFVBQVUsR0FBRyxFQUFuQjs7QUFFQUEsVUFBVSxDQUFDQyxhQUFYLEdBQTJCLGVBQWVBLGFBQWYsQ0FBOEJDLGFBQTlCLEVBQTZDQyxJQUFJLEdBQUcsRUFBcEQsRUFBd0Q7RUFDakYsTUFBTUMscUJBQXFCLEdBQUc7SUFDNUJDLEtBQUssRUFBRSxhQURxQjtJQUc1QkMscUJBQXFCLEVBQUUsNkJBSEs7SUFLNUJDLG1CQUFtQixFQUFFLDJCQUxPO0lBTzVCQyxpQkFBaUIsRUFBRSx5QkFQUztJQVE1QkMsY0FBYyxFQUFFLHNCQVJZO0lBVTVCQyxvQkFBb0IsRUFBRSw0QkFWTTtJQVc1QkMsbUJBQW1CLEVBQUUsMkJBWE87SUFhNUJDLEtBQUssRUFBRSxhQWJxQjtJQWM1QkMsWUFBWSxFQUFFLG9CQWRjO0lBZTVCQyxVQUFVLEVBQUUsa0JBZmdCO0lBZ0I1QkMsV0FBVyxFQUFFLG1CQWhCZTtJQWtCNUJDLFVBQVUsRUFBRSxxQkFsQmdCO0lBb0I1QkMsY0FBYyxFQUFFLHNCQXBCWTtJQXNCNUJDLFVBQVUsRUFBRSxrQkF0QmdCO0lBdUI1QkMsV0FBVyxFQUFFLG1CQXZCZTtJQXlCNUJDLE9BQU8sRUFBRSxlQXpCbUI7SUEwQjVCQyxPQUFPLEVBQUUsZUExQm1CO0lBNEI1QkMsYUFBYSxFQUFFLHFCQTVCYTtJQThCNUJDLFFBQVEsRUFBRSxnQkE5QmtCO0lBZ0M1QkMsWUFBWSxFQUFFLG9CQWhDYztJQWtDNUJDLFdBQVcsRUFBRSxtQkFsQ2U7SUFtQzVCQyxxQkFBcUIsRUFBRSw2QkFuQ0s7SUFxQzVCQyxRQUFRLEVBQUUsZ0JBckNrQjtJQXNDNUJDLFdBQVcsRUFBRSxtQkF0Q2U7SUF3QzVCQyxlQUFlLEVBQUUsdUJBeENXO0lBMEM1QkMsZ0JBQWdCLEVBQUUsd0JBMUNVO0lBNEM1QkMsT0FBTyxFQUFFLGVBNUNtQjtJQThDNUJDLFNBQVMsRUFBRSxXQTlDaUI7SUFnRDVCQyxVQUFVLEVBQUUsa0JBaERnQjtJQWtENUJDLFlBQVksRUFBRSxvQkFsRGM7SUFtRDVCQyxXQUFXLEVBQUUsbUJBbkRlO0lBcUQ1QkMsdUJBQXVCLEVBQUUsK0JBckRHO0lBc0Q1QkMseUJBQXlCLEVBQUUsaUNBdERDO0lBdUQ1QkMsbUJBQW1CLEVBQUUsMkJBdkRPO0lBeUQ1QkMsTUFBTSxFQUFFLGNBekRvQjtJQTJENUJDLGVBQWUsRUFBRTtFQTNEVyxDQUE5Qjs7RUE4REEsSUFBSSxDQUFDQyxlQUFBLENBQUVDLEdBQUYsQ0FBTXRDLHFCQUFOLEVBQTZCRixhQUE3QixDQUFMLEVBQWtEO0lBQ2hELE1BQU0sSUFBSXlDLGNBQUEsQ0FBT0MsbUJBQVgsQ0FBZ0MsMkJBQTBCMUMsYUFBYyxLQUF6QyxHQUNsQyxRQUFPdUMsZUFBQSxDQUFFSSxJQUFGLENBQU96QyxxQkFBUCxDQUE4QiwwQkFEbEMsQ0FBTjtFQUVEOztFQUNELE9BQU8sTUFBTSxLQUFLQSxxQkFBcUIsQ0FBQ0YsYUFBRCxDQUExQixFQUEyQ0MsSUFBM0MsQ0FBYjtBQUNELENBcEVEOztlQXNFZUgsVSJ9
|
|
@@ -11,11 +11,11 @@ require("source-map-support/register");
|
|
|
11
11
|
|
|
12
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
13
|
|
|
14
|
-
var _support = require("
|
|
14
|
+
var _support = require("appium/support");
|
|
15
15
|
|
|
16
16
|
var _validate = _interopRequireDefault(require("validate.js"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _driver = require("appium/driver");
|
|
19
19
|
|
|
20
20
|
var _utils = require("../utils");
|
|
21
21
|
|
|
@@ -42,15 +42,15 @@ function assertRequiredOptions(options, requiredOptionNames) {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
commands.launchApp = async function launchApp() {
|
|
45
|
-
throw new
|
|
45
|
+
throw new _driver.errors.UnsupportedOperationError('Please create a new session in order to launch the application under test');
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
commands.closeApp = async function closeApp() {
|
|
49
|
-
throw new
|
|
49
|
+
throw new _driver.errors.UnsupportedOperationError('Please quit the session in order to close the application under test');
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
commands.reset = async function reset() {
|
|
53
|
-
throw new
|
|
53
|
+
throw new _driver.errors.UnsupportedOperationError('Please quit the session and create a new one ' + 'in order to close and launch the application under test');
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
commands.getClipboard = async function getClipboard() {
|
|
@@ -96,7 +96,7 @@ commands.mobileIsToastVisible = async function mobileIsToastVisible(opts = {}) {
|
|
|
96
96
|
} = opts;
|
|
97
97
|
|
|
98
98
|
if (!_support.util.hasValue(text)) {
|
|
99
|
-
throw new
|
|
99
|
+
throw new _driver.errors.InvalidArgumentError(`'text' argument is mandatory`);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
return await this.espresso.jwproxy.command('/appium/execute_mobile/is_toast_displayed', 'POST', {
|
|
@@ -159,7 +159,7 @@ commands.mobileNavigateTo = async function mobileNavigateTo(opts = {}) {
|
|
|
159
159
|
let menuItemIdAsNumber = parseInt(menuItemId, 10);
|
|
160
160
|
|
|
161
161
|
if (_lodash.default.isNaN(menuItemIdAsNumber) || menuItemIdAsNumber < 0) {
|
|
162
|
-
throw new
|
|
162
|
+
throw new _driver.errors.InvalidArgumentError(`'menuItemId' must be a non-negative number. Found ${menuItemId}`);
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_support.util.unwrapElement(element)}/navigate_to`, 'POST', {
|
|
@@ -198,7 +198,7 @@ commands.mobileScrollToPage = async function mobileScrollToPage(opts = {}) {
|
|
|
198
198
|
});
|
|
199
199
|
|
|
200
200
|
if (_support.util.hasValue(res)) {
|
|
201
|
-
throw new
|
|
201
|
+
throw new _driver.errors.InvalidArgumentError(`Invalid scrollTo parameters: ${JSON.stringify(res)}`);
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
const {
|
|
@@ -333,4 +333,4 @@ var _default = extensions;
|
|
|
333
333
|
exports.default = _default;require('source-map-support').install();
|
|
334
334
|
|
|
335
335
|
|
|
336
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2dlbmVyYWwuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiYXNzZXJ0UmVxdWlyZWRPcHRpb25zIiwib3B0aW9ucyIsInJlcXVpcmVkT3B0aW9uTmFtZXMiLCJfIiwiaXNBcnJheSIsInByZXNlbnRPcHRpb25OYW1lcyIsImtleXMiLCJtaXNzaW5nT3B0aW9uTmFtZXMiLCJkaWZmZXJlbmNlIiwiaXNFbXB0eSIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImxhdW5jaEFwcCIsImVycm9ycyIsIlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IiLCJjbG9zZUFwcCIsInJlc2V0IiwiZ2V0Q2xpcGJvYXJkIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJlc3ByZXNzbyIsImp3cHJveHkiLCJjb21tYW5kIiwibW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiIsIm9wdHMiLCJhY3Rpb24iLCJtb2JpbGVTd2lwZSIsImRpcmVjdGlvbiIsImVsZW1lbnQiLCJzd2lwZXIiLCJzdGFydENvb3JkaW5hdGVzIiwiZW5kQ29vcmRpbmF0ZXMiLCJwcmVjaXNpb25EZXNjcmliZXIiLCJ1dGlsIiwidW53cmFwRWxlbWVudCIsIm1vYmlsZUdldERldmljZUluZm8iLCJtb2JpbGVJc1RvYXN0VmlzaWJsZSIsInRleHQiLCJpc1JlZ2V4cCIsImhhc1ZhbHVlIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVPcGVuRHJhd2VyIiwiZ3Jhdml0eSIsIm1vYmlsZUNsb3NlRHJhd2VyIiwibW9iaWxlU2V0RGF0ZSIsInllYXIiLCJtb250aE9mWWVhciIsImRheU9mTW9udGgiLCJtb2JpbGVTZXRUaW1lIiwiaG91cnMiLCJtaW51dGVzIiwibW9iaWxlTmF2aWdhdGVUbyIsIm1lbnVJdGVtSWQiLCJtZW51SXRlbUlkQXNOdW1iZXIiLCJwYXJzZUludCIsImlzTmFOIiwibW9iaWxlV2ViQXRvbXMiLCJnZXREaXNwbGF5RGVuc2l0eSIsIm1vYmlsZVNjcm9sbFRvUGFnZSIsInNjcm9sbFRvVHlwZXMiLCJyZXMiLCJ2YWxpZGF0ZSIsInByZXNlbmNlIiwic2Nyb2xsVG8iLCJpbmNsdXNpb24iLCJ3aXRoaW4iLCJtZXNzYWdlIiwiam9pbiIsInNjcm9sbFRvUGFnZSIsIm51bWVyaWNhbGl0eSIsIm9ubHlJbnRlZ2VyIiwiZ3JlYXRlclRoYW5PckVxdWFsVG8iLCJzbW9vdGhTY3JvbGwiLCJsb2ciLCJ3YXJuIiwibW9iaWxlQmFja2Rvb3IiLCJ0YXJnZXQiLCJtZXRob2RzIiwiZWxlbWVudElkIiwidGFyZ2V0RWxlbWVudCIsIm1vYmlsZVVpYXV0b21hdG9yIiwic3RyYXRlZ3kiLCJsb2NhdG9yIiwiaW5kZXgiLCJtb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJtb2JpbGVGbGFzaEVsZW1lbnQiLCJkdXJhdGlvbk1pbGxpcyIsInJlcGVhdENvdW50IiwibW9iaWxlQ2xpY2tBY3Rpb24iLCJ0YXBwZXIiLCJjb29yZGluYXRlc1Byb3ZpZGVyIiwiaW5wdXREZXZpY2UiLCJidXR0b25TdGF0ZSIsInVwZGF0ZVNldHRpbmdzIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsInN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSIsImNocm9tZWRyaXZlciIsInByb3h5UmVxUmVzIiwiYmluZCIsInByb3h5Q29tbWFuZCIsImp3cFByb3h5QWN0aXZlIiwic3RhcnRBY3Rpdml0eSIsImFwcFBhY2thZ2UiLCJhcHBBY3Rpdml0eSIsImFwcFdhaXRQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5IiwiY2FwcyIsInF1YWxpZnlBY3Rpdml0eU5hbWUiLCJkZWJ1ZyIsIndhaXRGb3JBY3Rpdml0eSIsIm1vYmlsZURpc21pc3NBdXRvZmlsbCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZW5lcmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB2YWxpZGF0ZSBmcm9tICd2YWxpZGF0ZS5qcyc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IHF1YWxpZnlBY3Rpdml0eU5hbWUgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBhc3NlcnRSZXF1aXJlZE9wdGlvbnMgKG9wdGlvbnMsIHJlcXVpcmVkT3B0aW9uTmFtZXMpIHtcbiAgaWYgKCFfLmlzQXJyYXkocmVxdWlyZWRPcHRpb25OYW1lcykpIHtcbiAgICByZXF1aXJlZE9wdGlvbk5hbWVzID0gW3JlcXVpcmVkT3B0aW9uTmFtZXNdO1xuICB9XG4gIGNvbnN0IHByZXNlbnRPcHRpb25OYW1lcyA9IF8ua2V5cyhvcHRpb25zKTtcbiAgY29uc3QgbWlzc2luZ09wdGlvbk5hbWVzID0gXy5kaWZmZXJlbmNlKHJlcXVpcmVkT3B0aW9uTmFtZXMsIHByZXNlbnRPcHRpb25OYW1lcyk7XG4gIGlmIChfLmlzRW1wdHkobWlzc2luZ09wdGlvbk5hbWVzKSkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSByZXF1aXJlZDogJHtKU09OLnN0cmluZ2lmeShtaXNzaW5nT3B0aW9uTmFtZXMpfS4gYCArXG4gICAgYFlvdSBoYXZlIG9ubHkgcHJvdmlkZWQ6ICR7SlNPTi5zdHJpbmdpZnkocHJlc2VudE9wdGlvbk5hbWVzKX1gKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLmxhdW5jaEFwcCA9IGFzeW5jIGZ1bmN0aW9uIGxhdW5jaEFwcCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcignUGxlYXNlIGNyZWF0ZSBhIG5ldyBzZXNzaW9uIGluIG9yZGVyIHRvIGxhdW5jaCB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdCcpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLmNsb3NlQXBwID0gYXN5bmMgZnVuY3Rpb24gY2xvc2VBcHAgKCkge1xuICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoJ1BsZWFzZSBxdWl0IHRoZSBzZXNzaW9uIGluIG9yZGVyIHRvIGNsb3NlIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0Jyk7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuY29tbWFuZHMucmVzZXQgPSBhc3luYyBmdW5jdGlvbiByZXNldCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcihcbiAgICAnUGxlYXNlIHF1aXQgdGhlIHNlc3Npb24gYW5kIGNyZWF0ZSBhIG5ldyBvbmUgJyArXG4gICAgJ2luIG9yZGVyIHRvIGNsb3NlIGFuZCBsYXVuY2ggdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QnKTtcbn07XG5cbmNvbW1hbmRzLmdldENsaXBib2FyZCA9IGFzeW5jIGZ1bmN0aW9uIGdldENsaXBib2FyZCAoKSB7XG4gIHJldHVybiAoYXdhaXQgdGhpcy5hZGIuZ2V0QXBpTGV2ZWwoKSA8IDI5KVxuICAgID8gKGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9nZXRfY2xpcGJvYXJkJywgJ1BPU1QnLCB7fSkpXG4gICAgOiAoYXdhaXQgdGhpcy5hZGIuZ2V0Q2xpcGJvYXJkKCkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7YWN0aW9ufSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2FjdGlvbiddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9wZXJmb3JtX2VkaXRvcl9hY3Rpb24nLCAnUE9TVCcsIHthY3Rpb259KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVN3aXBlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3dpcGUgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZGlyZWN0aW9uLCBlbGVtZW50LCBzd2lwZXIsIHN0YXJ0Q29vcmRpbmF0ZXMsIGVuZENvb3JkaW5hdGVzLCBwcmVjaXNpb25EZXNjcmliZXJ9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9zd2lwZWAsICdQT1NUJywge1xuICAgIGRpcmVjdGlvbiwgZWxlbWVudCwgc3dpcGVyLCBzdGFydENvb3JkaW5hdGVzLCBlbmRDb29yZGluYXRlcywgcHJlY2lzaW9uRGVzY3JpYmVyXG4gIH0pO1xufTtcblxuY29tbWFuZHMubW9iaWxlR2V0RGV2aWNlSW5mbyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUdldERldmljZUluZm8gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2luZm8nLCAnR0VUJyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVJc1RvYXN0VmlzaWJsZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUlzVG9hc3RWaXNpYmxlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge3RleHQsIGlzUmVnZXhwfSA9IG9wdHM7XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh0ZXh0KSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYCd0ZXh0JyBhcmd1bWVudCBpcyBtYW5kYXRvcnlgKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvaXNfdG9hc3RfZGlzcGxheWVkJywgJ1BPU1QnLCB7XG4gICAgdGV4dCxcbiAgICBpc1JlZ2V4cCxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVPcGVuRHJhd2VyID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlT3BlbkRyYXdlciAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50LCBncmF2aXR5fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9vcGVuX2RyYXdlcmAsICdQT1NUJywge1xuICAgIGdyYXZpdHlcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVDbG9zZURyYXdlciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUNsb3NlRHJhd2VyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGdyYXZpdHl9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L2Nsb3NlX2RyYXdlcmAsICdQT1NUJywge1xuICAgIGdyYXZpdHlcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVTZXREYXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU2V0RGF0ZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50LCB5ZWFyLCBtb250aE9mWWVhciwgZGF5T2ZNb250aH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50JywgJ3llYXInLCAnbW9udGhPZlllYXInLCAnZGF5T2ZNb250aCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3NldF9kYXRlYCwgJ1BPU1QnLCB7XG4gICAgeWVhcixcbiAgICBtb250aE9mWWVhcixcbiAgICBkYXlPZk1vbnRoLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVNldFRpbWUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTZXRUaW1lIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGhvdXJzLCBtaW51dGVzfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnLCAnaG91cnMnLCAnbWludXRlcyddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3NldF90aW1lYCwgJ1BPU1QnLCB7XG4gICAgaG91cnMsXG4gICAgbWludXRlcyxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVOYXZpZ2F0ZVRvID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTmF2aWdhdGVUbyAob3B0cyA9IHt9KSB7XG4gIGxldCB7ZWxlbWVudCwgbWVudUl0ZW1JZH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydtZW51SXRlbUlkJywgJ2VsZW1lbnQnXSk7XG5cbiAgbGV0IG1lbnVJdGVtSWRBc051bWJlciA9IHBhcnNlSW50KG1lbnVJdGVtSWQsIDEwKTtcbiAgaWYgKF8uaXNOYU4obWVudUl0ZW1JZEFzTnVtYmVyKSB8fCBtZW51SXRlbUlkQXNOdW1iZXIgPCAwKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgJ21lbnVJdGVtSWQnIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBGb3VuZCAke21lbnVJdGVtSWR9YCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L25hdmlnYXRlX3RvYCwgJ1BPU1QnLCB7XG4gICAgbWVudUl0ZW1JZFxuICB9KTtcbn07XG5cbi8qKlxuICogUnVucyBhIGNoYWluIG9mIEVzcHJlc3NvIHdlYiBhdG9tcyAoc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvZXNwcmVzc28vd2ViIGZvciByZWZlcmVuY2UpXG4gKlxuICogVGFrZXMgSlNPTiBvZiB0aGUgZm9ybVxuICpcbiAqIHtcbiAqICAgXCJ3ZWJ2aWV3RWxcIjogXCI8RUxFTUVOVF9JRD5cIiwgLy8gb3B0aW9uYWwgd2VidmlldyBlbGVtZW50IHRvIG9wZXJhdGUgb25cbiAqICAgXCJmb3JjZUphdmFzY3JpcHRFbmFibGVkXCI6IHRydWV8ZmFsc2UsIC8vIGlmIHdlYnZpZXcgZGlzYWJsZXMgamF2YXNjcmlwdCwgd2ViYXRvbXMgd29uJ3Qgd29yaywgdGhpcyBmb3JjZXMgaXRcbiAqICAgXCJtZXRob2RDaGFpblwiOiBbXG4gKiAgICAge1wibmFtZVwiOiBcIm1ldGhvZE5hbWVcIiwgXCJhdG9tXCI6IHtcIm5hbWVcIjogXCJhdG9tTmFtZVwiLCBcImFyZ3NcIjogW1wiYXJnMVwiLCBcImFyZzJcIiwgLi4uXX19LFxuICogICAgIC4uLlxuICogICBdXG4gKiB9XG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVXZWJBdG9tcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVdlYkF0b21zIChvcHRzID0ge30pIHtcbiAgb3B0cyA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ21ldGhvZENoYWluJ10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvd2ViX2F0b21zYCwgJ1BPU1QnLCBvcHRzKTtcbn07XG5cbmNvbW1hbmRzLmdldERpc3BsYXlEZW5zaXR5ID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGlzcGxheURlbnNpdHkgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2Rpc3BsYXlfZGVuc2l0eScsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVTY3JvbGxUb1BhZ2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTY3JvbGxUb1BhZ2UgKG9wdHMgPSB7fSkge1xuXG4gIC8vIFZhbGlkYXRlIHRoZSBwYXJhbWV0ZXJzXG4gIGNvbnN0IHNjcm9sbFRvVHlwZXMgPSBbJ2ZpcnN0JywgJ2xhc3QnLCAnbGVmdCcsICdyaWdodCddO1xuICBjb25zdCByZXMgPSB2YWxpZGF0ZShvcHRzLCB7XG4gICAgZWxlbWVudDoge3ByZXNlbmNlOiB0cnVlfSxcbiAgICBzY3JvbGxUbzoge1xuICAgICAgaW5jbHVzaW9uOiB7XG4gICAgICAgIHdpdGhpbjogc2Nyb2xsVG9UeXBlcyxcbiAgICAgICAgbWVzc2FnZTogYFwic2Nyb2xsVG9cIiBtdXN0IGJlIG9uZSBvZiBcIiR7c2Nyb2xsVG9UeXBlcy5qb2luKCcsICcpfVwiIGZvdW5kICcle3ZhbHVlfSdgLFxuICAgICAgfVxuICAgIH0sXG4gICAgc2Nyb2xsVG9QYWdlOiB7XG4gICAgICBudW1lcmljYWxpdHk6IHtcbiAgICAgICAgb25seUludGVnZXI6IHRydWUsXG4gICAgICAgIGdyZWF0ZXJUaGFuT3JFcXVhbFRvOiAwLFxuICAgICAgICBtZXNzYWdlOiBgXCJzY3JvbGxUb1BhZ2VcIiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuIEZvdW5kICcle3ZhbHVlfSdgXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBpZiAodXRpbC5oYXNWYWx1ZShyZXMpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgSW52YWxpZCBzY3JvbGxUbyBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHJlcyl9YCk7XG4gIH1cblxuICBjb25zdCB7ZWxlbWVudCwgc2Nyb2xsVG8sIHNjcm9sbFRvUGFnZSwgc21vb3RoU2Nyb2xsfSA9IG9wdHM7XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc2Nyb2xsVG8pICYmIHV0aWwuaGFzVmFsdWUoc2Nyb2xsVG9QYWdlKSkge1xuICAgIHRoaXMubG9nLndhcm4oYCdzY3JvbGxUbycgYW5kICdzY3JvbGxUb1BhZ2UnIHdoZXJlIGJvdGggcHJvdmlkZWQuIERlZmF1bHRpbmcgdG8gJ3Njcm9sbFRvJ2ApO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9zY3JvbGxfdG9fcGFnZWAsICdQT1NUJywge1xuICAgIHNjcm9sbFRvLFxuICAgIHNjcm9sbFRvUGFnZSxcbiAgICBzbW9vdGhTY3JvbGwsXG4gIH0pO1xufTtcblxuXG4vKipcbiAqICBBUEkgdG8gaW52b2tlIG1ldGhvZHMgZGVmaW5lZCBpbiBBbmRyb2lkIGFwcC5cbiAqXG4gKiAgRXhhbXBsZSBkYXRhXG4gKiAge1xuICogICB0YXJnZXQ6ICdhY3Rpdml0eScsXG4gKiAgIG1ldGhvZHM6XG4gKiAgICAgICAgIFtcbiAqICAgICAgICAgICB7XG4gKiAgICAgICAgICAgICAgIG5hbWU6IFwic29tZU1ldGhvZFwiLFxuICogICAgICAgICAgIH0sXG4gKiAgICAgICAgICAge1xuICogICAgICAgICAgICAgICBuYW1lOiBcImFub3RoZXJNZXRob2RcIixcbiAqICAgICAgICAgICAgICAgYXJnczpcbiAqICAgICAgICAgICAgICAgICAgIFtcbiAqICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6IFwiTG9sXCIsIHR5cGU6ICdqYXZhLmxhbmcuQ2hhclNlcXVlbmNlJ30sXG4gKiAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlOiAxLCB0eXBlOiAnaW50J31cbiAqICAgICAgICAgICAgICAgICAgIF1cbiAqICAgICAgICAgICB9XG4gKiAgICAgICAgIF1cbiAqIH1cbiAqXG4gKiBJbiBhYm92ZSBleGFtcGxlLCBtZXRob2QgXCJzb21lTWV0aG9kXCIgd2lsbCBiZSBpbnZva2VkIG9uICdhY3Rpdml0eScuIE9uIHRoZSByZXN1bHQsIFwiYW5vdGhlck1ldGhvZFwiIHdpbGwgYmUgaW52b2tlZFxuICogIFwidGFyZ2V0XCIgY2FuIGJlIGVpdGhlciAnYWN0aXZpdHknLCAnYXBwbGljYXRpb24nIG9yICdlbGVtZW50J1xuICogIElmIHRhcmdldCBpcyBzZXQgdG8gJ2FwcGxpY2F0aW9uJywgbWV0aG9kcyB3aWxsIGJlIGludm9rZWQgb24gYXBwbGljYXRpb24gY2xhc3NcbiAqICBJZiB0YXJnZXQgaXMgc2V0IHRvICdhY3Rpdml0eScsIG1ldGhvZHMgd2lsbCBiZSBpbnZva2VkIG9uIGN1cnJlbnQgYWN0aXZpdHlcbiAqICBJZiB0YXJnZXQgaXMgc2V0IHRvICdlbGVtZW50JywgJ2VsZW1lbnRJZCcgbXVzdCBiZSBzcGVjaWZpZWRcbiAqXG4gKiAtIE9ubHkgJ1B1YmxpYycgbWV0aG9kcyBjYW4gYmUgaW52b2tlZC4gKCdvcGVuJyBtb2RpZmlyZSBpcyBuZWNlc3NhcnkgaW4gS290bGluKVxuICogLSBmb2xsb3dpbmcgcHJpbWl0aXZlIHR5cGVzIGFyZSBzdXBwb3J0ZWQ6IFwiaW50XCIsIFwiYm9vbGVhblwiLCBcImJ5dGVcIiwgXCJzaG9ydFwiLCBcImxvbmdcIiwgXCJmbG9hdFwiLCBcImNoYXJcIlxuICogLSAgTm9uLXByaW1pdGl2ZSB0eXBlcyB3aXRoIGZ1bGx5IHF1YWxpZmllZCBuYW1lIFwiamF2YS5sYW5nLipcIiBpcyBhbHNvIHN1cHBvcnRlZDpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWcuIFwiamF2YS5sYW5nLkNoYXJTZXF1ZW5jZVwiLCBcImphdmEubGFuZy5TdHJpbmdcIiwgXCJqYXZhLmxhbmcuSW50ZWdlclwiLCBcImphdmEubGFuZy5GbG9hdFwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImphdmEubGFuZy5Eb3VibGVcIiwgXCJqYXZhLmxhbmcuQm9vbGVhblwiLCBcImphdmEubGFuZy5Mb25nXCIsIFwiamF2YS5sYW5nLlNob3J0XCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiamF2YS5sYW5nLkNoYXJhY3RlclwiIGV0Yy4uLlxuICpcbiAqXG4gKiBAdGhyb3dzICB7RXJyb3J9IGlmIHRhcmdldCBpcyBub3QgJ2FjdGl2aXR5JyBvciAnYXBwbGljYXRpb24nXG4gKiBAdGhyb3dzICB7RXJyb3J9IGlmIGEgbWV0aG9kIGlzIG5vdCBmb3VuZCB3aXRoIGdpdmVuIGFyZ3VtZW50IHR5cGVzXG4gKlxuICogQHJldHVybiB7Kn0gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBtZXRob2QgaW4gdGhlIGludm9jYXRpb24gY2hhaW4uIElmIG1ldGhvZCByZXR1cm4gdHlwZSBpcyB2b2lkLCB0aGVuIFwiPFZPSUQ+XCIgd2lsbCBiZSByZXR1cm5lZFxuICpcbiAqL1xuY29tbWFuZHMubW9iaWxlQmFja2Rvb3IgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVCYWNrZG9vciAob3B0cyA9IHt9KSB7XG4gIGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ3RhcmdldCcsICdtZXRob2RzJ10pO1xuICBjb25zdCB7dGFyZ2V0LCBtZXRob2RzfSA9IG9wdHM7XG4gIGlmICh0YXJnZXQgPT09ICdlbGVtZW50Jykge1xuICAgIGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnRJZCddKTtcbiAgfVxuICBjb25zdCB7ZWxlbWVudElkOiB0YXJnZXRFbGVtZW50fSA9IG9wdHM7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS9iYWNrZG9vcmAsICdQT1NUJywge3RhcmdldCwgbWV0aG9kcywgdGFyZ2V0RWxlbWVudH0pO1xufTtcblxuLyoqXG4gKiAgRXhlY3V0ZSBVaUF1dG9tYXRvcjIgY29tbWFuZHMgdG8gZHJpdmUgb3V0IG9mIGFwcCBhcmVhcy5cbiAqICBzdHJhdGVneSBjYW4gYmUgb25lIG9mOiBcImNsYXp6XCIsIFwicmVzXCIsIFwidGV4dFwiLCBcInRleHRDb250YWluc1wiLCBcInRleHRFbmRzV2l0aFwiLCBcInRleHRTdGFydHNXaXRoXCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjXCIsIFwiZGVzY0NvbnRhaW5zXCIsIFwiZGVzY0VuZHNXaXRoXCIsIFwiZGVzY1N0YXJ0c1dpdGhcIiwgXCJwa2dcIlxuICpcbiAqICBhY3Rpb24gY2FuIGJlIG9uZSBvZjogXCJjbGlja1wiLCBcImxvbmdDbGlja1wiLCBcImdldFRleHRcIiwgXCJnZXRDb250ZW50RGVzY3JpcHRpb25cIiwgXCJnZXRDbGFzc05hbWVcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgXCJnZXRSZXNvdXJjZU5hbWVcIiwgXCJnZXRWaXNpYmxlQm91bmRzXCIsIFwiZ2V0VmlzaWJsZUNlbnRlclwiLCBcImdldEFwcGxpY2F0aW9uUGFja2FnZVwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICBcImdldENoaWxkQ291bnRcIiwgXCJjbGVhclwiLCBcImlzQ2hlY2thYmxlXCIsIFwiaXNDaGVja2VkXCIsIFwiaXNDbGlja2FibGVcIiwgXCJpc0VuYWJsZWRcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0ZvY3VzYWJsZVwiLCBcImlzRm9jdXNlZFwiLCBcImlzTG9uZ0NsaWNrYWJsZVwiLCBcImlzU2Nyb2xsYWJsZVwiLCBcImlzU2VsZWN0ZWRcIlxuICovXG5jb21tYW5kcy5tb2JpbGVVaWF1dG9tYXRvciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVVpYXV0b21hdG9yIChvcHRzID0ge30pIHtcbiAgY29uc3Qge3N0cmF0ZWd5LCBsb2NhdG9yLCBhY3Rpb24sIGluZGV4fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ3N0cmF0ZWd5JywgJ2xvY2F0b3InLCAnYWN0aW9uJ10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvdWlhdXRvbWF0b3JgLCAnUE9TVCcsIHtzdHJhdGVneSwgbG9jYXRvciwgaW5kZXgsIGFjdGlvbn0pO1xufTtcblxuLyoqXG4gKiAgRXhlY3V0ZSBVaUF1dG9tYXRvcjIgY29tbWFuZCB0byByZXR1cm4gdGhlIFVJIGR1bXAgd2hlbiBBVVQgaXMgaW4gYmFja2dyb3VuZC5cbiAqIEB0aHJvd3MgIHtFcnJvcn0gaWYgdWlhdXRvbWF0b3IgdmlldyBkdW1wIGlzIHVuc3VjY2Vzc2Z1bFxuICogQHJldHVybnMge3N0cmluZ30gdWlhdXRvbWF0b3IgRE9NIHhtbCBhcyBzdHJpbmdcbiAqL1xuY29tbWFuZHMubW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3VpYXV0b21hdG9yX3BhZ2Vfc291cmNlYCwgJ0dFVCcpO1xufTtcblxuLyoqXG4gKiAgRmxhc2ggdGhlIGVsZW1lbnQgd2l0aCBnaXZlbiBpZC5cbiAqICBkdXJhdGlvbk1pbGxpcyBhbmQgcmVwZWF0Q291bnQgYXJlIG9wdGlvbmFsXG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVGbGFzaEVsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVGbGFzaEVsZW1lbnQgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50J10pO1xuICBjb25zdCB7ZHVyYXRpb25NaWxsaXMsIHJlcGVhdENvdW50fSA9IG9wdHM7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vZmxhc2hgLCAnUE9TVCcsIHtcbiAgICBkdXJhdGlvbk1pbGxpcyxcbiAgICByZXBlYXRDb3VudFxuICB9KTtcbn07XG5cbi8qKlxuICogUGVyZm9ybSBhICdHZW5lcmFsQ2xpY2tBY3Rpb24nIChodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZHgvdGVzdC9lc3ByZXNzby9hY3Rpb24vR2VuZXJhbENsaWNrQWN0aW9uKVxuICovXG5jb21tYW5kcy5tb2JpbGVDbGlja0FjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUNsaWNrQWN0aW9uIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIHRhcHBlciwgY29vcmRpbmF0ZXNQcm92aWRlciwgcHJlY2lzaW9uRGVzY3JpYmVyLFxuICAgICAgICAgaW5wdXREZXZpY2UsIGJ1dHRvblN0YXRlfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vY2xpY2tfYWN0aW9uYCwgJ1BPU1QnLCB7XG4gICAgdGFwcGVyLCBjb29yZGluYXRlc1Byb3ZpZGVyLCBwcmVjaXNpb25EZXNjcmliZXIsIGlucHV0RGV2aWNlLCBidXR0b25TdGF0ZVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLnVwZGF0ZVNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gdXBkYXRlU2V0dGluZ3MgKHNldHRpbmdzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9zZXR0aW5nc2AsICdQT1NUJywgeyBzZXR0aW5ncyB9KTtcbn07XG5cbmNvbW1hbmRzLmdldFNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gZ2V0U2V0dGluZ3MgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vc2V0dGluZ3NgLCAnR0VUJyk7XG59O1xuXG4vLyBTdG9wIHByb3h5aW5nIHRvIGFueSBDaHJvbWVkcml2ZXIgYW5kIHJlZGlyZWN0IHRvIEVzcHJlc3NvXG5oZWxwZXJzLnN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSA9IGZ1bmN0aW9uIHN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSAoKSB7XG4gIHRoaXMuY2hyb21lZHJpdmVyID0gbnVsbDtcbiAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuZXNwcmVzc28ucHJveHlSZXFSZXMuYmluZCh0aGlzLmVzcHJlc3NvKTtcbiAgdGhpcy5wcm94eUNvbW1hbmQgPSB0aGlzLmVzcHJlc3NvLnByb3h5Q29tbWFuZC5iaW5kKHRoaXMuZXNwcmVzc28pO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcbn07XG5cbmNvbW1hbmRzLnN0YXJ0QWN0aXZpdHkgPSBhc3luYyBmdW5jdGlvbiBzdGFydEFjdGl2aXR5IChhcHBQYWNrYWdlLCBhcHBBY3Rpdml0eSxcbiAgYXBwV2FpdFBhY2thZ2UsIGFwcFdhaXRBY3Rpdml0eSkge1xuICAvLyBpbnRlbnRBY3Rpb24sIGludGVudENhdGVnb3J5LCBpbnRlbnRGbGFncywgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMsIGRvbnRTdG9wQXBwT25SZXNldFxuICAvLyBwYXJhbWV0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEVzcHJlc3NvXG4gIGFwcFBhY2thZ2UgPSBhcHBQYWNrYWdlIHx8IHRoaXMuY2Fwcy5hcHBQYWNrYWdlO1xuICBhcHBXYWl0UGFja2FnZSA9IGFwcFdhaXRQYWNrYWdlIHx8IGFwcFBhY2thZ2U7XG4gIGFwcEFjdGl2aXR5ID0gcXVhbGlmeUFjdGl2aXR5TmFtZShhcHBBY3Rpdml0eSwgYXBwUGFja2FnZSk7XG4gIGFwcFdhaXRBY3Rpdml0eSA9IHF1YWxpZnlBY3Rpdml0eU5hbWUoYXBwV2FpdEFjdGl2aXR5IHx8IGFwcEFjdGl2aXR5LCBhcHBXYWl0UGFja2FnZSk7XG4gIHRoaXMubG9nLmRlYnVnKGBTdGFydGluZyBhY3Rpdml0eSAnJHthcHBBY3Rpdml0eX0nIGZvciBwYWNrYWdlICcke2FwcFBhY2thZ2V9J2ApO1xuICBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9kZXZpY2Uvc3RhcnRfYWN0aXZpdHlgLCAnUE9TVCcsIHtcbiAgICBhcHBQYWNrYWdlLFxuICAgIGFwcEFjdGl2aXR5LFxuICB9KTtcbiAgYXdhaXQgdGhpcy5hZGIud2FpdEZvckFjdGl2aXR5KGFwcFdhaXRQYWNrYWdlLCBhcHBXYWl0QWN0aXZpdHkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlRGlzbWlzc0F1dG9maWxsID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlRGlzbWlzc0F1dG9maWxsIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnR9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoXG4gICAgYC9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9kaXNtaXNzX2F1dG9maWxsYCwgJ1BPU1QnLCB7fSk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtc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
|
|
336
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2dlbmVyYWwuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiYXNzZXJ0UmVxdWlyZWRPcHRpb25zIiwib3B0aW9ucyIsInJlcXVpcmVkT3B0aW9uTmFtZXMiLCJfIiwiaXNBcnJheSIsInByZXNlbnRPcHRpb25OYW1lcyIsImtleXMiLCJtaXNzaW5nT3B0aW9uTmFtZXMiLCJkaWZmZXJlbmNlIiwiaXNFbXB0eSIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImxhdW5jaEFwcCIsImVycm9ycyIsIlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IiLCJjbG9zZUFwcCIsInJlc2V0IiwiZ2V0Q2xpcGJvYXJkIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJlc3ByZXNzbyIsImp3cHJveHkiLCJjb21tYW5kIiwibW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiIsIm9wdHMiLCJhY3Rpb24iLCJtb2JpbGVTd2lwZSIsImRpcmVjdGlvbiIsImVsZW1lbnQiLCJzd2lwZXIiLCJzdGFydENvb3JkaW5hdGVzIiwiZW5kQ29vcmRpbmF0ZXMiLCJwcmVjaXNpb25EZXNjcmliZXIiLCJ1dGlsIiwidW53cmFwRWxlbWVudCIsIm1vYmlsZUdldERldmljZUluZm8iLCJtb2JpbGVJc1RvYXN0VmlzaWJsZSIsInRleHQiLCJpc1JlZ2V4cCIsImhhc1ZhbHVlIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVPcGVuRHJhd2VyIiwiZ3Jhdml0eSIsIm1vYmlsZUNsb3NlRHJhd2VyIiwibW9iaWxlU2V0RGF0ZSIsInllYXIiLCJtb250aE9mWWVhciIsImRheU9mTW9udGgiLCJtb2JpbGVTZXRUaW1lIiwiaG91cnMiLCJtaW51dGVzIiwibW9iaWxlTmF2aWdhdGVUbyIsIm1lbnVJdGVtSWQiLCJtZW51SXRlbUlkQXNOdW1iZXIiLCJwYXJzZUludCIsImlzTmFOIiwibW9iaWxlV2ViQXRvbXMiLCJnZXREaXNwbGF5RGVuc2l0eSIsIm1vYmlsZVNjcm9sbFRvUGFnZSIsInNjcm9sbFRvVHlwZXMiLCJyZXMiLCJ2YWxpZGF0ZSIsInByZXNlbmNlIiwic2Nyb2xsVG8iLCJpbmNsdXNpb24iLCJ3aXRoaW4iLCJtZXNzYWdlIiwiam9pbiIsInNjcm9sbFRvUGFnZSIsIm51bWVyaWNhbGl0eSIsIm9ubHlJbnRlZ2VyIiwiZ3JlYXRlclRoYW5PckVxdWFsVG8iLCJzbW9vdGhTY3JvbGwiLCJsb2ciLCJ3YXJuIiwibW9iaWxlQmFja2Rvb3IiLCJ0YXJnZXQiLCJtZXRob2RzIiwiZWxlbWVudElkIiwidGFyZ2V0RWxlbWVudCIsIm1vYmlsZVVpYXV0b21hdG9yIiwic3RyYXRlZ3kiLCJsb2NhdG9yIiwiaW5kZXgiLCJtb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJtb2JpbGVGbGFzaEVsZW1lbnQiLCJkdXJhdGlvbk1pbGxpcyIsInJlcGVhdENvdW50IiwibW9iaWxlQ2xpY2tBY3Rpb24iLCJ0YXBwZXIiLCJjb29yZGluYXRlc1Byb3ZpZGVyIiwiaW5wdXREZXZpY2UiLCJidXR0b25TdGF0ZSIsInVwZGF0ZVNldHRpbmdzIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsInN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSIsImNocm9tZWRyaXZlciIsInByb3h5UmVxUmVzIiwiYmluZCIsInByb3h5Q29tbWFuZCIsImp3cFByb3h5QWN0aXZlIiwic3RhcnRBY3Rpdml0eSIsImFwcFBhY2thZ2UiLCJhcHBBY3Rpdml0eSIsImFwcFdhaXRQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5IiwiY2FwcyIsInF1YWxpZnlBY3Rpdml0eU5hbWUiLCJkZWJ1ZyIsIndhaXRGb3JBY3Rpdml0eSIsIm1vYmlsZURpc21pc3NBdXRvZmlsbCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZW5lcmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gJ3ZhbGlkYXRlLmpzJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgcXVhbGlmeUFjdGl2aXR5TmFtZSB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgY29tbWFuZHMgPSB7fSwgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge307XG5cbmZ1bmN0aW9uIGFzc2VydFJlcXVpcmVkT3B0aW9ucyAob3B0aW9ucywgcmVxdWlyZWRPcHRpb25OYW1lcykge1xuICBpZiAoIV8uaXNBcnJheShyZXF1aXJlZE9wdGlvbk5hbWVzKSkge1xuICAgIHJlcXVpcmVkT3B0aW9uTmFtZXMgPSBbcmVxdWlyZWRPcHRpb25OYW1lc107XG4gIH1cbiAgY29uc3QgcHJlc2VudE9wdGlvbk5hbWVzID0gXy5rZXlzKG9wdGlvbnMpO1xuICBjb25zdCBtaXNzaW5nT3B0aW9uTmFtZXMgPSBfLmRpZmZlcmVuY2UocmVxdWlyZWRPcHRpb25OYW1lcywgcHJlc2VudE9wdGlvbk5hbWVzKTtcbiAgaWYgKF8uaXNFbXB0eShtaXNzaW5nT3B0aW9uTmFtZXMpKSB7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIHJlcXVpcmVkOiAke0pTT04uc3RyaW5naWZ5KG1pc3NpbmdPcHRpb25OYW1lcyl9LiBgICtcbiAgICBgWW91IGhhdmUgb25seSBwcm92aWRlZDogJHtKU09OLnN0cmluZ2lmeShwcmVzZW50T3B0aW9uTmFtZXMpfWApO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuY29tbWFuZHMubGF1bmNoQXBwID0gYXN5bmMgZnVuY3Rpb24gbGF1bmNoQXBwICgpIHtcbiAgdGhyb3cgbmV3IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yKCdQbGVhc2UgY3JlYXRlIGEgbmV3IHNlc3Npb24gaW4gb3JkZXIgdG8gbGF1bmNoIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0Jyk7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuY29tbWFuZHMuY2xvc2VBcHAgPSBhc3luYyBmdW5jdGlvbiBjbG9zZUFwcCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcignUGxlYXNlIHF1aXQgdGhlIHNlc3Npb24gaW4gb3JkZXIgdG8gY2xvc2UgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QnKTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG5jb21tYW5kcy5yZXNldCA9IGFzeW5jIGZ1bmN0aW9uIHJlc2V0ICgpIHtcbiAgdGhyb3cgbmV3IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yKFxuICAgICdQbGVhc2UgcXVpdCB0aGUgc2Vzc2lvbiBhbmQgY3JlYXRlIGEgbmV3IG9uZSAnICtcbiAgICAnaW4gb3JkZXIgdG8gY2xvc2UgYW5kIGxhdW5jaCB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdCcpO1xufTtcblxuY29tbWFuZHMuZ2V0Q2xpcGJvYXJkID0gYXN5bmMgZnVuY3Rpb24gZ2V0Q2xpcGJvYXJkICgpIHtcbiAgcmV0dXJuIChhd2FpdCB0aGlzLmFkYi5nZXRBcGlMZXZlbCgpIDwgMjkpXG4gICAgPyAoYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2dldF9jbGlwYm9hcmQnLCAnUE9TVCcsIHt9KSlcbiAgICA6IChhd2FpdCB0aGlzLmFkYi5nZXRDbGlwYm9hcmQoKSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVQZXJmb3JtRWRpdG9yQWN0aW9uID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHthY3Rpb259ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnYWN0aW9uJ10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL3BlcmZvcm1fZWRpdG9yX2FjdGlvbicsICdQT1NUJywge2FjdGlvbn0pO1xufTtcblxuY29tbWFuZHMubW9iaWxlU3dpcGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTd2lwZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtkaXJlY3Rpb24sIGVsZW1lbnQsIHN3aXBlciwgc3RhcnRDb29yZGluYXRlcywgZW5kQ29vcmRpbmF0ZXMsIHByZWNpc2lvbkRlc2NyaWJlcn0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50J10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3N3aXBlYCwgJ1BPU1QnLCB7XG4gICAgZGlyZWN0aW9uLCBlbGVtZW50LCBzd2lwZXIsIHN0YXJ0Q29vcmRpbmF0ZXMsIGVuZENvb3JkaW5hdGVzLCBwcmVjaXNpb25EZXNjcmliZXJcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVHZXREZXZpY2VJbmZvID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0RGV2aWNlSW5mbyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2UvaW5mbycsICdHRVQnKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZUlzVG9hc3RWaXNpYmxlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSXNUb2FzdFZpc2libGUgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7dGV4dCwgaXNSZWdleHB9ID0gb3B0cztcbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKHRleHQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgJ3RleHQnIGFyZ3VtZW50IGlzIG1hbmRhdG9yeWApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS9pc190b2FzdF9kaXNwbGF5ZWQnLCAnUE9TVCcsIHtcbiAgICB0ZXh0LFxuICAgIGlzUmVnZXhwLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZU9wZW5EcmF3ZXIgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVPcGVuRHJhd2VyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGdyYXZpdHl9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L29wZW5fZHJhd2VyYCwgJ1BPU1QnLCB7XG4gICAgZ3Jhdml0eVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZUNsb3NlRHJhd2VyID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlQ2xvc2VEcmF3ZXIgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudCwgZ3Jhdml0eX0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50J10pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vY2xvc2VfZHJhd2VyYCwgJ1BPU1QnLCB7XG4gICAgZ3Jhdml0eVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVNldERhdGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTZXREYXRlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIHllYXIsIG1vbnRoT2ZZZWFyLCBkYXlPZk1vbnRofSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnLCAneWVhcicsICdtb250aE9mWWVhcicsICdkYXlPZk1vbnRoJ10pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vc2V0X2RhdGVgLCAnUE9TVCcsIHtcbiAgICB5ZWFyLFxuICAgIG1vbnRoT2ZZZWFyLFxuICAgIGRheU9mTW9udGgsXG4gIH0pO1xufTtcblxuY29tbWFuZHMubW9iaWxlU2V0VGltZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVNldFRpbWUgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudCwgaG91cnMsIG1pbnV0ZXN9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCcsICdob3VycycsICdtaW51dGVzJ10pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vc2V0X3RpbWVgLCAnUE9TVCcsIHtcbiAgICBob3VycyxcbiAgICBtaW51dGVzLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZU5hdmlnYXRlVG8gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVOYXZpZ2F0ZVRvIChvcHRzID0ge30pIHtcbiAgbGV0IHtlbGVtZW50LCBtZW51SXRlbUlkfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ21lbnVJdGVtSWQnLCAnZWxlbWVudCddKTtcblxuICBsZXQgbWVudUl0ZW1JZEFzTnVtYmVyID0gcGFyc2VJbnQobWVudUl0ZW1JZCwgMTApO1xuICBpZiAoXy5pc05hTihtZW51SXRlbUlkQXNOdW1iZXIpIHx8IG1lbnVJdGVtSWRBc051bWJlciA8IDApIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGAnbWVudUl0ZW1JZCcgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIEZvdW5kICR7bWVudUl0ZW1JZH1gKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vbmF2aWdhdGVfdG9gLCAnUE9TVCcsIHtcbiAgICBtZW51SXRlbUlkXG4gIH0pO1xufTtcblxuLyoqXG4gKiBSdW5zIGEgY2hhaW4gb2YgRXNwcmVzc28gd2ViIGF0b21zIChzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vdHJhaW5pbmcvdGVzdGluZy9lc3ByZXNzby93ZWIgZm9yIHJlZmVyZW5jZSlcbiAqXG4gKiBUYWtlcyBKU09OIG9mIHRoZSBmb3JtXG4gKlxuICoge1xuICogICBcIndlYnZpZXdFbFwiOiBcIjxFTEVNRU5UX0lEPlwiLCAvLyBvcHRpb25hbCB3ZWJ2aWV3IGVsZW1lbnQgdG8gb3BlcmF0ZSBvblxuICogICBcImZvcmNlSmF2YXNjcmlwdEVuYWJsZWRcIjogdHJ1ZXxmYWxzZSwgLy8gaWYgd2VidmlldyBkaXNhYmxlcyBqYXZhc2NyaXB0LCB3ZWJhdG9tcyB3b24ndCB3b3JrLCB0aGlzIGZvcmNlcyBpdFxuICogICBcIm1ldGhvZENoYWluXCI6IFtcbiAqICAgICB7XCJuYW1lXCI6IFwibWV0aG9kTmFtZVwiLCBcImF0b21cIjoge1wibmFtZVwiOiBcImF0b21OYW1lXCIsIFwiYXJnc1wiOiBbXCJhcmcxXCIsIFwiYXJnMlwiLCAuLi5dfX0sXG4gKiAgICAgLi4uXG4gKiAgIF1cbiAqIH1cbiAqXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVdlYkF0b21zID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlV2ViQXRvbXMgKG9wdHMgPSB7fSkge1xuICBvcHRzID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnbWV0aG9kQ2hhaW4nXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS93ZWJfYXRvbXNgLCAnUE9TVCcsIG9wdHMpO1xufTtcblxuY29tbWFuZHMuZ2V0RGlzcGxheURlbnNpdHkgPSBhc3luYyBmdW5jdGlvbiBnZXREaXNwbGF5RGVuc2l0eSAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2UvZGlzcGxheV9kZW5zaXR5JywgJ0dFVCcsIHt9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVNjcm9sbFRvUGFnZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVNjcm9sbFRvUGFnZSAob3B0cyA9IHt9KSB7XG5cbiAgLy8gVmFsaWRhdGUgdGhlIHBhcmFtZXRlcnNcbiAgY29uc3Qgc2Nyb2xsVG9UeXBlcyA9IFsnZmlyc3QnLCAnbGFzdCcsICdsZWZ0JywgJ3JpZ2h0J107XG4gIGNvbnN0IHJlcyA9IHZhbGlkYXRlKG9wdHMsIHtcbiAgICBlbGVtZW50OiB7cHJlc2VuY2U6IHRydWV9LFxuICAgIHNjcm9sbFRvOiB7XG4gICAgICBpbmNsdXNpb246IHtcbiAgICAgICAgd2l0aGluOiBzY3JvbGxUb1R5cGVzLFxuICAgICAgICBtZXNzYWdlOiBgXCJzY3JvbGxUb1wiIG11c3QgYmUgb25lIG9mIFwiJHtzY3JvbGxUb1R5cGVzLmpvaW4oJywgJyl9XCIgZm91bmQgJyV7dmFsdWV9J2AsXG4gICAgICB9XG4gICAgfSxcbiAgICBzY3JvbGxUb1BhZ2U6IHtcbiAgICAgIG51bWVyaWNhbGl0eToge1xuICAgICAgICBvbmx5SW50ZWdlcjogdHJ1ZSxcbiAgICAgICAgZ3JlYXRlclRoYW5PckVxdWFsVG86IDAsXG4gICAgICAgIG1lc3NhZ2U6IGBcInNjcm9sbFRvUGFnZVwiIG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci4gRm91bmQgJyV7dmFsdWV9J2BcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGlmICh1dGlsLmhhc1ZhbHVlKHJlcykpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBJbnZhbGlkIHNjcm9sbFRvIHBhcmFtZXRlcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzKX1gKTtcbiAgfVxuXG4gIGNvbnN0IHtlbGVtZW50LCBzY3JvbGxUbywgc2Nyb2xsVG9QYWdlLCBzbW9vdGhTY3JvbGx9ID0gb3B0cztcblxuICBpZiAodXRpbC5oYXNWYWx1ZShzY3JvbGxUbykgJiYgdXRpbC5oYXNWYWx1ZShzY3JvbGxUb1BhZ2UpKSB7XG4gICAgdGhpcy5sb2cud2FybihgJ3Njcm9sbFRvJyBhbmQgJ3Njcm9sbFRvUGFnZScgd2hlcmUgYm90aCBwcm92aWRlZC4gRGVmYXVsdGluZyB0byAnc2Nyb2xsVG8nYCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3Njcm9sbF90b19wYWdlYCwgJ1BPU1QnLCB7XG4gICAgc2Nyb2xsVG8sXG4gICAgc2Nyb2xsVG9QYWdlLFxuICAgIHNtb290aFNjcm9sbCxcbiAgfSk7XG59O1xuXG5cbi8qKlxuICogIEFQSSB0byBpbnZva2UgbWV0aG9kcyBkZWZpbmVkIGluIEFuZHJvaWQgYXBwLlxuICpcbiAqICBFeGFtcGxlIGRhdGFcbiAqICB7XG4gKiAgIHRhcmdldDogJ2FjdGl2aXR5JyxcbiAqICAgbWV0aG9kczpcbiAqICAgICAgICAgW1xuICogICAgICAgICAgIHtcbiAqICAgICAgICAgICAgICAgbmFtZTogXCJzb21lTWV0aG9kXCIsXG4gKiAgICAgICAgICAgfSxcbiAqICAgICAgICAgICB7XG4gKiAgICAgICAgICAgICAgIG5hbWU6IFwiYW5vdGhlck1ldGhvZFwiLFxuICogICAgICAgICAgICAgICBhcmdzOlxuICogICAgICAgICAgICAgICAgICAgW1xuICogICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZTogXCJMb2xcIiwgdHlwZTogJ2phdmEubGFuZy5DaGFyU2VxdWVuY2UnfSxcbiAqICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6IDEsIHR5cGU6ICdpbnQnfVxuICogICAgICAgICAgICAgICAgICAgXVxuICogICAgICAgICAgIH1cbiAqICAgICAgICAgXVxuICogfVxuICpcbiAqIEluIGFib3ZlIGV4YW1wbGUsIG1ldGhvZCBcInNvbWVNZXRob2RcIiB3aWxsIGJlIGludm9rZWQgb24gJ2FjdGl2aXR5Jy4gT24gdGhlIHJlc3VsdCwgXCJhbm90aGVyTWV0aG9kXCIgd2lsbCBiZSBpbnZva2VkXG4gKiAgXCJ0YXJnZXRcIiBjYW4gYmUgZWl0aGVyICdhY3Rpdml0eScsICdhcHBsaWNhdGlvbicgb3IgJ2VsZW1lbnQnXG4gKiAgSWYgdGFyZ2V0IGlzIHNldCB0byAnYXBwbGljYXRpb24nLCBtZXRob2RzIHdpbGwgYmUgaW52b2tlZCBvbiBhcHBsaWNhdGlvbiBjbGFzc1xuICogIElmIHRhcmdldCBpcyBzZXQgdG8gJ2FjdGl2aXR5JywgbWV0aG9kcyB3aWxsIGJlIGludm9rZWQgb24gY3VycmVudCBhY3Rpdml0eVxuICogIElmIHRhcmdldCBpcyBzZXQgdG8gJ2VsZW1lbnQnLCAnZWxlbWVudElkJyBtdXN0IGJlIHNwZWNpZmllZFxuICpcbiAqIC0gT25seSAnUHVibGljJyBtZXRob2RzIGNhbiBiZSBpbnZva2VkLiAoJ29wZW4nIG1vZGlmaXJlIGlzIG5lY2Vzc2FyeSBpbiBLb3RsaW4pXG4gKiAtIGZvbGxvd2luZyBwcmltaXRpdmUgdHlwZXMgYXJlIHN1cHBvcnRlZDogXCJpbnRcIiwgXCJib29sZWFuXCIsIFwiYnl0ZVwiLCBcInNob3J0XCIsIFwibG9uZ1wiLCBcImZsb2F0XCIsIFwiY2hhclwiXG4gKiAtICBOb24tcHJpbWl0aXZlIHR5cGVzIHdpdGggZnVsbHkgcXVhbGlmaWVkIG5hbWUgXCJqYXZhLmxhbmcuKlwiIGlzIGFsc28gc3VwcG9ydGVkOlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZy4gXCJqYXZhLmxhbmcuQ2hhclNlcXVlbmNlXCIsIFwiamF2YS5sYW5nLlN0cmluZ1wiLCBcImphdmEubGFuZy5JbnRlZ2VyXCIsIFwiamF2YS5sYW5nLkZsb2F0XCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiamF2YS5sYW5nLkRvdWJsZVwiLCBcImphdmEubGFuZy5Cb29sZWFuXCIsIFwiamF2YS5sYW5nLkxvbmdcIiwgXCJqYXZhLmxhbmcuU2hvcnRcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqYXZhLmxhbmcuQ2hhcmFjdGVyXCIgZXRjLi4uXG4gKlxuICpcbiAqIEB0aHJvd3MgIHtFcnJvcn0gaWYgdGFyZ2V0IGlzIG5vdCAnYWN0aXZpdHknIG9yICdhcHBsaWNhdGlvbidcbiAqIEB0aHJvd3MgIHtFcnJvcn0gaWYgYSBtZXRob2QgaXMgbm90IGZvdW5kIHdpdGggZ2l2ZW4gYXJndW1lbnQgdHlwZXNcbiAqXG4gKiBAcmV0dXJuIHsqfSB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IG1ldGhvZCBpbiB0aGUgaW52b2NhdGlvbiBjaGFpbi4gSWYgbWV0aG9kIHJldHVybiB0eXBlIGlzIHZvaWQsIHRoZW4gXCI8Vk9JRD5cIiB3aWxsIGJlIHJldHVybmVkXG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVCYWNrZG9vciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUJhY2tkb29yIChvcHRzID0ge30pIHtcbiAgYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsndGFyZ2V0JywgJ21ldGhvZHMnXSk7XG4gIGNvbnN0IHt0YXJnZXQsIG1ldGhvZHN9ID0gb3B0cztcbiAgaWYgKHRhcmdldCA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudElkJ10pO1xuICB9XG4gIGNvbnN0IHtlbGVtZW50SWQ6IHRhcmdldEVsZW1lbnR9ID0gb3B0cztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL2JhY2tkb29yYCwgJ1BPU1QnLCB7dGFyZ2V0LCBtZXRob2RzLCB0YXJnZXRFbGVtZW50fSk7XG59O1xuXG4vKipcbiAqICBFeGVjdXRlIFVpQXV0b21hdG9yMiBjb21tYW5kcyB0byBkcml2ZSBvdXQgb2YgYXBwIGFyZWFzLlxuICogIHN0cmF0ZWd5IGNhbiBiZSBvbmUgb2Y6IFwiY2xhenpcIiwgXCJyZXNcIiwgXCJ0ZXh0XCIsIFwidGV4dENvbnRhaW5zXCIsIFwidGV4dEVuZHNXaXRoXCIsIFwidGV4dFN0YXJ0c1dpdGhcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NcIiwgXCJkZXNjQ29udGFpbnNcIiwgXCJkZXNjRW5kc1dpdGhcIiwgXCJkZXNjU3RhcnRzV2l0aFwiLCBcInBrZ1wiXG4gKlxuICogIGFjdGlvbiBjYW4gYmUgb25lIG9mOiBcImNsaWNrXCIsIFwibG9uZ0NsaWNrXCIsIFwiZ2V0VGV4dFwiLCBcImdldENvbnRlbnREZXNjcmlwdGlvblwiLCBcImdldENsYXNzTmFtZVwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICBcImdldFJlc291cmNlTmFtZVwiLCBcImdldFZpc2libGVCb3VuZHNcIiwgXCJnZXRWaXNpYmxlQ2VudGVyXCIsIFwiZ2V0QXBwbGljYXRpb25QYWNrYWdlXCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIFwiZ2V0Q2hpbGRDb3VudFwiLCBcImNsZWFyXCIsIFwiaXNDaGVja2FibGVcIiwgXCJpc0NoZWNrZWRcIiwgXCJpc0NsaWNrYWJsZVwiLCBcImlzRW5hYmxlZFwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICBcImlzRm9jdXNhYmxlXCIsIFwiaXNGb2N1c2VkXCIsIFwiaXNMb25nQ2xpY2thYmxlXCIsIFwiaXNTY3JvbGxhYmxlXCIsIFwiaXNTZWxlY3RlZFwiXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVVpYXV0b21hdG9yID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVWlhdXRvbWF0b3IgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7c3RyYXRlZ3ksIGxvY2F0b3IsIGFjdGlvbiwgaW5kZXh9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnc3RyYXRlZ3knLCAnbG9jYXRvcicsICdhY3Rpb24nXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS91aWF1dG9tYXRvcmAsICdQT1NUJywge3N0cmF0ZWd5LCBsb2NhdG9yLCBpbmRleCwgYWN0aW9ufSk7XG59O1xuXG4vKipcbiAqICBFeGVjdXRlIFVpQXV0b21hdG9yMiBjb21tYW5kIHRvIHJldHVybiB0aGUgVUkgZHVtcCB3aGVuIEFVVCBpcyBpbiBiYWNrZ3JvdW5kLlxuICogQHRocm93cyAge0Vycm9yfSBpZiB1aWF1dG9tYXRvciB2aWV3IGR1bXAgaXMgdW5zdWNjZXNzZnVsXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB1aWF1dG9tYXRvciBET00geG1sIGFzIHN0cmluZ1xuICovXG5jb21tYW5kcy5tb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvdWlhdXRvbWF0b3JfcGFnZV9zb3VyY2VgLCAnR0VUJyk7XG59O1xuXG4vKipcbiAqICBGbGFzaCB0aGUgZWxlbWVudCB3aXRoIGdpdmVuIGlkLlxuICogIGR1cmF0aW9uTWlsbGlzIGFuZCByZXBlYXRDb3VudCBhcmUgb3B0aW9uYWxcbiAqXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUZsYXNoRWxlbWVudCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUZsYXNoRWxlbWVudCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG4gIGNvbnN0IHtkdXJhdGlvbk1pbGxpcywgcmVwZWF0Q291bnR9ID0gb3B0cztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9mbGFzaGAsICdQT1NUJywge1xuICAgIGR1cmF0aW9uTWlsbGlzLFxuICAgIHJlcGVhdENvdW50XG4gIH0pO1xufTtcblxuLyoqXG4gKiBQZXJmb3JtIGEgJ0dlbmVyYWxDbGlja0FjdGlvbicgKGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkeC90ZXN0L2VzcHJlc3NvL2FjdGlvbi9HZW5lcmFsQ2xpY2tBY3Rpb24pXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUNsaWNrQWN0aW9uID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlQ2xpY2tBY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudCwgdGFwcGVyLCBjb29yZGluYXRlc1Byb3ZpZGVyLCBwcmVjaXNpb25EZXNjcmliZXIsXG4gICAgICAgICBpbnB1dERldmljZSwgYnV0dG9uU3RhdGV9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9jbGlja19hY3Rpb25gLCAnUE9TVCcsIHtcbiAgICB0YXBwZXIsIGNvb3JkaW5hdGVzUHJvdmlkZXIsIHByZWNpc2lvbkRlc2NyaWJlciwgaW5wdXREZXZpY2UsIGJ1dHRvblN0YXRlXG4gIH0pO1xufTtcblxuY29tbWFuZHMudXBkYXRlU2V0dGluZ3MgPSBhc3luYyBmdW5jdGlvbiB1cGRhdGVTZXR0aW5ncyAoc2V0dGluZ3MpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL3NldHRpbmdzYCwgJ1BPU1QnLCB7IHNldHRpbmdzIH0pO1xufTtcblxuY29tbWFuZHMuZ2V0U2V0dGluZ3MgPSBhc3luYyBmdW5jdGlvbiBnZXRTZXR0aW5ncyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9zZXR0aW5nc2AsICdHRVQnKTtcbn07XG5cbi8vIFN0b3AgcHJveHlpbmcgdG8gYW55IENocm9tZWRyaXZlciBhbmQgcmVkaXJlY3QgdG8gRXNwcmVzc29cbmhlbHBlcnMuc3VzcGVuZENocm9tZWRyaXZlclByb3h5ID0gZnVuY3Rpb24gc3VzcGVuZENocm9tZWRyaXZlclByb3h5ICgpIHtcbiAgdGhpcy5jaHJvbWVkcml2ZXIgPSBudWxsO1xuICB0aGlzLnByb3h5UmVxUmVzID0gdGhpcy5lc3ByZXNzby5wcm94eVJlcVJlcy5iaW5kKHRoaXMuZXNwcmVzc28pO1xuICB0aGlzLnByb3h5Q29tbWFuZCA9IHRoaXMuZXNwcmVzc28ucHJveHlDb21tYW5kLmJpbmQodGhpcy5lc3ByZXNzbyk7XG4gIHRoaXMuandwUHJveHlBY3RpdmUgPSB0cnVlO1xufTtcblxuY29tbWFuZHMuc3RhcnRBY3Rpdml0eSA9IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0QWN0aXZpdHkgKGFwcFBhY2thZ2UsIGFwcEFjdGl2aXR5LFxuICBhcHBXYWl0UGFja2FnZSwgYXBwV2FpdEFjdGl2aXR5KSB7XG4gIC8vIGludGVudEFjdGlvbiwgaW50ZW50Q2F0ZWdvcnksIGludGVudEZsYWdzLCBvcHRpb25hbEludGVudEFyZ3VtZW50cywgZG9udFN0b3BBcHBPblJlc2V0XG4gIC8vIHBhcmFtZXRlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgRXNwcmVzc29cbiAgYXBwUGFja2FnZSA9IGFwcFBhY2thZ2UgfHwgdGhpcy5jYXBzLmFwcFBhY2thZ2U7XG4gIGFwcFdhaXRQYWNrYWdlID0gYXBwV2FpdFBhY2thZ2UgfHwgYXBwUGFja2FnZTtcbiAgYXBwQWN0aXZpdHkgPSBxdWFsaWZ5QWN0aXZpdHlOYW1lKGFwcEFjdGl2aXR5LCBhcHBQYWNrYWdlKTtcbiAgYXBwV2FpdEFjdGl2aXR5ID0gcXVhbGlmeUFjdGl2aXR5TmFtZShhcHBXYWl0QWN0aXZpdHkgfHwgYXBwQWN0aXZpdHksIGFwcFdhaXRQYWNrYWdlKTtcbiAgdGhpcy5sb2cuZGVidWcoYFN0YXJ0aW5nIGFjdGl2aXR5ICcke2FwcEFjdGl2aXR5fScgZm9yIHBhY2thZ2UgJyR7YXBwUGFja2FnZX0nYCk7XG4gIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2RldmljZS9zdGFydF9hY3Rpdml0eWAsICdQT1NUJywge1xuICAgIGFwcFBhY2thZ2UsXG4gICAgYXBwQWN0aXZpdHksXG4gIH0pO1xuICBhd2FpdCB0aGlzLmFkYi53YWl0Rm9yQWN0aXZpdHkoYXBwV2FpdFBhY2thZ2UsIGFwcFdhaXRBY3Rpdml0eSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVEaXNtaXNzQXV0b2ZpbGwgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVEaXNtaXNzQXV0b2ZpbGwgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50J10pO1xuICBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChcbiAgICBgL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L2Rpc21pc3NfYXV0b2ZpbGxgLCAnUE9TVCcsIHt9KTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0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
|