Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

appium-adb

Package Overview
Dependencies
Maintainers
6
Versions
438
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

appium-adb - npm Package Compare versions

Comparing version 2.0.0-beta12 to 2.0.0-beta13

test/unit/.apk-utils-specs.js.un~

7

build/lib/tools/apk-utils.js

@@ -433,2 +433,3 @@ 'use strict';

var replace = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var timeout = arguments.length <= 2 || arguments[2] === undefined ? 60000 : arguments[2];
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {

@@ -443,3 +444,3 @@ while (1) switch (context$1$0.prev = context$1$0.next) {

context$1$0.next = 3;
return _regeneratorRuntime.awrap(this.adbExec(['install', '-r', apk]));
return _regeneratorRuntime.awrap(this.adbExec(['install', '-r', apk], { timeout: timeout }));

@@ -452,3 +453,3 @@ case 3:

context$1$0.next = 7;
return _regeneratorRuntime.awrap(this.adbExec(['install', apk]));
return _regeneratorRuntime.awrap(this.adbExec(['install', apk], { timeout: timeout }));

@@ -543,2 +544,2 @@ case 7:

// cool down so we're not overloading device with requests
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi90b29scy9hcGstdXRpbHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O3lCQUF1RCxlQUFlOzs0QkFDakQsY0FBYzs7d0JBQ25CLGNBQWM7Ozs7b0JBQ2IsTUFBTTs7OztzQkFDVCxRQUFROzs7O3dCQUNBLFVBQVU7O3FCQUNiLFVBQVU7O0FBRTdCLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQzs7QUFFekIsZUFBZSxDQUFDLGNBQWMsR0FBRyxvQkFBZ0IsR0FBRztNQUU1QyxTQUFTLEVBRVQsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sZUFBZTs7Ozs7QUFMZixpQkFBUyxHQUFHLEtBQUs7O0FBQ3JCLDhCQUFJLEtBQUssaUNBQStCLEdBQUcsQ0FBRyxDQUFDOzt5Q0FDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRTs7O0FBQW5DLGdCQUFRO0FBQ1Isa0JBQVUsR0FBRyxRQUFRLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFOzt5Q0FDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQzs7O0FBQXRFLGNBQU07QUFDTix1QkFBZSxHQUFHLElBQUksTUFBTSxlQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUN4QyxHQUFHLENBQUM7O0FBQ3JDLGlCQUFTLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6Qyw4QkFBSSxLQUFLLGNBQVcsQ0FBQyxTQUFTLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQSxnQkFBYSxDQUFDOzRDQUNuRCxTQUFTOzs7Ozs7QUFFaEIsOEJBQUksYUFBYSx5REFBdUQsZUFBRSxPQUFPLENBQUcsQ0FBQzs7Ozs7OztDQUV4RixDQUFDOztBQUVGLGVBQWUsQ0FBQyxRQUFRLEdBQUc7TUFBZ0IsZUFBZSx5REFBRyxFQUFFO01BZXZELFFB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ekMsZ0JBQVE7OztBQUVOLGdCQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztBQUM1QyxZQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDO0FBQy9ELGdCQUFRLGNBQUUsVUFBVTs7O3lDQUVoQix3QkFBSyxNQUFNLEVBQUUsSUFBSSxDQUFDOzs7Ozs7Ozs7O0FBRXhCLDhCQUFJLEtBQUssQ0FBQyxtQ0FBZ0MsUUFBUSx5Q0FDM0IsQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzs7eUNBQ0wsd0JBQUssTUFBTSxFQUFFLElBQUksQ0FBQzs7Ozs7QUFJeEIsOEJBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFDekQsaUJBQVMsR0FBRyxrQkFBSyxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDOzt5Q0FDdkIsVUFBRyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQzs7O0FBQS9DLGdCQUFROztBQUNSLGtCQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzs7Ozs7Ozs7QUFFbEMsWUFBSSxRQUFRLEVBQUU7QUFDWixnQ0FBSSxLQUFLLDRCQUEwQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBRyxDQUFDO1NBQzlEO0FBQ0csV0FBRyxHQUFHLHNFQUNVLGVBQUUsT0FBTyxDQUFFOztBQUMvQiw4QkFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7Ozs0Q0FFbEIsRUFBQyxVQUFVLEVBQVYsVUFBVSxFQUFFLFNBQVMsRUFBVCxTQUFTLEVBQUM7Ozs7Ozs7Q0FDL0IsQ0FBQzs7cUJBRWEsZUFBZSIsImZpbGUiOiJsaWIvdG9vbHMvYXBrLXV0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRTdGFydENtZCwgZ2V0QWN0aXZpdHlSZWxhdGl2ZU5hbWUgfSBmcm9tICcuLi9oZWxwZXJzLmpzJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXIuanMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJy4uL3V0aWxzJztcblxubGV0IGFwa1V0aWxzTWV0aG9kcyA9IHt9O1xuXG5hcGtVdGlsc01ldGhvZHMuaXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiAocGtnKSB7XG4gIHRyeSB7XG4gICAgbGV0IGluc3RhbGxlZCA9IGZhbHNlO1xuICAgIGxvZy5kZWJ1ZyhgR2V0dGluZyBpbnN0YWxsIHN0YXR1cyBmb3IgJHtwa2d9YCk7XG4gICAgbGV0IGFwaUxldmVsID0gYXdhaXQgdGhpcy5nZXRBcGlMZXZlbCgpO1xuICAgIGxldCB0aGlyZHBhcnR5ID0gYXBpTGV2ZWwgPj0gMTUgPyBcIi0zXCIgOiBcIlwiO1xuICAgIGxldCBzdGRvdXQgPSBhd2FpdCB0aGlzLnNoZWxsKFsncG0nLCAnbGlzdCcsICdwYWNrYWdlcycsIHRoaXJkcGFydHksIHBrZ10pO1xuICAgIGxldCBhcGtJbnN0YWxsZWRSZ3ggPSBuZXcgUmVnRXhwKGBecGFja2FnZToke3BrZy5yZXBsYWNlKC8oXFwuKS9nLCBcIlxcXFwkMVwiKX0kYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbScpO1xuICAgIGluc3RhbGxlZCA9IGFwa0luc3RhbGxlZFJneC50ZXN0KHN0ZG91dCk7XG4gICAgbG9nLmRlYnVnKGBBcHAgaXMgJHshaW5zdGFsbGVkID8gXCIgbm90XCIgOiBcIlwifSBpbnN0YWxsZWRgKTtcbiAgICByZXR1cm4gaW5zdGFsbGVkO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYEVycm9yIGZpbmRpbmcgaWYgYXBwIGlzIGluc3RhbGxlZC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5hcGtVdGlsc01ldGhvZHMuc3RhcnRBcHAgPSBhc3luYyBmdW5jdGlvbiAoc3RhcnRBcHBPcHRpb25zID0ge30pIHtcbiAgdHJ5IHtcbiAgICBpZiAoIXN0YXJ0QXBwT3B0aW9ucy5hY3Rpdml0eSB8fCAhc3RhcnRBcHBPcHRpb25zLnBrZykge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coXCJhY3Rpdml0eSBhbmQgcGtnIGlzIHJlcXVpcmVkIGZvciBsYXVuY2hpbmcgYXBwbGljYXRpb25cIik7XG4gICAgfVxuICAgIHN0YXJ0QXBwT3B0aW9ucyA9IF8uY2xvbmUoc3RhcnRBcHBPcHRpb25zKTtcbiAgICAvLyBpbml0aWFsaXppbmcgZGVmYXVsdHNcbiAgICBfLmRlZmF1bHRzKHN0YXJ0QXBwT3B0aW9ucywge1xuICAgICAgICB3YWl0UGtnOiBzdGFydEFwcE9wdGlvbnMucGtnLFxuICAgICAgICB3YWl0QWN0aXZpdHk6IGZhbHNlLFxuICAgICAgICByZXRyeTogdHJ1ZSxcbiAgICAgICAgc3RvcEFwcDogdHJ1ZVxuICAgIH0pO1xuICAgIC8vIHByZXZlbnRpbmcgbnVsbCB3YWl0cGtnXG4gICAgc3RhcnRBcHBPcHRpb25zLndhaXRQa2cgPSBzdGFydEFwcE9wdGlvbnMud2FpdFBrZyB8fCBzdGFydEFwcE9wdGlvbnMucGtnO1xuICAgIGxldCBhcGlMZXZlbCA9IGF3YWl0IHRoaXMuZ2V0QXBpTGV2ZWwoKTtcbiAgICBsZXQgY21kID0gYnVpbGRTdGFydENtZChzdGFydEFwcE9wdGlvbnMsIGFwaUxldmVsKTtcbiAgICBsZXQgc3Rkb3V0ID0gYXdhaXQgdGhpcy5zaGVsbChjbWQpO1xuICAgIGlmIChzdGRvdXQuaW5kZXhPZihcIkVycm9yOiBBY3Rpdml0eSBjbGFzc1wiKSAhPT0gLTEgJiZcbiAgICAgICAgc3Rkb3V0LmluZGV4T2YoXCJkb2VzIG5vdCBleGlzdFwiKSAhPT0gLTEpIHtcbiAgICAgIGlmIChzdGFydEFwcE9wdGlvbnMucmV0cnkgJiYgc3RhcnRBcHBPcHRpb25zLmFjdGl2aXR5WzBdICE9PSBcIi5cIikge1xuICAgICAgICBsb2cuZGVidWcoXCJXZSB0cmllZCB0byBzdGFydCBhbiBhY3Rpdml0eSB0aGF0IGRvZXNuJ3QgZXhpc3QsIFwiICtcbiAgICAgICAgICAgICAgICAgIFwicmV0cnlpbmcgd2l0aCAuIHByZXBlbmRlZCB0byBhY3Rpdml0eVwiKTtcbiAgICAgICAgc3RhcnRBcHBPcHRpb25zLmFjdGl2aXR5ID0gXCIuXCIgKyBzdGFydEFwcE9wdGlvbnMuYWN0aXZpdHk7XG4gICAgICAgIHN0YXJ0QXBwT3B0aW9ucy5yZXRyeSA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydEFwcChzdGFydEFwcE9wdGlvbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yQW5kVGhyb3coXCJBY3Rpdml0eSB1c2VkIHRvIHN0YXJ0IGFwcCBkb2Vzbid0IGV4aXN0IG9yIGNhbm5vdCBiZSBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibGF1bmNoZWQhIE1ha2Ugc3VyZSBpdCBleGlzdHMgYW5kIGlzIGEgbGF1bmNoYWJsZSBhY3Rpdml0eVwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0ZG91dC5pbmRleE9mKFwiamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uXCIpICE9PSAtMSkge1xuICAgICAgLy8gaWYgdGhlIGFwcCBpcyBkaXNhYmxlZCBvbiBhIHJlYWwgZGV2aWNlIGl0IHdpbGwgdGhyb3cgYSBzZWN1cml0eSBleGNlcHRpb25cbiAgICAgIGxvZy5lcnJvckFuZFRocm93KFwiUGVybWlzc2lvbiB0byBzdGFydCBhY3Rpdml0eSBkZW5pZWQuXCIpO1xuICAgIH1cbiAgICBpZiAoc3RhcnRBcHBPcHRpb25zLndhaXRBY3Rpdml0eSkge1xuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZpdHkoc3RhcnRBcHBPcHRpb25zLndhaXRQa2csIHN0YXJ0QXBwT3B0aW9ucy53YWl0QWN0aXZpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEFwcE9wdGlvbnMud2FpdER1cmF0aW9uKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgRXJyb3Igb2NjdXJlZCB3aGlsZSBzdGFydGluZyBBcHAuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuXG5hcGtVdGlsc01ldGhvZHMuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgbG9nLmRlYnVnKFwiR2V0dGluZyBmb2N1c2VkIHBhY2thZ2UgYW5kIGFjdGl2aXR5XCIpO1xuICBsZXQgY21kID0gWydkdW1wc3lzJywgJ3dpbmRvdycsICd3aW5kb3dzJ10sXG4gICAgICBudWxsUmUgPSBuZXcgUmVnRXhwKC9tRm9jdXNlZEFwcD1udWxsLyksXG4gICAgICBzZWFyY2hSZSA9IG5ldyBSZWdFeHAoJ21Gb2N1c2VkQXBwLitSZWNvcmRcXFxcey4qXFxcXHMoW15cXFxcc1xcXFwvXFxcXH1dKyknICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXFxcXC8oW15cXFxcc1xcXFwvXFxcXH1dKykoXFxcXHNbXlxcXFxzXFxcXC9cXFxcfV0rKSpcXFxcfScpO1xuICB0cnkge1xuICAgIGxldCBzdGRvdXQgPSBhd2FpdCB0aGlzLnNoZWxsKGNtZCk7XG4gICAgbGV0IGZvdW5kTnVsbE1hdGNoID0gZmFsc2U7XG4gICAgZm9yIChsZXQgbGluZSBvZiBzdGRvdXQuc3BsaXQoXCJcXG5cIikpIHtcbiAgICAgIGxldCBmb3VuZE1hdGNoID0gc2VhcmNoUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmIChmb3VuZE1hdGNoKSB7XG4gICAgICAgIHJldHVybiB7YXBwUGFja2FnZTogZm91bmRNYXRjaFsxXS50cmltKCksIGFwcEFjdGl2aXR5OiBmb3VuZE1hdGNoWzJdLnRyaW0oKX07XG4gICAgICB9IGVsc2UgaWYgKG51bGxSZS50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGZvdW5kTnVsbE1hdGNoID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZvdW5kTnVsbE1hdGNoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coXCJDb3VsZCBub3QgcGFyc2UgYWN0aXZpdHkgZnJvbSBkdW1wc3lzXCIpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3QgZ2V0IGZvY3VzUGFja2FnZUFuZEFjdGl2aXR5LiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmFwa1V0aWxzTWV0aG9kcy53YWl0Rm9yQWN0aXZpdHlPck5vdCA9IGFzeW5jIGZ1bmN0aW9uIChwa2csIGFjdGl2aXR5LCBub3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdE1zID0gMjAwMDApIHtcbiAgaWYgKCFwa2cgfHwgIWFjdGl2aXR5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUGFja2FnZSBhbmQgYWN0aXZpdHkgcmVxdWlyZWQuXCIpO1xuICB9XG4gIGxvZy5kZWJ1ZyhgV2FpdGluZyBmb3IgcGtnOiAke3BrZ30gYW5kIGFjdGl2aXR5OiAke2FjdGl2aXR5fWAgK1xuICAgICAgICAgICAgYCR7bm90ID8gJyBub3QnIDogJyd9IHRvIGJlIGZvY3VzZWRgKTtcbiAgbGV0IGVuZEF0ID0gRGF0ZS5ub3coKSArIHdhaXRNcztcbiAgbGV0IGFjdGl2aXR5UmVsYXRpdmVOYW1lID0gZ2V0QWN0aXZpdHlSZWxhdGl2ZU5hbWUocGtnLCBhY3Rpdml0eSk7XG4gIHdoaWxlIChEYXRlLm5vdygpIDwgZW5kQXQpIHtcbiAgICBsZXQge2FwcFBhY2thZ2UsIGFwcEFjdGl2aXR5fSA9IGF3YWl0IHRoaXMuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSgpO1xuICAgIGxldCBmb3VuZEFjdCA9ICgoYXBwUGFja2FnZSA9PT0gcGtnKSAmJiAoYWN0aXZpdHlSZWxhdGl2ZU5hbWUgPT09IGFwcEFjdGl2aXR5KSk7XG4gICAgaWYgKCghbm90ICYmIGZvdW5kQWN0KSB8fCAobm90ICYmICFmb3VuZEFjdCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gY29vbCBkb3duIHNvIHdlJ3JlIG5vdCBvdmVybG9hZGluZyBkZXZpY2Ugd2l0aCByZXF1ZXN0c1xuICAgIGF3YWl0IHNsZWVwKDc1MCk7XG4gIH1cbiAgbG9nLmVycm9yQW5kVGhyb3coYCR7cGtnfS8ke2FjdGl2aXR5UmVsYXRpdmVOYW1lfSBuZXZlciBgICtcbiAgICAgICAgICAgICAgICAgICAgYCR7bm90ID8gJ3N0b3BwZWQnIDogJ3N0YXJ0ZWQnfWApO1xufTtcblxuYXBrVXRpbHNNZXRob2RzLndhaXRGb3JBY3Rpdml0eSA9IGFzeW5jIGZ1bmN0aW9uIChwa2csIGFjdCwgd2FpdE1zID0gMjAwMDApIHtcbiAgYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZpdHlPck5vdChwa2csIGFjdCwgZmFsc2UsIHdhaXRNcyk7XG59O1xuXG5hcGtVdGlsc01ldGhvZHMud2FpdEZvck5vdEFjdGl2aXR5ID0gYXN5bmMgZnVuY3Rpb24gKHBrZywgYWN0LCB3YWl0TXMgPSAyMDAwMCkge1xuICBhd2FpdCB0aGlzLndhaXRGb3JBY3Rpdml0eU9yTm90KHBrZywgYWN0LCB0cnVlLCB3YWl0TXMpO1xufTtcblxuYXBrVXRpbHNNZXRob2RzLnVuaW5zdGFsbEFwayA9IGFzeW5jIGZ1bmN0aW9uIChwa2cpIHtcbiAgbG9nLmRlYnVnKGBVbmluc3RhbGxpbmcgJHtwa2d9YCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5mb3JjZVN0b3AocGtnKTtcbiAgICBsZXQgc3Rkb3V0ID0gYXdhaXQgdGhpcy5hZGJFeGVjKFsndW5pbnN0YWxsJywgcGtnXSwge3RpbWVvdXQ6IDIwMDAwfSk7XG4gICAgc3Rkb3V0ID0gc3Rkb3V0LnRyaW0oKTtcbiAgICAvLyBzdGRvdXQgbWF5IGNvbnRhaW4gd2FybmluZ3MgbWVhbmluZyBzdWNjZXNzIGlzIG5vdCBvbiB0aGUgZmlyc3QgbGluZS5cbiAgICBpZiAoc3Rkb3V0LmluZGV4T2YoXCJTdWNjZXNzXCIpICE9PSAtMSkge1xuICAgICAgbG9nLmluZm8oXCJBcHAgd2FzIHVuaW5zdGFsbGVkXCIpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5pbmZvKFwiQXBwIHdhcyBub3QgdW5pbnN0YWxsZWQsIG1heWJlIGl0IHdhc24ndCBvbiBkZXZpY2U/XCIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBVbmFibGUgdG8gdW5pbnN0YWxsIEFQSy4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5hcGtVdGlsc01ldGhvZHMuaW5zdGFsbEZyb21EZXZpY2VQYXRoID0gYXN5bmMgZnVuY3Rpb24gKGFwa1BhdGhPbkRldmljZSkge1xuICBsZXQgc3Rkb3V0ID0gYXdhaXQgdGhpcy5zaGVsbChbJ3BtJywgJ2luc3RhbGwnLCAnLXInLCBhcGtQYXRoT25EZXZpY2VdKTtcbiAgaWYgKHN0ZG91dC5pbmRleE9mKFwiRmFpbHVyZVwiKSAhPT0gLTEpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgUmVtb3RlIGluc3RhbGwgZmFpbGVkOiAke3N0ZG91dH1gKTtcbiAgfVxufTtcblxuYXBrVXRpbHNNZXRob2RzLmluc3RhbGwgPSBhc3luYyBmdW5jdGlvbiAoYXBrLCByZXBsYWNlID0gdHJ1ZSkge1xuICBpZiAocmVwbGFjZSkge1xuICAgIGF3YWl0IHRoaXMuYWRiRXhlYyhbJ2luc3RhbGwnLCAnLXInLCBhcGtdKTtcbiAgfSBlbHNlIHtcbiAgICBhd2FpdCB0aGlzLmFkYkV4ZWMoWydpbnN0YWxsJywgYXBrXSk7XG4gIH1cbn07XG5cbmFwa1V0aWxzTWV0aG9kcy5leHRyYWN0U3RyaW5nc0Zyb21BcGsgPSBhc3luYyBmdW5jdGlvbiAoYXBrLCBsYW5ndWFnZSwgb3V0KSB7XG4gIGxvZy5kZWJ1ZyhgRXh0cmFjdGluZyBzdHJpbmdzIGZvciBsYW5ndWFnZTogJHtsYW5ndWFnZSB8fCBcImRlZmF1bHRcIn1gKTtcbiAgbGV0IHN0cmluZ3NKc29uID0gJ3N0cmluZ3MuanNvbic7XG4gIGxldCBsb2NhbFBhdGg7XG4gIGlmICghbGFuZ3VhZ2UpIHtcbiAgICBsYW5ndWFnZSA9IGF3YWl0IHRoaXMuZ2V0RGV2aWNlTGFuZ3VhZ2UoKTtcbiAgfVxuICBsZXQgYXBrVG9vbHMgPSB0aGlzLmphcnNbJ2FwcGl1bV9hcGtfdG9vbHMuamFyJ107XG4gIGxldCBhcmdzID0gWyctamFyJywgYXBrVG9vbHMsICdzdHJpbmdzRnJvbUFwaycsIGFwaywgb3V0LCBsYW5ndWFnZV07XG4gIGxldCBmaWxlRGF0YSwgYXBrU3RyaW5ncztcbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjKCdqYXZhJywgYXJncyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZGVidWcoYE5vIHN0cmluZ3MueG1sIGZvciBsYW5ndWFnZSAnJHtsYW5ndWFnZX0nLCBnZXR0aW5nIGRlZmF1bHQgYCArXG4gICAgICAgICAgICAgIGBzdHJpbmdzLnhtbGApO1xuICAgIGFyZ3MucG9wKCk7XG4gICAgYXdhaXQgZXhlYygnamF2YScsIGFyZ3MpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBsb2cuZGVidWcoXCJSZWFkaW5nIHN0cmluZ3MgZnJvbSBjb252ZXJ0ZWQgc3RyaW5ncy5qc29uXCIpO1xuICAgIGxvY2FsUGF0aCA9IHBhdGguam9pbihvdXQsIHN0cmluZ3NKc29uKTtcbiAgICBmaWxlRGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKGxvY2FsUGF0aCwgJ3V0ZjgnKTtcbiAgICBhcGtTdHJpbmdzID0gSlNPTi5wYXJzZShmaWxlRGF0YSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZmlsZURhdGEpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgQ29udGVudCBzdGFydGVkIHdpdGg6ICR7ZmlsZURhdGEuc2xpY2UoMCwgMzAwKX1gKTtcbiAgICB9XG4gICAgbGV0IG1zZyA9IGBDb3VsZCBub3QgcGFyc2Ugc3RyaW5ncyBmcm9tIHN0cmluZ3MuanNvbi4gT3JpZ2luYWwgYCArXG4gICAgICAgICAgICAgIGBlcnJvcjogJHtlLm1lc3NhZ2V9YDtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhtc2cpO1xuICB9XG4gIHJldHVybiB7YXBrU3RyaW5ncywgbG9jYWxQYXRofTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGFwa1V0aWxzTWV0aG9kcztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi90b29scy9hcGstdXRpbHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O3lCQUF1RCxlQUFlOzs0QkFDakQsY0FBYzs7d0JBQ25CLGNBQWM7Ozs7b0JBQ2IsTUFBTTs7OztzQkFDVCxRQUFROzs7O3dCQUNBLFVBQVU7O3FCQUNiLFVBQVU7O0FBRTdCLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQzs7QUFFekIsZUFBZSxDQUFDLGNBQWMsR0FBRyxvQkFBZ0IsR0FBRztNQUU1QyxTQUFTLEVBRVQsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sZUFBZTs7Ozs7QUFMZixpQkFBUyxHQUFHLEtBQUs7O0FBQ3JCLDhCQUFJLEtBQUssaUNBQStCLEdBQUcsQ0FBRyxDQUFDOzt5Q0FDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRTs7O0FBQW5DLGdCQUFRO0FBQ1Isa0JBQVUsR0FBRyxRQUFRLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFOzt5Q0FDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQzs7O0FBQXRFLGNBQU07QUFDTix1QkFBZSxHQUFHLElBQUksTUFBTSxlQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUN4QyxHQUFHLENBQUM7O0FBQ3JDLGlCQUFTLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6Qyw4QkFBSSxLQUFLLGNBQVcsQ0FBQyxTQUFTLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQSxnQkFBYSxDQUFDOzRDQUNuRCxTQUFTOzs7Ozs7QUFFaEIsOEJBQUksYUFBYSx5REFBdUQsZUFBRSxPQUFPLENBQUcsQ0FBQzs7Ozs7OztDQUV4RixDQUFDOztBQUVGLGVBQWUsQ0FBQyxRQUFRLEdBQUc7TUFBZ0IsZUFBZSx5REFBRyxFQUFFO01BZXZELFFB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LXV0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRTdGFydENtZCwgZ2V0QWN0aXZpdHlSZWxhdGl2ZU5hbWUgfSBmcm9tICcuLi9oZWxwZXJzLmpzJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXIuanMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJy4uL3V0aWxzJztcblxubGV0IGFwa1V0aWxzTWV0aG9kcyA9IHt9O1xuXG5hcGtVdGlsc01ldGhvZHMuaXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiAocGtnKSB7XG4gIHRyeSB7XG4gICAgbGV0IGluc3RhbGxlZCA9IGZhbHNlO1xuICAgIGxvZy5kZWJ1ZyhgR2V0dGluZyBpbnN0YWxsIHN0YXR1cyBmb3IgJHtwa2d9YCk7XG4gICAgbGV0IGFwaUxldmVsID0gYXdhaXQgdGhpcy5nZXRBcGlMZXZlbCgpO1xuICAgIGxldCB0aGlyZHBhcnR5ID0gYXBpTGV2ZWwgPj0gMTUgPyBcIi0zXCIgOiBcIlwiO1xuICAgIGxldCBzdGRvdXQgPSBhd2FpdCB0aGlzLnNoZWxsKFsncG0nLCAnbGlzdCcsICdwYWNrYWdlcycsIHRoaXJkcGFydHksIHBrZ10pO1xuICAgIGxldCBhcGtJbnN0YWxsZWRSZ3ggPSBuZXcgUmVnRXhwKGBecGFja2FnZToke3BrZy5yZXBsYWNlKC8oXFwuKS9nLCBcIlxcXFwkMVwiKX0kYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbScpO1xuICAgIGluc3RhbGxlZCA9IGFwa0luc3RhbGxlZFJneC50ZXN0KHN0ZG91dCk7XG4gICAgbG9nLmRlYnVnKGBBcHAgaXMgJHshaW5zdGFsbGVkID8gXCIgbm90XCIgOiBcIlwifSBpbnN0YWxsZWRgKTtcbiAgICByZXR1cm4gaW5zdGFsbGVkO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYEVycm9yIGZpbmRpbmcgaWYgYXBwIGlzIGluc3RhbGxlZC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5hcGtVdGlsc01ldGhvZHMuc3RhcnRBcHAgPSBhc3luYyBmdW5jdGlvbiAoc3RhcnRBcHBPcHRpb25zID0ge30pIHtcbiAgdHJ5IHtcbiAgICBpZiAoIXN0YXJ0QXBwT3B0aW9ucy5hY3Rpdml0eSB8fCAhc3RhcnRBcHBPcHRpb25zLnBrZykge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coXCJhY3Rpdml0eSBhbmQgcGtnIGlzIHJlcXVpcmVkIGZvciBsYXVuY2hpbmcgYXBwbGljYXRpb25cIik7XG4gICAgfVxuICAgIHN0YXJ0QXBwT3B0aW9ucyA9IF8uY2xvbmUoc3RhcnRBcHBPcHRpb25zKTtcbiAgICAvLyBpbml0aWFsaXppbmcgZGVmYXVsdHNcbiAgICBfLmRlZmF1bHRzKHN0YXJ0QXBwT3B0aW9ucywge1xuICAgICAgICB3YWl0UGtnOiBzdGFydEFwcE9wdGlvbnMucGtnLFxuICAgICAgICB3YWl0QWN0aXZpdHk6IGZhbHNlLFxuICAgICAgICByZXRyeTogdHJ1ZSxcbiAgICAgICAgc3RvcEFwcDogdHJ1ZVxuICAgIH0pO1xuICAgIC8vIHByZXZlbnRpbmcgbnVsbCB3YWl0cGtnXG4gICAgc3RhcnRBcHBPcHRpb25zLndhaXRQa2cgPSBzdGFydEFwcE9wdGlvbnMud2FpdFBrZyB8fCBzdGFydEFwcE9wdGlvbnMucGtnO1xuICAgIGxldCBhcGlMZXZlbCA9IGF3YWl0IHRoaXMuZ2V0QXBpTGV2ZWwoKTtcbiAgICBsZXQgY21kID0gYnVpbGRTdGFydENtZChzdGFydEFwcE9wdGlvbnMsIGFwaUxldmVsKTtcbiAgICBsZXQgc3Rkb3V0ID0gYXdhaXQgdGhpcy5zaGVsbChjbWQpO1xuICAgIGlmIChzdGRvdXQuaW5kZXhPZihcIkVycm9yOiBBY3Rpdml0eSBjbGFzc1wiKSAhPT0gLTEgJiZcbiAgICAgICAgc3Rkb3V0LmluZGV4T2YoXCJkb2VzIG5vdCBleGlzdFwiKSAhPT0gLTEpIHtcbiAgICAgIGlmIChzdGFydEFwcE9wdGlvbnMucmV0cnkgJiYgc3RhcnRBcHBPcHRpb25zLmFjdGl2aXR5WzBdICE9PSBcIi5cIikge1xuICAgICAgICBsb2cuZGVidWcoXCJXZSB0cmllZCB0byBzdGFydCBhbiBhY3Rpdml0eSB0aGF0IGRvZXNuJ3QgZXhpc3QsIFwiICtcbiAgICAgICAgICAgICAgICAgIFwicmV0cnlpbmcgd2l0aCAuIHByZXBlbmRlZCB0byBhY3Rpdml0eVwiKTtcbiAgICAgICAgc3RhcnRBcHBPcHRpb25zLmFjdGl2aXR5ID0gXCIuXCIgKyBzdGFydEFwcE9wdGlvbnMuYWN0aXZpdHk7XG4gICAgICAgIHN0YXJ0QXBwT3B0aW9ucy5yZXRyeSA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydEFwcChzdGFydEFwcE9wdGlvbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yQW5kVGhyb3coXCJBY3Rpdml0eSB1c2VkIHRvIHN0YXJ0IGFwcCBkb2Vzbid0IGV4aXN0IG9yIGNhbm5vdCBiZSBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibGF1bmNoZWQhIE1ha2Ugc3VyZSBpdCBleGlzdHMgYW5kIGlzIGEgbGF1bmNoYWJsZSBhY3Rpdml0eVwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0ZG91dC5pbmRleE9mKFwiamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uXCIpICE9PSAtMSkge1xuICAgICAgLy8gaWYgdGhlIGFwcCBpcyBkaXNhYmxlZCBvbiBhIHJlYWwgZGV2aWNlIGl0IHdpbGwgdGhyb3cgYSBzZWN1cml0eSBleGNlcHRpb25cbiAgICAgIGxvZy5lcnJvckFuZFRocm93KFwiUGVybWlzc2lvbiB0byBzdGFydCBhY3Rpdml0eSBkZW5pZWQuXCIpO1xuICAgIH1cbiAgICBpZiAoc3RhcnRBcHBPcHRpb25zLndhaXRBY3Rpdml0eSkge1xuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZpdHkoc3RhcnRBcHBPcHRpb25zLndhaXRQa2csIHN0YXJ0QXBwT3B0aW9ucy53YWl0QWN0aXZpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEFwcE9wdGlvbnMud2FpdER1cmF0aW9uKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgRXJyb3Igb2NjdXJlZCB3aGlsZSBzdGFydGluZyBBcHAuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuXG5hcGtVdGlsc01ldGhvZHMuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgbG9nLmRlYnVnKFwiR2V0dGluZyBmb2N1c2VkIHBhY2thZ2UgYW5kIGFjdGl2aXR5XCIpO1xuICBsZXQgY21kID0gWydkdW1wc3lzJywgJ3dpbmRvdycsICd3aW5kb3dzJ10sXG4gICAgICBudWxsUmUgPSBuZXcgUmVnRXhwKC9tRm9jdXNlZEFwcD1udWxsLyksXG4gICAgICBzZWFyY2hSZSA9IG5ldyBSZWdFeHAoJ21Gb2N1c2VkQXBwLitSZWNvcmRcXFxcey4qXFxcXHMoW15cXFxcc1xcXFwvXFxcXH1dKyknICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXFxcXC8oW15cXFxcc1xcXFwvXFxcXH1dKykoXFxcXHNbXlxcXFxzXFxcXC9cXFxcfV0rKSpcXFxcfScpO1xuICB0cnkge1xuICAgIGxldCBzdGRvdXQgPSBhd2FpdCB0aGlzLnNoZWxsKGNtZCk7XG4gICAgbGV0IGZvdW5kTnVsbE1hdGNoID0gZmFsc2U7XG4gICAgZm9yIChsZXQgbGluZSBvZiBzdGRvdXQuc3BsaXQoXCJcXG5cIikpIHtcbiAgICAgIGxldCBmb3VuZE1hdGNoID0gc2VhcmNoUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmIChmb3VuZE1hdGNoKSB7XG4gICAgICAgIHJldHVybiB7YXBwUGFja2FnZTogZm91bmRNYXRjaFsxXS50cmltKCksIGFwcEFjdGl2aXR5OiBmb3VuZE1hdGNoWzJdLnRyaW0oKX07XG4gICAgICB9IGVsc2UgaWYgKG51bGxSZS50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGZvdW5kTnVsbE1hdGNoID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZvdW5kTnVsbE1hdGNoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coXCJDb3VsZCBub3QgcGFyc2UgYWN0aXZpdHkgZnJvbSBkdW1wc3lzXCIpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3QgZ2V0IGZvY3VzUGFja2FnZUFuZEFjdGl2aXR5LiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmFwa1V0aWxzTWV0aG9kcy53YWl0Rm9yQWN0aXZpdHlPck5vdCA9IGFzeW5jIGZ1bmN0aW9uIChwa2csIGFjdGl2aXR5LCBub3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdE1zID0gMjAwMDApIHtcbiAgaWYgKCFwa2cgfHwgIWFjdGl2aXR5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUGFja2FnZSBhbmQgYWN0aXZpdHkgcmVxdWlyZWQuXCIpO1xuICB9XG4gIGxvZy5kZWJ1ZyhgV2FpdGluZyBmb3IgcGtnOiAke3BrZ30gYW5kIGFjdGl2aXR5OiAke2FjdGl2aXR5fWAgK1xuICAgICAgICAgICAgYCR7bm90ID8gJyBub3QnIDogJyd9IHRvIGJlIGZvY3VzZWRgKTtcbiAgbGV0IGVuZEF0ID0gRGF0ZS5ub3coKSArIHdhaXRNcztcbiAgbGV0IGFjdGl2aXR5UmVsYXRpdmVOYW1lID0gZ2V0QWN0aXZpdHlSZWxhdGl2ZU5hbWUocGtnLCBhY3Rpdml0eSk7XG4gIHdoaWxlIChEYXRlLm5vdygpIDwgZW5kQXQpIHtcbiAgICBsZXQge2FwcFBhY2thZ2UsIGFwcEFjdGl2aXR5fSA9IGF3YWl0IHRoaXMuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSgpO1xuICAgIGxldCBmb3VuZEFjdCA9ICgoYXBwUGFja2FnZSA9PT0gcGtnKSAmJiAoYWN0aXZpdHlSZWxhdGl2ZU5hbWUgPT09IGFwcEFjdGl2aXR5KSk7XG4gICAgaWYgKCghbm90ICYmIGZvdW5kQWN0KSB8fCAobm90ICYmICFmb3VuZEFjdCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gY29vbCBkb3duIHNvIHdlJ3JlIG5vdCBvdmVybG9hZGluZyBkZXZpY2Ugd2l0aCByZXF1ZXN0c1xuICAgIGF3YWl0IHNsZWVwKDc1MCk7XG4gIH1cbiAgbG9nLmVycm9yQW5kVGhyb3coYCR7cGtnfS8ke2FjdGl2aXR5UmVsYXRpdmVOYW1lfSBuZXZlciBgICtcbiAgICAgICAgICAgICAgICAgICAgYCR7bm90ID8gJ3N0b3BwZWQnIDogJ3N0YXJ0ZWQnfWApO1xufTtcblxuYXBrVXRpbHNNZXRob2RzLndhaXRGb3JBY3Rpdml0eSA9IGFzeW5jIGZ1bmN0aW9uIChwa2csIGFjdCwgd2FpdE1zID0gMjAwMDApIHtcbiAgYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZpdHlPck5vdChwa2csIGFjdCwgZmFsc2UsIHdhaXRNcyk7XG59O1xuXG5hcGtVdGlsc01ldGhvZHMud2FpdEZvck5vdEFjdGl2aXR5ID0gYXN5bmMgZnVuY3Rpb24gKHBrZywgYWN0LCB3YWl0TXMgPSAyMDAwMCkge1xuICBhd2FpdCB0aGlzLndhaXRGb3JBY3Rpdml0eU9yTm90KHBrZywgYWN0LCB0cnVlLCB3YWl0TXMpO1xufTtcblxuYXBrVXRpbHNNZXRob2RzLnVuaW5zdGFsbEFwayA9IGFzeW5jIGZ1bmN0aW9uIChwa2cpIHtcbiAgbG9nLmRlYnVnKGBVbmluc3RhbGxpbmcgJHtwa2d9YCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5mb3JjZVN0b3AocGtnKTtcbiAgICBsZXQgc3Rkb3V0ID0gYXdhaXQgdGhpcy5hZGJFeGVjKFsndW5pbnN0YWxsJywgcGtnXSwge3RpbWVvdXQ6IDIwMDAwfSk7XG4gICAgc3Rkb3V0ID0gc3Rkb3V0LnRyaW0oKTtcbiAgICAvLyBzdGRvdXQgbWF5IGNvbnRhaW4gd2FybmluZ3MgbWVhbmluZyBzdWNjZXNzIGlzIG5vdCBvbiB0aGUgZmlyc3QgbGluZS5cbiAgICBpZiAoc3Rkb3V0LmluZGV4T2YoXCJTdWNjZXNzXCIpICE9PSAtMSkge1xuICAgICAgbG9nLmluZm8oXCJBcHAgd2FzIHVuaW5zdGFsbGVkXCIpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5pbmZvKFwiQXBwIHdhcyBub3QgdW5pbnN0YWxsZWQsIG1heWJlIGl0IHdhc24ndCBvbiBkZXZpY2U/XCIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBVbmFibGUgdG8gdW5pbnN0YWxsIEFQSy4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5hcGtVdGlsc01ldGhvZHMuaW5zdGFsbEZyb21EZXZpY2VQYXRoID0gYXN5bmMgZnVuY3Rpb24gKGFwa1BhdGhPbkRldmljZSkge1xuICBsZXQgc3Rkb3V0ID0gYXdhaXQgdGhpcy5zaGVsbChbJ3BtJywgJ2luc3RhbGwnLCAnLXInLCBhcGtQYXRoT25EZXZpY2VdKTtcbiAgaWYgKHN0ZG91dC5pbmRleE9mKFwiRmFpbHVyZVwiKSAhPT0gLTEpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgUmVtb3RlIGluc3RhbGwgZmFpbGVkOiAke3N0ZG91dH1gKTtcbiAgfVxufTtcblxuYXBrVXRpbHNNZXRob2RzLmluc3RhbGwgPSBhc3luYyBmdW5jdGlvbiAoYXBrLCByZXBsYWNlID0gdHJ1ZSwgdGltZW91dCA9IDYwMDAwKSB7XG4gIGlmIChyZXBsYWNlKSB7XG4gICAgYXdhaXQgdGhpcy5hZGJFeGVjKFsnaW5zdGFsbCcsICctcicsIGFwa10sIHt0aW1lb3V0fSk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgdGhpcy5hZGJFeGVjKFsnaW5zdGFsbCcsIGFwa10sIHt0aW1lb3V0fSk7XG4gIH1cbn07XG5cbmFwa1V0aWxzTWV0aG9kcy5leHRyYWN0U3RyaW5nc0Zyb21BcGsgPSBhc3luYyBmdW5jdGlvbiAoYXBrLCBsYW5ndWFnZSwgb3V0KSB7XG4gIGxvZy5kZWJ1ZyhgRXh0cmFjdGluZyBzdHJpbmdzIGZvciBsYW5ndWFnZTogJHtsYW5ndWFnZSB8fCBcImRlZmF1bHRcIn1gKTtcbiAgbGV0IHN0cmluZ3NKc29uID0gJ3N0cmluZ3MuanNvbic7XG4gIGxldCBsb2NhbFBhdGg7XG4gIGlmICghbGFuZ3VhZ2UpIHtcbiAgICBsYW5ndWFnZSA9IGF3YWl0IHRoaXMuZ2V0RGV2aWNlTGFuZ3VhZ2UoKTtcbiAgfVxuICBsZXQgYXBrVG9vbHMgPSB0aGlzLmphcnNbJ2FwcGl1bV9hcGtfdG9vbHMuamFyJ107XG4gIGxldCBhcmdzID0gWyctamFyJywgYXBrVG9vbHMsICdzdHJpbmdzRnJvbUFwaycsIGFwaywgb3V0LCBsYW5ndWFnZV07XG4gIGxldCBmaWxlRGF0YSwgYXBrU3RyaW5ncztcbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjKCdqYXZhJywgYXJncyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZGVidWcoYE5vIHN0cmluZ3MueG1sIGZvciBsYW5ndWFnZSAnJHtsYW5ndWFnZX0nLCBnZXR0aW5nIGRlZmF1bHQgYCArXG4gICAgICAgICAgICAgIGBzdHJpbmdzLnhtbGApO1xuICAgIGFyZ3MucG9wKCk7XG4gICAgYXdhaXQgZXhlYygnamF2YScsIGFyZ3MpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBsb2cuZGVidWcoXCJSZWFkaW5nIHN0cmluZ3MgZnJvbSBjb252ZXJ0ZWQgc3RyaW5ncy5qc29uXCIpO1xuICAgIGxvY2FsUGF0aCA9IHBhdGguam9pbihvdXQsIHN0cmluZ3NKc29uKTtcbiAgICBmaWxlRGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKGxvY2FsUGF0aCwgJ3V0ZjgnKTtcbiAgICBhcGtTdHJpbmdzID0gSlNPTi5wYXJzZShmaWxlRGF0YSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZmlsZURhdGEpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgQ29udGVudCBzdGFydGVkIHdpdGg6ICR7ZmlsZURhdGEuc2xpY2UoMCwgMzAwKX1gKTtcbiAgICB9XG4gICAgbGV0IG1zZyA9IGBDb3VsZCBub3QgcGFyc2Ugc3RyaW5ncyBmcm9tIHN0cmluZ3MuanNvbi4gT3JpZ2luYWwgYCArXG4gICAgICAgICAgICAgIGBlcnJvcjogJHtlLm1lc3NhZ2V9YDtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhtc2cpO1xuICB9XG4gIHJldHVybiB7YXBrU3RyaW5ncywgbG9jYWxQYXRofTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGFwa1V0aWxzTWV0aG9kcztcbiJdfQ==

@@ -292,3 +292,3 @@ 'use strict';

case 0:
mocks.adb.expects('adbExec').once().withExactArgs(['install', '-r', 'foo']).returns('');
mocks.adb.expects('adbExec').once().withExactArgs(['install', '-r', 'foo'], { timeout: 60000 }).returns('');
context$3$0.next = 3;

@@ -347,2 +347,2 @@ return _regeneratorRuntime.awrap(adb.install('foo'));

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvdW5pdC9hcGstdXRpbHMtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7OEJBQ0ksa0JBQWtCOzs7O1FBQ3RDLFdBQVc7O3dCQUNGLGtCQUFrQjs7Ozt1QkFDUixZQUFZOztBQUV0QyxrQkFBSyxHQUFHLDZCQUFnQixDQUFDO0FBQ3pCLElBQU0sTUFBTSxHQUFHLGtCQUFLLE1BQU0sRUFBRTtJQUN0QixHQUFHLEdBQUcsb0NBQW9DO0lBQzFDLEdBQUcsR0FBRyxpQkFBaUI7SUFDdkIsZUFBZSxHQUFHLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLO0FBQ2hELE9BQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSztBQUMzQyx5QkFBdUIsRUFBRSxZQUFZLEVBQUM7SUFDekQsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQ2pFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7O0FBRTFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtBQUMxQixNQUFJLEdBQUcsR0FBRywyQkFBUyxDQUFDO0FBQ3BCLFVBQVEsQ0FBQyxnQkFBZ0IsRUFBRSx3QkFBVSxFQUFDLEdBQUcsRUFBSCxHQUFHLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUNyRCxNQUFFLENBQUMsd0NBQXdDLEVBQUU7VUFDckMsR0FBRzs7OztBQUFILGVBQUcsR0FBRyxlQUFlOztBQUMzQixpQkFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQzdCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFD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LENBQzdCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakIsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN2QixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQ3pCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzs7NkNBQ1IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7OztBQUNwQyxpQkFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs7Ozs7OztLQUNwQixDQUFDLENBQUM7QUFDSCxNQUFFLENBQUMsMERBQTBELEVBQUU7Ozs7QUFDN0QsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUM3QixLQUFLLEVBQUUsQ0FDUCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakIsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQ1QsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDdkQsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN2QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7OzZDQUNSLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDOzs7QUFDcEMsaUJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7S0FDcEIsQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDLENBQUM7Q0FDTCxDQUFDLENBQUMiLCJmaWxlIjoidGVzdC91bml0L2Fway11dGlscy1zcGVjcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0ICdtb2NoYXdhaXQnO1xuaW1wb3J0IEFEQiBmcm9tICcuLi8uLi9saWIvYWRiLmpzJztcbmltcG9ydCB7IHdpdGhNb2NrcyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5jb25zdCBzaG91bGQgPSBjaGFpLnNob3VsZCgpLFxuICAgICAgcGtnID0gJ2NvbS5leGFtcGxlLmFuZHJvaWQuY29udGFjdG1hbmFnZXInLFxuICAgICAgYWN0ID0gJy5Db250YWN0TWFuYWdlcicsXG4gICAgICBzdGFydEFwcE9wdGlvbnMgPSB7c3RvcEFwcDogdHJ1ZSwgYWN0aW9uOiAnYWN0aW9uJywgY2F0ZWdvcnk6ICdjYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzOiAnZmxhZ3MnLCBwa2c6ICdwa2cnLCBhY3Rpdml0eTogJ2FjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHM6ICcteCBvcHRpb25zJ30sXG4gICAgICBjbWQgPSBbJ2FtJywgJ3N0YXJ0JywgJy1uJywgJ3BrZy9hY3QnLCAnLVMnLCAnLWEnLCAnYWN0aW9uJywgJy1jJywgJ2NhdCcsXG4gICAgICAgICAgICAgJy1mJywgJ2ZsYWdzJywgJy14IG9wdGlvbnMnXTtcblxuZGVzY3JpYmUoJ0Fway11dGlscycsICgpID0+IHtcbiAgbGV0IGFkYiA9IG5ldyBBREIoKTtcbiAgZGVzY3JpYmUoJ2lzQXBwSW5zdGFsbGVkJywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGNvcnJlY3RseSBhbmQgcmV0dXJuIHRydWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwa2cgPSAnZHVtbXkucGFja2FnZSc7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnZ2V0QXBpTGV2ZWwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoKVxuICAgICAgICAucmV0dXJucyhcIjE3XCIpO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKFsncG0nLCAnbGlzdCcsICdwYWNrYWdlcycsICctMycsIHBrZ10pXG4gICAgICAgIC5yZXR1cm5zKGBwYWNrYWdlOiR7cGtnfWApO1xuICAgICAgKGF3YWl0IGFkYi5pc0FwcEluc3RhbGxlZChwa2cpKS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGNvcnJlY3RseSBhbmQgcmV0dXJuIGZhbHNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcGtnID0gJ2R1bW15LnBhY2thZ2UnO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ2dldEFwaUxldmVsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKClcbiAgICAgICAgLnJldHVybnMoXCIxN1wiKTtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdzaGVsbCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ3BtJywgJ2xpc3QnLCAncGFja2FnZXMnLCAnLTMnLCBwa2ddKVxuICAgICAgICAucmV0dXJucyhcIlwiKTtcbiAgICAgIChhd2FpdCBhZGIuaXNBcHBJbnN0YWxsZWQocGtnKSkuc2hvdWxkLmJlLmZhbHNlO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCdnZXRGb2N1c2VkUGFja2FnZUFuZEFjdGl2aXR5Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGNvcnJlY3RseSBhbmQgcmV0dXJuIHBhY2thZ2UgYW5kIGFjdGl2aXR5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKFsnZHVtcHN5cycsICd3aW5kb3cnLCAnd2luZG93cyddKVxuICAgICAgICAucmV0dXJucyhgbUZvY3VzZWRBcHA9QXBwV2luZG93VG9rZW57Mzg2MDBiNTYgdG9rZW49VG9rZW57OWVhMTE3MSBgICtcbiAgICAgICAgICAgICAgICAgYEFjdGl2aXR5UmVjb3JkezIgdSAke3BrZ30vJHthY3R9IHQxODF9fX1gKTtcblxuICAgICAgbGV0IHthcHBQYWNrYWdlLCBhcHBBY3Rpdml0eX0gPSBhd2FpdCBhZGIuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSgpO1xuICAgICAgYXBwUGFja2FnZS5zaG91bGQuZXF1YWwocGtnKTtcbiAgICAgIGFwcEFjdGl2aXR5LnNob3VsZC5lcXVhbChhY3QpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgcGFyc2UgY29ycmVjdGx5IGFuZCByZXR1cm4gbnVsbCcsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdzaGVsbCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ2R1bXBzeXMnLCAnd2luZG93JywgJ3dpbmRvd3MnXSlcbiAgICAgICAgLnJldHVybnMoJ21Gb2N1c2VkQXBwPW51bGwnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QoYXdhaXQgYWRiLmdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkoKSk7XG4gICAgICBtb2Nrcy5hZGIudmVyaWZ5KCk7XG4gICAgfSk7XG4gIH0pKTtcbiAgZGVzY3JpYmUoJ3dhaXRGb3JBY3Rpdml0eU9yTm90Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgc2hlbGwgb25jZSBhbmQgc2hvdWxkIHJldHVybicsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdzaGVsbCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ2R1bXBzeXMnLCAnd2luZG93JywgJ3dpbmRvd3MnXSlcbiAgICAgICAgLnJldHVybnMoYG1Gb2N1c2VkQXBwPUFwcFdpbmRvd1Rva2VuezM4NjAwYjU2IHRva2VuPVRva2VuezllYTExNzEgYCArXG4gICAgICAgICAgICAgICAgIGBBY3Rpdml0eVJlY29yZHsyIHUgJHtwa2d9LyR7YWN0fSB0MTgxfX19YCk7XG5cbiAgICAgIGF3YWl0IGFkYi53YWl0Rm9yQWN0aXZpdHlPck5vdChwa2csIGFjdCwgZmFsc2UpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBzaGVsbCBtdWx0aXBsZSB0aW1lcyBhbmQgcmV0dXJuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJykub25DYWxsKDApXG4gICAgICAgIC5yZXR1cm5zKCdtRm9jdXNlZEFwcD1BcHBXaW5kb3dUb2tlbnszODYwMGI1NiB0b2tlbj1Ub2tlbns5ZWExMTcxICcgK1xuICAgICAgICAgICAgICAgICAnQWN0aXZpdHlSZWNvcmR7MmM3YzQzMTggdTAgZm9vL2JhciB0MTgxfX19Jyk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAucmV0dXJucygnbUZvY3VzZWRBcHA9QXBwV2luZG93VG9rZW57Mzg2MDBiNTYgdG9rZW49VG9rZW57OWVhMTE3MSAnICtcbiAgICAgICAgICAgICAgICAgJ0FjdGl2aXR5UmVjb3JkezJjN2M0MzE4IHUwIGNvbS5leGFtcGxlLmFuZHJvaWQuY29udGFjdG1hbmFnZXIvLkNvbnRhY3RNYW5hZ2VyIHQxODF9fX0nKTtcblxuICAgICAgYXdhaXQgYWRiLndhaXRGb3JBY3Rpdml0eU9yTm90KHBrZywgYWN0LCBmYWxzZSk7XG4gICAgICBtb2Nrcy5hZGIudmVyaWZ5KCk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBjYWxsIHNoZWxsIG9uY2UgcmV0dXJuIGZvciBub3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoWydkdW1wc3lzJywgJ3dpbmRvdycsICd3aW5kb3dzJ10pXG4gICAgICAgIC5yZXR1cm5zKCdtRm9jdXNlZEFwcD1BcHBXaW5kb3dUb2tlbnszODYwMGI1NiB0b2tlbj1Ub2tlbns5ZWExMTcxICcgK1xuICAgICAgICAgICAgICAgICAnQWN0aXZpdHlSZWNvcmR7YyAwIGZvby9iYXIgdDE4MX19fScpO1xuXG4gICAgICBhd2FpdCBhZGIud2FpdEZvckFjdGl2aXR5T3JOb3QocGtnLCBhY3QsIHRydWUpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBzaGVsbCBtdWx0aXBsZSB0aW1lcyBhbmQgcmV0dXJuIGZvciBub3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKS5vbkNhbGwoMClcbiAgICAgICAgLnJldHVybnMoYG1Gb2N1c2VkQXBwPUFwcFdpbmRvd1Rva2VuezM4NjAwYjU2IHRva2VuPVRva2VuezllYTExNzEgYCArXG4gICAgICAgICAgICAgICAgIGBBY3Rpdml0eVJlY29yZHsyIHUgJHtwa2d9LyR7YWN0fSB0MTgxfX19YCk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAucmV0dXJucygnbUZvY3VzZWRBcHA9QXBwV2luZG93VG9rZW57Mzg2MDBiNTYgdG9rZW49VG9rZW57OWVhMTE3MSAnICtcbiAgICAgICAgICAgICAgICAgJ0FjdGl2aXR5UmVjb3JkezJjN2M0MzE4IHUwIGZvby9iYXIgdDE4MX19fScpO1xuICAgICAgYXdhaXQgYWRiLndhaXRGb3JBY3Rpdml0eU9yTm90KHBrZywgYWN0LCB0cnVlKTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xuICBkZXNjcmliZSgnd2FpdEZvckFjdGl2aXR5Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgd2FpdEZvckFjdGl2aXR5T3JOb3Qgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCd3YWl0Rm9yQWN0aXZpdHlPck5vdCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhwa2csIGFjdCwgZmFsc2UsIDIwMDAwKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICBhd2FpdCBhZGIud2FpdEZvckFjdGl2aXR5KHBrZywgYWN0KTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xuICBkZXNjcmliZSgnd2FpdEZvck5vdEFjdGl2aXR5Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgd2FpdEZvckFjdGl2aXR5T3JOb3Qgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCd3YWl0Rm9yQWN0aXZpdHlPck5vdCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhwa2csIGFjdCwgdHJ1ZSwgMjAwMDApXG4gICAgICAgIC5yZXR1cm5zKCcnKTtcbiAgICAgIGF3YWl0IGFkYi53YWl0Rm9yTm90QWN0aXZpdHkocGtnLCBhY3QpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCd1bmluc3RhbGxBcGsnLCB3aXRoTW9ja3Moe2FkYn0sIChtb2NrcykgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCBmb3JjZVN0b3AgYW5kIGFkYkV4ZWMgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdmb3JjZVN0b3AnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MocGtnKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnYWRiRXhlYycpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ3VuaW5zdGFsbCcsIHBrZ10sIHt0aW1lb3V0OiAyMDAwMH0pXG4gICAgICAgIC5yZXR1cm5zKCdTdWNjZXNzJyk7XG4gICAgICAoYXdhaXQgYWRiLnVuaW5zdGFsbEFwayhwa2cpKS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xuICBkZXNjcmliZSgnaW5zdGFsbEZyb21EZXZpY2VQYXRoJywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgZm9yY2VTdG9wIGFuZCBhZGJFeGVjIHdpdGggY29ycmVjdCBhcmd1bWVudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoWydwbScsICdpbnN0YWxsJywgJy1yJywgJ2ZvbyddKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICAoYXdhaXQgYWRiLmluc3RhbGxGcm9tRGV2aWNlUGF0aCgnZm9vJykpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCdpbnN0YWxsJywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgZm9yY2VTdG9wIGFuZCBhZGJFeGVjIHdpdGggY29ycmVjdCBhcmd1bWVudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnYWRiRXhlYycpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ2luc3RhbGwnLCAnLXInLCAnZm9vJ10pXG4gICAgICAgIC5yZXR1cm5zKCcnKTtcbiAgICAgIChhd2FpdCBhZGIuaW5zdGFsbCgnZm9vJykpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCdzdGFydEFwcCcsIHdpdGhNb2Nrcyh7YWRifSwgKG1vY2tzKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjYWxsIGdldEFwaUxldmVsIGFuZCBzaGVsbCB3aXRoIGNvcnJlY3QgYXJndW1lbnRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ2dldEFwaUxldmVsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKClcbiAgICAgICAgLnJldHVybnMoJzE3Jyk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoY21kKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICAoYXdhaXQgYWRiLnN0YXJ0QXBwKHN0YXJ0QXBwT3B0aW9ucykpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBnZXRBcGlMZXZlbCBhbmQgc2hlbGwgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdnZXRBcGlMZXZlbCcpXG4gICAgICAgIC50d2ljZSgpXG4gICAgICAgIC5yZXR1cm5zKCcxNycpO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLm9uQ2FsbCgwKVxuICAgICAgICAucmV0dXJucygnRXJyb3I6IEFjdGl2aXR5IGNsYXNzIGZvbyBkb2VzIG5vdCBleGlzdCcpO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLnJldHVybnMoJycpO1xuICAgICAgKGF3YWl0IGFkYi5zdGFydEFwcChzdGFydEFwcE9wdGlvbnMpKTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvdW5pdC9hcGstdXRpbHMtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7OEJBQ0ksa0JBQWtCOzs7O1FBQ3RDLFdBQVc7O3dCQUNGLGtCQUFrQjs7Ozt1QkFDUixZQUFZOztBQUV0QyxrQkFBSyxHQUFHLDZCQUFnQixDQUFDO0FBQ3pCLElBQU0sTUFBTSxHQUFHLGtCQUFLLE1BQU0sRUFBRTtJQUN0QixHQUFHLEdBQUcsb0NBQW9DO0lBQzFDLEdBQUcsR0FBRyxpQkFBaUI7SUFDdkIsZUFBZSxHQUFHLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLO0FBQ2hELE9BQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSztBQUMzQyx5QkFBdUIsRUFBRSxZQUFZLEVBQUM7SUFDekQsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQ2pFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7O0FBRTFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtBQUMxQixNQUFJLEdBQUcsR0FBRywyQkFBUyxDQUFDO0FBQ3BCLFVBQVEsQ0FBQyxnQkFBZ0IsRUFBRSx3QkFBVSxFQUFDLEdBQUcsRUFBSCxHQUFHLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUNyRCxNQUFFLENBQUMsd0NBQXdDLEVBQUU7VUFDckMsR0FBRzs7OztBQUFILGVBQUcsR0FBRyxlQUFlOztBQUMzQixpQkFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQzdCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFD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LEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQzdCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakIsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN2QixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQ3pCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzs7NkNBQ1IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7OztBQUNwQyxpQkFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs7Ozs7OztLQUNwQixDQUFDLENBQUM7QUFDSCxNQUFFLENBQUMsMERBQTBELEVBQUU7Ozs7QUFDN0QsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUM3QixLQUFLLEVBQUUsQ0FDUCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakIsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQ1QsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDdkQsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN2QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7OzZDQUNSLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDOzs7QUFDcEMsaUJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7S0FDcEIsQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDLENBQUM7Q0FDTCxDQUFDLENBQUMiLCJmaWxlIjoidGVzdC91bml0L2Fway11dGlscy1zcGVjcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0ICdtb2NoYXdhaXQnO1xuaW1wb3J0IEFEQiBmcm9tICcuLi8uLi9saWIvYWRiLmpzJztcbmltcG9ydCB7IHdpdGhNb2NrcyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5jb25zdCBzaG91bGQgPSBjaGFpLnNob3VsZCgpLFxuICAgICAgcGtnID0gJ2NvbS5leGFtcGxlLmFuZHJvaWQuY29udGFjdG1hbmFnZXInLFxuICAgICAgYWN0ID0gJy5Db250YWN0TWFuYWdlcicsXG4gICAgICBzdGFydEFwcE9wdGlvbnMgPSB7c3RvcEFwcDogdHJ1ZSwgYWN0aW9uOiAnYWN0aW9uJywgY2F0ZWdvcnk6ICdjYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzOiAnZmxhZ3MnLCBwa2c6ICdwa2cnLCBhY3Rpdml0eTogJ2FjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHM6ICcteCBvcHRpb25zJ30sXG4gICAgICBjbWQgPSBbJ2FtJywgJ3N0YXJ0JywgJy1uJywgJ3BrZy9hY3QnLCAnLVMnLCAnLWEnLCAnYWN0aW9uJywgJy1jJywgJ2NhdCcsXG4gICAgICAgICAgICAgJy1mJywgJ2ZsYWdzJywgJy14IG9wdGlvbnMnXTtcblxuZGVzY3JpYmUoJ0Fway11dGlscycsICgpID0+IHtcbiAgbGV0IGFkYiA9IG5ldyBBREIoKTtcbiAgZGVzY3JpYmUoJ2lzQXBwSW5zdGFsbGVkJywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGNvcnJlY3RseSBhbmQgcmV0dXJuIHRydWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwa2cgPSAnZHVtbXkucGFja2FnZSc7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnZ2V0QXBpTGV2ZWwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoKVxuICAgICAgICAucmV0dXJucyhcIjE3XCIpO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKFsncG0nLCAnbGlzdCcsICdwYWNrYWdlcycsICctMycsIHBrZ10pXG4gICAgICAgIC5yZXR1cm5zKGBwYWNrYWdlOiR7cGtnfWApO1xuICAgICAgKGF3YWl0IGFkYi5pc0FwcEluc3RhbGxlZChwa2cpKS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGNvcnJlY3RseSBhbmQgcmV0dXJuIGZhbHNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcGtnID0gJ2R1bW15LnBhY2thZ2UnO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ2dldEFwaUxldmVsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKClcbiAgICAgICAgLnJldHVybnMoXCIxN1wiKTtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdzaGVsbCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ3BtJywgJ2xpc3QnLCAncGFja2FnZXMnLCAnLTMnLCBwa2ddKVxuICAgICAgICAucmV0dXJucyhcIlwiKTtcbiAgICAgIChhd2FpdCBhZGIuaXNBcHBJbnN0YWxsZWQocGtnKSkuc2hvdWxkLmJlLmZhbHNlO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCdnZXRGb2N1c2VkUGFja2FnZUFuZEFjdGl2aXR5Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGNvcnJlY3RseSBhbmQgcmV0dXJuIHBhY2thZ2UgYW5kIGFjdGl2aXR5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKFsnZHVtcHN5cycsICd3aW5kb3cnLCAnd2luZG93cyddKVxuICAgICAgICAucmV0dXJucyhgbUZvY3VzZWRBcHA9QXBwV2luZG93VG9rZW57Mzg2MDBiNTYgdG9rZW49VG9rZW57OWVhMTE3MSBgICtcbiAgICAgICAgICAgICAgICAgYEFjdGl2aXR5UmVjb3JkezIgdSAke3BrZ30vJHthY3R9IHQxODF9fX1gKTtcblxuICAgICAgbGV0IHthcHBQYWNrYWdlLCBhcHBBY3Rpdml0eX0gPSBhd2FpdCBhZGIuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSgpO1xuICAgICAgYXBwUGFja2FnZS5zaG91bGQuZXF1YWwocGtnKTtcbiAgICAgIGFwcEFjdGl2aXR5LnNob3VsZC5lcXVhbChhY3QpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgcGFyc2UgY29ycmVjdGx5IGFuZCByZXR1cm4gbnVsbCcsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdzaGVsbCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ2R1bXBzeXMnLCAnd2luZG93JywgJ3dpbmRvd3MnXSlcbiAgICAgICAgLnJldHVybnMoJ21Gb2N1c2VkQXBwPW51bGwnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QoYXdhaXQgYWRiLmdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkoKSk7XG4gICAgICBtb2Nrcy5hZGIudmVyaWZ5KCk7XG4gICAgfSk7XG4gIH0pKTtcbiAgZGVzY3JpYmUoJ3dhaXRGb3JBY3Rpdml0eU9yTm90Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgc2hlbGwgb25jZSBhbmQgc2hvdWxkIHJldHVybicsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdzaGVsbCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ2R1bXBzeXMnLCAnd2luZG93JywgJ3dpbmRvd3MnXSlcbiAgICAgICAgLnJldHVybnMoYG1Gb2N1c2VkQXBwPUFwcFdpbmRvd1Rva2VuezM4NjAwYjU2IHRva2VuPVRva2VuezllYTExNzEgYCArXG4gICAgICAgICAgICAgICAgIGBBY3Rpdml0eVJlY29yZHsyIHUgJHtwa2d9LyR7YWN0fSB0MTgxfX19YCk7XG5cbiAgICAgIGF3YWl0IGFkYi53YWl0Rm9yQWN0aXZpdHlPck5vdChwa2csIGFjdCwgZmFsc2UpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBzaGVsbCBtdWx0aXBsZSB0aW1lcyBhbmQgcmV0dXJuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJykub25DYWxsKDApXG4gICAgICAgIC5yZXR1cm5zKCdtRm9jdXNlZEFwcD1BcHBXaW5kb3dUb2tlbnszODYwMGI1NiB0b2tlbj1Ub2tlbns5ZWExMTcxICcgK1xuICAgICAgICAgICAgICAgICAnQWN0aXZpdHlSZWNvcmR7MmM3YzQzMTggdTAgZm9vL2JhciB0MTgxfX19Jyk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAucmV0dXJucygnbUZvY3VzZWRBcHA9QXBwV2luZG93VG9rZW57Mzg2MDBiNTYgdG9rZW49VG9rZW57OWVhMTE3MSAnICtcbiAgICAgICAgICAgICAgICAgJ0FjdGl2aXR5UmVjb3JkezJjN2M0MzE4IHUwIGNvbS5leGFtcGxlLmFuZHJvaWQuY29udGFjdG1hbmFnZXIvLkNvbnRhY3RNYW5hZ2VyIHQxODF9fX0nKTtcblxuICAgICAgYXdhaXQgYWRiLndhaXRGb3JBY3Rpdml0eU9yTm90KHBrZywgYWN0LCBmYWxzZSk7XG4gICAgICBtb2Nrcy5hZGIudmVyaWZ5KCk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBjYWxsIHNoZWxsIG9uY2UgcmV0dXJuIGZvciBub3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoWydkdW1wc3lzJywgJ3dpbmRvdycsICd3aW5kb3dzJ10pXG4gICAgICAgIC5yZXR1cm5zKCdtRm9jdXNlZEFwcD1BcHBXaW5kb3dUb2tlbnszODYwMGI1NiB0b2tlbj1Ub2tlbns5ZWExMTcxICcgK1xuICAgICAgICAgICAgICAgICAnQWN0aXZpdHlSZWNvcmR7YyAwIGZvby9iYXIgdDE4MX19fScpO1xuXG4gICAgICBhd2FpdCBhZGIud2FpdEZvckFjdGl2aXR5T3JOb3QocGtnLCBhY3QsIHRydWUpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBzaGVsbCBtdWx0aXBsZSB0aW1lcyBhbmQgcmV0dXJuIGZvciBub3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKS5vbkNhbGwoMClcbiAgICAgICAgLnJldHVybnMoYG1Gb2N1c2VkQXBwPUFwcFdpbmRvd1Rva2VuezM4NjAwYjU2IHRva2VuPVRva2VuezllYTExNzEgYCArXG4gICAgICAgICAgICAgICAgIGBBY3Rpdml0eVJlY29yZHsyIHUgJHtwa2d9LyR7YWN0fSB0MTgxfX19YCk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAucmV0dXJucygnbUZvY3VzZWRBcHA9QXBwV2luZG93VG9rZW57Mzg2MDBiNTYgdG9rZW49VG9rZW57OWVhMTE3MSAnICtcbiAgICAgICAgICAgICAgICAgJ0FjdGl2aXR5UmVjb3JkezJjN2M0MzE4IHUwIGZvby9iYXIgdDE4MX19fScpO1xuICAgICAgYXdhaXQgYWRiLndhaXRGb3JBY3Rpdml0eU9yTm90KHBrZywgYWN0LCB0cnVlKTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xuICBkZXNjcmliZSgnd2FpdEZvckFjdGl2aXR5Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgd2FpdEZvckFjdGl2aXR5T3JOb3Qgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCd3YWl0Rm9yQWN0aXZpdHlPck5vdCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhwa2csIGFjdCwgZmFsc2UsIDIwMDAwKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICBhd2FpdCBhZGIud2FpdEZvckFjdGl2aXR5KHBrZywgYWN0KTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xuICBkZXNjcmliZSgnd2FpdEZvck5vdEFjdGl2aXR5Jywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgd2FpdEZvckFjdGl2aXR5T3JOb3Qgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCd3YWl0Rm9yQWN0aXZpdHlPck5vdCcpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhwa2csIGFjdCwgdHJ1ZSwgMjAwMDApXG4gICAgICAgIC5yZXR1cm5zKCcnKTtcbiAgICAgIGF3YWl0IGFkYi53YWl0Rm9yTm90QWN0aXZpdHkocGtnLCBhY3QpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCd1bmluc3RhbGxBcGsnLCB3aXRoTW9ja3Moe2FkYn0sIChtb2NrcykgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCBmb3JjZVN0b3AgYW5kIGFkYkV4ZWMgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdmb3JjZVN0b3AnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MocGtnKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnYWRiRXhlYycpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ3VuaW5zdGFsbCcsIHBrZ10sIHt0aW1lb3V0OiAyMDAwMH0pXG4gICAgICAgIC5yZXR1cm5zKCdTdWNjZXNzJyk7XG4gICAgICAoYXdhaXQgYWRiLnVuaW5zdGFsbEFwayhwa2cpKS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xuICBkZXNjcmliZSgnaW5zdGFsbEZyb21EZXZpY2VQYXRoJywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgZm9yY2VTdG9wIGFuZCBhZGJFeGVjIHdpdGggY29ycmVjdCBhcmd1bWVudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoWydwbScsICdpbnN0YWxsJywgJy1yJywgJ2ZvbyddKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICAoYXdhaXQgYWRiLmluc3RhbGxGcm9tRGV2aWNlUGF0aCgnZm9vJykpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCdpbnN0YWxsJywgd2l0aE1vY2tzKHthZGJ9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgZm9yY2VTdG9wIGFuZCBhZGJFeGVjIHdpdGggY29ycmVjdCBhcmd1bWVudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnYWRiRXhlYycpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncyhbJ2luc3RhbGwnLCAnLXInLCAnZm9vJ10sIHt0aW1lb3V0OiA2MDAwMH0pXG4gICAgICAgIC5yZXR1cm5zKCcnKTtcbiAgICAgIChhd2FpdCBhZGIuaW5zdGFsbCgnZm9vJykpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICB9KSk7XG4gIGRlc2NyaWJlKCdzdGFydEFwcCcsIHdpdGhNb2Nrcyh7YWRifSwgKG1vY2tzKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjYWxsIGdldEFwaUxldmVsIGFuZCBzaGVsbCB3aXRoIGNvcnJlY3QgYXJndW1lbnRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ2dldEFwaUxldmVsJylcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKClcbiAgICAgICAgLnJldHVybnMoJzE3Jyk7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cygnc2hlbGwnKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoY21kKVxuICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICAoYXdhaXQgYWRiLnN0YXJ0QXBwKHN0YXJ0QXBwT3B0aW9ucykpO1xuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBnZXRBcGlMZXZlbCBhbmQgc2hlbGwgd2l0aCBjb3JyZWN0IGFyZ3VtZW50cycsIGFzeW5jICgpID0+IHtcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKCdnZXRBcGlMZXZlbCcpXG4gICAgICAgIC50d2ljZSgpXG4gICAgICAgIC5yZXR1cm5zKCcxNycpO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLm9uQ2FsbCgwKVxuICAgICAgICAucmV0dXJucygnRXJyb3I6IEFjdGl2aXR5IGNsYXNzIGZvbyBkb2VzIG5vdCBleGlzdCcpO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoJ3NoZWxsJylcbiAgICAgICAgLnJldHVybnMoJycpO1xuICAgICAgKGF3YWl0IGFkYi5zdGFydEFwcChzdGFydEFwcE9wdGlvbnMpKTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xufSk7XG4iXX0=

@@ -155,7 +155,7 @@ import { buildStartCmd, getActivityRelativeName } from '../helpers.js';

apkUtilsMethods.install = async function (apk, replace = true) {
apkUtilsMethods.install = async function (apk, replace = true, timeout = 60000) {
if (replace) {
await this.adbExec(['install', '-r', apk]);
await this.adbExec(['install', '-r', apk], {timeout});
} else {
await this.adbExec(['install', apk]);
await this.adbExec(['install', apk], {timeout});
}

@@ -162,0 +162,0 @@ };

{
"name": "appium-adb",
"version": "2.0.0-beta12",
"version": "2.0.0-beta13",
"description": "appium-adb",

@@ -5,0 +5,0 @@ "main": "./build/index.js",

@@ -146,3 +146,3 @@ import chai from 'chai';

mocks.adb.expects('adbExec')
.once().withExactArgs(['install', '-r', 'foo'])
.once().withExactArgs(['install', '-r', 'foo'], {timeout: 60000})
.returns('');

@@ -149,0 +149,0 @@ (await adb.install('foo'));

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc