appium 2.0.0-beta.23 → 2.0.0-beta.24
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 -2
- package/build/lib/appium.js +19 -7
- package/build/lib/cli/args.js +13 -15
- package/build/lib/cli/parser.js +2 -2
- package/build/lib/config.js +31 -24
- package/build/lib/extension-config.js +1 -1
- package/build/lib/main.js +29 -28
- package/build/lib/plugins.js +4 -2
- package/build/lib/schema/arg-spec.js +5 -3
- package/build/lib/schema/cli-args.js +7 -13
- package/build/lib/schema/schema.js +80 -9
- package/build/lib/utils.js +16 -36
- package/build/test/cli/cli-helpers.js +1 -1
- package/build/test/config-specs.js +122 -35
- package/build/test/driver-specs.js +96 -31
- package/build/test/fixtures/flattened-schema.js +31 -3
- package/build/test/parser-specs.js +69 -64
- package/build/test/schema/cli-args-specs.js +4 -27
- package/build/test/schema/schema-specs.js +56 -38
- package/build/test/utils-specs.js +24 -2
- package/lib/appium.js +45 -8
- package/lib/cli/args.js +17 -14
- package/lib/cli/parser.js +1 -1
- package/lib/config.js +75 -31
- package/lib/extension-config.js +1 -1
- package/lib/main.js +87 -37
- package/lib/plugins.js +2 -0
- package/lib/schema/arg-spec.js +8 -2
- package/lib/schema/cli-args.js +6 -30
- package/lib/schema/schema.js +142 -22
- package/lib/utils.js +28 -29
- package/package.json +4 -4
- package/types/types.d.ts +5 -0
package/build/lib/utils.js
CHANGED
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.ReadonlyMap = void 0;
|
|
9
9
|
exports.getPackageVersion = getPackageVersion;
|
|
10
10
|
exports.insertAppiumPrefixes = insertAppiumPrefixes;
|
|
11
|
-
exports.
|
|
11
|
+
exports.inspect = void 0;
|
|
12
12
|
exports.parseCapsForInnerDriver = parseCapsForInnerDriver;
|
|
13
13
|
exports.pullSettings = pullSettings;
|
|
14
14
|
exports.removeAppiumPrefixes = removeAppiumPrefixes;
|
|
@@ -24,40 +24,20 @@ var _baseDriver = require("@appium/base-driver");
|
|
|
24
24
|
|
|
25
25
|
var _support = require("@appium/support");
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
function inspectObject(args) {
|
|
30
|
-
function getValueArray(obj, indent = ' ') {
|
|
31
|
-
if (!_lodash.default.isObject(obj)) {
|
|
32
|
-
return [obj];
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
let strArr = ['{'];
|
|
27
|
+
var _util = require("util");
|
|
36
28
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
strArr.push(`${indent}}`);
|
|
48
|
-
return strArr;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
for (let [arg, value] of _lodash.default.toPairs(args)) {
|
|
52
|
-
value = getValueArray(value);
|
|
53
|
-
|
|
54
|
-
_logger.default.info(` ${arg}: ${value.shift()}`);
|
|
29
|
+
const W3C_APPIUM_PREFIX = 'appium';
|
|
30
|
+
const isStdoutTTY = process.stdout.isTTY;
|
|
31
|
+
|
|
32
|
+
const inspect = _lodash.default.flow(_lodash.default.partialRight(_util.inspect, {
|
|
33
|
+
colors: true,
|
|
34
|
+
depth: null,
|
|
35
|
+
compact: !isStdoutTTY
|
|
36
|
+
}), (...args) => {
|
|
37
|
+
_logger.default.info(...args);
|
|
38
|
+
});
|
|
55
39
|
|
|
56
|
-
|
|
57
|
-
_logger.default.info(val);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
40
|
+
exports.inspect = inspect;
|
|
61
41
|
|
|
62
42
|
function parseCapsForInnerDriver(jsonwpCapabilities, w3cCapabilities, constraints = {}, defaultCapabilities = {}) {
|
|
63
43
|
const hasW3CCaps = _lodash.default.isPlainObject(w3cCapabilities) && (_lodash.default.has(w3cCapabilities, 'alwaysMatch') || _lodash.default.has(w3cCapabilities, 'firstMatch'));
|
|
@@ -224,8 +204,8 @@ class ReadonlyMap extends Map {
|
|
|
224
204
|
return super.set(key, value);
|
|
225
205
|
}
|
|
226
206
|
|
|
227
|
-
delete(
|
|
228
|
-
|
|
207
|
+
delete() {
|
|
208
|
+
return false;
|
|
229
209
|
}
|
|
230
210
|
|
|
231
211
|
clear() {
|
|
@@ -237,4 +217,4 @@ class ReadonlyMap extends Map {
|
|
|
237
217
|
exports.ReadonlyMap = ReadonlyMap;require('source-map-support').install();
|
|
238
218
|
|
|
239
219
|
|
|
240
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlscy5qcyJdLCJuYW1lcyI6WyJXM0NfQVBQSVVNX1BSRUZJWCIsImluc3BlY3RPYmplY3QiLCJhcmdzIiwiZ2V0VmFsdWVBcnJheSIsIm9iaiIsImluZGVudCIsIl8iLCJpc09iamVjdCIsInN0ckFyciIsImFyZyIsInZhbHVlIiwidG9QYWlycyIsInB1c2giLCJzaGlmdCIsImxvZ2dlciIsImluZm8iLCJ2YWwiLCJwYXJzZUNhcHNGb3JJbm5lckRyaXZlciIsImpzb253cENhcGFiaWxpdGllcyIsInczY0NhcGFiaWxpdGllcyIsImNvbnN0cmFpbnRzIiwiZGVmYXVsdENhcGFiaWxpdGllcyIsImhhc1czQ0NhcHMiLCJpc1BsYWluT2JqZWN0IiwiaGFzIiwiaGFzSlNPTldQQ2FwcyIsImRlc2lyZWRDYXBzIiwicHJvY2Vzc2VkVzNDQ2FwYWJpbGl0aWVzIiwicHJvY2Vzc2VkSnNvbndwQ2FwYWJpbGl0aWVzIiwicHJvdG9jb2wiLCJQUk9UT0NPTFMiLCJXM0MiLCJlcnJvciIsIkVycm9yIiwiY2xvbmVEZWVwIiwiaXNFbXB0eSIsImRlZmF1bHRDYXBLZXkiLCJkZWZhdWx0Q2FwVmFsdWUiLCJpc0NhcEFscmVhZHlTZXQiLCJmaXJzdE1hdGNoRW50cnkiLCJmaXJzdE1hdGNoIiwicmVtb3ZlQXBwaXVtUHJlZml4ZXMiLCJyZW1vdmVBcHBpdW1QcmVmaXgiLCJhbHdheXNNYXRjaCIsIk9iamVjdCIsImFzc2lnbiIsIm1lc3NhZ2UiLCJpbnNlcnRBcHBpdW1QcmVmaXhlcyIsImNhcHMiLCJTVEFOREFSRF9DQVBTIiwicHJlZml4ZWRDYXBzIiwibmFtZSIsImluY2x1ZGVzIiwiZml4ZWRDYXBzIiwia2V5IiwicHJlZml4Iiwic3RhcnRzV2l0aCIsInN1YnN0cmluZyIsImxlbmd0aCIsImdldFBhY2thZ2VWZXJzaW9uIiwicGtnTmFtZSIsInBrZ0luZm8iLCJyZXF1aXJlIiwidmVyc2lvbiIsInB1bGxTZXR0aW5ncyIsInJlc3VsdCIsIm1hdGNoIiwiZXhlYyIsInJvb3REaXIiLCJmcyIsImZpbmRSb290IiwiX19kaXJuYW1lIiwiUmVhZG9ubHlNYXAiLCJNYXAiLCJzZXQiLCJkZWxldGUiLCJjbGVhciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsaUJBQWlCLEdBQUcsUUFBMUI7O0FBRUEsU0FBU0MsYUFBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDNUIsV0FBU0MsYUFBVCxDQUF3QkMsR0FBeEIsRUFBNkJDLE1BQU0sR0FBRyxJQUF0QyxFQUE0QztBQUMxQyxRQUFJLENBQUNDLGdCQUFFQyxRQUFGLENBQVdILEdBQVgsQ0FBTCxFQUFzQjtBQUNwQixhQUFPLENBQUNBLEdBQUQsQ0FBUDtBQUNEOztBQUVELFFBQUlJLE1BQU0sR0FBRyxDQUFDLEdBQUQsQ0FBYjs7QUFDQSxTQUFLLElBQUksQ0FBQ0MsR0FBRCxFQUFNQyxLQUFOLENBQVQsSUFBeUJKLGdCQUFFSyxPQUFGLENBQVVQLEdBQVYsQ0FBekIsRUFBeUM7QUFDdkMsVUFBSSxDQUFDRSxnQkFBRUMsUUFBRixDQUFXRyxLQUFYLENBQUwsRUFBd0I7QUFDdEJGLFFBQUFBLE1BQU0sQ0FBQ0ksSUFBUCxDQUFhLEdBQUVQLE1BQU8sS0FBSUksR0FBSSxLQUFJQyxLQUFNLEVBQXhDO0FBQ0QsT0FGRCxNQUVPO0FBQ0xBLFFBQUFBLEtBQUssR0FBR1AsYUFBYSxDQUFDTyxLQUFELEVBQVMsR0FBRUwsTUFBTyxJQUFsQixDQUFyQjtBQUNBRyxRQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBYSxHQUFFUCxNQUFPLEtBQUlJLEdBQUksS0FBSUMsS0FBSyxDQUFDRyxLQUFOLEVBQWMsRUFBaEQ7QUFDQUwsUUFBQUEsTUFBTSxDQUFDSSxJQUFQLENBQVksR0FBR0YsS0FBZjtBQUNEO0FBQ0Y7O0FBQ0RGLElBQUFBLE1BQU0sQ0FBQ0ksSUFBUCxDQUFhLEdBQUVQLE1BQU8sR0FBdEI7QUFDQSxXQUFPRyxNQUFQO0FBQ0Q7O0FBQ0QsT0FB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QUtjLEdBQUwsQ0FBUzhCLEdBQVQsQ0FBSixFQUFtQjtBQUNqQixZQUFNLElBQUlyQixLQUFKLENBQVcsR0FBRXFCLEdBQUksaUJBQWpCLENBQU47QUFDRDs7QUFDRCxXQUFPLE1BQU1vQixHQUFOLENBQVVwQixHQUFWLEVBQWU1QyxLQUFmLENBQVA7QUFDRDs7QUFFRGlFLEVBQUFBLE1BQU0sQ0FBRXJCLEdBQUYsRUFBTztBQUNYLFVBQU0sSUFBSXJCLEtBQUosQ0FBVyxHQUFFcUIsR0FBSSxvQkFBakIsQ0FBTjtBQUNEOztBQUVEc0IsRUFBQUEsS0FBSyxHQUFJO0FBQ1AsVUFBTSxJQUFJM0MsS0FBSixDQUFXLDBCQUFYLENBQU47QUFDRDs7QUFsQjJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgcHJvY2Vzc0NhcGFiaWxpdGllcywgUFJPVE9DT0xTIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgeyBmcyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cbmNvbnN0IFczQ19BUFBJVU1fUFJFRklYID0gJ2FwcGl1bSc7XG5cbmZ1bmN0aW9uIGluc3BlY3RPYmplY3QgKGFyZ3MpIHtcbiAgZnVuY3Rpb24gZ2V0VmFsdWVBcnJheSAob2JqLCBpbmRlbnQgPSAnICAnKSB7XG4gICAgaWYgKCFfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIHJldHVybiBbb2JqXTtcbiAgICB9XG5cbiAgICBsZXQgc3RyQXJyID0gWyd7J107XG4gICAgZm9yIChsZXQgW2FyZywgdmFsdWVdIG9mIF8udG9QYWlycyhvYmopKSB7XG4gICAgICBpZiAoIV8uaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHN0ckFyci5wdXNoKGAke2luZGVudH0gICR7YXJnfTogJHt2YWx1ZX1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gZ2V0VmFsdWVBcnJheSh2YWx1ZSwgYCR7aW5kZW50fSAgYCk7XG4gICAgICAgIHN0ckFyci5wdXNoKGAke2luZGVudH0gICR7YXJnfTogJHt2YWx1ZS5zaGlmdCgpfWApO1xuICAgICAgICBzdHJBcnIucHVzaCguLi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHN0ckFyci5wdXNoKGAke2luZGVudH19YCk7XG4gICAgcmV0dXJuIHN0ckFycjtcbiAgfVxuICBmb3IgKGxldCBbYXJnLCB2YWx1ZV0gb2YgXy50b1BhaXJzKGFyZ3MpKSB7XG4gICAgdmFsdWUgPSBnZXRWYWx1ZUFycmF5KHZhbHVlKTtcbiAgICBsb2dnZXIuaW5mbyhgICAke2FyZ306ICR7dmFsdWUuc2hpZnQoKX1gKTtcbiAgICBmb3IgKGxldCB2YWwgb2YgdmFsdWUpIHtcbiAgICAgIGxvZ2dlci5pbmZvKHZhbCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVGFrZXMgdGhlIGNhcHMgdGhhdCB3ZXJlIHByb3ZpZGVkIGluIHRoZSByZXF1ZXN0IGFuZCB0cmFuc2xhdGVzIHRoZW1cbiAqIGludG8gY2FwcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBpbm5lciBkcml2ZXJzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBqc29ud3BDYXBhYmlsaXRpZXNcbiAqIEBwYXJhbSB7T2JqZWN0fSB3M2NDYXBhYmlsaXRpZXNcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25zdHJhaW50c1xuICogQHBhcmFtIHtPYmplY3R9IGRlZmF1bHRDYXBhYmlsaXRpZXNcbiAqL1xuZnVuY3Rpb24gcGFyc2VDYXBzRm9ySW5uZXJEcml2ZXIgKGpzb253cENhcGFiaWxpdGllcywgdzNjQ2FwYWJpbGl0aWVzLCBjb25zdHJhaW50cyA9IHt9LCBkZWZhdWx0Q2FwYWJpbGl0aWVzID0ge30pIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIGNhbGxlciBzZW50IEpTT05XUCBjYXBzLCBXM0MgY2Fwcywgb3IgYm90aFxuICBjb25zdCBoYXNXM0NDYXBzID0gXy5pc1BsYWluT2JqZWN0KHczY0NhcGFiaWxpdGllcykgJiZcbiAgICAoXy5oYXModzNjQ2FwYWJpbGl0aWVzLCAnYWx3YXlzTWF0Y2gnKSB8fCBfLmhhcyh3M2NDYXBhYmlsaXRpZXMsICdmaXJzdE1hdGNoJykpO1xuICBjb25zdCBoYXNKU09OV1BDYXBzID0gXy5pc1BsYWluT2JqZWN0KGpzb253cENhcGFiaWxpdGllcyk7XG4gIGxldCBkZXNpcmVkQ2FwcyA9IHt9O1xuICBsZXQgcHJvY2Vzc2VkVzNDQ2FwYWJpbGl0aWVzID0gbnVsbDtcbiAgbGV0IHByb2Nlc3NlZEpzb253cENhcGFiaWxpdGllcyA9IG51bGw7XG5cbiAgaWYgKCFoYXNXM0NDYXBzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3RvY29sOiBQUk9UT0NPTFMuVzNDLFxuICAgICAgZXJyb3I6IG5ldyBFcnJvcignVzNDIGNhcGFiaWxpdGllcyBzaG91bGQgYmUgcHJvdmlkZWQnKSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qge1czQ30gPSBQUk9UT0NPTFM7XG4gIGNvbnN0IHByb3RvY29sID0gVzNDO1xuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGFyZ3VtZW50c1xuICBqc29ud3BDYXBhYmlsaXRpZXMgPSBfLmNsb25lRGVlcChqc29ud3BDYXBhYmlsaXRpZXMpO1xuICB3M2NDYXBhYmlsaXRpZXMgPSBfLmNsb25lRGVlcCh3M2NDYXBhYmlsaXRpZXMpO1xuICBkZWZhdWx0Q2FwYWJpbGl0aWVzID0gXy5jbG9uZURlZXAoZGVmYXVsdENhcGFiaWxpdGllcyk7XG5cbiAgaWYgKCFfLmlzRW1wdHkoZGVmYXVsdENhcGFiaWxpdGllcykpIHtcbiAgICBpZiAoaGFzVzNDQ2Fwcykge1xuICAgICAgZm9yIChjb25zdCBbZGVmYXVsdENhcEtleSwgZGVmYXVsdENhcFZhbHVlXSBvZiBfLnRvUGFpcnMoZGVmYXVsdENhcGFiaWxpdGllcykpIHtcbiAgICAgICAgbGV0IGlzQ2FwQWxyZWFkeVNldCA9IGZhbHNlO1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUga2V5IGlzIGFscmVhZHkgcHJlc2VudCBpbiBmaXJzdE1hdGNoIGVudHJpZXNcbiAgICAgICAgZm9yIChjb25zdCBmaXJzdE1hdGNoRW50cnkgb2YgKHczY0NhcGFiaWxpdGllcy5maXJzdE1hdGNoIHx8IFtdKSkge1xuICAgICAgICAgIGlmIChfLmlzUGxhaW5PYmplY3QoZmlyc3RNYXRjaEVudHJ5KVxuICAgICAgICAgICAgICAmJiBfLmhhcyhyZW1vdmVBcHBpdW1QcmVmaXhlcyhmaXJzdE1hdGNoRW50cnkpLCByZW1vdmVBcHBpdW1QcmVmaXgoZGVmYXVsdENhcEtleSkpKSB7XG4gICAgICAgICAgICBpc0NhcEFscmVhZHlTZXQgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50IGluIGFsd2F5c01hdGNoIGVudHJpZXNcbiAgICAgICAgaXNDYXBBbHJlYWR5U2V0ID0gaXNDYXBBbHJlYWR5U2V0IHx8IChfLmlzUGxhaW5PYmplY3QodzNjQ2FwYWJpbGl0aWVzLmFsd2F5c01hdGNoKVxuICAgICAgICAgICYmIF8uaGFzKHJlbW92ZUFwcGl1bVByZWZpeGVzKHczY0NhcGFiaWxpdGllcy5hbHdheXNNYXRjaCksIHJlbW92ZUFwcGl1bVByZWZpeChkZWZhdWx0Q2FwS2V5KSkpO1xuICAgICAgICBpZiAoaXNDYXBBbHJlYWR5U2V0KSB7XG4gICAgICAgICAgLy8gU2tpcCBpZiB0aGUga2V5IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgcHJvdmlkZWQgY2Fwc1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSBhZGQgdGhlIGRlZmF1bHQgY2FwYWJpbGl0eSBpZiBpdCBpcyBub3Qgb3ZlcnJpZGRlblxuICAgICAgICBpZiAoXy5pc0VtcHR5KHczY0NhcGFiaWxpdGllcy5maXJzdE1hdGNoKSkge1xuICAgICAgICAgIHczY0NhcGFiaWxpdGllcy5maXJzdE1hdGNoID0gW3tbZGVmYXVsdENhcEtleV06IGRlZmF1bHRDYXBWYWx1ZX1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHczY0NhcGFiaWxpdGllcy5maXJzdE1hdGNoWzBdW2RlZmF1bHRDYXBLZXldID0gZGVmYXVsdENhcFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNKU09OV1BDYXBzKSB7XG4gICAgICBqc29ud3BDYXBhYmlsaXRpZXMgPSBPYmplY3QuYXNzaWduKHt9LCByZW1vdmVBcHBpdW1QcmVmaXhlcyhkZWZhdWx0Q2FwYWJpbGl0aWVzKSwganNvbndwQ2FwYWJpbGl0aWVzKTtcbiAgICB9XG4gIH1cblxuICAvLyBHZXQgTUpTT05XUCBjYXBzXG4gIGlmIChoYXNKU09OV1BDYXBzKSB7XG4gICAgcHJvY2Vzc2VkSnNvbndwQ2FwYWJpbGl0aWVzID0gey4uLmpzb253cENhcGFiaWxpdGllc307XG4gIH1cblxuICAvLyBHZXQgVzNDIGNhcHNcbiAgaWYgKGhhc1czQ0NhcHMpIHtcbiAgICAvLyBDYWxsIHRoZSBwcm9jZXNzIGNhcGFiaWxpdGllcyBhbGdvcml0aG0gdG8gZmluZCBtYXRjaGluZyBjYXBzIG9uIHRoZSBXM0NcbiAgICAvLyAoc2VlOiBodHRwczovL2dpdGh1Yi5jb20vamxpcHBzL3NpbXBsZS13ZC1zcGVjI3Byb2Nlc3NpbmctY2FwYWJpbGl0aWVzKVxuICAgIHRyeSB7XG4gICAgICBkZXNpcmVkQ2FwcyA9IHByb2Nlc3NDYXBhYmlsaXRpZXModzNjQ2FwYWJpbGl0aWVzLCBjb25zdHJhaW50cywgdHJ1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5pbmZvKGBDb3VsZCBub3QgcGFyc2UgVzNDIGNhcGFiaWxpdGllczogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVzaXJlZENhcHMsXG4gICAgICAgIHByb2Nlc3NlZEpzb253cENhcGFiaWxpdGllcyxcbiAgICAgICAgcHJvY2Vzc2VkVzNDQ2FwYWJpbGl0aWVzLFxuICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgZXJyb3IsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIG5ldyB3M2MgY2FwYWJpbGl0aWVzIHBheWxvYWQgdGhhdCBjb250YWlucyBvbmx5IHRoZSBtYXRjaGluZyBjYXBzIGluIGBhbHdheXNNYXRjaGBcbiAgICBwcm9jZXNzZWRXM0NDYXBhYmlsaXRpZXMgPSB7XG4gICAgICBhbHdheXNNYXRjaDogey4uLmluc2VydEFwcGl1bVByZWZpeGVzKGRlc2lyZWRDYXBzKX0sXG4gICAgICBmaXJzdE1hdGNoOiBbe31dLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge2Rlc2lyZWRDYXBzLCBwcm9jZXNzZWRKc29ud3BDYXBhYmlsaXRpZXMsIHByb2Nlc3NlZFczQ0NhcGFiaWxpdGllcywgcHJvdG9jb2x9O1xufVxuXG4vKipcbiAqIFRha2VzIGEgY2FwYWJpbGl0aWVzIG9iamVjdHMgYW5kIHByZWZpeGVzIGNhcGFiaWxpdGllcyB3aXRoIGBhcHBpdW06YFxuICogQHBhcmFtIHtPYmplY3R9IGNhcHMgRGVzaXJlZCBjYXBhYmlsaXRpZXMgb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIGluc2VydEFwcGl1bVByZWZpeGVzIChjYXBzKSB7XG4gIC8vIFN0YW5kYXJkLCBub24tcHJlZml4ZWQgY2FwYWJpbGl0aWVzIChzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jZGZuLXRhYmxlLW9mLXN0YW5kYXJkLWNhcGFiaWxpdGllcylcbiAgY29uc3QgU1RBTkRBUkRfQ0FQUyA9IFtcbiAgICAnYnJvd3Nlck5hbWUnLFxuICAgICdicm93c2VyVmVyc2lvbicsXG4gICAgJ3BsYXRmb3JtTmFtZScsXG4gICAgJ2FjY2VwdEluc2VjdXJlQ2VydHMnLFxuICAgICdwYWdlTG9hZFN0cmF0ZWd5JyxcbiAgICAncHJveHknLFxuICAgICdzZXRXaW5kb3dSZWN0JyxcbiAgICAndGltZW91dHMnLFxuICAgICd1bmhhbmRsZWRQcm9tcHRCZWhhdmlvcidcbiAgXTtcblxuICBsZXQgcHJlZml4ZWRDYXBzID0ge307XG4gIGZvciAobGV0IFtuYW1lLCB2YWx1ZV0gb2YgXy50b1BhaXJzKGNhcHMpKSB7XG4gICAgaWYgKFNUQU5EQVJEX0NBUFMuaW5jbHVkZXMobmFtZSkgfHwgbmFtZS5pbmNsdWRlcygnOicpKSB7XG4gICAgICBwcmVmaXhlZENhcHNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlZml4ZWRDYXBzW2Ake1czQ19BUFBJVU1fUFJFRklYfToke25hbWV9YF0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHByZWZpeGVkQ2Fwcztcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQXBwaXVtUHJlZml4ZXMgKGNhcHMpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoY2FwcykpIHtcbiAgICByZXR1cm4gY2FwcztcbiAgfVxuXG4gIGNvbnN0IGZpeGVkQ2FwcyA9IHt9O1xuICBmb3IgKGxldCBbbmFtZSwgdmFsdWVdIG9mIF8udG9QYWlycyhjYXBzKSkge1xuICAgIGZpeGVkQ2Fwc1tyZW1vdmVBcHBpdW1QcmVmaXgobmFtZSldID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGZpeGVkQ2Fwcztcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQXBwaXVtUHJlZml4IChrZXkpIHtcbiAgY29uc3QgcHJlZml4ID0gYCR7VzNDX0FQUElVTV9QUkVGSVh9OmA7XG4gIHJldHVybiBfLnN0YXJ0c1dpdGgoa2V5LCBwcmVmaXgpID8ga2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKSA6IGtleTtcbn1cblxuZnVuY3Rpb24gZ2V0UGFja2FnZVZlcnNpb24gKHBrZ05hbWUpIHtcbiAgY29uc3QgcGtnSW5mbyA9IHJlcXVpcmUoYCR7cGtnTmFtZX0vcGFja2FnZS5qc29uYCkgfHwge307XG4gIHJldHVybiBwa2dJbmZvLnZlcnNpb247XG59XG5cbi8qKlxuICogUHVsbHMgdGhlIGluaXRpYWwgdmFsdWVzIG9mIEFwcGl1bSBzZXR0aW5ncyBmcm9tIHRoZSBnaXZlbiBjYXBhYmlsaXRpZXMgYXJndW1lbnQuXG4gKiBFYWNoIHNldHRpbmcgaXRlbSBtdXN0IHNhdGlzZnkgdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gKiBgc2V0dGluZ1tzZXR0aW5nX25hbWVdOiBzZXR0aW5nX3ZhbHVlYFxuICogVGhlIGNhcGFiaWxpdGllcyBhcmd1bWVudCBpdHNlbGYgZ2V0cyBtdXRhdGVkLCBzbyBpdCBkb2VzIG5vdCBjb250YWluIHBhcnNlZFxuICogc2V0dGluZ3MgYW55bW9yZSB0byBhdm9pZCBmdXJ0aGVyIHBhcnNpbmcgaXNzdWVzLlxuICogQ2hlY2tcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBpdW0vYXBwaXVtL2Jsb2IvbWFzdGVyL2RvY3MvZW4vYWR2YW5jZWQtY29uY2VwdHMvc2V0dGluZ3MubWRcbiAqIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIGF2YWlsYWJsZSBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gez9PYmplY3R9IGNhcHMgLSBDYXBhYmlsaXRpZXMgZGljdGlvbmFyeS4gSXQgaXMgbXV0YXRlZCBpZlxuICogb25lIG9yIG1vcmUgc2V0dGluZ3MgaGF2ZSBiZWVuIHB1bGxlZCBmcm9tIGl0XG4gKiBAcmV0dXJuIHtPYmplY3R9IC0gQW4gZW1wdHkgZGljdGlvbmFyeSBpZiB0aGUgZ2l2ZW4gY2FwcyBjb250YWlucyBub1xuICogc2V0dGluZyBpdGVtcyBvciBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBwYXJzZWQgQXBwaXVtIHNldHRpbmcgbmFtZXMgYWxvbmcgd2l0aFxuICogdGhlaXIgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBwdWxsU2V0dGluZ3MgKGNhcHMpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoY2FwcykgfHwgXy5pc0VtcHR5KGNhcHMpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyhjYXBzKSkge1xuICAgIGNvbnN0IG1hdGNoID0gL1xcYnNldHRpbmdzXFxbKFxcUyspXFxdJC8uZXhlYyhrZXkpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHJlc3VsdFttYXRjaFsxXV0gPSB2YWx1ZTtcbiAgICBkZWxldGUgY2Fwc1trZXldO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbnN0IHJvb3REaXIgPSBmcy5maW5kUm9vdChfX2Rpcm5hbWUpO1xuXG5cbi8qKlxuICogQSBNYXAgd2hlcmUgeW91IGNhbiBzZXQgcHJvcGVydGllcywgYnV0IG9ubHkgb25jZS4gQW5kIHlvdSBjYW4ndCByZW1vdmUgYW55dGhpbmcuIFNvIHRoZXJlLlxuICogQHRlbXBsYXRlIEssVlxuICogQGV4dGVuZHMge01hcDxLLFY+fVxuICovXG5jbGFzcyBSZWFkb25seU1hcCBleHRlbmRzIE1hcCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0t9IGtleVxuICAgKiBAcGFyYW0ge1Z9IHZhbHVlXG4gICAqL1xuICBzZXQgKGtleSwgdmFsdWUpIHtcbiAgICBpZiAodGhpcy5oYXMoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2tleX0gaXMgYWxyZWFkeSBzZXRgKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNldChrZXksIHZhbHVlKTtcbiAgfVxuXG4gIGRlbGV0ZSAoa2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2tleX0gY2Fubm90IGJlIGRlbGV0ZWRgKTtcbiAgfVxuXG4gIGNsZWFyICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjbGVhciBSZWFkb25seU1hcGApO1xuICB9XG59XG5cbmV4cG9ydCB7XG4gIGluc3BlY3RPYmplY3QsIHBhcnNlQ2Fwc0ZvcklubmVyRHJpdmVyLCBpbnNlcnRBcHBpdW1QcmVmaXhlcywgcm9vdERpcixcbiAgZ2V0UGFja2FnZVZlcnNpb24sIHB1bGxTZXR0aW5ncywgcmVtb3ZlQXBwaXVtUHJlZml4ZXMsIFJlYWRvbmx5TWFwXG59O1xuIl0sImZpbGUiOiJsaWIvdXRpbHMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
220
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlscy5qcyJdLCJuYW1lcyI6WyJXM0NfQVBQSVVNX1BSRUZJWCIsImlzU3Rkb3V0VFRZIiwicHJvY2VzcyIsInN0ZG91dCIsImlzVFRZIiwiaW5zcGVjdCIsIl8iLCJmbG93IiwicGFydGlhbFJpZ2h0IiwiZHVtcCIsImNvbG9ycyIsImRlcHRoIiwiY29tcGFjdCIsImFyZ3MiLCJsb2dnZXIiLCJpbmZvIiwicGFyc2VDYXBzRm9ySW5uZXJEcml2ZXIiLCJqc29ud3BDYXBhYmlsaXRpZXMiLCJ3M2NDYXBhYmlsaXRpZXMiLCJjb25zdHJhaW50cyIsImRlZmF1bHRDYXBhYmlsaXRpZXMiLCJoYXNXM0NDYXBzIiwiaXNQbGFpbk9iamVjdCIsImhhcyIsImhhc0pTT05XUENhcHMiLCJkZXNpcmVkQ2FwcyIsInByb2Nlc3NlZFczQ0NhcGFiaWxpdGllcyIsInByb2Nlc3NlZEpzb253cENhcGFiaWxpdGllcyIsInByb3RvY29sIiwiUFJPVE9DT0xTIiwiVzNDIiwiZXJyb3IiLCJFcnJvciIsImNsb25lRGVlcCIsImlzRW1wdHkiLCJkZWZhdWx0Q2FwS2V5IiwiZGVmYXVsdENhcFZhbHVlIiwidG9QYWlycyIsImlzQ2FwQWxyZWFkeVNldCIsImZpcnN0TWF0Y2hFbnRyeSIsImZpcnN0TWF0Y2giLCJyZW1vdmVBcHBpdW1QcmVmaXhlcyIsInJlbW92ZUFwcGl1bVByZWZpeCIsImFsd2F5c01hdGNoIiwiT2JqZWN0IiwiYXNzaWduIiwibWVzc2FnZSIsImluc2VydEFwcGl1bVByZWZpeGVzIiwiY2FwcyIsIlNUQU5EQVJEX0NBUFMiLCJwcmVmaXhlZENhcHMiLCJuYW1lIiwidmFsdWUiLCJpbmNsdWRlcyIsImZpeGVkQ2FwcyIsImtleSIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJnZXRQYWNrYWdlVmVyc2lvbiIsInBrZ05hbWUiLCJwa2dJbmZvIiwicmVxdWlyZSIsInZlcnNpb24iLCJwdWxsU2V0dGluZ3MiLCJyZXN1bHQiLCJtYXRjaCIsImV4ZWMiLCJyb290RGlyIiwiZnMiLCJmaW5kUm9vdCIsIl9fZGlybmFtZSIsIlJlYWRvbmx5TWFwIiwiTWFwIiwic2V0IiwiZGVsZXRlIiwiY2xlYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLFFBQTFCO0FBU0EsTUFBTUMsV0FBVyxHQUFHQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsS0FBbkM7O0FBT0EsTUFBTUMsT0FBTyxHQUFHQyxnQkFBRUMsSUFBRixDQUNkRCxnQkFBRUUsWUFBRixDQUNpRkMsYUFEakYsRUFFRTtBQUFDQyxFQUFBQSxNQUFNLEVBQUUsSUFBVDtBQUFlQyxFQUFBQSxLQUFLLEVBQUUsSUFBdEI7QUFBNEJDLEVBQUFBLE9BQU8sRUFBRSxDQUFDWDtBQUF0QyxDQUZGLENBRGMsRUFLZCxDQUFDLEdBQUdZLElBQUosS0FBYTtBQUNYQyxrQkFBT0MsSUFBUCxDQUFZLEdBQUdGLElBQWY7QUFDRCxDQVBhLENBQWhCOzs7O0FBa0JBLFNBQVNHLHVCQUFULENBQWtDQyxrQkFBbEMsRUFBc0RDLGVBQXRELEVBQXVFQyxXQUFXLEdBQUcsRUFBckYsRUFBeUZDLG1CQUFtQixHQUFHLEVBQS9HLEVBQW1IO0FBRWpILFFBQU1DLFVBQVUsR0FBR2YsZ0JBQUVnQixhQUFGLENBQWdCSixlQUFoQixNQUNoQlosZ0JBQUVpQixHQUFGLENBQU1MLGVBQU4sRUFBdUIsYUFBdkIsS0FBeUNaLGdCQUFFaUIsR0FBRixDQUFNTCxlQUFOLEVBQXVCLFlBQXZCLENBRHpCLENBQW5COztBQUVBLFFBQU1NLGFBQWEsR0FBR2xCLGdCQUFFZ0IsYUFBRixDQUFnQkwsa0JBQWhCLENBQXRCOztBQUNBLE1BQUlRLFdBQVcsR0FBRyxFQUFsQjtBQUNBLE1BQUlDLHdCQUF3QixHQUFHLElBQS9CO0FBQ0EsTUFBSUMsMkJBQTJCLEdBQUcsSUFBbEM7O0FBRUEsTUFBSSxDQUFDTixVQUFM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QUFDQSxXQUFPSixJQUFJLENBQUNPLEdBQUQsQ0FBWDtBQUNEOztBQUNELFNBQU9XLE1BQVA7QUFDRDs7QUFFRCxNQUFNRyxPQUFPLEdBQUdDLFlBQUdDLFFBQUgsQ0FBWUMsU0FBWixDQUFoQjs7OztBQVFBLE1BQU1DLFdBQU4sU0FBMEJDLEdBQTFCLENBQThCO0FBSzVCQyxFQUFBQSxHQUFHLENBQUVwQixHQUFGLEVBQU9ILEtBQVAsRUFBYztBQUNmLFFBQUksS0FBSzdCLEdBQUwsQ0FBU2dDLEdBQVQsQ0FBSixFQUFtQjtBQUNqQixZQUFNLElBQUl2QixLQUFKLENBQVcsR0FBRXVCLEdBQUksaUJBQWpCLENBQU47QUFDRDs7QUFDRCxXQUFPLE1BQU1vQixHQUFOLENBQVVwQixHQUFWLEVBQWVILEtBQWYsQ0FBUDtBQUNEOztBQUVEd0IsRUFBQUEsTUFBTSxHQUFJO0FBQ1IsV0FBTyxLQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLEtBQUssR0FBSTtBQUNQLFVBQU0sSUFBSTdDLEtBQUosQ0FBVywwQkFBWCxDQUFOO0FBQ0Q7O0FBbEIyQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBwcm9jZXNzQ2FwYWJpbGl0aWVzLCBQUk9UT0NPTFMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IGZzIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IGluc3BlY3QgYXMgZHVtcCB9IGZyb20gJ3V0aWwnO1xuXG5jb25zdCBXM0NfQVBQSVVNX1BSRUZJWCA9ICdhcHBpdW0nO1xuXG4vKipcbiAqXG4gKiBJZiBgc3Rkb3V0YCBpcyBhIFRUWSwgdGhpcyBpcyBgdHJ1ZWAuXG4gKlxuICogVXNlZCBmb3IgdGlnaHRlciBjb250cm9sIG92ZXIgbG9nIG91dHB1dC5cbiAqIEB0eXBlIHtib29sZWFufVxuICovXG5jb25zdCBpc1N0ZG91dFRUWSA9IHByb2Nlc3Muc3Rkb3V0LmlzVFRZO1xuXG4vKipcbiAqIER1bXBzIHRvIHZhbHVlIHRvIHRoZSBjb25zb2xlIHVzaW5nIGBpbmZvYCBsb2dnZXIuXG4gKlxuICogQHRvZG8gTWF5IHdhbnQgdG8gZm9yY2UgY29sb3IgdG8gYmUgYGZhbHNlYCBpZiB7QGxpbmsgaXNTdGRvdXRUVFl9IGlzIGBmYWxzZWAuXG4gKi9cbmNvbnN0IGluc3BlY3QgPSBfLmZsb3coXG4gIF8ucGFydGlhbFJpZ2h0KFxuICAgIC8qKiBAdHlwZSB7KG9iamVjdDogYW55LCBvcHRpb25zOiBpbXBvcnQoJ3V0aWwnKS5JbnNwZWN0T3B0aW9ucykgPT4gc3RyaW5nfSAqLyhkdW1wKSxcbiAgICB7Y29sb3JzOiB0cnVlLCBkZXB0aDogbnVsbCwgY29tcGFjdDogIWlzU3Rkb3V0VFRZfVxuICApLFxuICAoLi4uYXJncykgPT4ge1xuICAgIGxvZ2dlci5pbmZvKC4uLmFyZ3MpO1xuICB9KTtcblxuLyoqXG4gKiBUYWtlcyB0aGUgY2FwcyB0aGF0IHdlcmUgcHJvdmlkZWQgaW4gdGhlIHJlcXVlc3QgYW5kIHRyYW5zbGF0ZXMgdGhlbVxuICogaW50byBjYXBzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGlubmVyIGRyaXZlcnMuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGpzb253cENhcGFiaWxpdGllc1xuICogQHBhcmFtIHtPYmplY3R9IHczY0NhcGFiaWxpdGllc1xuICogQHBhcmFtIHtPYmplY3R9IGNvbnN0cmFpbnRzXG4gKiBAcGFyYW0ge09iamVjdH0gZGVmYXVsdENhcGFiaWxpdGllc1xuICovXG5mdW5jdGlvbiBwYXJzZUNhcHNGb3JJbm5lckRyaXZlciAoanNvbndwQ2FwYWJpbGl0aWVzLCB3M2NDYXBhYmlsaXRpZXMsIGNvbnN0cmFpbnRzID0ge30sIGRlZmF1bHRDYXBhYmlsaXRpZXMgPSB7fSkge1xuICAvLyBDaGVjayBpZiB0aGUgY2FsbGVyIHNlbnQgSlNPTldQIGNhcHMsIFczQyBjYXBzLCBvciBib3RoXG4gIGNvbnN0IGhhc1czQ0NhcHMgPSBfLmlzUGxhaW5PYmplY3QodzNjQ2FwYWJpbGl0aWVzKSAmJlxuICAgIChfLmhhcyh3M2NDYXBhYmlsaXRpZXMsICdhbHdheXNNYXRjaCcpIHx8IF8uaGFzKHczY0NhcGFiaWxpdGllcywgJ2ZpcnN0TWF0Y2gnKSk7XG4gIGNvbnN0IGhhc0pTT05XUENhcHMgPSBfLmlzUGxhaW5PYmplY3QoanNvbndwQ2FwYWJpbGl0aWVzKTtcbiAgbGV0IGRlc2lyZWRDYXBzID0ge307XG4gIGxldCBwcm9jZXNzZWRXM0NDYXBhYmlsaXRpZXMgPSBudWxsO1xuICBsZXQgcHJvY2Vzc2VkSnNvbndwQ2FwYWJpbGl0aWVzID0gbnVsbDtcblxuICBpZiAoIWhhc1czQ0NhcHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvdG9jb2w6IFBST1RPQ09MUy5XM0MsXG4gICAgICBlcnJvcjogbmV3IEVycm9yKCdXM0MgY2FwYWJpbGl0aWVzIHNob3VsZCBiZSBwcm92aWRlZCcpLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB7VzNDfSA9IFBST1RPQ09MUztcbiAgY29uc3QgcHJvdG9jb2wgPSBXM0M7XG5cbiAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IG11dGF0ZSB0aGUgb3JpZ2luYWwgYXJndW1lbnRzXG4gIGpzb253cENhcGFiaWxpdGllcyA9IF8uY2xvbmVEZWVwKGpzb253cENhcGFiaWxpdGllcyk7XG4gIHczY0NhcGFiaWxpdGllcyA9IF8uY2xvbmVEZWVwKHczY0NhcGFiaWxpdGllcyk7XG4gIGRlZmF1bHRDYXBhYmlsaXRpZXMgPSBfLmNsb25lRGVlcChkZWZhdWx0Q2FwYWJpbGl0aWVzKTtcblxuICBpZiAoIV8uaXNFbXB0eShkZWZhdWx0Q2FwYWJpbGl0aWVzKSkge1xuICAgIGlmIChoYXNXM0NDYXBzKSB7XG4gICAgICBmb3IgKGNvbnN0IFtkZWZhdWx0Q2FwS2V5LCBkZWZhdWx0Q2FwVmFsdWVdIG9mIF8udG9QYWlycyhkZWZhdWx0Q2FwYWJpbGl0aWVzKSkge1xuICAgICAgICBsZXQgaXNDYXBBbHJlYWR5U2V0ID0gZmFsc2U7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50IGluIGZpcnN0TWF0Y2ggZW50cmllc1xuICAgICAgICBmb3IgKGNvbnN0IGZpcnN0TWF0Y2hFbnRyeSBvZiAodzNjQ2FwYWJpbGl0aWVzLmZpcnN0TWF0Y2ggfHwgW10pKSB7XG4gICAgICAgICAgaWYgKF8uaXNQbGFpbk9iamVjdChmaXJzdE1hdGNoRW50cnkpXG4gICAgICAgICAgICAgICYmIF8uaGFzKHJlbW92ZUFwcGl1bVByZWZpeGVzKGZpcnN0TWF0Y2hFbnRyeSksIHJlbW92ZUFwcGl1bVByZWZpeChkZWZhdWx0Q2FwS2V5KSkpIHtcbiAgICAgICAgICAgIGlzQ2FwQWxyZWFkeVNldCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGtleSBpcyBhbHJlYWR5IHByZXNlbnQgaW4gYWx3YXlzTWF0Y2ggZW50cmllc1xuICAgICAgICBpc0NhcEFscmVhZHlTZXQgPSBpc0NhcEFscmVhZHlTZXQgfHwgKF8uaXNQbGFpbk9iamVjdCh3M2NDYXBhYmlsaXRpZXMuYWx3YXlzTWF0Y2gpXG4gICAgICAgICAgJiYgXy5oYXMocmVtb3ZlQXBwaXVtUHJlZml4ZXModzNjQ2FwYWJpbGl0aWVzLmFsd2F5c01hdGNoKSwgcmVtb3ZlQXBwaXVtUHJlZml4KGRlZmF1bHRDYXBLZXkpKSk7XG4gICAgICAgIGlmIChpc0NhcEFscmVhZHlTZXQpIHtcbiAgICAgICAgICAvLyBTa2lwIGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBwcm92aWRlZCBjYXBzXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IGFkZCB0aGUgZGVmYXVsdCBjYXBhYmlsaXR5IGlmIGl0IGlzIG5vdCBvdmVycmlkZGVuXG4gICAgICAgIGlmIChfLmlzRW1wdHkodzNjQ2FwYWJpbGl0aWVzLmZpcnN0TWF0Y2gpKSB7XG4gICAgICAgICAgdzNjQ2FwYWJpbGl0aWVzLmZpcnN0TWF0Y2ggPSBbe1tkZWZhdWx0Q2FwS2V5XTogZGVmYXVsdENhcFZhbHVlfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdzNjQ2FwYWJpbGl0aWVzLmZpcnN0TWF0Y2hbMF1bZGVmYXVsdENhcEtleV0gPSBkZWZhdWx0Q2FwVmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGhhc0pTT05XUENhcHMpIHtcbiAgICAgIGpzb253cENhcGFiaWxpdGllcyA9IE9iamVjdC5hc3NpZ24oe30sIHJlbW92ZUFwcGl1bVByZWZpeGVzKGRlZmF1bHRDYXBhYmlsaXRpZXMpLCBqc29ud3BDYXBhYmlsaXRpZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdldCBNSlNPTldQIGNhcHNcbiAgaWYgKGhhc0pTT05XUENhcHMpIHtcbiAgICBwcm9jZXNzZWRKc29ud3BDYXBhYmlsaXRpZXMgPSB7Li4uanNvbndwQ2FwYWJpbGl0aWVzfTtcbiAgfVxuXG4gIC8vIEdldCBXM0MgY2Fwc1xuICBpZiAoaGFzVzNDQ2Fwcykge1xuICAgIC8vIENhbGwgdGhlIHByb2Nlc3MgY2FwYWJpbGl0aWVzIGFsZ29yaXRobSB0byBmaW5kIG1hdGNoaW5nIGNhcHMgb24gdGhlIFczQ1xuICAgIC8vIChzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9qbGlwcHMvc2ltcGxlLXdkLXNwZWMjcHJvY2Vzc2luZy1jYXBhYmlsaXRpZXMpXG4gICAgdHJ5IHtcbiAgICAgIGRlc2lyZWRDYXBzID0gcHJvY2Vzc0NhcGFiaWxpdGllcyh3M2NDYXBhYmlsaXRpZXMsIGNvbnN0cmFpbnRzLCB0cnVlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmluZm8oYENvdWxkIG5vdCBwYXJzZSBXM0MgY2FwYWJpbGl0aWVzOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZXNpcmVkQ2FwcyxcbiAgICAgICAgcHJvY2Vzc2VkSnNvbndwQ2FwYWJpbGl0aWVzLFxuICAgICAgICBwcm9jZXNzZWRXM0NDYXBhYmlsaXRpZXMsXG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICBlcnJvcixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IHczYyBjYXBhYmlsaXRpZXMgcGF5bG9hZCB0aGF0IGNvbnRhaW5zIG9ubHkgdGhlIG1hdGNoaW5nIGNhcHMgaW4gYGFsd2F5c01hdGNoYFxuICAgIHByb2Nlc3NlZFczQ0NhcGFiaWxpdGllcyA9IHtcbiAgICAgIGFsd2F5c01hdGNoOiB7Li4uaW5zZXJ0QXBwaXVtUHJlZml4ZXMoZGVzaXJlZENhcHMpfSxcbiAgICAgIGZpcnN0TWF0Y2g6IFt7fV0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7ZGVzaXJlZENhcHMsIHByb2Nlc3NlZEpzb253cENhcGFiaWxpdGllcywgcHJvY2Vzc2VkVzNDQ2FwYWJpbGl0aWVzLCBwcm90b2NvbH07XG59XG5cbi8qKlxuICogVGFrZXMgYSBjYXBhYmlsaXRpZXMgb2JqZWN0cyBhbmQgcHJlZml4ZXMgY2FwYWJpbGl0aWVzIHdpdGggYGFwcGl1bTpgXG4gKiBAcGFyYW0ge09iamVjdH0gY2FwcyBEZXNpcmVkIGNhcGFiaWxpdGllcyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gaW5zZXJ0QXBwaXVtUHJlZml4ZXMgKGNhcHMpIHtcbiAgLy8gU3RhbmRhcmQsIG5vbi1wcmVmaXhlZCBjYXBhYmlsaXRpZXMgKHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNkZm4tdGFibGUtb2Ytc3RhbmRhcmQtY2FwYWJpbGl0aWVzKVxuICBjb25zdCBTVEFOREFSRF9DQVBTID0gW1xuICAgICdicm93c2VyTmFtZScsXG4gICAgJ2Jyb3dzZXJWZXJzaW9uJyxcbiAgICAncGxhdGZvcm1OYW1lJyxcbiAgICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycsXG4gICAgJ3BhZ2VMb2FkU3RyYXRlZ3knLFxuICAgICdwcm94eScsXG4gICAgJ3NldFdpbmRvd1JlY3QnLFxuICAgICd0aW1lb3V0cycsXG4gICAgJ3VuaGFuZGxlZFByb21wdEJlaGF2aW9yJ1xuICBdO1xuXG4gIGxldCBwcmVmaXhlZENhcHMgPSB7fTtcbiAgZm9yIChsZXQgW25hbWUsIHZhbHVlXSBvZiBfLnRvUGFpcnMoY2FwcykpIHtcbiAgICBpZiAoU1RBTkRBUkRfQ0FQUy5pbmNsdWRlcyhuYW1lKSB8fCBuYW1lLmluY2x1ZGVzKCc6JykpIHtcbiAgICAgIHByZWZpeGVkQ2Fwc1tuYW1lXSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmVmaXhlZENhcHNbYCR7VzNDX0FQUElVTV9QUkVGSVh9OiR7bmFtZX1gXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcHJlZml4ZWRDYXBzO1xufVxuXG5mdW5jdGlvbiByZW1vdmVBcHBpdW1QcmVmaXhlcyAoY2Fwcykge1xuICBpZiAoIV8uaXNQbGFpbk9iamVjdChjYXBzKSkge1xuICAgIHJldHVybiBjYXBzO1xuICB9XG5cbiAgY29uc3QgZml4ZWRDYXBzID0ge307XG4gIGZvciAobGV0IFtuYW1lLCB2YWx1ZV0gb2YgXy50b1BhaXJzKGNhcHMpKSB7XG4gICAgZml4ZWRDYXBzW3JlbW92ZUFwcGl1bVByZWZpeChuYW1lKV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZml4ZWRDYXBzO1xufVxuXG5mdW5jdGlvbiByZW1vdmVBcHBpdW1QcmVmaXggKGtleSkge1xuICBjb25zdCBwcmVmaXggPSBgJHtXM0NfQVBQSVVNX1BSRUZJWH06YDtcbiAgcmV0dXJuIF8uc3RhcnRzV2l0aChrZXksIHByZWZpeCkgPyBrZXkuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpIDoga2V5O1xufVxuXG5mdW5jdGlvbiBnZXRQYWNrYWdlVmVyc2lvbiAocGtnTmFtZSkge1xuICBjb25zdCBwa2dJbmZvID0gcmVxdWlyZShgJHtwa2dOYW1lfS9wYWNrYWdlLmpzb25gKSB8fCB7fTtcbiAgcmV0dXJuIHBrZ0luZm8udmVyc2lvbjtcbn1cblxuLyoqXG4gKiBQdWxscyB0aGUgaW5pdGlhbCB2YWx1ZXMgb2YgQXBwaXVtIHNldHRpbmdzIGZyb20gdGhlIGdpdmVuIGNhcGFiaWxpdGllcyBhcmd1bWVudC5cbiAqIEVhY2ggc2V0dGluZyBpdGVtIG11c3Qgc2F0aXNmeSB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAqIGBzZXR0aW5nW3NldHRpbmdfbmFtZV06IHNldHRpbmdfdmFsdWVgXG4gKiBUaGUgY2FwYWJpbGl0aWVzIGFyZ3VtZW50IGl0c2VsZiBnZXRzIG11dGF0ZWQsIHNvIGl0IGRvZXMgbm90IGNvbnRhaW4gcGFyc2VkXG4gKiBzZXR0aW5ncyBhbnltb3JlIHRvIGF2b2lkIGZ1cnRoZXIgcGFyc2luZyBpc3N1ZXMuXG4gKiBDaGVja1xuICogaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0vYmxvYi9tYXN0ZXIvZG9jcy9lbi9hZHZhbmNlZC1jb25jZXB0cy9zZXR0aW5ncy5tZFxuICogZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgYXZhaWxhYmxlIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSB7P09iamVjdH0gY2FwcyAtIENhcGFiaWxpdGllcyBkaWN0aW9uYXJ5LiBJdCBpcyBtdXRhdGVkIGlmXG4gKiBvbmUgb3IgbW9yZSBzZXR0aW5ncyBoYXZlIGJlZW4gcHVsbGVkIGZyb20gaXRcbiAqIEByZXR1cm4ge09iamVjdH0gLSBBbiBlbXB0eSBkaWN0aW9uYXJ5IGlmIHRoZSBnaXZlbiBjYXBzIGNvbnRhaW5zIG5vXG4gKiBzZXR0aW5nIGl0ZW1zIG9yIGEgZGljdGlvbmFyeSBjb250YWluaW5nIHBhcnNlZCBBcHBpdW0gc2V0dGluZyBuYW1lcyBhbG9uZyB3aXRoXG4gKiB0aGVpciB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHB1bGxTZXR0aW5ncyAoY2Fwcykge1xuICBpZiAoIV8uaXNQbGFpbk9iamVjdChjYXBzKSB8fCBfLmlzRW1wdHkoY2FwcykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKGNhcHMpKSB7XG4gICAgY29uc3QgbWF0Y2ggPSAvXFxic2V0dGluZ3NcXFsoXFxTKylcXF0kLy5leGVjKGtleSk7XG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgcmVzdWx0W21hdGNoWzFdXSA9IHZhbHVlO1xuICAgIGRlbGV0ZSBjYXBzW2tleV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuY29uc3Qgcm9vdERpciA9IGZzLmZpbmRSb290KF9fZGlybmFtZSk7XG5cblxuLyoqXG4gKiBBIE1hcCB3aGVyZSB5b3UgY2FuIHNldCBwcm9wZXJ0aWVzLCBidXQgb25seSBvbmNlLiBBbmQgeW91IGNhbid0IHJlbW92ZSBhbnl0aGluZy4gU28gdGhlcmUuXG4gKiBAdGVtcGxhdGUgSyxWXG4gKiBAZXh0ZW5kcyB7TWFwPEssVj59XG4gKi9cbmNsYXNzIFJlYWRvbmx5TWFwIGV4dGVuZHMgTWFwIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7S30ga2V5XG4gICAqIEBwYXJhbSB7Vn0gdmFsdWVcbiAgICovXG4gIHNldCAoa2V5LCB2YWx1ZSkge1xuICAgIGlmICh0aGlzLmhhcyhrZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7a2V5fSBpcyBhbHJlYWR5IHNldGApO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2V0KGtleSwgdmFsdWUpO1xuICB9XG5cbiAgZGVsZXRlICgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjbGVhciAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY2xlYXIgUmVhZG9ubHlNYXBgKTtcbiAgfVxufVxuXG5leHBvcnQge1xuICBpbnNwZWN0LCBwYXJzZUNhcHNGb3JJbm5lckRyaXZlciwgaW5zZXJ0QXBwaXVtUHJlZml4ZXMsIHJvb3REaXIsXG4gIGdldFBhY2thZ2VWZXJzaW9uLCBwdWxsU2V0dGluZ3MsIHJlbW92ZUFwcGl1bVByZWZpeGVzLCBSZWFkb25seU1hcFxufTtcbiJdLCJmaWxlIjoibGliL3V0aWxzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
|
@@ -83,4 +83,4 @@ const installLocalExtension = _lodash.default.curry(async (appiumHome, type, pat
|
|
|
83
83
|
exports.installLocalExtension = installLocalExtension;require('source-map-support').install();
|
|
84
84
|
|
|
85
85
|
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvY2xpL2NsaS1oZWxwZXJzLmpzIl0sIm5hbWVzIjpbIkVYRUNVVEFCTEUiLCJwYXRoIiwiam9pbiIsIlBST0pFQ1RfUk9PVCIsInJ1biIsImFwcGl1bUhvbWUiLCJhcmdzIiwiZW52IiwiQVBQSVVNX0hPTUUiLCJQQVRIIiwicHJvY2VzcyIsImV4ZWNQYXRoIiwiY3dkIiwiZXJyIiwic3Rkb3V0Iiwic3RkZXJyIiwicnVuRXJyIiwiT2JqZWN0IiwiYXNzaWduIiwib3JpZ2luYWxNZXNzYWdlIiwibWVzc2FnZSIsInRyaW0iLCJjb21tYW5kIiwicnVuQXBwaXVtIiwiXyIsImN1cnJ5IiwicnVuQXBwaXVtUmF3IiwicnVuQXBwaXVtSnNvbiIsImluY2x1ZGVzIiwicHVzaCIsInJlc3VsdCIsIkpTT04iLCJwYXJzZSIsImluc3RhbGxMb2NhbEV4dGVuc2lvbiIsInR5cGUiLCJwYXRoVG9FeHRlbnNpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBS08sTUFBTUEsVUFBVSxHQUFHQyxjQUFLQyxJQUFMLENBQ3hCQyxxQkFEd0IsRUFFeEIsVUFGd0IsRUFHeEIsUUFId0IsRUFJeEIsT0FKd0IsRUFLeEIsS0FMd0IsRUFNeEIsU0FOd0IsQ0FBbkI7Ozs7QUFpQlAsZUFBZUMsR0FBZixDQUFvQkMsVUFBcEIsRUFBZ0NDLElBQWhDLEVBQXNDO0FBQ3BDLFFBQU1DLEdBQUcsR0FBRztBQUNWQyxJQUFBQSxXQUFXLEVBQUVILFVBREg7QUFFVkksSUFBQUEsSUFBSSxFQUFFQyxPQUFPLENBQUNILEdBQVIsQ0FBWUU7QUFGUixHQUFaOztBQUlBLE1BQUk7QUFJRixXQUFPLE1BQU0sd0JBQUtDLE9BQU8sQ0FBQ0MsUUFBYixFQUF1QixDQUFDWCxVQUFELEVBQWEsR0FBR00sSUFBaEIsQ0FBdkIsRUFBOEM7QUFDekRNLE1BQUFBLEdBQUcsRUFBRVQscUJBRG9EO0FBRXpESSxNQUFBQTtBQUZ5RCxLQUE5QyxDQUFiO0FBSUQsR0FSRCxDQVFFLE9BQU9NLEdBQVAsRUFBWTtBQUNaLFVBQU07QUFBQ0MsTUFBQUEsTUFBRDtBQUFTQyxNQUFBQTtBQUFULFFBQXVERixHQUE3RDtBQUlBLFVBQU1HLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQ2JMLEdBRGEsRUFFYjtBQUNFTSxNQUFBQSxlQUFlLEVBQUVOLEdBQUcsQ0FBQ08sT0FEdkI7QUFFRUEsTUFBQUEsT0FBTyxFQUFHLEdBQUVOLE1BQU0sQ0FBQ08sSUFBUCxFQUFjLE9BQU1OLE1BQU0sQ0FBQ00sSUFBUCxFQUFjLEVBRmhEO0FBR0VDLE1BQUFBLE9BQU8sRUFBRyxHQUFFWixPQUFPLENBQUNDLFFBQVMsSUFBR1gsVUFBVyxJQUFHTSxJQUFJLENBQUNKLElBQUwsQ0FBVSxHQUFWLENBQWUsRUFIL0Q7QUFJRUssTUFBQUEsR0FKRjtBQUtFSyxNQUFBQSxHQUFHLEVBQUVUO0FBTFAsS0FGYSxDQUFmO0FBU0EsVUFBTWEsTUFBTjtBQUNEO0FBQ0Y7O0FBT00sTUFBTU8sU0FBUyxHQUFHQyxnQkFBRUMsS0FBRixDQU12QixPQUFPcEIsVUFBUCxFQUFtQkMsSUFBbkIsS0FBNEI7QUFDMUIsUUFBTTtBQUFDUSxJQUFBQTtBQUFELE1BQVcsTUFBTVYsR0FBRyxDQUFDQyxVQUFELEVBQWFDLElBQWIsQ0FBMUI7QUFDQSxTQUFPUSxNQUFQO0FBQ0QsQ0FUc0IsQ0FBbEI7Ozs7QUFnQkEsTUFBTVksWUFBWSxHQUFHRixnQkFBRUMsS0FBRixDQU0xQixPQUFPcEIsVUFBUCxFQUFtQkMsSUFBbkIsS0FBNEIsTUFBTUYsR0FBRyxDQUFDQyxVQUFELEVBQWFDLElBQWIsQ0FOWCxDQUFyQjs7OztBQWFBLE1BQU1xQixhQUFhLEdBQUdILGdCQUFFQyxLQUFGLENBTTNCLE9BQU9wQixVQUFQLEVBQW1CQyxJQUFuQixLQUE0QjtBQUMxQixNQUFJLENBQUNBLElBQUksQ0FBQ3NCLFFBQUwsQ0FBYyxRQUFkLENBQUwsRUFBOEI7QUFDNUJ0QixJQUFBQSxJQUFJLENBQUN1QixJQUFMLENBQVUsUUFBVjtBQUNEOztBQUNELFFBQU1DLE1BQU0sR0FBRyxNQUFNUCxTQUFTLENBQUNsQixVQUFELEVBQWFDLElBQWIsQ0FBOUI7O0FBQ0EsTUFBSTtBQUNGLFdBQU95QixJQUFJLENBQUNDLEtBQUwsQ0FBV0YsTUFBWCxDQUFQO0FBQ0QsR0FGRCxDQUVFLE9BQU9qQixHQUFQLEVBQVk7QUFDWkEsSUFBQUEsR0FBRyxDQUFDTyxPQUFKLEdBQWUsMkNBQTBDVSxNQUFPLEVBQWhFO0FBQ0EsVUFBTWpCLEdBQU47QUFDRDtBQUNGLENBakIwQixDQUF0Qjs7OztBQXVCQSxNQUFNb0IscUJBQXFCLEdBQUdULGdCQUFFQyxLQUFGLENBT25DLE9BQU9wQixVQUFQLEVBQW1CNkIsSUFBbkIsRUFBeUJDLGVBQXpCLEtBQ0UsTUFBTVIsYUFBYSxDQUFDdEIsVUFBRCxFQUFhLENBQzlCNkIsSUFEOEIsRUFFOUIsU0FGOEIsRUFHOUIsVUFIOEIsRUFJOUIsT0FKOEIsRUFLOUJDLGVBTDhCLENBQWIsQ0FSYyxDQUE5QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtleGVjfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHtQUk9KRUNUX1JPT1R9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogUGF0aCB0byB0aGUgYGFwcGl1bWAgZXhlY3V0YWJsZS4gU29ydCBvZi5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYRUNVVEFCTEUgPSBwYXRoLmpvaW4oXG4gIFBST0pFQ1RfUk9PVCxcbiAgJ3BhY2thZ2VzJyxcbiAgJ2FwcGl1bScsXG4gICdidWlsZCcsXG4gICdsaWInLFxuICAnbWFpbi5qcycsXG4pO1xuXG4vKipcbiAqIFJ1bnMgdGhlIGBhcHBpdW1gIGV4ZWN1dGFibGUgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAqXG4gKiBJZiB0aGUgcHJvY2VzcyBleGl0cyB3aXRoIGEgbm9uemVybyBjb2RlLCB0aGUgZXJyb3Igd2lsbCBiZSBhXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwaXVtSG9tZSAtIFBhdGggdG8gYEFQUElVTV9IT01FYFxuICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIEFyZ3MsIGluY2x1ZGluZyBjb21tYW5kc1xuICogQHJldHVybnMge1Byb21pc2U8VGVlblByb2Nlc3NFeGVjUmVzdWx0Pn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuIChhcHBpdW1Ib21lLCBhcmdzKSB7XG4gIGNvbnN0IGVudiA9IHtcbiAgICBBUFBJVU1fSE9NRTogYXBwaXVtSG9tZSxcbiAgICBQQVRIOiBwcm9jZXNzLmVudi5QQVRILFxuICB9O1xuICB0cnkge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtUZWVuUHJvY2Vzc0V4ZWNSZXN1bHR9XG4gICAgICovXG4gICAgcmV0dXJuIGF3YWl0IGV4ZWMocHJvY2Vzcy5leGVjUGF0aCwgW0VYRUNVVEFCTEUsIC4uLmFyZ3NdLCB7XG4gICAgICBjd2Q6IFBST0pFQ1RfUk9PVCxcbiAgICAgIGVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3Qge3N0ZG91dCwgc3RkZXJyfSA9IC8qKiBAdHlwZSB7VGVlblByb2Nlc3NFeGVjRXJyb3J9ICovKGVycik7XG4gICAgLyoqXG4gICAgICogQHR5cGUge0FwcGl1bVJ1bkVycm9yfVxuICAgICAqL1xuICAgIGNvbnN0IHJ1bkVyciA9IE9iamVjdC5hc3NpZ24oXG4gICAgICBlcnIsXG4gICAgICB7XG4gICAgICAgIG9yaWdpbmFsTWVzc2FnZTogZXJyLm1lc3NhZ2UsXG4gICAgICAgIG1lc3NhZ2U6IGAke3N0ZG91dC50cmltKCl9XFxuXFxuJHtzdGRlcnIudHJpbSgpfWAsXG4gICAgICAgIGNvbW1hbmQ6IGAke3Byb2Nlc3MuZXhlY1BhdGh9ICR7RVhFQ1VUQUJMRX0gJHthcmdzLmpvaW4oJyAnKX1gLFxuICAgICAgICBlbnYsXG4gICAgICAgIGN3ZDogUFJPSkVDVF9ST09ULFxuICAgICAgfSk7XG4gICAgdGhyb3cgcnVuRXJyO1xuICB9XG59XG5cbi8qKlxuICogUnVucyB0aGUgYGFwcGl1bWAgZXhlY3V0YWJsZSB3aXRoIHRoZSBnaXZlbiBhcmdzIGFuZCByZXR1cm5zIGNvbnRlbnRzIG9mIGBTVERPVVRgLlxuICpcbiAqIERvIG5vdCB1c2UgdGhpcyB3aGVuIHRlc3RpbmcgZXJyb3Igb3V0cHV0LCBhcyBpdCB3aWxsIGxpa2VseSBiZSBpbiBgU1RERVJSYC4gVXNlIHtAbGluayBydW5BcHBpdW1SYXd9IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5BcHBpdW0gPSBfLmN1cnJ5KFxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcGl1bUhvbWUgLSBQYXRoIHRvIGBBUFBJVU1fSE9NRWBcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIEFyZ3MsIGluY2x1ZGluZyBjb21tYW5kc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSBDb250ZW50cyBvZiBgYFNURE9VVGBgXG4gICAqL1xuICBhc3luYyAoYXBwaXVtSG9tZSwgYXJncykgPT4ge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgcnVuKGFwcGl1bUhvbWUsIGFyZ3MpO1xuICAgIHJldHVybiBzdGRvdXQ7XG4gIH0sXG4pO1xuXG4vKipcbiAqIFJ1bnMgdGhlIGBhcHBpdW1gIGV4ZWN1dGFibGUgd2l0aCB0aGUgZ2l2ZW4gYXJncyBhbmQgcmV0dXJucyB0aGUgZW50aXJlXG4gKiB7QGxpbmsgVGVlblByb2Nlc3NFeGVjUmVzdWx0fSBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5BcHBpdW1SYXcgPSBfLmN1cnJ5KFxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcGl1bUhvbWUgLSBQYXRoIHRvIGBBUFBJVU1fSE9NRWBcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIEFyZ3MsIGluY2x1ZGluZyBjb21tYW5kc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUZWVuUHJvY2Vzc0V4ZWNSZXN1bHQ+fSBSYXcgcmVzdWx0IG9mIGBleGVjYFxuICAgKi9cbiAgYXN5bmMgKGFwcGl1bUhvbWUsIGFyZ3MpID0+
|
|
86
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvY2xpL2NsaS1oZWxwZXJzLmpzIl0sIm5hbWVzIjpbIkVYRUNVVEFCTEUiLCJwYXRoIiwiam9pbiIsIlBST0pFQ1RfUk9PVCIsInJ1biIsImFwcGl1bUhvbWUiLCJhcmdzIiwiZW52IiwiQVBQSVVNX0hPTUUiLCJQQVRIIiwicHJvY2VzcyIsImV4ZWNQYXRoIiwiY3dkIiwiZXJyIiwic3Rkb3V0Iiwic3RkZXJyIiwicnVuRXJyIiwiT2JqZWN0IiwiYXNzaWduIiwib3JpZ2luYWxNZXNzYWdlIiwibWVzc2FnZSIsInRyaW0iLCJjb21tYW5kIiwicnVuQXBwaXVtIiwiXyIsImN1cnJ5IiwicnVuQXBwaXVtUmF3IiwicnVuQXBwaXVtSnNvbiIsImluY2x1ZGVzIiwicHVzaCIsInJlc3VsdCIsIkpTT04iLCJwYXJzZSIsImluc3RhbGxMb2NhbEV4dGVuc2lvbiIsInR5cGUiLCJwYXRoVG9FeHRlbnNpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBS08sTUFBTUEsVUFBVSxHQUFHQyxjQUFLQyxJQUFMLENBQ3hCQyxxQkFEd0IsRUFFeEIsVUFGd0IsRUFHeEIsUUFId0IsRUFJeEIsT0FKd0IsRUFLeEIsS0FMd0IsRUFNeEIsU0FOd0IsQ0FBbkI7Ozs7QUFpQlAsZUFBZUMsR0FBZixDQUFvQkMsVUFBcEIsRUFBZ0NDLElBQWhDLEVBQXNDO0FBQ3BDLFFBQU1DLEdBQUcsR0FBRztBQUNWQyxJQUFBQSxXQUFXLEVBQUVILFVBREg7QUFFVkksSUFBQUEsSUFBSSxFQUFFQyxPQUFPLENBQUNILEdBQVIsQ0FBWUU7QUFGUixHQUFaOztBQUlBLE1BQUk7QUFJRixXQUFPLE1BQU0sd0JBQUtDLE9BQU8sQ0FBQ0MsUUFBYixFQUF1QixDQUFDWCxVQUFELEVBQWEsR0FBR00sSUFBaEIsQ0FBdkIsRUFBOEM7QUFDekRNLE1BQUFBLEdBQUcsRUFBRVQscUJBRG9EO0FBRXpESSxNQUFBQTtBQUZ5RCxLQUE5QyxDQUFiO0FBSUQsR0FSRCxDQVFFLE9BQU9NLEdBQVAsRUFBWTtBQUNaLFVBQU07QUFBQ0MsTUFBQUEsTUFBRDtBQUFTQyxNQUFBQTtBQUFULFFBQXVERixHQUE3RDtBQUlBLFVBQU1HLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQ2JMLEdBRGEsRUFFYjtBQUNFTSxNQUFBQSxlQUFlLEVBQUVOLEdBQUcsQ0FBQ08sT0FEdkI7QUFFRUEsTUFBQUEsT0FBTyxFQUFHLEdBQUVOLE1BQU0sQ0FBQ08sSUFBUCxFQUFjLE9BQU1OLE1BQU0sQ0FBQ00sSUFBUCxFQUFjLEVBRmhEO0FBR0VDLE1BQUFBLE9BQU8sRUFBRyxHQUFFWixPQUFPLENBQUNDLFFBQVMsSUFBR1gsVUFBVyxJQUFHTSxJQUFJLENBQUNKLElBQUwsQ0FBVSxHQUFWLENBQWUsRUFIL0Q7QUFJRUssTUFBQUEsR0FKRjtBQUtFSyxNQUFBQSxHQUFHLEVBQUVUO0FBTFAsS0FGYSxDQUFmO0FBU0EsVUFBTWEsTUFBTjtBQUNEO0FBQ0Y7O0FBT00sTUFBTU8sU0FBUyxHQUFHQyxnQkFBRUMsS0FBRixDQU12QixPQUFPcEIsVUFBUCxFQUFtQkMsSUFBbkIsS0FBNEI7QUFDMUIsUUFBTTtBQUFDUSxJQUFBQTtBQUFELE1BQVcsTUFBTVYsR0FBRyxDQUFDQyxVQUFELEVBQWFDLElBQWIsQ0FBMUI7QUFDQSxTQUFPUSxNQUFQO0FBQ0QsQ0FUc0IsQ0FBbEI7Ozs7QUFnQkEsTUFBTVksWUFBWSxHQUFHRixnQkFBRUMsS0FBRixDQU0xQixPQUFPcEIsVUFBUCxFQUFtQkMsSUFBbkIsS0FBNEIsTUFBTUYsR0FBRyxDQUFDQyxVQUFELEVBQWFDLElBQWIsQ0FOWCxDQUFyQjs7OztBQWFBLE1BQU1xQixhQUFhLEdBQUdILGdCQUFFQyxLQUFGLENBTTNCLE9BQU9wQixVQUFQLEVBQW1CQyxJQUFuQixLQUE0QjtBQUMxQixNQUFJLENBQUNBLElBQUksQ0FBQ3NCLFFBQUwsQ0FBYyxRQUFkLENBQUwsRUFBOEI7QUFDNUJ0QixJQUFBQSxJQUFJLENBQUN1QixJQUFMLENBQVUsUUFBVjtBQUNEOztBQUNELFFBQU1DLE1BQU0sR0FBRyxNQUFNUCxTQUFTLENBQUNsQixVQUFELEVBQWFDLElBQWIsQ0FBOUI7O0FBQ0EsTUFBSTtBQUNGLFdBQU95QixJQUFJLENBQUNDLEtBQUwsQ0FBV0YsTUFBWCxDQUFQO0FBQ0QsR0FGRCxDQUVFLE9BQU9qQixHQUFQLEVBQVk7QUFDWkEsSUFBQUEsR0FBRyxDQUFDTyxPQUFKLEdBQWUsMkNBQTBDVSxNQUFPLEVBQWhFO0FBQ0EsVUFBTWpCLEdBQU47QUFDRDtBQUNGLENBakIwQixDQUF0Qjs7OztBQXVCQSxNQUFNb0IscUJBQXFCLEdBQUdULGdCQUFFQyxLQUFGLENBT25DLE9BQU9wQixVQUFQLEVBQW1CNkIsSUFBbkIsRUFBeUJDLGVBQXpCLEtBQ0UsTUFBTVIsYUFBYSxDQUFDdEIsVUFBRCxFQUFhLENBQzlCNkIsSUFEOEIsRUFFOUIsU0FGOEIsRUFHOUIsVUFIOEIsRUFJOUIsT0FKOEIsRUFLOUJDLGVBTDhCLENBQWIsQ0FSYyxDQUE5QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtleGVjfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHtQUk9KRUNUX1JPT1R9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogUGF0aCB0byB0aGUgYGFwcGl1bWAgZXhlY3V0YWJsZS4gU29ydCBvZi5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYRUNVVEFCTEUgPSBwYXRoLmpvaW4oXG4gIFBST0pFQ1RfUk9PVCxcbiAgJ3BhY2thZ2VzJyxcbiAgJ2FwcGl1bScsXG4gICdidWlsZCcsXG4gICdsaWInLFxuICAnbWFpbi5qcycsXG4pO1xuXG4vKipcbiAqIFJ1bnMgdGhlIGBhcHBpdW1gIGV4ZWN1dGFibGUgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAqXG4gKiBJZiB0aGUgcHJvY2VzcyBleGl0cyB3aXRoIGEgbm9uemVybyBjb2RlLCB0aGUgZXJyb3Igd2lsbCBiZSBhXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwaXVtSG9tZSAtIFBhdGggdG8gYEFQUElVTV9IT01FYFxuICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIEFyZ3MsIGluY2x1ZGluZyBjb21tYW5kc1xuICogQHJldHVybnMge1Byb21pc2U8VGVlblByb2Nlc3NFeGVjUmVzdWx0Pn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuIChhcHBpdW1Ib21lLCBhcmdzKSB7XG4gIGNvbnN0IGVudiA9IHtcbiAgICBBUFBJVU1fSE9NRTogYXBwaXVtSG9tZSxcbiAgICBQQVRIOiBwcm9jZXNzLmVudi5QQVRILFxuICB9O1xuICB0cnkge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtUZWVuUHJvY2Vzc0V4ZWNSZXN1bHR9XG4gICAgICovXG4gICAgcmV0dXJuIGF3YWl0IGV4ZWMocHJvY2Vzcy5leGVjUGF0aCwgW0VYRUNVVEFCTEUsIC4uLmFyZ3NdLCB7XG4gICAgICBjd2Q6IFBST0pFQ1RfUk9PVCxcbiAgICAgIGVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3Qge3N0ZG91dCwgc3RkZXJyfSA9IC8qKiBAdHlwZSB7VGVlblByb2Nlc3NFeGVjRXJyb3J9ICovKGVycik7XG4gICAgLyoqXG4gICAgICogQHR5cGUge0FwcGl1bVJ1bkVycm9yfVxuICAgICAqL1xuICAgIGNvbnN0IHJ1bkVyciA9IE9iamVjdC5hc3NpZ24oXG4gICAgICBlcnIsXG4gICAgICB7XG4gICAgICAgIG9yaWdpbmFsTWVzc2FnZTogZXJyLm1lc3NhZ2UsXG4gICAgICAgIG1lc3NhZ2U6IGAke3N0ZG91dC50cmltKCl9XFxuXFxuJHtzdGRlcnIudHJpbSgpfWAsXG4gICAgICAgIGNvbW1hbmQ6IGAke3Byb2Nlc3MuZXhlY1BhdGh9ICR7RVhFQ1VUQUJMRX0gJHthcmdzLmpvaW4oJyAnKX1gLFxuICAgICAgICBlbnYsXG4gICAgICAgIGN3ZDogUFJPSkVDVF9ST09ULFxuICAgICAgfSk7XG4gICAgdGhyb3cgcnVuRXJyO1xuICB9XG59XG5cbi8qKlxuICogUnVucyB0aGUgYGFwcGl1bWAgZXhlY3V0YWJsZSB3aXRoIHRoZSBnaXZlbiBhcmdzIGFuZCByZXR1cm5zIGNvbnRlbnRzIG9mIGBTVERPVVRgLlxuICpcbiAqIERvIG5vdCB1c2UgdGhpcyB3aGVuIHRlc3RpbmcgZXJyb3Igb3V0cHV0LCBhcyBpdCB3aWxsIGxpa2VseSBiZSBpbiBgU1RERVJSYC4gVXNlIHtAbGluayBydW5BcHBpdW1SYXd9IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5BcHBpdW0gPSBfLmN1cnJ5KFxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcGl1bUhvbWUgLSBQYXRoIHRvIGBBUFBJVU1fSE9NRWBcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIEFyZ3MsIGluY2x1ZGluZyBjb21tYW5kc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSBDb250ZW50cyBvZiBgYFNURE9VVGBgXG4gICAqL1xuICBhc3luYyAoYXBwaXVtSG9tZSwgYXJncykgPT4ge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgcnVuKGFwcGl1bUhvbWUsIGFyZ3MpO1xuICAgIHJldHVybiBzdGRvdXQ7XG4gIH0sXG4pO1xuXG4vKipcbiAqIFJ1bnMgdGhlIGBhcHBpdW1gIGV4ZWN1dGFibGUgd2l0aCB0aGUgZ2l2ZW4gYXJncyBhbmQgcmV0dXJucyB0aGUgZW50aXJlXG4gKiB7QGxpbmsgVGVlblByb2Nlc3NFeGVjUmVzdWx0fSBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5BcHBpdW1SYXcgPSBfLmN1cnJ5KFxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcGl1bUhvbWUgLSBQYXRoIHRvIGBBUFBJVU1fSE9NRWBcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIEFyZ3MsIGluY2x1ZGluZyBjb21tYW5kc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUZWVuUHJvY2Vzc0V4ZWNSZXN1bHQ+fSBSYXcgcmVzdWx0IG9mIGBleGVjYFxuICAgKi9cbiAgYXN5bmMgKGFwcGl1bUhvbWUsIGFyZ3MpID0+IGF3YWl0IHJ1bihhcHBpdW1Ib21lLCBhcmdzKSxcbik7XG5cbi8qKlxuICogUnVucyB0aGUgYGFwcGl1bWAgZXhlY3V0YWJsZSB3aXRoIHRoZSBnaXZlbiBhcmdzIGluIEpTT04gbW9kZS5cbiAqIFdpbGwgcmVqZWN0IHdpdGggdGhlIGNvbnRlbnRzIG9mIGBTVERPVVRgICh3aGljaCB3ZXJlIHRvIGJlIHBhc3JlZCkgaWYgcGFyc2luZyBpbnRvIEpTT04gZmFpbHMuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5BcHBpdW1Kc29uID0gXy5jdXJyeShcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBpdW1Ib21lIC0gUGF0aCB0byBgQVBQSVVNX0hPTUVgXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3MgLSBBcmdzLCBpbmNsdWRpbmcgY29tbWFuZHNcbiAgICogQHJldHVybnMge1Byb21pc2U8VGVlblByb2Nlc3NFeGVjUmVzdWx0Pn0gUmF3IHJlc3VsdCBvZiBgZXhlY2BcbiAgICovXG4gIGFzeW5jIChhcHBpdW1Ib21lLCBhcmdzKSA9PiB7XG4gICAgaWYgKCFhcmdzLmluY2x1ZGVzKCctLWpzb24nKSkge1xuICAgICAgYXJncy5wdXNoKCctLWpzb24nKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnVuQXBwaXVtKGFwcGl1bUhvbWUsIGFyZ3MpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgZXJyLm1lc3NhZ2UgPSBgRXJyb3IgcGFyc2luZyBKU09OLiBDb250ZW50cyBvZiBTVERPVVQ6ICR7cmVzdWx0fWA7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9LFxuKTtcblxuLyoqXG4gKiBHaXZlbiBhIHBhdGggdG8gYSBsb2NhbCBleHRlbnNpb24sIGluc3RhbGwgaXQgaW50byBgQVBQSVVNX0hPTUVgIHZpYSBDTEkuXG4gKi9cbmV4cG9ydCBjb25zdCBpbnN0YWxsTG9jYWxFeHRlbnNpb24gPSBfLmN1cnJ5KFxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcGl1bUhvbWVcbiAgICogQHBhcmFtIHtpbXBvcnQoJy4uLy4uL2xpYi9leHQtY29uZmlnLWlvJykuRXh0ZW5zaW9uVHlwZX0gdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aFRvRXh0ZW5zaW9uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG9iamVjdD59XG4gICAqL1xuICBhc3luYyAoYXBwaXVtSG9tZSwgdHlwZSwgcGF0aFRvRXh0ZW5zaW9uKSA9PlxuICAgIGF3YWl0IHJ1bkFwcGl1bUpzb24oYXBwaXVtSG9tZSwgW1xuICAgICAgdHlwZSxcbiAgICAgICdpbnN0YWxsJyxcbiAgICAgICctLXNvdXJjZScsXG4gICAgICAnbG9jYWwnLFxuICAgICAgcGF0aFRvRXh0ZW5zaW9uLFxuICAgIF0pLFxuKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcnVuQXBwaXVtfS5cbiAqIEBwcml2YXRlXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBSdW5BcHBpdW1PcHRpb25zXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtyYXddIC0gV2hldGhlciB0byByZXR1cm4gdGhlIHJhdyBvdXRwdXQgZnJvbSBgdGVlbl9wcm9jZXNzYFxuICovXG5cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gYnkgYWxsIG9mIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIHdoaWNoIGV4ZWN1dGUgYGFwcGl1bWAuXG4gKiBAdHlwZWRlZiB7RXJyb3IgJiBBcHBpdW1SdW5FcnJvclByb3BzICYgaW1wb3J0KCcuLi8uLi9saWIvY2xpL25wbScpLlRlZW5Qcm9jZXNzRXhlY0Vycm9yUHJvcHN9IEFwcGl1bVJ1bkVycm9yXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi8uLi9saWIvY2xpL25wbScpLlRlZW5Qcm9jZXNzRXhlY1Jlc3VsdH0gVGVlblByb2Nlc3NFeGVjUmVzdWx0XG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi8uLi9saWIvY2xpL25wbScpLlRlZW5Qcm9jZXNzRXhlY0Vycm9yfSBUZWVuUHJvY2Vzc0V4ZWNFcnJvclxuICovXG5cbi8qKlxuICogV3JhcHMgdGhlIGVycm9yIHJldHVybmVkIGJ5IHtAbGluayBleGVjfS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFwcGl1bVJ1bkVycm9yUHJvcHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBvcmlnaW5hbE1lc3NhZ2UgLSBPcmlnaW5hbCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tbWFuZCAtIENvbW1hbmQgdGhhdCB3YXMgcnVuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZW52IC0gRW52aXJvbm1lbnQgdmFyaWFibGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY3dkIC0gQ3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICovXG4iXSwiZmlsZSI6InRlc3QvY2xpL2NsaS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
@@ -4,8 +4,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
|
|
5
5
|
require("source-map-support/register");
|
|
6
6
|
|
|
7
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
8
|
-
|
|
9
7
|
var _sinon = _interopRequireDefault(require("sinon"));
|
|
10
8
|
|
|
11
9
|
var _parser = _interopRequireDefault(require("../lib/cli/parser"));
|
|
@@ -17,29 +15,84 @@ var _logger = _interopRequireDefault(require("../lib/logger"));
|
|
|
17
15
|
var _schema = require("../lib/schema/schema");
|
|
18
16
|
|
|
19
17
|
describe('Config', function () {
|
|
18
|
+
let sandbox;
|
|
19
|
+
beforeEach(function () {
|
|
20
|
+
sandbox = _sinon.default.createSandbox();
|
|
21
|
+
});
|
|
22
|
+
afterEach(function () {
|
|
23
|
+
sandbox.restore();
|
|
24
|
+
});
|
|
20
25
|
describe('Appium config', function () {
|
|
26
|
+
let log;
|
|
27
|
+
let dir;
|
|
28
|
+
beforeEach(function () {
|
|
29
|
+
log = sandbox.spy(console, 'log');
|
|
30
|
+
dir = sandbox.spy(console, 'dir');
|
|
31
|
+
});
|
|
32
|
+
describe('showBuildInfo()', function () {
|
|
33
|
+
it('should log build info to console', async function () {
|
|
34
|
+
const config = (0, _config.getBuildInfo)();
|
|
35
|
+
await (0, _config.showBuildInfo)();
|
|
36
|
+
log.should.have.been.calledOnce;
|
|
37
|
+
log.firstCall.args.should.contain(JSON.stringify(config));
|
|
38
|
+
});
|
|
39
|
+
});
|
|
21
40
|
describe('showConfig', function () {
|
|
22
|
-
|
|
23
|
-
|
|
41
|
+
describe('when a config file is present', function () {
|
|
42
|
+
it('should dump the current Appium config', function () {
|
|
43
|
+
(0, _config.showConfig)({
|
|
44
|
+
foo: 'bar'
|
|
45
|
+
}, {
|
|
46
|
+
config: {
|
|
47
|
+
server: {
|
|
48
|
+
address: 'quux'
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}, {
|
|
52
|
+
spam: 'food'
|
|
53
|
+
});
|
|
54
|
+
log.should.have.been.calledWith('Appium Configuration\n');
|
|
55
|
+
});
|
|
56
|
+
it('should skip empty objects', function () {
|
|
57
|
+
(0, _config.showConfig)({
|
|
58
|
+
foo: 'bar',
|
|
59
|
+
cows: {},
|
|
60
|
+
pigs: [],
|
|
61
|
+
sheep: 0,
|
|
62
|
+
ducks: false
|
|
63
|
+
}, {
|
|
64
|
+
config: {
|
|
65
|
+
server: {
|
|
66
|
+
address: 'quux'
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
spam: 'food'
|
|
71
|
+
});
|
|
72
|
+
dir.should.have.been.calledWith({
|
|
73
|
+
foo: 'bar',
|
|
74
|
+
sheep: 0,
|
|
75
|
+
ducks: false
|
|
76
|
+
});
|
|
77
|
+
});
|
|
24
78
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
79
|
+
describe('when a config file is not present', function () {
|
|
80
|
+
it('should dump the current Appium config sans config file contents', function () {
|
|
81
|
+
(0, _config.showConfig)({
|
|
82
|
+
foo: 'bar'
|
|
83
|
+
}, {}, {
|
|
84
|
+
spam: 'food'
|
|
85
|
+
});
|
|
86
|
+
log.should.have.been.calledWith('(no configuration file loaded)\n');
|
|
87
|
+
});
|
|
30
88
|
});
|
|
31
89
|
});
|
|
32
90
|
});
|
|
33
91
|
describe('node.js config', function () {
|
|
34
92
|
let _process = process;
|
|
35
93
|
before(function () {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
for (let [prop, value] of _lodash.default.toPairs(process)) {
|
|
39
|
-
tempProcess[prop] = value;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
process = tempProcess;
|
|
94
|
+
process = { ...process
|
|
95
|
+
};
|
|
43
96
|
});
|
|
44
97
|
after(function () {
|
|
45
98
|
process = _process;
|
|
@@ -77,7 +130,7 @@ describe('Config', function () {
|
|
|
77
130
|
describe('warnNodeDeprecations', function () {
|
|
78
131
|
let spy;
|
|
79
132
|
before(function () {
|
|
80
|
-
spy =
|
|
133
|
+
spy = sandbox.spy(_logger.default, 'warn');
|
|
81
134
|
});
|
|
82
135
|
beforeEach(function () {
|
|
83
136
|
spy.resetHistory();
|
|
@@ -97,25 +150,59 @@ describe('Config', function () {
|
|
|
97
150
|
});
|
|
98
151
|
});
|
|
99
152
|
describe('server arguments', function () {
|
|
100
|
-
let parser;
|
|
101
153
|
let args;
|
|
102
|
-
before(async function () {
|
|
103
|
-
parser = await (0, _parser.default)();
|
|
104
|
-
parser.debug = true;
|
|
105
|
-
});
|
|
106
|
-
beforeEach(function () {
|
|
107
|
-
args = (0, _schema.getDefaultsFromSchema)();
|
|
108
|
-
});
|
|
109
154
|
describe('getNonDefaultServerArgs', function () {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
155
|
+
describe('without extension schemas', function () {
|
|
156
|
+
beforeEach(async function () {
|
|
157
|
+
await (0, _parser.default)(true);
|
|
158
|
+
args = (0, _schema.getDefaultsForSchema)();
|
|
159
|
+
});
|
|
160
|
+
it('should show none if we have all the defaults', function () {
|
|
161
|
+
let nonDefaultArgs = (0, _config.getNonDefaultServerArgs)(args);
|
|
162
|
+
nonDefaultArgs.should.be.empty;
|
|
163
|
+
});
|
|
164
|
+
it('should catch a non-default argument', function () {
|
|
165
|
+
args.allowCors = true;
|
|
166
|
+
let nonDefaultArgs = (0, _config.getNonDefaultServerArgs)(args);
|
|
167
|
+
nonDefaultArgs.should.eql({
|
|
168
|
+
allowCors: true
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('when arg is an array', function () {
|
|
172
|
+
it('should return the arg as an array', function () {
|
|
173
|
+
args.usePlugins = ['all'];
|
|
174
|
+
(0, _config.getNonDefaultServerArgs)(args).should.eql({
|
|
175
|
+
usePlugins: ['all']
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
});
|
|
113
179
|
});
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
180
|
+
describe('with extension schemas', function () {
|
|
181
|
+
beforeEach(async function () {
|
|
182
|
+
(0, _schema.resetSchema)();
|
|
183
|
+
(0, _schema.registerSchema)('plugin', 'crypto-fiend', {
|
|
184
|
+
type: 'object',
|
|
185
|
+
properties: {
|
|
186
|
+
elite: {
|
|
187
|
+
type: 'boolean',
|
|
188
|
+
default: true
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
(0, _schema.finalizeSchema)();
|
|
193
|
+
await (0, _parser.default)(true);
|
|
194
|
+
args = (0, _schema.getDefaultsForSchema)();
|
|
195
|
+
});
|
|
196
|
+
it('should take extension schemas into account', function () {
|
|
197
|
+
const nonDefaultArgs = (0, _config.getNonDefaultServerArgs)(args);
|
|
198
|
+
nonDefaultArgs.should.be.empty;
|
|
199
|
+
});
|
|
200
|
+
it('should catch a non-default argument', function () {
|
|
201
|
+
args['plugin.crypto-fiend.elite'] = false;
|
|
202
|
+
const nonDefaultArgs = (0, _config.getNonDefaultServerArgs)(args);
|
|
203
|
+
nonDefaultArgs.should.eql({
|
|
204
|
+
'plugin.crypto-fiend.elite': false
|
|
205
|
+
});
|
|
119
206
|
});
|
|
120
207
|
});
|
|
121
208
|
});
|
|
@@ -143,7 +230,7 @@ describe('Config', function () {
|
|
|
143
230
|
process.argv[1] = argv1;
|
|
144
231
|
});
|
|
145
232
|
it('should not fail if process.argv[1] is undefined', async function () {
|
|
146
|
-
process.argv[1]
|
|
233
|
+
delete process.argv[1];
|
|
147
234
|
let args = await (0, _parser.default)();
|
|
148
235
|
args.prog.should.be.equal('appium');
|
|
149
236
|
});
|
|
@@ -156,4 +243,4 @@ describe('Config', function () {
|
|
|
156
243
|
});require('source-map-support').install();
|
|
157
244
|
|
|
158
245
|
|
|
159
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvY29uZmlnLXNwZWNzLmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiYmVmb3JlIiwic2lub24iLCJzcHkiLCJjb25zb2xlIiwiaXQiLCJjb25maWciLCJsb2ciLCJjYWxsZWRPbmNlIiwic2hvdWxkIiwiYmUiLCJ0cnVlIiwiZ2V0Q2FsbCIsImFyZ3MiLCJjb250YWluIiwiSlNPTiIsInN0cmluZ2lmeSIsIl9wcm9jZXNzIiwicHJvY2VzcyIsInRlbXBQcm9jZXNzIiwicHJvcCIsInZhbHVlIiwiXyIsInRvUGFpcnMiLCJhZnRlciIsInVuc3VwcG9ydGVkVmVyc2lvbnMiLCJ2ZXJzaW9uIiwiY2hlY2tOb2RlT2siLCJ0aHJvdyIsIm5vdCIsImxvZ2dlciIsImJlZm9yZUVhY2giLCJyZXNldEhpc3RvcnkiLCJ3YXJuIiwiY2FsbENvdW50IiwiZXF1YWwiLCJwYXJzZXIiLCJkZWJ1ZyIsIm5vbkRlZmF1bHRBcmdzIiwiZW1wdHkiLCJhbGxvd0NvcnMiLCJlcWwiLCJyZWplY3RlZFdpdGgiLCJyZWplY3RlZCIsImFyZ3YxIiwiYXJndiIsInVuZGVmaW5lZCIsInByb2ciXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBQSxRQUFRLENBQUMsUUFBRCxFQUFXLFlBQVk7QUFDN0JBLEVBQUFBLFFBQVEsQ0FBQyxlQUFELEVBQWtCLFlBQVk7QUFDcENBLElBQUFBLFFBQVEsQ0FBQyxZQUFELEVBQWUsWUFBWTtBQUNqQ0MsTUFBQUEsTUFBTSxDQUFDLFlBQVk7QUFDakJDLHVCQUFNQyxHQUFOLENBQVVDLE9BQVYsRUFBbUIsS0FBbkI7QUFDRCxPQUZLLENBQU47QUFHQUMsTUFBQUEsRUFBRSxDQUFDLGtDQUFELEVBQXFDLGtCQUFrQjtBQUN2RCxjQUFNQyxNQUFNLEdBQUcsMkJBQWY7QUFDQSxjQUFNLHlCQUFOO0FBQ0FGLFFBQUFBLE9BQU8sQ0FBQ0csR0FBUixDQUFZQyxVQUFaLENBQXVCQyxNQUF2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S0FGSSxDQUFMO0FBSUF2QyxJQUFBQSxFQUFFLENBQUMsaURBQUQsRUFBb0Qsa0JBQWtCO0FBQ3RFYSxNQUFBQSxPQUFPLENBQUMyQixJQUFSLENBQWEsQ0FBYixJQUFrQkMsU0FBbEI7QUFDQSxVQUFJakMsSUFBSSxHQUFHLE1BQU0sc0JBQWpCO0FBQ0FBLE1BQUFBLElBQUksQ0FBQ2tDLElBQUwsQ0FBVXRDLE1BQVYsQ0FBaUJDLEVBQWpCLENBQW9CeUIsS0FBcEIsQ0FBMEIsUUFBMUI7QUFDRCxLQUpDLENBQUY7QUFNQTlCLElBQUFBLEVBQUUsQ0FBQyxzQ0FBRCxFQUF5QyxrQkFBa0I7QUFDM0RhLE1BQUFBLE9BQU8sQ0FBQzJCLElBQVIsQ0FBYSxDQUFiLElBQWtCLGFBQWxCO0FBQ0EsVUFBSWhDLElBQUksR0FBRyxNQUFNLHNCQUFqQjtBQUNBQSxNQUFBQSxJQUFJLENBQUNrQyxJQUFMLENBQVV0QyxNQUFWLENBQWlCQyxFQUFqQixDQUFvQnlCLEtBQXBCLENBQTBCLGFBQTFCO0FBQ0QsS0FKQyxDQUFGO0FBS0QsR0ExQk8sQ0FBUjtBQTRCRCxDQXJKTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHJhbnNwaWxlOm1vY2hhXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IGdldFBhcnNlciBmcm9tICcuLi9saWIvY2xpL3BhcnNlcic7XG5pbXBvcnQgeyBjaGVja05vZGVPaywgZ2V0QnVpbGRJbmZvLCBnZXROb25EZWZhdWx0U2VydmVyQXJncywgc2hvd0NvbmZpZywgdmFsaWRhdGVUbXBEaXIsIHdhcm5Ob2RlRGVwcmVjYXRpb25zIH0gZnJvbSAnLi4vbGliL2NvbmZpZyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdHNGcm9tU2NoZW1hLCByZXNldFNjaGVtYSB9IGZyb20gJy4uL2xpYi9zY2hlbWEvc2NoZW1hJztcblxuZGVzY3JpYmUoJ0NvbmZpZycsIGZ1bmN0aW9uICgpIHtcbiAgZGVzY3JpYmUoJ0FwcGl1bSBjb25maWcnLCBmdW5jdGlvbiAoKSB7XG4gICAgZGVzY3JpYmUoJ3Nob3dDb25maWcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgICBzaW5vbi5zcHkoY29uc29sZSwgJ2xvZycpO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIGxvZyB0aGUgY29uZmlnIHRvIGNvbnNvbGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGdldEJ1aWxkSW5mbygpO1xuICAgICAgICBhd2FpdCBzaG93Q29uZmlnKCk7XG4gICAgICAgIGNvbnNvbGUubG9nLmNhbGxlZE9uY2Uuc2hvdWxkLmJlLnRydWU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmxvZy5nZXRDYWxsKDApLmFyZ3NbMF0uc2hvdWxkLmNvbnRhaW4oSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdub2RlLmpzIGNvbmZpZycsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgX3Byb2Nlc3MgPSBwcm9jZXNzO1xuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBuZWVkIHRvIGJlIGFibGUgdG8gd3JpdGUgdG8gcHJvY2Vzcy52ZXJzaW9uXG4gICAgICAvLyBidXQgYWxzbyB0byBoYXZlIGFjY2VzcyB0byBwcm9jZXNzIG1ldGhvZHNcbiAgICAgIC8vIHNvIGNvcHkgdGhlbSBvdmVyIHRvIGEgd3JpdGFibGUgb2JqZWN0XG4gICAgICBsZXQgdGVtcFByb2Nlc3MgPSB7fTtcbiAgICAgIGZvciAobGV0IFtwcm9wLCB2YWx1ZV0gb2YgXy50b1BhaXJzKHByb2Nlc3MpKSB7XG4gICAgICAgIHRlbXBQcm9jZXNzW3Byb3BdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICBwcm9jZXNzID0gdGVtcFByb2Nlc3M7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZ2xvYmFsLWFzc2lnblxuICAgIH0pO1xuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MgPSBfcHJvY2VzczsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1nbG9iYWwtYXNzaWduXG4gICAgfSk7XG4gICAgZGVzY3JpYmUoJ2NoZWNrTm9kZU9rJywgZnVuY3Rpb24gKCkge1xuICAgICAgZGVzY3JpYmUoJ3Vuc3VwcG9ydGVkIG5vZGVzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCB1bnN1cHBvcnRlZFZlcnNpb25zID0gW1xuICAgICAgICAgICd2MC4xJywgJ3YwLjkuMTInLCAndjAuMTAuMzYnLCAndjAuMTIuMTQnLFxuICAgICAgICAgICd2NC40LjcnLCAndjUuNy4wJywgJ3Y2LjMuMScsICd2Ny4xLjEnLFxuICAgICAgICAgICd2OC4wLjAnLCAndjkuMi4zJywgJ3YxMC4xLjAnLFxuICAgICAgICBdO1xuICAgICAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2YgdW5zdXBwb3J0ZWRWZXJzaW9ucykge1xuICAgICAgICAgIGl0KGBzaG91bGQgZmFpbCBpZiBub2RlIGlzICR7dmVyc2lvbn1gLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwcm9jZXNzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgICAgICAgICAgY2hlY2tOb2RlT2suc2hvdWxkLnRocm93KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBkZXNjcmliZSgnc3VwcG9ydGVkIG5vZGVzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgaWYgbm9kZSBpcyAxMisnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcHJvY2Vzcy52ZXJzaW9uID0gJ3YxMi4wLjEnO1xuICAgICAgICAgIGNoZWNrTm9kZU9rLnNob3VsZC5ub3QudGhyb3coKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdzaG91bGQgc3VjY2VlZCBpZiBub2RlIGlzIDEzKycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBwcm9jZXNzLnZlcnNpb24gPSAndjEzLjYuMCc7XG4gICAgICAgICAgY2hlY2tOb2RlT2suc2hvdWxkLm5vdC50aHJvdygpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3Nob3VsZCBzdWNjZWVkIGlmIG5vZGUgaXMgMTQrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHByb2Nlc3MudmVyc2lvbiA9ICd2MTQuMC4wJztcbiAgICAgICAgICBjaGVja05vZGVPay5zaG91bGQubm90LnRocm93KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2Fybk5vZGVEZXByZWNhdGlvbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgc3B5O1xuICAgICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc3B5ID0gc2lub24uc3B5KGxvZ2dlciwgJ3dhcm4nKTtcbiAgICAgIH0pO1xuICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNweS5yZXNldEhpc3RvcnkoKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBub3QgbG9nIGEgd2FybmluZyBpZiBub2RlIGlzIDgrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBwcm9jZXNzLnZlcnNpb24gPSAndjguMC4wJztcbiAgICAgICAgd2Fybk5vZGVEZXByZWNhdGlvbnMoKTtcbiAgICAgICAgbG9nZ2VyLndhcm4uY2FsbENvdW50LnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBub3QgbG9nIGEgd2FybmluZyBpZiBub2RlIGlzIDkrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBwcm9jZXNzLnZlcnNpb24gPSAndjkuMC4wJztcbiAgICAgICAgd2Fybk5vZGVEZXByZWNhdGlvbnMoKTtcbiAgICAgICAgbG9nZ2VyLndhcm4uY2FsbENvdW50LnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2VydmVyIGFyZ3VtZW50cycsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgcGFyc2VyO1xuICAgIGxldCBhcmdzO1xuXG4gICAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBhcnNlciA9IGF3YWl0IGdldFBhcnNlcigpO1xuICAgICAgcGFyc2VyLmRlYnVnID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgLy8gZ2V0IGFsbCB0aGUgZGVmYXVsdHNcbiAgICAgIGFyZ3MgPSBnZXREZWZhdWx0c0Zyb21TY2hlbWEoKTtcbiAgICB9KTtcbiAgICBkZXNjcmliZSgnZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIHNob3cgbm9uZSBpZiB3ZSBoYXZlIGFsbCB0aGUgZGVmYXVsdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBub25EZWZhdWx0QXJncyA9IGdldE5vbkRlZmF1bHRTZXJ2ZXJBcmdzKHBhcnNlciwgYXJncyk7XG4gICAgICAgIG5vbkRlZmF1bHRBcmdzLnNob3VsZC5iZS5lbXB0eTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBjYXRjaCBhIG5vbi1kZWZhdWx0IGFyZ3VtZW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgICBhcmdzLmFsbG93Q29ycyA9IHRydWU7XG4gICAgICAgIGxldCBub25EZWZhdWx0QXJncyA9IGdldE5vbkRlZmF1bHRTZXJ2ZXJBcmdzKHBhcnNlciwgYXJncyk7XG4gICAgICAgIG5vbkRlZmF1bHRBcmdzLnNob3VsZC5lcWwoe2FsbG93Q29yczogdHJ1ZX0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3ZhbGlkYXRlVG1wRGlyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZmFpbCB0byB1c2UgYSB0bXAgZGlyIHdpdGggaW5jb3JyZWN0IHBlcm1pc3Npb25zJywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFsaWRhdGVUbXBEaXIoJy9wcml2YXRlL2lmX3lvdV9ydW5fd2l0aF9zdWRvX3RoaXNfd29udF9mYWlsJykuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgvY291bGQgbm90IGVuc3VyZS8pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgZmFpbCB0byB1c2UgYW4gdW5kZWZpbmVkIHRtcCBkaXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YWxpZGF0ZVRtcERpcigpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL2NvdWxkIG5vdCBlbnN1cmUvKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXNlIGEgdG1wIGRpciB3aXRoIGNvcnJlY3QgcGVybWlzc2lvbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YWxpZGF0ZVRtcERpcignL3RtcC90ZXN0X3RtcF9kaXIvd2l0aC9hbnkvbnVtYmVyL29mL2xldmVscycpLnNob3VsZC5ub3QuYmUucmVqZWN0ZWQ7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwYXJzaW5nIGFyZ3Mgd2l0aCBlbXB0eSBhcmd2WzFdJywgZnVuY3Rpb24gKCkge1xuICAgIGxldCBhcmd2MTtcblxuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICBhcmd2MSA9IHByb2Nlc3MuYXJndlsxXTtcbiAgICB9KTtcblxuICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgcmVzZXRTY2hlbWEoKTtcbiAgICB9KTtcblxuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MuYXJndlsxXSA9IGFyZ3YxO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgZmFpbCBpZiBwcm9jZXNzLmFyZ3ZbMV0gaXMgdW5kZWZpbmVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgcHJvY2Vzcy5hcmd2WzFdID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IGFyZ3MgPSBhd2FpdCBnZXRQYXJzZXIoKTtcbiAgICAgIGFyZ3MucHJvZy5zaG91bGQuYmUuZXF1YWwoJ2FwcGl1bScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzZXQgXCJwcm9nXCIgdG8gcHJvY2Vzcy5hcmd2WzFdJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgcHJvY2Vzcy5hcmd2WzFdID0gJ0hlbGxvIFdvcmxkJztcbiAgICAgIGxldCBhcmdzID0gYXdhaXQgZ2V0UGFyc2VyKCk7XG4gICAgICBhcmdzLnByb2cuc2hvdWxkLmJlLmVxdWFsKCdIZWxsbyBXb3JsZCcpO1xuICAgIH0pO1xuICB9KTtcblxufSk7XG4iXSwiZmlsZSI6InRlc3QvY29uZmlnLXNwZWNzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
|
246
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvY29uZmlnLXNwZWNzLmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwic2FuZGJveCIsImJlZm9yZUVhY2giLCJzaW5vbiIsImNyZWF0ZVNhbmRib3giLCJhZnRlckVhY2giLCJyZXN0b3JlIiwibG9nIiwiZGlyIiwic3B5IiwiY29uc29sZSIsIml0IiwiY29uZmlnIiwic2hvdWxkIiwiaGF2ZSIsImJlZW4iLCJjYWxsZWRPbmNlIiwiZmlyc3RDYWxsIiwiYXJncyIsImNvbnRhaW4iLCJKU09OIiwic3RyaW5naWZ5IiwiZm9vIiwic2VydmVyIiwiYWRkcmVzcyIsInNwYW0iLCJjYWxsZWRXaXRoIiwiY293cyIsInBpZ3MiLCJzaGVlcCIsImR1Y2tzIiwiX3Byb2Nlc3MiLCJwcm9jZXNzIiwiYmVmb3JlIiwiYWZ0ZXIiLCJ1bnN1cHBvcnRlZFZlcnNpb25zIiwidmVyc2lvbiIsImNoZWNrTm9kZU9rIiwidGhyb3ciLCJub3QiLCJsb2dnZXIiLCJyZXNldEhpc3RvcnkiLCJ3YXJuIiwiY2FsbENvdW50IiwiZXF1YWwiLCJub25EZWZhdWx0QXJncyIsImJlIiwiZW1wdHkiLCJhbGxvd0NvcnMiLCJlcWwiLCJ1c2VQbHVnaW5zIiwidHlwZSIsInByb3BlcnRpZXMiLCJlbGl0ZSIsImRlZmF1bHQiLCJyZWplY3RlZFdpdGgiLCJyZWplY3RlZCIsImFyZ3YxIiwiYXJndiIsInByb2ciXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBQSxRQUFRLENBQUMsUUFBRCxFQUFXLFlBQVk7QUFFN0IsTUFBSUMsT0FBSjtBQUVBQyxFQUFBQSxVQUFVLENBQUMsWUFBWTtBQUNyQkQsSUFBQUEsT0FBTyxHQUFHRSxlQUFNQyxhQUFOLEVBQVY7QUFDRCxHQUZTLENBQVY7QUFJQUMsRUFBQUEsU0FBUyxDQUFDLFlBQVk7QUFDcEJKLElBQUFBLE9BQU8sQ0FBQ0ssT0FBUjtBQUNELEdBRlEsQ0FBVDtBQUlBTixFQUFBQSxRQUFR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akI7QUFDQUEsTUFBQUEsSUFBSSxDQUFDeUMsSUFBTCxDQUFVOUMsTUFBVixDQUFpQmlDLEVBQWpCLENBQW9CRixLQUFwQixDQUEwQixhQUExQjtBQUNELEtBSkMsQ0FBRjtBQUtELEdBMUJPLENBQVI7QUE0QkQsQ0FwTk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vLyB0cmFuc3BpbGU6bW9jaGFcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgZ2V0UGFyc2VyIGZyb20gJy4uL2xpYi9jbGkvcGFyc2VyJztcbmltcG9ydCB7IGNoZWNrTm9kZU9rLCBnZXRCdWlsZEluZm8sIGdldE5vbkRlZmF1bHRTZXJ2ZXJBcmdzLCBzaG93QnVpbGRJbmZvLCBzaG93Q29uZmlnLCB2YWxpZGF0ZVRtcERpciwgd2Fybk5vZGVEZXByZWNhdGlvbnMgfSBmcm9tICcuLi9saWIvY29uZmlnJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBnZXREZWZhdWx0c0ZvclNjaGVtYSwgcmVzZXRTY2hlbWEsIHJlZ2lzdGVyU2NoZW1hLCBmaW5hbGl6ZVNjaGVtYSB9IGZyb20gJy4uL2xpYi9zY2hlbWEvc2NoZW1hJztcblxuZGVzY3JpYmUoJ0NvbmZpZycsIGZ1bmN0aW9uICgpIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoJ3Npbm9uJykuU2lub25TYW5kYm94fSAqL1xuICBsZXQgc2FuZGJveDtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3gucmVzdG9yZSgpO1xuICB9KTtcblxuICBkZXNjcmliZSgnQXBwaXVtIGNvbmZpZycsIGZ1bmN0aW9uICgpIHtcbiAgICAvKiogQHR5cGUge2ltcG9ydCgnc2lub24nKS5TaW5vblNweTxbbWVzc2FnZT86IGFueSwgLi4uZXh0cmE6IGFueVtdXSx2b2lkPn0gKi9cbiAgICBsZXQgbG9nO1xuICAgIC8qKiBAdHlwZSB7aW1wb3J0KCdzaW5vbicpLlNpbm9uU3B5PFttZXNzYWdlPzogYW55LCAuLi5leHRyYTogYW55W11dLHZvaWQ+fSAqL1xuICAgIGxldCBkaXI7XG4gICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBsb2cgPSBzYW5kYm94LnNweShjb25zb2xlLCAnbG9nJyk7XG4gICAgICBkaXIgPSBzYW5kYm94LnNweShjb25zb2xlLCAnZGlyJyk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2hvd0J1aWxkSW5mbygpJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCBsb2cgYnVpbGQgaW5mbyB0byBjb25zb2xlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjb25maWcgPSBnZXRCdWlsZEluZm8oKTtcbiAgICAgICAgYXdhaXQgc2hvd0J1aWxkSW5mbygpO1xuICAgICAgICBsb2cuc2hvdWxkLmhhdmUuYmVlbi5jYWxsZWRPbmNlO1xuICAgICAgICBsb2cuZmlyc3RDYWxsLmFyZ3Muc2hvdWxkLmNvbnRhaW4oSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzaG93Q29uZmlnJywgZnVuY3Rpb24gKCkge1xuICAgICAgZGVzY3JpYmUoJ3doZW4gYSBjb25maWcgZmlsZSBpcyBwcmVzZW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpdCgnc2hvdWxkIGR1bXAgdGhlIGN1cnJlbnQgQXBwaXVtIGNvbmZpZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBzaG93Q29uZmlnKHtmb286ICdiYXInfSwge2NvbmZpZzoge3NlcnZlcjoge2FkZHJlc3M6ICdxdXV4J319fSwge3NwYW06ICdmb29kJ30pO1xuICAgICAgICAgIGxvZy5zaG91bGQuaGF2ZS5iZWVuLmNhbGxlZFdpdGgoJ0FwcGl1bSBDb25maWd1cmF0aW9uXFxuJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgc2tpcCBlbXB0eSBvYmplY3RzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHNob3dDb25maWcoe2ZvbzogJ2JhcicsIGNvd3M6IHt9LCBwaWdzOiBbXSwgc2hlZXA6IDAsIGR1Y2tzOiBmYWxzZX0sIHtjb25maWc6IHtzZXJ2ZXI6IHthZGRyZXNzOiAncXV1eCd9fX0sIHtzcGFtOiAnZm9vZCd9KTtcbiAgICAgICAgICBkaXIuc2hvdWxkLmhhdmUuYmVlbi5jYWxsZWRXaXRoKHtmb286ICdiYXInLCBzaGVlcDogMCwgZHVja3M6IGZhbHNlfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCd3aGVuIGEgY29uZmlnIGZpbGUgaXMgbm90IHByZXNlbnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGl0KCdzaG91bGQgZHVtcCB0aGUgY3VycmVudCBBcHBpdW0gY29uZmlnIHNhbnMgY29uZmlnIGZpbGUgY29udGVudHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgc2hvd0NvbmZpZyh7Zm9vOiAnYmFyJ30sIHt9LCB7c3BhbTogJ2Zvb2QnfSk7XG4gICAgICAgICAgbG9nLnNob3VsZC5oYXZlLmJlZW4uY2FsbGVkV2l0aCgnKG5vIGNvbmZpZ3VyYXRpb24gZmlsZSBsb2FkZWQpXFxuJyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdub2RlLmpzIGNvbmZpZycsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgX3Byb2Nlc3MgPSBwcm9jZXNzO1xuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBuZWVkIHRvIGJlIGFibGUgdG8gd3JpdGUgdG8gcHJvY2Vzcy52ZXJzaW9uXG4gICAgICAvLyBidXQgYWxzbyB0byBoYXZlIGFjY2VzcyB0byBwcm9jZXNzIG1ldGhvZHNcbiAgICAgIC8vIHNvIGNvcHkgdGhlbSBvdmVyIHRvIGEgd3JpdGFibGUgb2JqZWN0XG4gICAgICBwcm9jZXNzID0gey4uLnByb2Nlc3N9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWdsb2JhbC1hc3NpZ25cbiAgICB9KTtcbiAgICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzID0gX3Byb2Nlc3M7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZ2xvYmFsLWFzc2lnblxuICAgIH0pO1xuICAgIGRlc2NyaWJlKCdjaGVja05vZGVPaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGRlc2NyaWJlKCd1bnN1cHBvcnRlZCBub2RlcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgdW5zdXBwb3J0ZWRWZXJzaW9ucyA9IFtcbiAgICAgICAgICAndjAuMScsICd2MC45LjEyJywgJ3YwLjEwLjM2JywgJ3YwLjEyLjE0JyxcbiAgICAgICAgICAndjQuNC43JywgJ3Y1LjcuMCcsICd2Ni4zLjEnLCAndjcuMS4xJyxcbiAgICAgICAgICAndjguMC4wJywgJ3Y5LjIuMycsICd2MTAuMS4wJyxcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChjb25zdCB2ZXJzaW9uIG9mIHVuc3VwcG9ydGVkVmVyc2lvbnMpIHtcbiAgICAgICAgICBpdChgc2hvdWxkIGZhaWwgaWYgbm9kZSBpcyAke3ZlcnNpb259YCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgcHJvY2Vzcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgICAgIGNoZWNrTm9kZU9rLnNob3VsZC50aHJvdygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgZGVzY3JpYmUoJ3N1cHBvcnRlZCBub2RlcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaXQoJ3Nob3VsZCBzdWNjZWVkIGlmIG5vZGUgaXMgMTIrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICBwcm9jZXNzLnZlcnNpb24gPSAndjEyLjAuMSc7XG4gICAgICAgICAgY2hlY2tOb2RlT2suc2hvdWxkLm5vdC50aHJvdygpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3Nob3VsZCBzdWNjZWVkIGlmIG5vZGUgaXMgMTMrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICBwcm9jZXNzLnZlcnNpb24gPSAndjEzLjYuMCc7XG4gICAgICAgICAgY2hlY2tOb2RlT2suc2hvdWxkLm5vdC50aHJvdygpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3Nob3VsZCBzdWNjZWVkIGlmIG5vZGUgaXMgMTQrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICBwcm9jZXNzLnZlcnNpb24gPSAndjE0LjAuMCc7XG4gICAgICAgICAgY2hlY2tOb2RlT2suc2hvdWxkLm5vdC50aHJvdygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3dhcm5Ob2RlRGVwcmVjYXRpb25zJywgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IHNweTtcbiAgICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNweSA9IHNhbmRib3guc3B5KGxvZ2dlciwgJ3dhcm4nKTtcbiAgICAgIH0pO1xuICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNweS5yZXNldEhpc3RvcnkoKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBub3QgbG9nIGEgd2FybmluZyBpZiBub2RlIGlzIDgrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgIHByb2Nlc3MudmVyc2lvbiA9ICd2OC4wLjAnO1xuICAgICAgICB3YXJuTm9kZURlcHJlY2F0aW9ucygpO1xuICAgICAgICBsb2dnZXIud2Fybi5jYWxsQ291bnQuc2hvdWxkLmVxdWFsKDApO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIG5vdCBsb2cgYSB3YXJuaW5nIGlmIG5vZGUgaXMgOSsnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgcHJvY2Vzcy52ZXJzaW9uID0gJ3Y5LjAuMCc7XG4gICAgICAgIHdhcm5Ob2RlRGVwcmVjYXRpb25zKCk7XG4gICAgICAgIGxvZ2dlci53YXJuLmNhbGxDb3VudC5zaG91bGQuZXF1YWwoMCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NlcnZlciBhcmd1bWVudHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGFyZ3M7XG5cbiAgICBkZXNjcmliZSgnZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBkZXNjcmliZSgnd2l0aG91dCBleHRlbnNpb24gc2NoZW1hcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYmVmb3JlRWFjaChhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgYXdhaXQgZ2V0UGFyc2VyKHRydWUpO1xuICAgICAgICAgIC8vIGdldCBhbGwgdGhlIGRlZmF1bHRzXG4gICAgICAgICAgYXJncyA9IGdldERlZmF1bHRzRm9yU2NoZW1hKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnc2hvdWxkIHNob3cgbm9uZSBpZiB3ZSBoYXZlIGFsbCB0aGUgZGVmYXVsdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgbGV0IG5vbkRlZmF1bHRBcmdzID0gZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MoYXJncyk7XG4gICAgICAgICAgbm9uRGVmYXVsdEFyZ3Muc2hvdWxkLmJlLmVtcHR5O1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3Nob3VsZCBjYXRjaCBhIG5vbi1kZWZhdWx0IGFyZ3VtZW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGFyZ3MuYWxsb3dDb3JzID0gdHJ1ZTtcbiAgICAgICAgICBsZXQgbm9uRGVmYXVsdEFyZ3MgPSBnZXROb25EZWZhdWx0U2VydmVyQXJncyhhcmdzKTtcbiAgICAgICAgICBub25EZWZhdWx0QXJncy5zaG91bGQuZXFsKHthbGxvd0NvcnM6IHRydWV9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGRlc2NyaWJlKCd3aGVuIGFyZyBpcyBhbiBhcnJheScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgYXJnIGFzIGFuIGFycmF5JywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYXJncy51c2VQbHVnaW5zID0gWydhbGwnXTtcbiAgICAgICAgICAgIGdldE5vbkRlZmF1bHRTZXJ2ZXJBcmdzKGFyZ3MpLnNob3VsZC5lcWwoe3VzZVBsdWdpbnM6IFsnYWxsJ119KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGRlc2NyaWJlKCd3aXRoIGV4dGVuc2lvbiBzY2hlbWFzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBiZWZvcmVFYWNoKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXNldFNjaGVtYSgpO1xuICAgICAgICAgIHJlZ2lzdGVyU2NoZW1hKCdwbHVnaW4nLCAnY3J5cHRvLWZpZW5kJywge3R5cGU6ICdvYmplY3QnLCBwcm9wZXJ0aWVzOiB7ZWxpdGU6IHt0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IHRydWV9fX0pO1xuICAgICAgICAgIGZpbmFsaXplU2NoZW1hKCk7XG4gICAgICAgICAgYXdhaXQgZ2V0UGFyc2VyKHRydWUpO1xuICAgICAgICAgIGFyZ3MgPSBnZXREZWZhdWx0c0ZvclNjaGVtYSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIHRha2UgZXh0ZW5zaW9uIHNjaGVtYXMgaW50byBhY2NvdW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnN0IG5vbkRlZmF1bHRBcmdzID0gZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MoYXJncyk7XG4gICAgICAgICAgbm9uRGVmYXVsdEFyZ3Muc2hvdWxkLmJlLmVtcHR5O1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGNhdGNoIGEgbm9uLWRlZmF1bHQgYXJndW1lbnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgYXJnc1sncGx1Z2luLmNyeXB0by1maWVuZC5lbGl0ZSddID0gZmFsc2U7XG4gICAgICAgICAgY29uc3Qgbm9uRGVmYXVsdEFyZ3MgPSBnZXROb25EZWZhdWx0U2VydmVyQXJncyhhcmdzKTtcbiAgICAgICAgICBub25EZWZhdWx0QXJncy5zaG91bGQuZXFsKHsncGx1Z2luLmNyeXB0by1maWVuZC5lbGl0ZSc6IGZhbHNlfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd2YWxpZGF0ZVRtcERpcicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gdXNlIGEgdG1wIGRpciB3aXRoIGluY29ycmVjdCBwZXJtaXNzaW9ucycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhbGlkYXRlVG1wRGlyKCcvcHJpdmF0ZS9pZl95b3VfcnVuX3dpdGhfc3Vkb190aGlzX3dvbnRfZmFpbCcpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL2NvdWxkIG5vdCBlbnN1cmUvKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gdXNlIGFuIHVuZGVmaW5lZCB0bXAgZGlyJywgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgdmFsaWRhdGVUbXBEaXIoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKC9jb3VsZCBub3QgZW5zdXJlLyk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVzZSBhIHRtcCBkaXIgd2l0aCBjb3JyZWN0IHBlcm1pc3Npb25zJywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFsaWRhdGVUbXBEaXIoJy90bXAvdGVzdF90bXBfZGlyL3dpdGgvYW55L251bWJlci9vZi9sZXZlbHMnKS5zaG91bGQubm90LmJlLnJlamVjdGVkO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncGFyc2luZyBhcmdzIHdpdGggZW1wdHkgYXJndlsxXScsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgYXJndjE7XG5cbiAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgYXJndjEgPSBwcm9jZXNzLmFyZ3ZbMV07XG4gICAgfSk7XG5cbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlc2V0U2NoZW1hKCk7XG4gICAgfSk7XG5cbiAgICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmFyZ3ZbMV0gPSBhcmd2MTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IGZhaWwgaWYgcHJvY2Vzcy5hcmd2WzFdIGlzIHVuZGVmaW5lZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGRlbGV0ZSBwcm9jZXNzLmFyZ3ZbMV07XG4gICAgICBsZXQgYXJncyA9IGF3YWl0IGdldFBhcnNlcigpO1xuICAgICAgYXJncy5wcm9nLnNob3VsZC5iZS5lcXVhbCgnYXBwaXVtJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNldCBcInByb2dcIiB0byBwcm9jZXNzLmFyZ3ZbMV0nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmFyZ3ZbMV0gPSAnSGVsbG8gV29ybGQnO1xuICAgICAgbGV0IGFyZ3MgPSBhd2FpdCBnZXRQYXJzZXIoKTtcbiAgICAgIGFyZ3MucHJvZy5zaG91bGQuYmUuZXF1YWwoJ0hlbGxvIFdvcmxkJyk7XG4gICAgfSk7XG4gIH0pO1xuXG59KTtcbiJdLCJmaWxlIjoidGVzdC9jb25maWctc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|