appium-android-driver 4.53.0 → 4.54.0

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.
@@ -58,7 +58,8 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
58
58
  startActivity: 'mobileStartActivity',
59
59
  broadcast: 'mobileBroadcast',
60
60
  getContexts: 'mobileGetContexts',
61
- unlock: 'mobileUnlock'
61
+ unlock: 'mobileUnlock',
62
+ refreshGpsCache: 'mobileRefreshGpsCache'
62
63
  };
63
64
 
64
65
  if (!_lodash.default.has(mobileCommandsMapping, mobileCommand)) {
@@ -72,4 +73,4 @@ var _default = extensions;
72
73
  exports.default = _default;require('source-map-support').install();
73
74
 
74
75
 
75
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJleGVjdXRlIiwic2NyaXB0IiwiYXJncyIsIm1hdGNoIiwibG9nZ2VyIiwiaW5mbyIsInJlcGxhY2UiLCJ0cmltIiwiZXhlY3V0ZU1vYmlsZSIsIl8iLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImVuZHBvaW50IiwiY2hyb21lZHJpdmVyIiwiandwcm94eSIsImRvd25zdHJlYW1Qcm90b2NvbCIsIlBST1RPQ09MUyIsIk1KU09OV1AiLCJjb21tYW5kIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJtb2JpbGVDb21tYW5kc01hcHBpbmciLCJzaGVsbCIsImV4ZWNFbXVDb25zb2xlQ29tbWFuZCIsInN0YXJ0TG9nc0Jyb2FkY2FzdCIsInN0b3BMb2dzQnJvYWRjYXN0IiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInBlcmZvcm1FZGl0b3JBY3Rpb24iLCJzZW5zb3JTZXQiLCJnZXREZXZpY2VUaW1lIiwic3RhcnRTY3JlZW5TdHJlYW1pbmciLCJzdG9wU2NyZWVuU3RyZWFtaW5nIiwiZ2V0Tm90aWZpY2F0aW9ucyIsImxpc3RTbXMiLCJkZWxldGVGaWxlIiwiY2xlYXJBcHAiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsInN0YXJ0QWN0aXZpdHkiLCJicm9hZGNhc3QiLCJnZXRDb250ZXh0cyIsInVubG9jayIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjs7QUFFQUEsVUFBVSxDQUFDQyxPQUFYLEdBQXFCLGVBQWVBLE9BQWYsQ0FBd0JDLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQztBQUN6RCxNQUFJRCxNQUFNLENBQUNFLEtBQVAsQ0FBYSxVQUFiLENBQUosRUFBOEI7QUFDNUJDLG9CQUFPQyxJQUFQLENBQWEsNkJBQTRCSixNQUFPLEdBQWhEOztBQUNBQSxJQUFBQSxNQUFNLEdBQUdBLE1BQU0sQ0FBQ0ssT0FBUCxDQUFlLFVBQWYsRUFBMkIsRUFBM0IsRUFBK0JDLElBQS9CLEVBQVQ7QUFDQSxXQUFPLE1BQU0sS0FBS0MsYUFBTCxDQUFtQlAsTUFBbkIsRUFBMkJRLGdCQUFFQyxPQUFGLENBQVVSLElBQVYsSUFBa0JBLElBQUksQ0FBQyxDQUFELENBQXRCLEdBQTRCQSxJQUF2RCxDQUFiO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDLEtBQUtTLFlBQUwsRUFBTCxFQUEwQjtBQUN4QixVQUFNLElBQUlDLHlCQUFPQyxtQkFBWCxFQUFOO0FBQ0Q7O0FBQ0QsUUFBTUMsUUFBUSxHQUFHLEtBQUtDLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxrQkFBMUIsS0FBaURDLDRCQUFVQyxPQUEzRCxHQUNiLFVBRGEsR0FFYixlQUZKO0FBR0EsU0FBTyxNQUFNLEtBQUtKLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCSSxPQUExQixDQUFrQ04sUUFBbEMsRUFBNEMsTUFBNUMsRUFBb0Q7QUFDL0RiLElBQUFBLE1BRCtEO0FBRS9EQyxJQUFBQTtBQUYrRCxHQUFwRCxDQUFiO0FBSUQsQ0FoQkQ7O0FBa0JBSCxVQUFVLENBQUNTLGFBQVgsR0FBMkIsZUFBZUEsYUFBZixDQUE4QmEsYUFBOUIsRUFBNkNDLElBQUksR0FBRyxFQUFwRCxFQUF3RDtBQUNqRixRQUFNQyxxQkFBcUIsR0FBRztBQUM1QkMsSUFBQUEsS0FBSyxFQUFFLGFBRHFCO0FBRzVCQyxJQUFBQSxxQkFBcUIsRUFBRSw2QkFISztBQUs1QkMsSUFBQUEsa0JBQWtCLEVBQUUsMEJBTFE7QUFNNUJDLElBQUFBLGlCQUFpQixFQUFFLHlCQU5TO0FBUTVCQyxJQUFBQSxpQkFBaUIsRUFBRSx5QkFSUztBQVM1QkMsSUFBQUEsY0FBYyxFQUFFLHNCQVRZO0FBVzVCQyxJQUFBQSxtQkFBbUIsRUFBRSwyQkFYTztBQWE1QkMsSUFBQUEsU0FBUyxFQUFFLFdBYmlCO0FBZTVCQyxJQUFBQSxhQUFhLEVBQUUscUJBZmE7QUFpQjVCQyxJQUFBQSxvQkFBb0IsRUFBRSw0QkFqQk07QUFrQjVCQyxJQUFBQSxtQkFBbUIsRUFBRSwyQkFsQk87QUFvQjVCQyxJQUFBQSxnQkFBZ0IsRUFBRSx3QkFwQlU7QUFzQjVCQyxJQUFBQSxPQUFPLEVBQUUsZUF0Qm1CO0FBd0I1QkMsSUFBQUEsVUFBVSxFQUFFLGtCQXhCZ0I7QUEwQjVCQyxJQUFBQSxRQUFRLEVBQUUsZ0JBMUJrQjtBQTRCNUJDLElBQUFBLFlBQVksRUFBRSxvQkE1QmM7QUE2QjVCQyxJQUFBQSxXQUFXLEVBQUUsbUJBN0JlO0FBOEI1QkMsSUFBQUEsYUFBYSxFQUFFLHFCQTlCYTtBQStCNUJDLElBQUFBLFNBQVMsRUFBRSxpQkEvQmlCO0FBaUM1QkMsSUFBQUEsV0FBVyxFQUFFLG1CQWpDZTtBQW1DNUJDLElBQUFBLE1BQU0sRUFBRTtBQW5Db0IsR0FBOUI7O0FBc0NBLE1BQUksQ0FBQ25DLGdCQUFFb0MsR0FBRixDQUFNdEIscUJBQU4sRUFBNkJGLGFBQTdCLENBQUwsRUFBa0Q7QUFDaEQsVUFBTSxJQUFJVCx5QkFBT2tDLG1CQUFYLENBQWdDLDJCQUEwQnpCLGFBQWMsS0FBekMsR0FDbEMsUUFBT1osZ0JBQUVzQyxJQUFGLENBQU94QixxQkFBUCxDQUE4QiwwQkFEbEMsQ0FBTjtBQUVEOztBQUNELFNBQU8sTUFBTSxLQUFLQSxxQkFBcUIsQ0FBQ0YsYUFBRCxDQUExQixFQUEyQ0MsSUFBM0MsQ0FBYjtBQUNELENBNUNEOztlQThDZXZCLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzLCBQUk9UT0NPTFMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5sZXQgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLmV4ZWN1dGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKHNjcmlwdC5tYXRjaCgvXm1vYmlsZTovKSkge1xuICAgIGxvZ2dlci5pbmZvKGBFeGVjdXRpbmcgbmF0aXZlIGNvbW1hbmQgJyR7c2NyaXB0fSdgKTtcbiAgICBzY3JpcHQgPSBzY3JpcHQucmVwbGFjZSgvXm1vYmlsZTovLCAnJykudHJpbSgpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVNb2JpbGUoc2NyaXB0LCBfLmlzQXJyYXkoYXJncykgPyBhcmdzWzBdIDogYXJncyk7XG4gIH1cbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbiAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gUFJPVE9DT0xTLk1KU09OV1BcbiAgICA/ICcvZXhlY3V0ZSdcbiAgICA6ICcvZXhlY3V0ZS9zeW5jJztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZChlbmRwb2ludCwgJ1BPU1QnLCB7XG4gICAgc2NyaXB0LFxuICAgIGFyZ3MsXG4gIH0pO1xufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBzdGFydExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdGFydExvZ3NCcm9hZGNhc3QnLFxuICAgIHN0b3BMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RvcExvZ3NCcm9hZGNhc3QnLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBwZXJmb3JtRWRpdG9yQWN0aW9uOiAnbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbicsXG5cbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuXG4gICAgc3RhcnRTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdGFydFNjcmVlblN0cmVhbWluZycsXG4gICAgc3RvcFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0b3BTY3JlZW5TdHJlYW1pbmcnLFxuXG4gICAgZ2V0Tm90aWZpY2F0aW9uczogJ21vYmlsZUdldE5vdGlmaWNhdGlvbnMnLFxuXG4gICAgbGlzdFNtczogJ21vYmlsZUxpc3RTbXMnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgY2xlYXJBcHA6ICdtb2JpbGVDbGVhckFwcCcsXG5cbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuICAgIHN0YXJ0QWN0aXZpdHk6ICdtb2JpbGVTdGFydEFjdGl2aXR5JyxcbiAgICBicm9hZGNhc3Q6ICdtb2JpbGVCcm9hZGNhc3QnLFxuXG4gICAgZ2V0Q29udGV4dHM6ICdtb2JpbGVHZXRDb250ZXh0cycsXG5cbiAgICB1bmxvY2s6ICdtb2JpbGVVbmxvY2snLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvZXhlY3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
76
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJleGVjdXRlIiwic2NyaXB0IiwiYXJncyIsIm1hdGNoIiwibG9nZ2VyIiwiaW5mbyIsInJlcGxhY2UiLCJ0cmltIiwiZXhlY3V0ZU1vYmlsZSIsIl8iLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImVuZHBvaW50IiwiY2hyb21lZHJpdmVyIiwiandwcm94eSIsImRvd25zdHJlYW1Qcm90b2NvbCIsIlBST1RPQ09MUyIsIk1KU09OV1AiLCJjb21tYW5kIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJtb2JpbGVDb21tYW5kc01hcHBpbmciLCJzaGVsbCIsImV4ZWNFbXVDb25zb2xlQ29tbWFuZCIsInN0YXJ0TG9nc0Jyb2FkY2FzdCIsInN0b3BMb2dzQnJvYWRjYXN0IiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInBlcmZvcm1FZGl0b3JBY3Rpb24iLCJzZW5zb3JTZXQiLCJnZXREZXZpY2VUaW1lIiwic3RhcnRTY3JlZW5TdHJlYW1pbmciLCJzdG9wU2NyZWVuU3RyZWFtaW5nIiwiZ2V0Tm90aWZpY2F0aW9ucyIsImxpc3RTbXMiLCJkZWxldGVGaWxlIiwiY2xlYXJBcHAiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsInN0YXJ0QWN0aXZpdHkiLCJicm9hZGNhc3QiLCJnZXRDb250ZXh0cyIsInVubG9jayIsInJlZnJlc2hHcHNDYWNoZSIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjs7QUFFQUEsVUFBVSxDQUFDQyxPQUFYLEdBQXFCLGVBQWVBLE9BQWYsQ0FBd0JDLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQztBQUN6RCxNQUFJRCxNQUFNLENBQUNFLEtBQVAsQ0FBYSxVQUFiLENBQUosRUFBOEI7QUFDNUJDLG9CQUFPQyxJQUFQLENBQWEsNkJBQTRCSixNQUFPLEdBQWhEOztBQUNBQSxJQUFBQSxNQUFNLEdBQUdBLE1BQU0sQ0FBQ0ssT0FBUCxDQUFlLFVBQWYsRUFBMkIsRUFBM0IsRUFBK0JDLElBQS9CLEVBQVQ7QUFDQSxXQUFPLE1BQU0sS0FBS0MsYUFBTCxDQUFtQlAsTUFBbkIsRUFBMkJRLGdCQUFFQyxPQUFGLENBQVVSLElBQVYsSUFBa0JBLElBQUksQ0FBQyxDQUFELENBQXRCLEdBQTRCQSxJQUF2RCxDQUFiO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDLEtBQUtTLFlBQUwsRUFBTCxFQUEwQjtBQUN4QixVQUFNLElBQUlDLHlCQUFPQyxtQkFBWCxFQUFOO0FBQ0Q7O0FBQ0QsUUFBTUMsUUFBUSxHQUFHLEtBQUtDLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxrQkFBMUIsS0FBaURDLDRCQUFVQyxPQUEzRCxHQUNiLFVBRGEsR0FFYixlQUZKO0FBR0EsU0FBTyxNQUFNLEtBQUtKLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCSSxPQUExQixDQUFrQ04sUUFBbEMsRUFBNEMsTUFBNUMsRUFBb0Q7QUFDL0RiLElBQUFBLE1BRCtEO0FBRS9EQyxJQUFBQTtBQUYrRCxHQUFwRCxDQUFiO0FBSUQsQ0FoQkQ7O0FBa0JBSCxVQUFVLENBQUNTLGFBQVgsR0FBMkIsZUFBZUEsYUFBZixDQUE4QmEsYUFBOUIsRUFBNkNDLElBQUksR0FBRyxFQUFwRCxFQUF3RDtBQUNqRixRQUFNQyxxQkFBcUIsR0FBRztBQUM1QkMsSUFBQUEsS0FBSyxFQUFFLGFBRHFCO0FBRzVCQyxJQUFBQSxxQkFBcUIsRUFBRSw2QkFISztBQUs1QkMsSUFBQUEsa0JBQWtCLEVBQUUsMEJBTFE7QUFNNUJDLElBQUFBLGlCQUFpQixFQUFFLHlCQU5TO0FBUTVCQyxJQUFBQSxpQkFBaUIsRUFBRSx5QkFSUztBQVM1QkMsSUFBQUEsY0FBYyxFQUFFLHNCQVRZO0FBVzVCQyxJQUFBQSxtQkFBbUIsRUFBRSwyQkFYTztBQWE1QkMsSUFBQUEsU0FBUyxFQUFFLFdBYmlCO0FBZTVCQyxJQUFBQSxhQUFhLEVBQUUscUJBZmE7QUFpQjVCQyxJQUFBQSxvQkFBb0IsRUFBRSw0QkFqQk07QUFrQjVCQyxJQUFBQSxtQkFBbUIsRUFBRSwyQkFsQk87QUFvQjVCQyxJQUFBQSxnQkFBZ0IsRUFBRSx3QkFwQlU7QUFzQjVCQyxJQUFBQSxPQUFPLEVBQUUsZUF0Qm1CO0FBd0I1QkMsSUFBQUEsVUFBVSxFQUFFLGtCQXhCZ0I7QUEwQjVCQyxJQUFBQSxRQUFRLEVBQUUsZ0JBMUJrQjtBQTRCNUJDLElBQUFBLFlBQVksRUFBRSxvQkE1QmM7QUE2QjVCQyxJQUFBQSxXQUFXLEVBQUUsbUJBN0JlO0FBOEI1QkMsSUFBQUEsYUFBYSxFQUFFLHFCQTlCYTtBQStCNUJDLElBQUFBLFNBQVMsRUFBRSxpQkEvQmlCO0FBaUM1QkMsSUFBQUEsV0FBVyxFQUFFLG1CQWpDZTtBQW1DNUJDLElBQUFBLE1BQU0sRUFBRSxjQW5Db0I7QUFxQzVCQyxJQUFBQSxlQUFlLEVBQUU7QUFyQ1csR0FBOUI7O0FBd0NBLE1BQUksQ0FBQ3BDLGdCQUFFcUMsR0FBRixDQUFNdkIscUJBQU4sRUFBNkJGLGFBQTdCLENBQUwsRUFBa0Q7QUFDaEQsVUFBTSxJQUFJVCx5QkFBT21DLG1CQUFYLENBQWdDLDJCQUEwQjFCLGFBQWMsS0FBekMsR0FDbEMsUUFBT1osZ0JBQUV1QyxJQUFGLENBQU96QixxQkFBUCxDQUE4QiwwQkFEbEMsQ0FBTjtBQUVEOztBQUNELFNBQU8sTUFBTSxLQUFLQSxxQkFBcUIsQ0FBQ0YsYUFBRCxDQUExQixFQUEyQ0MsSUFBM0MsQ0FBYjtBQUNELENBOUNEOztlQWdEZXZCLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzLCBQUk9UT0NPTFMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5sZXQgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLmV4ZWN1dGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKHNjcmlwdC5tYXRjaCgvXm1vYmlsZTovKSkge1xuICAgIGxvZ2dlci5pbmZvKGBFeGVjdXRpbmcgbmF0aXZlIGNvbW1hbmQgJyR7c2NyaXB0fSdgKTtcbiAgICBzY3JpcHQgPSBzY3JpcHQucmVwbGFjZSgvXm1vYmlsZTovLCAnJykudHJpbSgpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVNb2JpbGUoc2NyaXB0LCBfLmlzQXJyYXkoYXJncykgPyBhcmdzWzBdIDogYXJncyk7XG4gIH1cbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbiAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gUFJPVE9DT0xTLk1KU09OV1BcbiAgICA/ICcvZXhlY3V0ZSdcbiAgICA6ICcvZXhlY3V0ZS9zeW5jJztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZChlbmRwb2ludCwgJ1BPU1QnLCB7XG4gICAgc2NyaXB0LFxuICAgIGFyZ3MsXG4gIH0pO1xufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBzdGFydExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdGFydExvZ3NCcm9hZGNhc3QnLFxuICAgIHN0b3BMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RvcExvZ3NCcm9hZGNhc3QnLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBwZXJmb3JtRWRpdG9yQWN0aW9uOiAnbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbicsXG5cbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuXG4gICAgc3RhcnRTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdGFydFNjcmVlblN0cmVhbWluZycsXG4gICAgc3RvcFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0b3BTY3JlZW5TdHJlYW1pbmcnLFxuXG4gICAgZ2V0Tm90aWZpY2F0aW9uczogJ21vYmlsZUdldE5vdGlmaWNhdGlvbnMnLFxuXG4gICAgbGlzdFNtczogJ21vYmlsZUxpc3RTbXMnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgY2xlYXJBcHA6ICdtb2JpbGVDbGVhckFwcCcsXG5cbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuICAgIHN0YXJ0QWN0aXZpdHk6ICdtb2JpbGVTdGFydEFjdGl2aXR5JyxcbiAgICBicm9hZGNhc3Q6ICdtb2JpbGVCcm9hZGNhc3QnLFxuXG4gICAgZ2V0Q29udGV4dHM6ICdtb2JpbGVHZXRDb250ZXh0cycsXG5cbiAgICB1bmxvY2s6ICdtb2JpbGVVbmxvY2snLFxuXG4gICAgcmVmcmVzaEdwc0NhY2hlOiAnbW9iaWxlUmVmcmVzaEdwc0NhY2hlJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKG1vYmlsZUNvbW1hbmRzTWFwcGluZywgbW9iaWxlQ29tbWFuZCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3IoYFVua25vd24gbW9iaWxlIGNvbW1hbmQgXCIke21vYmlsZUNvbW1hbmR9XCIuIGAgK1xuICAgICAgYE9ubHkgJHtfLmtleXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nKX0gY29tbWFuZHMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpc1ttb2JpbGVDb21tYW5kc01hcHBpbmdbbW9iaWxlQ29tbWFuZF1dKG9wdHMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -156,6 +156,13 @@ commands.setGeoLocation = async function setGeoLocation(location) {
156
156
  }
157
157
  };
158
158
 
159
+ commands.mobileRefreshGpsCache = async function mobileRefreshGpsCache(opts = {}) {
160
+ const {
161
+ timeoutMs
162
+ } = opts;
163
+ await this.adb.refreshGeoLocationCache(timeoutMs);
164
+ };
165
+
159
166
  commands.getGeoLocation = async function getGeoLocation() {
160
167
  const {
161
168
  latitude,
@@ -262,4 +269,4 @@ var _default = extensions;
262
269
  exports.default = _default;require('source-map-support').install();
263
270
 
264
271
 
265
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9uZXR3b3JrLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJBSVJQTEFORV9NT0RFX01BU0siLCJXSUZJX01BU0siLCJEQVRBX01BU0siLCJHRU9fRVBTSUxPTiIsIk51bWJlciIsIk1JTl9WQUxVRSIsImdldE5ldHdvcmtDb25uZWN0aW9uIiwibG9nIiwiaW5mbyIsImFpcnBsYW5lTW9kZU9uIiwiYWRiIiwiaXNBaXJwbGFuZU1vZGVPbiIsImNvbm5lY3Rpb24iLCJ3aWZpT24iLCJpc1dpZmlPbiIsImRhdGFPbiIsImlzRGF0YU9uIiwic2V0TmV0d29ya0Nvbm5lY3Rpb24iLCJ0eXBlIiwic2hvdWxkRW5hYmxlQWlycGxhbmVNb2RlIiwic2hvdWxkRW5hYmxlV2lmaSIsInNob3VsZEVuYWJsZURhdGFDb25uZWN0aW9uIiwiY3VycmVudFN0YXRlIiwiaXNBaXJwbGFuZU1vZGVFbmFibGVkIiwiaXNXaUZpRW5hYmxlZCIsImlzRGF0YUVuYWJsZWQiLCJ3cmFwQm9vdHN0cmFwRGlzY29ubmVjdCIsInNldEFpcnBsYW5lTW9kZSIsImJyb2FkY2FzdEFpcnBsYW5lTW9kZSIsInNldFdpZmlTdGF0ZSIsInNldERhdGFTdGF0ZSIsImlzRW11bGF0b3IiLCJ3aWZpIiwidG9nZ2xlRGF0YSIsImRhdGEiLCJzZXRXaWZpQW5kRGF0YSIsInRvZ2dsZVdpRmkiLCJ0b2dnbGVGbGlnaHRNb2RlIiwiZmxpZ2h0TW9kZSIsInNldEdlb0xvY2F0aW9uIiwibG9jYXRpb24iLCJnZXRHZW9Mb2NhdGlvbiIsImUiLCJ3YXJuIiwibWVzc2FnZSIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiYWx0aXR1ZGUiLCJwYXJzZUZsb2F0IiwiS2V5Q29kZSIsIlVQIiwiRE9XTiIsIlJJR0hUIiwiQ0VOVEVSIiwidG9nZ2xlTG9jYXRpb25TZXJ2aWNlcyIsImFwaSIsImdldEFwaUxldmVsIiwicHJvdmlkZXJzIiwiZ2V0TG9jYXRpb25Qcm92aWRlcnMiLCJpc0dwc0VuYWJsZWQiLCJpbmRleE9mIiwidG9nZ2xlR1BTTG9jYXRpb25Qcm92aWRlciIsInNlcSIsInB1c2giLCJrZXlldmVudCIsInRvZ2dsZVNldHRpbmciLCJlcnJvcnMiLCJOb3RZZXRJbXBsZW1lbnRlZEVycm9yIiwic2V0dGluZyIsInByZUtleVNlcSIsIl8iLCJpc051bGwiLCJvcGVuU2V0dGluZ3NBY3Rpdml0eSIsImtleSIsImRvS2V5IiwiYXBwUGFja2FnZSIsImFwcEFjdGl2aXR5IiwiZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSIsIndhaXRGb3JOb3RBY3Rpdml0eSIsImlnbiIsImJhY2siLCJCIiwiZGVsYXkiLCJ3cmFwcGVkIiwiYm9vdHN0cmFwIiwiaWdub3JlVW5leHBlY3RlZFNodXRkb3duIiwicmVzdGFydCIsInN0YXJ0Iiwib3B0cyIsImRpc2FibGVBbmRyb2lkV2F0Y2hlcnMiLCJhY2NlcHRTc2xDZXJ0cyIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFJQSxRQUFRLEdBQUcsRUFBZjtBQUFBLElBQW1CQyxPQUFPLEdBQUcsRUFBN0I7QUFBQSxJQUFpQ0MsVUFBVSxHQUFHLEVBQTlDOzs7QUFFQSxNQUFNQyxrQkFBa0IsR0FBRyxLQUEzQjtBQUNBLE1BQU1DLFNBQVMsR0FBRyxLQUFsQjtBQUNBLE1BQU1DLFNBQVMsR0FBRyxLQUFsQjtBQU1BLE1BQU1DLFdBQVcsR0FBR0MsTUFBTSxDQUFDQyxTQUEzQjs7QUFFQVIsUUFBUSxDQUFDUyxvQkFBVCxHQUFnQyxlQUFlQSxvQkFBZixHQUF1QztBQUNyRUMsa0JBQUlDLElBQUosQ0FBUyw0QkFBVDs7QUFDQSxNQUFJQyxjQUFjLEdBQUcsTUFBTSxLQUFLQyxHQUFMLENBQVNDLGdCQUFULEVBQTNCO0FBQ0EsTUFBSUMsVUFBVSxHQUFHSCxjQUFjLEdBQUdULGtCQUFILEdBQXdCLENBQXZEOztBQUdBLE1BQUks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LElBQTFDOztBQUNBLE1BQUk7QUFDRixVQUFNRixPQUFPLEVBQWI7QUFDQSxVQUFNLEtBQUt6RSxHQUFMLENBQVM0RSxPQUFULEVBQU47QUFDQSxVQUFNLEtBQUtGLFNBQUwsQ0FBZUcsS0FBZixDQUFxQixLQUFLQyxJQUFMLENBQVViLFVBQS9CLEVBQTJDLEtBQUthLElBQUwsQ0FBVUMsc0JBQXJELEVBQTZFLEtBQUtELElBQUwsQ0FBVUUsY0FBdkYsQ0FBTjtBQUNELEdBSkQsU0FJVTtBQUNSLFNBQUtOLFNBQUwsQ0FBZUMsd0JBQWYsR0FBMEMsS0FBMUM7QUFDRDtBQUNGLENBYkQ7O0FBZUFNLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjN0YsVUFBZCxFQUEwQkYsUUFBMUIsRUFBb0NDLE9BQXBDO2VBRWVDLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtLWJhc2UtZHJpdmVyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5jb25zdCBBSVJQTEFORV9NT0RFX01BU0sgPSAwYjAwMTtcbmNvbnN0IFdJRklfTUFTSyA9IDBiMDEwO1xuY29uc3QgREFUQV9NQVNLID0gMGIxMDA7XG4vLyBUaGUgdmFsdWUgY2xvc2UgdG8gemVybywgYnV0IG5vdCB6ZXJvLCBpcyBuZWVkZWRcbi8vIHRvIHRyaWNrIEpTT04gZ2VuZXJhdGlvbiBhbmQgc2VuZCBhIGZsb2F0IHZhbHVlIGluc3RlYWQgb2YgYW4gaW50ZWdlcixcbi8vIFRoaXMgYWxsb3dzIHN0cmljdGx5LXR5cGVkIGNsaWVudHMsIGxpa2UgSmF2YSwgdG8gcHJvcGVybHlcbi8vIHBhcnNlIGl0LiBPdGhlcndpc2UgZmxvYXQgMC4wIGlzIGFsd2F5cyByZXByZXNlbnRlZCBhcyBpbnRlZ2VyIDAgaW4gSlMuXG4vLyBUaGUgdmFsdWUgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIERCTF9FUFNJTE9OIChodHRwczovL29wZW5zb3VyY2UuYXBwbGUuY29tL3NvdXJjZS9MaWJjL0xpYmMtNDk4L2luY2x1ZGUvZmxvYXQuaClcbmNvbnN0IEdFT19FUFNJTE9OID0gTnVtYmVyLk1JTl9WQUxVRTtcblxuY29tbWFuZHMuZ2V0TmV0d29ya0Nvbm5lY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBnZXROZXR3b3JrQ29ubmVjdGlvbiAoKSB7XG4gIGxvZy5pbmZvKCdHZXR0aW5nIG5ldHdvcmsgY29ubmVjdGlvbicpO1xuICBsZXQgYWlycGxhbmVNb2RlT24gPSBhd2FpdCB0aGlzLmFkYi5pc0FpcnBsYW5lTW9kZU9uKCk7XG4gIGxldCBjb25uZWN0aW9uID0gYWlycGxhbmVNb2RlT24gPyBBSVJQTEFORV9NT0RFX01BU0sgOiAwO1xuXG4gIC8vIG5vIG5lZWQgdG8gY2hlY2sgYW55dGhpbmcgZWxzZSBpZiB3ZSBhcmUgaW4gYWlycGxhbmUgbW9kZVxuICBpZiAoIWFpcnBsYW5lTW9kZU9uKSB7XG4gICAgbGV0IHdpZmlPbiA9IGF3YWl0IHRoaXMuaXNXaWZpT24oKTtcbiAgICBjb25uZWN0aW9uIHw9ICh3aWZpT24gPyBXSUZJX01BU0sgOiAwKTtcbiAgICBsZXQgZGF0YU9uID0gYXdhaXQgdGhpcy5hZGIuaXNEYXRhT24oKTtcbiAgICBjb25uZWN0aW9uIHw9IChkYXRhT24gPyBEQVRBX01BU0sgOiAwKTtcbiAgfVxuXG4gIHJldHVybiBjb25uZWN0aW9uO1xufTtcblxuLyoqXG4gKiBkZWNvdXBsaW5nIHRvIG92ZXJyaWRlIHRoZSBiZWhhdmlvdXIgaW4gb3RoZXIgZHJpdmVycyBsaWtlIFVpQXV0b21hdG9yMi5cbiAqL1xuY29tbWFuZHMuaXNXaWZpT24gPSBhc3luYyBmdW5jdGlvbiBpc1dpZmlPbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5pc1dpZmlPbigpO1xufTtcblxuY29tbWFuZHMuc2V0TmV0d29ya0Nvbm5lY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBzZXROZXR3b3JrQ29ubmVjdGlvbiAodHlwZSkge1xuICBsb2cuaW5mbygnU2V0dGluZyBuZXR3b3JrIGNvbm5lY3Rpb24nKTtcbiAgLy8gZGVjb2RlIHRoZSBpbnB1dFxuICBjb25zdCBzaG91bGRFbmFibGVBaXJwbGFuZU1vZGUgPSAodHlwZSAmIEFJUlBMQU5FX01PREVfTUFTSykgIT09IDA7XG4gIGNvbnN0IHNob3VsZEVuYWJsZVdpZmkgPSAodHlwZSAmIFdJRklfTUFTSykgIT09IDA7XG4gIGNvbnN0IHNob3VsZEVuYWJsZURhdGFDb25uZWN0aW9uID0gKHR5cGUgJiBEQVRBX01BU0spICE9PSAwO1xuXG4gIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGF3YWl0IHRoaXMuZ2V0TmV0d29ya0Nvbm5lY3Rpb24oKTtcbiAgY29uc3QgaXNBaXJwbGFuZU1vZGVFbmFibGVkID0gKGN1cnJlbnRTdGF0ZSAmIEFJUlBMQU5FX01PREVfTUFTSykgIT09IDA7XG4gIGNvbnN0IGlzV2lGaUVuYWJsZWQgPSAoY3VycmVudFN0YXRlICYgV0lGSV9NQVNLKSAhPT0gMDtcbiAgY29uc3QgaXNEYXRhRW5hYmxlZCA9IChjdXJyZW50U3RhdGUgJiBEQVRBX01BU0spICE9PSAwO1xuXG4gIGlmIChzaG91bGRFbmFibGVBaXJwbGFuZU1vZGUgIT09IGlzQWlycGxhbmVNb2RlRW5hYmxlZCkge1xuICAgIGF3YWl0IHRoaXMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5hZGIuc2V0QWlycGxhbmVNb2RlKHNob3VsZEVuYWJsZUFpcnBsYW5lTW9kZSk7XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLmFkYi5icm9hZGNhc3RBaXJwbGFuZU1vZGUoc2hvdWxkRW5hYmxlQWlycGxhbmVNb2RlKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBsb2cuaW5mbyhgTm90IGNoYW5naW5nIGFpcnBsYW5lIG1vZGUsIHNpbmNlIGl0IGlzIGFscmVhZHkgYCArXG4gICAgICAgICAgICAgYCR7c2hvdWxkRW5hYmxlQWlycGxhbmVNb2RlID8gJ2VuYWJsZWQnIDogJ2Rpc2FibGVkJ31gKTtcbiAgfVxuXG4gIGlmIChzaG91bGRFbmFibGVXaWZpID09PSBpc1dpRmlFbmFibGVkICYmIHNob3VsZEVuYWJsZURhdGFDb25uZWN0aW9uID09PSBpc0RhdGFFbmFibGVkKSB7XG4gICAgbG9nLmluZm8oJ05vdCBjaGFuZ2luZyBkYXRhIGNvbm5lY3Rpb24vV2ktRmkgc3RhdGVzLCBzaW5jZSB0aGV5IGFyZSBhbHJlYWR5IHNldCB0byBleHBlY3RlZCB2YWx1ZXMnKTtcbiAgICBpZiAoYXdhaXQgdGhpcy5hZGIuaXNBaXJwbGFuZU1vZGVPbigpKSB7XG4gICAgICByZXR1cm4gQUlSUExBTkVfTU9ERV9NQVNLIHwgY3VycmVudFN0YXRlO1xuICAgIH1cbiAgICByZXR1cm4gfkFJUlBMQU5FX01PREVfTUFTSyAmIGN1cnJlbnRTdGF0ZTtcbiAgfVxuXG4gIGF3YWl0IHRoaXMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QoYXN5bmMgKCkgPT4ge1xuICAgIGlmIChzaG91bGRFbmFibGVXaWZpICE9PSBpc1dpRmlFbmFibGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFdpZmlTdGF0ZShzaG91bGRFbmFibGVXaWZpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmluZm8oYE5vdCBjaGFuZ2luZyBXaS1GaSBzdGF0ZSwgc2luY2UgaXQgaXMgYWxyZWFkeSBgICtcbiAgICAgICAgICAgICAgIGAke3Nob3VsZEVuYWJsZVdpZmkgPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnfWApO1xuICAgIH1cblxuICAgIGlmIChzaG91bGRFbmFibGVBaXJwbGFuZU1vZGUpIHtcbiAgICAgIGxvZy5pbmZvKCdOb3QgY2hhbmdpbmcgZGF0YSBjb25uZWN0aW9uIHN0YXRlLCBiZWNhdXNlIGFpcnBsYW5lIG1vZGUgaXMgZW5hYmxlZCcpO1xuICAgIH0gZWxzZSBpZiAoc2hvdWxkRW5hYmxlRGF0YUNvbm5lY3Rpb24gPT09IGlzRGF0YUVuYWJsZWQpIHtcbiAgICAgIGxvZy5pbmZvKGBOb3QgY2hhbmdpbmcgZGF0YSBjb25uZWN0aW9uIHN0YXRlLCBzaW5jZSBpdCBpcyBhbHJlYWR5IGAgK1xuICAgICAgICAgICAgICAgYCR7c2hvdWxkRW5hYmxlRGF0YUNvbm5lY3Rpb24gPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYi5zZXREYXRhU3RhdGUoc2hvdWxkRW5hYmxlRGF0YUNvbm5lY3Rpb24sIHRoaXMuaXNFbXVsYXRvcigpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmdldE5ldHdvcmtDb25uZWN0aW9uKCk7XG59O1xuXG4vKipcbiAqIGRlY291cGxpbmcgdG8gb3ZlcnJpZGUgYmVoYXZpb3VyIGluIG90aGVyIGRyaXZlcnMgbGlrZSBVaUF1dG9tYXRvcjIuXG4gKi9cbmNvbW1hbmRzLnNldFdpZmlTdGF0ZSA9IGFzeW5jIGZ1bmN0aW9uIHNldFdpZmlTdGF0ZSAod2lmaSkge1xuICBhd2FpdCB0aGlzLmFkYi5zZXRXaWZpU3RhdGUod2lmaSwgdGhpcy5pc0VtdWxhdG9yKCkpO1xufTtcblxuY29tbWFuZHMudG9nZ2xlRGF0YSA9IGFzeW5jIGZ1bmN0aW9uIHRvZ2dsZURhdGEgKCkge1xuICBsZXQgZGF0YSA9ICEoYXdhaXQgdGhpcy5hZGIuaXNEYXRhT24oKSk7XG4gIGxvZy5pbmZvKGBUdXJuaW5nIG5ldHdvcmsgZGF0YSAke2RhdGEgPyAnb24nIDogJ29mZid9YCk7XG4gIGF3YWl0IHRoaXMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHRoaXMuYWRiLnNldFdpZmlBbmREYXRhKHtkYXRhfSwgdGhpcy5pc0VtdWxhdG9yKCkpO1xuICB9KTtcbn07XG5cbmNvbW1hbmRzLnRvZ2dsZVdpRmkgPSBhc3luYyBmdW5jdGlvbiB0b2dnbGVXaUZpICgpIHtcbiAgbGV0IHdpZmkgPSAhKGF3YWl0IHRoaXMuYWRiLmlzV2lmaU9uKCkpO1xuICBsb2cuaW5mbyhgVHVybmluZyBXaUZpICR7d2lmaSA/ICdvbicgOiAnb2ZmJ31gKTtcbiAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5hZGIuc2V0V2lmaUFuZERhdGEoe3dpZml9LCB0aGlzLmlzRW11bGF0b3IoKSk7XG4gIH0pO1xufTtcblxuY29tbWFuZHMudG9nZ2xlRmxpZ2h0TW9kZSA9IGFzeW5jIGZ1bmN0aW9uIHRvZ2dsZUZsaWdodE1vZGUgKCkge1xuICAvKlxuICAgKiBUT0RPOiBJbXBsZW1lbnQgaXNSZWFsRGV2aWNlKCkuIFRoaXMgbWV0aG9kIGZhaWxzIG9uXG4gICAqIHJlYWwgZGV2aWNlcywgaXQgc2hvdWxkIHRocm93IGEgTm90WWV0SW1wbGVtZW50ZWRFcnJvclxuICAgKi9cbiAgbGV0IGZsaWdodE1vZGUgPSAhKGF3YWl0IHRoaXMuYWRiLmlzQWlycGxhbmVNb2RlT24oKSk7XG4gIGxvZy5pbmZvKGBUdXJuaW5nIGZsaWdodCBtb2RlICR7ZmxpZ2h0TW9kZSA/ICdvbicgOiAnb2ZmJ31gKTtcbiAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5hZGIuc2V0QWlycGxhbmVNb2RlKGZsaWdodE1vZGUpO1xuICB9KTtcbiAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5hZGIuYnJvYWRjYXN0QWlycGxhbmVNb2RlKGZsaWdodE1vZGUpO1xuICB9KTtcbn07XG5cbmNvbW1hbmRzLnNldEdlb0xvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gc2V0R2VvTG9jYXRpb24gKGxvY2F0aW9uKSB7XG4gIGF3YWl0IHRoaXMuYWRiLnNldEdlb0xvY2F0aW9uKGxvY2F0aW9uLCB0aGlzLmlzRW11bGF0b3IoKSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0R2VvTG9jYXRpb24oKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy53YXJuKGBDb3VsZCBub3QgZ2V0IHRoZSBjdXJyZW50IGdlb2xvY2F0aW9uIGluZm86ICR7ZS5tZXNzYWdlfWApO1xuICAgIGxvZy53YXJuKGBSZXR1cm5pbmcgdGhlIGRlZmF1bHQgemVybydlZCB2YWx1ZXNgKTtcbiAgICByZXR1cm4ge1xuICAgICAgbGF0aXR1ZGU6IEdFT19FUFNJTE9OLFxuICAgICAgbG9uZ2l0dWRlOiBHRU9fRVBTSUxPTixcbiAgICAgIGFsdGl0dWRlOiBHRU9fRVBTSUxPTixcbiAgICB9O1xuICB9XG59O1xuXG5jb21tYW5kcy5nZXRHZW9Mb2NhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldEdlb0xvY2F0aW9uICgpIHtcbiAgY29uc3Qge2xhdGl0dWRlLCBsb25naXR1ZGUsIGFsdGl0dWRlfSA9IGF3YWl0IHRoaXMuYWRiLmdldEdlb0xvY2F0aW9uKCk7XG4gIHJldHVybiB7XG4gICAgbGF0aXR1ZGU6IHBhcnNlRmxvYXQobGF0aXR1ZGUpIHx8IEdFT19FUFNJTE9OLFxuICAgIGxvbmdpdHVkZTogcGFyc2VGbG9hdChsb25naXR1ZGUpIHx8IEdFT19FUFNJTE9OLFxuICAgIGFsdGl0dWRlOiBwYXJzZUZsb2F0KGFsdGl0dWRlKSB8fCBHRU9fRVBTSUxPTixcbiAgfTtcbn07XG4vLyBodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC92aWV3L0tleUV2ZW50Lmh0bWwjS0VZQ09ERV9EUEFEX0NFTlRFUlxuLy8gaW4gdGhlIGFuZHJvaWQgZG9jcywgdGhpcyBpcyBob3cgdGhlIGtleWNvZGVzIGFyZSBkZWZpbmVkXG5jb25zdCBLZXlDb2RlID0ge1xuICBVUDogMTksXG4gIERPV046IDIwLFxuICBSSUdIVDogMjIsXG4gIENFTlRFUjogMjNcbn07XG5jb21tYW5kcy50b2dnbGVMb2NhdGlvblNlcnZpY2VzID0gYXN5bmMgZnVuY3Rpb24gdG9nZ2xlTG9jYXRpb25TZXJ2aWNlcyAoKSB7XG4gIGxvZy5pbmZvKCdUb2dnbGluZyBsb2NhdGlvbiBzZXJ2aWNlcycpO1xuICBsZXQgYXBpID0gYXdhaXQgdGhpcy5hZGIuZ2V0QXBpTGV2ZWwoKTtcbiAgaWYgKHRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgbGV0IHByb3ZpZGVycyA9IGF3YWl0IHRoaXMuYWRiLmdldExvY2F0aW9uUHJvdmlkZXJzKCk7XG4gICAgbGV0IGlzR3BzRW5hYmxlZCA9IHByb3ZpZGVycy5pbmRleE9mKCdncHMnKSAhPT0gLTE7XG4gICAgYXdhaXQgdGhpcy5hZGIudG9nZ2xlR1BTTG9jYXRpb25Qcm92aWRlcighaXNHcHNFbmFibGVkKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoYXBpID4gMTUpIHtcbiAgICBsZXQgc2VxID0gW0tleUNvZGUuVVAsIEtleUNvZGUuVVBdO1xuICAgIGlmIChhcGkgPT09IDE2KSB7XG4gICAgICAvLyBUaGlzIHZlcnNpb24gb2YgQW5kcm9pZCBoYXMgYSBcInBhcmVudFwiIGJ1dHRvbiBpbiBpdHMgYWN0aW9uIGJhclxuICAgICAgc2VxLnB1c2goS2V5Q29kZS5ET1dOKTtcbiAgICB9IGVsc2UgaWYgKGFwaSA8IDI4KSB7XG4gICAgICAvLyBOZXdlciB2ZXJzaW9ucyBvZiBBbmRyb2lkIGhhdmUgdGhlIHRvZ2dsZSBpbiB0aGUgQWN0aW9uIGJhclxuICAgICAgc2VxID0gW0tleUNvZGUuUklHSFQsIEtleUNvZGUuUklHSFQsIEtleUNvZGUuVVBdO1xuICAgICAgLypcbiAgICAgICAqIE9uY2UgdGhlIExvY2F0aW9uIHNlcnZpY2VzIHN3aXRjaCBpcyBPRkYsIGl0IHdvbid0IHJlY2VpdmUgZm9jdXNcbiAgICAgICAqIHdoZW4gZ29pbmcgYmFjayB0byB0aGUgTG9jYXRpb24gU2VydmljZXMgc2V0dGluZ3Mgc2NyZWVuIHVubGVzcyB3ZVxuICAgICAgICogc2VuZCBhIGR1bW15IGtleWV2ZW50IChVUCkgKmJlZm9yZSogb3BlbmluZyB0aGUgc2V0dGluZ3Mgc2NyZWVuXG4gICAgICAgKi9cbiAgICAgIGF3YWl0IHRoaXMuYWRiLmtleWV2ZW50KEtleUNvZGUuVVApO1xuICAgIH0gZWxzZSBpZiAoYXBpID49IDI4KSB7XG4gICAgICAvLyBFdmVuIG5ld2VyIHZlcnNpb25zIG9mIGFuZHJvaWQgaGF2ZSB0aGUgdG9nZ2xlIGluIGEgYmFyIGJlbG93IHRoZSBhY3Rpb24gYmFyXG4gICAgICAvLyB0aGlzIG1lYW5zIGEgc2luZ2xlIHJpZ2h0IGNsaWNrIHdpbGwgY2F1c2UgaXQgdG8gYmUgc2VsZWN0ZWQuXG4gICAgICBzZXEgPSBbS2V5Q29kZS5SSUdIVF07XG4gICAgICBhd2FpdCB0aGlzLmFkYi5rZXlldmVudChLZXlDb2RlLlVQKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy50b2dnbGVTZXR0aW5nKCdMT0NBVElPTl9TT1VSQ0VfU0VUVElOR1MnLCBzZXEpO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoZXJlJ3Mgbm8gZ2xvYmFsIGxvY2F0aW9uIHNlcnZpY2VzIHRvZ2dsZSBvbiBvbGRlciBBbmRyb2lkIHZlcnNpb25zXG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RZZXRJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbn07XG5cbmhlbHBlcnMudG9nZ2xlU2V0dGluZyA9IGFzeW5jIGZ1bmN0aW9uIHRvZ2dsZVNldHRpbmcgKHNldHRpbmcsIHByZUtleVNlcSkge1xuICAvKlxuICAgKiBwcmVLZXlTZXEgaXMgdGhlIGtleWV2ZW50IHNlcXVlbmNlIHRvIHNlbmQgb3ZlciBBREIgaW4gb3JkZXJcbiAgICogdG8gcG9zaXRpb24gdGhlIGN1cnNvciBvbiB0aGUgcmlnaHQgb3B0aW9uLlxuICAgKiBCeSBkZWZhdWx0IGl0J3MgW3VwLCB1cCwgZG93bl0gYmVjYXVzZSB3ZSB1c3VhbGx5IHRhcmdldCB0aGUgMXN0IGl0ZW0gaW5cbiAgICogdGhlIHNjcmVlbiwgYW5kIHNvbWV0aW1lcyB3aGVuIG9wZW5pbmcgc2V0dGluZ3MgYWN0aXZpdGllcyB0aGUgY3Vyc29yIGlzXG4gICAqIGFscmVhZHkgcG9zaXRpb25uZWQgb24gdGhlIDFzdCBpdGVtLCBidXQgd2UgY2FuJ3Qga25vdyBmb3Igc3VyZVxuICAgKi9cbiAgaWYgKF8uaXNOdWxsKHByZUtleVNlcSkpIHtcbiAgICBwcmVLZXlTZXEgPSBbS2V5Q29kZS5VUCwgS2V5Q29kZS5VUCwgS2V5Q29kZS5ET1dOXTtcbiAgfVxuXG4gIGF3YWl0IHRoaXMub3BlblNldHRpbmdzQWN0aXZpdHkoc2V0dGluZyk7XG5cbiAgZm9yIChsZXQga2V5IG9mIHByZUtleVNlcSkge1xuICAgIGF3YWl0IHRoaXMuZG9LZXkoa2V5KTtcbiAgfVxuXG4gIGxldCB7YXBwUGFja2FnZSwgYXBwQWN0aXZpdHl9ID0gYXdhaXQgdGhpcy5hZGIuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSgpO1xuXG4gIC8qXG4gICAqIENsaWNrIGFuZCBoYW5kbGUgcG90ZW50aWFsIEFEQiBkaXNjb25uZWN0IHRoYXQgb2NjdXJzIG9uIG9mZmljaWFsXG4gICAqIGVtdWxhdG9yIHdoZW4gdGhlIG5ldHdvcmsgY29ubmVjdGlvbiBpcyBkaXNhYmxlZFxuICAgKi9cbiAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5kb0tleShLZXlDb2RlLkNFTlRFUik7XG4gIH0pO1xuXG4gIC8qXG4gICAqIEluIG9uZSBwYXJ0aWN1bGFyIGNhc2UgKGVuYWJsZSBMb2NhdGlvbiBTZXJ2aWNlcyksIGEgcG9wLXVwIGlzXG4gICAqIGRpc3BsYXllZCBvbiBzb21lIHBsYXRmb3JtcyBzbyB0aGUgdXNlciBhY2NlcHRzIG9yIHJlZnVzZXMgdGhhdCBHb29nbGVcbiAgICogY29sbGVjdHMgbG9jYXRpb24gZGF0YS4gU28gd2Ugd2FpdCBmb3IgdGhhdCBwb3AtdXAgdG8gb3BlbiwgaWYgaXRcbiAgICogZG9lc24ndCB0aGVuIHByb2NlZWRcbiAgICovXG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5hZGIud2FpdEZvck5vdEFjdGl2aXR5KGFwcFBhY2thZ2UsIGFwcEFjdGl2aXR5LCA1MDAwKTtcbiAgICBhd2FpdCB0aGlzLmRvS2V5KEtleUNvZGUuUklHSFQpO1xuICAgIGF3YWl0IHRoaXMuZG9LZXkoS2V5Q29kZS5DRU5URVIpO1xuICAgIGF3YWl0IHRoaXMuYWRiLndhaXRGb3JOb3RBY3Rpdml0eShhcHBQYWNrYWdlLCBhcHBBY3Rpdml0eSwgNTAwMCk7XG4gIH0gY2F0Y2ggKGlnbikge31cblxuICBhd2FpdCB0aGlzLmFkYi5iYWNrKCk7XG59O1xuXG5oZWxwZXJzLmRvS2V5ID0gYXN5bmMgZnVuY3Rpb24gZG9LZXkgKGtleSkge1xuICAvLyBUT0RPOiBDb25maXJtIHdlIG5lZWQgdGhpcyBkZWxheS4gU2VlbXMgdG8gd29yayB3aXRob3V0IGl0LlxuICBhd2FpdCBCLmRlbGF5KDIwMDApO1xuICBhd2FpdCB0aGlzLmFkYi5rZXlldmVudChrZXkpO1xufTtcblxuaGVscGVycy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdCA9IGFzeW5jIGZ1bmN0aW9uIHdyYXBCb290c3RyYXBEaXNjb25uZWN0ICh3cmFwcGVkKSB7XG4gIGlmICghdGhpcy5ib290c3RyYXApIHtcbiAgICByZXR1cm4gYXdhaXQgd3JhcHBlZCgpO1xuICB9XG5cbiAgdGhpcy5ib290c3RyYXAuaWdub3JlVW5leHBlY3RlZFNodXRkb3duID0gdHJ1ZTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB3cmFwcGVkKCk7XG4gICAgYXdhaXQgdGhpcy5hZGIucmVzdGFydCgpO1xuICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnN0YXJ0KHRoaXMub3B0cy5hcHBQYWNrYWdlLCB0aGlzLm9wdHMuZGlzYWJsZUFuZHJvaWRXYXRjaGVycywgdGhpcy5vcHRzLmFjY2VwdFNzbENlcnRzKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLmJvb3RzdHJhcC5pZ25vcmVVbmV4cGVjdGVkU2h1dGRvd24gPSBmYWxzZTtcbiAgfVxufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL25ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
272
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9uZXR3b3JrLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJBSVJQTEFORV9NT0RFX01BU0siLCJXSUZJX01BU0siLCJEQVRBX01BU0siLCJHRU9fRVBTSUxPTiIsIk51bWJlciIsIk1JTl9WQUxVRSIsImdldE5ldHdvcmtDb25uZWN0aW9uIiwibG9nIiwiaW5mbyIsImFpcnBsYW5lTW9kZU9uIiwiYWRiIiwiaXNBaXJwbGFuZU1vZGVPbiIsImNvbm5lY3Rpb24iLCJ3aWZpT24iLCJpc1dpZmlPbiIsImRhdGFPbiIsImlzRGF0YU9uIiwic2V0TmV0d29ya0Nvbm5lY3Rpb24iLCJ0eXBlIiwic2hvdWxkRW5hYmxlQWlycGxhbmVNb2RlIiwic2hvdWxkRW5hYmxlV2lmaSIsInNob3VsZEVuYWJsZURhdGFDb25uZWN0aW9uIiwiY3VycmVudFN0YXRlIiwiaXNBaXJwbGFuZU1vZGVFbmFibGVkIiwiaXNXaUZpRW5hYmxlZCIsImlzRGF0YUVuYWJsZWQiLCJ3cmFwQm9vdHN0cmFwRGlzY29ubmVjdCIsInNldEFpcnBsYW5lTW9kZSIsImJyb2FkY2FzdEFpcnBsYW5lTW9kZSIsInNldFdpZmlTdGF0ZSIsInNldERhdGFTdGF0ZSIsImlzRW11bGF0b3IiLCJ3aWZpIiwidG9nZ2xlRGF0YSIsImRhdGEiLCJzZXRXaWZpQW5kRGF0YSIsInRvZ2dsZVdpRmkiLCJ0b2dnbGVGbGlnaHRNb2RlIiwiZmxpZ2h0TW9kZSIsInNldEdlb0xvY2F0aW9uIiwibG9jYXRpb24iLCJnZXRHZW9Mb2NhdGlvbiIsImUiLCJ3YXJuIiwibWVzc2FnZSIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiYWx0aXR1ZGUiLCJtb2JpbGVSZWZyZXNoR3BzQ2FjaGUiLCJvcHRzIiwidGltZW91dE1zIiwicmVmcmVzaEdlb0xvY2F0aW9uQ2FjaGUiLCJwYXJzZUZsb2F0IiwiS2V5Q29kZSIsIlVQIiwiRE9XTiIsIlJJR0hUIiwiQ0VOVEVSIiwidG9nZ2xlTG9jYXRpb25TZXJ2aWNlcyIsImFwaSIsImdldEFwaUxldmVsIiwicHJvdmlkZXJzIiwiZ2V0TG9jYXRpb25Qcm92aWRlcnMiLCJpc0dwc0VuYWJsZWQiLCJpbmRleE9mIiwidG9nZ2xlR1BTTG9jYXRpb25Qcm92aWRlciIsInNlcSIsInB1c2giLCJrZXlldmVudCIsInRvZ2dsZVNldHRpbmciLCJlcnJvcnMiLCJOb3RZZXRJbXBsZW1lbnRlZEVycm9yIiwic2V0dGluZyIsInByZUtleVNlcSIsIl8iLCJpc051bGwiLCJvcGVuU2V0dGluZ3NBY3Rpdml0eSIsImtleSIsImRvS2V5IiwiYXBwUGFja2FnZSIsImFwcEFjdGl2aXR5IiwiZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSIsIndhaXRGb3JOb3RBY3Rpdml0eSIsImlnbiIsImJhY2siLCJCIiwiZGVsYXkiLCJ3cmFwcGVkIiwiYm9vdHN0cmFwIiwiaWdub3JlVW5leHBlY3RlZFNodXRkb3duIiwicmVzdGFydCIsInN0YXJ0IiwiZGlzYWJsZUFuZHJvaWRXYXRjaGVycyIsImFjY2VwdFNzbENlcnRzIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFVLEdBQUcsRUFBOUM7OztBQUVBLE1BQU1DLGtCQUFrQixHQUFHLEtBQTNCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLEtBQWxCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLEtBQWxCO0FBTUEsTUFBTUMsV0FBVyxHQUFHQyxNQUFNLENBQUNDLFNBQTNCOztBQUVBUixRQUFRLENBQUNTLG9CQUFULEdBQWdDLGVBQWVBLG9CQUFmLEdBQXVDO0FBQ3JFQyxrQkFBSUMsSUFBSixDQUFTLDRCQUFUOztBQUNBLE1BQUlDLGNBQWMsR0FBRyxNQUFNLEtBQUtDLEdBQUwsQ0FBU0MsZ0JBQVQsRUFBM0I7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QUFRLElBQVIsQ0FBTjtBQUNBLFFBQU0sS0FBSzVFLEdBQUwsQ0FBUzBELFFBQVQsQ0FBa0JTLEdBQWxCLENBQU47QUFDRCxDQUpEOztBQU1BL0UsT0FBTyxDQUFDNEIsdUJBQVIsR0FBa0MsZUFBZUEsdUJBQWYsQ0FBd0M2RCxPQUF4QyxFQUFpRDtBQUNqRixNQUFJLENBQUMsS0FBS0MsU0FBVixFQUFxQjtBQUNuQixXQUFPLE1BQU1ELE9BQU8sRUFBcEI7QUFDRDs7QUFFRCxPQUFLQyxTQUFMLENBQWVDLHdCQUFmLEdBQTBDLElBQTFDOztBQUNBLE1BQUk7QUFDRixVQUFNRixPQUFPLEVBQWI7QUFDQSxVQUFNLEtBQUs3RSxHQUFMLENBQVNnRixPQUFULEVBQU47QUFDQSxVQUFNLEtBQUtGLFNBQUwsQ0FBZUcsS0FBZixDQUFxQixLQUFLMUMsSUFBTCxDQUFVOEIsVUFBL0IsRUFBMkMsS0FBSzlCLElBQUwsQ0FBVTJDLHNCQUFyRCxFQUE2RSxLQUFLM0MsSUFBTCxDQUFVNEMsY0FBdkYsQ0FBTjtBQUNELEdBSkQsU0FJVTtBQUNSLFNBQUtMLFNBQUwsQ0FBZUMsd0JBQWYsR0FBMEMsS0FBMUM7QUFDRDtBQUNGLENBYkQ7O0FBZUFLLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjaEcsVUFBZCxFQUEwQkYsUUFBMUIsRUFBb0NDLE9BQXBDO2VBRWVDLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtLWJhc2UtZHJpdmVyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5jb25zdCBBSVJQTEFORV9NT0RFX01BU0sgPSAwYjAwMTtcbmNvbnN0IFdJRklfTUFTSyA9IDBiMDEwO1xuY29uc3QgREFUQV9NQVNLID0gMGIxMDA7XG4vLyBUaGUgdmFsdWUgY2xvc2UgdG8gemVybywgYnV0IG5vdCB6ZXJvLCBpcyBuZWVkZWRcbi8vIHRvIHRyaWNrIEpTT04gZ2VuZXJhdGlvbiBhbmQgc2VuZCBhIGZsb2F0IHZhbHVlIGluc3RlYWQgb2YgYW4gaW50ZWdlcixcbi8vIFRoaXMgYWxsb3dzIHN0cmljdGx5LXR5cGVkIGNsaWVudHMsIGxpa2UgSmF2YSwgdG8gcHJvcGVybHlcbi8vIHBhcnNlIGl0LiBPdGhlcndpc2UgZmxvYXQgMC4wIGlzIGFsd2F5cyByZXByZXNlbnRlZCBhcyBpbnRlZ2VyIDAgaW4gSlMuXG4vLyBUaGUgdmFsdWUgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIERCTF9FUFNJTE9OIChodHRwczovL29wZW5zb3VyY2UuYXBwbGUuY29tL3NvdXJjZS9MaWJjL0xpYmMtNDk4L2luY2x1ZGUvZmxvYXQuaClcbmNvbnN0IEdFT19FUFNJTE9OID0gTnVtYmVyLk1JTl9WQUxVRTtcblxuY29tbWFuZHMuZ2V0TmV0d29ya0Nvbm5lY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBnZXROZXR3b3JrQ29ubmVjdGlvbiAoKSB7XG4gIGxvZy5pbmZvKCdHZXR0aW5nIG5ldHdvcmsgY29ubmVjdGlvbicpO1xuICBsZXQgYWlycGxhbmVNb2RlT24gPSBhd2FpdCB0aGlzLmFkYi5pc0FpcnBsYW5lTW9kZU9uKCk7XG4gIGxldCBjb25uZWN0aW9uID0gYWlycGxhbmVNb2RlT24gPyBBSVJQTEFORV9NT0RFX01BU0sgOiAwO1xuXG4gIC8vIG5vIG5lZWQgdG8gY2hlY2sgYW55dGhpbmcgZWxzZSBpZiB3ZSBhcmUgaW4gYWlycGxhbmUgbW9kZVxuICBpZiAoIWFpcnBsYW5lTW9kZU9uKSB7XG4gICAgbGV0IHdpZmlPbiA9IGF3YWl0IHRoaXMuaXNXaWZpT24oKTtcbiAgICBjb25uZWN0aW9uIHw9ICh3aWZpT24gPyBXSUZJX01BU0sgOiAwKTtcbiAgICBsZXQgZGF0YU9uID0gYXdhaXQgdGhpcy5hZGIuaXNEYXRhT24oKTtcbiAgICBjb25uZWN0aW9uIHw9IChkYXRhT24gPyBEQVRBX01BU0sgOiAwKTtcbiAgfVxuXG4gIHJldHVybiBjb25uZWN0aW9uO1xufTtcblxuLyoqXG4gKiBkZWNvdXBsaW5nIHRvIG92ZXJyaWRlIHRoZSBiZWhhdmlvdXIgaW4gb3RoZXIgZHJpdmVycyBsaWtlIFVpQXV0b21hdG9yMi5cbiAqL1xuY29tbWFuZHMuaXNXaWZpT24gPSBhc3luYyBmdW5jdGlvbiBpc1dpZmlPbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5pc1dpZmlPbigpO1xufTtcblxuY29tbWFuZHMuc2V0TmV0d29ya0Nvbm5lY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBzZXROZXR3b3JrQ29ubmVjdGlvbiAodHlwZSkge1xuICBsb2cuaW5mbygnU2V0dGluZyBuZXR3b3JrIGNvbm5lY3Rpb24nKTtcbiAgLy8gZGVjb2RlIHRoZSBpbnB1dFxuICBjb25zdCBzaG91bGRFbmFibGVBaXJwbGFuZU1vZGUgPSAodHlwZSAmIEFJUlBMQU5FX01PREVfTUFTSykgIT09IDA7XG4gIGNvbnN0IHNob3VsZEVuYWJsZVdpZmkgPSAodHlwZSAmIFdJRklfTUFTSykgIT09IDA7XG4gIGNvbnN0IHNob3VsZEVuYWJsZURhdGFDb25uZWN0aW9uID0gKHR5cGUgJiBEQVRBX01BU0spICE9PSAwO1xuXG4gIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGF3YWl0IHRoaXMuZ2V0TmV0d29ya0Nvbm5lY3Rpb24oKTtcbiAgY29uc3QgaXNBaXJwbGFuZU1vZGVFbmFibGVkID0gKGN1cnJlbnRTdGF0ZSAmIEFJUlBMQU5FX01PREVfTUFTSykgIT09IDA7XG4gIGNvbnN0IGlzV2lGaUVuYWJsZWQgPSAoY3VycmVudFN0YXRlICYgV0lGSV9NQVNLKSAhPT0gMDtcbiAgY29uc3QgaXNEYXRhRW5hYmxlZCA9IChjdXJyZW50U3RhdGUgJiBEQVRBX01BU0spICE9PSAwO1xuXG4gIGlmIChzaG91bGRFbmFibGVBaXJwbGFuZU1vZGUgIT09IGlzQWlycGxhbmVNb2RlRW5hYmxlZCkge1xuICAgIGF3YWl0IHRoaXMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5hZGIuc2V0QWlycGxhbmVNb2RlKHNob3VsZEVuYWJsZUFpcnBsYW5lTW9kZSk7XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLmFkYi5icm9hZGNhc3RBaXJwbGFuZU1vZGUoc2hvdWxkRW5hYmxlQWlycGxhbmVNb2RlKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBsb2cuaW5mbyhgTm90IGNoYW5naW5nIGFpcnBsYW5lIG1vZGUsIHNpbmNlIGl0IGlzIGFscmVhZHkgYCArXG4gICAgICAgICAgICAgYCR7c2hvdWxkRW5hYmxlQWlycGxhbmVNb2RlID8gJ2VuYWJsZWQnIDogJ2Rpc2FibGVkJ31gKTtcbiAgfVxuXG4gIGlmIChzaG91bGRFbmFibGVXaWZpID09PSBpc1dpRmlFbmFibGVkICYmIHNob3VsZEVuYWJsZURhdGFDb25uZWN0aW9uID09PSBpc0RhdGFFbmFibGVkKSB7XG4gICAgbG9nLmluZm8oJ05vdCBjaGFuZ2luZyBkYXRhIGNvbm5lY3Rpb24vV2ktRmkgc3RhdGVzLCBzaW5jZSB0aGV5IGFyZSBhbHJlYWR5IHNldCB0byBleHBlY3RlZCB2YWx1ZXMnKTtcbiAgICBpZiAoYXdhaXQgdGhpcy5hZGIuaXNBaXJwbGFuZU1vZGVPbigpKSB7XG4gICAgICByZXR1cm4gQUlSUExBTkVfTU9ERV9NQVNLIHwgY3VycmVudFN0YXRlO1xuICAgIH1cbiAgICByZXR1cm4gfkFJUlBMQU5FX01PREVfTUFTSyAmIGN1cnJlbnRTdGF0ZTtcbiAgfVxuXG4gIGF3YWl0IHRoaXMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QoYXN5bmMgKCkgPT4ge1xuICAgIGlmIChzaG91bGRFbmFibGVXaWZpICE9PSBpc1dpRmlFbmFibGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFdpZmlTdGF0ZShzaG91bGRFbmFibGVXaWZpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmluZm8oYE5vdCBjaGFuZ2luZyBXaS1GaSBzdGF0ZSwgc2luY2UgaXQgaXMgYWxyZWFkeSBgICtcbiAgICAgICAgICAgICAgIGAke3Nob3VsZEVuYWJsZVdpZmkgPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnfWApO1xuICAgIH1cblxuICAgIGlmIChzaG91bGRFbmFibGVBaXJwbGFuZU1vZGUpIHtcbiAgICAgIGxvZy5pbmZvKCdOb3QgY2hhbmdpbmcgZGF0YSBjb25uZWN0aW9uIHN0YXRlLCBiZWNhdXNlIGFpcnBsYW5lIG1vZGUgaXMgZW5hYmxlZCcpO1xuICAgIH0gZWxzZSBpZiAoc2hvdWxkRW5hYmxlRGF0YUNvbm5lY3Rpb24gPT09IGlzRGF0YUVuYWJsZWQpIHtcbiAgICAgIGxvZy5pbmZvKGBOb3QgY2hhbmdpbmcgZGF0YSBjb25uZWN0aW9uIHN0YXRlLCBzaW5jZSBpdCBpcyBhbHJlYWR5IGAgK1xuICAgICAgICAgICAgICAgYCR7c2hvdWxkRW5hYmxlRGF0YUNvbm5lY3Rpb24gPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYi5zZXREYXRhU3RhdGUoc2hvdWxkRW5hYmxlRGF0YUNvbm5lY3Rpb24sIHRoaXMuaXNFbXVsYXRvcigpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmdldE5ldHdvcmtDb25uZWN0aW9uKCk7XG59O1xuXG4vKipcbiAqIGRlY291cGxpbmcgdG8gb3ZlcnJpZGUgYmVoYXZpb3VyIGluIG90aGVyIGRyaXZlcnMgbGlrZSBVaUF1dG9tYXRvcjIuXG4gKi9cbmNvbW1hbmRzLnNldFdpZmlTdGF0ZSA9IGFzeW5jIGZ1bmN0aW9uIHNldFdpZmlTdGF0ZSAod2lmaSkge1xuICBhd2FpdCB0aGlzLmFkYi5zZXRXaWZpU3RhdGUod2lmaSwgdGhpcy5pc0VtdWxhdG9yKCkpO1xufTtcblxuY29tbWFuZHMudG9nZ2xlRGF0YSA9IGFzeW5jIGZ1bmN0aW9uIHRvZ2dsZURhdGEgKCkge1xuICBsZXQgZGF0YSA9ICEoYXdhaXQgdGhpcy5hZGIuaXNEYXRhT24oKSk7XG4gIGxvZy5pbmZvKGBUdXJuaW5nIG5ldHdvcmsgZGF0YSAke2RhdGEgPyAnb24nIDogJ29mZid9YCk7XG4gIGF3YWl0IHRoaXMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHRoaXMuYWRiLnNldFdpZmlBbmREYXRhKHtkYXRhfSwgdGhpcy5pc0VtdWxhdG9yKCkpO1xuICB9KTtcbn07XG5cbmNvbW1hbmRzLnRvZ2dsZVdpRmkgPSBhc3luYyBmdW5jdGlvbiB0b2dnbGVXaUZpICgpIHtcbiAgbGV0IHdpZmkgPSAhKGF3YWl0IHRoaXMuYWRiLmlzV2lmaU9uKCkpO1xuICBsb2cuaW5mbyhgVHVybmluZyBXaUZpICR7d2lmaSA/ICdvbicgOiAnb2ZmJ31gKTtcbiAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5hZGIuc2V0V2lmaUFuZERhdGEoe3dpZml9LCB0aGlzLmlzRW11bGF0b3IoKSk7XG4gIH0pO1xufTtcblxuY29tbWFuZHMudG9nZ2xlRmxpZ2h0TW9kZSA9IGFzeW5jIGZ1bmN0aW9uIHRvZ2dsZUZsaWdodE1vZGUgKCkge1xuICAvKlxuICAgKiBUT0RPOiBJbXBsZW1lbnQgaXNSZWFsRGV2aWNlKCkuIFRoaXMgbWV0aG9kIGZhaWxzIG9uXG4gICAqIHJlYWwgZGV2aWNlcywgaXQgc2hvdWxkIHRocm93IGEgTm90WWV0SW1wbGVtZW50ZWRFcnJvclxuICAgKi9cbiAgbGV0IGZsaWdodE1vZGUgPSAhKGF3YWl0IHRoaXMuYWRiLmlzQWlycGxhbmVNb2RlT24oKSk7XG4gIGxvZy5pbmZvKGBUdXJuaW5nIGZsaWdodCBtb2RlICR7ZmxpZ2h0TW9kZSA/ICdvbicgOiAnb2ZmJ31gKTtcbiAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5hZGIuc2V0QWlycGxhbmVNb2RlKGZsaWdodE1vZGUpO1xuICB9KTtcbiAgYXdhaXQgdGhpcy53cmFwQm9vdHN0cmFwRGlzY29ubmVjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5hZGIuYnJvYWRjYXN0QWlycGxhbmVNb2RlKGZsaWdodE1vZGUpO1xuICB9KTtcbn07XG5cbmNvbW1hbmRzLnNldEdlb0xvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gc2V0R2VvTG9jYXRpb24gKGxvY2F0aW9uKSB7XG4gIGF3YWl0IHRoaXMuYWRiLnNldEdlb0xvY2F0aW9uKGxvY2F0aW9uLCB0aGlzLmlzRW11bGF0b3IoKSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0R2VvTG9jYXRpb24oKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy53YXJuKGBDb3VsZCBub3QgZ2V0IHRoZSBjdXJyZW50IGdlb2xvY2F0aW9uIGluZm86ICR7ZS5tZXNzYWdlfWApO1xuICAgIGxvZy53YXJuKGBSZXR1cm5pbmcgdGhlIGRlZmF1bHQgemVybydlZCB2YWx1ZXNgKTtcbiAgICByZXR1cm4ge1xuICAgICAgbGF0aXR1ZGU6IEdFT19FUFNJTE9OLFxuICAgICAgbG9uZ2l0dWRlOiBHRU9fRVBTSUxPTixcbiAgICAgIGFsdGl0dWRlOiBHRU9fRVBTSUxPTixcbiAgICB9O1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEdwc0NhY2hlUmVmcmVzaE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0aW1lb3V0TXMgWzIwMDAwXSBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKiB0byBibG9jayB1bnRpbCBHUFMgY2FjaGUgaXMgcmVmcmVzaGVkLiBQcm92aWRpbmcgemVybyBvciBhIG5lZ2F0aXZlXG4gKiB2YWx1ZSB0byBpdCBza2lwcyB3YWl0aW5nIGNvbXBsZXRlbHkuXG4gKi9cblxuLyoqXG4gKiBTZW5kcyBhbiBhc3luYyByZXF1ZXN0IHRvIHJlZnJlc2ggdGhlIEdQUyBjYWNoZS5cbiAqIFRoaXMgZmVhdHVyZSBvbmx5IHdvcmtzIGlmIHRoZSBkZXZpY2UgdW5kZXIgdGVzdCBoYXNcbiAqIEdvb2dsZSBQbGF5IFNlcnZpY2VzIGluc3RhbGxlZC4gSW4gY2FzZSB0aGUgdmFuaWxsYVxuICogTG9jYXRpb25NYW5hZ2VyIGlzIHVzZWQgdGhlIGRldmljZSBBUEkgbGV2ZWwgbXVzdCBiZSBhdFxuICogdmVyc2lvbiAzMCAoQW5kcm9pZCBSKSBvciBoaWdoZXIuXG4gKlxuICogQHBhcmFtIHtHcHNDYWNoZVJlZnJlc2hPcHRpb25zfSBvcHRzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVJlZnJlc2hHcHNDYWNoZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJlZnJlc2hHcHNDYWNoZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgdGltZW91dE1zIH0gPSBvcHRzO1xuICBhd2FpdCB0aGlzLmFkYi5yZWZyZXNoR2VvTG9jYXRpb25DYWNoZSh0aW1lb3V0TXMpO1xufTtcblxuY29tbWFuZHMuZ2V0R2VvTG9jYXRpb24gPSBhc3luYyBmdW5jdGlvbiBnZXRHZW9Mb2NhdGlvbiAoKSB7XG4gIGNvbnN0IHtsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhbHRpdHVkZX0gPSBhd2FpdCB0aGlzLmFkYi5nZXRHZW9Mb2NhdGlvbigpO1xuICByZXR1cm4ge1xuICAgIGxhdGl0dWRlOiBwYXJzZUZsb2F0KGxhdGl0dWRlKSB8fCBHRU9fRVBTSUxPTixcbiAgICBsb25naXR1ZGU6IHBhcnNlRmxvYXQobG9uZ2l0dWRlKSB8fCBHRU9fRVBTSUxPTixcbiAgICBhbHRpdHVkZTogcGFyc2VGbG9hdChhbHRpdHVkZSkgfHwgR0VPX0VQU0lMT04sXG4gIH07XG59O1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvdmlldy9LZXlFdmVudC5odG1sI0tFWUNPREVfRFBBRF9DRU5URVJcbi8vIGluIHRoZSBhbmRyb2lkIGRvY3MsIHRoaXMgaXMgaG93IHRoZSBrZXljb2RlcyBhcmUgZGVmaW5lZFxuY29uc3QgS2V5Q29kZSA9IHtcbiAgVVA6IDE5LFxuICBET1dOOiAyMCxcbiAgUklHSFQ6IDIyLFxuICBDRU5URVI6IDIzXG59O1xuY29tbWFuZHMudG9nZ2xlTG9jYXRpb25TZXJ2aWNlcyA9IGFzeW5jIGZ1bmN0aW9uIHRvZ2dsZUxvY2F0aW9uU2VydmljZXMgKCkge1xuICBsb2cuaW5mbygnVG9nZ2xpbmcgbG9jYXRpb24gc2VydmljZXMnKTtcbiAgbGV0IGFwaSA9IGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCk7XG4gIGlmICh0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIGxldCBwcm92aWRlcnMgPSBhd2FpdCB0aGlzLmFkYi5nZXRMb2NhdGlvblByb3ZpZGVycygpO1xuICAgIGxldCBpc0dwc0VuYWJsZWQgPSBwcm92aWRlcnMuaW5kZXhPZignZ3BzJykgIT09IC0xO1xuICAgIGF3YWl0IHRoaXMuYWRiLnRvZ2dsZUdQU0xvY2F0aW9uUHJvdmlkZXIoIWlzR3BzRW5hYmxlZCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGFwaSA+IDE1KSB7XG4gICAgbGV0IHNlcSA9IFtLZXlDb2RlLlVQLCBLZXlDb2RlLlVQXTtcbiAgICBpZiAoYXBpID09PSAxNikge1xuICAgICAgLy8gVGhpcyB2ZXJzaW9uIG9mIEFuZHJvaWQgaGFzIGEgXCJwYXJlbnRcIiBidXR0b24gaW4gaXRzIGFjdGlvbiBiYXJcbiAgICAgIHNlcS5wdXNoKEtleUNvZGUuRE9XTik7XG4gICAgfSBlbHNlIGlmIChhcGkgPCAyOCkge1xuICAgICAgLy8gTmV3ZXIgdmVyc2lvbnMgb2YgQW5kcm9pZCBoYXZlIHRoZSB0b2dnbGUgaW4gdGhlIEFjdGlvbiBiYXJcbiAgICAgIHNlcSA9IFtLZXlDb2RlLlJJR0hULCBLZXlDb2RlLlJJR0hULCBLZXlDb2RlLlVQXTtcbiAgICAgIC8qXG4gICAgICAgKiBPbmNlIHRoZSBMb2NhdGlvbiBzZXJ2aWNlcyBzd2l0Y2ggaXMgT0ZGLCBpdCB3b24ndCByZWNlaXZlIGZvY3VzXG4gICAgICAgKiB3aGVuIGdvaW5nIGJhY2sgdG8gdGhlIExvY2F0aW9uIFNlcnZpY2VzIHNldHRpbmdzIHNjcmVlbiB1bmxlc3Mgd2VcbiAgICAgICAqIHNlbmQgYSBkdW1teSBrZXlldmVudCAoVVApICpiZWZvcmUqIG9wZW5pbmcgdGhlIHNldHRpbmdzIHNjcmVlblxuICAgICAgICovXG4gICAgICBhd2FpdCB0aGlzLmFkYi5rZXlldmVudChLZXlDb2RlLlVQKTtcbiAgICB9IGVsc2UgaWYgKGFwaSA+PSAyOCkge1xuICAgICAgLy8gRXZlbiBuZXdlciB2ZXJzaW9ucyBvZiBhbmRyb2lkIGhhdmUgdGhlIHRvZ2dsZSBpbiBhIGJhciBiZWxvdyB0aGUgYWN0aW9uIGJhclxuICAgICAgLy8gdGhpcyBtZWFucyBhIHNpbmdsZSByaWdodCBjbGljayB3aWxsIGNhdXNlIGl0IHRvIGJlIHNlbGVjdGVkLlxuICAgICAgc2VxID0gW0tleUNvZGUuUklHSFRdO1xuICAgICAgYXdhaXQgdGhpcy5hZGIua2V5ZXZlbnQoS2V5Q29kZS5VUCk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMudG9nZ2xlU2V0dGluZygnTE9DQVRJT05fU09VUkNFX1NFVFRJTkdTJywgc2VxKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGVyZSdzIG5vIGdsb2JhbCBsb2NhdGlvbiBzZXJ2aWNlcyB0b2dnbGUgb24gb2xkZXIgQW5kcm9pZCB2ZXJzaW9uc1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90WWV0SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG59O1xuXG5oZWxwZXJzLnRvZ2dsZVNldHRpbmcgPSBhc3luYyBmdW5jdGlvbiB0b2dnbGVTZXR0aW5nIChzZXR0aW5nLCBwcmVLZXlTZXEpIHtcbiAgLypcbiAgICogcHJlS2V5U2VxIGlzIHRoZSBrZXlldmVudCBzZXF1ZW5jZSB0byBzZW5kIG92ZXIgQURCIGluIG9yZGVyXG4gICAqIHRvIHBvc2l0aW9uIHRoZSBjdXJzb3Igb24gdGhlIHJpZ2h0IG9wdGlvbi5cbiAgICogQnkgZGVmYXVsdCBpdCdzIFt1cCwgdXAsIGRvd25dIGJlY2F1c2Ugd2UgdXN1YWxseSB0YXJnZXQgdGhlIDFzdCBpdGVtIGluXG4gICAqIHRoZSBzY3JlZW4sIGFuZCBzb21ldGltZXMgd2hlbiBvcGVuaW5nIHNldHRpbmdzIGFjdGl2aXRpZXMgdGhlIGN1cnNvciBpc1xuICAgKiBhbHJlYWR5IHBvc2l0aW9ubmVkIG9uIHRoZSAxc3QgaXRlbSwgYnV0IHdlIGNhbid0IGtub3cgZm9yIHN1cmVcbiAgICovXG4gIGlmIChfLmlzTnVsbChwcmVLZXlTZXEpKSB7XG4gICAgcHJlS2V5U2VxID0gW0tleUNvZGUuVVAsIEtleUNvZGUuVVAsIEtleUNvZGUuRE9XTl07XG4gIH1cblxuICBhd2FpdCB0aGlzLm9wZW5TZXR0aW5nc0FjdGl2aXR5KHNldHRpbmcpO1xuXG4gIGZvciAobGV0IGtleSBvZiBwcmVLZXlTZXEpIHtcbiAgICBhd2FpdCB0aGlzLmRvS2V5KGtleSk7XG4gIH1cblxuICBsZXQge2FwcFBhY2thZ2UsIGFwcEFjdGl2aXR5fSA9IGF3YWl0IHRoaXMuYWRiLmdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkoKTtcblxuICAvKlxuICAgKiBDbGljayBhbmQgaGFuZGxlIHBvdGVudGlhbCBBREIgZGlzY29ubmVjdCB0aGF0IG9jY3VycyBvbiBvZmZpY2lhbFxuICAgKiBlbXVsYXRvciB3aGVuIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24gaXMgZGlzYWJsZWRcbiAgICovXG4gIGF3YWl0IHRoaXMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHRoaXMuZG9LZXkoS2V5Q29kZS5DRU5URVIpO1xuICB9KTtcblxuICAvKlxuICAgKiBJbiBvbmUgcGFydGljdWxhciBjYXNlIChlbmFibGUgTG9jYXRpb24gU2VydmljZXMpLCBhIHBvcC11cCBpc1xuICAgKiBkaXNwbGF5ZWQgb24gc29tZSBwbGF0Zm9ybXMgc28gdGhlIHVzZXIgYWNjZXB0cyBvciByZWZ1c2VzIHRoYXQgR29vZ2xlXG4gICAqIGNvbGxlY3RzIGxvY2F0aW9uIGRhdGEuIFNvIHdlIHdhaXQgZm9yIHRoYXQgcG9wLXVwIHRvIG9wZW4sIGlmIGl0XG4gICAqIGRvZXNuJ3QgdGhlbiBwcm9jZWVkXG4gICAqL1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuYWRiLndhaXRGb3JOb3RBY3Rpdml0eShhcHBQYWNrYWdlLCBhcHBBY3Rpdml0eSwgNTAwMCk7XG4gICAgYXdhaXQgdGhpcy5kb0tleShLZXlDb2RlLlJJR0hUKTtcbiAgICBhd2FpdCB0aGlzLmRvS2V5KEtleUNvZGUuQ0VOVEVSKTtcbiAgICBhd2FpdCB0aGlzLmFkYi53YWl0Rm9yTm90QWN0aXZpdHkoYXBwUGFja2FnZSwgYXBwQWN0aXZpdHksIDUwMDApO1xuICB9IGNhdGNoIChpZ24pIHt9XG5cbiAgYXdhaXQgdGhpcy5hZGIuYmFjaygpO1xufTtcblxuaGVscGVycy5kb0tleSA9IGFzeW5jIGZ1bmN0aW9uIGRvS2V5IChrZXkpIHtcbiAgLy8gVE9ETzogQ29uZmlybSB3ZSBuZWVkIHRoaXMgZGVsYXkuIFNlZW1zIHRvIHdvcmsgd2l0aG91dCBpdC5cbiAgYXdhaXQgQi5kZWxheSgyMDAwKTtcbiAgYXdhaXQgdGhpcy5hZGIua2V5ZXZlbnQoa2V5KTtcbn07XG5cbmhlbHBlcnMud3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QgPSBhc3luYyBmdW5jdGlvbiB3cmFwQm9vdHN0cmFwRGlzY29ubmVjdCAod3JhcHBlZCkge1xuICBpZiAoIXRoaXMuYm9vdHN0cmFwKSB7XG4gICAgcmV0dXJuIGF3YWl0IHdyYXBwZWQoKTtcbiAgfVxuXG4gIHRoaXMuYm9vdHN0cmFwLmlnbm9yZVVuZXhwZWN0ZWRTaHV0ZG93biA9IHRydWU7XG4gIHRyeSB7XG4gICAgYXdhaXQgd3JhcHBlZCgpO1xuICAgIGF3YWl0IHRoaXMuYWRiLnJlc3RhcnQoKTtcbiAgICBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zdGFydCh0aGlzLm9wdHMuYXBwUGFja2FnZSwgdGhpcy5vcHRzLmRpc2FibGVBbmRyb2lkV2F0Y2hlcnMsIHRoaXMub3B0cy5hY2NlcHRTc2xDZXJ0cyk7XG4gIH0gZmluYWxseSB7XG4gICAgdGhpcy5ib290c3RyYXAuaWdub3JlVW5leHBlY3RlZFNodXRkb3duID0gZmFsc2U7XG4gIH1cbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9uZXR3b3JrLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -59,6 +59,8 @@ extensions.executeMobile = async function executeMobile (mobileCommand, opts = {
59
59
  getContexts: 'mobileGetContexts',
60
60
 
61
61
  unlock: 'mobileUnlock',
62
+
63
+ refreshGpsCache: 'mobileRefreshGpsCache',
62
64
  };
63
65
 
64
66
  if (!_.has(mobileCommandsMapping, mobileCommand)) {
@@ -144,6 +144,27 @@ commands.setGeoLocation = async function setGeoLocation (location) {
144
144
  }
145
145
  };
146
146
 
147
+ /**
148
+ * @typedef {Object} GpsCacheRefreshOptions
149
+ * @property {number} timeoutMs [20000] The maximum number of milliseconds
150
+ * to block until GPS cache is refreshed. Providing zero or a negative
151
+ * value to it skips waiting completely.
152
+ */
153
+
154
+ /**
155
+ * Sends an async request to refresh the GPS cache.
156
+ * This feature only works if the device under test has
157
+ * Google Play Services installed. In case the vanilla
158
+ * LocationManager is used the device API level must be at
159
+ * version 30 (Android R) or higher.
160
+ *
161
+ * @param {GpsCacheRefreshOptions} opts
162
+ */
163
+ commands.mobileRefreshGpsCache = async function mobileRefreshGpsCache (opts = {}) {
164
+ const { timeoutMs } = opts;
165
+ await this.adb.refreshGeoLocationCache(timeoutMs);
166
+ };
167
+
147
168
  commands.getGeoLocation = async function getGeoLocation () {
148
169
  const {latitude, longitude, altitude} = await this.adb.getGeoLocation();
149
170
  return {
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "mobile",
10
10
  "mobile testing"
11
11
  ],
12
- "version": "4.53.0",
12
+ "version": "4.54.0",
13
13
  "author": "appium",
14
14
  "license": "Apache-2.0",
15
15
  "repository": {
@@ -36,24 +36,24 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@babel/runtime": "^7.0.0",
39
- "appium-adb": "^8.17.0",
39
+ "appium-adb": "^8.18.0",
40
40
  "appium-base-driver": "^7.0.0",
41
41
  "appium-chromedriver": "^4.13.0",
42
42
  "appium-support": "^2.47.1",
43
43
  "asyncbox": "^2.8.0",
44
44
  "axios": "^0.x",
45
45
  "bluebird": "^3.4.7",
46
- "io.appium.settings": "^3.5.0",
47
- "jimp": "^0.16.1",
46
+ "io.appium.settings": "^3.6.0",
47
+ "jimp": "^0.x",
48
48
  "lodash": "^4.17.4",
49
49
  "lru-cache": "^6.0.0",
50
50
  "moment": "^2.24.0",
51
51
  "moment-timezone": "^0.5.26",
52
52
  "portfinder": "^1.0.6",
53
53
  "portscanner": "2.2.0",
54
- "shared-preferences-builder": "^0.0.4",
54
+ "shared-preferences-builder": "^0.x",
55
55
  "semver": "^7.0.0",
56
- "source-map-support": "^0.5.5",
56
+ "source-map-support": "^0.x",
57
57
  "teen_process": "^1.9.0",
58
58
  "ws": "^8.0.0"
59
59
  },