appium-ios-device 1.4.1 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/build/lib/installation-proxy/index.js +3 -3
- package/build/lib/lockdown/index.js +10 -7
- package/build/lib/services.js +6 -3
- package/build/lib/syslog/transformer/syslog-decoder.js +65 -3
- package/build/lib/usbmux/index.js +19 -5
- package/build/lib/utilities.js +7 -5
- package/build/lib/webinspector/index.js +9 -8
- package/lib/installation-proxy/index.js +2 -2
- package/lib/lockdown/index.js +10 -8
- package/lib/services.js +3 -0
- package/lib/syslog/transformer/syslog-decoder.js +68 -3
- package/lib/usbmux/index.js +31 -6
- package/lib/utilities.js +8 -6
- package/lib/webinspector/index.js +14 -6
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -7,8 +7,6 @@ appium-ios-device
|
|
|
7
7
|
[](https://david-dm.org/appium/appium-ios-device/master#info=devDependencies)
|
|
8
8
|
|
|
9
9
|
[](https://travis-ci.org/appium/appium-ios-device)
|
|
10
|
-
[](https://coveralls.io/r/appium/appium-ios-device?branch=master)
|
|
11
|
-
[](https://greenkeeper.io/)
|
|
12
10
|
|
|
13
11
|
Appium API for dealing with iOS devices. This is mainly a rewrite of libimobiledevice in nodejs. The APIs allow Appium to talk directly to the phone over usbmuxd
|
|
14
12
|
|
|
@@ -46,12 +46,12 @@ class InstallationProxyService extends _baseService.BaseServicePlist {
|
|
|
46
46
|
this._plistService.sendPlist(request);
|
|
47
47
|
|
|
48
48
|
const messages = await this._waitMessageCompletion();
|
|
49
|
-
return messages.reduce((acc, message)
|
|
49
|
+
return messages.reduce(function (acc, message) {
|
|
50
50
|
if (!message.CurrentList) {
|
|
51
51
|
return acc;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
message.CurrentList.forEach(app
|
|
54
|
+
message.CurrentList.forEach(function (app) {
|
|
55
55
|
acc[app.CFBundleIdentifier] = app;
|
|
56
56
|
});
|
|
57
57
|
return acc;
|
|
@@ -132,4 +132,4 @@ var _default = InstallationProxyService;
|
|
|
132
132
|
exports.default = _default;require('source-map-support').install();
|
|
133
133
|
|
|
134
134
|
|
|
135
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9pbnN0YWxsYXRpb24tcHJveHkvaW5kZXguanMiXSwibmFtZXMiOlsiSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSIsIkluc3RhbGxhdGlvblByb3h5U2VydmljZSIsIkJhc2VTZXJ2aWNlUGxpc3QiLCJpbnN0YWxsQXBwbGljYXRpb24iLCJwYXRoIiwiY2xpZW50T3B0aW9ucyIsInRpbWVvdXQiLCJyZXF1ZXN0IiwiQ29tbWFuZCIsIlBhY2thZ2VQYXRoIiwiQ2xpZW50T3B0aW9ucyIsIl9wbGlzdFNlcnZpY2UiLCJzZW5kUGxpc3QiLCJfd2FpdE1lc3NhZ2VDb21wbGV0aW9uIiwibGlzdEFwcGxpY2F0aW9ucyIsIm9wdHMiLCJhcHBsaWNhdGlvblR5cGUiLCJBcHBsaWNhdGlvblR5cGUiLCJyZXR1cm5BdHRyaWJ1dGVzIiwiUmV0dXJuQXR0cmlidXRlcyIsIm1lc3NhZ2VzIiwicmVkdWNlIiwiYWNjIiwibWVzc2FnZSIsIkN1cnJlbnRMaXN0IiwiZm9yRWFjaCIsImFwcCIsIkNGQnVuZGxlSWRlbnRpZmllciIsImxvb2t1cEFwcGxpY2F0aW9ucyIsImJ1bmRsZUlkcyIsIkJ1bmRsZUlEcyIsIl8iLCJpc1N0cmluZyIsIkxvb2t1cFJlc3VsdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuaW5zdGFsbEFwcGxpY2F0aW9uIiwiYnVuZGxlSWQiLCJBcHBsaWNhdGlvbklkZW50aWZpZXIiLCJpIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsImRhdGEiLCJyZWNlaXZlUGxpc3QiLCJwdXNoIiwiX2lzRmluaXNoZWQiLCJyZXNwb25zZSIsIlN0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSwrQkFBK0IsR0FBRyxxQ0FBeEM7OztBQUVBLE1BQU1DLHdCQUFOLFNBQXVDQyw2QkFBdkMsQ0FBd0Q7QUFPdEQsUUFBTUMsa0JBQU4sQ0FBMEJDLElBQTFCLEVBQWdDQyxhQUFhLEdBQUcs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dCB7IEJhc2VTZXJ2aWNlUGxpc3QgfSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuXG5jb25zdCBJTlNUQUxMQVRJT05fUFJPWFlfU0VSVklDRV9OQU1FID0gJ2NvbS5hcHBsZS5tb2JpbGUuaW5zdGFsbGF0aW9uX3Byb3h5JztcblxuY2xhc3MgSW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2VQbGlzdCB7XG4gIC8qKlxuICAgKiBJbnN0YWxsIHRoZSBhcHBsaWNhdGlvbiBvbiB0aGUgcmVsYXRpdmUgcGF0aCBvbiB0aGUgcGhvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggd2hlcmUgdGhlIC5hcHAgYW5kIC5pcGEgaXMgbG9jYXRlZCBhdCBvbiB0aGUgcGhvbmVcbiAgICogQHBhcmFtIHtPYmplY3R9IGNsaWVudE9wdGlvbnMgVGhlIGV4dHJhIG9wdGlvbnMgdGhhdCB3YW50cyB0byBiZSBwYXNzZWQgdG8gdGhlIGluc3RhbGxkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lb3V0IFs2MDAwMF0gVGhlIHRpbWVvdXQgYmV0d2VlbiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIHRoZSBwaG9uZSBhcyBzdGF0dXMgdXBkYXRlc1xuICAgKi9cbiAgYXN5bmMgaW5zdGFsbEFwcGxpY2F0aW9uIChwYXRoLCBjbGllbnRPcHRpb25zID0ge30sIHRpbWVvdXQgPSA2MDAwMCkge1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBDb21tYW5kOiAnSW5zdGFsbCcsXG4gICAgICBQYWNrYWdlUGF0aDogcGF0aCxcbiAgICAgIENsaWVudE9wdGlvbnM6IGNsaWVudE9wdGlvbnNcbiAgICB9O1xuXG4gICAgdGhpcy5fcGxpc3RTZXJ2aWNlLnNlbmRQbGlzdChyZXF1ZXN0KTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fd2FpdE1lc3NhZ2VDb21wbGV0aW9uKHRpbWVvdXQpO1xuICB9XG5cbiAgLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMaXN0QXBwbGljYXRpb25PcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFwcGxpY2F0aW9uVHlwZSBvZiB0aGUgd2hpY2ggZ3JvdXAgeW91IHdhbnQgdG8gbGlzdC4gVGhlc2UgY2FuIGJlIFVzZXIsIFN5c3RlbSBvciBsZWF2ZSBpdCBlbXB0eSBmb3IgYm90aFxuICogQHByb3BlcnR5IHtBcnJheX0gcmV0dXJuQXR0cmlidXRlcyB0aGUgZmllbGRzIHdoaWNoIHNob3VsZCBiZSBmaWx0ZXJlZCBhbmQgcmV0dXJuZWQgdG8gdGhlIGNsaWVudC4gTGVhdmUgdGhpcyBwYXJhbWV0ZXIgZW1wdHkgaWYgeW91IGRvbid0IHdhbnQgdG8gZmlsdGVyXG4gKi9cblxuICAvKipcbiAgICogTGlzdHMgYXBwbGljYXRpb25zIGFjY29yZGluZyB0byB0aGUgb3B0cyBhbmQgcmV0dXJucyB0aGVtIGFzIGEgbWFwXG4gICAqIEBwYXJhbSB7TGlzdEFwcGxpY2F0aW9uT3B0aW9uc30gb3B0cyB0aGUgbGlzdGluZyBvcHRpb25zIHRoYXQgd2FudHMgdG8gYmUgcGFzc2VkXG4gICAqIEByZXR1cm5zIEEgbWFwIG9mIHRoZSBhcHBsaWNhdGlvbnMgd2hpY2ggdGhlIGtleSBpcyB0aGUgYnVuZGxlSWRcbiAgICovXG4gIGFzeW5jIGxpc3RBcHBsaWNhdGlvbnMgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBDb21tYW5kOiAnQnJvd3NlJyxcbiAgICAgIENsaWVudE9wdGlvbnM6IHt9XG4gICAgfTtcblxuICAgIGlmIChvcHRzLmFwcGxpY2F0aW9uVHlwZSkge1xuICAgICAgcmVxdWVzdC5DbGllbnRPcHRpb25zLkFwcGxpY2F0aW9uVHlwZSA9IG9wdHMuYXBwbGljYXRpb25UeXBlO1xuICAgIH1cbiAgICBpZiAob3B0cy5yZXR1cm5BdHRyaWJ1dGVzKSB7XG4gICAgICByZXF1ZXN0LkNsaWVudE9wdGlvbnMuUmV0dXJuQXR0cmlidXRlcyA9IG9wdHMucmV0dXJuQXR0cmlidXRlcztcbiAgICB9XG5cbiAgICB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0KHJlcXVlc3QpO1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy5fd2FpdE1lc3NhZ2VDb21wbGV0aW9uKCk7XG4gICAgcmV0dXJuIG1lc3NhZ2VzLnJlZHVjZSgoYWNjLCBtZXNzYWdlKSA9PiB7XG4gICAgICBpZiAoIW1lc3NhZ2UuQ3VycmVudExpc3QpIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICAgIG1lc3NhZ2UuQ3VycmVudExpc3QuZm9yRWFjaChhcHAgPT4ge1xuICAgICAgICBhY2NbYXBwLkNGQnVuZGxlSWRlbnRpZmllcl0gPSBhcHA7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMb29rdXBBcHBsaWNhdGlvbk9wdGlvbnNcbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYXBwbGljYXRpb25UeXBlIG9mIHRoZSB3aGljaCBncm91cCB5b3Ugd2FudCB0byBsaXN0LiBUaGVzZSBjYW4gYmUgVXNlciwgU3lzdGVtIG9yIGxlYXZlIGl0IGVtcHR5IGZvciBib3RoXG4gKiBAcHJvcGVydHkge0FycmF5fSByZXR1cm5BdHRyaWJ1dGVzIHRoZSBmaWVsZHMgd2hpY2ggc2hvdWxkIGJlIGZpbHRlcmVkIGFuZCByZXR1cm5lZCB0byB0aGUgY2xpZW50LiBMZWF2ZSB0aGlzIHBhcmFtZXRlciBlbXB0eSBpZiB5b3UgZG9uJ3Qgd2FudCB0byBmaWx0ZXJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfEFycmF5fSBidW5kbGVJZHMgQnVuZGxlIElkcyBvZiB0aGUgYXBwcyB0aGF0IHNob3VsZCBiZSBzZWFyY2hlZFxuICovXG5cbiAgLyoqXG4gICAqIExpc3RzIGFwcGxpY2F0aW9ucyBhY2NvcmRpbmcgdG8gdGhlIG9wdHMgYW5kIHJldHVybnMgdGhlbSBhcyBhIG1hcFxuICAgKiBAcGFyYW0ge0xvb2t1cEFwcGxpY2F0aW9uT3B0aW9uc30gb3B0cyB0aGUgbG9va3VwIG9wdGlvbnMgdGhhdCB3YW50cyB0byBiZSBwYXNzZWRcbiAgICogQHJldHVybnMgQSBtYXAgb2YgdGhlIGFwcGxpY2F0aW9ucyB3aGljaCB0aGUga2V5IGlzIHRoZSBidW5kbGVJZFxuICAgKi9cbiAgYXN5bmMgbG9va3VwQXBwbGljYXRpb25zIChvcHRzID0ge30pIHtcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgQ29tbWFuZDogJ0xvb2t1cCcsXG4gICAgICBDbGllbnRPcHRpb25zOiB7fVxuICAgIH07XG4gICAgaWYgKG9wdHMuYnVuZGxlSWRzKSB7XG4gICAgICByZXF1ZXN0LkNsaWVudE9wdGlvbnMuQnVuZGxlSURzID0gXy5pc1N0cmluZyhvcHRzLmJ1bmRsZUlkcykgPyBbb3B0cy5idW5kbGVJZHNdIDogb3B0cy5idW5kbGVJZHM7XG4gICAgfVxuICAgIGlmIChvcHRzLmFwcGxpY2F0aW9uVHlwZSkge1xuICAgICAgcmVxdWVzdC5DbGllbnRPcHRpb25zLkFwcGxpY2F0aW9uVHlwZSA9IG9wdHMuYXBwbGljYXRpb25UeXBlO1xuICAgIH1cbiAgICBpZiAob3B0cy5yZXR1cm5BdHRyaWJ1dGVzKSB7XG4gICAgICByZXF1ZXN0LkNsaWVudE9wdGlvbnMuUmV0dXJuQXR0cmlidXRlcyA9IG9wdHMucmV0dXJuQXR0cmlidXRlcztcbiAgICB9XG5cbiAgICB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0KHJlcXVlc3QpO1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy5fd2FpdE1lc3NhZ2VDb21wbGV0aW9uKCk7XG4gICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XG4gICAgICBpZiAobWVzc2FnZS5Mb29rdXBSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2UuTG9va3VwUmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIExvb2t1cFJlc3VsdCBpbiB0aGUgcmVzcG9uc2U6IFJlc3BvbnNlOiAke0pTT04uc3RyaW5naWZ5KG1lc3NhZ2VzKX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmluc3RhbGxzIGFuIGFwcGxpY2F0aW9uIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gYnVuZGxlSWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJ1bmRsZUlkIG9mIHRoZSBhcHAgdGhhdCBuZWVkcyB0byBiZSBwYXNzZWQgZm9yIHVuaW5zdGFsbGF0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lb3V0IFRoZSB0aW1lb3V0IGJldHdlZW4gbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSB0aGUgcGhvbmUgYXMgc3RhdHVzIHVwZGF0ZXNcbiAgICovXG4gIGFzeW5jIHVuaW5zdGFsbEFwcGxpY2F0aW9uIChidW5kbGVJZCwgdGltZW91dCA9IDIwMDAwKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIENvbW1hbmQ6ICdVbmluc3RhbGwnLFxuICAgICAgQXBwbGljYXRpb25JZGVudGlmaWVyOiBidW5kbGVJZFxuICAgIH07XG5cbiAgICB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0KHJlcXVlc3QpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl93YWl0TWVzc2FnZUNvbXBsZXRpb24odGltZW91dCk7XG4gIH1cblxuICBhc3luYyBfd2FpdE1lc3NhZ2VDb21wbGV0aW9uICh0aW1lb3V0KSB7XG4gICAgbGV0IG1lc3NhZ2VzID0gW107XG4gICAgLy8gSnVzdCBhZGRlZCBmb3Igc2FmZXR5LiBUaGlzIHNob3VsZG4ndCBoYXBwZW5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSOyBpKyspIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLl9wbGlzdFNlcnZpY2UucmVjZWl2ZVBsaXN0KHRpbWVvdXQpO1xuICAgICAgbWVzc2FnZXMucHVzaChkYXRhKTtcbiAgICAgIGlmICh0aGlzLl9pc0ZpbmlzaGVkKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBtZXNzYWdlcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfaXNGaW5pc2hlZCAocmVzcG9uc2UpIHtcbiAgICBpZiAocmVzcG9uc2UuRXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBkYXRhOiAke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlKX1gKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLlN0YXR1cykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2UuU3RhdHVzID09PSAnQ29tcGxldGUnO1xuICB9XG59XG5cbmV4cG9ydCB7IEluc3RhbGxhdGlvblByb3h5U2VydmljZSwgSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSB9O1xuZXhwb3J0IGRlZmF1bHQgSW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlO1xuIl0sImZpbGUiOiJsaWIvaW5zdGFsbGF0aW9uLXByb3h5L2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9pbnN0YWxsYXRpb24tcHJveHkvaW5kZXguanMiXSwibmFtZXMiOlsiSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSIsIkluc3RhbGxhdGlvblByb3h5U2VydmljZSIsIkJhc2VTZXJ2aWNlUGxpc3QiLCJpbnN0YWxsQXBwbGljYXRpb24iLCJwYXRoIiwiY2xpZW50T3B0aW9ucyIsInRpbWVvdXQiLCJyZXF1ZXN0IiwiQ29tbWFuZCIsIlBhY2thZ2VQYXRoIiwiQ2xpZW50T3B0aW9ucyIsIl9wbGlzdFNlcnZpY2UiLCJzZW5kUGxpc3QiLCJfd2FpdE1lc3NhZ2VDb21wbGV0aW9uIiwibGlzdEFwcGxpY2F0aW9ucyIsIm9wdHMiLCJhcHBsaWNhdGlvblR5cGUiLCJBcHBsaWNhdGlvblR5cGUiLCJyZXR1cm5BdHRyaWJ1dGVzIiwiUmV0dXJuQXR0cmlidXRlcyIsIm1lc3NhZ2VzIiwicmVkdWNlIiwiYWNjIiwibWVzc2FnZSIsIkN1cnJlbnRMaXN0IiwiZm9yRWFjaCIsImFwcCIsIkNGQnVuZGxlSWRlbnRpZmllciIsImxvb2t1cEFwcGxpY2F0aW9ucyIsImJ1bmRsZUlkcyIsIkJ1bmRsZUlEcyIsIl8iLCJpc1N0cmluZyIsIkxvb2t1cFJlc3VsdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuaW5zdGFsbEFwcGxpY2F0aW9uIiwiYnVuZGxlSWQiLCJBcHBsaWNhdGlvbklkZW50aWZpZXIiLCJpIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsImRhdGEiLCJyZWNlaXZlUGxpc3QiLCJwdXNoIiwiX2lzRmluaXNoZWQiLCJyZXNwb25zZSIsIlN0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSwrQkFBK0IsR0FBRyxxQ0FBeEM7OztBQUVBLE1BQU1DLHdCQUFOLFNBQXVDQyw2QkFBdkMsQ0FBd0Q7QUFPdEQsUUFBTUMsa0JBQU4sQ0FBMEJDLElBQTFCLEVBQWdDQyxhQUFhLEdBQUcs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aW1wb3J0IHsgQmFzZVNlcnZpY2VQbGlzdCB9IGZyb20gJy4uL2Jhc2Utc2VydmljZSc7XG5cbmNvbnN0IElOU1RBTExBVElPTl9QUk9YWV9TRVJWSUNFX05BTUUgPSAnY29tLmFwcGxlLm1vYmlsZS5pbnN0YWxsYXRpb25fcHJveHknO1xuXG5jbGFzcyBJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZVBsaXN0IHtcbiAgLyoqXG4gICAqIEluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIG9uIHRoZSByZWxhdGl2ZSBwYXRoIG9uIHRoZSBwaG9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCB3aGVyZSB0aGUgLmFwcCBhbmQgLmlwYSBpcyBsb2NhdGVkIGF0IG9uIHRoZSBwaG9uZVxuICAgKiBAcGFyYW0ge09iamVjdH0gY2xpZW50T3B0aW9ucyBUaGUgZXh0cmEgb3B0aW9ucyB0aGF0IHdhbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgaW5zdGFsbGRcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWVvdXQgWzYwMDAwXSBUaGUgdGltZW91dCBiZXR3ZWVuIG1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gdGhlIHBob25lIGFzIHN0YXR1cyB1cGRhdGVzXG4gICAqL1xuICBhc3luYyBpbnN0YWxsQXBwbGljYXRpb24gKHBhdGgsIGNsaWVudE9wdGlvbnMgPSB7fSwgdGltZW91dCA9IDYwMDAwKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIENvbW1hbmQ6ICdJbnN0YWxsJyxcbiAgICAgIFBhY2thZ2VQYXRoOiBwYXRoLFxuICAgICAgQ2xpZW50T3B0aW9uczogY2xpZW50T3B0aW9uc1xuICAgIH07XG5cbiAgICB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0KHJlcXVlc3QpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl93YWl0TWVzc2FnZUNvbXBsZXRpb24odGltZW91dCk7XG4gIH1cblxuICAvKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IExpc3RBcHBsaWNhdGlvbk9wdGlvbnNcbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYXBwbGljYXRpb25UeXBlIG9mIHRoZSB3aGljaCBncm91cCB5b3Ugd2FudCB0byBsaXN0LiBUaGVzZSBjYW4gYmUgVXNlciwgU3lzdGVtIG9yIGxlYXZlIGl0IGVtcHR5IGZvciBib3RoXG4gKiBAcHJvcGVydHkge0FycmF5fSByZXR1cm5BdHRyaWJ1dGVzIHRoZSBmaWVsZHMgd2hpY2ggc2hvdWxkIGJlIGZpbHRlcmVkIGFuZCByZXR1cm5lZCB0byB0aGUgY2xpZW50LiBMZWF2ZSB0aGlzIHBhcmFtZXRlciBlbXB0eSBpZiB5b3UgZG9uJ3Qgd2FudCB0byBmaWx0ZXJcbiAqL1xuXG4gIC8qKlxuICAgKiBMaXN0cyBhcHBsaWNhdGlvbnMgYWNjb3JkaW5nIHRvIHRoZSBvcHRzIGFuZCByZXR1cm5zIHRoZW0gYXMgYSBtYXBcbiAgICogQHBhcmFtIHtMaXN0QXBwbGljYXRpb25PcHRpb25zfSBvcHRzIHRoZSBsaXN0aW5nIG9wdGlvbnMgdGhhdCB3YW50cyB0byBiZSBwYXNzZWRcbiAgICogQHJldHVybnMgQSBtYXAgb2YgdGhlIGFwcGxpY2F0aW9ucyB3aGljaCB0aGUga2V5IGlzIHRoZSBidW5kbGVJZFxuICAgKi9cbiAgYXN5bmMgbGlzdEFwcGxpY2F0aW9ucyAob3B0cyA9IHt9KSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIENvbW1hbmQ6ICdCcm93c2UnLFxuICAgICAgQ2xpZW50T3B0aW9uczoge31cbiAgICB9O1xuXG4gICAgaWYgKG9wdHMuYXBwbGljYXRpb25UeXBlKSB7XG4gICAgICByZXF1ZXN0LkNsaWVudE9wdGlvbnMuQXBwbGljYXRpb25UeXBlID0gb3B0cy5hcHBsaWNhdGlvblR5cGU7XG4gICAgfVxuICAgIGlmIChvcHRzLnJldHVybkF0dHJpYnV0ZXMpIHtcbiAgICAgIHJlcXVlc3QuQ2xpZW50T3B0aW9ucy5SZXR1cm5BdHRyaWJ1dGVzID0gb3B0cy5yZXR1cm5BdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHRoaXMuX3BsaXN0U2VydmljZS5zZW5kUGxpc3QocmVxdWVzdCk7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBhd2FpdCB0aGlzLl93YWl0TWVzc2FnZUNvbXBsZXRpb24oKTtcbiAgICByZXR1cm4gbWVzc2FnZXMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIG1lc3NhZ2UpIHtcbiAgICAgIGlmICghbWVzc2FnZS5DdXJyZW50TGlzdCkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuICAgICAgbWVzc2FnZS5DdXJyZW50TGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChhcHApIHtcbiAgICAgICAgYWNjW2FwcC5DRkJ1bmRsZUlkZW50aWZpZXJdID0gYXBwO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIC8qKlxuICogQHR5cGVkZWYge09iamVjdH0gTG9va3VwQXBwbGljYXRpb25PcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFwcGxpY2F0aW9uVHlwZSBvZiB0aGUgd2hpY2ggZ3JvdXAgeW91IHdhbnQgdG8gbGlzdC4gVGhlc2UgY2FuIGJlIFVzZXIsIFN5c3RlbSBvciBsZWF2ZSBpdCBlbXB0eSBmb3IgYm90aFxuICogQHByb3BlcnR5IHtBcnJheX0gcmV0dXJuQXR0cmlidXRlcyB0aGUgZmllbGRzIHdoaWNoIHNob3VsZCBiZSBmaWx0ZXJlZCBhbmQgcmV0dXJuZWQgdG8gdGhlIGNsaWVudC4gTGVhdmUgdGhpcyBwYXJhbWV0ZXIgZW1wdHkgaWYgeW91IGRvbid0IHdhbnQgdG8gZmlsdGVyXG4gKiBAcHJvcGVydHkge3N0cmluZ3xBcnJheX0gYnVuZGxlSWRzIEJ1bmRsZSBJZHMgb2YgdGhlIGFwcHMgdGhhdCBzaG91bGQgYmUgc2VhcmNoZWRcbiAqL1xuXG4gIC8qKlxuICAgKiBMaXN0cyBhcHBsaWNhdGlvbnMgYWNjb3JkaW5nIHRvIHRoZSBvcHRzIGFuZCByZXR1cm5zIHRoZW0gYXMgYSBtYXBcbiAgICogQHBhcmFtIHtMb29rdXBBcHBsaWNhdGlvbk9wdGlvbnN9IG9wdHMgdGhlIGxvb2t1cCBvcHRpb25zIHRoYXQgd2FudHMgdG8gYmUgcGFzc2VkXG4gICAqIEByZXR1cm5zIEEgbWFwIG9mIHRoZSBhcHBsaWNhdGlvbnMgd2hpY2ggdGhlIGtleSBpcyB0aGUgYnVuZGxlSWRcbiAgICovXG4gIGFzeW5jIGxvb2t1cEFwcGxpY2F0aW9ucyAob3B0cyA9IHt9KSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIENvbW1hbmQ6ICdMb29rdXAnLFxuICAgICAgQ2xpZW50T3B0aW9uczoge31cbiAgICB9O1xuICAgIGlmIChvcHRzLmJ1bmRsZUlkcykge1xuICAgICAgcmVxdWVzdC5DbGllbnRPcHRpb25zLkJ1bmRsZUlEcyA9IF8uaXNTdHJpbmcob3B0cy5idW5kbGVJZHMpID8gW29wdHMuYnVuZGxlSWRzXSA6IG9wdHMuYnVuZGxlSWRzO1xuICAgIH1cbiAgICBpZiAob3B0cy5hcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgIHJlcXVlc3QuQ2xpZW50T3B0aW9ucy5BcHBsaWNhdGlvblR5cGUgPSBvcHRzLmFwcGxpY2F0aW9uVHlwZTtcbiAgICB9XG4gICAgaWYgKG9wdHMucmV0dXJuQXR0cmlidXRlcykge1xuICAgICAgcmVxdWVzdC5DbGllbnRPcHRpb25zLlJldHVybkF0dHJpYnV0ZXMgPSBvcHRzLnJldHVybkF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgdGhpcy5fcGxpc3RTZXJ2aWNlLnNlbmRQbGlzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMuX3dhaXRNZXNzYWdlQ29tcGxldGlvbigpO1xuICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xuICAgICAgaWYgKG1lc3NhZ2UuTG9va3VwUmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBtZXNzYWdlLkxvb2t1cFJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBMb29rdXBSZXN1bHQgaW4gdGhlIHJlc3BvbnNlOiBSZXNwb25zZTogJHtKU09OLnN0cmluZ2lmeShtZXNzYWdlcyl9YCk7XG4gIH1cblxuICAvKipcbiAgICogVW5pbnN0YWxscyBhbiBhcHBsaWNhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGJ1bmRsZUlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBidW5kbGVJZCBvZiB0aGUgYXBwIHRoYXQgbmVlZHMgdG8gYmUgcGFzc2VkIGZvciB1bmluc3RhbGxhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gdGltZW91dCBUaGUgdGltZW91dCBiZXR3ZWVuIG1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gdGhlIHBob25lIGFzIHN0YXR1cyB1cGRhdGVzXG4gICAqL1xuICBhc3luYyB1bmluc3RhbGxBcHBsaWNhdGlvbiAoYnVuZGxlSWQsIHRpbWVvdXQgPSAyMDAwMCkge1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBDb21tYW5kOiAnVW5pbnN0YWxsJyxcbiAgICAgIEFwcGxpY2F0aW9uSWRlbnRpZmllcjogYnVuZGxlSWRcbiAgICB9O1xuXG4gICAgdGhpcy5fcGxpc3RTZXJ2aWNlLnNlbmRQbGlzdChyZXF1ZXN0KTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fd2FpdE1lc3NhZ2VDb21wbGV0aW9uKHRpbWVvdXQpO1xuICB9XG5cbiAgYXN5bmMgX3dhaXRNZXNzYWdlQ29tcGxldGlvbiAodGltZW91dCkge1xuICAgIGxldCBtZXNzYWdlcyA9IFtdO1xuICAgIC8vIEp1c3QgYWRkZWQgZm9yIHNhZmV0eS4gVGhpcyBzaG91bGRuJ3QgaGFwcGVuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjsgaSsrKSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5fcGxpc3RTZXJ2aWNlLnJlY2VpdmVQbGlzdCh0aW1lb3V0KTtcbiAgICAgIG1lc3NhZ2VzLnB1c2goZGF0YSk7XG4gICAgICBpZiAodGhpcy5faXNGaW5pc2hlZChkYXRhKSkge1xuICAgICAgICByZXR1cm4gbWVzc2FnZXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2lzRmluaXNoZWQgKHJlc3BvbnNlKSB7XG4gICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGF0YTogJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5TdGF0dXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlLlN0YXR1cyA9PT0gJ0NvbXBsZXRlJztcbiAgfVxufVxuXG5leHBvcnQgeyBJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UsIElOU1RBTExBVElPTl9QUk9YWV9TRVJWSUNFX05BTUUgfTtcbmV4cG9ydCBkZWZhdWx0IEluc3RhbGxhdGlvblByb3h5U2VydmljZTtcbiJdLCJmaWxlIjoibGliL2luc3RhbGxhdGlvbi1wcm94eS9pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -7,6 +9,8 @@ exports.default = exports.LOCKDOWN_PORT = exports.Lockdown = void 0;
|
|
|
7
9
|
|
|
8
10
|
require("source-map-support/register");
|
|
9
11
|
|
|
12
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
|
+
|
|
10
14
|
var _baseService = require("../base-service");
|
|
11
15
|
|
|
12
16
|
const LOCKDOWN_PORT = 62078;
|
|
@@ -53,19 +57,18 @@ class Lockdown extends _baseService.BaseServicePlist {
|
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
async getValue(query = {}, timeout = 5000) {
|
|
56
|
-
|
|
60
|
+
const plist = Object.assign({
|
|
57
61
|
Label: LABEL,
|
|
58
62
|
ProtocolVersion: PROTOCOL_VERSION,
|
|
59
63
|
Request: 'GetValue'
|
|
60
|
-
};
|
|
61
|
-
Object.assign(plist, query);
|
|
64
|
+
}, query);
|
|
62
65
|
const data = await this._plistService.sendPlistAndReceive(plist, timeout);
|
|
63
66
|
|
|
64
|
-
if (data.Request === 'GetValue' && data.Value) {
|
|
67
|
+
if ((data === null || data === void 0 ? void 0 : data.Request) === 'GetValue' && !_lodash.default.isNil(data === null || data === void 0 ? void 0 : data.Value)) {
|
|
65
68
|
return data.Value;
|
|
66
|
-
} else {
|
|
67
|
-
throw new Error(`Unexpected data: ${JSON.stringify(data)}`);
|
|
68
69
|
}
|
|
70
|
+
|
|
71
|
+
throw new Error(`Unexpected data received for ${JSON.stringify(query)} request: ` + JSON.stringify(data));
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
async startService(serviceName, timeout = 5000) {
|
|
@@ -90,4 +93,4 @@ var _default = Lockdown;
|
|
|
90
93
|
exports.default = _default;require('source-map-support').install();
|
|
91
94
|
|
|
92
95
|
|
|
93
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2NrZG93bi9pbmRleC5qcyJdLCJuYW1lcyI6WyJMT0NLRE9XTl9QT1JUIiwiTEFCRUwiLCJQUk9UT0NPTF9WRVJTSU9OIiwiTG9ja2Rvd24iLCJCYXNlU2VydmljZVBsaXN0IiwicXVlcnlUeXBlIiwidGltZW91dCIsImRhdGEiLCJfcGxpc3RTZXJ2aWNlIiwic2VuZFBsaXN0QW5kUmVjZWl2ZSIsIkxhYmVsIiwiUHJvdG9jb2xWZXJzaW9uIiwiUmVxdWVzdCIsIlR5cGUiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydFNlc3Npb24iLCJob3N0SUQiLCJzeXN0ZW1CVUlEIiwiSG9zdElEIiwiU3lzdGVtQlVJRCIsIlNlc3Npb25JRCIsInNlc3Npb25JRCIsImVuYWJsZVNlc3Npb25TU0wiLCJFbmFibGVTZXNzaW9uU1NMIiwiaG9zdFByaXZhdGVLZXkiLCJob3N0Q2VydGlmaWNhdGUiLCJnZXRWYWx1ZSIsInF1ZXJ5IiwicGxpc3QiLCJPYmplY3QiLCJhc3NpZ24iLCJfIiwiaXNOaWwiLCJWYWx1ZSIsInN0YXJ0U2VydmljZSIsInNlcnZpY2VOYW1lIiwiU2VydmljZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQSxNQUFNQSxhQUFhLEdBQUcsS0FBdEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHLFNBQWQ7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxDQUF6Qjs7QUFFQSxNQUFNQyxRQUFOLFNBQXVCQyw2QkFBdkIsQ0FBd0M7QUFNdEMsUUFBTUMsU0FBTixDQUFpQkMsT0FBTyxHQUFHLElBQTNCLEVBQWlDO0FBQy9CLFVBQU1DLElBQUksR0FBRyxNQUFNLEtBQUtDLGFBQUwsQ0FBbUJDLG1CQUFuQixDQUF1QztBQUN4REMsTUFBQUEsS0FBSyxFQUFFVCxLQURpRDtBQUV4RFUsTUFBQUEsZUFBZSxFQUFFVCxnQkFGdUM7QUFHeERVLE1BQUFBLE9BQU8sRUFBRTtBQUgrQyxLQUF2QyxFQUloQk4sT0FKZ0IsQ0FB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QU9BLFFBQUlDLElBQUksQ0FBQ08sS0FBVCxFQUFnQjtBQUNkLFlBQU0sSUFBSUEsS0FBSixDQUFXLG9CQUFtQkMsSUFBSSxDQUFDQyxTQUFMLENBQWVULElBQWYsQ0FBcUIsRUFBbkQsQ0FBTjtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU9BLElBQVA7QUFDRDtBQUNGOztBQW5HcUM7OztlQXVHekJKLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2VQbGlzdCB9IGZyb20gJy4uL2Jhc2Utc2VydmljZSc7XG5cblxuY29uc3QgTE9DS0RPV05fUE9SVCA9IDYyMDc4O1xuY29uc3QgTEFCRUwgPSAndXNibXV4ZCc7XG5jb25zdCBQUk9UT0NPTF9WRVJTSU9OID0gMjtcblxuY2xhc3MgTG9ja2Rvd24gZXh0ZW5kcyBCYXNlU2VydmljZVBsaXN0IHtcbiAgLyoqXG4gICAqIE1ha2VzIGEgcXVlcnkgdHlwZSByZXF1ZXN0IHRvIGxvY2tkb3duXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbdGltZW91dD01MDAwXSB0aGUgdGltZW91dCBvZiByZWNlaXZpbmcgYSByZXNwb25zZSBmcm9tIGxvY2tkb3duZFxuICAgKiBAcmV0dXJucyB7T2JqZWN0fVxuICAgKi9cbiAgYXN5bmMgcXVlcnlUeXBlICh0aW1lb3V0ID0gNTAwMCkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0QW5kUmVjZWl2ZSh7XG4gICAgICBMYWJlbDogTEFCRUwsXG4gICAgICBQcm90b2NvbFZlcnNpb246IFBST1RPQ09MX1ZFUlNJT04sXG4gICAgICBSZXF1ZXN0OiAnUXVlcnlUeXBlJ1xuICAgIH0sIHRpbWVvdXQpO1xuICAgIGlmIChkYXRhLlJlcXVlc3QgPT09ICdRdWVyeVR5cGUnICYmIGRhdGEuVHlwZSA9PT0gJ2NvbS5hcHBsZS5tb2JpbGUubG9ja2Rvd24nKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhIGxvY2tkb3duIHNlc3Npb24gd2hpY2ggYWxsb3dzIHRvIHVzZSBjZXJ0YWluIGFwaXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhvc3RJRCB0aGUgaG9zdCBpZCB3aGljaCBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIHBhaXIgcmVjb3JkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzeXN0ZW1CVUlEIHRoZSBob3N0IEJVSUQgd2hpY2ggY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwYWlyIHJlY29yZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbWVvdXQ9NTAwMF0gdGhlIHRpbWVvdXQgb2YgcmVjZWl2aW5nIGEgcmVzcG9uc2UgZnJvbSBsb2NrZG93bmRcbiAgICogQHJldHVybnMge09iamVjdH1cbiAgICovXG4gIGFzeW5jIHN0YXJ0U2Vzc2lvbiAoaG9zdElELCBzeXN0ZW1CVUlELCB0aW1lb3V0ID0gNTAwMCkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0QW5kUmVjZWl2ZSh7XG4gICAgICBMYWJlbDogTEFCRUwsXG4gICAgICBQcm90b2NvbFZlcnNpb246IFBST1RPQ09MX1ZFUlNJT04sXG4gICAgICBSZXF1ZXN0OiAnU3RhcnRTZXNzaW9uJyxcbiAgICAgIEhvc3RJRDogaG9zdElELFxuICAgICAgU3lzdGVtQlVJRDogc3lzdGVtQlVJRFxuICAgIH0sIHRpbWVvdXQpO1xuXG4gICAgaWYgKGRhdGEuUmVxdWVzdCA9PT0gJ1N0YXJ0U2Vzc2lvbicgJiYgZGF0YS5TZXNzaW9uSUQpIHtcbiAgICAgIHJldHVybiB7IHNlc3Npb25JRDogZGF0YS5TZXNzaW9uSUQsIGVuYWJsZVNlc3Npb25TU0w6IGRhdGEuRW5hYmxlU2Vzc2lvblNTTCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGF0YTogJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBzc2wgaW4gdGhlIHVuZGVybHlpbmcgc29ja2V0IHNvY2tldCBjb25uZWN0aW9uXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBob3N0UHJpdmF0ZUtleSB0aGUgcHJpdmF0ZSBrZXkgd2hpY2ggY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwYWlyIHJlY29yZFxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gaG9zdENlcnRpZmljYXRlIHRoZSBjZXJ0aWZpY2F0ZSB3aGljaCBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIHBhaXIgcmVjb3JkXG4gICAqL1xuICBlbmFibGVTZXNzaW9uU1NMIChob3N0UHJpdmF0ZUtleSwgaG9zdENlcnRpZmljYXRlKSB7XG4gICAgdGhpcy5fcGxpc3RTZXJ2aWNlLmVuYWJsZVNlc3Npb25TU0woaG9zdFByaXZhdGVLZXksIGhvc3RDZXJ0aWZpY2F0ZSk7XG4gIH1cblxuICAvKipcbiAgKiBAdHlwZWRlZiB7T2JqZWN0fSBRdWVyeVxuICAqXG4gICogQHByb3BlcnR5IHs/c3RyaW5nfSBrZXkgVGhlIGtleSB3ZSB3YW50IHRvIGFjY2Vzc1xuICAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZG9tYWluIFRoZSBkb21haW4gd2hlcmUgd2Ugd2FudCB0byBhY2Nlc3NcbiAgKi9cblxuICAvKipcbiAgICogR2V0cyB2YWx1ZXMgZnJvbSB0aGUgZGV2aWNlIGFjY29yZGluZyB0byB0aGUgcXVlcnkgcGFzc2VkXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnl9IHF1ZXJ5IHRoZSBxdWVyeSB3ZSB3YW50IHRvIHNlbmQgdG8gbG9ja2Rvd25kXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbdGltZW91dD01MDAwXSB0aGUgdGltZW91dCBvZiByZWNlaXZpbmcgYSByZXNwb25zZSBmcm9tIGxvY2tkb3duZFxuICAgKiBAcmV0dXJucyB7Kn0gVGhlIGFjdHVhbCByZXNwb25zZSB2YWx1ZS4gSXQgc2hvdWxkIG5ldmVyIGJlIGBudWxsYCBvciBgdW5kZWZpbmVkYFxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW4gdW5leHBlY3RlZCByZXNwb25zZSBpcyByZWNlaXZlZCBmcm9tIGxvY2tkb3duZFxuICAgKi9cbiAgYXN5bmMgZ2V0VmFsdWUgKHF1ZXJ5ID0ge30sIHRpbWVvdXQgPSA1MDAwKSB7XG4gICAgY29uc3QgcGxpc3QgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgIExhYmVsOiBMQUJFTCxcbiAgICAgIFByb3RvY29sVmVyc2lvbjogUFJPVE9DT0xfVkVSU0lPTixcbiAgICAgIFJlcXVlc3Q6ICdHZXRWYWx1ZSdcbiAgICB9LCBxdWVyeSk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuX3BsaXN0U2VydmljZS5zZW5kUGxpc3RBbmRSZWNlaXZlKHBsaXN0LCB0aW1lb3V0KTtcbiAgICBpZiAoZGF0YT8uUmVxdWVzdCA9PT0gJ0dldFZhbHVlJyAmJiAhXy5pc05pbChkYXRhPy5WYWx1ZSkpIHtcbiAgICAgIHJldHVybiBkYXRhLlZhbHVlO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGF0YSByZWNlaXZlZCBmb3IgJHtKU09OLnN0cmluZ2lmeShxdWVyeSl9IHJlcXVlc3Q6IGAgK1xuICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhIHNlcnZpY2Ugb24gdGhlIHBob25lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZpY2VOYW1lIHRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHdoaWNoIHdlIHdhbnQgdG8gc3RhcnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0PTUwMDBdIHRoZSB0aW1lb3V0IG9mIHJlY2VpdmluZyBhIHJlc3BvbnNlIGZyb20gbG9ja2Rvd25kXG4gICAqIEByZXR1cm5zIHtPYmplY3R9XG4gICAqL1xuICBhc3luYyBzdGFydFNlcnZpY2UgKHNlcnZpY2VOYW1lLCB0aW1lb3V0ID0gNTAwMCkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0QW5kUmVjZWl2ZSh7XG4gICAgICBMYWJlbDogTEFCRUwsXG4gICAgICBQcm90b2NvbFZlcnNpb246IFBST1RPQ09MX1ZFUlNJT04sXG4gICAgICBSZXF1ZXN0OiAnU3RhcnRTZXJ2aWNlJyxcbiAgICAgIFNlcnZpY2U6IHNlcnZpY2VOYW1lLFxuICAgIH0sIHRpbWVvdXQpO1xuXG4gICAgaWYgKGRhdGEuRXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBkYXRhOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHsgTG9ja2Rvd24sIExPQ0tET1dOX1BPUlQgfTtcbmV4cG9ydCBkZWZhdWx0IExvY2tkb3duO1xuIl0sImZpbGUiOiJsaWIvbG9ja2Rvd24vaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
package/build/lib/services.js
CHANGED
|
@@ -51,6 +51,7 @@ async function startWebInspectorService(udid, opts = {}) {
|
|
|
51
51
|
const verbose = !!opts.verbose;
|
|
52
52
|
const verboseHexDump = !!opts.verboseHexDump;
|
|
53
53
|
const socketChunkSize = opts.socketChunkSize;
|
|
54
|
+
const maxFrameLength = opts.maxFrameLength;
|
|
54
55
|
|
|
55
56
|
const semverVersion = _semver.default.coerce(osVersion);
|
|
56
57
|
|
|
@@ -65,7 +66,8 @@ async function startWebInspectorService(udid, opts = {}) {
|
|
|
65
66
|
socketChunkSize,
|
|
66
67
|
verbose,
|
|
67
68
|
verboseHexDump,
|
|
68
|
-
socketClient: opts.socket
|
|
69
|
+
socketClient: opts.socket,
|
|
70
|
+
maxFrameLength
|
|
69
71
|
});
|
|
70
72
|
}
|
|
71
73
|
|
|
@@ -76,7 +78,8 @@ async function startWebInspectorService(udid, opts = {}) {
|
|
|
76
78
|
socketChunkSize,
|
|
77
79
|
verbose,
|
|
78
80
|
verboseHexDump,
|
|
79
|
-
socketClient: socket
|
|
81
|
+
socketClient: socket,
|
|
82
|
+
maxFrameLength
|
|
80
83
|
});
|
|
81
84
|
}
|
|
82
85
|
|
|
@@ -117,4 +120,4 @@ async function startService(udid, serviceName, socket) {
|
|
|
117
120
|
}require('source-map-support').install();
|
|
118
121
|
|
|
119
122
|
|
|
120
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy5qcyJdLCJuYW1lcyI6WyJzdGFydFN5c2xvZ1NlcnZpY2UiLCJ1ZGlkIiwib3B0cyIsInNvY2tldCIsInN0YXJ0U2VydmljZSIsIlNZU0xPR19TRVJWSUNFX05BTUUiLCJTeXNsb2dTZXJ2aWNlIiwic3RhcnRTaW11bGF0ZUxvY2F0aW9uU2VydmljZSIsIlNJTVVMQVRFX0xPQ0FUSU9OX1NFUlZJQ0VfTkFNRSIsIlNpbXVsYXRlTG9jYXRpb25TZXJ2aWNlIiwic3RhcnRXZWJJbnNwZWN0b3JTZXJ2aWNlIiwib3NWZXJzaW9uIiwiaXNTaW11bGF0b3IiLCJ2ZXJib3NlIiwidmVyYm9zZUhleER1bXAiLCJzb2NrZXRDaHVua1NpemUiLCJtYXhGcmFtZUxlbmd0aCIsInNlbXZlclZlcnNpb24iLCJzZW12ZXIiLCJjb2VyY2UiLCJFcnJvciIsIldlYkluc3BlY3RvclNlcnZpY2UiLCJtYWpvck9zVmVyc2lvbiIsIm1ham9yIiwic29ja2V0Q2xpZW50IiwiV0VCX0lOU1BFQ1RPUl9TRVJWSUNFX05BTUUiLCJ1bmRlZmluZWQiLCJzdGFydEluc3RhbGxhdGlvblByb3h5U2VydmljZSIsIklOU1RBTExBVElPTl9QUk9YWV9TRVJWSUNFX05BTUUiLCJJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UiLCJQbGlzdFNlcnZpY2UiLCJzdGFydEFmY1NlcnZpY2UiLCJBRkNfU0VSVklDRV9OQU1FIiwiQWZjU2VydmljZSIsInN0YXJ0Tm90aWZpY2F0aW9uUHJveHlTZXJ2aWNlIiwiTk9USUZJQ0FUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSIsIk5vdGlmaWNhdGlvblByb3h5U2VydmljZSIsInN0YXJ0SG91c2VBcnJlc3RTZXJ2aWNlIiwiSE9VU0VfQVJSRVNUX1NFUlZJQ0VfTkFNRSIsIkhvdXNlQXJyZXN0U2VydmljZSIsInNlcnZpY2VOYW1lIiwibG9ja2Rvd24iLCJzZXJ2aWNlIiwiRW5hYmxlU2VydmljZVNTTCIsIlBvcnQiLCJjbG9zZSJdLCJtYXBw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RSxJQUExQixFQUFnQ3pDLE1BQWhDLENBQWI7QUFDRDtBQUNGLEdBUEQsU0FPVTtBQUNSc0MsSUFBQUEsUUFBUSxDQUFDSSxLQUFUO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbm5lY3RQb3J0LCBjb25uZWN0UG9ydFNTTCwgc3RhcnRMb2NrZG93blNlc3Npb24sIGdldE9TVmVyc2lvbiB9IGZyb20gJy4vdXRpbGl0aWVzJztcbmltcG9ydCB7IFN5c2xvZ1NlcnZpY2UsIFNZU0xPR19TRVJWSUNFX05BTUUgfSBmcm9tICcuL3N5c2xvZyc7XG5pbXBvcnQgeyBTaW11bGF0ZUxvY2F0aW9uU2VydmljZSwgU0lNVUxBVEVfTE9DQVRJT05fU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9zaW11bGF0ZWxvY2F0aW9uJztcbmltcG9ydCB7IFdlYkluc3BlY3RvclNlcnZpY2UsIFdFQl9JTlNQRUNUT1JfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi93ZWJpbnNwZWN0b3InO1xuaW1wb3J0IHsgSW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlLCBJTlNUQUxMQVRJT05fUFJPWFlfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9pbnN0YWxsYXRpb24tcHJveHknO1xuaW1wb3J0IHsgQWZjU2VydmljZSwgQUZDX1NFUlZJQ0VfTkFNRSB9IGZyb20gJy4vYWZjJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblByb3h5U2VydmljZSwgTk9USUZJQ0FUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLXByb3h5JztcbmltcG9ydCB7IEhvdXNlQXJyZXN0U2VydmljZSwgSE9VU0VfQVJSRVNUX1NFUlZJQ0VfTkFNRSB9IGZyb20gJy4vaG91c2UtYXJyZXN0JztcbmltcG9ydCBQbGlzdFNlcnZpY2UgZnJvbSAnLi9wbGlzdC1zZXJ2aWNlJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcblxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFN5c2xvZ1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgU1lTTE9HX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IFN5c2xvZ1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTaW11bGF0ZUxvY2F0aW9uU2VydmljZSAodWRpZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHNvY2tldCA9IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBTSU1VTEFURV9MT0NBVElPTl9TRVJWSUNFX05BTUUsIG9wdHMuc29ja2V0KTtcbiAgcmV0dXJuIG5ldyBTaW11bGF0ZUxvY2F0aW9uU2VydmljZShzb2NrZXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFdlYkluc3BlY3RvclNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBvc1ZlcnNpb24gPSBvcHRzLm9zVmVyc2lvbiB8fCBhd2FpdCBnZXRPU1ZlcnNpb24odWRpZCwgb3B0cy5zb2NrZXQpO1xuICBjb25zdCBpc1NpbXVsYXRvciA9ICEhb3B0cy5pc1NpbXVsYXRvcjtcbiAgY29uc3QgdmVyYm9zZSA9ICEhb3B0cy52ZXJib3NlO1xuICBjb25zdCB2ZXJib3NlSGV4RHVtcCA9ICEhb3B0cy52ZXJib3NlSGV4RHVtcDtcbiAgY29uc3Qgc29ja2V0Q2h1bmtTaXplID0gb3B0cy5zb2NrZXRDaHVua1NpemU7XG4gIGNvbnN0IG1heEZyYW1lTGVuZ3RoID0gb3B0cy5tYXhGcmFtZUxlbmd0aDtcbiAgY29uc3Qgc2VtdmVyVmVyc2lvbiA9IHNlbXZlci5jb2VyY2Uob3NWZXJzaW9uKTtcbiAgaWYgKCFzZW12ZXJWZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIGEgc2VtdmVyIHZlcnNpb24gb3V0IG9mICcke29zVmVyc2lvbn0nYCk7XG4gIH1cbiAgaWYgKG9wdHMuc29ja2V0KSB7XG4gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3JTZXJ2aWNlKHtcbiAgICAgIG1ham9yT3NWZXJzaW9uOiBzZW12ZXJWZXJzaW9uLm1ham9yLFxuICAgICAgaXNTaW11bGF0b3IsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICB2ZXJib3NlLFxuICAgICAgdmVyYm9zZUhleER1bXAsXG4gICAgICBzb2NrZXRDbGllbnQ6IG9wdHMuc29ja2V0LFxuICAgICAgbWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG4gIH1cbiAgY29uc3Qgc29ja2V0ID0gYXdhaXQgc3RhcnRTZXJ2aWNlKHVkaWQsIFdFQl9JTlNQRUNUT1JfU0VSVklDRV9OQU1FLCB1bmRlZmluZWQpO1xuICByZXR1cm4gbmV3IFdlYkluc3BlY3RvclNlcnZpY2Uoe1xuICAgIG1ham9yT3NWZXJzaW9uOiBzZW12ZXJWZXJzaW9uLm1ham9yLFxuICAgIGlzU2ltdWxhdG9yLFxuICAgIHNvY2tldENodW5rU2l6ZSxcbiAgICB2ZXJib3NlLFxuICAgIHZlcmJvc2VIZXhEdW1wLFxuICAgIHNvY2tldENsaWVudDogc29ja2V0LFxuICAgIG1heEZyYW1lTGVuZ3RoLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEluc3RhbGxhdGlvblByb3h5U2VydmljZShuZXcgUGxpc3RTZXJ2aWNlKHNvY2tldCkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydEFmY1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgQUZDX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEFmY1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnROb3RpZmljYXRpb25Qcm94eVNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgTk9USUZJQ0FUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IE5vdGlmaWNhdGlvblByb3h5U2VydmljZShzb2NrZXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydEhvdXNlQXJyZXN0U2VydmljZSAodWRpZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHNvY2tldCA9IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBIT1VTRV9BUlJFU1RfU0VSVklDRV9OQU1FLCBvcHRzLnNvY2tldCk7XG4gIHJldHVybiBuZXcgSG91c2VBcnJlc3RTZXJ2aWNlKHNvY2tldCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0U2VydmljZSAodWRpZCwgc2VydmljZU5hbWUsIHNvY2tldCkge1xuICBjb25zdCBsb2NrZG93biA9IGF3YWl0IHN0YXJ0TG9ja2Rvd25TZXNzaW9uKHVkaWQsIHNvY2tldCk7XG4gIHRyeSB7XG4gICAgY29uc3Qgc2VydmljZSA9IGF3YWl0IGxvY2tkb3duLnN0YXJ0U2VydmljZShzZXJ2aWNlTmFtZSk7XG4gICAgaWYgKHNlcnZpY2UuRW5hYmxlU2VydmljZVNTTCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGNvbm5lY3RQb3J0U1NMKHVkaWQsIHNlcnZpY2UuUG9ydCwgc29ja2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IGNvbm5lY3RQb3J0KHVkaWQsIHNlcnZpY2UuUG9ydCwgc29ja2V0KTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgbG9ja2Rvd24uY2xvc2UoKTtcbiAgfVxufVxuXG5leHBvcnQge1xuICBzdGFydFN5c2xvZ1NlcnZpY2UsIHN0YXJ0V2ViSW5zcGVjdG9yU2VydmljZSxcbiAgc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UsIHN0YXJ0U2ltdWxhdGVMb2NhdGlvblNlcnZpY2UsXG4gIHN0YXJ0QWZjU2VydmljZSwgc3RhcnROb3RpZmljYXRpb25Qcm94eVNlcnZpY2UsXG4gIHN0YXJ0SG91c2VBcnJlc3RTZXJ2aWNlXG59O1xuIl0sImZpbGUiOiJsaWIvc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.unescape = unescape;
|
|
8
9
|
exports.default = exports.SyslogDecoder = void 0;
|
|
9
10
|
|
|
10
11
|
require("source-map-support/register");
|
|
@@ -13,6 +14,67 @@ var _stream = _interopRequireDefault(require("stream"));
|
|
|
13
14
|
|
|
14
15
|
const NEW_LINE_CODE = 0x0A;
|
|
15
16
|
const NULL_DELIMETER_CODE = 0x00;
|
|
17
|
+
const BACKSLASH_CODE = '\\'.codePointAt(0);
|
|
18
|
+
const SHIFTS_MAPPING = {
|
|
19
|
+
'-': 0x80,
|
|
20
|
+
'^': 0x40
|
|
21
|
+
};
|
|
22
|
+
const ESCAPE_TOKEN_LEN = 4;
|
|
23
|
+
const ESCAPE_TOKEN_PATTERN = /\\M(-|\^)(.)/;
|
|
24
|
+
|
|
25
|
+
function toUtf8Byte(escapedChar, modifier) {
|
|
26
|
+
const shift = SHIFTS_MAPPING[modifier];
|
|
27
|
+
return isNaN(shift) ? null : escapedChar.codePointAt(0) + shift;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function unescape(logBuffer) {
|
|
31
|
+
const parseUtf8Chars = start => {
|
|
32
|
+
let cursor = start;
|
|
33
|
+
const token = new Uint8Array(ESCAPE_TOKEN_LEN);
|
|
34
|
+
const utf8CharsAsBytes = [];
|
|
35
|
+
|
|
36
|
+
while (cursor <= logBuffer.length - ESCAPE_TOKEN_LEN) {
|
|
37
|
+
logBuffer.copy(token, 0, cursor, cursor + ESCAPE_TOKEN_LEN);
|
|
38
|
+
const tokenStr = Buffer.from(token).toString('latin1');
|
|
39
|
+
const tokenMatch = ESCAPE_TOKEN_PATTERN.exec(tokenStr);
|
|
40
|
+
|
|
41
|
+
if (!tokenMatch) {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const byte = toUtf8Byte(tokenMatch[2], tokenMatch[1]);
|
|
46
|
+
|
|
47
|
+
if (byte === null) {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
utf8CharsAsBytes.push(byte);
|
|
52
|
+
cursor += ESCAPE_TOKEN_LEN;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return utf8CharsAsBytes.length ? [cursor, Buffer.from(utf8CharsAsBytes).toString('utf8')] : [start, null];
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
let index = 0;
|
|
59
|
+
let result = '';
|
|
60
|
+
const bytesView = new Uint8Array(logBuffer);
|
|
61
|
+
|
|
62
|
+
while (index < bytesView.length) {
|
|
63
|
+
if (bytesView[index] === BACKSLASH_CODE) {
|
|
64
|
+
const [newIndex, chars] = parseUtf8Chars(index);
|
|
65
|
+
|
|
66
|
+
if (newIndex > index) {
|
|
67
|
+
result += chars;
|
|
68
|
+
index = newIndex;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
result += String.fromCharCode(bytesView[index++]);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
16
78
|
|
|
17
79
|
class SyslogDecoder extends _stream.default.Transform {
|
|
18
80
|
constructor(bufferLength) {
|
|
@@ -36,10 +98,10 @@ class SyslogDecoder extends _stream.default.Transform {
|
|
|
36
98
|
}
|
|
37
99
|
|
|
38
100
|
if (data[i] === NEW_LINE_CODE) {
|
|
39
|
-
if (this.bufferIndex
|
|
101
|
+
if (this.bufferIndex > 0) {
|
|
40
102
|
const stringBuffer = Buffer.allocUnsafe(this.bufferIndex);
|
|
41
103
|
this.buffer.copy(stringBuffer, 0, 0, this.bufferIndex);
|
|
42
|
-
this.push(stringBuffer
|
|
104
|
+
this.push(unescape(stringBuffer), 'utf8');
|
|
43
105
|
this.bufferIndex = 0;
|
|
44
106
|
}
|
|
45
107
|
|
|
@@ -58,4 +120,4 @@ var _default = SyslogDecoder;
|
|
|
58
120
|
exports.default = _default;require('source-map-support').install();
|
|
59
121
|
|
|
60
122
|
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zeXNsb2cvdHJhbnNmb3JtZXIvc3lzbG9nLWRlY29kZXIuanMiXSwibmFtZXMiOlsiTkVXX0xJTkVfQ09ERSIsIk5VTExfREVMSU1FVEVSX0NPREUiLCJCQUNLU0xBU0hfQ09ERSIsImNvZGVQb2ludEF0IiwiU0hJRlRTX01BUFBJTkciLCJFU0NBUEVfVE9LRU5fTEVOIiwiRVNDQVBFX1RPS0VOX1BBVFRFUk4iLCJ0b1V0ZjhCeXRlIiwiZXNjYXBlZENoYXIiLCJtb2RpZmllciIsInNoaWZ0IiwiaXNOYU4iLCJ1bmVzY2FwZSIsImxvZ0J1ZmZlciIsInBhcnNlVXRmOENoYXJzIiwic3RhcnQiLCJjdXJzb3IiLCJ0b2tlbiIsIlVpbnQ4QXJyYXkiLCJ1dGY4Q2hhcnNBc0J5dGVzIiwibGVuZ3RoIiwiY29weSIsInRva2VuU3RyIiwiQnVmZmVyIiwiZnJvbSIsInRvU3RyaW5nIiwidG9rZW5NYXRjaCIsImV4ZWMiLCJieXRlIiwicHVzaCIsImluZGV4IiwicmVzdWx0IiwiYnl0ZXNWaWV3IiwibmV3SW5kZXgiLCJjaGFycyIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIlN5c2xvZ0RlY29kZXIiLCJTdHJlYW0iLCJUcmFuc2Zvcm0iLCJjb25zdHJ1Y3RvciIsImJ1ZmZlckxlbmd0aCIsIm9iamVjdE1vZGUiLCJidWZmZXJJbmRleCIsImJ1ZmZlciIsImFsbG9jVW5zYWZlIiwiX3RyYW5zZm9ybSIsImRhdGEiLCJlbmNvZGluZyIsIm9uRGF0YSIsIl9kZWNvZGUiLCJpIiwic3RyaW5nQnVmZmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxhQUFhLEdBQUcsSUFBdEI7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxJQUE1QjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxLQUFLQyxXQUFMLENBQWlCLENBQWpCLENBQXZCO0FBQ0EsTUFBTUMsY0FBYyxHQUFHO0FBQ3JCLE9BQUssSUFEZ0I7QUFFckIsT0FBSztBQUZnQixDQUF2QjtB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QW5CLENBQWQ7QUFDRDs7QUFFREssRUFBQUEsVUFBVSxDQUFFQyxJQUFGLEVBQVFDLFFBQVIsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQ2xDLFNBQUtDLE9BQUwsQ0FBYUgsSUFBYjs7QUFDQUUsSUFBQUEsTUFBTTtBQUNQOztBQUVEQyxFQUFBQSxPQUFPLENBQUVILElBQUYsRUFBUTtBQUNiLFNBQUssSUFBSUksQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0osSUFBSSxDQUFDM0IsTUFBekIsRUFBaUMrQixDQUFDLEVBQWxDLEVBQXNDO0FBRXBDLFVBQUlKLElBQUksQ0FBQ0ksQ0FBRCxDQUFKLEtBQVlsRCxtQkFBaEIsRUFBcUM7QUFDbkM7QUFDRDs7QUFFRCxVQUFJOEMsSUFBSSxDQUFDSSxDQUFELENBQUosS0FBWW5ELGFBQWhCLEVBQStCO0FBQzdCLFlBQUksS0FBSzJDLFdBQUwsR0FBbUIsQ0FBdkIsRUFBMEI7QUFDeEIsZ0JBQU1TLFlBQVksR0FBRzdCLE1BQU0sQ0FBQ3NCLFdBQVAsQ0FBbUIsS0FBS0YsV0FBeEIsQ0FBckI7QUFDQSxlQUFLQyxNQUFMLENBQVl2QixJQUFaLENBQWlCK0IsWUFBakIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBbEMsRUFBcUMsS0FBS1QsV0FBMUM7QUFDQSxlQUFLZCxJQUFMLENBQVVqQixRQUFRLENBQUN3QyxZQUFELENBQWxCLEVBQWtDLE1BQWxDO0FBQ0EsZUFBS1QsV0FBTCxHQUFtQixDQUFuQjtBQUNEOztBQUNEO0FBQ0Q7O0FBQ0QsV0FBS0MsTUFBTCxDQUFZLEtBQUtELFdBQWpCLElBQWdDSSxJQUFJLENBQUNJLENBQUQsQ0FBcEM7QUFDQSxXQUFLUixXQUFMO0FBQ0Q7QUFDRjs7QUFoQzBDOzs7ZUFvQzlCTixhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0cmVhbSBmcm9tICdzdHJlYW0nO1xuXG5jb25zdCBORVdfTElORV9DT0RFID0gMHgwQTtcbmNvbnN0IE5VTExfREVMSU1FVEVSX0NPREUgPSAweDAwO1xuY29uc3QgQkFDS1NMQVNIX0NPREUgPSAnXFxcXCcuY29kZVBvaW50QXQoMCk7XG5jb25zdCBTSElGVFNfTUFQUElORyA9IHtcbiAgJy0nOiAweDgwLFxuICAnXic6IDB4NDAsXG59O1xuY29uc3QgRVNDQVBFX1RPS0VOX0xFTiA9IDQ7XG5jb25zdCBFU0NBUEVfVE9LRU5fUEFUVEVSTiA9IC9cXFxcTSgtfFxcXikoLikvO1xuXG5cbmZ1bmN0aW9uIHRvVXRmOEJ5dGUgKGVzY2FwZWRDaGFyLCBtb2RpZmllcikge1xuICBjb25zdCBzaGlmdCA9IFNISUZUU19NQVBQSU5HW21vZGlmaWVyXTtcbiAgcmV0dXJuIGlzTmFOKHNoaWZ0KSA/IG51bGwgOiBlc2NhcGVkQ2hhci5jb2RlUG9pbnRBdCgwKSArIHNoaWZ0O1xufVxuXG4vKipcbiAqIFVuZXNjYXBlcyB1dGY4LWVuY29kZWQgY2hhcmFjdGVycywgc28gdGhlIG91dHB1dCBsb29rc1xuICogbGlrZSBhIHZhbGlkIHN0cmluZy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBpdW0vYXBwaXVtL2lzc3Vlcy8xNDQ3NlxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gbG9nQnVmZmVyIEEgc2luZ2xlIGVzY2FwZWQgbG9nIGxpbmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSB1bmVzY2FwZWQgc3RyaW5nIG9yIHRoZSBzYW1lIHN0cmluZyBpZiBubyB1bmVzY2FwaW5nXG4gKiBpcyBuZWNlc3NhcnkuXG4gKi9cbmZ1bmN0aW9uIHVuZXNjYXBlIChsb2dCdWZmZXIpIHtcbiAgY29uc3QgcGFyc2VVdGY4Q2hhcnMgPSAoc3RhcnQpID0+IHtcbiAgICBsZXQgY3Vyc29yID0gc3RhcnQ7XG4gICAgY29uc3QgdG9rZW4gPSBuZXcgVWludDhBcnJheShFU0NBUEVfVE9LRU5fTEVOKTtcbiAgICBjb25zdCB1dGY4Q2hhcnNBc0J5dGVzID0gW107XG4gICAgd2hpbGUgKGN1cnNvciA8PSBsb2dCdWZmZXIubGVuZ3RoIC0gRVNDQVBFX1RPS0VOX0xFTikge1xuICAgICAgbG9nQnVmZmVyLmNvcHkodG9rZW4sIDAsIGN1cnNvciwgY3Vyc29yICsgRVNDQVBFX1RPS0VOX0xFTik7XG4gICAgICBjb25zdCB0b2tlblN0ciA9IEJ1ZmZlci5mcm9tKHRva2VuKS50b1N0cmluZygnbGF0aW4xJyk7XG4gICAgICBjb25zdCB0b2tlbk1hdGNoID0gRVNDQVBFX1RPS0VOX1BBVFRFUk4uZXhlYyh0b2tlblN0cik7XG4gICAgICBpZiAoIXRva2VuTWF0Y2gpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCBieXRlID0gdG9VdGY4Qnl0ZSh0b2tlbk1hdGNoWzJdLCB0b2tlbk1hdGNoWzFdKTtcbiAgICAgIGlmIChieXRlID09PSBudWxsKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdXRmOENoYXJzQXNCeXRlcy5wdXNoKGJ5dGUpO1xuICAgICAgY3Vyc29yICs9IEVTQ0FQRV9UT0tFTl9MRU47XG4gICAgfVxuICAgIHJldHVybiB1dGY4Q2hhcnNBc0J5dGVzLmxlbmd0aFxuICAgICAgPyBbY3Vyc29yLCBCdWZmZXIuZnJvbSh1dGY4Q2hhcnNBc0J5dGVzKS50b1N0cmluZygndXRmOCcpXVxuICAgICAgOiBbc3RhcnQsIG51bGxdO1xuICB9O1xuXG4gIGxldCBpbmRleCA9IDA7XG4gIGxldCByZXN1bHQgPSAnJztcbiAgY29uc3QgYnl0ZXNWaWV3ID0gbmV3IFVpbnQ4QXJyYXkobG9nQnVmZmVyKTtcbiAgd2hpbGUgKGluZGV4IDwgYnl0ZXNWaWV3Lmxlbmd0aCkge1xuICAgIGlmIChieXRlc1ZpZXdbaW5kZXhdID09PSBCQUNLU0xBU0hfQ09ERSkge1xuICAgICAgY29uc3QgW25ld0luZGV4LCBjaGFyc10gPSBwYXJzZVV0ZjhDaGFycyhpbmRleCk7XG4gICAgICBpZiAobmV3SW5kZXggPiBpbmRleCkge1xuICAgICAgICByZXN1bHQgKz0gY2hhcnM7XG4gICAgICAgIGluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1ZpZXdbaW5kZXgrK10pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuXG5jbGFzcyBTeXNsb2dEZWNvZGVyIGV4dGVuZHMgU3RyZWFtLlRyYW5zZm9ybSB7XG5cbiAgY29uc3RydWN0b3IgKGJ1ZmZlckxlbmd0aCkge1xuICAgIHN1cGVyKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcbiAgICB0aGlzLmJ1ZmZlckluZGV4ID0gMDtcbiAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShidWZmZXJMZW5ndGgpO1xuICB9XG5cbiAgX3RyYW5zZm9ybSAoZGF0YSwgZW5jb2RpbmcsIG9uRGF0YSkge1xuICAgIHRoaXMuX2RlY29kZShkYXRhKTtcbiAgICBvbkRhdGEoKTtcbiAgfVxuXG4gIF9kZWNvZGUgKGRhdGEpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIERvbid0IHN0b3JlIHRoZSBudWxsIGRlbGltZXRlciBtZXNzYWdlc1xuICAgICAgaWYgKGRhdGFbaV0gPT09IE5VTExfREVMSU1FVEVSX0NPREUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBQdXNoIHRoZSBkYXRhIHdoZW4gbmV3IGxpbmUgaXMgc2VudFxuICAgICAgaWYgKGRhdGFbaV0gPT09IE5FV19MSU5FX0NPREUpIHtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVySW5kZXggPiAwKSB7XG4gICAgICAgICAgY29uc3Qgc3RyaW5nQnVmZmVyID0gQnVmZmVyLmFsbG9jVW5zYWZlKHRoaXMuYnVmZmVySW5kZXgpO1xuICAgICAgICAgIHRoaXMuYnVmZmVyLmNvcHkoc3RyaW5nQnVmZmVyLCAwLCAwLCB0aGlzLmJ1ZmZlckluZGV4KTtcbiAgICAgICAgICB0aGlzLnB1c2godW5lc2NhcGUoc3RyaW5nQnVmZmVyKSwgJ3V0ZjgnKTtcbiAgICAgICAgICB0aGlzLmJ1ZmZlckluZGV4ID0gMDtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYnVmZmVyW3RoaXMuYnVmZmVySW5kZXhdID0gZGF0YVtpXTtcbiAgICAgIHRoaXMuYnVmZmVySW5kZXgrKztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHsgU3lzbG9nRGVjb2RlciwgdW5lc2NhcGUgfTtcbmV4cG9ydCBkZWZhdWx0IFN5c2xvZ0RlY29kZXI7XG4iXSwiZmlsZSI6ImxpYi9zeXNsb2cvdHJhbnNmb3JtZXIvc3lzbG9nLWRlY29kZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
|
|
@@ -12,6 +12,8 @@ require("source-map-support/register");
|
|
|
12
12
|
|
|
13
13
|
var _net = _interopRequireDefault(require("net"));
|
|
14
14
|
|
|
15
|
+
var _os = _interopRequireDefault(require("os"));
|
|
16
|
+
|
|
15
17
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
16
18
|
|
|
17
19
|
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
@@ -56,6 +58,8 @@ try {
|
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
const DEFAULT_USBMUXD_SOCKET = '/var/run/usbmuxd';
|
|
61
|
+
const DEFAULT_USBMUXD_PORT = 27015;
|
|
62
|
+
const DEFAULT_USBMUXD_HOST = '127.0.0.1';
|
|
59
63
|
const PROG_NAME = name;
|
|
60
64
|
const CLIENT_VERSION_STRING = `${name}-${version}`;
|
|
61
65
|
|
|
@@ -63,14 +67,24 @@ function swap16(val) {
|
|
|
63
67
|
return (val & 0xFF) << 8 | val >> 8 & 0xFF;
|
|
64
68
|
}
|
|
65
69
|
|
|
66
|
-
async function getDefaultSocket(
|
|
67
|
-
|
|
70
|
+
async function getDefaultSocket(opts = {}) {
|
|
71
|
+
const {
|
|
72
|
+
socketPath = DEFAULT_USBMUXD_SOCKET,
|
|
73
|
+
socketPort = DEFAULT_USBMUXD_PORT,
|
|
74
|
+
socketHost = DEFAULT_USBMUXD_HOST,
|
|
75
|
+
timeout = 5000
|
|
76
|
+
} = opts;
|
|
77
|
+
let socket;
|
|
78
|
+
|
|
79
|
+
if (await _appiumSupport.fs.exists(socketPath)) {
|
|
80
|
+
socket = _net.default.createConnection(socketPath);
|
|
81
|
+
} else if (process.platform === 'win32' || process.platform === 'linux' && /microsoft/i.test(_os.default.release())) {
|
|
82
|
+
socket = _net.default.createConnection(socketPort, socketHost);
|
|
83
|
+
} else {
|
|
68
84
|
throw new Error(`The usbmuxd socket at '${socketPath}' does not exist or is not accessible`);
|
|
69
85
|
}
|
|
70
86
|
|
|
71
87
|
return await new _bluebird.default((resolve, reject) => {
|
|
72
|
-
const socket = _net.default.createConnection(socketPath);
|
|
73
|
-
|
|
74
88
|
socket.once('error', reject);
|
|
75
89
|
socket.once('connect', () => resolve(socket));
|
|
76
90
|
}).timeout(timeout);
|
|
@@ -269,4 +283,4 @@ var _default = Usbmux;
|
|
|
269
283
|
exports.default = _default;require('source-map-support').install();
|
|
270
284
|
|
|
271
285
|
|
|
272
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91c2JtdXgvaW5kZXguanMiXSwibmFtZXMiOlsiTUFYX0ZSQU1FX1NJWkUiLCJNQiIsIlVTQk1VWF9SRVNVTFQiLCJPSyIsIkJBRENPTU1BTkQiLCJCQURERVYiLCJDT05OUkVGVVNFRCIsIm5hbWUiLCJ2ZXJzaW9uIiwicmVxdWlyZSIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiZXJyIiwiREVGQVVMVF9VU0JNVVhEX1NPQ0tFVCIsIlBST0dfTkFNRSIsIkNMSUVOVF9WRVJTSU9OX1NUUklORyIsInN3YXAxNiIsInZhbCIsImdldERlZmF1bHRTb2NrZXQiLCJzb2NrZXRQYXRoIiwidGltZW91dCIsImZzIiwiZXhpc3RzIiwiRXJyb3IiLCJCIiwicmVqZWN0Iiwic29ja2V0IiwibmV0IiwiY3JlYXRlQ29ubmVjdGlvbiIsIm9uY2UiLCJVc2JtdXgiLCJCYXNlU2VydmljZVNvY2tldCIsImNvbnN0cnVjdG9yIiwic29ja2V0Q2xpZW50IiwiX2RlY29kZXIiLCJVc2JtdXhEZWNvZGVyIiwiX3NwbGl0dGVyIiwiTGVuZ3RoQmFzZWRTcGxpdHRlciIsInJlYWRhYmxlU3RyZWFtIiwibGl0dGxlRW5kaWFuIiwibWF4RnJhbWVMZW5ndGgiLCJsZW5ndGhGaWVsZE9mZnNldCIsImxlbmd0aEZpZWxkTGVuZ3RoIiwibGVuZ3RoQWRqdXN0bWVudCIsIl9zb2NrZXRDbGllbnQiLCJwaXBlIiwiX2VuY29kZXIiLCJVc2JtdXhFbmNvZGVyIiwiX2Fzc2lnbkNsaWVudEZhaWx1cmVIYW5kbGVycyIsIl90YWciLCJfcmVzcG9uc2VDYWxsYmFja3MiLCJvbiIsIl9oYW5kbGVEYXRhIiwiYmluZCIsImRhdGEiLCJjYiIsImhlYWRlciIsInRhZyIsIl8iLCJub29wIiwicmVhZEJVSUQiLCJyZWNlaXZlUHJvbWlzZSIsIl9yZWNlaXZlUGxpc3RQcm9taXNlIiwicGF5bG9hZCIsIkJVSUQiLCJKU09OIiwic3RyaW5naWZ5IiwiX3NlbmRQbGlzdCIsIk1lc3NhZ2VUeXBlIiwiUHJvZ05hbWUiLCJDbGllbnRWZXJzaW9uU3RyaW5nIiwicmVhZFBhaXJSZWNvcmQiLCJ1ZGlkIiwiUGFpclJlY29yZERhdGEiLCJwbGlzdCIsInBhcnNlUGxpc3QiLCJQYWlyUmVjb3JkSUQiLCJqc29uIiwid3JpdGUiLCJyZXNwb25zZUNhbGxiYWNrIiwiZSIsInNldFRpbWVvdXQiLCJsaXN0RGV2aWNlcyIsIkRldmljZUxpc3QiLCJmaW5kRGV2aWNlIiwiZGV2aWNlcyIsImZpbmQiLCJkZXZpY2UiLCJQcm9wZXJ0aWVzIiwiU2VyaWFsTnVtYmVyIiwiY29ubmVjdExvY2tkb3duIiwiY29ubmVjdCIsIkRldmljZUlEIiwiTE9DS0RPV05fUE9SVCIsIkxvY2tkb3duIiwiUGxpc3RTZXJ2aWNlIiwiZGV2aWNlSUQiLCJwb3J0IiwiTnVtYmVyIiwic2h1dGRvd24iLCJ1bnBpcGUiLCJQb3J0TnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxjQUFjLEdBQUcsSUFBSUMsYUFBM0I7QUFFQSxNQUFNQyxhQUFhLEdBQUc7QUFDcEJDLEVBQUFBLEVBQUUsRUFBRSxDQURnQjtBQUVwQkMsRUFBQUEsVUFBVSxFQUFFLENBRlE7QUFHcEJDLEVBQUFBLE1BQU0sRUFBRSxDQUhZO0FBSXBCQyxFQUFBQSxXQUFXLEVBQUU7QUFKTyxDQUF0QjtBQU9BLElBQUlDLElBQUosRUFBVUMsT0FBVjs7QUFDQSxJQUFJO0FBRUYsR0FBQztBQUFFRCxJQUFBQSxJQUFGO0FBQVFDLElBQUFBO0FBQVIsTUFBb0JDLE9BQU8sQ0FBQ0MsY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLElBQXBDLEVBQTBDLGNBQTFDLENBQUQsQ0FBNUI7QUFDRCxDQUhELENBR0UsT0FBT0MsR0FBUCxFQUFZO0FBRVosR0FBQztBQUFFTixJ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LENBQU47QUFDRDtBQUNGLEtBZDZCLENBQTlCOztBQWdCQSxTQUFLYSxVQUFMLENBQWdCO0FBQ2RWLE1BQUFBLEdBRGM7QUFFZE0sTUFBQUEsT0FBTyxFQUFFO0FBQ1BLLFFBQUFBLFdBQVcsRUFBRSxTQUROO0FBRVBDLFFBQUFBLFFBQVEsRUFBRXZELFNBRkg7QUFHUHdELFFBQUFBLG1CQUFtQixFQUFFdkQscUJBSGQ7QUFJUDZFLFFBQUFBLFFBQVEsRUFBRUksUUFKSDtBQUtQSyxRQUFBQSxVQUFVLEVBQUVyRixNQUFNLENBQUNpRixJQUFEO0FBTFg7QUFGSyxLQUFoQjs7QUFXQSxXQUFPLE1BQU1wQyxjQUFiO0FBQ0Q7O0FBOUxvQzs7O2VBa014Qi9CLE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmV0IGZyb20gJ25ldCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgcGxpc3QsIGZzIH0gZnJvbSAnYXBwaXVtLXN1cHBvcnQnO1xuaW1wb3J0IExlbmd0aEJhc2VkU3BsaXR0ZXIgZnJvbSAnLi4vdXRpbC90cmFuc2Zvcm1lci9sZW5ndGgtYmFzZWQtc3BsaXR0ZXInO1xuaW1wb3J0IFVzYm11eERlY29kZXIgZnJvbSAnLi90cmFuc2Zvcm1lci91c2JtdXgtZGVjb2Rlci5qcyc7XG5pbXBvcnQgVXNibXV4RW5jb2RlciBmcm9tICcuL3RyYW5zZm9ybWVyL3VzYm11eC1lbmNvZGVyLmpzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IFBsaXN0U2VydmljZSBmcm9tICcuLi9wbGlzdC1zZXJ2aWNlJztcbmltcG9ydCB7IExvY2tkb3duLCBMT0NLRE9XTl9QT1JUIH0gZnJvbSAnLi4vbG9ja2Rvd24nO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2VTb2NrZXQgfSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuaW1wb3J0IHsgTUIgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5cbmNvbnN0IE1BWF9GUkFNRV9TSVpFID0gMSAqIE1CO1xuXG5jb25zdCBVU0JNVVhfUkVTVUxUID0ge1xuICBPSzogMCxcbiAgQkFEQ09NTUFORDogMSxcbiAgQkFEREVWOiAyLFxuICBDT05OUkVGVVNFRDogMyxcbn07XG5cbmxldCBuYW1lLCB2ZXJzaW9uO1xudHJ5IHtcbiAgLy8gZmlyc3QgdHJ5IGFzc3VtaW5nIHRoaXMgaXMgaW4gdGhlIGBidWlsZGAgZm9sZGVyXG4gICh7IG5hbWUsIHZlcnNpb24gfSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJy4uJywgJ3BhY2thZ2UuanNvbicpKSk7XG59IGNhdGNoIChlcnIpIHtcbiAgLy8gdGhlbiB0cnkgYXNzdW1pbmcgaXQgaXMgbm90XG4gICh7IG5hbWUsIHZlcnNpb24gfSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3BhY2thZ2UuanNvbicpKSk7XG59XG5cbmNvbnN0IERFRkFVTFRfVVNCTVVYRF9TT0NLRVQgPSAnL3Zhci9ydW4vdXNibXV4ZCc7XG5jb25zdCBQUk9HX05BTUUgPSBuYW1lO1xuY29uc3QgQ0xJRU5UX1ZFUlNJT05fU1RSSU5HID0gYCR7bmFtZX0tJHt2ZXJzaW9ufWA7XG5cbmZ1bmN0aW9uIHN3YXAxNiAodmFsKSB7XG4gIHJldHVybiAoKHZhbCAmIDB4RkYpIDw8IDgpIHwgKCh2YWwgPj4gOCkgJiAweEZGKTtcbn1cblxuLyoqXG4gKiBDb25uZWN0cyBhIHNvY2tldCB0byB1c2JtdXhkIHNlcnZpY2VcbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IHNvY2tldFBhdGggWy92YXIvcnVuL3VzYm11eGRdIFRoZSBmdWxsIHBhdGggdG8gdGhlIHVzYm11eGQgVW5peCBzb2NrZXRcbiAqIEBwYXJhbSB7P251bWJlcn0gdGltZW91dCBbNTAwMF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCB1bnRpbFxuICogdGhlIHNvY2tldCBpcyBjb25uZWN0ZWRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgYWNjZXNzaW5nIHRoZSBzb2NrZXQgb3JcbiAqIGEgY29ubmVjdGlvbiBlcnJvciBoYXBwZW5lZFxuICogQHRocm93cyB7Qi5UaW1lb3V0RXJyb3J9IGlmIGNvbm5lY3Rpb24gdGltZW91dCBoYXBwZW5lZFxuICogQHJldHVybnMge25ldC5Tb2NrZXR9IENvbm5lY3RlZCBzb2NrZXQgaW5zdGFuY2VcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0RGVmYXVsdFNvY2tldCAoc29ja2V0UGF0aCA9IERFRkFVTFRfVVNCTVVYRF9TT0NLRVQsIHRpbWVvdXQgPSA1MDAwKSB7XG4gIGlmICghYXdhaXQgZnMuZXhpc3RzKHNvY2tldFBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdXNibXV4ZCBzb2NrZXQgYXQgJyR7c29ja2V0UGF0aH0nIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHNvY2tldCA9IG5ldC5jcmVhdGVDb25uZWN0aW9uKHNvY2tldFBhdGgpO1xuICAgIHNvY2tldC5vbmNlKCdlcnJvcicsIHJlamVjdCk7XG4gICAgc29ja2V0Lm9uY2UoJ2Nvbm5lY3QnLCAoKSA9PiByZXNvbHZlKHNvY2tldCkpO1xuICB9KS50aW1lb3V0KHRpbWVvdXQpO1xufVxuXG5cbmNsYXNzIFVzYm11eCBleHRlbmRzIEJhc2VTZXJ2aWNlU29ja2V0IHtcbiAgY29uc3RydWN0b3IgKHNvY2tldENsaWVudCkge1xuICAgIHN1cGVyKHNvY2tldENsaWVudCk7XG5cbiAgICB0aGlzLl9kZWNvZGVyID0gbmV3IFVzYm11eERlY29kZXIoKTtcbiAgICB0aGlzLl9zcGxpdHRlciA9IG5ldyBMZW5ndGhCYXNlZFNwbGl0dGVyKHtcbiAgICAgIHJlYWRhYmxlU3RyZWFtOiBzb2NrZXRDbGllbnQsXG4gICAgICBsaXR0bGVFbmRpYW46IHRydWUsXG4gICAgICBtYXhGcmFtZUxlbmd0aDogTUFYX0ZSQU1FX1NJWkUsXG4gICAgICBsZW5ndGhGaWVsZE9mZnNldDogMCxcbiAgICAgIGxlbmd0aEZpZWxkTGVuZ3RoOiA0LFxuICAgICAgbGVuZ3RoQWRqdXN0bWVudDogMCxcbiAgICB9KTtcbiAgICB0aGlzLl9zb2NrZXRDbGllbnQucGlwZSh0aGlzLl9zcGxpdHRlcikucGlwZSh0aGlzLl9kZWNvZGVyKTtcblxuICAgIHRoaXMuX2VuY29kZXIgPSBuZXcgVXNibXV4RW5jb2RlcigpO1xuICAgIHRoaXMuX2VuY29kZXIucGlwZSh0aGlzLl9zb2NrZXRDbGllbnQpO1xuICAgIHRoaXMuX2Fzc2lnbkNsaWVudEZhaWx1cmVIYW5kbGVycyh0aGlzLl9lbmNvZGVyKTtcblxuICAgIHRoaXMuX3RhZyA9IDA7XG4gICAgdGhpcy5fcmVzcG9uc2VDYWxsYmFja3MgPSB7fTtcbiAgICB0aGlzLl9kZWNvZGVyLm9uKCdkYXRhJywgdGhpcy5faGFuZGxlRGF0YS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIF9oYW5kbGVEYXRhIChkYXRhKSB7XG4gICAgY29uc3QgY2IgPSB0aGlzLl9yZXNwb25zZUNhbGxiYWNrc1tkYXRhLmhlYWRlci50YWddIHx8IF8ubm9vcDtcbiAgICBjYihkYXRhKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBwcm9taXNlL3ByZWZlci1hd2FpdC10by1jYWxsYmFja3NcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBCVUlEIG9mIHRoZSBob3N0IGNvbXB1dGVyIGZyb20gdXNibXV4ZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbWVvdXQ9NTAwMF0gdGhlIHRpbWVvdXQgb2YgcmVjZWl2aW5nIGEgcmVzcG9uc2UgZnJvbSB1c2JtdXhkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBhc3luYyByZWFkQlVJRCAodGltZW91dCA9IDUwMDApIHtcbiAgICBjb25zdCB7dGFnLCByZWNlaXZlUHJvbWlzZX0gPSB0aGlzLl9yZWNlaXZlUGxpc3RQcm9taXNlKHRpbWVvdXQsIChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YS5wYXlsb2FkLkJVSUQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEucGF5bG9hZC5CVUlEO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zZW5kUGxpc3Qoe1xuICAgICAgdGFnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBNZXNzYWdlVHlwZTogJ1JlYWRCVUlEJyxcbiAgICAgICAgUHJvZ05hbWU6IFBST0dfTkFNRSxcbiAgICAgICAgQ2xpZW50VmVyc2lvblN0cmluZzogQ0xJRU5UX1ZFUlNJT05fU1RSSU5HXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgcmVjZWl2ZVByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgdGhlIHBhaXIgcmVjb3JkIG9mIGEgZGV2aWNlLiBJdCB3aWxsIHJldHVybiBudWxsIGlmIGl0IGRvZXNuJ3QgZXhpc3RzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1ZGlkIHRoZSB1ZGlkIG9mIHRoZSBkZXZpY2VcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0PTUwMDBdIHRoZSB0aW1lb3V0IG9mIHJlY2VpdmluZyBhIHJlc3BvbnNlIGZyb20gdXNibXV4ZFxuICAgKiBAcmV0dXJucyB7P09iamVjdH1cbiAgICovXG4gIGFzeW5jIHJlYWRQYWlyUmVjb3JkICh1ZGlkLCB0aW1lb3V0ID0gNTAwMCkge1xuICAgIGNvbnN0IHt0YWcsIHJlY2VpdmVQcm9taXNlfSA9IHRoaXMuX3JlY2VpdmVQbGlzdFByb21pc2UodGltZW91dCwgKGRhdGEpID0+IHtcbiAgICAgIGlmICghZGF0YS5wYXlsb2FkLlBhaXJSZWNvcmREYXRhKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHBsaXN0LnBhcnNlUGxpc3QoZGF0YS5wYXlsb2FkLlBhaXJSZWNvcmREYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGF0YTogJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3NlbmRQbGlzdCh7XG4gICAgICB0YWcsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIE1lc3NhZ2VUeXBlOiAnUmVhZFBhaXJSZWNvcmQnLFxuICAgICAgICBQYWlyUmVjb3JkSUQ6IHVkaWQsXG4gICAgICAgIFByb2dOYW1lOiBQUk9HX05BTUUsXG4gICAgICAgIENsaWVudFZlcnNpb25TdHJpbmc6IENMSUVOVF9WRVJTSU9OX1NUUklOR1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhd2FpdCByZWNlaXZlUHJvbWlzZTtcbiAgfVxuXG4gIF9zZW5kUGxpc3QgKGpzb24pIHtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGpzb24pO1xuICB9XG5cbiAgX3JlY2VpdmVQbGlzdFByb21pc2UgKHRpbWVvdXQgPSA1MDAwLCByZXNwb25zZUNhbGxiYWNrKSB7XG4gICAgY29uc3QgdGFnID0gdGhpcy5fdGFnKys7XG4gICAgY29uc3QgcmVjZWl2ZVByb21pc2UgPSBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9yZXNwb25zZUNhbGxiYWNrc1t0YWddID0gKGRhdGEpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlQ2FsbGJhY2soZGF0YSkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gcmVjZWl2ZSBhbnkgZGF0YSB3aXRoaW4gdGhlIHRpbWVvdXQ6ICR7dGltZW91dH1gKSksIHRpbWVvdXQpO1xuICAgIH0pO1xuICAgIHJldHVybiB7dGFnLCByZWNlaXZlUHJvbWlzZX07XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgYWxsIGRldmljZXMgY29ubmVjdGVkIHRvIHRoZSBob3N0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbdGltZW91dD01MDAwXSB0aGUgdGltZW91dCBvZiByZWNlaXZpbmcgYSByZXNwb25zZSBmcm9tIHVzYm11eGRcbiAgICogQHJldHVybnMge0FycmF5fVxuICAgKi9cbiAgYXN5bmMgbGlzdERldmljZXMgKHRpbWVvdXQgPSA1MDAwKSB7XG4gICAgY29uc3Qge3RhZywgcmVjZWl2ZVByb21pc2V9ID0gdGhpcy5fcmVjZWl2ZVBsaXN0UHJvbWlzZSh0aW1lb3V0LCAoZGF0YSkgPT4ge1xuICAgICAgaWYgKGRhdGEucGF5bG9hZC5EZXZpY2VMaXN0KSB7XG4gICAgICAgIHJldHVybiBkYXRhLnBheWxvYWQuRGV2aWNlTGlzdDtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBkYXRhOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc2VuZFBsaXN0KHtcbiAgICAgIHRhZyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgTWVzc2FnZVR5cGU6ICdMaXN0RGV2aWNlcycsXG4gICAgICAgIFByb2dOYW1lOiBQUk9HX05BTUUsXG4gICAgICAgIENsaWVudFZlcnNpb25TdHJpbmc6IENMSUVOVF9WRVJTSU9OX1NUUklOR1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHJlY2VpdmVQcm9taXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvb2tzIGZvciBhIGRldmljZSB3aXRoIHRoZSBwYXNzZWQgdWRpZC4gSXQgd2lsbCByZXR1cm4gdW5kZWZpbmVkIGlmIHRoZSBkZXZpY2UgaXMgbm90IGZvdW5kXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1ZGlkIHRoZSB1ZGlkIG9mIHRoZSBkZXZpY2VcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0PTUwMDBdIHRoZSB0aW1lb3V0IG9mIHJlY2VpdmluZyBhIHJlc3BvbnNlIGZyb20gdXNibXV4ZFxuICAgKiBAcmV0dXJucyB7P09iamVjdH1cbiAgICovXG4gIGFzeW5jIGZpbmREZXZpY2UgKHVkaWQsIHRpbWVvdXQgPSA1MDAwKSB7XG4gICAgY29uc3QgZGV2aWNlcyA9IGF3YWl0IHRoaXMubGlzdERldmljZXModGltZW91dCk7XG4gICAgcmV0dXJuIF8uZmluZChkZXZpY2VzLCAoZGV2aWNlKSA9PiBkZXZpY2UuUHJvcGVydGllcy5TZXJpYWxOdW1iZXIgPT09IHVkaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbm5lY3RzIHRvIHRoZSBsb2NrZG93bmQgb24gdGhlIGRldmljZSBhbmQgcmV0dXJucyBhIExvY2tkb3duIGNsaWVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gdWRpZCB0aGUgdWRpZCBvZiB0aGUgZGV2aWNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbdGltZW91dD01MDAwXSB0aGUgdGltZW91dCBvZiByZWNlaXZpbmcgYSByZXNwb25zZSBmcm9tIHVzYm11eGRcbiAgICogQHJldHVybnMge0xvY2tkb3dufVxuICAgKi9cbiAgYXN5bmMgY29ubmVjdExvY2tkb3duICh1ZGlkLCB0aW1lb3V0ID0gNTAwMCkge1xuICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IHRoaXMuZmluZERldmljZSh1ZGlkLCB0aW1lb3V0KTtcbiAgICBpZiAoIWRldmljZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCB0aGUgZXhwZWN0ZWQgZGV2aWNlICcke3VkaWR9J2ApO1xuICAgIH1cbiAgICBjb25zdCBzb2NrZXQgPSBhd2FpdCB0aGlzLmNvbm5lY3QoZGV2aWNlLlByb3BlcnRpZXMuRGV2aWNlSUQsIExPQ0tET1dOX1BPUlQsIHRpbWVvdXQpO1xuICAgIHJldHVybiBuZXcgTG9ja2Rvd24obmV3IFBsaXN0U2VydmljZShzb2NrZXQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25uZWN0cyB0byBhIGNlcnRhaW4gcG9ydCBvbiB0aGUgZGV2aWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXZpY2VJRCB0aGUgZGV2aWNlIGlkIHdoaWNoIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgcHJvcGVydGllcyBvZiBhIGRldmljZVxuICAgKiBAcGFyYW0ge251bWJlcn0gcG9ydCB0aGUgcG9ydCBudW1iZXIgdGhhdCB3YW50cyB0byBiZSBjb25uZWN0ZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0PTUwMDBdIHRoZSB0aW1lb3V0IG9mIHJlY2VpdmluZyBhIHJlc3BvbnNlIGZyb20gdXNibXV4ZFxuICAgKiBAcmV0dXJucyB7bmV0LlNvY2tldHxPYmplY3R9IFRoZSBzb2NrZXQgb3IgdGhlIG9iamVjdCByZXR1cm5lZCBpbiB0aGUgY2FsbGJhY2sgaWYgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGV4aXN0c1xuICAgKi9cbiAgYXN5bmMgY29ubmVjdCAoZGV2aWNlSUQsIHBvcnQsIHRpbWVvdXQgPSA1MDAwKSB7XG4gICAgY29uc3Qge3RhZywgcmVjZWl2ZVByb21pc2V9ID0gdGhpcy5fcmVjZWl2ZVBsaXN0UHJvbWlzZSh0aW1lb3V0LCAoZGF0YSkgPT4ge1xuICAgICAgaWYgKGRhdGEucGF5bG9hZC5NZXNzYWdlVHlwZSAhPT0gJ1Jlc3VsdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YCk7XG4gICAgICB9XG4gICAgICBpZiAoZGF0YS5wYXlsb2FkLk51bWJlciA9PT0gVVNCTVVYX1JFU1VMVC5PSykge1xuICAgICAgICB0aGlzLl9zcGxpdHRlci5zaHV0ZG93bigpO1xuICAgICAgICB0aGlzLl9zb2NrZXRDbGllbnQudW5waXBlKHRoaXMuX3NwbGl0dGVyKTtcbiAgICAgICAgdGhpcy5fc3BsaXR0ZXIudW5waXBlKHRoaXMuX2RlY29kZXIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc29ja2V0Q2xpZW50O1xuICAgICAgfSBlbHNlIGlmIChkYXRhLnBheWxvYWQuTnVtYmVyID09PSBVU0JNVVhfUkVTVUxULkNPTk5SRUZVU0VEKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29ubmVjdGlvbiB3YXMgcmVmdXNlZCB0byBwb3J0ICR7cG9ydH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBkYXRhOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fc2VuZFBsaXN0KHtcbiAgICAgIHRhZyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgTWVzc2FnZVR5cGU6ICdDb25uZWN0JyxcbiAgICAgICAgUHJvZ05hbWU6IFBST0dfTkFNRSxcbiAgICAgICAgQ2xpZW50VmVyc2lvblN0cmluZzogQ0xJRU5UX1ZFUlNJT05fU1RSSU5HLFxuICAgICAgICBEZXZpY2VJRDogZGV2aWNlSUQsXG4gICAgICAgIFBvcnROdW1iZXI6IHN3YXAxNihwb3J0KVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHJlY2VpdmVQcm9taXNlO1xuICB9XG59XG5cbmV4cG9ydCB7IFVzYm11eCwgZ2V0RGVmYXVsdFNvY2tldCB9O1xuZXhwb3J0IGRlZmF1bHQgVXNibXV4O1xuIl0sImZpbGUiOiJsaWIvdXNibXV4L2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
286
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91c2JtdXgvaW5kZXguanMiXSwibmFtZXMiOlsiTUFYX0ZSQU1FX1NJWkUiLCJNQiIsIlVTQk1VWF9SRVNVTFQiLCJPSyIsIkJBRENPTU1BTkQiLCJCQURERVYiLCJDT05OUkVGVVNFRCIsIm5hbWUiLCJ2ZXJzaW9uIiwicmVxdWlyZSIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiZXJyIiwiREVGQVVMVF9VU0JNVVhEX1NPQ0tFVCIsIkRFRkFVTFRfVVNCTVVYRF9QT1JUIiwiREVGQVVMVF9VU0JNVVhEX0hPU1QiLCJQUk9HX05BTUUiLCJDTElFTlRfVkVSU0lPTl9TVFJJTkciLCJzd2FwMTYiLCJ2YWwiLCJnZXREZWZhdWx0U29ja2V0Iiwib3B0cyIsInNvY2tldFBhdGgiLCJzb2NrZXRQb3J0Iiwic29ja2V0SG9zdCIsInRpbWVvdXQiLCJzb2NrZXQiLCJmcyIsImV4aXN0cyIsIm5ldCIsImNyZWF0ZUNvbm5lY3Rpb24iLCJwcm9jZXNzIiwicGxhdGZvcm0iLCJ0ZXN0Iiwib3MiLCJyZWxlYXNlIiwiRXJyb3IiLCJCIiwicmVqZWN0Iiwib25jZSIsIlVzYm11eCIsIkJhc2VTZXJ2aWNlU29ja2V0IiwiY29uc3RydWN0b3IiLCJzb2NrZXRDbGllbnQiLCJfZGVjb2RlciIsIlVzYm11eERlY29kZXIiLCJfc3BsaXR0ZXIiLCJMZW5ndGhCYXNlZFNwbGl0dGVyIiwicmVhZGFibGVTdHJlYW0iLCJsaXR0bGVFbmRpYW4iLCJtYXhGcmFtZUxlbmd0aCIsImxlbmd0aEZpZWxkT2Zmc2V0IiwibGVuZ3RoRmllbGRMZW5ndGgiLCJsZW5ndGhBZGp1c3RtZW50IiwiX3NvY2tldENsaWVudCIsInBpcGUiLCJfZW5jb2RlciIsIlVzYm11eEVuY29kZXIiLCJfYXNzaWduQ2xpZW50RmFpbHVyZUhhbmRsZXJzIiwiX3RhZyIsIl9yZXNwb25zZUNhbGxiYWNrcyIsIm9uIiwiX2hhbmRsZURhdGEiLCJiaW5kIiwiZGF0YSIsImNiIiwiaGVhZGVyIiwidGFnIiwiXyIsIm5vb3AiLCJyZWFkQlVJRCIsInJlY2VpdmVQcm9taXNlIiwiX3JlY2VpdmVQbGlzdFByb21pc2UiLCJwYXlsb2FkIiwiQlVJRCIsIkpTT04iLCJzdHJpbmdpZnkiLCJfc2VuZFBsaXN0IiwiTWVzc2FnZVR5cGUiLCJQcm9nTmFtZSIsIkNsaWVudFZlcnNpb25TdHJpbmciLCJyZWFkUGFpclJlY29yZCIsInVkaWQiLCJQYWlyUmVjb3JkRGF0YSIsInBsaXN0IiwicGFyc2VQbGlzdCIsIlBhaXJSZWNvcmRJRCIsImpzb24iLCJ3cml0ZSIsInJlc3BvbnNlQ2FsbGJhY2siLCJlIiwic2V0VGltZW91dCIsImxpc3REZXZpY2VzIiwiRGV2aWNlTGlzdCIsImZpbmREZXZpY2UiLCJkZXZpY2VzIiwiZmluZCIsImRldmljZSIsIlByb3BlcnRpZXMiLCJTZXJpYWxOdW1iZXIiLCJjb25uZWN0TG9ja2Rvd24iLCJjb25uZWN0IiwiRGV2aWNlSUQiLCJMT0NLRE9XTl9QT1JUIiwiTG9ja2Rvd24iLCJQbGlzdFNlcnZpY2UiLCJkZXZpY2VJRCIsInBvcnQiLCJOdW1iZXIiLCJzaHV0ZG93biIsInVucGlwZSIsIlBvcnROdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLGNBQWMsR0FBRyxJQUFJQyxhQUEzQjtBQUVBLE1BQU1DLGFBQWEsR0FBRztBQUNwQkMsRUFBQUEsRUFBRSxFQUFFLENBRGdCO0FBRXBCQyxFQUFBQSxVQUFVLEVBQUUsQ0FGUTtBQUdwQkMsRUFBQUEsTUFBTSxFQUFFLENBSFk7QUFJcEJDLEVBQUFBLFdBQVcsRUFBRTtBQUpPLENBQXRCO0FBT0EsSUFBSUMsSUFBSixFQUFVQyxPQUFWOztBQUNBLElBQUk7QUFFRixHQUFDO0FBQUVELElBQUFBLElBQUY7QUFBUUMsSUFBQUE7QUFBUixNQUFvQkMsT0FBTyxDQUFDQyxj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ICdvcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgcGxpc3QsIGZzIH0gZnJvbSAnYXBwaXVtLXN1cHBvcnQnO1xuaW1wb3J0IExlbmd0aEJhc2VkU3BsaXR0ZXIgZnJvbSAnLi4vdXRpbC90cmFuc2Zvcm1lci9sZW5ndGgtYmFzZWQtc3BsaXR0ZXInO1xuaW1wb3J0IFVzYm11eERlY29kZXIgZnJvbSAnLi90cmFuc2Zvcm1lci91c2JtdXgtZGVjb2Rlci5qcyc7XG5pbXBvcnQgVXNibXV4RW5jb2RlciBmcm9tICcuL3RyYW5zZm9ybWVyL3VzYm11eC1lbmNvZGVyLmpzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IFBsaXN0U2VydmljZSBmcm9tICcuLi9wbGlzdC1zZXJ2aWNlJztcbmltcG9ydCB7IExvY2tkb3duLCBMT0NLRE9XTl9QT1JUIH0gZnJvbSAnLi4vbG9ja2Rvd24nO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2VTb2NrZXQgfSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuaW1wb3J0IHsgTUIgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5cbmNvbnN0IE1BWF9GUkFNRV9TSVpFID0gMSAqIE1CO1xuXG5jb25zdCBVU0JNVVhfUkVTVUxUID0ge1xuICBPSzogMCxcbiAgQkFEQ09NTUFORDogMSxcbiAgQkFEREVWOiAyLFxuICBDT05OUkVGVVNFRDogMyxcbn07XG5cbmxldCBuYW1lLCB2ZXJzaW9uO1xudHJ5IHtcbiAgLy8gZmlyc3QgdHJ5IGFzc3VtaW5nIHRoaXMgaXMgaW4gdGhlIGBidWlsZGAgZm9sZGVyXG4gICh7IG5hbWUsIHZlcnNpb24gfSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJy4uJywgJ3BhY2thZ2UuanNvbicpKSk7XG59IGNhdGNoIChlcnIpIHtcbiAgLy8gdGhlbiB0cnkgYXNzdW1pbmcgaXQgaXMgbm90XG4gICh7IG5hbWUsIHZlcnNpb24gfSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3BhY2thZ2UuanNvbicpKSk7XG59XG5cbmNvbnN0IERFRkFVTFRfVVNCTVVYRF9TT0NLRVQgPSAnL3Zhci9ydW4vdXNibXV4ZCc7XG5jb25zdCBERUZBVUxUX1VTQk1VWERfUE9SVCA9IDI3MDE1O1xuY29uc3QgREVGQVVMVF9VU0JNVVhEX0hPU1QgPSAnMTI3LjAuMC4xJztcbmNvbnN0IFBST0dfTkFNRSA9IG5hbWU7XG5jb25zdCBDTElFTlRfVkVSU0lPTl9TVFJJTkcgPSBgJHtuYW1lfS0ke3ZlcnNpb259YDtcblxuZnVuY3Rpb24gc3dhcDE2ICh2YWwpIHtcbiAgcmV0dXJuICgodmFsICYgMHhGRikgPDwgOCkgfCAoKHZhbCA+PiA4KSAmIDB4RkYpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNvY2tldE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gc29ja2V0UGF0aCBbL3Zhci9ydW4vdXNibXV4ZF0gVGhlIGZ1bGwgcGF0aCB0byB0aGUgdXNibXV4ZCBVbml4IHNvY2tldFxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBzb2NrZXRQb3J0IFsyNzAxNV0gVGhlIHBvcnQgbnVtYmVyIHRvIGNvbm5lY3QgdG8gaWYgcnVubmluZyBvbiBXaW5kb3dzXG4gKiBvciBpbiBXU0wxIG1vZGVcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gc29ja2V0SG9zdCBbMTI3LjAuMC4xXSBUaGUgaG9zdCBuYW1lIHRvIGNvbm5lY3QgdG8gaWYgcnVubmluZyBvbiBXaW5kb3dzXG4gKiBvciBpbiBXU0wxIG1vZGVcbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gdGltZW91dCBbNTAwMF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCB1bnRpbFxuICogdGhlIHNvY2tldCBpcyBjb25uZWN0ZWRcbiAqL1xuXG4vKipcbiAqIENvbm5lY3RzIGEgc29ja2V0IHRvIHVzYm11eGQgc2VydmljZVxuICpcbiAqIEBwYXJhbSB7P1NvY2tldE9wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgYWNjZXNzaW5nIHRoZSBzb2NrZXQgb3JcbiAqIGEgY29ubmVjdGlvbiBlcnJvciBoYXBwZW5lZFxuICogQHRocm93cyB7Qi5UaW1lb3V0RXJyb3J9IGlmIGNvbm5lY3Rpb24gdGltZW91dCBoYXBwZW5lZFxuICogQHJldHVybnMge25ldC5Tb2NrZXR9IENvbm5lY3RlZCBzb2NrZXQgaW5zdGFuY2VcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0RGVmYXVsdFNvY2tldCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBzb2NrZXRQYXRoID0gREVGQVVMVF9VU0JNVVhEX1NPQ0tFVCxcbiAgICBzb2NrZXRQb3J0ID0gREVGQVVMVF9VU0JNVVhEX1BPUlQsXG4gICAgc29ja2V0SG9zdCA9IERFRkFVTFRfVVNCTVVYRF9IT1NULFxuICAgIHRpbWVvdXQgPSA1MDAwLFxuICB9ID0gb3B0cztcblxuICBsZXQgc29ja2V0O1xuICBpZiAoYXdhaXQgZnMuZXhpc3RzKHNvY2tldFBhdGgpKSB7XG4gICAgc29ja2V0ID0gbmV0LmNyZWF0ZUNvbm5lY3Rpb24oc29ja2V0UGF0aCk7XG4gIH0gZWxzZSBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICAgICAgfHwgKHByb2Nlc3MucGxhdGZvcm0gPT09ICdsaW51eCcgJiYgL21pY3Jvc29mdC9pLnRlc3Qob3MucmVsZWFzZSgpKSkpIHtcbiAgICAvLyBDb25uZWN0IHRvIHVzYm11eGQgd2hlbiBydW5uaW5nIG9uIFdTTDFcbiAgICBzb2NrZXQgPSBuZXQuY3JlYXRlQ29ubmVjdGlvbihzb2NrZXRQb3J0LCBzb2NrZXRIb3N0KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSB1c2JtdXhkIHNvY2tldCBhdCAnJHtzb2NrZXRQYXRofScgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGFjY2Vzc2libGVgKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc29ja2V0Lm9uY2UoJ2Vycm9yJywgcmVqZWN0KTtcbiAgICBzb2NrZXQub25jZSgnY29ubmVjdCcsICgpID0+IHJlc29sdmUoc29ja2V0KSk7XG4gIH0pLnRpbWVvdXQodGltZW91dCk7XG59XG5cblxuY2xhc3MgVXNibXV4IGV4dGVuZHMgQmFzZVNlcnZpY2VTb2NrZXQge1xuICBjb25zdHJ1Y3RvciAoc29ja2V0Q2xpZW50KSB7XG4gICAgc3VwZXIoc29ja2V0Q2xpZW50KTtcblxuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgVXNibXV4RGVjb2RlcigpO1xuICAgIHRoaXMuX3NwbGl0dGVyID0gbmV3IExlbmd0aEJhc2VkU3BsaXR0ZXIoe1xuICAgICAgcmVhZGFibGVTdHJlYW06IHNvY2tldENsaWVudCxcbiAgICAgIGxpdHRsZUVuZGlhbjogdHJ1ZSxcbiAgICAgIG1heEZyYW1lTGVuZ3RoOiBNQVhfRlJBTUVfU0laRSxcbiAgICAgIGxlbmd0aEZpZWxkT2Zmc2V0OiAwLFxuICAgICAgbGVuZ3RoRmllbGRMZW5ndGg6IDQsXG4gICAgICBsZW5ndGhBZGp1c3RtZW50OiAwLFxuICAgIH0pO1xuICAgIHRoaXMuX3NvY2tldENsaWVudC5waXBlKHRoaXMuX3NwbGl0dGVyKS5waXBlKHRoaXMuX2RlY29kZXIpO1xuXG4gICAgdGhpcy5fZW5jb2RlciA9IG5ldyBVc2JtdXhFbmNvZGVyKCk7XG4gICAgdGhpcy5fZW5jb2Rlci5waXBlKHRoaXMuX3NvY2tldENsaWVudCk7XG4gICAgdGhpcy5fYXNzaWduQ2xpZW50RmFpbHVyZUhhbmRsZXJzKHRoaXMuX2VuY29kZXIpO1xuXG4gICAgdGhpcy5fdGFnID0gMDtcbiAgICB0aGlzLl9yZXNwb25zZUNhbGxiYWNrcyA9IHt9O1xuICAgIHRoaXMuX2RlY29kZXIub24oJ2RhdGEnLCB0aGlzLl9oYW5kbGVEYXRhLmJpbmQodGhpcykpO1xuICB9XG5cbiAgX2hhbmRsZURhdGEgKGRhdGEpIHtcbiAgICBjb25zdCBjYiA9IHRoaXMuX3Jlc3BvbnNlQ2FsbGJhY2tzW2RhdGEuaGVhZGVyLnRhZ10gfHwgXy5ub29wO1xuICAgIGNiKGRhdGEpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLWNhbGxiYWNrc1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEJVSUQgb2YgdGhlIGhvc3QgY29tcHV0ZXIgZnJvbSB1c2JtdXhkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbdGltZW91dD01MDAwXSB0aGUgdGltZW91dCBvZiByZWNlaXZpbmcgYSByZXNwb25zZSBmcm9tIHVzYm11eGRcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGFzeW5jIHJlYWRCVUlEICh0aW1lb3V0ID0gNTAwMCkge1xuICAgIGNvbnN0IHt0YWcsIHJlY2VpdmVQcm9taXNlfSA9IHRoaXMuX3JlY2VpdmVQbGlzdFByb21pc2UodGltZW91dCwgKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhLnBheWxvYWQuQlVJRCkge1xuICAgICAgICByZXR1cm4gZGF0YS5wYXlsb2FkLkJVSUQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGF0YTogJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3NlbmRQbGlzdCh7XG4gICAgICB0YWcsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIE1lc3NhZ2VUeXBlOiAnUmVhZEJVSUQnLFxuICAgICAgICBQcm9nTmFtZTogUFJPR19OQU1FLFxuICAgICAgICBDbGllbnRWZXJzaW9uU3RyaW5nOiBDTElFTlRfVkVSU0lPTl9TVFJJTkdcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhd2FpdCByZWNlaXZlUHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyB0aGUgcGFpciByZWNvcmQgb2YgYSBkZXZpY2UuIEl0IHdpbGwgcmV0dXJuIG51bGwgaWYgaXQgZG9lc24ndCBleGlzdHNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVkaWQgdGhlIHVkaWQgb2YgdGhlIGRldmljZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbWVvdXQ9NTAwMF0gdGhlIHRpbWVvdXQgb2YgcmVjZWl2aW5nIGEgcmVzcG9uc2UgZnJvbSB1c2JtdXhkXG4gICAqIEByZXR1cm5zIHs/T2JqZWN0fVxuICAgKi9cbiAgYXN5bmMgcmVhZFBhaXJSZWNvcmQgKHVkaWQsIHRpbWVvdXQgPSA1MDAwKSB7XG4gICAgY29uc3Qge3RhZywgcmVjZWl2ZVByb21pc2V9ID0gdGhpcy5fcmVjZWl2ZVBsaXN0UHJvbWlzZSh0aW1lb3V0LCAoZGF0YSkgPT4ge1xuICAgICAgaWYgKCFkYXRhLnBheWxvYWQuUGFpclJlY29yZERhdGEpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcGxpc3QucGFyc2VQbGlzdChkYXRhLnBheWxvYWQuUGFpclJlY29yZERhdGEpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBkYXRhOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fc2VuZFBsaXN0KHtcbiAgICAgIHRhZyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgTWVzc2FnZVR5cGU6ICdSZWFkUGFpclJlY29yZCcsXG4gICAgICAgIFBhaXJSZWNvcmRJRDogdWRpZCxcbiAgICAgICAgUHJvZ05hbWU6IFBST0dfTkFNRSxcbiAgICAgICAgQ2xpZW50VmVyc2lvblN0cmluZzogQ0xJRU5UX1ZFUlNJT05fU1RSSU5HXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGF3YWl0IHJlY2VpdmVQcm9taXNlO1xuICB9XG5cbiAgX3NlbmRQbGlzdCAoanNvbikge1xuICAgIHRoaXMuX2VuY29kZXIud3JpdGUoanNvbik7XG4gIH1cblxuICBfcmVjZWl2ZVBsaXN0UHJvbWlzZSAodGltZW91dCA9IDUwMDAsIHJlc3BvbnNlQ2FsbGJhY2spIHtcbiAgICBjb25zdCB0YWcgPSB0aGlzLl90YWcrKztcbiAgICBjb25zdCByZWNlaXZlUHJvbWlzZSA9IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX3Jlc3BvbnNlQ2FsbGJhY2tzW3RhZ10gPSAoZGF0YSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2VDYWxsYmFjayhkYXRhKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byByZWNlaXZlIGFueSBkYXRhIHdpdGhpbiB0aGUgdGltZW91dDogJHt0aW1lb3V0fWApKSwgdGltZW91dCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHt0YWcsIHJlY2VpdmVQcm9taXNlfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0cyBhbGwgZGV2aWNlcyBjb25uZWN0ZWQgdG8gdGhlIGhvc3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0PTUwMDBdIHRoZSB0aW1lb3V0IG9mIHJlY2VpdmluZyBhIHJlc3BvbnNlIGZyb20gdXNibXV4ZFxuICAgKiBAcmV0dXJucyB7QXJyYXl9XG4gICAqL1xuICBhc3luYyBsaXN0RGV2aWNlcyAodGltZW91dCA9IDUwMDApIHtcbiAgICBjb25zdCB7dGFnLCByZWNlaXZlUHJvbWlzZX0gPSB0aGlzLl9yZWNlaXZlUGxpc3RQcm9taXNlKHRpbWVvdXQsIChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YS5wYXlsb2FkLkRldmljZUxpc3QpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEucGF5bG9hZC5EZXZpY2VMaXN0O1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zZW5kUGxpc3Qoe1xuICAgICAgdGFnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBNZXNzYWdlVHlwZTogJ0xpc3REZXZpY2VzJyxcbiAgICAgICAgUHJvZ05hbWU6IFBST0dfTkFNRSxcbiAgICAgICAgQ2xpZW50VmVyc2lvblN0cmluZzogQ0xJRU5UX1ZFUlNJT05fU1RSSU5HXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgcmVjZWl2ZVByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgZm9yIGEgZGV2aWNlIHdpdGggdGhlIHBhc3NlZCB1ZGlkLiBJdCB3aWxsIHJldHVybiB1bmRlZmluZWQgaWYgdGhlIGRldmljZSBpcyBub3QgZm91bmRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVkaWQgdGhlIHVkaWQgb2YgdGhlIGRldmljZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbWVvdXQ9NTAwMF0gdGhlIHRpbWVvdXQgb2YgcmVjZWl2aW5nIGEgcmVzcG9uc2UgZnJvbSB1c2JtdXhkXG4gICAqIEByZXR1cm5zIHs/T2JqZWN0fVxuICAgKi9cbiAgYXN5bmMgZmluZERldmljZSAodWRpZCwgdGltZW91dCA9IDUwMDApIHtcbiAgICBjb25zdCBkZXZpY2VzID0gYXdhaXQgdGhpcy5saXN0RGV2aWNlcyh0aW1lb3V0KTtcbiAgICByZXR1cm4gXy5maW5kKGRldmljZXMsIChkZXZpY2UpID0+IGRldmljZS5Qcm9wZXJ0aWVzLlNlcmlhbE51bWJlciA9PT0gdWRpZCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdHMgdG8gdGhlIGxvY2tkb3duZCBvbiB0aGUgZGV2aWNlIGFuZCByZXR1cm5zIGEgTG9ja2Rvd24gY2xpZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1ZGlkIHRoZSB1ZGlkIG9mIHRoZSBkZXZpY2VcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0PTUwMDBdIHRoZSB0aW1lb3V0IG9mIHJlY2VpdmluZyBhIHJlc3BvbnNlIGZyb20gdXNibXV4ZFxuICAgKiBAcmV0dXJucyB7TG9ja2Rvd259XG4gICAqL1xuICBhc3luYyBjb25uZWN0TG9ja2Rvd24gKHVkaWQsIHRpbWVvdXQgPSA1MDAwKSB7XG4gICAgY29uc3QgZGV2aWNlID0gYXdhaXQgdGhpcy5maW5kRGV2aWNlKHVkaWQsIHRpbWVvdXQpO1xuICAgIGlmICghZGV2aWNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIHRoZSBleHBlY3RlZCBkZXZpY2UgJyR7dWRpZH0nYCk7XG4gICAgfVxuICAgIGNvbnN0IHNvY2tldCA9IGF3YWl0IHRoaXMuY29ubmVjdChkZXZpY2UuUHJvcGVydGllcy5EZXZpY2VJRCwgTE9DS0RPV05fUE9SVCwgdGltZW91dCk7XG4gICAgcmV0dXJuIG5ldyBMb2NrZG93bihuZXcgUGxpc3RTZXJ2aWNlKHNvY2tldCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbm5lY3RzIHRvIGEgY2VydGFpbiBwb3J0IG9uIHRoZSBkZXZpY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRldmljZUlEIHRoZSBkZXZpY2UgaWQgd2hpY2ggY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwcm9wZXJ0aWVzIG9mIGEgZGV2aWNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBwb3J0IHRoZSBwb3J0IG51bWJlciB0aGF0IHdhbnRzIHRvIGJlIGNvbm5lY3RlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbWVvdXQ9NTAwMF0gdGhlIHRpbWVvdXQgb2YgcmVjZWl2aW5nIGEgcmVzcG9uc2UgZnJvbSB1c2JtdXhkXG4gICAqIEByZXR1cm5zIHtuZXQuU29ja2V0fE9iamVjdH0gVGhlIHNvY2tldCBvciB0aGUgb2JqZWN0IHJldHVybmVkIGluIHRoZSBjYWxsYmFjayBpZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZXhpc3RzXG4gICAqL1xuICBhc3luYyBjb25uZWN0IChkZXZpY2VJRCwgcG9ydCwgdGltZW91dCA9IDUwMDApIHtcbiAgICBjb25zdCB7dGFnLCByZWNlaXZlUHJvbWlzZX0gPSB0aGlzLl9yZWNlaXZlUGxpc3RQcm9taXNlKHRpbWVvdXQsIChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YS5wYXlsb2FkLk1lc3NhZ2VUeXBlICE9PSAnUmVzdWx0Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGF0YTogJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhLnBheWxvYWQuTnVtYmVyID09PSBVU0JNVVhfUkVTVUxULk9LKSB7XG4gICAgICAgIHRoaXMuX3NwbGl0dGVyLnNodXRkb3duKCk7XG4gICAgICAgIHRoaXMuX3NvY2tldENsaWVudC51bnBpcGUodGhpcy5fc3BsaXR0ZXIpO1xuICAgICAgICB0aGlzLl9zcGxpdHRlci51bnBpcGUodGhpcy5fZGVjb2Rlcik7XG4gICAgICAgIHJldHVybiB0aGlzLl9zb2NrZXRDbGllbnQ7XG4gICAgICB9IGVsc2UgaWYgKGRhdGEucGF5bG9hZC5OdW1iZXIgPT09IFVTQk1VWF9SRVNVTFQuQ09OTlJFRlVTRUQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25uZWN0aW9uIHdhcyByZWZ1c2VkIHRvIHBvcnQgJHtwb3J0fWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zZW5kUGxpc3Qoe1xuICAgICAgdGFnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBNZXNzYWdlVHlwZTogJ0Nvbm5lY3QnLFxuICAgICAgICBQcm9nTmFtZTogUFJPR19OQU1FLFxuICAgICAgICBDbGllbnRWZXJzaW9uU3RyaW5nOiBDTElFTlRfVkVSU0lPTl9TVFJJTkcsXG4gICAgICAgIERldmljZUlEOiBkZXZpY2VJRCxcbiAgICAgICAgUG9ydE51bWJlcjogc3dhcDE2KHBvcnQpXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgcmVjZWl2ZVByb21pc2U7XG4gIH1cbn1cblxuZXhwb3J0IHsgVXNibXV4LCBnZXREZWZhdWx0U29ja2V0IH07XG5leHBvcnQgZGVmYXVsdCBVc2JtdXg7XG4iXSwiZmlsZSI6ImxpYi91c2JtdXgvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
package/build/lib/utilities.js
CHANGED
|
@@ -32,6 +32,9 @@ const LOCKDOWN_REQUEST = {
|
|
|
32
32
|
DEVICE_UTC_OFFSET: {
|
|
33
33
|
Key: 'TimeZoneOffsetFromUTC'
|
|
34
34
|
},
|
|
35
|
+
DEVICE_TIME_ZONE: {
|
|
36
|
+
Key: 'TimeZone'
|
|
37
|
+
},
|
|
35
38
|
DEVICE_VERSION: {
|
|
36
39
|
Key: 'ProductVersion'
|
|
37
40
|
},
|
|
@@ -86,11 +89,10 @@ async function getDeviceTime(udid, socket = null) {
|
|
|
86
89
|
const lockdown = await startLockdownSession(udid, socket);
|
|
87
90
|
|
|
88
91
|
try {
|
|
89
|
-
const timestamp = await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_TIME);
|
|
90
|
-
const utcOffset = (await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_UTC_OFFSET)) / 60;
|
|
91
92
|
return {
|
|
92
|
-
timestamp,
|
|
93
|
-
utcOffset
|
|
93
|
+
timestamp: await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_TIME),
|
|
94
|
+
utcOffset: (await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_UTC_OFFSET)) / 60,
|
|
95
|
+
timeZone: await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_TIME_ZONE)
|
|
94
96
|
};
|
|
95
97
|
} finally {
|
|
96
98
|
lockdown.close();
|
|
@@ -159,4 +161,4 @@ async function connectPort(udid, port, socket = null) {
|
|
|
159
161
|
}require('source-map-support').install();
|
|
160
162
|
|
|
161
163
|
|
|
162
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlsaXRpZXMuanMiXSwibmFtZXMiOlsiTE9DS0RPV05fUkVRVUVTVCIsIkRFVklDRV9USU1FIiwiS2V5IiwiREVWSUNFX1VUQ19PRkZTRVQiLCJERVZJQ0VfVkVSU0lPTiIsIkRFVklDRV9OQU1FIiwiZ2V0Q29ubmVjdGVkRGV2aWNlcyIsInNvY2tldCIsInVzYm11eCIsIlVzYm11eCIsImUiLCJsb2ciLCJkZWJ1ZyIsImRldmljZXMiLCJsaXN0RGV2aWNlcyIsInVkaWRzIiwibWFwIiwiZGV2aWNlIiwiUHJvcGVydGllcyIsIlNlcmlhbE51bWJlciIsIl8iLCJ1bmlxIiwiY2xvc2UiLCJnZXRPU1ZlcnNpb24iLCJ1ZGlkIiwibG9ja2Rvd24iLCJjb25uZWN0TG9ja2Rvd24iLCJnZXRWYWx1ZSIsImdldERldmljZU5hbWUiLCJnZXREZXZpY2VUaW1lIiwic3RhcnRMb2NrZG93blNlc3Npb24iLCJ0aW1lc3RhbXAiLCJ1dGNPZmZzZXQiLCJwYWlyUmVjb3JkIiwicmVhZFBhaXJSZWNvcmQiLCJFcnJvciIsInN0YXJ0U2Vzc2lvbiIsIkhvc3RJRCIsIlN5c3RlbUJVSUQiLCJlbmFibGVTZXNzaW9uU1NMIiwiSG9zdFByaXZhdGVLZXkiLCJIb3N0Q2VydGlmaWNhdGUiLCJjb25uZWN0UG9ydFNTTCIsInBvcnQiLCJmaW5kRGV2aWNlIiwiY29ubmVjdCIsIkRldmljZUlEIiwidW5kZWZpbmVkIiwiY29ubmVjdFBvcnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxnQkFBZ0IsR0FBRztBQUN2QkMsRUFBQUEsV0FBVyxFQUFFO0FBQUVDLElBQUFBLEdBQUcsRUFBRTtBQUFQLEdBRFU7QUFFdkJDLEVBQUFBLGlCQUFpQixFQUFFO0FBQUVELElBQUFBLEdBQUcsRUFBRTtBQUFQLEdBRkk7QUFHdkJFLEVBQUFBLGNBQWMsRUFBRTtBQUFFRixJQUFBQSxHQUFHLEVBQUU7QUFBUCxH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QVAsQ0FBZTVCLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQjRCLFFBQWpDLEVBQTJDSCxJQUEzQyxFQUFpREksU0FBakQsQ0FBckI7QUFDQSxXQUFPLDZCQUFheEMsTUFBYixFQUFxQjBCLFVBQVUsQ0FBQ08sY0FBaEMsRUFBZ0RQLFVBQVUsQ0FBQ1EsZUFBM0QsQ0FBUDtBQUNELEdBWEQsQ0FXRSxPQUFPL0IsQ0FBUCxFQUFVO0FBQ1ZGLElBQUFBLE1BQU0sQ0FBQ2MsS0FBUDtBQUNBLFVBQU1aLENBQU47QUFDRDtBQUNGOztBQVVELGVBQWVzQyxXQUFmLENBQTRCeEIsSUFBNUIsRUFBa0NtQixJQUFsQyxFQUF3Q3BDLE1BQU0sR0FBRyxJQUFqRCxFQUF1RDtBQUNyRCxRQUFNQyxNQUFNLEdBQUcsSUFBSUMsZUFBSixDQUFXRixNQUFNLEtBQUksTUFBTSwrQkFBVixDQUFqQixDQUFmOztBQUNBLE1BQUk7QUFDRixVQUFNVSxNQUFNLEdBQUcsTUFBTVQsTUFBTSxDQUFDb0MsVUFBUCxDQUFrQnBCLElBQWxCLENBQXJCOztBQUNBLFFBQUksQ0FBQ1AsTUFBTCxFQUFhO0FBQ1gsWUFBTSxJQUFJa0IsS0FBSixDQUFXLHNDQUFxQ1gsSUFBSyxFQUFyRCxDQUFOO0FBQ0Q7O0FBQ0QsV0FBTyxNQUFNaEIsTUFBTSxDQUFDcUMsT0FBUCxDQUFlNUIsTUFBTSxDQUFDQyxVQUFQLENBQWtCNEIsUUFBakMsRUFBMkNILElBQTNDLEVBQWlESSxTQUFqRCxDQUFiO0FBQ0QsR0FORCxDQU1FLE9BQU9yQyxDQUFQLEVBQVU7QUFDVkYsSUFBQUEsTUFBTSxDQUFDYyxLQUFQO0FBQ0EsVUFBTVosQ0FBTjtBQUNEO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXNibXV4LCB7IGdldERlZmF1bHRTb2NrZXQgfSBmcm9tICcuL3VzYm11eCc7XG5pbXBvcnQgeyB1cGdyYWRlVG9TU0wgfSBmcm9tICcuL3NzbC1oZWxwZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5jb25zdCBMT0NLRE9XTl9SRVFVRVNUID0ge1xuICBERVZJQ0VfVElNRTogeyBLZXk6ICdUaW1lSW50ZXJ2YWxTaW5jZTE5NzAnIH0sXG4gIERFVklDRV9VVENfT0ZGU0VUOiB7IEtleTogJ1RpbWVab25lT2Zmc2V0RnJvbVVUQycgfSxcbiAgREVWSUNFX1ZFUlNJT046IHsgS2V5OiAnUHJvZHVjdFZlcnNpb24nIH0sXG4gIERFVklDRV9OQU1FOiB7IEtleTogJ0RldmljZU5hbWUnIH1cbn07XG5cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHVkaWRzIG9mIHRoZSBjb25uZWN0ZWQgZGV2aWNlc1xuICpcbiAqIEBwYXJhbSB7P25ldC5Tb2NrZXR9IHNvY2tldCB0aGUgc29ja2V0IG9mIHVzYm11eGQuIEl0IHdpbGwgZGVmYXVsdCB0byAvdmFyL3J1bi91c2JtdXhkIGlmIGl0IGlzIG5vdCBwYXNzZWRcbiAqIEByZXR1cm5zIHtBcnJheS48c3RyaW5nPn0gVGhlIGxpc3Qgb2YgZGV2aWNlIHNlcmlhbCBudW1iZXJzICh1ZGlkKSBvclxuICogYW4gZW1wdHkgbGlzdCBpZiBubyBkZXZpY2VzIGFyZSBjb25uZWN0ZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0Q29ubmVjdGVkRGV2aWNlcyAoc29ja2V0ID0gbnVsbCkge1xuICBsZXQgdXNibXV4O1xuICB0cnkge1xuICAgIHVzYm11eCA9IG5ldyBVc2JtdXgoc29ja2V0IHx8IGF3YWl0IGdldERlZmF1bHRTb2NrZXQoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZGVidWcoZSk7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgZGV2aWNlcyA9IGF3YWl0IHVzYm11eC5saXN0RGV2aWNlcygpO1xuICAgIGNvbnN0IHVkaWRzID0gZGV2aWNlcy5tYXAoKGRldmljZSkgPT4gZGV2aWNlLlByb3BlcnRpZXMuU2VyaWFsTnVtYmVyKTtcbiAgICByZXR1cm4gXy51bmlxKHVkaWRzKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB1c2JtdXguY2xvc2UoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgb3MgdmVyc2lvbiBvZiB0aGUgZGV2aWNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVkaWQgRGV2aWNlIFVESURcbiAqIEBwYXJhbSB7P25ldC5Tb2NrZXR9IHNvY2tldCB0aGUgc29ja2V0IG9mIHVzYm11eGQuIEl0IHdpbGwgZGVmYXVsdCB0byAvdmFyL3J1bi91c2JtdXhkIGlmIGl0IGlzIG5vdCBwYXNzZWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldE9TVmVyc2lvbiAodWRpZCwgc29ja2V0ID0gbnVsbCkge1xuICBjb25zdCB1c2JtdXggPSBuZXcgVXNibXV4KHNvY2tldCB8fCBhd2FpdCBnZXREZWZhdWx0U29ja2V0KCkpO1xuICB0cnkge1xuICAgIC8vIGxvY2tkb3duIGRvZXNuJ3QgbmVlZCB0byBiZSBjbG9zZWQgc2luY2UgaXQgdXNlcyB0aGUgc2FtZSBzb2NrZXQgdXNibXV4IHVzZXNcbiAgICBjb25zdCBsb2NrZG93biA9IGF3YWl0IHVzYm11eC5jb25uZWN0TG9ja2Rvd24odWRpZCk7XG4gICAgcmV0dXJuIGF3YWl0IGxvY2tkb3duLmdldFZhbHVlKExPQ0tET1dOX1JFUVVFU1QuREVWSUNFX1ZFUlNJT04pO1xuICB9IGZpbmFsbHkge1xuICAgIHVzYm11eC5jbG9zZSgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBuYW1lIG9mIHRoZSBkZXZpY2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCBEZXZpY2UgVURJRFxuICogQHBhcmFtIHs/bmV0LlNvY2tldH0gc29ja2V0IHRoZSBzb2NrZXQgb2YgdXNibXV4ZC4gSXQgd2lsbCBkZWZhdWx0IHRvIC92YXIvcnVuL3VzYm11eGQgaWYgaXQgaXMgbm90IHBhc3NlZFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0RGV2aWNlTmFtZSAodWRpZCwgc29ja2V0ID0gbnVsbCkge1xuICBjb25zdCB1c2JtdXggPSBuZXcgVXNibXV4KHNvY2tldCB8fCBhd2FpdCBnZXREZWZhdWx0U29ja2V0KCkpO1xuICB0cnkge1xuICAgIC8vIGxvY2tkb3duIGRvZXNuJ3QgbmVlZCB0byBiZSBjbG9zZWQgc2luY2UgaXQgdXNlcyB0aGUgc2FtZSBzb2NrZXQgdXNibXV4IHVzZXNcbiAgICBjb25zdCBsb2NrZG93biA9IGF3YWl0IHVzYm11eC5jb25uZWN0TG9ja2Rvd24odWRpZCk7XG4gICAgcmV0dXJuIGF3YWl0IGxvY2tkb3duLmdldFZhbHVlKExPQ0tET1dOX1JFUVVFU1QuREVWSUNFX05BTUUpO1xuICB9IGZpbmFsbHkge1xuICAgIHVzYm11eC5jbG9zZSgpO1xuICB9XG59XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGV2aWNlVGltZVxuICpcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0aW1lc3RhbXAgVW5peCB0aW1lc3RhbXAgaW4gc2Vjb25kcyBzaW5jZSAxOTcwLTAxLTAxVDAwOjAwOjAwWlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHV0Y09mZnNldCBUaGUgZGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gdGhlIFVUQyB0aW1lIGFuZCB0aGUgbG9jYWwgZGV2aWNlIHRpbWUuXG4gKiBDYW4gYmUgbmVnYXRpdmUuXG4gKi9cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGxvY2FsIHRpbWUgZnJvbSB0aGUgZGV2aWNlIHVuZGVyIHRlc3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCBEZXZpY2UgVURJRFxuICogQHBhcmFtIHs/bmV0LlNvY2tldH0gc29ja2V0IHRoZSBzb2NrZXQgb2YgdXNibXV4ZC4gSXQgd2lsbCBkZWZhdWx0IHRvIC92YXIvcnVuL3VzYm11eGQgaWYgaXQgaXMgbm90IHBhc3NlZFxuICogQHJldHVybnMge0RldmljZVRpbWV9XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldERldmljZVRpbWUgKHVkaWQsIHNvY2tldCA9IG51bGwpIHtcbiAgY29uc3QgbG9ja2Rvd24gPSBhd2FpdCBzdGFydExvY2tkb3duU2Vzc2lvbih1ZGlkLCBzb2NrZXQpO1xuICB0cnkge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IGF3YWl0IGxvY2tkb3duLmdldFZhbHVlKExPQ0tET1dOX1JFUVVFU1QuREVWSUNFX1RJTUUpO1xuICAgIC8vIEFwcGxlIHJldHVybnMgdXRjT2Zmc2V0IGluIHNlY29uZHMgd2hpY2ggZG9lc250IGNvbXBseSB3aXRoIHRoZSBnZW5lcmFsIHN0YW5kYXJkXG4gICAgY29uc3QgdXRjT2Zmc2V0ID0gYXdhaXQgbG9ja2Rvd24uZ2V0VmFsdWUoTE9DS0RPV05fUkVRVUVTVC5ERVZJQ0VfVVRDX09GRlNFVCkgLyA2MDtcbiAgICByZXR1cm4ge1xuICAgICAgdGltZXN0YW1wLFxuICAgICAgdXRjT2Zmc2V0LFxuICAgIH07XG4gIH0gZmluYWxseSB7XG4gICAgbG9ja2Rvd24uY2xvc2UoKTtcbiAgfVxufVxuXG4vKipcbiAqIFN0YXJ0cyBhIGxvY2tkb3duIHNlc3Npb24gb24gdGhlIGdpdmVuIGRldmljZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1ZGlkIERldmljZSBVRElEXG4gKiBAcGFyYW0gez9uZXQuU29ja2V0fSBzb2NrZXQgdGhlIHNvY2tldCBvZiB1c2JtdXhkLiBJdCB3aWxsIGRlZmF1bHQgdG8gL3Zhci9ydW4vdXNibXV4ZCBpZiBpdCBpcyBub3QgcGFzc2VkXG4gKiBAcmV0dXJucyB7TG9ja2Rvd259XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0TG9ja2Rvd25TZXNzaW9uICh1ZGlkLCBzb2NrZXQgPSBudWxsKSB7XG4gIGNvbnN0IHVzYm11eCA9IG5ldyBVc2JtdXgoc29ja2V0IHx8IGF3YWl0IGdldERlZmF1bHRTb2NrZXQoKSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFpclJlY29yZCA9IGF3YWl0IHVzYm11eC5yZWFkUGFpclJlY29yZCh1ZGlkKTtcbiAgICBpZiAoIXBhaXJSZWNvcmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgYSBwYWlyIHJlY29yZCBmb3IgZGV2aWNlICcke3VkaWR9Jy4gUGxlYXNlIGZpcnN0IHBhaXIgd2l0aCB0aGUgZGV2aWNlYCk7XG4gICAgfVxuICAgIC8vIGxvY2tkb3duIGRvZXNuJ3QgbmVlZCB0byBiZSBjbG9zZWQgc2luY2UgaXQgdXNlcyB0aGUgc2FtZSBzb2NrZXQgdXNibXV4IHVzZXNcbiAgICBjb25zdCBsb2NrZG93biA9IGF3YWl0IHVzYm11eC5jb25uZWN0TG9ja2Rvd24odWRpZCk7XG4gICAgYXdhaXQgbG9ja2Rvd24uc3RhcnRTZXNzaW9uKHBhaXJSZWNvcmQuSG9zdElELCBwYWlyUmVjb3JkLlN5c3RlbUJVSUQpO1xuICAgIGxvY2tkb3duLmVuYWJsZVNlc3Npb25TU0wocGFpclJlY29yZC5Ib3N0UHJpdmF0ZUtleSwgcGFpclJlY29yZC5Ib3N0Q2VydGlmaWNhdGUpO1xuICAgIHJldHVybiBsb2NrZG93bjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHVzYm11eC5jbG9zZSgpO1xuICAgIHRocm93IGU7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25uZWN0cyB0byBhIGdpdmVuIHBvcnQgd2l0aCB0aGUgY2VydHMgYW5kIGtleXMgdXNlZCBpbiB0aGUgcGFpcmluZyBwcm9jZXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVkaWQgRGV2aWNlIFVESURcbiAqIEBwYXJhbSB7bnVtYmVyfSBwb3J0IFBvcnQgdG8gY29ubmVjdFxuICogQHBhcmFtIHs/bmV0LlNvY2tldH0gc29ja2V0IHRoZSBzb2NrZXQgb2YgdXNibXV4ZC4gSXQgd2lsbCBkZWZhdWx0IHRvIC92YXIvcnVuL3VzYm11eGQgaWYgaXQgaXMgbm90IHBhc3NlZFxuICogQHJldHVybnMge3Rscy5UTFNTb2NrZXR8T2JqZWN0fSBUaGUgc29ja2V0IG9yIHRoZSBvYmplY3QgcmV0dXJuZWQgaW4gdGhlIGNhbGxiYWNrIGlmIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBleGlzdHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gY29ubmVjdFBvcnRTU0wgKHVkaWQsIHBvcnQsIHNvY2tldCA9IG51bGwpIHtcbiAgY29uc3QgdXNibXV4ID0gbmV3IFVzYm11eChzb2NrZXQgfHwgYXdhaXQgZ2V0RGVmYXVsdFNvY2tldCgpKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCB1c2JtdXguZmluZERldmljZSh1ZGlkKTtcbiAgICBpZiAoIWRldmljZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCB0aGUgZXhwZWN0ZWQgZGV2aWNlICcke3VkaWR9J2ApO1xuICAgIH1cbiAgICBjb25zdCBwYWlyUmVjb3JkID0gYXdhaXQgdXNibXV4LnJlYWRQYWlyUmVjb3JkKHVkaWQpO1xuICAgIGlmICghcGFpclJlY29yZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBhIHBhaXIgcmVjb3JkIGZvciBkZXZpY2UgJyR7dWRpZH0nLiBQbGVhc2UgZmlyc3QgcGFpciB3aXRoIHRoZSBkZXZpY2VgKTtcbiAgICB9XG4gICAgY29uc3Qgc29ja2V0ID0gYXdhaXQgdXNibXV4LmNvbm5lY3QoZGV2aWNlLlByb3BlcnRpZXMuRGV2aWNlSUQsIHBvcnQsIHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuIHVwZ3JhZGVUb1NTTChzb2NrZXQsIHBhaXJSZWNvcmQuSG9zdFByaXZhdGVLZXksIHBhaXJSZWNvcmQuSG9zdENlcnRpZmljYXRlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHVzYm11eC5jbG9zZSgpO1xuICAgIHRocm93IGU7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25uZWN0cyB0byBhIGdpdmVuIHBvcnRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCBEZXZpY2UgVURJRFxuICogQHBhcmFtIHtudW1iZXJ9IHBvcnQgUG9ydCB0byBjb25uZWN0XG4gKiBAcGFyYW0gez9uZXQuU29ja2V0fSBzb2NrZXQgdGhlIHNvY2tldCBvZiB1c2JtdXhkLiBJdCB3aWxsIGRlZmF1bHQgdG8gL3Zhci9ydW4vdXNibXV4ZCBpZiBpdCBpcyBub3QgcGFzc2VkXG4gKiBAcmV0dXJucyB7bmV0LlNvY2tldHxPYmplY3R9IFRoZSBzb2NrZXQgb3IgdGhlIG9iamVjdCByZXR1cm5lZCBpbiB0aGUgY2FsbGJhY2sgaWYgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGV4aXN0c1xuICovXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0UG9ydCAodWRpZCwgcG9ydCwgc29ja2V0ID0gbnVsbCkge1xuICBjb25zdCB1c2JtdXggPSBuZXcgVXNibXV4KHNvY2tldCB8fCBhd2FpdCBnZXREZWZhdWx0U29ja2V0KCkpO1xuICB0cnkge1xuICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IHVzYm11eC5maW5kRGV2aWNlKHVkaWQpO1xuICAgIGlmICghZGV2aWNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIHRoZSBleHBlY3RlZCBkZXZpY2UgJHt1ZGlkfWApO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdXNibXV4LmNvbm5lY3QoZGV2aWNlLlByb3BlcnRpZXMuRGV2aWNlSUQsIHBvcnQsIHVuZGVmaW5lZCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1c2JtdXguY2xvc2UoKTtcbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbmV4cG9ydCB7XG4gIGdldENvbm5lY3RlZERldmljZXMsIGdldE9TVmVyc2lvbiwgZ2V0RGV2aWNlTmFtZSwgZ2V0RGV2aWNlVGltZSxcbiAgc3RhcnRMb2NrZG93blNlc3Npb24sIGNvbm5lY3RQb3J0LCBjb25uZWN0UG9ydFNTTCxcbn07XG4iXSwiZmlsZSI6ImxpYi91dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
164
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlsaXRpZXMuanMiXSwibmFtZXMiOlsiTE9DS0RPV05fUkVRVUVTVCIsIkRFVklDRV9USU1FIiwiS2V5IiwiREVWSUNFX1VUQ19PRkZTRVQiLCJERVZJQ0VfVElNRV9aT05FIiwiREVWSUNFX1ZFUlNJT04iLCJERVZJQ0VfTkFNRSIsImdldENvbm5lY3RlZERldmljZXMiLCJzb2NrZXQiLCJ1c2JtdXgiLCJVc2JtdXgiLCJlIiwibG9nIiwiZGVidWciLCJkZXZpY2VzIiwibGlzdERldmljZXMiLCJ1ZGlkcyIsIm1hcCIsImRldmljZSIsIlByb3BlcnRpZXMiLCJTZXJpYWxOdW1iZXIiLCJfIiwidW5pcSIsImNsb3NlIiwiZ2V0T1NWZXJzaW9uIiwidWRpZCIsImxvY2tkb3duIiwiY29ubmVjdExvY2tkb3duIiwiZ2V0VmFsdWUiLCJnZXREZXZpY2VOYW1lIiwiZ2V0RGV2aWNlVGltZSIsInN0YXJ0TG9ja2Rvd25TZXNzaW9uIiwidGltZXN0YW1wIiwidXRjT2Zmc2V0IiwidGltZVpvbmUiLCJwYWlyUmVjb3JkIiwicmVhZFBhaXJSZWNvcmQiLCJFcnJvciIsInN0YXJ0U2Vzc2lvbiIsIkhvc3RJRCIsIlN5c3RlbUJVSUQiLCJlbmFibGVTZXNzaW9uU1NMIiwiSG9zdFByaXZhdGVLZXkiLCJIb3N0Q2VydGlmaWNhdGUiLCJjb25uZWN0UG9ydFNTTCIsInBvcnQiLCJmaW5kRGV2aWNlIiwiY29ubmVjdCIsIkRldmljZUlEIiwidW5kZWZpbmVkIiwiY29ubmVjdFBvcnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxnQkFBZ0IsR0FBRztBQUN2QkMsRUFBQUEsV0FBVyxFQUFFO0FBQUVDLElBQUFBLEdBQUcsRUFBRTtBQUFQLEdBRFU7QUFFdkJDLEVBQUFBLGlCQUFpQixFQUFFO0FBQUVELElBQUFBLEdBQUcsRUFBRTtBQUFQLEdBRkk7QUFHdkJFLEVBQUFBLGdCQUFnQixF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ZXREZWZhdWx0U29ja2V0IH0gZnJvbSAnLi91c2JtdXgnO1xuaW1wb3J0IHsgdXBncmFkZVRvU1NMIH0gZnJvbSAnLi9zc2wtaGVscGVyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3NhbWRtYXJzaGFsbC9pT1MtSW50ZXJuYWxzL2Jsb2IvbWFzdGVyL2xvY2tib3QvbG9ja2JvdC9sb2NrZG93bl9rZXlzLmhcbmNvbnN0IExPQ0tET1dOX1JFUVVFU1QgPSB7XG4gIERFVklDRV9USU1FOiB7IEtleTogJ1RpbWVJbnRlcnZhbFNpbmNlMTk3MCcgfSxcbiAgREVWSUNFX1VUQ19PRkZTRVQ6IHsgS2V5OiAnVGltZVpvbmVPZmZzZXRGcm9tVVRDJyB9LFxuICBERVZJQ0VfVElNRV9aT05FOiB7IEtleTogJ1RpbWVab25lJyB9LFxuICBERVZJQ0VfVkVSU0lPTjogeyBLZXk6ICdQcm9kdWN0VmVyc2lvbicgfSxcbiAgREVWSUNFX05BTUU6IHsgS2V5OiAnRGV2aWNlTmFtZScgfVxufTtcblxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgdWRpZHMgb2YgdGhlIGNvbm5lY3RlZCBkZXZpY2VzXG4gKlxuICogQHBhcmFtIHs/bmV0LlNvY2tldH0gc29ja2V0IHRoZSBzb2NrZXQgb2YgdXNibXV4ZC4gSXQgd2lsbCBkZWZhdWx0IHRvIC92YXIvcnVuL3VzYm11eGQgaWYgaXQgaXMgbm90IHBhc3NlZFxuICogQHJldHVybnMge0FycmF5LjxzdHJpbmc+fSBUaGUgbGlzdCBvZiBkZXZpY2Ugc2VyaWFsIG51bWJlcnMgKHVkaWQpIG9yXG4gKiBhbiBlbXB0eSBsaXN0IGlmIG5vIGRldmljZXMgYXJlIGNvbm5lY3RlZFxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRDb25uZWN0ZWREZXZpY2VzIChzb2NrZXQgPSBudWxsKSB7XG4gIGxldCB1c2JtdXg7XG4gIHRyeSB7XG4gICAgdXNibXV4ID0gbmV3IFVzYm11eChzb2NrZXQgfHwgYXdhaXQgZ2V0RGVmYXVsdFNvY2tldCgpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy5kZWJ1ZyhlKTtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBkZXZpY2VzID0gYXdhaXQgdXNibXV4Lmxpc3REZXZpY2VzKCk7XG4gICAgY29uc3QgdWRpZHMgPSBkZXZpY2VzLm1hcCgoZGV2aWNlKSA9PiBkZXZpY2UuUHJvcGVydGllcy5TZXJpYWxOdW1iZXIpO1xuICAgIHJldHVybiBfLnVuaXEodWRpZHMpO1xuICB9IGZpbmFsbHkge1xuICAgIHVzYm11eC5jbG9zZSgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBvcyB2ZXJzaW9uIG9mIHRoZSBkZXZpY2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCBEZXZpY2UgVURJRFxuICogQHBhcmFtIHs/bmV0LlNvY2tldH0gc29ja2V0IHRoZSBzb2NrZXQgb2YgdXNibXV4ZC4gSXQgd2lsbCBkZWZhdWx0IHRvIC92YXIvcnVuL3VzYm11eGQgaWYgaXQgaXMgbm90IHBhc3NlZFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0T1NWZXJzaW9uICh1ZGlkLCBzb2NrZXQgPSBudWxsKSB7XG4gIGNvbnN0IHVzYm11eCA9IG5ldyBVc2JtdXgoc29ja2V0IHx8IGF3YWl0IGdldERlZmF1bHRTb2NrZXQoKSk7XG4gIHRyeSB7XG4gICAgLy8gbG9ja2Rvd24gZG9lc24ndCBuZWVkIHRvIGJlIGNsb3NlZCBzaW5jZSBpdCB1c2VzIHRoZSBzYW1lIHNvY2tldCB1c2JtdXggdXNlc1xuICAgIGNvbnN0IGxvY2tkb3duID0gYXdhaXQgdXNibXV4LmNvbm5lY3RMb2NrZG93bih1ZGlkKTtcbiAgICByZXR1cm4gYXdhaXQgbG9ja2Rvd24uZ2V0VmFsdWUoTE9DS0RPV05fUkVRVUVTVC5ERVZJQ0VfVkVSU0lPTik7XG4gIH0gZmluYWxseSB7XG4gICAgdXNibXV4LmNsb3NlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlIGRldmljZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1ZGlkIERldmljZSBVRElEXG4gKiBAcGFyYW0gez9uZXQuU29ja2V0fSBzb2NrZXQgdGhlIHNvY2tldCBvZiB1c2JtdXhkLiBJdCB3aWxsIGRlZmF1bHQgdG8gL3Zhci9ydW4vdXNibXV4ZCBpZiBpdCBpcyBub3QgcGFzc2VkXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5hc3luYyBmdW5jdGlvbiBnZXREZXZpY2VOYW1lICh1ZGlkLCBzb2NrZXQgPSBudWxsKSB7XG4gIGNvbnN0IHVzYm11eCA9IG5ldyBVc2JtdXgoc29ja2V0IHx8IGF3YWl0IGdldERlZmF1bHRTb2NrZXQoKSk7XG4gIHRyeSB7XG4gICAgLy8gbG9ja2Rvd24gZG9lc24ndCBuZWVkIHRvIGJlIGNsb3NlZCBzaW5jZSBpdCB1c2VzIHRoZSBzYW1lIHNvY2tldCB1c2JtdXggdXNlc1xuICAgIGNvbnN0IGxvY2tkb3duID0gYXdhaXQgdXNibXV4LmNvbm5lY3RMb2NrZG93bih1ZGlkKTtcbiAgICByZXR1cm4gYXdhaXQgbG9ja2Rvd24uZ2V0VmFsdWUoTE9DS0RPV05fUkVRVUVTVC5ERVZJQ0VfTkFNRSk7XG4gIH0gZmluYWxseSB7XG4gICAgdXNibXV4LmNsb3NlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEZXZpY2VUaW1lXG4gKlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWVzdGFtcCBVbml4IHRpbWVzdGFtcCBpbiBzZWNvbmRzIHNpbmNlIDE5NzAtMDEtMDFUMDA6MDA6MDBaXG4gKiBAcHJvcGVydHkge251bWJlcn0gdXRjT2Zmc2V0IFRoZSBkaWZmZXJlbmNlIGluIG1pbnV0ZXMgYmV0d2VlbiB0aGUgVVRDIHRpbWUgYW5kIHRoZSBsb2NhbCBkZXZpY2UgdGltZS5cbiAqIENhbiBiZSBuZWdhdGl2ZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0aW1lWm9uZSBUaW1lIHpvbmUgbmFtZSBjb25maWd1cmVkIG9uIHRoZSBkZXZpY2UsIGZvciBleGFtcGxlIGBFdXJvcGUvUGFyaXNgXG4gKi9cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGxvY2FsIHRpbWUgZnJvbSB0aGUgZGV2aWNlIHVuZGVyIHRlc3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCBEZXZpY2UgVURJRFxuICogQHBhcmFtIHs/bmV0LlNvY2tldH0gc29ja2V0IHRoZSBzb2NrZXQgb2YgdXNibXV4ZC4gSXQgd2lsbCBkZWZhdWx0IHRvIC92YXIvcnVuL3VzYm11eGQgaWYgaXQgaXMgbm90IHBhc3NlZFxuICogQHJldHVybnMge0RldmljZVRpbWV9XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldERldmljZVRpbWUgKHVkaWQsIHNvY2tldCA9IG51bGwpIHtcbiAgY29uc3QgbG9ja2Rvd24gPSBhd2FpdCBzdGFydExvY2tkb3duU2Vzc2lvbih1ZGlkLCBzb2NrZXQpO1xuICB0cnkge1xuICAgIHJldHVybiB7XG4gICAgICB0aW1lc3RhbXA6IGF3YWl0IGxvY2tkb3duLmdldFZhbHVlKExPQ0tET1dOX1JFUVVFU1QuREVWSUNFX1RJTUUpLFxuICAgICAgLy8gQXBwbGUgcmV0dXJucyB1dGNPZmZzZXQgaW4gc2Vjb25kcyB3aGljaCBkb2VzbnQgY29tcGx5IHdpdGggdGhlIGdlbmVyYWwgc3RhbmRhcmRcbiAgICAgIHV0Y09mZnNldDogYXdhaXQgbG9ja2Rvd24uZ2V0VmFsdWUoTE9DS0RPV05fUkVRVUVTVC5ERVZJQ0VfVVRDX09GRlNFVCkgLyA2MCxcbiAgICAgIHRpbWVab25lOiBhd2FpdCBsb2NrZG93bi5nZXRWYWx1ZShMT0NLRE9XTl9SRVFVRVNULkRFVklDRV9USU1FX1pPTkUpLFxuICAgIH07XG4gIH0gZmluYWxseSB7XG4gICAgbG9ja2Rvd24uY2xvc2UoKTtcbiAgfVxufVxuXG4vKipcbiAqIFN0YXJ0cyBhIGxvY2tkb3duIHNlc3Npb24gb24gdGhlIGdpdmVuIGRldmljZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1ZGlkIERldmljZSBVRElEXG4gKiBAcGFyYW0gez9uZXQuU29ja2V0fSBzb2NrZXQgdGhlIHNvY2tldCBvZiB1c2JtdXhkLiBJdCB3aWxsIGRlZmF1bHQgdG8gL3Zhci9ydW4vdXNibXV4ZCBpZiBpdCBpcyBub3QgcGFzc2VkXG4gKiBAcmV0dXJucyB7TG9ja2Rvd259XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0TG9ja2Rvd25TZXNzaW9uICh1ZGlkLCBzb2NrZXQgPSBudWxsKSB7XG4gIGNvbnN0IHVzYm11eCA9IG5ldyBVc2JtdXgoc29ja2V0IHx8IGF3YWl0IGdldERlZmF1bHRTb2NrZXQoKSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFpclJlY29yZCA9IGF3YWl0IHVzYm11eC5yZWFkUGFpclJlY29yZCh1ZGlkKTtcbiAgICBpZiAoIXBhaXJSZWNvcmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgYSBwYWlyIHJlY29yZCBmb3IgZGV2aWNlICcke3VkaWR9Jy4gUGxlYXNlIGZpcnN0IHBhaXIgd2l0aCB0aGUgZGV2aWNlYCk7XG4gICAgfVxuICAgIC8vIGxvY2tkb3duIGRvZXNuJ3QgbmVlZCB0byBiZSBjbG9zZWQgc2luY2UgaXQgdXNlcyB0aGUgc2FtZSBzb2NrZXQgdXNibXV4IHVzZXNcbiAgICBjb25zdCBsb2NrZG93biA9IGF3YWl0IHVzYm11eC5jb25uZWN0TG9ja2Rvd24odWRpZCk7XG4gICAgYXdhaXQgbG9ja2Rvd24uc3RhcnRTZXNzaW9uKHBhaXJSZWNvcmQuSG9zdElELCBwYWlyUmVjb3JkLlN5c3RlbUJVSUQpO1xuICAgIGxvY2tkb3duLmVuYWJsZVNlc3Npb25TU0wocGFpclJlY29yZC5Ib3N0UHJpdmF0ZUtleSwgcGFpclJlY29yZC5Ib3N0Q2VydGlmaWNhdGUpO1xuICAgIHJldHVybiBsb2NrZG93bjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHVzYm11eC5jbG9zZSgpO1xuICAgIHRocm93IGU7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25uZWN0cyB0byBhIGdpdmVuIHBvcnQgd2l0aCB0aGUgY2VydHMgYW5kIGtleXMgdXNlZCBpbiB0aGUgcGFpcmluZyBwcm9jZXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVkaWQgRGV2aWNlIFVESURcbiAqIEBwYXJhbSB7bnVtYmVyfSBwb3J0IFBvcnQgdG8gY29ubmVjdFxuICogQHBhcmFtIHs/bmV0LlNvY2tldH0gc29ja2V0IHRoZSBzb2NrZXQgb2YgdXNibXV4ZC4gSXQgd2lsbCBkZWZhdWx0IHRvIC92YXIvcnVuL3VzYm11eGQgaWYgaXQgaXMgbm90IHBhc3NlZFxuICogQHJldHVybnMge3Rscy5UTFNTb2NrZXR8T2JqZWN0fSBUaGUgc29ja2V0IG9yIHRoZSBvYmplY3QgcmV0dXJuZWQgaW4gdGhlIGNhbGxiYWNrIGlmIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBleGlzdHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gY29ubmVjdFBvcnRTU0wgKHVkaWQsIHBvcnQsIHNvY2tldCA9IG51bGwpIHtcbiAgY29uc3QgdXNibXV4ID0gbmV3IFVzYm11eChzb2NrZXQgfHwgYXdhaXQgZ2V0RGVmYXVsdFNvY2tldCgpKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCB1c2JtdXguZmluZERldmljZSh1ZGlkKTtcbiAgICBpZiAoIWRldmljZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCB0aGUgZXhwZWN0ZWQgZGV2aWNlICcke3VkaWR9J2ApO1xuICAgIH1cbiAgICBjb25zdCBwYWlyUmVjb3JkID0gYXdhaXQgdXNibXV4LnJlYWRQYWlyUmVjb3JkKHVkaWQpO1xuICAgIGlmICghcGFpclJlY29yZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBhIHBhaXIgcmVjb3JkIGZvciBkZXZpY2UgJyR7dWRpZH0nLiBQbGVhc2UgZmlyc3QgcGFpciB3aXRoIHRoZSBkZXZpY2VgKTtcbiAgICB9XG4gICAgY29uc3Qgc29ja2V0ID0gYXdhaXQgdXNibXV4LmNvbm5lY3QoZGV2aWNlLlByb3BlcnRpZXMuRGV2aWNlSUQsIHBvcnQsIHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuIHVwZ3JhZGVUb1NTTChzb2NrZXQsIHBhaXJSZWNvcmQuSG9zdFByaXZhdGVLZXksIHBhaXJSZWNvcmQuSG9zdENlcnRpZmljYXRlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHVzYm11eC5jbG9zZSgpO1xuICAgIHRocm93IGU7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25uZWN0cyB0byBhIGdpdmVuIHBvcnRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCBEZXZpY2UgVURJRFxuICogQHBhcmFtIHtudW1iZXJ9IHBvcnQgUG9ydCB0byBjb25uZWN0XG4gKiBAcGFyYW0gez9uZXQuU29ja2V0fSBzb2NrZXQgdGhlIHNvY2tldCBvZiB1c2JtdXhkLiBJdCB3aWxsIGRlZmF1bHQgdG8gL3Zhci9ydW4vdXNibXV4ZCBpZiBpdCBpcyBub3QgcGFzc2VkXG4gKiBAcmV0dXJucyB7bmV0LlNvY2tldHxPYmplY3R9IFRoZSBzb2NrZXQgb3IgdGhlIG9iamVjdCByZXR1cm5lZCBpbiB0aGUgY2FsbGJhY2sgaWYgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGV4aXN0c1xuICovXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0UG9ydCAodWRpZCwgcG9ydCwgc29ja2V0ID0gbnVsbCkge1xuICBjb25zdCB1c2JtdXggPSBuZXcgVXNibXV4KHNvY2tldCB8fCBhd2FpdCBnZXREZWZhdWx0U29ja2V0KCkpO1xuICB0cnkge1xuICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IHVzYm11eC5maW5kRGV2aWNlKHVkaWQpO1xuICAgIGlmICghZGV2aWNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIHRoZSBleHBlY3RlZCBkZXZpY2UgJHt1ZGlkfWApO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdXNibXV4LmNvbm5lY3QoZGV2aWNlLlByb3BlcnRpZXMuRGV2aWNlSUQsIHBvcnQsIHVuZGVmaW5lZCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1c2JtdXguY2xvc2UoKTtcbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbmV4cG9ydCB7XG4gIGdldENvbm5lY3RlZERldmljZXMsIGdldE9TVmVyc2lvbiwgZ2V0RGV2aWNlTmFtZSwgZ2V0RGV2aWNlVGltZSxcbiAgc3RhcnRMb2NrZG93blNlc3Npb24sIGNvbm5lY3RQb3J0LCBjb25uZWN0UG9ydFNTTCxcbn07XG4iXSwiZmlsZSI6ImxpYi91dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
@@ -44,7 +44,8 @@ class WebInspectorService extends _baseService.BaseServiceSocket {
|
|
|
44
44
|
socketChunkSize,
|
|
45
45
|
verbose = false,
|
|
46
46
|
verboseHexDump = false,
|
|
47
|
-
socketClient
|
|
47
|
+
socketClient,
|
|
48
|
+
maxFrameLength = MAX_FRAME_SIZE
|
|
48
49
|
} = opts;
|
|
49
50
|
super(socketClient);
|
|
50
51
|
|
|
@@ -61,19 +62,19 @@ class WebInspectorService extends _baseService.BaseServiceSocket {
|
|
|
61
62
|
this._majorOsVersion = majorOsVersion;
|
|
62
63
|
|
|
63
64
|
if (!isSimulator && majorOsVersion < PARTIAL_MESSAGE_SUPPORT_DEPRECATION_VERSION) {
|
|
64
|
-
this._initializePartialMessageSupport(verboseHexDump);
|
|
65
|
+
this._initializePartialMessageSupport(verboseHexDump, maxFrameLength);
|
|
65
66
|
} else {
|
|
66
|
-
this._initializeFullMessageSupport(verboseHexDump);
|
|
67
|
+
this._initializeFullMessageSupport(verboseHexDump, maxFrameLength);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
_initializeFullMessageSupport(verbose) {
|
|
71
|
+
_initializeFullMessageSupport(verbose, maxFrameLength) {
|
|
71
72
|
this._decoder = new _plistServiceDecoder.default();
|
|
72
73
|
|
|
73
74
|
this._socketClient.pipe(new _streamLogger.default(_streamLogger.default.RECEIVE, verbose)).pipe(this._splitter = new _lengthBasedSplitter.default({
|
|
74
75
|
readableStream: this._socketClient,
|
|
75
76
|
littleEndian: false,
|
|
76
|
-
maxFrameLength
|
|
77
|
+
maxFrameLength,
|
|
77
78
|
lengthFieldOffset: 0,
|
|
78
79
|
lengthFieldLength: 4,
|
|
79
80
|
lengthAdjustment: 4
|
|
@@ -84,13 +85,13 @@ class WebInspectorService extends _baseService.BaseServiceSocket {
|
|
|
84
85
|
this._encoder.pipe(new _streamLogger.default(_streamLogger.default.SEND, verbose)).pipe(this._socketClient);
|
|
85
86
|
}
|
|
86
87
|
|
|
87
|
-
_initializePartialMessageSupport(verbose) {
|
|
88
|
+
_initializePartialMessageSupport(verbose, maxFrameLength) {
|
|
88
89
|
this._decoder = new _webinspectorDecoder.default(_constants.MB);
|
|
89
90
|
|
|
90
91
|
this._socketClient.pipe(new _streamLogger.default(_streamLogger.default.RECEIVE, verbose)).pipe(this._splitter = new _lengthBasedSplitter.default({
|
|
91
92
|
readableStream: this._socketClient,
|
|
92
93
|
littleEndian: false,
|
|
93
|
-
maxFrameLength
|
|
94
|
+
maxFrameLength,
|
|
94
95
|
lengthFieldOffset: 0,
|
|
95
96
|
lengthFieldLength: 4,
|
|
96
97
|
lengthAdjustment: 4
|
|
@@ -138,4 +139,4 @@ var _default = WebInspectorService;
|
|
|
138
139
|
exports.default = _default;require('source-map-support').install();
|
|
139
140
|
|
|
140
141
|
|
|
141
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi93ZWJpbnNwZWN0b3IvaW5kZXguanMiXSwibmFtZXMiOlsiV0VCX0lOU1BFQ1RPUl9TRVJWSUNFX05BTUUiLCJNQVhfRlJBTUVfU0laRSIsIk1CIiwiUEFSVElBTF9NRVNTQUdFX1NVUFBPUlRfREVQUkVDQVRJT05fVkVSU0lPTiIsIldlYkluc3BlY3RvclNlcnZpY2UiLCJCYXNlU2VydmljZVNvY2tldCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIm1ham9yT3NWZXJzaW9uIiwiaXNTaW11bGF0b3IiLCJzb2NrZXRDaHVua1NpemUiLCJ2ZXJib3NlIiwidmVyYm9zZUhleER1bXAiLCJzb2NrZXRDbGllbnQiLCJfIiwiaXNGdW5jdGlvbiIsInNldE1heFNlbmRGcmFnbWVudCIsImlzTmlsIiwibG9nIiwiZGVidWciLCJ3YXJuIiwiX3ZlcmJvc2UiLCJfaXNTaW11bGF0b3IiLCJfbWFqb3JPc1ZlcnNpb24iLCJfaW5pdGlhbGl6ZVBhcnRpYWxNZXNzYWdlU3VwcG9ydCIsIl9pbml0aWFsaXplRnVsbE1lc3NhZ2VTdXBwb3J0IiwiX2RlY29kZXIiLCJQbGlzdFNlcnZpY2VEZWNvZGVyIiwiX3NvY2tldENsaWVudCIsInBpcGUiLCJTdHJlYW1Mb2dnZXIiLCJSRUNFSVZFIiwiX3NwbGl0dGVyIiwiTGVuZ3RoQmFzZWRTcGxpdHRlciIsInJlYWRhYmxlU3RyZWFtIiwibGl0dGxlRW5kaWFuIiwibWF4RnJhbWVMZW5ndGgiLCJsZW5ndGhGaWVsZE9mZnNldCIsImxlbmd0aEZpZWxkTGVuZ3RoIiwibGVuZ3RoQWRqdXN0bWVudCIsIl9lbmNvZGVyIiwiUGxpc3RTZXJ2aWNlRW5jb2RlciIsIlNFTkQiLCJXZWJJbnNwZWN0b3JEZWNvZGVyIiwiV2ViSW5zcGVjdG9yRW5jb2RlciIsInNlbmRNZXNzYWdlIiwicnBjT2JqZWN0IiwiRXJyb3IiLCJ1dGlsIiwianNvblN0cmluZ2lmeSIsIndyaXRlIiwibGlzdGVuTWVzc2FnZSIsIm9uRGF0YSIsIm9uIiwiZGF0YSJd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LE1BQWpCLEVBQTBCQyxJQUFELElBQVU7QUFDakMsVUFBSSxLQUFLakMsUUFBVCxFQUFtQjtBQUNqQkgsd0JBQUlDLEtBQUosQ0FBVSxzQ0FBVjs7QUFDQUQsd0JBQUlDLEtBQUosQ0FBVTZCLG9CQUFLQyxhQUFMLENBQW1CSyxJQUFuQixDQUFWO0FBQ0Q7O0FBQ0RGLE1BQUFBLE1BQU0sQ0FBQ0UsSUFBRCxDQUFOO0FBQ0QsS0FORDtBQU9EOztBQTNJaUQ7OztlQStJckNsRCxtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXZWJJbnNwZWN0b3JEZWNvZGVyIGZyb20gJy4vdHJhbnNmb3JtZXIvd2ViaW5zcGVjdG9yLWRlY29kZXInO1xuaW1wb3J0IFdlYkluc3BlY3RvckVuY29kZXIgZnJvbSAnLi90cmFuc2Zvcm1lci93ZWJpbnNwZWN0b3ItZW5jb2Rlcic7XG5pbXBvcnQgUGxpc3RTZXJ2aWNlRGVjb2RlciBmcm9tICcuLi9wbGlzdC1zZXJ2aWNlL3RyYW5zZm9ybWVyL3BsaXN0LXNlcnZpY2UtZGVjb2Rlcic7XG5pbXBvcnQgUGxpc3RTZXJ2aWNlRW5jb2RlciBmcm9tICcuLi9wbGlzdC1zZXJ2aWNlL3RyYW5zZm9ybWVyL3BsaXN0LXNlcnZpY2UtZW5jb2Rlcic7XG5pbXBvcnQgTGVuZ3RoQmFzZWRTcGxpdHRlciBmcm9tICcuLi91dGlsL3RyYW5zZm9ybWVyL2xlbmd0aC1iYXNlZC1zcGxpdHRlcic7XG5pbXBvcnQgU3RyZWFtTG9nZ2VyIGZyb20gJy4uL3V0aWwvdHJhbnNmb3JtZXIvc3RyZWFtLWxvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCB7IE1CIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlU29ja2V0IH0gZnJvbSAnLi4vYmFzZS1zZXJ2aWNlJztcblxuXG5jb25zdCBXRUJfSU5TUEVDVE9SX1NFUlZJQ0VfTkFNRSA9ICdjb20uYXBwbGUud2ViaW5zcGVjdG9yJztcbmNvbnN0IE1BWF9GUkFNRV9TSVpFID0gMjAgKiBNQjtcblxuY29uc3QgUEFSVElBTF9NRVNTQUdFX1NVUFBPUlRfREVQUkVDQVRJT05fVkVSU0lPTiA9IDExO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFdlYkluc3BlY3RvclNlcnZpY2VPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHtudW1iZXJ9IG1ham9yT3NWZXJzaW9uIFRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoZSBvcyB2ZXJzaW9uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzU2ltdWxhdG9yIFdoZXRoZXIgdGhlIGRldmljZSBpcyBhIHNpbXVsYXRvclxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBzb2NrZXRDaHVua1NpemUgU2l6ZSwgaW4gYnl0ZXMgb2YgdGhlIGNodW5rcyB0byBzZW5kIHRvXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsIGRldmljZSAob25seSBpT1MgMTErKS4gRGVmYXVsdHMgdG9cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Mzg0IGJ5dGVzICh0aGUgVExTU29ja2V0IG1heCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZlcmJvc2UgVHVybiBvbiBsb2dnaW5nIG9mIGVhY2ggbWVzc2FnZSBzZW50IG9yIHJlY2VpdmVkLlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIGZhbHNlXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZlcmJvc2VIZXhEdW1wIFR1cm4gb24gbG9nZ2luZyBvZiBfYWxsXyBjb21tdW5pY2F0aW9uIGFzXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleCBkdW1wLiBEZWZhdWx0cyB0byBmYWxzZVxuICogQHByb3BlcnR5IHsqfSBzb2NrZXRDbGllbnQgVGhlIHNvY2tldCBjbGllbnQgd2hlcmUgdGhlIGNvbW11bmljYXRpb24gd2lsbCBoYXBwZW5cbiAqL1xuXG5jbGFzcyBXZWJJbnNwZWN0b3JTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2VTb2NrZXQge1xuICAvKipcbiAgICogVGhlIG1haW4gc2VydmljZSBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSB3ZWJpbnNwZWN0b3JkXG4gICAqXG4gICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yU2VydmljZU9wdGlvbnN9XG4gICAqL1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgY29uc3Qge1xuICAgICAgbWFqb3JPc1ZlcnNpb24sXG4gICAgICBpc1NpbXVsYXRvciA9IGZhbHNlLFxuICAgICAgc29ja2V0Q2h1bmtTaXplLFxuICAgICAgdmVyYm9zZSA9IGZhbHNlLFxuICAgICAgdmVyYm9zZUhleER1bXAgPSBmYWxzZSxcbiAgICAgIHNvY2tldENsaWVudCxcbiAgICB9ID0gb3B0cztcblxuICAgIHN1cGVyKHNvY2tldENsaWVudCk7XG5cbiAgICAvLyBzZXQgdGhlIGxhcmdlc3QgZnJhZ21lbnQgc2l6ZSBmb3IgdGhlIHNvY2tldCwgaWYgdGhlIG9wdGlvbiBpcyB0aGVyZVxuICAgIGlmIChfLmlzRnVuY3Rpb24oc29ja2V0Q2xpZW50LnNldE1heFNlbmRGcmFnbWVudCkgJiYgIV8uaXNOaWwoc29ja2V0Q2h1bmtTaXplKSAmJiBzb2NrZXRDaHVua1NpemUgPiAwKSB7XG4gICAgICBpZiAoc29ja2V0Q2xpZW50LnNldE1heFNlbmRGcmFnbWVudChzb2NrZXRDaHVua1NpemUpKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgTWF4aW11bSBUTFMgZnJhZ21lbnQgc2l6ZSBzZXQgdG8gJyR7c29ja2V0Q2h1bmtTaXplfSdgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFueXRoaW5nIG92ZXIgdGhlIF9hY3R1YWxfIG1heGltdW0gd2lsbCBmYWlsLCBhbmQgdGhpbmdzIHdpbGwgcmVtYWluIHRoZSBzYW1lXG4gICAgICAgIGxvZy53YXJuKGBVbmFibGUgdG8gc2V0IFRMUyBmcmFnbWVudCBzaXplIHRvICcke3NvY2tldENodW5rU2l6ZX0nYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fdmVyYm9zZSA9IHZlcmJvc2U7XG4gICAgdGhpcy5faXNTaW11bGF0b3IgPSBpc1NpbXVsYXRvcjtcbiAgICB0aGlzLl9tYWpvck9zVmVyc2lvbiA9IG1ham9yT3NWZXJzaW9uO1xuXG4gICAgaWYgKCFpc1NpbXVsYXRvciAmJiBtYWpvck9zVmVyc2lvbiA8IFBBUlRJQUxfTUVTU0FHRV9TVVBQT1JUX0RFUFJFQ0FUSU9OX1ZFUlNJT04pIHtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVQYXJ0aWFsTWVzc2FnZVN1cHBvcnQodmVyYm9zZUhleER1bXApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbml0aWFsaXplRnVsbE1lc3NhZ2VTdXBwb3J0KHZlcmJvc2VIZXhEdW1wKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50aWFsaXplcyB0aGUgZGF0YSBmbG93IGZvciBpT1MgMTErLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZlcmJvc2UgLSB3aGV0aGVyIHRvIHByaW50IG91dCB0aGUgaGV4IGR1bXAgZm9yIGNvbW11bmljYXRpb25cbiAgICovXG4gIF9pbml0aWFsaXplRnVsbE1lc3NhZ2VTdXBwb3J0ICh2ZXJib3NlKSB7XG4gICAgdGhpcy5fZGVjb2RlciA9IG5ldyBQbGlzdFNlcnZpY2VEZWNvZGVyKCk7XG4gICAgdGhpcy5fc29ja2V0Q2xpZW50XG4gICAgICAvLyBsb2cgZmlyc3QsIGluIGNhc2UgdGhlcmUgaXMgYSBwcm9ibGVtIGluIHByb2Nlc3NpbmdcbiAgICAgIC5waXBlKG5ldyBTdHJlYW1Mb2dnZXIoU3RyZWFtTG9nZ2VyLlJFQ0VJVkUsIHZlcmJvc2UpKVxuICAgICAgLnBpcGUodGhpcy5fc3BsaXR0ZXIgPSBuZXcgTGVuZ3RoQmFzZWRTcGxpdHRlcih7XG4gICAgICAgIHJlYWRhYmxlU3RyZWFtOiB0aGlzLl9zb2NrZXRDbGllbnQsXG4gICAgICAgIGxpdHRsZUVuZGlhbjogZmFsc2UsXG4gICAgICAgIG1heEZyYW1lTGVuZ3RoOiBNQVhfRlJBTUVfU0laRSxcbiAgICAgICAgbGVuZ3RoRmllbGRPZmZzZXQ6IDAsXG4gICAgICAgIGxlbmd0aEZpZWxkTGVuZ3RoOiA0LFxuICAgICAgICBsZW5ndGhBZGp1c3RtZW50OiA0LFxuICAgICAgfSkpXG4gICAgICAucGlwZSh0aGlzLl9kZWNvZGVyKTtcblxuICAgIHRoaXMuX2VuY29kZXIgPSBuZXcgUGxpc3RTZXJ2aWNlRW5jb2RlcigpO1xuICAgIHRoaXMuX2VuY29kZXJcbiAgICAgIC5waXBlKG5ldyBTdHJlYW1Mb2dnZXIoU3RyZWFtTG9nZ2VyLlNFTkQsIHZlcmJvc2UpKVxuICAgICAgLnBpcGUodGhpcy5fc29ja2V0Q2xpZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRpYWxpemVzIHRoZSBkYXRhIGZsb3cgZm9yIGlPUyA8IDExLCB3aGVyZSBkYXRhIGlzIHNlcGFyYXRlZCBpbnRvIHBhcnRpYWxcbiAgICogbWVzc2FnZXMgYmVmb3JlIHNlbmRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmVyYm9zZSAtIHdoZXRoZXIgdG8gcHJpbnQgb3V0IHRoZSBoZXggZHVtcCBmb3IgY29tbXVuaWNhdGlvblxuICAgKi9cbiAgX2luaXRpYWxpemVQYXJ0aWFsTWVzc2FnZVN1cHBvcnQgKHZlcmJvc2UpIHtcbiAgICAvLyAxTUIgYXMgYnVmZmVyIGZvciBidWxkaW5nIHdlYmluc3BlY3RvciBmdWxsIG1lc3NhZ2VzLiBXZSBjYW4gaW5jcmVhc2UgdGhlIHZhbHVlIGlmIG1vcmUgYnVmZmVyIGlzIG5lZWRlZFxuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgV2ViSW5zcGVjdG9yRGVjb2RlcihNQik7XG4gICAgdGhpcy5fc29ja2V0Q2xpZW50XG4gICAgICAvLyBsb2cgZmlyc3QsIGluIGNhc2UgdGhlcmUgaXMgYSBwcm9ibGVtIGluIHByb2Nlc3NpbmdcbiAgICAgIC5waXBlKG5ldyBTdHJlYW1Mb2dnZXIoU3RyZWFtTG9nZ2VyLlJFQ0VJVkUsIHZlcmJvc2UpKVxuICAgICAgLnBpcGUodGhpcy5fc3BsaXR0ZXIgPSBuZXcgTGVuZ3RoQmFzZWRTcGxpdHRlcih7XG4gICAgICAgIHJlYWRhYmxlU3RyZWFtOiB0aGlzLl9zb2NrZXRDbGllbnQsXG4gICAgICAgIGxpdHRsZUVuZGlhbjogZmFsc2UsXG4gICAgICAgIG1heEZyYW1lTGVuZ3RoOiBNQVhfRlJBTUVfU0laRSxcbiAgICAgICAgbGVuZ3RoRmllbGRPZmZzZXQ6IDAsXG4gICAgICAgIGxlbmd0aEZpZWxkTGVuZ3RoOiA0LFxuICAgICAgICBsZW5ndGhBZGp1c3RtZW50OiA0LFxuICAgICAgfSkpXG4gICAgICAucGlwZShuZXcgUGxpc3RTZXJ2aWNlRGVjb2RlcigpKVxuICAgICAgLnBpcGUodGhpcy5fZGVjb2Rlcik7XG5cbiAgICB0aGlzLl9lbmNvZGVyID0gbmV3IFdlYkluc3BlY3RvckVuY29kZXIoKTtcbiAgICB0aGlzLl9lbmNvZGVyXG4gICAgICAucGlwZShuZXcgUGxpc3RTZXJ2aWNlRW5jb2RlcigpKVxuICAgICAgLnBpcGUobmV3IFN0cmVhbUxvZ2dlcihTdHJlYW1Mb2dnZXIuU0VORCwgdmVyYm9zZSkpXG4gICAgICAucGlwZSh0aGlzLl9zb2NrZXRDbGllbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGFuIG9iamVjdCB0byB0aGUgd2ViaW5zcGVjdG9yZCBzb2NrZXRcbiAgICogQHBhcmFtIHtPYmplY3R9IHJwY09iamVjdCBUaGUgb2JqZWN0IHRoYXQgd2lsbCBiZSBzZW50XG4gICAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciB3aGVuIHRoZSBvYmplY3QgaXMgbnVsbCBvciB1bmRlZmluZWRcbiAgICovXG4gIHNlbmRNZXNzYWdlIChycGNPYmplY3QpIHtcbiAgICBpZiAoXy5pc05pbChycGNPYmplY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzZW5kIGEgbnVsbCBvYmplY3QnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdmVyYm9zZSkge1xuICAgICAgbG9nLmRlYnVnKCdTZW5kaW5nIG1lc3NhZ2UgdG8gV2ViIEluc3BlY3RvcjonKTtcbiAgICAgIGxvZy5kZWJ1Zyh1dGlsLmpzb25TdHJpbmdpZnkocnBjT2JqZWN0KSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZW5jb2Rlci53cml0ZShycGNPYmplY3QpO1xuXG4gICAgLy8gd3JpdGUgYW4gZW1wdHkgbWVzc2FnZSwgd2hpY2ggb24gcmVhbCBkZXZpY2VzIGVuc3VyZXMgdGhlIGFjdHVhbCBtZXNzYWdlXG4gICAgLy8gZ2V0cyBzZW50IHRvIHRoZSBkZXZpY2UuIHdpdGhvdXQgdGhpcyBpdCB3aWxsIHBlcmlvZGljYWxseSBoYW5nIHdpdGhcbiAgICAvLyBub3RoaW5nIHNlbnRcbiAgICAvLyBob3dldmVyLCB0aGlzIGNhdXNlcyB3ZWJpbnNwZWN0b3JkIHRvIGNyYXNoIG9uIGRldmljZXMgcnVubmluZyBpT1MgMTBcbiAgICBpZiAoIXRoaXMuX2lzU2ltdWxhdG9yICYmIHRoaXMuX21ham9yT3NWZXJzaW9uID49IFBBUlRJQUxfTUVTU0FHRV9TVVBQT1JUX0RFUFJFQ0FUSU9OX1ZFUlNJT04pIHtcbiAgICAgIHRoaXMuX2VuY29kZXIud3JpdGUoJyAnKTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBtZXNzYWdlIGxpc3RlbmluZ1xuICAgKiBAbmFtZSBNZXNzYWdlQ2FsbGJhY2tcbiAgICogQGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHJwYyBvYmplY3QgdGhhdCBpcyBzZW50IGZyb20gdGhlIHdlYmluc3BlY3RvcmRcbiAgKi9cblxuICAvKipcbiAgICogTGlzdGVuIHRvIG1lc3NhZ2VzIGNvbWluZyBmcm9tIHdlYmluc3BlY3RvcmRcbiAgICogQHBhcmFtIHtNZXNzYWdlQ2FsbGJhY2t9IGNhbGxiYWNrXG4gICAqL1xuICBsaXN0ZW5NZXNzYWdlIChvbkRhdGEpIHtcbiAgICB0aGlzLl9kZWNvZGVyLm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgIGlmICh0aGlzLl92ZXJib3NlKSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIFdlYiBJbnNwZWN0b3I6Jyk7XG4gICAgICAgIGxvZy5kZWJ1Zyh1dGlsLmpzb25TdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgfVxuICAgICAgb25EYXRhKGRhdGEpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IFdlYkluc3BlY3RvclNlcnZpY2UsIFdFQl9JTlNQRUNUT1JfU0VSVklDRV9OQU1FIH07XG5leHBvcnQgZGVmYXVsdCBXZWJJbnNwZWN0b3JTZXJ2aWNlO1xuIl0sImZpbGUiOiJsaWIvd2ViaW5zcGVjdG9yL2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi93ZWJpbnNwZWN0b3IvaW5kZXguanMiXSwibmFtZXMiOlsiV0VCX0lOU1BFQ1RPUl9TRVJWSUNFX05BTUUiLCJNQVhfRlJBTUVfU0laRSIsIk1CIiwiUEFSVElBTF9NRVNTQUdFX1NVUFBPUlRfREVQUkVDQVRJT05fVkVSU0lPTiIsIldlYkluc3BlY3RvclNlcnZpY2UiLCJCYXNlU2VydmljZVNvY2tldCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIm1ham9yT3NWZXJzaW9uIiwiaXNTaW11bGF0b3IiLCJzb2NrZXRDaHVua1NpemUiLCJ2ZXJib3NlIiwidmVyYm9zZUhleER1bXAiLCJzb2NrZXRDbGllbnQiLCJtYXhGcmFtZUxlbmd0aCIsIl8iLCJpc0Z1bmN0aW9uIiwic2V0TWF4U2VuZEZyYWdtZW50IiwiaXNOaWwiLCJsb2ciLCJkZWJ1ZyIsIndhcm4iLCJfdmVyYm9zZSIsIl9pc1NpbXVsYXRvciIsIl9tYWpvck9zVmVyc2lvbiIsIl9pbml0aWFsaXplUGFydGlhbE1lc3NhZ2VTdXBwb3J0IiwiX2luaXRpYWxpemVGdWxsTWVzc2FnZVN1cHBvcnQiLCJfZGVjb2RlciIsIlBsaXN0U2VydmljZURlY29kZXIiLCJfc29ja2V0Q2xpZW50IiwicGlwZSIsIlN0cmVhbUxvZ2dlciIsIlJFQ0VJVkUiLCJfc3BsaXR0ZXIiLCJMZW5ndGhCYXNlZFNwbGl0dGVyIiwicmVhZGFibGVTdHJlYW0iLCJsaXR0bGVFbmRpYW4iLCJsZW5ndGhGaWVsZE9mZnNldCIsImxlbmd0aEZpZWxkTGVuZ3RoIiwibGVuZ3RoQWRqdXN0bWVudCIsIl9lbmNvZGVyIiwiUGxpc3RTZXJ2aWNlRW5jb2RlciIsIlNFTkQiLCJXZWJJbnNwZWN0b3JEZWNvZGVyIiwiV2ViSW5zcGVjdG9yRW5jb2RlciIsInNlbmRNZXNzYWdlIiwicnBjT2JqZWN0IiwiRXJyb3IiLCJ1dGlsIiwianNvblN0cmluZ2lmeSIsIndyaXRlIiwibGlzdGVuTWVzc2FnZSIsIm9uRGF0YSIsIm9uIiwiZGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSwwQkFBMEIsR0FBRyx3QkFBbkM7O0FBQ0EsTUFBTUMsY0FBYyxHQUFHLEtBQUtDLGFBQTVCO0FBRUEsTUFBTUMsMkNBQTJDLEdBQUcsRUFBcEQ7O0FBb0JBLE1BQU1DLG1CQUFOLFNBQWtDQyw4QkFBbEMsQ0FBb0Q7QUFNbERDLEVBQUFBLFdBQVcsQ0FBRUMsSUFBSSxHQUFHLEVBQVQsRUFBYTtBQUN0QixVQUFNO0FBQ0pDLE1BQUFBLGNBREk7QUFFSkMsTUFBQUEsV0FBVyxHQUFHLEtBRlY7QUFHSkMsTUFBQUEsZUFISTtBQUlKQyxNQUFBQSxPQUFPLEdBQUcsS0FKTjtBQUtKQyxNQUFBQSxjQUFjLEdBQUcsS0FMYjtBQU1KQyxNQUFBQSxZQU5JO0FBT0pDLE1BQUFBLGNBQWMsR0FBR2I7QUFQYixRQVFGTSxJQVJKO0FBVUEsVUFBTU0sWUFBTjs7QUFHQSxRQUFJRSxnQkFBRUMsVUFBRixDQUFhSCxZQUFZLENBQUNJLGtCQUExQixLQUFpRCxDQUFDRixnQkFBRUcsS0FBRixDQUFRUixlQUFSLENBQWxELElBQThFQSxlQUFlLEdBQUcsQ0FBcEcsRUFBdUc7QUFDckcsVUFBSUcsWUFBWSxDQUFDSSxrQkFBYixDQUFnQ1AsZUFBaEMsQ0FBSixFQUFzRDtBQUNwRFMsd0JBQUlDLEtBQUosQ0FBVyxxQ0FBb0NWLGVBQWdCLEdBQS9EO0FBQ0QsT0FGRCxNQUVPO0FBRUxTLHdCQUFJRSxJQUFKLENBQVUsdUNBQXNDWCxlQUFnQixHQUFoRTtBQUNEO0FBQ0Y7O0FBRUQsU0FBS1ksUUFBTCxHQUFnQlgsT0FBaEI7QUFDQSxTQUFLWSxZQUFMLEdBQW9CZCxXQUFwQjtBQUNBLFNBQUtlLGVBQUwsR0FBdUJoQixjQUF2Qjs7QUFFQSxRQUFJLENBQUNDLFdBQUQsSUFBZ0JELGNBQWMsR0FBR0wsMkNBQXJDLEVBQWtGO0FBQ2hGLFdBQUtzQixnQ0FBTCxDQUFzQ2IsY0FBdEMsRUFBc0RFLGNBQXREO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS1ksNkJBQUwsQ0FBbUNkLGNBQW5DLEVBQW1ERSxjQUFuRDtBQUNEO0FBQ0Y7O0FBU0RZLEVBQUFBLDZCQUE2QixDQUFFZixPQUFGLEVBQVdHLGNBQVgsRUFBMkI7QUFDdEQsU0FBS2EsUUFBTCxHQUFnQixJQUFJQyw0QkFBSixFQUFoQjs7QUFDQSxTQUFLQyxhQUFMLENBRUdDLElBRkgsQ0FFUSxJQUFJQyxxQkFBSixDQUFpQkEsc0JBQWFDLE9BQTlCLEVBQXVDckIsT0FBdkMsQ0FGUixFQUdHbUIsSUFISCxDQUdRLEtBQUtHLFNBQUwsR0FBaUIsSUFBSUMsNEJBQUosQ0FBd0I7QUFDN0NDLE1BQUFBLGNBQWMsRUFBRSxLQUFLTixhQUR3QjtBQUU3Q08sTUFBQUEsWUFBWSxFQUFFLEtBRitCO0FBRzdDdEIsTUFBQUEsY0FINkM7QUFJN0N1QixNQUFBQSxpQkFBaUIsRUFBRSxDQUowQjtBQUs3Q0MsTUFBQUEsaUJBQWlCLEVBQUUsQ0FMMEI7QUFNN0NDLE1BQUFBLGdCQUFnQixFQUFFO0FBTjJCLEtBQXhCLENBSHpCLEVBV0dULElBWEgsQ0FXUSxLQUFLSCxRQVhiOztBQWFBLFNBQUthLFFBQUwsR0FBZ0IsSUFBSUMsNEJBQUosRUFBaEI7O0FBQ0EsU0FBS0QsUUFBTCxDQUNHVixJQURILENBQ1EsSUFBSUMscUJBQUosQ0FBaUJBLHNCQUFhVyxJQUE5QixFQUFvQy9CLE9BQXBDLENBRFIsRUFFR21CLElBRkgsQ0FFUSxLQUFLRCxhQUZiO0FBR0Q7O0FBVURKLEVBQUFBLGdDQUFnQyxDQUFFZCxPQUFGLEVBQVdHLGNBQVgsRUFBMkI7QUFFekQsU0FBS2EsUUFBTCxHQUFnQixJQUFJZ0IsNEJBQUosQ0FBd0J6QyxhQUF4QixDQUFoQjs7QUFDQSxTQUFLMkIsYUFBTCxDQUVHQyxJQUZILENBRVEsSUFBSUMscUJBQUosQ0FBaUJBLHNCQUFhQyxPQUE5QixFQUF1Q3JCLE9BQXZDLENBRlIsRUFHR21CLElBSEgsQ0FHUSxLQUFLRyxTQUFMLEdBQWlCLElBQUlDLDRCQUFKLENBQXdCO0FBQzdDQyxNQUFBQSxjQUFjLEVBQUUsS0FBS04sYUFEd0I7QUFFN0NPLE1BQUFBLFlBQVksRUFBRSxLQUYrQjtBQUc3Q3RCLE1BQUFBLGNBSDZDO0FBSTdDdUIsTUFBQUEsaUJBQWlCLEVBQUUsQ0FKMEI7QUFLN0NDLE1BQUFBLGlCQUFpQixFQUFFLENBTDBCO0FBTTdDQyxNQUFBQSxnQkFBZ0IsRUFBRTtBQU4yQixLQUF4QixDQUh6QixFQVdHVCxJQVhILENBV1EsSUFBSUYsNEJBQUosRUFYUixFQVlHRSxJQVpILENBWVEsS0FBS0gsUUFaYjs7QUFjQSxTQUFLYSxRQUFMLEdBQWdCLElBQUlJLDRCQUFKLEVBQWhCOztBQUNBLFNBQUtKLFFBQUwsQ0FDR1YsSUFESCxDQUNRLElBQUlXLDRCQUFKLEVBRFIsRUFFR1gsSUFGSCxDQUVRLElBQUlDLHFCQUFKLENBQWlCQSxzQkFBYVcsSUFBOUIsRUFBb0MvQixPQUFwQyxDQUZSLEVBR0dtQixJQUhILENBR1EsS0FBS0QsYUFIYjtBQUlEOztBQU9EZ0IsRUFBQUEsV0FBVyxDQUFFQyxTQUFGLEVBQWE7QUFDdEIsUUFBSS9CLGdCQUFFRyxLQUFGLENBQVE0QixTQUFSLENBQUosRUFBd0I7QUFDdEIsWUFBTSxJQUFJQyxLQUFKLENBQVUsMkJBQVYsQ0FBTjtBQUNEOztBQUVELFFBQUksS0FBS3pCLFFBQVQsRUFBbUI7QUFDakJILHNCQUFJQyxLQUFKLENBQVUsbUNBQVY7O0FBQ0FELHNCQUFJQyxLQUFKLENBQVU0QixvQkFBS0MsYUFBTCxDQUFtQkgsU0FBbkIsQ0FBVjtBQUNEOztBQUVELFNBQUtOLFFBQUwsQ0FBY1UsS0FBZCxDQUFvQkosU0FBcEI7O0FBTUEsUUFBSSxDQUFDLEtBQUt2QixZQUFOLElBQXNCLEtBQUtDLGVBQUwsSUFBd0JyQiwyQ0FBbEQsRUFBK0Y7QUFDN0YsV0FBS3FDLFFBQUwsQ0FBY1UsS0FBZCxDQUFvQixHQUFwQjtBQUNEO0FBQ0Y7O0FBWURDLEVBQUFBLGFBQWEsQ0FBRUMsTUFBRixFQUFVO0FBQ3JCLFNBQUt6QixRQUFMLENBQWMwQixFQUFkLENBQWlCLE1BQWpCLEVBQTBCQyxJQUFELElBQVU7QUFDakMsVUFBSSxLQUFLaEMsUUFBVCxFQUFtQjtBQUNqQkgsd0JBQUlDLEtBQUosQ0FBVSxzQ0FBVjs7QUFDQUQsd0JBQUlDLEtBQUosQ0FBVTRCLG9CQUFLQyxhQUFMLENBQW1CSyxJQUFuQixDQUFWO0FBQ0Q7O0FBQ0RGLE1BQUFBLE1BQU0sQ0FBQ0UsSUFBRCxDQUFOO0FBQ0QsS0FORDtBQU9EOztBQWhKaUQ7OztlQW9KckNsRCxtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXZWJJbnNwZWN0b3JEZWNvZGVyIGZyb20gJy4vdHJhbnNmb3JtZXIvd2ViaW5zcGVjdG9yLWRlY29kZXInO1xuaW1wb3J0IFdlYkluc3BlY3RvckVuY29kZXIgZnJvbSAnLi90cmFuc2Zvcm1lci93ZWJpbnNwZWN0b3ItZW5jb2Rlcic7XG5pbXBvcnQgUGxpc3RTZXJ2aWNlRGVjb2RlciBmcm9tICcuLi9wbGlzdC1zZXJ2aWNlL3RyYW5zZm9ybWVyL3BsaXN0LXNlcnZpY2UtZGVjb2Rlcic7XG5pbXBvcnQgUGxpc3RTZXJ2aWNlRW5jb2RlciBmcm9tICcuLi9wbGlzdC1zZXJ2aWNlL3RyYW5zZm9ybWVyL3BsaXN0LXNlcnZpY2UtZW5jb2Rlcic7XG5pbXBvcnQgTGVuZ3RoQmFzZWRTcGxpdHRlciBmcm9tICcuLi91dGlsL3RyYW5zZm9ybWVyL2xlbmd0aC1iYXNlZC1zcGxpdHRlcic7XG5pbXBvcnQgU3RyZWFtTG9nZ2VyIGZyb20gJy4uL3V0aWwvdHJhbnNmb3JtZXIvc3RyZWFtLWxvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCB7IE1CIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlU29ja2V0IH0gZnJvbSAnLi4vYmFzZS1zZXJ2aWNlJztcblxuXG5jb25zdCBXRUJfSU5TUEVDVE9SX1NFUlZJQ0VfTkFNRSA9ICdjb20uYXBwbGUud2ViaW5zcGVjdG9yJztcbmNvbnN0IE1BWF9GUkFNRV9TSVpFID0gMjAgKiBNQjtcblxuY29uc3QgUEFSVElBTF9NRVNTQUdFX1NVUFBPUlRfREVQUkVDQVRJT05fVkVSU0lPTiA9IDExO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFdlYkluc3BlY3RvclNlcnZpY2VPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHtudW1iZXJ9IG1ham9yT3NWZXJzaW9uIFRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoZSBvcyB2ZXJzaW9uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzU2ltdWxhdG9yIFdoZXRoZXIgdGhlIGRldmljZSBpcyBhIHNpbXVsYXRvclxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBzb2NrZXRDaHVua1NpemUgU2l6ZSwgaW4gYnl0ZXMgb2YgdGhlIGNodW5rcyB0byBzZW5kIHRvXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsIGRldmljZSAob25seSBpT1MgMTErKS4gRGVmYXVsdHMgdG9cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Mzg0IGJ5dGVzICh0aGUgVExTU29ja2V0IG1heCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZlcmJvc2UgVHVybiBvbiBsb2dnaW5nIG9mIGVhY2ggbWVzc2FnZSBzZW50IG9yIHJlY2VpdmVkLlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIGZhbHNlXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZlcmJvc2VIZXhEdW1wIFR1cm4gb24gbG9nZ2luZyBvZiBfYWxsXyBjb21tdW5pY2F0aW9uIGFzXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleCBkdW1wLiBEZWZhdWx0cyB0byBmYWxzZVxuICogQHByb3BlcnR5IHsqfSBzb2NrZXRDbGllbnQgVGhlIHNvY2tldCBjbGllbnQgd2hlcmUgdGhlIGNvbW11bmljYXRpb24gd2lsbCBoYXBwZW5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBtYXhGcmFtZUxlbmd0aCBbMjAgKiAxMDI0ICogMTAyNF0gLSBUaGUgbWF4aW11bSBzaXplXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYnl0ZXMgb2YgYSBzaW5nbGUgZGF0YSBmcmFtZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBkZXZpY2UgY29tbXVuaWNhdGlvbiBwcm90b2NvbFxuICovXG5cbmNsYXNzIFdlYkluc3BlY3RvclNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZVNvY2tldCB7XG4gIC8qKlxuICAgKiBUaGUgbWFpbiBzZXJ2aWNlIGZvciBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHdlYmluc3BlY3RvcmRcbiAgICpcbiAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3JTZXJ2aWNlT3B0aW9uc31cbiAgICovXG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBjb25zdCB7XG4gICAgICBtYWpvck9zVmVyc2lvbixcbiAgICAgIGlzU2ltdWxhdG9yID0gZmFsc2UsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICB2ZXJib3NlID0gZmFsc2UsXG4gICAgICB2ZXJib3NlSGV4RHVtcCA9IGZhbHNlLFxuICAgICAgc29ja2V0Q2xpZW50LFxuICAgICAgbWF4RnJhbWVMZW5ndGggPSBNQVhfRlJBTUVfU0laRSxcbiAgICB9ID0gb3B0cztcblxuICAgIHN1cGVyKHNvY2tldENsaWVudCk7XG5cbiAgICAvLyBzZXQgdGhlIGxhcmdlc3QgZnJhZ21lbnQgc2l6ZSBmb3IgdGhlIHNvY2tldCwgaWYgdGhlIG9wdGlvbiBpcyB0aGVyZVxuICAgIGlmIChfLmlzRnVuY3Rpb24oc29ja2V0Q2xpZW50LnNldE1heFNlbmRGcmFnbWVudCkgJiYgIV8uaXNOaWwoc29ja2V0Q2h1bmtTaXplKSAmJiBzb2NrZXRDaHVua1NpemUgPiAwKSB7XG4gICAgICBpZiAoc29ja2V0Q2xpZW50LnNldE1heFNlbmRGcmFnbWVudChzb2NrZXRDaHVua1NpemUpKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgTWF4aW11bSBUTFMgZnJhZ21lbnQgc2l6ZSBzZXQgdG8gJyR7c29ja2V0Q2h1bmtTaXplfSdgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFueXRoaW5nIG92ZXIgdGhlIF9hY3R1YWxfIG1heGltdW0gd2lsbCBmYWlsLCBhbmQgdGhpbmdzIHdpbGwgcmVtYWluIHRoZSBzYW1lXG4gICAgICAgIGxvZy53YXJuKGBVbmFibGUgdG8gc2V0IFRMUyBmcmFnbWVudCBzaXplIHRvICcke3NvY2tldENodW5rU2l6ZX0nYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fdmVyYm9zZSA9IHZlcmJvc2U7XG4gICAgdGhpcy5faXNTaW11bGF0b3IgPSBpc1NpbXVsYXRvcjtcbiAgICB0aGlzLl9tYWpvck9zVmVyc2lvbiA9IG1ham9yT3NWZXJzaW9uO1xuXG4gICAgaWYgKCFpc1NpbXVsYXRvciAmJiBtYWpvck9zVmVyc2lvbiA8IFBBUlRJQUxfTUVTU0FHRV9TVVBQT1JUX0RFUFJFQ0FUSU9OX1ZFUlNJT04pIHtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVQYXJ0aWFsTWVzc2FnZVN1cHBvcnQodmVyYm9zZUhleER1bXAsIG1heEZyYW1lTGVuZ3RoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZUZ1bGxNZXNzYWdlU3VwcG9ydCh2ZXJib3NlSGV4RHVtcCwgbWF4RnJhbWVMZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRpYWxpemVzIHRoZSBkYXRhIGZsb3cgZm9yIGlPUyAxMSsuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmVyYm9zZSAtIHdoZXRoZXIgdG8gcHJpbnQgb3V0IHRoZSBoZXggZHVtcCBmb3IgY29tbXVuaWNhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4RnJhbWVMZW5ndGggLSBUaGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIG9mIGEgc2luZ2xlIGRhdGEgZnJhbWVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGRldmljZSBjb21tdW5pY2F0aW9uIHByb3RvY29sXG4gICAqL1xuICBfaW5pdGlhbGl6ZUZ1bGxNZXNzYWdlU3VwcG9ydCAodmVyYm9zZSwgbWF4RnJhbWVMZW5ndGgpIHtcbiAgICB0aGlzLl9kZWNvZGVyID0gbmV3IFBsaXN0U2VydmljZURlY29kZXIoKTtcbiAgICB0aGlzLl9zb2NrZXRDbGllbnRcbiAgICAgIC8vIGxvZyBmaXJzdCwgaW4gY2FzZSB0aGVyZSBpcyBhIHByb2JsZW0gaW4gcHJvY2Vzc2luZ1xuICAgICAgLnBpcGUobmV3IFN0cmVhbUxvZ2dlcihTdHJlYW1Mb2dnZXIuUkVDRUlWRSwgdmVyYm9zZSkpXG4gICAgICAucGlwZSh0aGlzLl9zcGxpdHRlciA9IG5ldyBMZW5ndGhCYXNlZFNwbGl0dGVyKHtcbiAgICAgICAgcmVhZGFibGVTdHJlYW06IHRoaXMuX3NvY2tldENsaWVudCxcbiAgICAgICAgbGl0dGxlRW5kaWFuOiBmYWxzZSxcbiAgICAgICAgbWF4RnJhbWVMZW5ndGgsXG4gICAgICAgIGxlbmd0aEZpZWxkT2Zmc2V0OiAwLFxuICAgICAgICBsZW5ndGhGaWVsZExlbmd0aDogNCxcbiAgICAgICAgbGVuZ3RoQWRqdXN0bWVudDogNCxcbiAgICAgIH0pKVxuICAgICAgLnBpcGUodGhpcy5fZGVjb2Rlcik7XG5cbiAgICB0aGlzLl9lbmNvZGVyID0gbmV3IFBsaXN0U2VydmljZUVuY29kZXIoKTtcbiAgICB0aGlzLl9lbmNvZGVyXG4gICAgICAucGlwZShuZXcgU3RyZWFtTG9nZ2VyKFN0cmVhbUxvZ2dlci5TRU5ELCB2ZXJib3NlKSlcbiAgICAgIC5waXBlKHRoaXMuX3NvY2tldENsaWVudCk7XG4gIH1cblxuICAvKipcbiAgICogSW50aWFsaXplcyB0aGUgZGF0YSBmbG93IGZvciBpT1MgPCAxMSwgd2hlcmUgZGF0YSBpcyBzZXBhcmF0ZWQgaW50byBwYXJ0aWFsXG4gICAqIG1lc3NhZ2VzIGJlZm9yZSBzZW5kaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZlcmJvc2UgLSB3aGV0aGVyIHRvIHByaW50IG91dCB0aGUgaGV4IGR1bXAgZm9yIGNvbW11bmljYXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IG1heEZyYW1lTGVuZ3RoIC0gVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBvZiBhIHNpbmdsZSBkYXRhIGZyYW1lXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBkZXZpY2UgY29tbXVuaWNhdGlvbiBwcm90b2NvbFxuICAgKi9cbiAgX2luaXRpYWxpemVQYXJ0aWFsTWVzc2FnZVN1cHBvcnQgKHZlcmJvc2UsIG1heEZyYW1lTGVuZ3RoKSB7XG4gICAgLy8gMU1CIGFzIGJ1ZmZlciBmb3IgYnVsZGluZyB3ZWJpbnNwZWN0b3IgZnVsbCBtZXNzYWdlcy4gV2UgY2FuIGluY3JlYXNlIHRoZSB2YWx1ZSBpZiBtb3JlIGJ1ZmZlciBpcyBuZWVkZWRcbiAgICB0aGlzLl9kZWNvZGVyID0gbmV3IFdlYkluc3BlY3RvckRlY29kZXIoTUIpO1xuICAgIHRoaXMuX3NvY2tldENsaWVudFxuICAgICAgLy8gbG9nIGZpcnN0LCBpbiBjYXNlIHRoZXJlIGlzIGEgcHJvYmxlbSBpbiBwcm9jZXNzaW5nXG4gICAgICAucGlwZShuZXcgU3RyZWFtTG9nZ2VyKFN0cmVhbUxvZ2dlci5SRUNFSVZFLCB2ZXJib3NlKSlcbiAgICAgIC5waXBlKHRoaXMuX3NwbGl0dGVyID0gbmV3IExlbmd0aEJhc2VkU3BsaXR0ZXIoe1xuICAgICAgICByZWFkYWJsZVN0cmVhbTogdGhpcy5fc29ja2V0Q2xpZW50LFxuICAgICAgICBsaXR0bGVFbmRpYW46IGZhbHNlLFxuICAgICAgICBtYXhGcmFtZUxlbmd0aCxcbiAgICAgICAgbGVuZ3RoRmllbGRPZmZzZXQ6IDAsXG4gICAgICAgIGxlbmd0aEZpZWxkTGVuZ3RoOiA0LFxuICAgICAgICBsZW5ndGhBZGp1c3RtZW50OiA0LFxuICAgICAgfSkpXG4gICAgICAucGlwZShuZXcgUGxpc3RTZXJ2aWNlRGVjb2RlcigpKVxuICAgICAgLnBpcGUodGhpcy5fZGVjb2Rlcik7XG5cbiAgICB0aGlzLl9lbmNvZGVyID0gbmV3IFdlYkluc3BlY3RvckVuY29kZXIoKTtcbiAgICB0aGlzLl9lbmNvZGVyXG4gICAgICAucGlwZShuZXcgUGxpc3RTZXJ2aWNlRW5jb2RlcigpKVxuICAgICAgLnBpcGUobmV3IFN0cmVhbUxvZ2dlcihTdHJlYW1Mb2dnZXIuU0VORCwgdmVyYm9zZSkpXG4gICAgICAucGlwZSh0aGlzLl9zb2NrZXRDbGllbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGFuIG9iamVjdCB0byB0aGUgd2ViaW5zcGVjdG9yZCBzb2NrZXRcbiAgICogQHBhcmFtIHtPYmplY3R9IHJwY09iamVjdCBUaGUgb2JqZWN0IHRoYXQgd2lsbCBiZSBzZW50XG4gICAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciB3aGVuIHRoZSBvYmplY3QgaXMgbnVsbCBvciB1bmRlZmluZWRcbiAgICovXG4gIHNlbmRNZXNzYWdlIChycGNPYmplY3QpIHtcbiAgICBpZiAoXy5pc05pbChycGNPYmplY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzZW5kIGEgbnVsbCBvYmplY3QnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdmVyYm9zZSkge1xuICAgICAgbG9nLmRlYnVnKCdTZW5kaW5nIG1lc3NhZ2UgdG8gV2ViIEluc3BlY3RvcjonKTtcbiAgICAgIGxvZy5kZWJ1Zyh1dGlsLmpzb25TdHJpbmdpZnkocnBjT2JqZWN0KSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZW5jb2Rlci53cml0ZShycGNPYmplY3QpO1xuXG4gICAgLy8gd3JpdGUgYW4gZW1wdHkgbWVzc2FnZSwgd2hpY2ggb24gcmVhbCBkZXZpY2VzIGVuc3VyZXMgdGhlIGFjdHVhbCBtZXNzYWdlXG4gICAgLy8gZ2V0cyBzZW50IHRvIHRoZSBkZXZpY2UuIHdpdGhvdXQgdGhpcyBpdCB3aWxsIHBlcmlvZGljYWxseSBoYW5nIHdpdGhcbiAgICAvLyBub3RoaW5nIHNlbnRcbiAgICAvLyBob3dldmVyLCB0aGlzIGNhdXNlcyB3ZWJpbnNwZWN0b3JkIHRvIGNyYXNoIG9uIGRldmljZXMgcnVubmluZyBpT1MgMTBcbiAgICBpZiAoIXRoaXMuX2lzU2ltdWxhdG9yICYmIHRoaXMuX21ham9yT3NWZXJzaW9uID49IFBBUlRJQUxfTUVTU0FHRV9TVVBQT1JUX0RFUFJFQ0FUSU9OX1ZFUlNJT04pIHtcbiAgICAgIHRoaXMuX2VuY29kZXIud3JpdGUoJyAnKTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBtZXNzYWdlIGxpc3RlbmluZ1xuICAgKiBAbmFtZSBNZXNzYWdlQ2FsbGJhY2tcbiAgICogQGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHJwYyBvYmplY3QgdGhhdCBpcyBzZW50IGZyb20gdGhlIHdlYmluc3BlY3RvcmRcbiAgKi9cblxuICAvKipcbiAgICogTGlzdGVuIHRvIG1lc3NhZ2VzIGNvbWluZyBmcm9tIHdlYmluc3BlY3RvcmRcbiAgICogQHBhcmFtIHtNZXNzYWdlQ2FsbGJhY2t9IGNhbGxiYWNrXG4gICAqL1xuICBsaXN0ZW5NZXNzYWdlIChvbkRhdGEpIHtcbiAgICB0aGlzLl9kZWNvZGVyLm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgIGlmICh0aGlzLl92ZXJib3NlKSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIFdlYiBJbnNwZWN0b3I6Jyk7XG4gICAgICAgIGxvZy5kZWJ1Zyh1dGlsLmpzb25TdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgfVxuICAgICAgb25EYXRhKGRhdGEpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IFdlYkluc3BlY3RvclNlcnZpY2UsIFdFQl9JTlNQRUNUT1JfU0VSVklDRV9OQU1FIH07XG5leHBvcnQgZGVmYXVsdCBXZWJJbnNwZWN0b3JTZXJ2aWNlO1xuIl0sImZpbGUiOiJsaWIvd2ViaW5zcGVjdG9yL2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
@@ -48,11 +48,11 @@ class InstallationProxyService extends BaseServicePlist {
|
|
|
48
48
|
|
|
49
49
|
this._plistService.sendPlist(request);
|
|
50
50
|
const messages = await this._waitMessageCompletion();
|
|
51
|
-
return messages.reduce((acc, message)
|
|
51
|
+
return messages.reduce(function (acc, message) {
|
|
52
52
|
if (!message.CurrentList) {
|
|
53
53
|
return acc;
|
|
54
54
|
}
|
|
55
|
-
message.CurrentList.forEach(app
|
|
55
|
+
message.CurrentList.forEach(function (app) {
|
|
56
56
|
acc[app.CFBundleIdentifier] = app;
|
|
57
57
|
});
|
|
58
58
|
return acc;
|
package/lib/lockdown/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
1
2
|
import { BaseServicePlist } from '../base-service';
|
|
2
3
|
|
|
3
4
|
|
|
@@ -60,28 +61,29 @@ class Lockdown extends BaseServicePlist {
|
|
|
60
61
|
* @typedef {Object} Query
|
|
61
62
|
*
|
|
62
63
|
* @property {?string} key The key we want to access
|
|
63
|
-
* @property {?string}
|
|
64
|
+
* @property {?string} domain The domain where we want to access
|
|
64
65
|
*/
|
|
65
66
|
|
|
66
67
|
/**
|
|
67
68
|
* Gets values from the device according to the query passed
|
|
69
|
+
*
|
|
68
70
|
* @param {Query} query the query we want to send to lockdownd
|
|
69
71
|
* @param {number} [timeout=5000] the timeout of receiving a response from lockdownd
|
|
70
|
-
* @returns {
|
|
72
|
+
* @returns {*} The actual response value. It should never be `null` or `undefined`
|
|
73
|
+
* @throws {Error} If an unexpected response is received from lockdownd
|
|
71
74
|
*/
|
|
72
75
|
async getValue (query = {}, timeout = 5000) {
|
|
73
|
-
|
|
76
|
+
const plist = Object.assign({
|
|
74
77
|
Label: LABEL,
|
|
75
78
|
ProtocolVersion: PROTOCOL_VERSION,
|
|
76
79
|
Request: 'GetValue'
|
|
77
|
-
};
|
|
78
|
-
Object.assign(plist, query);
|
|
80
|
+
}, query);
|
|
79
81
|
const data = await this._plistService.sendPlistAndReceive(plist, timeout);
|
|
80
|
-
if (data
|
|
82
|
+
if (data?.Request === 'GetValue' && !_.isNil(data?.Value)) {
|
|
81
83
|
return data.Value;
|
|
82
|
-
} else {
|
|
83
|
-
throw new Error(`Unexpected data: ${JSON.stringify(data)}`);
|
|
84
84
|
}
|
|
85
|
+
throw new Error(`Unexpected data received for ${JSON.stringify(query)} request: ` +
|
|
86
|
+
JSON.stringify(data));
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
/**
|
package/lib/services.js
CHANGED
|
@@ -26,6 +26,7 @@ async function startWebInspectorService (udid, opts = {}) {
|
|
|
26
26
|
const verbose = !!opts.verbose;
|
|
27
27
|
const verboseHexDump = !!opts.verboseHexDump;
|
|
28
28
|
const socketChunkSize = opts.socketChunkSize;
|
|
29
|
+
const maxFrameLength = opts.maxFrameLength;
|
|
29
30
|
const semverVersion = semver.coerce(osVersion);
|
|
30
31
|
if (!semverVersion) {
|
|
31
32
|
throw new Error(`Could not create a semver version out of '${osVersion}'`);
|
|
@@ -38,6 +39,7 @@ async function startWebInspectorService (udid, opts = {}) {
|
|
|
38
39
|
verbose,
|
|
39
40
|
verboseHexDump,
|
|
40
41
|
socketClient: opts.socket,
|
|
42
|
+
maxFrameLength,
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
45
|
const socket = await startService(udid, WEB_INSPECTOR_SERVICE_NAME, undefined);
|
|
@@ -48,6 +50,7 @@ async function startWebInspectorService (udid, opts = {}) {
|
|
|
48
50
|
verbose,
|
|
49
51
|
verboseHexDump,
|
|
50
52
|
socketClient: socket,
|
|
53
|
+
maxFrameLength,
|
|
51
54
|
});
|
|
52
55
|
}
|
|
53
56
|
|
|
@@ -2,6 +2,71 @@ import Stream from 'stream';
|
|
|
2
2
|
|
|
3
3
|
const NEW_LINE_CODE = 0x0A;
|
|
4
4
|
const NULL_DELIMETER_CODE = 0x00;
|
|
5
|
+
const BACKSLASH_CODE = '\\'.codePointAt(0);
|
|
6
|
+
const SHIFTS_MAPPING = {
|
|
7
|
+
'-': 0x80,
|
|
8
|
+
'^': 0x40,
|
|
9
|
+
};
|
|
10
|
+
const ESCAPE_TOKEN_LEN = 4;
|
|
11
|
+
const ESCAPE_TOKEN_PATTERN = /\\M(-|\^)(.)/;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
function toUtf8Byte (escapedChar, modifier) {
|
|
15
|
+
const shift = SHIFTS_MAPPING[modifier];
|
|
16
|
+
return isNaN(shift) ? null : escapedChar.codePointAt(0) + shift;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Unescapes utf8-encoded characters, so the output looks
|
|
21
|
+
* like a valid string. See https://github.com/appium/appium/issues/14476
|
|
22
|
+
* for more details.
|
|
23
|
+
*
|
|
24
|
+
* @param {Buffer} logBuffer A single escaped log line
|
|
25
|
+
* @returns {string} The unescaped string or the same string if no unescaping
|
|
26
|
+
* is necessary.
|
|
27
|
+
*/
|
|
28
|
+
function unescape (logBuffer) {
|
|
29
|
+
const parseUtf8Chars = (start) => {
|
|
30
|
+
let cursor = start;
|
|
31
|
+
const token = new Uint8Array(ESCAPE_TOKEN_LEN);
|
|
32
|
+
const utf8CharsAsBytes = [];
|
|
33
|
+
while (cursor <= logBuffer.length - ESCAPE_TOKEN_LEN) {
|
|
34
|
+
logBuffer.copy(token, 0, cursor, cursor + ESCAPE_TOKEN_LEN);
|
|
35
|
+
const tokenStr = Buffer.from(token).toString('latin1');
|
|
36
|
+
const tokenMatch = ESCAPE_TOKEN_PATTERN.exec(tokenStr);
|
|
37
|
+
if (!tokenMatch) {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
const byte = toUtf8Byte(tokenMatch[2], tokenMatch[1]);
|
|
41
|
+
if (byte === null) {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
utf8CharsAsBytes.push(byte);
|
|
45
|
+
cursor += ESCAPE_TOKEN_LEN;
|
|
46
|
+
}
|
|
47
|
+
return utf8CharsAsBytes.length
|
|
48
|
+
? [cursor, Buffer.from(utf8CharsAsBytes).toString('utf8')]
|
|
49
|
+
: [start, null];
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
let index = 0;
|
|
53
|
+
let result = '';
|
|
54
|
+
const bytesView = new Uint8Array(logBuffer);
|
|
55
|
+
while (index < bytesView.length) {
|
|
56
|
+
if (bytesView[index] === BACKSLASH_CODE) {
|
|
57
|
+
const [newIndex, chars] = parseUtf8Chars(index);
|
|
58
|
+
if (newIndex > index) {
|
|
59
|
+
result += chars;
|
|
60
|
+
index = newIndex;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
result += String.fromCharCode(bytesView[index++]);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
|
|
5
70
|
|
|
6
71
|
class SyslogDecoder extends Stream.Transform {
|
|
7
72
|
|
|
@@ -24,10 +89,10 @@ class SyslogDecoder extends Stream.Transform {
|
|
|
24
89
|
}
|
|
25
90
|
// Push the data when new line is sent
|
|
26
91
|
if (data[i] === NEW_LINE_CODE) {
|
|
27
|
-
if (this.bufferIndex
|
|
92
|
+
if (this.bufferIndex > 0) {
|
|
28
93
|
const stringBuffer = Buffer.allocUnsafe(this.bufferIndex);
|
|
29
94
|
this.buffer.copy(stringBuffer, 0, 0, this.bufferIndex);
|
|
30
|
-
this.push(stringBuffer
|
|
95
|
+
this.push(unescape(stringBuffer), 'utf8');
|
|
31
96
|
this.bufferIndex = 0;
|
|
32
97
|
}
|
|
33
98
|
continue;
|
|
@@ -38,5 +103,5 @@ class SyslogDecoder extends Stream.Transform {
|
|
|
38
103
|
}
|
|
39
104
|
}
|
|
40
105
|
|
|
41
|
-
export { SyslogDecoder };
|
|
106
|
+
export { SyslogDecoder, unescape };
|
|
42
107
|
export default SyslogDecoder;
|
package/lib/usbmux/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import net from 'net';
|
|
2
|
+
import os from 'os';
|
|
2
3
|
import _ from 'lodash';
|
|
3
4
|
import B from 'bluebird';
|
|
4
5
|
import { plist, fs } from 'appium-support';
|
|
@@ -31,6 +32,8 @@ try {
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
const DEFAULT_USBMUXD_SOCKET = '/var/run/usbmuxd';
|
|
35
|
+
const DEFAULT_USBMUXD_PORT = 27015;
|
|
36
|
+
const DEFAULT_USBMUXD_HOST = '127.0.0.1';
|
|
34
37
|
const PROG_NAME = name;
|
|
35
38
|
const CLIENT_VERSION_STRING = `${name}-${version}`;
|
|
36
39
|
|
|
@@ -38,24 +41,46 @@ function swap16 (val) {
|
|
|
38
41
|
return ((val & 0xFF) << 8) | ((val >> 8) & 0xFF);
|
|
39
42
|
}
|
|
40
43
|
|
|
44
|
+
/**
|
|
45
|
+
* @typedef {Object} SocketOptions
|
|
46
|
+
* @property {?string} socketPath [/var/run/usbmuxd] The full path to the usbmuxd Unix socket
|
|
47
|
+
* @property {?number} socketPort [27015] The port number to connect to if running on Windows
|
|
48
|
+
* or in WSL1 mode
|
|
49
|
+
* @property {?string} socketHost [127.0.0.1] The host name to connect to if running on Windows
|
|
50
|
+
* or in WSL1 mode
|
|
51
|
+
* @property {?number} timeout [5000] The number of milliseconds to wait until
|
|
52
|
+
* the socket is connected
|
|
53
|
+
*/
|
|
54
|
+
|
|
41
55
|
/**
|
|
42
56
|
* Connects a socket to usbmuxd service
|
|
43
57
|
*
|
|
44
|
-
* @param {?
|
|
45
|
-
* @param {?number} timeout [5000] The number of milliseconds to wait until
|
|
46
|
-
* the socket is connected
|
|
58
|
+
* @param {?SocketOptions} opts
|
|
47
59
|
* @throws {Error} If there was an error while accessing the socket or
|
|
48
60
|
* a connection error happened
|
|
49
61
|
* @throws {B.TimeoutError} if connection timeout happened
|
|
50
62
|
* @returns {net.Socket} Connected socket instance
|
|
51
63
|
*/
|
|
52
|
-
async function getDefaultSocket (
|
|
53
|
-
|
|
64
|
+
async function getDefaultSocket (opts = {}) {
|
|
65
|
+
const {
|
|
66
|
+
socketPath = DEFAULT_USBMUXD_SOCKET,
|
|
67
|
+
socketPort = DEFAULT_USBMUXD_PORT,
|
|
68
|
+
socketHost = DEFAULT_USBMUXD_HOST,
|
|
69
|
+
timeout = 5000,
|
|
70
|
+
} = opts;
|
|
71
|
+
|
|
72
|
+
let socket;
|
|
73
|
+
if (await fs.exists(socketPath)) {
|
|
74
|
+
socket = net.createConnection(socketPath);
|
|
75
|
+
} else if (process.platform === 'win32'
|
|
76
|
+
|| (process.platform === 'linux' && /microsoft/i.test(os.release()))) {
|
|
77
|
+
// Connect to usbmuxd when running on WSL1
|
|
78
|
+
socket = net.createConnection(socketPort, socketHost);
|
|
79
|
+
} else {
|
|
54
80
|
throw new Error(`The usbmuxd socket at '${socketPath}' does not exist or is not accessible`);
|
|
55
81
|
}
|
|
56
82
|
|
|
57
83
|
return await new B((resolve, reject) => {
|
|
58
|
-
const socket = net.createConnection(socketPath);
|
|
59
84
|
socket.once('error', reject);
|
|
60
85
|
socket.once('connect', () => resolve(socket));
|
|
61
86
|
}).timeout(timeout);
|
package/lib/utilities.js
CHANGED
|
@@ -3,9 +3,11 @@ import { upgradeToSSL } from './ssl-helper';
|
|
|
3
3
|
import _ from 'lodash';
|
|
4
4
|
import log from './logger';
|
|
5
5
|
|
|
6
|
+
// https://github.com/samdmarshall/iOS-Internals/blob/master/lockbot/lockbot/lockdown_keys.h
|
|
6
7
|
const LOCKDOWN_REQUEST = {
|
|
7
8
|
DEVICE_TIME: { Key: 'TimeIntervalSince1970' },
|
|
8
9
|
DEVICE_UTC_OFFSET: { Key: 'TimeZoneOffsetFromUTC' },
|
|
10
|
+
DEVICE_TIME_ZONE: { Key: 'TimeZone' },
|
|
9
11
|
DEVICE_VERSION: { Key: 'ProductVersion' },
|
|
10
12
|
DEVICE_NAME: { Key: 'DeviceName' }
|
|
11
13
|
};
|
|
@@ -75,8 +77,9 @@ async function getDeviceName (udid, socket = null) {
|
|
|
75
77
|
* @typedef {Object} DeviceTime
|
|
76
78
|
*
|
|
77
79
|
* @property {number} timestamp Unix timestamp in seconds since 1970-01-01T00:00:00Z
|
|
78
|
-
* @property {number} utcOffset The difference in
|
|
80
|
+
* @property {number} utcOffset The difference in minutes between the UTC time and the local device time.
|
|
79
81
|
* Can be negative.
|
|
82
|
+
* @property {string} timeZone Time zone name configured on the device, for example `Europe/Paris`
|
|
80
83
|
*/
|
|
81
84
|
|
|
82
85
|
/**
|
|
@@ -89,12 +92,11 @@ async function getDeviceName (udid, socket = null) {
|
|
|
89
92
|
async function getDeviceTime (udid, socket = null) {
|
|
90
93
|
const lockdown = await startLockdownSession(udid, socket);
|
|
91
94
|
try {
|
|
92
|
-
const timestamp = await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_TIME);
|
|
93
|
-
// Apple returns utcOffset in seconds which doesnt comply with the general standard
|
|
94
|
-
const utcOffset = await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_UTC_OFFSET) / 60;
|
|
95
95
|
return {
|
|
96
|
-
timestamp,
|
|
97
|
-
utcOffset
|
|
96
|
+
timestamp: await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_TIME),
|
|
97
|
+
// Apple returns utcOffset in seconds which doesnt comply with the general standard
|
|
98
|
+
utcOffset: await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_UTC_OFFSET) / 60,
|
|
99
|
+
timeZone: await lockdown.getValue(LOCKDOWN_REQUEST.DEVICE_TIME_ZONE),
|
|
98
100
|
};
|
|
99
101
|
} finally {
|
|
100
102
|
lockdown.close();
|
|
@@ -29,6 +29,9 @@ const PARTIAL_MESSAGE_SUPPORT_DEPRECATION_VERSION = 11;
|
|
|
29
29
|
* @property {boolean} verboseHexDump Turn on logging of _all_ communication as
|
|
30
30
|
* hex dump. Defaults to false
|
|
31
31
|
* @property {*} socketClient The socket client where the communication will happen
|
|
32
|
+
* @property {number} maxFrameLength [20 * 1024 * 1024] - The maximum size
|
|
33
|
+
* in bytes of a single data frame
|
|
34
|
+
* in the device communication protocol
|
|
32
35
|
*/
|
|
33
36
|
|
|
34
37
|
class WebInspectorService extends BaseServiceSocket {
|
|
@@ -45,6 +48,7 @@ class WebInspectorService extends BaseServiceSocket {
|
|
|
45
48
|
verbose = false,
|
|
46
49
|
verboseHexDump = false,
|
|
47
50
|
socketClient,
|
|
51
|
+
maxFrameLength = MAX_FRAME_SIZE,
|
|
48
52
|
} = opts;
|
|
49
53
|
|
|
50
54
|
super(socketClient);
|
|
@@ -64,9 +68,9 @@ class WebInspectorService extends BaseServiceSocket {
|
|
|
64
68
|
this._majorOsVersion = majorOsVersion;
|
|
65
69
|
|
|
66
70
|
if (!isSimulator && majorOsVersion < PARTIAL_MESSAGE_SUPPORT_DEPRECATION_VERSION) {
|
|
67
|
-
this._initializePartialMessageSupport(verboseHexDump);
|
|
71
|
+
this._initializePartialMessageSupport(verboseHexDump, maxFrameLength);
|
|
68
72
|
} else {
|
|
69
|
-
this._initializeFullMessageSupport(verboseHexDump);
|
|
73
|
+
this._initializeFullMessageSupport(verboseHexDump, maxFrameLength);
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
|
|
@@ -74,8 +78,10 @@ class WebInspectorService extends BaseServiceSocket {
|
|
|
74
78
|
* Intializes the data flow for iOS 11+.
|
|
75
79
|
*
|
|
76
80
|
* @param {boolean} verbose - whether to print out the hex dump for communication
|
|
81
|
+
* @param {number} maxFrameLength - The maximum size in bytes of a single data frame
|
|
82
|
+
* in the device communication protocol
|
|
77
83
|
*/
|
|
78
|
-
_initializeFullMessageSupport (verbose) {
|
|
84
|
+
_initializeFullMessageSupport (verbose, maxFrameLength) {
|
|
79
85
|
this._decoder = new PlistServiceDecoder();
|
|
80
86
|
this._socketClient
|
|
81
87
|
// log first, in case there is a problem in processing
|
|
@@ -83,7 +89,7 @@ class WebInspectorService extends BaseServiceSocket {
|
|
|
83
89
|
.pipe(this._splitter = new LengthBasedSplitter({
|
|
84
90
|
readableStream: this._socketClient,
|
|
85
91
|
littleEndian: false,
|
|
86
|
-
maxFrameLength
|
|
92
|
+
maxFrameLength,
|
|
87
93
|
lengthFieldOffset: 0,
|
|
88
94
|
lengthFieldLength: 4,
|
|
89
95
|
lengthAdjustment: 4,
|
|
@@ -101,8 +107,10 @@ class WebInspectorService extends BaseServiceSocket {
|
|
|
101
107
|
* messages before sending.
|
|
102
108
|
*
|
|
103
109
|
* @param {boolean} verbose - whether to print out the hex dump for communication
|
|
110
|
+
* @param {number} maxFrameLength - The maximum size in bytes of a single data frame
|
|
111
|
+
* in the device communication protocol
|
|
104
112
|
*/
|
|
105
|
-
_initializePartialMessageSupport (verbose) {
|
|
113
|
+
_initializePartialMessageSupport (verbose, maxFrameLength) {
|
|
106
114
|
// 1MB as buffer for bulding webinspector full messages. We can increase the value if more buffer is needed
|
|
107
115
|
this._decoder = new WebInspectorDecoder(MB);
|
|
108
116
|
this._socketClient
|
|
@@ -111,7 +119,7 @@ class WebInspectorService extends BaseServiceSocket {
|
|
|
111
119
|
.pipe(this._splitter = new LengthBasedSplitter({
|
|
112
120
|
readableStream: this._socketClient,
|
|
113
121
|
littleEndian: false,
|
|
114
|
-
maxFrameLength
|
|
122
|
+
maxFrameLength,
|
|
115
123
|
lengthFieldOffset: 0,
|
|
116
124
|
lengthFieldLength: 4,
|
|
117
125
|
lengthAdjustment: 4,
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"keywords": [
|
|
5
5
|
"appium"
|
|
6
6
|
],
|
|
7
|
-
"version": "1.
|
|
7
|
+
"version": "1.7.1",
|
|
8
8
|
"author": "appium",
|
|
9
9
|
"license": "Apache-2.0",
|
|
10
10
|
"repository": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"precommit-test"
|
|
53
53
|
],
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"appium-gulp-plugins": "^5.
|
|
55
|
+
"appium-gulp-plugins": "^5.4.0",
|
|
56
56
|
"chai": "^4.1.2",
|
|
57
57
|
"chai-as-promised": "^7.1.1",
|
|
58
58
|
"eslint-config-appium": "^4.2.0",
|