@appium/base-driver 8.7.2 → 8.7.3

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.
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * @implements {SessionHandler<C>}
3
3
  * @template {Constraints} C
4
- * @template {StringRecord} [A=StringRecord]
4
+ * @template {StringRecord} [CArgs=StringRecord]
5
5
  * @extends {DriverCore<C>}
6
6
  */
7
- export class BaseDriverCore<C extends Readonly<Record<string, import("@appium/types").Constraint>>, A extends import("@appium/types").StringRecord = import("@appium/types").StringRecord> extends DriverCore<C> implements SessionHandler<C> {
7
+ export class BaseDriverCore<C extends Readonly<Record<string, import("@appium/types").Constraint>>, CArgs extends import("@appium/types").StringRecord = import("@appium/types").StringRecord> extends DriverCore<C> implements SessionHandler<C> {
8
8
  static BASE_DESIRED_CAP_CONSTRAINTS: {
9
9
  readonly platformName: {
10
10
  readonly presence: true;
@@ -56,11 +56,16 @@ export class BaseDriverCore<C extends Readonly<Record<string, import("@appium/ty
56
56
  readonly isBoolean: true;
57
57
  };
58
58
  };
59
- constructor(opts?: import("./core").DriverOpts<C>, shouldValidateCaps?: boolean | undefined);
60
59
  /**
61
- * @type {A & ServerArgs}
60
+ *
61
+ * @param {DriverOpts<C>} opts
62
+ * @param {boolean} shouldValidateCaps
63
+ */
64
+ constructor(opts?: DriverOpts<C>, shouldValidateCaps?: boolean);
65
+ /**
66
+ * @type {CArgs & ServerArgs}
62
67
  */
63
- cliArgs: A & ServerArgs;
68
+ cliArgs: CArgs & ServerArgs;
64
69
  /**
65
70
  * @type {Capabilities<C>}
66
71
  */
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/driver.js"],"names":[],"mappings":"AA0BA;;;;;GAKG;AACH,2OAL+B,CAAC;IA4C9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAmE;IAwBxD,6FAmBL;IAjFN;;OAEG;IACH,SAFU,CAAC,GAAG,UAAU,CAEhB;IAER;;OAEG;IACH,MAFU,aAAa,CAAC,CAAC,CAEpB;IAEL;;OAEG;IACH,cAFU,gBAAgB,CAAC,CAAC,CAEf;IAEb;;OAEG;IACH,uBAFU,CAAC,CAEW;IAEtB;;OAEG;IACH,MAFU,WAAW,CAAC,CAAC,GAAG,WAAW,wBAAwB,CAAC,CAEzD;IAEL;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAEC;IAQD;;;;OAIG;IACH,oBAJW,MAAM,WACF,GAAG,KACL,QAAQ,GAAG,CAAC,CAsExB;IAED;;;OAGG;IACH,8BAFW,KAAK,GAAC,OAAO,oBAAoB,EAAE,iBAAiB,iBAc9D;IAED,wCAmBC;IAED;;;;;;OAMG;IACH,qBALW,OAAO,eAAe,EAAE,YAAY,QACpC,MAAM,QACN,MAAM,QACN,MAAM,QAOhB;IAJC,yDAAoB;IACpB,+BAAsB;IACtB,+BAAsB;IACtB,+BAAsB;IAOxB,uBA+BC;IAfC,oDAAyC;IAiB3C;;;;;;;;;;;OAWG;IACH,gCANW,gBAAgB,CAAC,CAAC,mLAIhB,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAuF7C;IAED;;;;;OAKG;IACH,8GAFa,QAAQ,IAAI,CAAC,CAczB;IAED;;;OAGG;IACH,mBAFW,YAAY,QAYtB;IAED;;;;OAIG;IACH,0BAHW,aAAa,CAAC,CAAC,GACb,OAAO,CAqBnB;CACF;;AAED;;;;GAIG;AACH,+IAFuB,CAAC;IAxYD,kCAAmC;CA0Yc;;yBAI3D,OAAO,eAAe,EAAE,UAAU;6BAClC,OAAO,eAAe,EAAE,cAAc;yBACtC,OAAO,eAAe,EAAE,UAAU;0BAClC,OAAO,eAAe,EAAE,WAAW;yBACnC,OAAO,eAAe,EAAE,UAAU;2BAClC,OAAO,eAAe,EAAE,YAAY;uCACpC,OAAO,eAAe,EAAE,wBAAwB;yBAChD,OAAO,eAAe,EAAE,UAAU;yCAKpC,OAAO,SAAS,EAAE,OAAO,cACzB,OAAO,eAAe,EAAE,YAAY,KAClC,OAAO,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;;;;sDAOpC,OAAO,eAAe,EAAE,KAAK,CAAC,4DAAiB,KAAK,EAAC,OAAO,eAAe,EAAE,YAAY,GAAG,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKnG,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAMhE,OAAO,eAAe,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAM9C,OAAO,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC;wGAKjD,OAAO,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;6FAK5C,OAAO,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;iGAKjC,OAAO,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/driver.js"],"names":[],"mappings":"AA0BA;;;;;GAKG;AACH,+OAL+B,CAAC;IA+B9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAmE;IAEnE;;;;OAIG;IACH,mBAHW,WAAW,CAAC,CAAC,uBACb,OAAO,EAUjB;IAxCD;;OAEG;IACH,SAFU,KAAK,GAAG,UAAU,CAEpB;IAER;;OAEG;IACH,MAFU,aAAa,CAAC,CAAC,CAEpB;IAEL;;OAEG;IACH,cAFU,gBAAgB,CAAC,CAAC,CAEf;IAEb;;OAEG;IACH,uBAFU,CAAC,CAEW;IAEtB;;OAEG;IACH,MAFU,WAAW,CAAC,CAAC,GAAG,WAAW,wBAAwB,CAAC,CAEzD;IAmBL;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAEC;IAMD;;;;OAIG;IACH,oBAJW,MAAM,WACF,GAAG,KACL,QAAQ,GAAG,CAAC,CAsExB;IAED;;;OAGG;IACH,8BAFW,KAAK,GAAC,OAAO,oBAAoB,EAAE,iBAAiB,iBAc9D;IAED,wCAmBC;IAED;;;;;;OAMG;IACH,qBALW,OAAO,eAAe,EAAE,YAAY,QACpC,MAAM,QACN,MAAM,QACN,MAAM,QAOhB;IAJC,yDAAoB;IACpB,+BAAsB;IACtB,+BAAsB;IACtB,+BAAsB;IAOxB,uBA+BC;IAfC,oDAAyC;IAiB3C;;;;;;;;;;;OAWG;IACH,gCANW,gBAAgB,CAAC,CAAC,mLAIhB,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAuF7C;IAED;;;;;OAKG;IACH,8GAFa,QAAQ,IAAI,CAAC,CAczB;IAED;;;OAGG;IACH,mBAFW,YAAY,QAYtB;IAED;;;;OAIG;IACH,0BAHW,aAAa,CAAC,CAAC,GACb,OAAO,CAqBnB;CACF;;AAED;;;;GAIG;AACH,+IAFuB,CAAC;IAvZD,kCAAmC;CAyZc;;yBAI3D,OAAO,eAAe,EAAE,UAAU;6BAClC,OAAO,eAAe,EAAE,cAAc;yBACtC,OAAO,eAAe,EAAE,UAAU;0BAClC,OAAO,eAAe,EAAE,WAAW;yBACnC,OAAO,eAAe,EAAE,UAAU;2BAClC,OAAO,eAAe,EAAE,YAAY;uCACpC,OAAO,eAAe,EAAE,wBAAwB;yBAChD,OAAO,eAAe,EAAE,UAAU;yCAKpC,OAAO,SAAS,EAAE,OAAO,cACzB,OAAO,eAAe,EAAE,YAAY,KAClC,OAAO,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;;;;sDAOpC,OAAO,eAAe,EAAE,KAAK,CAAC,4DAAiB,KAAK,EAAC,OAAO,eAAe,EAAE,YAAY,GAAG,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKnG,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAMhE,OAAO,eAAe,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAM9C,OAAO,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC;wGAKjD,OAAO,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;6FAK5C,OAAO,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;iGAKjC,OAAO,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC"}
@@ -41,13 +41,17 @@ class BaseDriverCore extends _core.DriverCore {
41
41
  originalCaps;
42
42
  desiredCapConstraints;
43
43
  opts;
44
+ static BASE_DESIRED_CAP_CONSTRAINTS = _types.BASE_DESIRED_CAP_CONSTRAINTS;
45
+
46
+ constructor(opts = {}, shouldValidateCaps = true) {
47
+ super(opts, shouldValidateCaps);
48
+ this.opts = opts;
49
+ }
44
50
 
45
51
  get _desiredCapConstraints() {
46
52
  return Object.freeze(_lodash.default.merge({}, _types.BASE_DESIRED_CAP_CONSTRAINTS, this.desiredCapConstraints));
47
53
  }
48
54
 
49
- static BASE_DESIRED_CAP_CONSTRAINTS = _types.BASE_DESIRED_CAP_CONSTRAINTS;
50
-
51
55
  async executeCommand(cmd, ...args) {
52
56
  let startTime = Date.now();
53
57
 
@@ -275,4 +279,4 @@ class BaseDriver extends (0, _commands.createBaseDriverClass)(BaseDriverCore) {}
275
279
  exports.BaseDriver = BaseDriver;
276
280
  var _default = BaseDriver;
277
281
  exports.default = _default;
278
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFVkVOVF9TRVNTSU9OX0lOSVQiLCJFVkVOVF9TRVNTSU9OX1NUQVJUIiwiRVZFTlRfU0VTU0lPTl9RVUlUX1NUQVJUIiwiRVZFTlRfU0VTU0lPTl9RVUlUX0RPTkUiLCJPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5UIiwiQmFzZURyaXZlckNvcmUiLCJEcml2ZXJDb3JlIiwiY2xpQXJncyIsImNhcHMiLCJvcmlnaW5hbENhcHMiLCJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJvcHRzIiwiX2Rlc2lyZWRDYXBDb25zdHJhaW50cyIsIk9iamVjdCIsImZyZWV6ZSIsIl8iLCJtZXJnZSIsIkJBU0VfREVTSVJFRF9DQVBfQ09OU1RSQUlOVFMiLCJleGVjdXRlQ29tbWFuZCIsImNtZCIsImFyZ3MiLCJzdGFydFRpbWUiLCJEYXRlIiwibm93IiwicHJvdG9jb2wiLCJkZXRlcm1pbmVQcm90b2NvbCIsImxvZ0V2ZW50IiwiREVMRVRFX1NFU1NJT05fQ09NTUFORCIsImNsZWFyTmV3Q29tbWFuZFRpbWVvdXQiLCJzaHV0ZG93blVuZXhwZWN0ZWRseSIsImVycm9ycyIsIk5vU3VjaERyaXZlckVycm9yIiwiTm90WWV0SW1wbGVtZW50ZWRFcnJvciIsInVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyIiwiY29tbWFuZEV4ZWN1dG9yIiwiQiIsInJhY2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXZlbnRFbWl0dGVyIiwib24iLCJmaW5hbGx5IiwicmVtb3ZlTGlzdGVuZXIiLCJyZXMiLCJpc0NvbW1hbmRzUXVldWVFbmFibGVkIiwiY29tbWFuZHNRdWV1ZUd1YXJkIiwiYWNxdWlyZSIsIkJhc2VEcml2ZXIiLCJuYW1lIiwic3RhcnROZXdDb21tYW5kVGltZW91dCIsImVuZFRpbWUiLCJfZXZlbnRIaXN0b3J5IiwiY29tbWFuZHMiLCJwdXNoIiwic3RhcnRVbmV4cGVjdGVkU2h1dGRvd24iLCJlcnIiLCJlbWl0Iiwic2Vzc2lvbklkIiwiZGVsZXRlU2Vzc2lvbiIsIm5ld0NvbW1hbmRUaW1lb3V0TXMiLCJub0NvbW1hbmRUaW1lciIsInNldFRpbWVvdXQiLCJsb2ciLCJ3YXJuIiwiZXJyb3JNZXNzYWdlIiwiRXJyb3IiLCJhc3NpZ25TZXJ2ZXIiLCJzZXJ2ZXIiLCJob3N0IiwicG9ydCIsInBhdGgiLCJzZXJ2ZXJIb3N0Iiwic2VydmVyUG9ydCIsInNlcnZlclBhdGgiLCJyZXNldCIsImRlYnVnIiwiY3VycmVudENvbmZpZyIsInByb3BlcnR5IiwicmVzZXRPblVuZXhwZWN0ZWRTaHV0ZG93biIsImNyZWF0ZVNlc3Npb24iLCJrZXkiLCJ2YWx1ZSIsInRvUGFpcnMiLCJ3M2NDYXBhYmlsaXRpZXMxIiwidzNjQ2FwYWJpbGl0aWVzMiIsInczY0NhcGFiaWxpdGllcyIsImRyaXZlckRhdGEiLCJTZXNzaW9uTm90Q3JlYXRlZEVycm9yIiwiY2xvbmVEZWVwIiwiZmluZCIsImlzVzNjQ2FwcyIsInNldFByb3RvY29sVzNDIiwiSlNPTiIsInN0cmluZ2lmeSIsInByb2Nlc3NDYXBhYmlsaXRpZXMiLCJzaG91bGRWYWxpZGF0ZUNhcHMiLCJBUFBJVU1fT1BUU19DQVAiLCJQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVAiLCJwcm9tb3RlQXBwaXVtT3B0aW9ucyIsImZpeENhcHMiLCJlIiwibWVzc2FnZSIsInZhbGlkYXRlRGVzaXJlZENhcHMiLCJ1dGlsIiwidXVpZFY0IiwiaW5pdGlhbE9wdHMiLCJub1Jlc2V0IiwiZnVsbFJlc2V0IiwiZmFzdFJlc2V0Iiwic2tpcFVuaW5zdGFsbCIsImFwcCIsInRyaW0iLCJpc1VuZGVmaW5lZCIsIm5ld0NvbW1hbmRUaW1lb3V0IiwiX2xvZyIsInByZWZpeCIsImhlbHBlcnMiLCJnZW5lcmF0ZURyaXZlckxvZ1ByZWZpeCIsImluZm8iLCJpc0J1c3kiLCJrZXlzIiwicXVldWVzIiwibG9nRXh0cmFDYXBzIiwiZXh0cmFDYXBzIiwiZGlmZmVyZW5jZSIsImxlbmd0aCIsImNhcCIsInZhbGlkYXRlQ2FwcyIsImVycm9yQW5kVGhyb3ciLCJjcmVhdGVCYXNlRHJpdmVyQ2xhc3MiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvYmFzZWRyaXZlci9kcml2ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVxdWlyZS1hd2FpdCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuaW1wb3J0IHtcbiAgdmFsaWRhdGVDYXBzLFxuICBBUFBJVU1fT1BUU19DQVAsXG4gIFBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCxcbiAgcHJvY2Vzc0NhcGFiaWxpdGllcyxcbiAgcHJvbW90ZUFwcGl1bU9wdGlvbnMsXG59IGZyb20gJy4vY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7RHJpdmVyQ29yZX0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2ZpeENhcHMsIGlzVzNjQ2Fwc30gZnJvbSAnLi4vaGVscGVycy9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHtERUxFVEVfU0VTU0lPTl9DT01NQU5ELCBkZXRlcm1pbmVQcm90b2NvbCwgZXJyb3JzfSBmcm9tICcuLi9wcm90b2NvbCc7XG5pbXBvcnQge2NyZWF0ZUJhc2VEcml2ZXJDbGFzc30gZnJvbSAnLi9jb21tYW5kcyc7XG5pbXBvcnQgaGVscGVycyBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtCQVNFX0RFU0lSRURfQ0FQX0NPTlNUUkFJTlRTfSBmcm9tICdAYXBwaXVtL3R5cGVzJztcblxuY29uc3QgRVZFTlRfU0VTU0lPTl9JTklUID0gJ25ld1Nlc3Npb25SZXF1ZXN0ZWQnO1xuY29uc3QgRVZFTlRfU0VTU0lPTl9TVEFSVCA9ICduZXdTZXNzaW9uU3RhcnRlZCc7XG5jb25zdCBFVkVOVF9TRVNTSU9OX1FVSVRfU1RBUlQgPSAncXVpdFNlc3Npb25SZXF1ZXN0ZWQnO1xuY29uc3QgRVZFTlRfU0VTU0lPTl9RVUlUX0RPTkUgPSAncXVpdFNlc3Npb25GaW5pc2hlZCc7XG5jb25zdCBPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5UID0gJ29uVW5leHBlY3RlZFNodXRkb3duJztcblxuLyoqXG4gKiBAaW1wbGVtZW50cyB7U2Vzc2lvbkhhbmRsZXI8Qz59XG4gKiBAdGVtcGxhdGUge0NvbnN0cmFpbnRzfSBDXG4gKiBAdGVtcGxhdGUge1N0cmluZ1JlY29yZH0gW0E9U3RyaW5nUmVjb3JkXVxuICogQGV4dGVuZHMge0RyaXZlckNvcmU8Qz59XG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlRHJpdmVyQ29yZSBleHRlbmRzIERyaXZlckNvcmUge1xuICAvKipcbiAgICogQHR5cGUge0EgJiBTZXJ2ZXJBcmdzfVxuICAgKi9cbiAgY2xpQXJncztcblxuICAvKipcbiAgICogQHR5cGUge0NhcGFiaWxpdGllczxDPn1cbiAgICovXG4gIGNhcHM7XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtXM0NDYXBhYmlsaXRpZXM8Qz59XG4gICAqL1xuICBvcmlnaW5hbENhcHM7XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDfVxuICAgKi9cbiAgZGVzaXJlZENhcENvbnN0cmFpbnRzO1xuXG4gIC8qKlxuICAgKiBAdHlwZSB7RHJpdmVyT3B0czxDPiAmIERyaXZlck9wdHM8QmFzZURyaXZlckNhcENvbnN0cmFpbnRzPn1cbiAgICovXG4gIG9wdHM7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIHRoZSBiYXNlIGNvbnN0cmFpbnRzIHBsdXMgd2hhdGV2ZXIgdGhlIHN1YmNsYXNzIHdhbnRzIHRvIGFkZC5cbiAgICpcbiAgICogU3ViY2xhc3NlcyBfc2hvdWxkbid0XyBuZWVkIHRvIHVzZSB0aGlzLiBJZiB5b3UgbmVlZCB0byB1c2UgdGhpcywgcGxlYXNlIGNyZWF0ZVxuICAgKiBhbiBpc3N1ZTpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtL2FwcGl1bS9pc3N1ZXMvbmV3XG4gICAqIEB0eXBlIHtSZWFkb25seTxCYXNlRHJpdmVyQ2FwQ29uc3RyYWludHMgJiBDPn1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgZ2V0IF9kZXNpcmVkQ2FwQ29uc3RyYWludHMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5mcmVlemUoXy5tZXJnZSh7fSwgQkFTRV9ERVNJUkVEX0NBUF9DT05TVFJBSU5UUywgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMpKTtcbiAgfVxuXG4gIHN0YXRpYyBCQVNFX0RFU0lSRURfQ0FQX0NPTlNUUkFJTlRTID0gQkFTRV9ERVNJUkVEX0NBUF9DT05TVFJBSU5UUztcblxuICAvLyBUaGlzIGlzIHRoZSBtYWluIGNvbW1hbmQgaGFuZGxlciBmb3IgdGhlIGRyaXZlci4gSXQgd3JhcHMgY29tbWFuZFxuICAvLyBleGVjdXRpb24gd2l0aCB0aW1lb3V0IGxvZ2ljLCBjaGVja2luZyB0aGF0IHdlIGhhdmUgYSB2YWxpZCBzZXNzaW9uLFxuICAvLyBhbmQgZW5zdXJpbmcgdGhhdCB3ZSBleGVjdXRlIGNvbW1hbmRzIG9uZSBhdCBhIHRpbWUuIFRoaXMgbWV0aG9kIGlzIGNhbGxlZFxuICAvLyBieSBNSlNPTldQJ3MgZXhwcmVzcyByb3V0ZXIuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY21kXG4gICAqIEBwYXJhbSAgey4uLmFueX0gYXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY21kLCAuLi5hcmdzKSB7XG4gICAgLy8gZ2V0IHN0YXJ0IHRpbWUgZm9yIHRoaXMgY29tbWFuZCwgYW5kIGxvZyBpbiBzcGVjaWFsIGNhc2VzXG4gICAgbGV0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICBpZiAoY21kID09PSAnY3JlYXRlU2Vzc2lvbicpIHtcbiAgICAgIC8vIElmIGNyZWF0aW5nIGEgc2Vzc2lvbiBkZXRlcm1pbmUgaWYgVzNDIG9yIE1KU09OV1AgcHJvdG9jb2wgd2FzIHJlcXVlc3RlZCBhbmQgcmVtZW1iZXIgdGhlIGNob2ljZVxuICAgICAgdGhpcy5wcm90b2NvbCA9IGRldGVybWluZVByb3RvY29sKGFyZ3MpO1xuICAgICAgdGhpcy5sb2dFdmVudChFVkVOVF9TRVNTSU9OX0lOSVQpO1xuICAgIH0gZWxzZSBpZiAoY21kID09PSBERUxFVEVfU0VTU0lPTl9DT01NQU5EKSB7XG4gICAgICB0aGlzLmxvZ0V2ZW50KEVWRU5UX1NFU1NJT05fUVVJVF9TVEFSVCk7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgaGFkIGEgY29tbWFuZCB0aW1lciBydW5uaW5nLCBjbGVhciBpdCBub3cgdGhhdCB3ZSdyZSBzdGFydGluZ1xuICAgIC8vIGEgbmV3IGNvbW1hbmQgYW5kIHNvIGRvbid0IHdhbnQgdG8gdGltZSBvdXRcbiAgICBhd2FpdCB0aGlzLmNsZWFyTmV3Q29tbWFuZFRpbWVvdXQoKTtcblxuICAgIGlmICh0aGlzLnNodXRkb3duVW5leHBlY3RlZGx5KSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLk5vU3VjaERyaXZlckVycm9yKCdUaGUgZHJpdmVyIHdhcyB1bmV4cGVjdGVkbHkgc2h1dCBkb3duIScpO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBjb21tYW5kLCBpdCBtdXN0IG5vdCBiZSBpbXBsZW1lbnRlZFxuICAgIGlmICghdGhpc1tjbWRdKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdFlldEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBsZXQgdW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXI7XG4gICAgY29uc3QgY29tbWFuZEV4ZWN1dG9yID0gYXN5bmMgKCkgPT5cbiAgICAgIGF3YWl0IEIucmFjZShbXG4gICAgICAgIHRoaXNbY21kXSguLi5hcmdzKSxcbiAgICAgICAgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyID0gcmVqZWN0O1xuICAgICAgICAgIHRoaXMuZXZlbnRFbWl0dGVyLm9uKE9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQsIHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyKTtcbiAgICAgICAgfSksXG4gICAgICBdKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgaWYgKHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gcHJldmVudCBtZW1vcnkgbGVha3NcbiAgICAgICAgICB0aGlzLmV2ZW50RW1pdHRlci5yZW1vdmVMaXN0ZW5lcihcbiAgICAgICAgICAgIE9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQsXG4gICAgICAgICAgICB1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lclxuICAgICAgICAgICk7XG4gICAgICAgICAgdW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBjb25zdCByZXMgPSB0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWRcbiAgICAgID8gYXdhaXQgdGhpcy5jb21tYW5kc1F1ZXVlR3VhcmQuYWNxdWlyZShCYXNlRHJpdmVyLm5hbWUsIGNvbW1hbmRFeGVjdXRvcilcbiAgICAgIDogYXdhaXQgY29tbWFuZEV4ZWN1dG9yKCk7XG5cbiAgICAvLyBpZiB3ZSBoYXZlIHNldCBhIG5ldyBjb21tYW5kIHRpbWVvdXQgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KSwgc3RhcnQgYVxuICAgIC8vIHRpbWVyIG9uY2Ugd2UndmUgZmluaXNoZWQgZXhlY3V0aW5nIHRoaXMgY29tbWFuZC4gSWYgd2UgZG9uJ3QgY2xlYXJcbiAgICAvLyB0aGUgdGltZXIgKHdoaWNoIGlzIGRvbmUgd2hlbiBhIG5ldyBjb21tYW5kIGNvbWVzIGluKSwgd2Ugd2lsbCB0cmlnZ2VyXG4gICAgLy8gYXV0b21hdGljIHNlc3Npb24gZGVsZXRpb24gaW4gdGhpcy5vbkNvbW1hbmRUaW1lb3V0LiBPZiBjb3Vyc2Ugd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIHRyaWdnZXIgdGhlIHRpbWVyIHdoZW4gdGhlIHVzZXIgaXMgc2h1dHRpbmcgZG93biB0aGUgc2Vzc2lvblxuICAgIC8vIGludGVudGlvbmFsbHlcbiAgICBpZiAodGhpcy5pc0NvbW1hbmRzUXVldWVFbmFibGVkICYmIGNtZCAhPT0gREVMRVRFX1NFU1NJT05fQ09NTUFORCkge1xuICAgICAgLy8gcmVzZXR0aW5nIGV4aXN0aW5nIHRpbWVvdXRcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnROZXdDb21tYW5kVGltZW91dCgpO1xuICAgIH1cblxuICAgIC8vIGxvZyB0aW1pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBjb21tYW5kXG4gICAgY29uc3QgZW5kVGltZSA9IERhdGUubm93KCk7XG4gICAgdGhpcy5fZXZlbnRIaXN0b3J5LmNvbW1hbmRzLnB1c2goe2NtZCwgc3RhcnRUaW1lLCBlbmRUaW1lfSk7XG4gICAgaWYgKGNtZCA9PT0gJ2NyZWF0ZVNlc3Npb24nKSB7XG4gICAgICB0aGlzLmxvZ0V2ZW50KEVWRU5UX1NFU1NJT05fU1RBUlQpO1xuICAgIH0gZWxzZSBpZiAoY21kID09PSBERUxFVEVfU0VTU0lPTl9DT01NQU5EKSB7XG4gICAgICB0aGlzLmxvZ0V2ZW50KEVWRU5UX1NFU1NJT05fUVVJVF9ET05FKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7RXJyb3J8aW1wb3J0KCcuLi9wcm90b2NvbC9lcnJvcnMnKS5Ob1N1Y2hEcml2ZXJFcnJvcn0gZXJyXG4gICAqL1xuICBhc3luYyBzdGFydFVuZXhwZWN0ZWRTaHV0ZG93bihcbiAgICBlcnIgPSBuZXcgZXJyb3JzLk5vU3VjaERyaXZlckVycm9yKCdUaGUgZHJpdmVyIHdhcyB1bmV4cGVjdGVkbHkgc2h1dCBkb3duIScpXG4gICkge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCwgZXJyKTsgLy8gYWxsb3cgb3RoZXJzIHRvIGxpc3RlbiBmb3IgdGhpc1xuICAgIHRoaXMuc2h1dGRvd25VbmV4cGVjdGVkbHkgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5zZXNzaW9uSWQgIT09IG51bGwpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVTZXNzaW9uKHRoaXMuc2Vzc2lvbklkKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zaHV0ZG93blVuZXhwZWN0ZWRseSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN0YXJ0TmV3Q29tbWFuZFRpbWVvdXQoKSB7XG4gICAgLy8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyByb2d1ZSB0aW1lb3V0c1xuICAgIGF3YWl0IHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgLy8gaWYgY29tbWFuZCB0aW1lb3V0IGlzIDAsIGl0IGlzIGRpc2FibGVkXG4gICAgaWYgKCF0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMpIHJldHVybjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuXG4gICAgdGhpcy5ub0NvbW1hbmRUaW1lciA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgdGhpcy5sb2cud2FybihcbiAgICAgICAgYFNodXR0aW5nIGRvd24gYmVjYXVzZSB3ZSB3YWl0ZWQgYCArXG4gICAgICAgICAgYCR7dGhpcy5uZXdDb21tYW5kVGltZW91dE1zIC8gMTAwMC4wfSBzZWNvbmRzIGZvciBhIGNvbW1hbmRgXG4gICAgICApO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgYE5ldyBDb21tYW5kIFRpbWVvdXQgb2YgYCArXG4gICAgICAgIGAke3RoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyAvIDEwMDAuMH0gc2Vjb25kcyBgICtcbiAgICAgICAgYGV4cGlyZWQuIFRyeSBjdXN0b21pemluZyB0aGUgdGltZW91dCB1c2luZyB0aGUgYCArXG4gICAgICAgIGAnbmV3Q29tbWFuZFRpbWVvdXQnIGRlc2lyZWQgY2FwYWJpbGl0eWA7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpKTtcbiAgICB9LCB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtU2VydmVyfSBzZXJ2ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhvc3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBvcnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAgICovXG4gIGFzc2lnblNlcnZlcihzZXJ2ZXIsIGhvc3QsIHBvcnQsIHBhdGgpIHtcbiAgICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgICB0aGlzLnNlcnZlckhvc3QgPSBob3N0O1xuICAgIHRoaXMuc2VydmVyUG9ydCA9IHBvcnQ7XG4gICAgdGhpcy5zZXJ2ZXJQYXRoID0gcGF0aDtcbiAgfVxuXG4gIC8qXG4gICAqIFJlc3RhcnQgdGhlIHNlc3Npb24gd2l0aCB0aGUgb3JpZ2luYWwgY2FwcyxcbiAgICogcHJlc2VydmluZyB0aGUgdGltZW91dCBjb25maWcuXG4gICAqL1xuICBhc3luYyByZXNldCgpIHtcbiAgICB0aGlzLmxvZy5kZWJ1ZygnUmVzZXR0aW5nIGFwcCBtaWQtc2Vzc2lvbicpO1xuICAgIHRoaXMubG9nLmRlYnVnKCdSdW5uaW5nIGdlbmVyaWMgZnVsbCByZXNldCcpO1xuXG4gICAgLy8gcHJlc2VydmluZyBzdGF0ZVxuICAgIGxldCBjdXJyZW50Q29uZmlnID0ge307XG4gICAgZm9yIChsZXQgcHJvcGVydHkgb2YgW1xuICAgICAgJ2ltcGxpY2l0V2FpdE1zJyxcbiAgICAgICduZXdDb21tYW5kVGltZW91dE1zJyxcbiAgICAgICdzZXNzaW9uSWQnLFxuICAgICAgJ3Jlc2V0T25VbmV4cGVjdGVkU2h1dGRvd24nLFxuICAgIF0pIHtcbiAgICAgIGN1cnJlbnRDb25maWdbcHJvcGVydHldID0gdGhpc1twcm9wZXJ0eV07XG4gICAgfVxuXG4gICAgLy8gV2UgYWxzbyBuZWVkIHRvIHByZXNlcnZlIHRoZSB1bmV4cGVjdGVkIHNodXRkb3duLCBhbmQgbWFrZSBzdXJlIGl0IGlzIG5vdCBjYW5jZWxsZWQgZHVyaW5nIHJlc2V0LlxuICAgIHRoaXMucmVzZXRPblVuZXhwZWN0ZWRTaHV0ZG93biA9ICgpID0+IHt9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnNlc3Npb25JZCAhPT0gbnVsbCkge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZVNlc3Npb24odGhpcy5zZXNzaW9uSWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2cuZGVidWcoJ1Jlc3RhcnRpbmcgYXBwJyk7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlc3Npb24odGhpcy5vcmlnaW5hbENhcHMpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBhbHdheXMgcmVzdG9yZSBzdGF0ZS5cbiAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBfLnRvUGFpcnMoY3VycmVudENvbmZpZykpIHtcbiAgICAgICAgdGhpc1trZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEhpc3RvcmljYWxseSB0aGUgZmlyc3QgdHdvIGFyZ3VtZW50cyB3ZXJlIHJlc2VydmVkIGZvciBKU09OV1AgY2FwYWJpbGl0aWVzLlxuICAgKiBBcHBpdW0gMiBoYXMgZHJvcHBlZCB0aGUgc3VwcG9ydCBvZiB0aGVzZSwgc28gbm93IHdlIG9ubHkgYWNjZXB0IGNhcGFiaWxpdHlcbiAgICogb2JqZWN0cyBpbiBXM0MgZm9ybWF0IGFuZCB0aHVzIGFsbG93IGFueSBvZiB0aGUgdGhyZWUgYXJndW1lbnRzIHRvIHJlcHJlc2VudFxuICAgKiB0aGUgbGF0dGVyLlxuICAgKiBAcGFyYW0ge1czQ0NhcGFiaWxpdGllczxDPn0gdzNjQ2FwYWJpbGl0aWVzMVxuICAgKiBAcGFyYW0ge1czQ0NhcGFiaWxpdGllczxDPn0gW3czY0NhcGFiaWxpdGllczJdXG4gICAqIEBwYXJhbSB7VzNDQ2FwYWJpbGl0aWVzPEM+fSBbdzNjQ2FwYWJpbGl0aWVzXVxuICAgKiBAcGFyYW0ge0RyaXZlckRhdGFbXX0gW2RyaXZlckRhdGFdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFtzdHJpbmcsQ2FwYWJpbGl0aWVzPEM+XT59XG4gICAqL1xuICBhc3luYyBjcmVhdGVTZXNzaW9uKHczY0NhcGFiaWxpdGllczEsIHczY0NhcGFiaWxpdGllczIsIHczY0NhcGFiaWxpdGllcywgZHJpdmVyRGF0YSkge1xuICAgIGlmICh0aGlzLnNlc3Npb25JZCAhPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKFxuICAgICAgICAnQ2Fubm90IGNyZWF0ZSBhIG5ldyBzZXNzaW9uIHdoaWxlIG9uZSBpcyBpbiBwcm9ncmVzcydcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2cuZGVidWcoKTtcblxuICAgIGNvbnN0IG9yaWdpbmFsQ2FwcyA9IF8uY2xvbmVEZWVwKFxuICAgICAgW3czY0NhcGFiaWxpdGllcywgdzNjQ2FwYWJpbGl0aWVzMSwgdzNjQ2FwYWJpbGl0aWVzMl0uZmluZChpc1czY0NhcHMpXG4gICAgKTtcbiAgICBpZiAoIW9yaWdpbmFsQ2Fwcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKFxuICAgICAgICAnQXBwaXVtIG9ubHkgc3VwcG9ydHMgVzNDLXN0eWxlIGNhcGFiaWxpdHkgb2JqZWN0cy4gJyArXG4gICAgICAgICAgJ1lvdXIgY2xpZW50IGlzIHNlbmRpbmcgYW4gb2xkZXIgY2FwYWJpbGl0aWVzIGZvcm1hdC4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNsaWVudCBsaWJyYXJ5LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRQcm90b2NvbFczQygpO1xuXG4gICAgdGhpcy5vcmlnaW5hbENhcHMgPSBvcmlnaW5hbENhcHM7XG4gICAgdGhpcy5sb2cuZGVidWcoXG4gICAgICBgQ3JlYXRpbmcgc2Vzc2lvbiB3aXRoIFczQyBjYXBhYmlsaXRpZXM6ICR7SlNPTi5zdHJpbmdpZnkob3JpZ2luYWxDYXBzLCBudWxsLCAyKX1gXG4gICAgKTtcblxuICAgIC8qKiBAdHlwZSB7Q2FwYWJpbGl0aWVzPEM+fSAqL1xuICAgIGxldCBjYXBzO1xuICAgIHRyeSB7XG4gICAgICBjYXBzID0gcHJvY2Vzc0NhcGFiaWxpdGllcyhcbiAgICAgICAgb3JpZ2luYWxDYXBzLFxuICAgICAgICB0aGlzLl9kZXNpcmVkQ2FwQ29uc3RyYWludHMsXG4gICAgICAgIHRoaXMuc2hvdWxkVmFsaWRhdGVDYXBzXG4gICAgICApO1xuICAgICAgaWYgKGNhcHNbQVBQSVVNX09QVFNfQ0FQXSkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgICBgRm91bmQgJHtQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVB9IGNhcGFiaWxpdHkgcHJlc2VudDsgd2lsbCBwcm9tb3RlIGl0ZW1zIGluc2lkZSB0byBjYXBzYFxuICAgICAgICApO1xuICAgICAgICBjYXBzID0gcHJvbW90ZUFwcGl1bU9wdGlvbnMoY2Fwcyk7XG4gICAgICB9XG4gICAgICBjYXBzID0gZml4Q2FwcyhjYXBzLCB0aGlzLl9kZXNpcmVkQ2FwQ29uc3RyYWludHMsIHRoaXMubG9nKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlRGVzaXJlZENhcHMoY2Fwcyk7XG5cbiAgICB0aGlzLnNlc3Npb25JZCA9IHV0aWwudXVpZFY0KCk7XG4gICAgdGhpcy5jYXBzID0gY2FwcztcbiAgICAvLyBtZXJnZSBjYXBzIG9udG8gb3B0cyBzbyB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IHdoYXQncyB3aGVyZVxuICAgIHRoaXMub3B0cyA9IHsuLi5fLmNsb25lRGVlcCh0aGlzLmluaXRpYWxPcHRzKSwgLi4udGhpcy5jYXBzfTtcblxuICAgIC8vIGRlYWwgd2l0aCByZXNldHNcbiAgICAvLyBzb21lIHBlb3BsZSBsaWtlIHRvIGRvIHdlaXJkIHRoaW5ncyBieSBzZXR0aW5nIG5vUmVzZXQgYW5kIGZ1bGxSZXNldFxuICAgIC8vIGJvdGggdG8gdHJ1ZSwgYnV0IHRoaXMgaXMgbWlzZ3VpZGVkIGFuZCBzdHJhbmdlLCBzbyBlcnJvciBoZXJlIGluc3RlYWRcbiAgICBpZiAodGhpcy5vcHRzLm5vUmVzZXQgJiYgdGhpcy5vcHRzLmZ1bGxSZXNldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoZSAnbm9SZXNldCcgYW5kICdmdWxsUmVzZXQnIGNhcGFiaWxpdGllcyBhcmUgbXV0dWFsbHkgXCIgK1xuICAgICAgICAgICdleGNsdXNpdmUgYW5kIHNob3VsZCBub3QgYm90aCBiZSBzZXQgdG8gdHJ1ZS4gWW91ICcgK1xuICAgICAgICAgIFwicHJvYmFibHkgbWVhbnQgdG8ganVzdCB1c2UgJ2Z1bGxSZXNldCcgb24gaXRzIG93blwiXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRzLm5vUmVzZXQgPT09IHRydWUpIHtcbiAgICAgIHRoaXMub3B0cy5mdWxsUmVzZXQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0cy5mdWxsUmVzZXQgPT09IHRydWUpIHtcbiAgICAgIHRoaXMub3B0cy5ub1Jlc2V0ID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMub3B0cy5mYXN0UmVzZXQgPSAhdGhpcy5vcHRzLmZ1bGxSZXNldCAmJiAhdGhpcy5vcHRzLm5vUmVzZXQ7XG4gICAgdGhpcy5vcHRzLnNraXBVbmluc3RhbGwgPSB0aGlzLm9wdHMuZmFzdFJlc2V0IHx8IHRoaXMub3B0cy5ub1Jlc2V0O1xuXG4gICAgLy8gUHJldmVudHMgZW1wdHkgc3RyaW5nIGNhcHMgc28gd2UgZG9uJ3QgbmVlZCB0byB0ZXN0IGl0IGV2ZXJ5d2hlcmVcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0cy5hcHAgPT09ICdzdHJpbmcnICYmIHRoaXMub3B0cy5hcHAudHJpbSgpID09PSAnJykge1xuICAgICAgZGVsZXRlIHRoaXMub3B0cy5hcHA7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuY2Fwcy5uZXdDb21tYW5kVGltZW91dCkpIHtcbiAgICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAodGhpcy5jYXBzLm5ld0NvbW1hbmRUaW1lb3V0KSAqIDEwMDA7XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nLnByZWZpeCA9IGhlbHBlcnMuZ2VuZXJhdGVEcml2ZXJMb2dQcmVmaXgodGhpcywgdGhpcy5zZXNzaW9uSWQpO1xuXG4gICAgdGhpcy5sb2cuaW5mbyhgU2Vzc2lvbiBjcmVhdGVkIHdpdGggc2Vzc2lvbiBpZDogJHt0aGlzLnNlc3Npb25JZH1gKTtcblxuICAgIHJldHVybiBbdGhpcy5zZXNzaW9uSWQsIGNhcHNdO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc2Vzc2lvbklkXVxuICAgKiBAcGFyYW0ge0RyaXZlckRhdGFbXX0gW2RyaXZlckRhdGFdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlU2Vzc2lvbihzZXNzaW9uSWQsIGRyaXZlckRhdGEpIHtcbiAgICBhd2FpdCB0aGlzLmNsZWFyTmV3Q29tbWFuZFRpbWVvdXQoKTtcbiAgICBpZiAodGhpcy5pc0NvbW1hbmRzUXVldWVFbmFibGVkICYmIHRoaXMuY29tbWFuZHNRdWV1ZUd1YXJkLmlzQnVzeSgpKSB7XG4gICAgICAvLyBzaW1wbGUgaGFjayB0byByZWxlYXNlIHBlbmRpbmcgY29tbWFuZHMgaWYgdGhleSBleGlzdFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgXy5rZXlzKHRoaXMuY29tbWFuZHNRdWV1ZUd1YXJkLnF1ZXVlcykpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5xdWV1ZXNba2V5XSA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlc3Npb25JZCA9IG51bGw7XG4gICAgdGhpcy5fbG9nLnByZWZpeCA9IGhlbHBlcnMuZ2VuZXJhdGVEcml2ZXJMb2dQcmVmaXgodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtDYXBhYmlsaXRpZXN9IGNhcHNcbiAgICovXG4gIGxvZ0V4dHJhQ2FwcyhjYXBzKSB7XG4gICAgbGV0IGV4dHJhQ2FwcyA9IF8uZGlmZmVyZW5jZShfLmtleXMoY2FwcyksIF8ua2V5cyh0aGlzLl9kZXNpcmVkQ2FwQ29uc3RyYWludHMpKTtcbiAgICBpZiAoZXh0cmFDYXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5sb2cud2FybihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgY2FwYWJpbGl0aWVzIHdlcmUgcHJvdmlkZWQsIGJ1dCBhcmUgbm90IGAgKyBgcmVjb2duaXplZCBieSBBcHBpdW06YFxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgY2FwIG9mIGV4dHJhQ2Fwcykge1xuICAgICAgICB0aGlzLmxvZy53YXJuKGAgICR7Y2FwfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge0NhcGFiaWxpdGllczxDPn0gY2Fwc1xuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHZhbGlkYXRlRGVzaXJlZENhcHMoY2Fwcykge1xuICAgIGlmICghdGhpcy5zaG91bGRWYWxpZGF0ZUNhcHMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZUNhcHMoY2FwcywgdGhpcy5fZGVzaXJlZENhcENvbnN0cmFpbnRzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KFxuICAgICAgICBuZXcgZXJyb3JzLlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IoXG4gICAgICAgICAgYFRoZSBkZXNpcmVkQ2FwYWJpbGl0aWVzIG9iamVjdCB3YXMgbm90IHZhbGlkIGZvciB0aGUgYCArXG4gICAgICAgICAgICBgZm9sbG93aW5nIHJlYXNvbihzKTogJHtlLm1lc3NhZ2V9YFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubG9nRXh0cmFDYXBzKGNhcHMpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGVuc3VyZXMgdGhhdCBhbGwgb2YgdGhlIG1peGlucyBjb3JyZWN0bHkgaW1wbGVtZW50IHRoZSBpbnRlcmZhY2UgZGVzY3JpYmVkIGluIHtAbGlua2NvZGUgRHJpdmVyfS5cbiAqIEB0ZW1wbGF0ZSB7Q29uc3RyYWludHN9IFtDPXt9XVxuICogQGltcGxlbWVudHMge0RyaXZlcjxDPn1cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VEcml2ZXIgZXh0ZW5kcyBjcmVhdGVCYXNlRHJpdmVyQ2xhc3MoQmFzZURyaXZlckNvcmUpIHt9XG5leHBvcnQgZGVmYXVsdCBCYXNlRHJpdmVyO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5IVFRQTWV0aG9kfSBIVFRQTWV0aG9kXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXh0ZXJuYWxEcml2ZXJ9IEV4dGVybmFsRHJpdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyRGF0YX0gRHJpdmVyRGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkNvbnN0cmFpbnRzfSBDb25zdHJhaW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkNvbnN0cmFpbnR9IENvbnN0cmFpbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5TdHJpbmdSZWNvcmR9IFN0cmluZ1JlY29yZFxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkJhc2VEcml2ZXJDYXBDb25zdHJhaW50c30gQmFzZURyaXZlckNhcENvbnN0cmFpbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2VydmVyQXJnc30gU2VydmVyQXJnc1xuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFVwZGF0ZVNlcnZlckNhbGxiYWNrXG4gKiBAcGFyYW0ge2ltcG9ydCgnZXhwcmVzcycpLkV4cHJlc3N9IGFwcCAtIEV4cHJlc3MgYXBwXG4gKiBAcGFyYW0ge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkFwcGl1bVNlcnZlcn0gaHR0cFNlcnZlciAtIEhUVFAgc2VydmVyXG4gKiBAcmV0dXJucyB7aW1wb3J0KCd0eXBlLWZlc3QnKS5Qcm9taXNhYmxlPHZvaWQ+fVxuICovXG5cbi8qKlxuICogVGhpcyBpcyB1c2VkIHRvIGV4dGVuZCB7QGxpbmtjb2RlIEJhc2VEcml2ZXJDb3JlfSBieSB0aGUgbWl4aW5zIGFuZCBhbHNvIGV4dGVybmFsIGRyaXZlcnMuXG4gKiBAdGVtcGxhdGUgW1Byb3RvPXt9XVxuICogQHRlbXBsYXRlIFtTdGF0aWM9e31dXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ2xhc3M8QmFzZURyaXZlckNvcmUgJiBQcm90byxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJTdGF0aWMgJiBTdGF0aWM+fSBCYXNlRHJpdmVyQmFzZVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtDb25zdHJhaW50c30gW0M9QmFzZURyaXZlckNhcENvbnN0cmFpbnRzXVxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNlc3Npb25IYW5kbGVyPFtzdHJpbmcsIG9iamVjdF0sdm9pZCwgQz59IFNlc3Npb25IYW5kbGVyXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge0NvbnN0cmFpbnRzfSBbQz1CYXNlRHJpdmVyQ2FwQ29uc3RyYWludHNdXG4gKiBAdGVtcGxhdGUge1N0cmluZ1JlY29yZHx2b2lkfSBbRXh0cmE9dm9pZF1cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5DYXBhYmlsaXRpZXM8QywgRXh0cmE+fSBDYXBhYmlsaXRpZXNcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Q29uc3RyYWludHN9IFtDPUJhc2VEcml2ZXJDYXBDb25zdHJhaW50c11cbiAqIEB0ZW1wbGF0ZSB7U3RyaW5nUmVjb3JkfHZvaWR9IFtFeHRyYT12b2lkXVxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlczQ0NhcGFiaWxpdGllczxDLCBFeHRyYT59IFczQ0NhcGFiaWxpdGllc1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtDb25zdHJhaW50c30gQ1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkNvbnN0cmFpbnRzVG9DYXBzPEM+fSBDb25zdHJhaW50c1RvQ2Fwc1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtDb25zdHJhaW50c30gQ1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkRyaXZlcjxDPn0gRHJpdmVyXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge0NvbnN0cmFpbnRzfSBDXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyT3B0czxDPn0gRHJpdmVyT3B0c1xuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBOztBQU9BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsa0JBQWtCLEdBQUcscUJBQTNCO0FBQ0EsTUFBTUMsbUJB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
282
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFVkVOVF9TRVNTSU9OX0lOSVQiLCJFVkVOVF9TRVNTSU9OX1NUQVJUIiwiRVZFTlRfU0VTU0lPTl9RVUlUX1NUQVJUIiwiRVZFTlRfU0VTU0lPTl9RVUlUX0RPTkUiLCJPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5UIiwiQmFzZURyaXZlckNvcmUiLCJEcml2ZXJDb3JlIiwiY2xpQXJncyIsImNhcHMiLCJvcmlnaW5hbENhcHMiLCJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJvcHRzIiwiQkFTRV9ERVNJUkVEX0NBUF9DT05TVFJBSU5UUyIsImNvbnN0cnVjdG9yIiwic2hvdWxkVmFsaWRhdGVDYXBzIiwiX2Rlc2lyZWRDYXBDb25zdHJhaW50cyIsIk9iamVjdCIsImZyZWV6ZSIsIl8iLCJtZXJnZSIsImV4ZWN1dGVDb21tYW5kIiwiY21kIiwiYXJncyIsInN0YXJ0VGltZSIsIkRhdGUiLCJub3ciLCJwcm90b2NvbCIsImRldGVybWluZVByb3RvY29sIiwibG9nRXZlbnQiLCJERUxFVEVfU0VTU0lPTl9DT01NQU5EIiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsInNodXRkb3duVW5leHBlY3RlZGx5IiwiZXJyb3JzIiwiTm9TdWNoRHJpdmVyRXJyb3IiLCJOb3RZZXRJbXBsZW1lbnRlZEVycm9yIiwidW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXIiLCJjb21tYW5kRXhlY3V0b3IiLCJCIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJldmVudEVtaXR0ZXIiLCJvbiIsImZpbmFsbHkiLCJyZW1vdmVMaXN0ZW5lciIsInJlcyIsImlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQiLCJjb21tYW5kc1F1ZXVlR3VhcmQiLCJhY3F1aXJlIiwiQmFzZURyaXZlciIsIm5hbWUiLCJzdGFydE5ld0NvbW1hbmRUaW1lb3V0IiwiZW5kVGltZSIsIl9ldmVudEhpc3RvcnkiLCJjb21tYW5kcyIsInB1c2giLCJzdGFydFVuZXhwZWN0ZWRTaHV0ZG93biIsImVyciIsImVtaXQiLCJzZXNzaW9uSWQiLCJkZWxldGVTZXNzaW9uIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsIm5vQ29tbWFuZFRpbWVyIiwic2V0VGltZW91dCIsImxvZyIsIndhcm4iLCJlcnJvck1lc3NhZ2UiLCJFcnJvciIsImFzc2lnblNlcnZlciIsInNlcnZlciIsImhvc3QiLCJwb3J0IiwicGF0aCIsInNlcnZlckhvc3QiLCJzZXJ2ZXJQb3J0Iiwic2VydmVyUGF0aCIsInJlc2V0IiwiZGVidWciLCJjdXJyZW50Q29uZmlnIiwicHJvcGVydHkiLCJyZXNldE9uVW5leHBlY3RlZFNodXRkb3duIiwiY3JlYXRlU2Vzc2lvbiIsImtleSIsInZhbHVlIiwidG9QYWlycyIsInczY0NhcGFiaWxpdGllczEiLCJ3M2NDYXBhYmlsaXRpZXMyIiwidzNjQ2FwYWJpbGl0aWVzIiwiZHJpdmVyRGF0YSIsIlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IiLCJjbG9uZURlZXAiLCJmaW5kIiwiaXNXM2NDYXBzIiwic2V0UHJvdG9jb2xXM0MiLCJKU09OIiwic3RyaW5naWZ5IiwicHJvY2Vzc0NhcGFiaWxpdGllcyIsIkFQUElVTV9PUFRTX0NBUCIsIlBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCIsInByb21vdGVBcHBpdW1PcHRpb25zIiwiZml4Q2FwcyIsImUiLCJtZXNzYWdlIiwidmFsaWRhdGVEZXNpcmVkQ2FwcyIsInV0aWwiLCJ1dWlkVjQiLCJpbml0aWFsT3B0cyIsIm5vUmVzZXQiLCJmdWxsUmVzZXQiLCJmYXN0UmVzZXQiLCJza2lwVW5pbnN0YWxsIiwiYXBwIiwidHJpbSIsImlzVW5kZWZpbmVkIiwibmV3Q29tbWFuZFRpbWVvdXQiLCJfbG9nIiwicHJlZml4IiwiaGVscGVycyIsImdlbmVyYXRlRHJpdmVyTG9nUHJlZml4IiwiaW5mbyIsImlzQnVzeSIsImtleXMiLCJxdWV1ZXMiLCJsb2dFeHRyYUNhcHMiLCJleHRyYUNhcHMiLCJkaWZmZXJlbmNlIiwibGVuZ3RoIiwiY2FwIiwidmFsaWRhdGVDYXBzIiwiZXJyb3JBbmRUaHJvdyIsImNyZWF0ZUJhc2VEcml2ZXJDbGFzcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2RyaXZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG5pbXBvcnQge1xuICB2YWxpZGF0ZUNhcHMsXG4gIEFQUElVTV9PUFRTX0NBUCxcbiAgUFJFRklYRURfQVBQSVVNX09QVFNfQ0FQLFxuICBwcm9jZXNzQ2FwYWJpbGl0aWVzLFxuICBwcm9tb3RlQXBwaXVtT3B0aW9ucyxcbn0gZnJvbSAnLi9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHtEcml2ZXJDb3JlfSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHt1dGlsfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7Zml4Q2FwcywgaXNXM2NDYXBzfSBmcm9tICcuLi9oZWxwZXJzL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQge0RFTEVURV9TRVNTSU9OX0NPTU1BTkQsIGRldGVybWluZVByb3RvY29sLCBlcnJvcnN9IGZyb20gJy4uL3Byb3RvY29sJztcbmltcG9ydCB7Y3JlYXRlQmFzZURyaXZlckNsYXNzfSBmcm9tICcuL2NvbW1hbmRzJztcbmltcG9ydCBoZWxwZXJzIGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge0JBU0VfREVTSVJFRF9DQVBfQ09OU1RSQUlOVFN9IGZyb20gJ0BhcHBpdW0vdHlwZXMnO1xuXG5jb25zdCBFVkVOVF9TRVNTSU9OX0lOSVQgPSAnbmV3U2Vzc2lvblJlcXVlc3RlZCc7XG5jb25zdCBFVkVOVF9TRVNTSU9OX1NUQVJUID0gJ25ld1Nlc3Npb25TdGFydGVkJztcbmNvbnN0IEVWRU5UX1NFU1NJT05fUVVJVF9TVEFSVCA9ICdxdWl0U2Vzc2lvblJlcXVlc3RlZCc7XG5jb25zdCBFVkVOVF9TRVNTSU9OX1FVSVRfRE9ORSA9ICdxdWl0U2Vzc2lvbkZpbmlzaGVkJztcbmNvbnN0IE9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQgPSAnb25VbmV4cGVjdGVkU2h1dGRvd24nO1xuXG4vKipcbiAqIEBpbXBsZW1lbnRzIHtTZXNzaW9uSGFuZGxlcjxDPn1cbiAqIEB0ZW1wbGF0ZSB7Q29uc3RyYWludHN9IENcbiAqIEB0ZW1wbGF0ZSB7U3RyaW5nUmVjb3JkfSBbQ0FyZ3M9U3RyaW5nUmVjb3JkXVxuICogQGV4dGVuZHMge0RyaXZlckNvcmU8Qz59XG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlRHJpdmVyQ29yZSBleHRlbmRzIERyaXZlckNvcmUge1xuICAvKipcbiAgICogQHR5cGUge0NBcmdzICYgU2VydmVyQXJnc31cbiAgICovXG4gIGNsaUFyZ3M7XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDYXBhYmlsaXRpZXM8Qz59XG4gICAqL1xuICBjYXBzO1xuXG4gIC8qKlxuICAgKiBAdHlwZSB7VzNDQ2FwYWJpbGl0aWVzPEM+fVxuICAgKi9cbiAgb3JpZ2luYWxDYXBzO1xuXG4gIC8qKlxuICAgKiBAdHlwZSB7Q31cbiAgICovXG4gIGRlc2lyZWRDYXBDb25zdHJhaW50cztcblxuICAvKipcbiAgICogQHR5cGUge0RyaXZlck9wdHM8Qz4gJiBEcml2ZXJPcHRzPEJhc2VEcml2ZXJDYXBDb25zdHJhaW50cz59XG4gICAqL1xuICBvcHRzO1xuXG4gIHN0YXRpYyBCQVNFX0RFU0lSRURfQ0FQX0NPTlNUUkFJTlRTID0gQkFTRV9ERVNJUkVEX0NBUF9DT05TVFJBSU5UUztcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtEcml2ZXJPcHRzPEM+fSBvcHRzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvdWxkVmFsaWRhdGVDYXBzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRzID0gLyoqIEB0eXBlIHtEcml2ZXJPcHRzPEM+fSAqLyAoe30pLCBzaG91bGRWYWxpZGF0ZUNhcHMgPSB0cnVlKSB7XG4gICAgc3VwZXIob3B0cywgc2hvdWxkVmFsaWRhdGVDYXBzKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbXVzdCBiZSBhc3NpZ25lZCBoZXJlIGJlY2F1c2UgdGhlIGRlY2xhcmF0aW9uIG9mIHtAbGlua2NvZGUgQmFzZURyaXZlckNvcmUub3B0c30gYWJvdmVcbiAgICAgKiBibG93cyBhd2F5IHtAbGlua2NvZGUgRHJpdmVyQ29yZS5vcHRzfS5cbiAgICAgKi9cbiAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIHRoZSBiYXNlIGNvbnN0cmFpbnRzIHBsdXMgd2hhdGV2ZXIgdGhlIHN1YmNsYXNzIHdhbnRzIHRvIGFkZC5cbiAgICpcbiAgICogU3ViY2xhc3NlcyBfc2hvdWxkbid0XyBuZWVkIHRvIHVzZSB0aGlzLiBJZiB5b3UgbmVlZCB0byB1c2UgdGhpcywgcGxlYXNlIGNyZWF0ZVxuICAgKiBhbiBpc3N1ZTpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtL2FwcGl1bS9pc3N1ZXMvbmV3XG4gICAqIEB0eXBlIHtSZWFkb25seTxCYXNlRHJpdmVyQ2FwQ29uc3RyYWludHMgJiBDPn1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgZ2V0IF9kZXNpcmVkQ2FwQ29uc3RyYWludHMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5mcmVlemUoXy5tZXJnZSh7fSwgQkFTRV9ERVNJUkVEX0NBUF9DT05TVFJBSU5UUywgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMpKTtcbiAgfVxuXG4gIC8vIFRoaXMgaXMgdGhlIG1haW4gY29tbWFuZCBoYW5kbGVyIGZvciB0aGUgZHJpdmVyLiBJdCB3cmFwcyBjb21tYW5kXG4gIC8vIGV4ZWN1dGlvbiB3aXRoIHRpbWVvdXQgbG9naWMsIGNoZWNraW5nIHRoYXQgd2UgaGF2ZSBhIHZhbGlkIHNlc3Npb24sXG4gIC8vIGFuZCBlbnN1cmluZyB0aGF0IHdlIGV4ZWN1dGUgY29tbWFuZHMgb25lIGF0IGEgdGltZS4gVGhpcyBtZXRob2QgaXMgY2FsbGVkXG4gIC8vIGJ5IE1KU09OV1AncyBleHByZXNzIHJvdXRlci5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbWRcbiAgICogQHBhcmFtICB7Li4uYW55fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBhc3luYyBleGVjdXRlQ29tbWFuZChjbWQsIC4uLmFyZ3MpIHtcbiAgICAvLyBnZXQgc3RhcnQgdGltZSBmb3IgdGhpcyBjb21tYW5kLCBhbmQgbG9nIGluIHNwZWNpYWwgY2FzZXNcbiAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgIGlmIChjbWQgPT09ICdjcmVhdGVTZXNzaW9uJykge1xuICAgICAgLy8gSWYgY3JlYXRpbmcgYSBzZXNzaW9uIGRldGVybWluZSBpZiBXM0Mgb3IgTUpTT05XUCBwcm90b2NvbCB3YXMgcmVxdWVzdGVkIGFuZCByZW1lbWJlciB0aGUgY2hvaWNlXG4gICAgICB0aGlzLnByb3RvY29sID0gZGV0ZXJtaW5lUHJvdG9jb2woYXJncyk7XG4gICAgICB0aGlzLmxvZ0V2ZW50KEVWRU5UX1NFU1NJT05fSU5JVCk7XG4gICAgfSBlbHNlIGlmIChjbWQgPT09IERFTEVURV9TRVNTSU9OX0NPTU1BTkQpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoRVZFTlRfU0VTU0lPTl9RVUlUX1NUQVJUKTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYWQgYSBjb21tYW5kIHRpbWVyIHJ1bm5pbmcsIGNsZWFyIGl0IG5vdyB0aGF0IHdlJ3JlIHN0YXJ0aW5nXG4gICAgLy8gYSBuZXcgY29tbWFuZCBhbmQgc28gZG9uJ3Qgd2FudCB0byB0aW1lIG91dFxuICAgIGF3YWl0IHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgaWYgKHRoaXMuc2h1dGRvd25VbmV4cGVjdGVkbHkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm9TdWNoRHJpdmVyRXJyb3IoJ1RoZSBkcml2ZXIgd2FzIHVuZXhwZWN0ZWRseSBzaHV0IGRvd24hJyk7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIGNvbW1hbmQsIGl0IG11c3Qgbm90IGJlIGltcGxlbWVudGVkXG4gICAgaWYgKCF0aGlzW2NtZF0pIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90WWV0SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIGxldCB1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lcjtcbiAgICBjb25zdCBjb21tYW5kRXhlY3V0b3IgPSBhc3luYyAoKSA9PlxuICAgICAgYXdhaXQgQi5yYWNlKFtcbiAgICAgICAgdGhpc1tjbWRdKC4uLmFyZ3MpLFxuICAgICAgICBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgdW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXIgPSByZWplY3Q7XG4gICAgICAgICAgdGhpcy5ldmVudEVtaXR0ZXIub24oT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCwgdW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXIpO1xuICAgICAgICB9KSxcbiAgICAgIF0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBpZiAodW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXIpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuICAgICAgICAgIHRoaXMuZXZlbnRFbWl0dGVyLnJlbW92ZUxpc3RlbmVyKFxuICAgICAgICAgICAgT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCxcbiAgICAgICAgICAgIHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICB1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuaXNDb21tYW5kc1F1ZXVlRW5hYmxlZFxuICAgICAgPyBhd2FpdCB0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5hY3F1aXJlKEJhc2VEcml2ZXIubmFtZSwgY29tbWFuZEV4ZWN1dG9yKVxuICAgICAgOiBhd2FpdCBjb21tYW5kRXhlY3V0b3IoKTtcblxuICAgIC8vIGlmIHdlIGhhdmUgc2V0IGEgbmV3IGNvbW1hbmQgdGltZW91dCAod2hpY2ggaXMgdGhlIGRlZmF1bHQpLCBzdGFydCBhXG4gICAgLy8gdGltZXIgb25jZSB3ZSd2ZSBmaW5pc2hlZCBleGVjdXRpbmcgdGhpcyBjb21tYW5kLiBJZiB3ZSBkb24ndCBjbGVhclxuICAgIC8vIHRoZSB0aW1lciAod2hpY2ggaXMgZG9uZSB3aGVuIGEgbmV3IGNvbW1hbmQgY29tZXMgaW4pLCB3ZSB3aWxsIHRyaWdnZXJcbiAgICAvLyBhdXRvbWF0aWMgc2Vzc2lvbiBkZWxldGlvbiBpbiB0aGlzLm9uQ29tbWFuZFRpbWVvdXQuIE9mIGNvdXJzZSB3ZSBkb24ndFxuICAgIC8vIHdhbnQgdG8gdHJpZ2dlciB0aGUgdGltZXIgd2hlbiB0aGUgdXNlciBpcyBzaHV0dGluZyBkb3duIHRoZSBzZXNzaW9uXG4gICAgLy8gaW50ZW50aW9uYWxseVxuICAgIGlmICh0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgJiYgY21kICE9PSBERUxFVEVfU0VTU0lPTl9DT01NQU5EKSB7XG4gICAgICAvLyByZXNldHRpbmcgZXhpc3RpbmcgdGltZW91dFxuICAgICAgYXdhaXQgdGhpcy5zdGFydE5ld0NvbW1hbmRUaW1lb3V0KCk7XG4gICAgfVxuXG4gICAgLy8gbG9nIHRpbWluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGNvbW1hbmRcbiAgICBjb25zdCBlbmRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLl9ldmVudEhpc3RvcnkuY29tbWFuZHMucHVzaCh7Y21kLCBzdGFydFRpbWUsIGVuZFRpbWV9KTtcbiAgICBpZiAoY21kID09PSAnY3JlYXRlU2Vzc2lvbicpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoRVZFTlRfU0VTU0lPTl9TVEFSVCk7XG4gICAgfSBlbHNlIGlmIChjbWQgPT09IERFTEVURV9TRVNTSU9OX0NPTU1BTkQpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoRVZFTlRfU0VTU0lPTl9RVUlUX0RPTkUpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtFcnJvcnxpbXBvcnQoJy4uL3Byb3RvY29sL2Vycm9ycycpLk5vU3VjaERyaXZlckVycm9yfSBlcnJcbiAgICovXG4gIGFzeW5jIHN0YXJ0VW5leHBlY3RlZFNodXRkb3duKFxuICAgIGVyciA9IG5ldyBlcnJvcnMuTm9TdWNoRHJpdmVyRXJyb3IoJ1RoZSBkcml2ZXIgd2FzIHVuZXhwZWN0ZWRseSBzaHV0IGRvd24hJylcbiAgKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIuZW1pdChPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5ULCBlcnIpOyAvLyBhbGxvdyBvdGhlcnMgdG8gbGlzdGVuIGZvciB0aGlzXG4gICAgdGhpcy5zaHV0ZG93blVuZXhwZWN0ZWRseSA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnNlc3Npb25JZCAhPT0gbnVsbCkge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZVNlc3Npb24odGhpcy5zZXNzaW9uSWQpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNodXRkb3duVW5leHBlY3RlZGx5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc3RhcnROZXdDb21tYW5kVGltZW91dCgpIHtcbiAgICAvLyBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIHJvZ3VlIHRpbWVvdXRzXG4gICAgYXdhaXQgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG5cbiAgICAvLyBpZiBjb21tYW5kIHRpbWVvdXQgaXMgMCwgaXQgaXMgZGlzYWJsZWRcbiAgICBpZiAoIXRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcykgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG5cbiAgICB0aGlzLm5vQ29tbWFuZFRpbWVyID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLmxvZy53YXJuKFxuICAgICAgICBgU2h1dHRpbmcgZG93biBiZWNhdXNlIHdlIHdhaXRlZCBgICtcbiAgICAgICAgICBgJHt0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMgLyAxMDAwLjB9IHNlY29uZHMgZm9yIGEgY29tbWFuZGBcbiAgICAgICk7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICBgTmV3IENvbW1hbmQgVGltZW91dCBvZiBgICtcbiAgICAgICAgYCR7dGhpcy5uZXdDb21tYW5kVGltZW91dE1zIC8gMTAwMC4wfSBzZWNvbmRzIGAgK1xuICAgICAgICBgZXhwaXJlZC4gVHJ5IGN1c3RvbWl6aW5nIHRoZSB0aW1lb3V0IHVzaW5nIHRoZSBgICtcbiAgICAgICAgYCduZXdDb21tYW5kVGltZW91dCcgZGVzaXJlZCBjYXBhYmlsaXR5YDtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnRVbmV4cGVjdGVkU2h1dGRvd24obmV3IEVycm9yKGVycm9yTWVzc2FnZSkpO1xuICAgIH0sIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1TZXJ2ZXJ9IHNlcnZlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gaG9zdFxuICAgKiBAcGFyYW0ge251bWJlcn0gcG9ydFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICAgKi9cbiAgYXNzaWduU2VydmVyKHNlcnZlciwgaG9zdCwgcG9ydCwgcGF0aCkge1xuICAgIHRoaXMuc2VydmVyID0gc2VydmVyO1xuICAgIHRoaXMuc2VydmVySG9zdCA9IGhvc3Q7XG4gICAgdGhpcy5zZXJ2ZXJQb3J0ID0gcG9ydDtcbiAgICB0aGlzLnNlcnZlclBhdGggPSBwYXRoO1xuICB9XG5cbiAgLypcbiAgICogUmVzdGFydCB0aGUgc2Vzc2lvbiB3aXRoIHRoZSBvcmlnaW5hbCBjYXBzLFxuICAgKiBwcmVzZXJ2aW5nIHRoZSB0aW1lb3V0IGNvbmZpZy5cbiAgICovXG4gIGFzeW5jIHJlc2V0KCkge1xuICAgIHRoaXMubG9nLmRlYnVnKCdSZXNldHRpbmcgYXBwIG1pZC1zZXNzaW9uJyk7XG4gICAgdGhpcy5sb2cuZGVidWcoJ1J1bm5pbmcgZ2VuZXJpYyBmdWxsIHJlc2V0Jyk7XG5cbiAgICAvLyBwcmVzZXJ2aW5nIHN0YXRlXG4gICAgbGV0IGN1cnJlbnRDb25maWcgPSB7fTtcbiAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnaW1wbGljaXRXYWl0TXMnLFxuICAgICAgJ25ld0NvbW1hbmRUaW1lb3V0TXMnLFxuICAgICAgJ3Nlc3Npb25JZCcsXG4gICAgICAncmVzZXRPblVuZXhwZWN0ZWRTaHV0ZG93bicsXG4gICAgXSkge1xuICAgICAgY3VycmVudENvbmZpZ1twcm9wZXJ0eV0gPSB0aGlzW3Byb3BlcnR5XTtcbiAgICB9XG5cbiAgICAvLyBXZSBhbHNvIG5lZWQgdG8gcHJlc2VydmUgdGhlIHVuZXhwZWN0ZWQgc2h1dGRvd24sIGFuZCBtYWtlIHN1cmUgaXQgaXMgbm90IGNhbmNlbGxlZCBkdXJpbmcgcmVzZXQuXG4gICAgdGhpcy5yZXNldE9uVW5leHBlY3RlZFNodXRkb3duID0gKCkgPT4ge307XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSBudWxsKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbih0aGlzLnNlc3Npb25JZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnUmVzdGFydGluZyBhcHAnKTtcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2Vzc2lvbih0aGlzLm9yaWdpbmFsQ2Fwcyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIGFsd2F5cyByZXN0b3JlIHN0YXRlLlxuICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyhjdXJyZW50Q29uZmlnKSkge1xuICAgICAgICB0aGlzW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogSGlzdG9yaWNhbGx5IHRoZSBmaXJzdCB0d28gYXJndW1lbnRzIHdlcmUgcmVzZXJ2ZWQgZm9yIEpTT05XUCBjYXBhYmlsaXRpZXMuXG4gICAqIEFwcGl1bSAyIGhhcyBkcm9wcGVkIHRoZSBzdXBwb3J0IG9mIHRoZXNlLCBzbyBub3cgd2Ugb25seSBhY2NlcHQgY2FwYWJpbGl0eVxuICAgKiBvYmplY3RzIGluIFczQyBmb3JtYXQgYW5kIHRodXMgYWxsb3cgYW55IG9mIHRoZSB0aHJlZSBhcmd1bWVudHMgdG8gcmVwcmVzZW50XG4gICAqIHRoZSBsYXR0ZXIuXG4gICAqIEBwYXJhbSB7VzNDQ2FwYWJpbGl0aWVzPEM+fSB3M2NDYXBhYmlsaXRpZXMxXG4gICAqIEBwYXJhbSB7VzNDQ2FwYWJpbGl0aWVzPEM+fSBbdzNjQ2FwYWJpbGl0aWVzMl1cbiAgICogQHBhcmFtIHtXM0NDYXBhYmlsaXRpZXM8Qz59IFt3M2NDYXBhYmlsaXRpZXNdXG4gICAqIEBwYXJhbSB7RHJpdmVyRGF0YVtdfSBbZHJpdmVyRGF0YV1cbiAgICogQHJldHVybnMge1Byb21pc2U8W3N0cmluZyxDYXBhYmlsaXRpZXM8Qz5dPn1cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24odzNjQ2FwYWJpbGl0aWVzMSwgdzNjQ2FwYWJpbGl0aWVzMiwgdzNjQ2FwYWJpbGl0aWVzLCBkcml2ZXJEYXRhKSB7XG4gICAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IoXG4gICAgICAgICdDYW5ub3QgY3JlYXRlIGEgbmV3IHNlc3Npb24gd2hpbGUgb25lIGlzIGluIHByb2dyZXNzJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvZy5kZWJ1ZygpO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxDYXBzID0gXy5jbG9uZURlZXAoXG4gICAgICBbdzNjQ2FwYWJpbGl0aWVzLCB3M2NDYXBhYmlsaXRpZXMxLCB3M2NDYXBhYmlsaXRpZXMyXS5maW5kKGlzVzNjQ2FwcylcbiAgICApO1xuICAgIGlmICghb3JpZ2luYWxDYXBzKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IoXG4gICAgICAgICdBcHBpdW0gb25seSBzdXBwb3J0cyBXM0Mtc3R5bGUgY2FwYWJpbGl0eSBvYmplY3RzLiAnICtcbiAgICAgICAgICAnWW91ciBjbGllbnQgaXMgc2VuZGluZyBhbiBvbGRlciBjYXBhYmlsaXRpZXMgZm9ybWF0LiBQbGVhc2UgdXBkYXRlIHlvdXIgY2xpZW50IGxpYnJhcnkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFByb3RvY29sVzNDKCk7XG5cbiAgICB0aGlzLm9yaWdpbmFsQ2FwcyA9IG9yaWdpbmFsQ2FwcztcbiAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgIGBDcmVhdGluZyBzZXNzaW9uIHdpdGggVzNDIGNhcGFiaWxpdGllczogJHtKU09OLnN0cmluZ2lmeShvcmlnaW5hbENhcHMsIG51bGwsIDIpfWBcbiAgICApO1xuXG4gICAgLyoqIEB0eXBlIHtDYXBhYmlsaXRpZXM8Qz59ICovXG4gICAgbGV0IGNhcHM7XG4gICAgdHJ5IHtcbiAgICAgIGNhcHMgPSBwcm9jZXNzQ2FwYWJpbGl0aWVzKFxuICAgICAgICBvcmlnaW5hbENhcHMsXG4gICAgICAgIHRoaXMuX2Rlc2lyZWRDYXBDb25zdHJhaW50cyxcbiAgICAgICAgdGhpcy5zaG91bGRWYWxpZGF0ZUNhcHNcbiAgICAgICk7XG4gICAgICBpZiAoY2Fwc1tBUFBJVU1fT1BUU19DQVBdKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgICAgIGBGb3VuZCAke1BSRUZJWEVEX0FQUElVTV9PUFRTX0NBUH0gY2FwYWJpbGl0eSBwcmVzZW50OyB3aWxsIHByb21vdGUgaXRlbXMgaW5zaWRlIHRvIGNhcHNgXG4gICAgICAgICk7XG4gICAgICAgIGNhcHMgPSBwcm9tb3RlQXBwaXVtT3B0aW9ucyhjYXBzKTtcbiAgICAgIH1cbiAgICAgIGNhcHMgPSBmaXhDYXBzKGNhcHMsIHRoaXMuX2Rlc2lyZWRDYXBDb25zdHJhaW50cywgdGhpcy5sb2cpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVEZXNpcmVkQ2FwcyhjYXBzKTtcblxuICAgIHRoaXMuc2Vzc2lvbklkID0gdXRpbC51dWlkVjQoKTtcbiAgICB0aGlzLmNhcHMgPSBjYXBzO1xuICAgIC8vIG1lcmdlIGNhcHMgb250byBvcHRzIHNvIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgd2hhdCdzIHdoZXJlXG4gICAgdGhpcy5vcHRzID0gey4uLl8uY2xvbmVEZWVwKHRoaXMuaW5pdGlhbE9wdHMpLCAuLi50aGlzLmNhcHN9O1xuXG4gICAgLy8gZGVhbCB3aXRoIHJlc2V0c1xuICAgIC8vIHNvbWUgcGVvcGxlIGxpa2UgdG8gZG8gd2VpcmQgdGhpbmdzIGJ5IHNldHRpbmcgbm9SZXNldCBhbmQgZnVsbFJlc2V0XG4gICAgLy8gYm90aCB0byB0cnVlLCBidXQgdGhpcyBpcyBtaXNndWlkZWQgYW5kIHN0cmFuZ2UsIHNvIGVycm9yIGhlcmUgaW5zdGVhZFxuICAgIGlmICh0aGlzLm9wdHMubm9SZXNldCAmJiB0aGlzLm9wdHMuZnVsbFJlc2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVGhlICdub1Jlc2V0JyBhbmQgJ2Z1bGxSZXNldCcgY2FwYWJpbGl0aWVzIGFyZSBtdXR1YWxseSBcIiArXG4gICAgICAgICAgJ2V4Y2x1c2l2ZSBhbmQgc2hvdWxkIG5vdCBib3RoIGJlIHNldCB0byB0cnVlLiBZb3UgJyArXG4gICAgICAgICAgXCJwcm9iYWJseSBtZWFudCB0byBqdXN0IHVzZSAnZnVsbFJlc2V0JyBvbiBpdHMgb3duXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdHMubm9SZXNldCA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5vcHRzLmZ1bGxSZXNldCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRzLmZ1bGxSZXNldCA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5vcHRzLm5vUmVzZXQgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5vcHRzLmZhc3RSZXNldCA9ICF0aGlzLm9wdHMuZnVsbFJlc2V0ICYmICF0aGlzLm9wdHMubm9SZXNldDtcbiAgICB0aGlzLm9wdHMuc2tpcFVuaW5zdGFsbCA9IHRoaXMub3B0cy5mYXN0UmVzZXQgfHwgdGhpcy5vcHRzLm5vUmVzZXQ7XG5cbiAgICAvLyBQcmV2ZW50cyBlbXB0eSBzdHJpbmcgY2FwcyBzbyB3ZSBkb24ndCBuZWVkIHRvIHRlc3QgaXQgZXZlcnl3aGVyZVxuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRzLmFwcCA9PT0gJ3N0cmluZycgJiYgdGhpcy5vcHRzLmFwcC50cmltKCkgPT09ICcnKSB7XG4gICAgICBkZWxldGUgdGhpcy5vcHRzLmFwcDtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodGhpcy5jYXBzLm5ld0NvbW1hbmRUaW1lb3V0KSkge1xuICAgICAgdGhpcy5uZXdDb21tYW5kVGltZW91dE1zID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovICh0aGlzLmNhcHMubmV3Q29tbWFuZFRpbWVvdXQpICogMTAwMDtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2cucHJlZml4ID0gaGVscGVycy5nZW5lcmF0ZURyaXZlckxvZ1ByZWZpeCh0aGlzLCB0aGlzLnNlc3Npb25JZCk7XG5cbiAgICB0aGlzLmxvZy5pbmZvKGBTZXNzaW9uIGNyZWF0ZWQgd2l0aCBzZXNzaW9uIGlkOiAke3RoaXMuc2Vzc2lvbklkfWApO1xuXG4gICAgcmV0dXJuIFt0aGlzLnNlc3Npb25JZCwgY2Fwc107XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzZXNzaW9uSWRdXG4gICAqIEBwYXJhbSB7RHJpdmVyRGF0YVtdfSBbZHJpdmVyRGF0YV1cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBkZWxldGVTZXNzaW9uKHNlc3Npb25JZCwgZHJpdmVyRGF0YSkge1xuICAgIGF3YWl0IHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuICAgIGlmICh0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgJiYgdGhpcy5jb21tYW5kc1F1ZXVlR3VhcmQuaXNCdXN5KCkpIHtcbiAgICAgIC8vIHNpbXBsZSBoYWNrIHRvIHJlbGVhc2UgcGVuZGluZyBjb21tYW5kcyBpZiB0aGV5IGV4aXN0XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBfLmtleXModGhpcy5jb21tYW5kc1F1ZXVlR3VhcmQucXVldWVzKSkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuY29tbWFuZHNRdWV1ZUd1YXJkLnF1ZXVlc1trZXldID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2Vzc2lvbklkID0gbnVsbDtcbiAgICB0aGlzLl9sb2cucHJlZml4ID0gaGVscGVycy5nZW5lcmF0ZURyaXZlckxvZ1ByZWZpeCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge0NhcGFiaWxpdGllc30gY2Fwc1xuICAgKi9cbiAgbG9nRXh0cmFDYXBzKGNhcHMpIHtcbiAgICBsZXQgZXh0cmFDYXBzID0gXy5kaWZmZXJlbmNlKF8ua2V5cyhjYXBzKSwgXy5rZXlzKHRoaXMuX2Rlc2lyZWRDYXBDb25zdHJhaW50cykpO1xuICAgIGlmIChleHRyYUNhcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKFxuICAgICAgICBgVGhlIGZvbGxvd2luZyBjYXBhYmlsaXRpZXMgd2VyZSBwcm92aWRlZCwgYnV0IGFyZSBub3QgYCArIGByZWNvZ25pemVkIGJ5IEFwcGl1bTpgXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBjYXAgb2YgZXh0cmFDYXBzKSB7XG4gICAgICAgIHRoaXMubG9nLndhcm4oYCAgJHtjYXB9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzPEM+fSBjYXBzXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgdmFsaWRhdGVEZXNpcmVkQ2FwcyhjYXBzKSB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFZhbGlkYXRlQ2Fwcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlQ2FwcyhjYXBzLCB0aGlzLl9kZXNpcmVkQ2FwQ29uc3RyYWludHMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coXG4gICAgICAgIG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihcbiAgICAgICAgICBgVGhlIGRlc2lyZWRDYXBhYmlsaXRpZXMgb2JqZWN0IHdhcyBub3QgdmFsaWQgZm9yIHRoZSBgICtcbiAgICAgICAgICAgIGBmb2xsb3dpbmcgcmVhc29uKHMpOiAke2UubWVzc2FnZX1gXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dFeHRyYUNhcHMoY2Fwcyk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCBvZiB0aGUgbWl4aW5zIGNvcnJlY3RseSBpbXBsZW1lbnQgdGhlIGludGVyZmFjZSBkZXNjcmliZWQgaW4ge0BsaW5rY29kZSBEcml2ZXJ9LlxuICogQHRlbXBsYXRlIHtDb25zdHJhaW50c30gW0M9e31dXG4gKiBAaW1wbGVtZW50cyB7RHJpdmVyPEM+fVxuICovXG5leHBvcnQgY2xhc3MgQmFzZURyaXZlciBleHRlbmRzIGNyZWF0ZUJhc2VEcml2ZXJDbGFzcyhCYXNlRHJpdmVyQ29yZSkge31cbmV4cG9ydCBkZWZhdWx0IEJhc2VEcml2ZXI7XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkhUVFBNZXRob2R9IEhUVFBNZXRob2RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FeHRlcm5hbERyaXZlcn0gRXh0ZXJuYWxEcml2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJEYXRhfSBEcml2ZXJEYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ29uc3RyYWludHN9IENvbnN0cmFpbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ29uc3RyYWludH0gQ29uc3RyYWludFxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlN0cmluZ1JlY29yZH0gU3RyaW5nUmVjb3JkXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQmFzZURyaXZlckNhcENvbnN0cmFpbnRzfSBCYXNlRHJpdmVyQ2FwQ29uc3RyYWludHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5TZXJ2ZXJBcmdzfSBTZXJ2ZXJBcmdzXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVXBkYXRlU2VydmVyQ2FsbGJhY2tcbiAqIEBwYXJhbSB7aW1wb3J0KCdleHByZXNzJykuRXhwcmVzc30gYXBwIC0gRXhwcmVzcyBhcHBcbiAqIEBwYXJhbSB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtU2VydmVyfSBodHRwU2VydmVyIC0gSFRUUCBzZXJ2ZXJcbiAqIEByZXR1cm5zIHtpbXBvcnQoJ3R5cGUtZmVzdCcpLlByb21pc2FibGU8dm9pZD59XG4gKi9cblxuLyoqXG4gKiBUaGlzIGlzIHVzZWQgdG8gZXh0ZW5kIHtAbGlua2NvZGUgQmFzZURyaXZlckNvcmV9IGJ5IHRoZSBtaXhpbnMgYW5kIGFsc28gZXh0ZXJuYWwgZHJpdmVycy5cbiAqIEB0ZW1wbGF0ZSBbUHJvdG89e31dXG4gKiBAdGVtcGxhdGUgW1N0YXRpYz17fV1cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5DbGFzczxCYXNlRHJpdmVyQ29yZSAmIFByb3RvLGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkRyaXZlclN0YXRpYyAmIFN0YXRpYz59IEJhc2VEcml2ZXJCYXNlXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge0NvbnN0cmFpbnRzfSBbQz1CYXNlRHJpdmVyQ2FwQ29uc3RyYWludHNdXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2Vzc2lvbkhhbmRsZXI8W3N0cmluZywgb2JqZWN0XSx2b2lkLCBDPn0gU2Vzc2lvbkhhbmRsZXJcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Q29uc3RyYWludHN9IFtDPUJhc2VEcml2ZXJDYXBDb25zdHJhaW50c11cbiAqIEB0ZW1wbGF0ZSB7U3RyaW5nUmVjb3JkfHZvaWR9IFtFeHRyYT12b2lkXVxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkNhcGFiaWxpdGllczxDLCBFeHRyYT59IENhcGFiaWxpdGllc1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtDb25zdHJhaW50c30gW0M9QmFzZURyaXZlckNhcENvbnN0cmFpbnRzXVxuICogQHRlbXBsYXRlIHtTdHJpbmdSZWNvcmR8dm9pZH0gW0V4dHJhPXZvaWRdXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVzNDQ2FwYWJpbGl0aWVzPEMsIEV4dHJhPn0gVzNDQ2FwYWJpbGl0aWVzXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge0NvbnN0cmFpbnRzfSBDXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ29uc3RyYWludHNUb0NhcHM8Qz59IENvbnN0cmFpbnRzVG9DYXBzXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge0NvbnN0cmFpbnRzfSBDXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyPEM+fSBEcml2ZXJcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Q29uc3RyYWludHN9IENcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJPcHRzPEM+fSBEcml2ZXJPcHRzXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7O0FBT0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxrQkFBa0IsR0FBRyxxQkFBM0I7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxtQkFBNUI7QUFDQSxNQUFNQyx3QkFBd0IsR0FBRyxzQkFBakM7QUFDQSxNQUFNQyx1QkFBdUIsR0FBRyxxQkFBaEM7QUFDQSxNQUFNQyw0QkFBNEIsR0FBRyxzQkFBckM7O0FBUU8sTUFBTUMsY0FBTixTQUE2QkMsZ0JBQTdCLENBQXdDO0VBSTdDQyxPQUFPO0VBS1BDLElBQUk7RUFLSkMsWUFBWTtFQUtaQyxxQkFBcUI7RUFLckJDLElBQUk7RUFFK0IsT0FBNUJDLDRCQUE0QixHQUFHQSxtQ0FBSDs7RUFPbkNDLFdBQVcsQ0FBQ0YsSUFBSSxHQUFpQyxFQUF0QyxFQUEyQ0csa0JBQWtCLEdBQUcsSUFBaEUsRUFBc0U7SUFDL0UsTUFBTUgsSUFBTixFQUFZRyxrQkFBWjtJQU1BLEtBQUtILElBQUwsR0FBWUEsSUFBWjtFQUNEOztFQVd5QixJQUF0Qkksc0JBQXNCLEdBQUc7SUFDM0IsT0FBT0MsTUFBTSxDQUFDQyxNQUFQLENBQWNDLGVBQUEsQ0FBRUMsS0FBRixDQUFRLEVBQVIsRUFBWVAsbUNBQVos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
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["EVENT_SESSION_INIT","EVENT_SESSION_START","EVENT_SESSION_QUIT_START","EVENT_SESSION_QUIT_DONE","ON_UNEXPECTED_SHUTDOWN_EVENT","BaseDriverCore","DriverCore","cliArgs","caps","originalCaps","desiredCapConstraints","opts","_desiredCapConstraints","Object","freeze","_","merge","BASE_DESIRED_CAP_CONSTRAINTS","executeCommand","cmd","args","startTime","Date","now","protocol","determineProtocol","logEvent","DELETE_SESSION_COMMAND","clearNewCommandTimeout","shutdownUnexpectedly","errors","NoSuchDriverError","NotYetImplementedError","unexpectedShutdownListener","commandExecutor","B","race","resolve","reject","eventEmitter","on","finally","removeListener","res","isCommandsQueueEnabled","commandsQueueGuard","acquire","BaseDriver","name","startNewCommandTimeout","endTime","_eventHistory","commands","push","startUnexpectedShutdown","err","emit","sessionId","deleteSession","newCommandTimeoutMs","noCommandTimer","setTimeout","log","warn","errorMessage","Error","assignServer","server","host","port","path","serverHost","serverPort","serverPath","reset","debug","currentConfig","property","resetOnUnexpectedShutdown","createSession","key","value","toPairs","w3cCapabilities1","w3cCapabilities2","w3cCapabilities","driverData","SessionNotCreatedError","cloneDeep","find","isW3cCaps","setProtocolW3C","JSON","stringify","processCapabilities","shouldValidateCaps","APPIUM_OPTS_CAP","PREFIXED_APPIUM_OPTS_CAP","promoteAppiumOptions","fixCaps","e","message","validateDesiredCaps","util","uuidV4","initialOpts","noReset","fullReset","fastReset","skipUninstall","app","trim","isUndefined","newCommandTimeout","_log","prefix","helpers","generateDriverLogPrefix","info","isBusy","keys","queues","logExtraCaps","extraCaps","difference","length","cap","validateCaps","errorAndThrow","createBaseDriverClass"],"sources":["../../../lib/basedriver/driver.js"],"sourcesContent":["/* eslint-disable require-await */\n/* eslint-disable no-unused-vars */\n\nimport {\n validateCaps,\n APPIUM_OPTS_CAP,\n PREFIXED_APPIUM_OPTS_CAP,\n processCapabilities,\n promoteAppiumOptions,\n} from './capabilities';\nimport {DriverCore} from './core';\nimport {util} from '@appium/support';\nimport B from 'bluebird';\nimport _ from 'lodash';\nimport {fixCaps, isW3cCaps} from '../helpers/capabilities';\nimport {DELETE_SESSION_COMMAND, determineProtocol, errors} from '../protocol';\nimport {createBaseDriverClass} from './commands';\nimport helpers from './helpers';\nimport {BASE_DESIRED_CAP_CONSTRAINTS} from '@appium/types';\n\nconst EVENT_SESSION_INIT = 'newSessionRequested';\nconst EVENT_SESSION_START = 'newSessionStarted';\nconst EVENT_SESSION_QUIT_START = 'quitSessionRequested';\nconst EVENT_SESSION_QUIT_DONE = 'quitSessionFinished';\nconst ON_UNEXPECTED_SHUTDOWN_EVENT = 'onUnexpectedShutdown';\n\n/**\n * @implements {SessionHandler<C>}\n * @template {Constraints} C\n * @template {StringRecord} [A=StringRecord]\n * @extends {DriverCore<C>}\n */\nexport class BaseDriverCore extends DriverCore {\n /**\n * @type {A & ServerArgs}\n */\n cliArgs;\n\n /**\n * @type {Capabilities<C>}\n */\n caps;\n\n /**\n * @type {W3CCapabilities<C>}\n */\n originalCaps;\n\n /**\n * @type {C}\n */\n desiredCapConstraints;\n\n /**\n * @type {DriverOpts<C> & DriverOpts<BaseDriverCapConstraints>}\n */\n opts;\n\n /**\n * Contains the base constraints plus whatever the subclass wants to add.\n *\n * Subclasses _shouldn't_ need to use this. If you need to use this, please create\n * an issue:\n * @see https://github.com/appium/appium/issues/new\n * @type {Readonly<BaseDriverCapConstraints & C>}\n * @protected\n */\n get _desiredCapConstraints() {\n return Object.freeze(_.merge({}, BASE_DESIRED_CAP_CONSTRAINTS, this.desiredCapConstraints));\n }\n\n static BASE_DESIRED_CAP_CONSTRAINTS = BASE_DESIRED_CAP_CONSTRAINTS;\n\n // This is the main command handler for the driver. It wraps command\n // execution with timeout logic, checking that we have a valid session,\n // and ensuring that we execute commands one at a time. This method is called\n // by MJSONWP's express router.\n /**\n * @param {string} cmd\n * @param {...any} args\n * @returns {Promise<any>}\n */\n async executeCommand(cmd, ...args) {\n // get start time for this command, and log in special cases\n let startTime = Date.now();\n\n if (cmd === 'createSession') {\n // If creating a session determine if W3C or MJSONWP protocol was requested and remember the choice\n this.protocol = determineProtocol(args);\n this.logEvent(EVENT_SESSION_INIT);\n } else if (cmd === DELETE_SESSION_COMMAND) {\n this.logEvent(EVENT_SESSION_QUIT_START);\n }\n\n // if we had a command timer running, clear it now that we're starting\n // a new command and so don't want to time out\n await this.clearNewCommandTimeout();\n\n if (this.shutdownUnexpectedly) {\n throw new errors.NoSuchDriverError('The driver was unexpectedly shut down!');\n }\n\n // If we don't have this command, it must not be implemented\n if (!this[cmd]) {\n throw new errors.NotYetImplementedError();\n }\n\n let unexpectedShutdownListener;\n const commandExecutor = async () =>\n await B.race([\n this[cmd](...args),\n new B((resolve, reject) => {\n unexpectedShutdownListener = reject;\n this.eventEmitter.on(ON_UNEXPECTED_SHUTDOWN_EVENT, unexpectedShutdownListener);\n }),\n ]).finally(() => {\n if (unexpectedShutdownListener) {\n // This is needed to prevent memory leaks\n this.eventEmitter.removeListener(\n ON_UNEXPECTED_SHUTDOWN_EVENT,\n unexpectedShutdownListener\n );\n unexpectedShutdownListener = null;\n }\n });\n const res = this.isCommandsQueueEnabled\n ? await this.commandsQueueGuard.acquire(BaseDriver.name, commandExecutor)\n : await commandExecutor();\n\n // if we have set a new command timeout (which is the default), start a\n // timer once we've finished executing this command. If we don't clear\n // the timer (which is done when a new command comes in), we will trigger\n // automatic session deletion in this.onCommandTimeout. Of course we don't\n // want to trigger the timer when the user is shutting down the session\n // intentionally\n if (this.isCommandsQueueEnabled && cmd !== DELETE_SESSION_COMMAND) {\n // resetting existing timeout\n await this.startNewCommandTimeout();\n }\n\n // log timing information about this command\n const endTime = Date.now();\n this._eventHistory.commands.push({cmd, startTime, endTime});\n if (cmd === 'createSession') {\n this.logEvent(EVENT_SESSION_START);\n } else if (cmd === DELETE_SESSION_COMMAND) {\n this.logEvent(EVENT_SESSION_QUIT_DONE);\n }\n\n return res;\n }\n\n /**\n *\n * @param {Error|import('../protocol/errors').NoSuchDriverError} err\n */\n async startUnexpectedShutdown(\n err = new errors.NoSuchDriverError('The driver was unexpectedly shut down!')\n ) {\n this.eventEmitter.emit(ON_UNEXPECTED_SHUTDOWN_EVENT, err); // allow others to listen for this\n this.shutdownUnexpectedly = true;\n try {\n if (this.sessionId !== null) {\n await this.deleteSession(this.sessionId);\n }\n } finally {\n this.shutdownUnexpectedly = false;\n }\n }\n\n async startNewCommandTimeout() {\n // make sure there are no rogue timeouts\n await this.clearNewCommandTimeout();\n\n // if command timeout is 0, it is disabled\n if (!this.newCommandTimeoutMs) return; // eslint-disable-line curly\n\n this.noCommandTimer = setTimeout(async () => {\n this.log.warn(\n `Shutting down because we waited ` +\n `${this.newCommandTimeoutMs / 1000.0} seconds for a command`\n );\n const errorMessage =\n `New Command Timeout of ` +\n `${this.newCommandTimeoutMs / 1000.0} seconds ` +\n `expired. Try customizing the timeout using the ` +\n `'newCommandTimeout' desired capability`;\n await this.startUnexpectedShutdown(new Error(errorMessage));\n }, this.newCommandTimeoutMs);\n }\n\n /**\n *\n * @param {import('@appium/types').AppiumServer} server\n * @param {string} host\n * @param {number} port\n * @param {string} path\n */\n assignServer(server, host, port, path) {\n this.server = server;\n this.serverHost = host;\n this.serverPort = port;\n this.serverPath = path;\n }\n\n /*\n * Restart the session with the original caps,\n * preserving the timeout config.\n */\n async reset() {\n this.log.debug('Resetting app mid-session');\n this.log.debug('Running generic full reset');\n\n // preserving state\n let currentConfig = {};\n for (let property of [\n 'implicitWaitMs',\n 'newCommandTimeoutMs',\n 'sessionId',\n 'resetOnUnexpectedShutdown',\n ]) {\n currentConfig[property] = this[property];\n }\n\n // We also need to preserve the unexpected shutdown, and make sure it is not cancelled during reset.\n this.resetOnUnexpectedShutdown = () => {};\n\n try {\n if (this.sessionId !== null) {\n await this.deleteSession(this.sessionId);\n }\n this.log.debug('Restarting app');\n await this.createSession(this.originalCaps);\n } finally {\n // always restore state.\n for (let [key, value] of _.toPairs(currentConfig)) {\n this[key] = value;\n }\n }\n await this.clearNewCommandTimeout();\n }\n\n /**\n *\n * Historically the first two arguments were reserved for JSONWP capabilities.\n * Appium 2 has dropped the support of these, so now we only accept capability\n * objects in W3C format and thus allow any of the three arguments to represent\n * the latter.\n * @param {W3CCapabilities<C>} w3cCapabilities1\n * @param {W3CCapabilities<C>} [w3cCapabilities2]\n * @param {W3CCapabilities<C>} [w3cCapabilities]\n * @param {DriverData[]} [driverData]\n * @returns {Promise<[string,Capabilities<C>]>}\n */\n async createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities, driverData) {\n if (this.sessionId !== null) {\n throw new errors.SessionNotCreatedError(\n 'Cannot create a new session while one is in progress'\n );\n }\n\n this.log.debug();\n\n const originalCaps = _.cloneDeep(\n [w3cCapabilities, w3cCapabilities1, w3cCapabilities2].find(isW3cCaps)\n );\n if (!originalCaps) {\n throw new errors.SessionNotCreatedError(\n 'Appium only supports W3C-style capability objects. ' +\n 'Your client is sending an older capabilities format. Please update your client library.'\n );\n }\n\n this.setProtocolW3C();\n\n this.originalCaps = originalCaps;\n this.log.debug(\n `Creating session with W3C capabilities: ${JSON.stringify(originalCaps, null, 2)}`\n );\n\n /** @type {Capabilities<C>} */\n let caps;\n try {\n caps = processCapabilities(\n originalCaps,\n this._desiredCapConstraints,\n this.shouldValidateCaps\n );\n if (caps[APPIUM_OPTS_CAP]) {\n this.log.debug(\n `Found ${PREFIXED_APPIUM_OPTS_CAP} capability present; will promote items inside to caps`\n );\n caps = promoteAppiumOptions(caps);\n }\n caps = fixCaps(caps, this._desiredCapConstraints, this.log);\n } catch (e) {\n throw new errors.SessionNotCreatedError(e.message);\n }\n\n this.validateDesiredCaps(caps);\n\n this.sessionId = util.uuidV4();\n this.caps = caps;\n // merge caps onto opts so we don't need to worry about what's where\n this.opts = {..._.cloneDeep(this.initialOpts), ...this.caps};\n\n // deal with resets\n // some people like to do weird things by setting noReset and fullReset\n // both to true, but this is misguided and strange, so error here instead\n if (this.opts.noReset && this.opts.fullReset) {\n throw new Error(\n \"The 'noReset' and 'fullReset' capabilities are mutually \" +\n 'exclusive and should not both be set to true. You ' +\n \"probably meant to just use 'fullReset' on its own\"\n );\n }\n if (this.opts.noReset === true) {\n this.opts.fullReset = false;\n }\n if (this.opts.fullReset === true) {\n this.opts.noReset = false;\n }\n this.opts.fastReset = !this.opts.fullReset && !this.opts.noReset;\n this.opts.skipUninstall = this.opts.fastReset || this.opts.noReset;\n\n // Prevents empty string caps so we don't need to test it everywhere\n if (typeof this.opts.app === 'string' && this.opts.app.trim() === '') {\n delete this.opts.app;\n }\n\n if (!_.isUndefined(this.caps.newCommandTimeout)) {\n this.newCommandTimeoutMs = /** @type {number} */ (this.caps.newCommandTimeout) * 1000;\n }\n\n this._log.prefix = helpers.generateDriverLogPrefix(this, this.sessionId);\n\n this.log.info(`Session created with session id: ${this.sessionId}`);\n\n return [this.sessionId, caps];\n }\n\n /**\n *\n * @param {string} [sessionId]\n * @param {DriverData[]} [driverData]\n * @returns {Promise<void>}\n */\n async deleteSession(sessionId, driverData) {\n await this.clearNewCommandTimeout();\n if (this.isCommandsQueueEnabled && this.commandsQueueGuard.isBusy()) {\n // simple hack to release pending commands if they exist\n // @ts-ignore\n for (const key of _.keys(this.commandsQueueGuard.queues)) {\n // @ts-ignore\n this.commandsQueueGuard.queues[key] = [];\n }\n }\n this.sessionId = null;\n this._log.prefix = helpers.generateDriverLogPrefix(this);\n }\n\n /**\n *\n * @param {Capabilities} caps\n */\n logExtraCaps(caps) {\n let extraCaps = _.difference(_.keys(caps), _.keys(this._desiredCapConstraints));\n if (extraCaps.length) {\n this.log.warn(\n `The following capabilities were provided, but are not ` + `recognized by Appium:`\n );\n for (const cap of extraCaps) {\n this.log.warn(` ${cap}`);\n }\n }\n }\n\n /**\n *\n * @param {Capabilities<C>} caps\n * @returns {boolean}\n */\n validateDesiredCaps(caps) {\n if (!this.shouldValidateCaps) {\n return true;\n }\n\n try {\n validateCaps(caps, this._desiredCapConstraints);\n } catch (e) {\n this.log.errorAndThrow(\n new errors.SessionNotCreatedError(\n `The desiredCapabilities object was not valid for the ` +\n `following reason(s): ${e.message}`\n )\n );\n }\n\n this.logExtraCaps(caps);\n\n return true;\n }\n}\n\n/**\n * This ensures that all of the mixins correctly implement the interface described in {@linkcode Driver}.\n * @template {Constraints} [C={}]\n * @implements {Driver<C>}\n */\nexport class BaseDriver extends createBaseDriverClass(BaseDriverCore) {}\nexport default BaseDriver;\n\n/**\n * @typedef {import('@appium/types').HTTPMethod} HTTPMethod\n * @typedef {import('@appium/types').ExternalDriver} ExternalDriver\n * @typedef {import('@appium/types').DriverData} DriverData\n * @typedef {import('@appium/types').Constraints} Constraints\n * @typedef {import('@appium/types').Constraint} Constraint\n * @typedef {import('@appium/types').StringRecord} StringRecord\n * @typedef {import('@appium/types').BaseDriverCapConstraints} BaseDriverCapConstraints\n * @typedef {import('@appium/types').ServerArgs} ServerArgs\n */\n\n/**\n * @callback UpdateServerCallback\n * @param {import('express').Express} app - Express app\n * @param {import('@appium/types').AppiumServer} httpServer - HTTP server\n * @returns {import('type-fest').Promisable<void>}\n */\n\n/**\n * This is used to extend {@linkcode BaseDriverCore} by the mixins and also external drivers.\n * @template [Proto={}]\n * @template [Static={}]\n * @typedef {import('@appium/types').Class<BaseDriverCore & Proto,import('@appium/types').DriverStatic & Static>} BaseDriverBase\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @typedef {import('@appium/types').SessionHandler<[string, object],void, C>} SessionHandler\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef {import('@appium/types').Capabilities<C, Extra>} Capabilities\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef {import('@appium/types').W3CCapabilities<C, Extra>} W3CCapabilities\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').ConstraintsToCaps<C>} ConstraintsToCaps\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').Driver<C>} Driver\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').DriverOpts<C>} DriverOpts\n */\n"],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","names":["EVENT_SESSION_INIT","EVENT_SESSION_START","EVENT_SESSION_QUIT_START","EVENT_SESSION_QUIT_DONE","ON_UNEXPECTED_SHUTDOWN_EVENT","BaseDriverCore","DriverCore","cliArgs","caps","originalCaps","desiredCapConstraints","opts","BASE_DESIRED_CAP_CONSTRAINTS","constructor","shouldValidateCaps","_desiredCapConstraints","Object","freeze","_","merge","executeCommand","cmd","args","startTime","Date","now","protocol","determineProtocol","logEvent","DELETE_SESSION_COMMAND","clearNewCommandTimeout","shutdownUnexpectedly","errors","NoSuchDriverError","NotYetImplementedError","unexpectedShutdownListener","commandExecutor","B","race","resolve","reject","eventEmitter","on","finally","removeListener","res","isCommandsQueueEnabled","commandsQueueGuard","acquire","BaseDriver","name","startNewCommandTimeout","endTime","_eventHistory","commands","push","startUnexpectedShutdown","err","emit","sessionId","deleteSession","newCommandTimeoutMs","noCommandTimer","setTimeout","log","warn","errorMessage","Error","assignServer","server","host","port","path","serverHost","serverPort","serverPath","reset","debug","currentConfig","property","resetOnUnexpectedShutdown","createSession","key","value","toPairs","w3cCapabilities1","w3cCapabilities2","w3cCapabilities","driverData","SessionNotCreatedError","cloneDeep","find","isW3cCaps","setProtocolW3C","JSON","stringify","processCapabilities","APPIUM_OPTS_CAP","PREFIXED_APPIUM_OPTS_CAP","promoteAppiumOptions","fixCaps","e","message","validateDesiredCaps","util","uuidV4","initialOpts","noReset","fullReset","fastReset","skipUninstall","app","trim","isUndefined","newCommandTimeout","_log","prefix","helpers","generateDriverLogPrefix","info","isBusy","keys","queues","logExtraCaps","extraCaps","difference","length","cap","validateCaps","errorAndThrow","createBaseDriverClass"],"sources":["../../../lib/basedriver/driver.js"],"sourcesContent":["/* eslint-disable require-await */\n/* eslint-disable no-unused-vars */\n\nimport {\n validateCaps,\n APPIUM_OPTS_CAP,\n PREFIXED_APPIUM_OPTS_CAP,\n processCapabilities,\n promoteAppiumOptions,\n} from './capabilities';\nimport {DriverCore} from './core';\nimport {util} from '@appium/support';\nimport B from 'bluebird';\nimport _ from 'lodash';\nimport {fixCaps, isW3cCaps} from '../helpers/capabilities';\nimport {DELETE_SESSION_COMMAND, determineProtocol, errors} from '../protocol';\nimport {createBaseDriverClass} from './commands';\nimport helpers from './helpers';\nimport {BASE_DESIRED_CAP_CONSTRAINTS} from '@appium/types';\n\nconst EVENT_SESSION_INIT = 'newSessionRequested';\nconst EVENT_SESSION_START = 'newSessionStarted';\nconst EVENT_SESSION_QUIT_START = 'quitSessionRequested';\nconst EVENT_SESSION_QUIT_DONE = 'quitSessionFinished';\nconst ON_UNEXPECTED_SHUTDOWN_EVENT = 'onUnexpectedShutdown';\n\n/**\n * @implements {SessionHandler<C>}\n * @template {Constraints} C\n * @template {StringRecord} [CArgs=StringRecord]\n * @extends {DriverCore<C>}\n */\nexport class BaseDriverCore extends DriverCore {\n /**\n * @type {CArgs & ServerArgs}\n */\n cliArgs;\n\n /**\n * @type {Capabilities<C>}\n */\n caps;\n\n /**\n * @type {W3CCapabilities<C>}\n */\n originalCaps;\n\n /**\n * @type {C}\n */\n desiredCapConstraints;\n\n /**\n * @type {DriverOpts<C> & DriverOpts<BaseDriverCapConstraints>}\n */\n opts;\n\n static BASE_DESIRED_CAP_CONSTRAINTS = BASE_DESIRED_CAP_CONSTRAINTS;\n\n /**\n *\n * @param {DriverOpts<C>} opts\n * @param {boolean} shouldValidateCaps\n */\n constructor(opts = /** @type {DriverOpts<C>} */ ({}), shouldValidateCaps = true) {\n super(opts, shouldValidateCaps);\n\n /**\n * This must be assigned here because the declaration of {@linkcode BaseDriverCore.opts} above\n * blows away {@linkcode DriverCore.opts}.\n */\n this.opts = opts;\n }\n\n /**\n * Contains the base constraints plus whatever the subclass wants to add.\n *\n * Subclasses _shouldn't_ need to use this. If you need to use this, please create\n * an issue:\n * @see https://github.com/appium/appium/issues/new\n * @type {Readonly<BaseDriverCapConstraints & C>}\n * @protected\n */\n get _desiredCapConstraints() {\n return Object.freeze(_.merge({}, BASE_DESIRED_CAP_CONSTRAINTS, this.desiredCapConstraints));\n }\n\n // This is the main command handler for the driver. It wraps command\n // execution with timeout logic, checking that we have a valid session,\n // and ensuring that we execute commands one at a time. This method is called\n // by MJSONWP's express router.\n /**\n * @param {string} cmd\n * @param {...any} args\n * @returns {Promise<any>}\n */\n async executeCommand(cmd, ...args) {\n // get start time for this command, and log in special cases\n let startTime = Date.now();\n\n if (cmd === 'createSession') {\n // If creating a session determine if W3C or MJSONWP protocol was requested and remember the choice\n this.protocol = determineProtocol(args);\n this.logEvent(EVENT_SESSION_INIT);\n } else if (cmd === DELETE_SESSION_COMMAND) {\n this.logEvent(EVENT_SESSION_QUIT_START);\n }\n\n // if we had a command timer running, clear it now that we're starting\n // a new command and so don't want to time out\n await this.clearNewCommandTimeout();\n\n if (this.shutdownUnexpectedly) {\n throw new errors.NoSuchDriverError('The driver was unexpectedly shut down!');\n }\n\n // If we don't have this command, it must not be implemented\n if (!this[cmd]) {\n throw new errors.NotYetImplementedError();\n }\n\n let unexpectedShutdownListener;\n const commandExecutor = async () =>\n await B.race([\n this[cmd](...args),\n new B((resolve, reject) => {\n unexpectedShutdownListener = reject;\n this.eventEmitter.on(ON_UNEXPECTED_SHUTDOWN_EVENT, unexpectedShutdownListener);\n }),\n ]).finally(() => {\n if (unexpectedShutdownListener) {\n // This is needed to prevent memory leaks\n this.eventEmitter.removeListener(\n ON_UNEXPECTED_SHUTDOWN_EVENT,\n unexpectedShutdownListener\n );\n unexpectedShutdownListener = null;\n }\n });\n const res = this.isCommandsQueueEnabled\n ? await this.commandsQueueGuard.acquire(BaseDriver.name, commandExecutor)\n : await commandExecutor();\n\n // if we have set a new command timeout (which is the default), start a\n // timer once we've finished executing this command. If we don't clear\n // the timer (which is done when a new command comes in), we will trigger\n // automatic session deletion in this.onCommandTimeout. Of course we don't\n // want to trigger the timer when the user is shutting down the session\n // intentionally\n if (this.isCommandsQueueEnabled && cmd !== DELETE_SESSION_COMMAND) {\n // resetting existing timeout\n await this.startNewCommandTimeout();\n }\n\n // log timing information about this command\n const endTime = Date.now();\n this._eventHistory.commands.push({cmd, startTime, endTime});\n if (cmd === 'createSession') {\n this.logEvent(EVENT_SESSION_START);\n } else if (cmd === DELETE_SESSION_COMMAND) {\n this.logEvent(EVENT_SESSION_QUIT_DONE);\n }\n\n return res;\n }\n\n /**\n *\n * @param {Error|import('../protocol/errors').NoSuchDriverError} err\n */\n async startUnexpectedShutdown(\n err = new errors.NoSuchDriverError('The driver was unexpectedly shut down!')\n ) {\n this.eventEmitter.emit(ON_UNEXPECTED_SHUTDOWN_EVENT, err); // allow others to listen for this\n this.shutdownUnexpectedly = true;\n try {\n if (this.sessionId !== null) {\n await this.deleteSession(this.sessionId);\n }\n } finally {\n this.shutdownUnexpectedly = false;\n }\n }\n\n async startNewCommandTimeout() {\n // make sure there are no rogue timeouts\n await this.clearNewCommandTimeout();\n\n // if command timeout is 0, it is disabled\n if (!this.newCommandTimeoutMs) return; // eslint-disable-line curly\n\n this.noCommandTimer = setTimeout(async () => {\n this.log.warn(\n `Shutting down because we waited ` +\n `${this.newCommandTimeoutMs / 1000.0} seconds for a command`\n );\n const errorMessage =\n `New Command Timeout of ` +\n `${this.newCommandTimeoutMs / 1000.0} seconds ` +\n `expired. Try customizing the timeout using the ` +\n `'newCommandTimeout' desired capability`;\n await this.startUnexpectedShutdown(new Error(errorMessage));\n }, this.newCommandTimeoutMs);\n }\n\n /**\n *\n * @param {import('@appium/types').AppiumServer} server\n * @param {string} host\n * @param {number} port\n * @param {string} path\n */\n assignServer(server, host, port, path) {\n this.server = server;\n this.serverHost = host;\n this.serverPort = port;\n this.serverPath = path;\n }\n\n /*\n * Restart the session with the original caps,\n * preserving the timeout config.\n */\n async reset() {\n this.log.debug('Resetting app mid-session');\n this.log.debug('Running generic full reset');\n\n // preserving state\n let currentConfig = {};\n for (let property of [\n 'implicitWaitMs',\n 'newCommandTimeoutMs',\n 'sessionId',\n 'resetOnUnexpectedShutdown',\n ]) {\n currentConfig[property] = this[property];\n }\n\n // We also need to preserve the unexpected shutdown, and make sure it is not cancelled during reset.\n this.resetOnUnexpectedShutdown = () => {};\n\n try {\n if (this.sessionId !== null) {\n await this.deleteSession(this.sessionId);\n }\n this.log.debug('Restarting app');\n await this.createSession(this.originalCaps);\n } finally {\n // always restore state.\n for (let [key, value] of _.toPairs(currentConfig)) {\n this[key] = value;\n }\n }\n await this.clearNewCommandTimeout();\n }\n\n /**\n *\n * Historically the first two arguments were reserved for JSONWP capabilities.\n * Appium 2 has dropped the support of these, so now we only accept capability\n * objects in W3C format and thus allow any of the three arguments to represent\n * the latter.\n * @param {W3CCapabilities<C>} w3cCapabilities1\n * @param {W3CCapabilities<C>} [w3cCapabilities2]\n * @param {W3CCapabilities<C>} [w3cCapabilities]\n * @param {DriverData[]} [driverData]\n * @returns {Promise<[string,Capabilities<C>]>}\n */\n async createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities, driverData) {\n if (this.sessionId !== null) {\n throw new errors.SessionNotCreatedError(\n 'Cannot create a new session while one is in progress'\n );\n }\n\n this.log.debug();\n\n const originalCaps = _.cloneDeep(\n [w3cCapabilities, w3cCapabilities1, w3cCapabilities2].find(isW3cCaps)\n );\n if (!originalCaps) {\n throw new errors.SessionNotCreatedError(\n 'Appium only supports W3C-style capability objects. ' +\n 'Your client is sending an older capabilities format. Please update your client library.'\n );\n }\n\n this.setProtocolW3C();\n\n this.originalCaps = originalCaps;\n this.log.debug(\n `Creating session with W3C capabilities: ${JSON.stringify(originalCaps, null, 2)}`\n );\n\n /** @type {Capabilities<C>} */\n let caps;\n try {\n caps = processCapabilities(\n originalCaps,\n this._desiredCapConstraints,\n this.shouldValidateCaps\n );\n if (caps[APPIUM_OPTS_CAP]) {\n this.log.debug(\n `Found ${PREFIXED_APPIUM_OPTS_CAP} capability present; will promote items inside to caps`\n );\n caps = promoteAppiumOptions(caps);\n }\n caps = fixCaps(caps, this._desiredCapConstraints, this.log);\n } catch (e) {\n throw new errors.SessionNotCreatedError(e.message);\n }\n\n this.validateDesiredCaps(caps);\n\n this.sessionId = util.uuidV4();\n this.caps = caps;\n // merge caps onto opts so we don't need to worry about what's where\n this.opts = {..._.cloneDeep(this.initialOpts), ...this.caps};\n\n // deal with resets\n // some people like to do weird things by setting noReset and fullReset\n // both to true, but this is misguided and strange, so error here instead\n if (this.opts.noReset && this.opts.fullReset) {\n throw new Error(\n \"The 'noReset' and 'fullReset' capabilities are mutually \" +\n 'exclusive and should not both be set to true. You ' +\n \"probably meant to just use 'fullReset' on its own\"\n );\n }\n if (this.opts.noReset === true) {\n this.opts.fullReset = false;\n }\n if (this.opts.fullReset === true) {\n this.opts.noReset = false;\n }\n this.opts.fastReset = !this.opts.fullReset && !this.opts.noReset;\n this.opts.skipUninstall = this.opts.fastReset || this.opts.noReset;\n\n // Prevents empty string caps so we don't need to test it everywhere\n if (typeof this.opts.app === 'string' && this.opts.app.trim() === '') {\n delete this.opts.app;\n }\n\n if (!_.isUndefined(this.caps.newCommandTimeout)) {\n this.newCommandTimeoutMs = /** @type {number} */ (this.caps.newCommandTimeout) * 1000;\n }\n\n this._log.prefix = helpers.generateDriverLogPrefix(this, this.sessionId);\n\n this.log.info(`Session created with session id: ${this.sessionId}`);\n\n return [this.sessionId, caps];\n }\n\n /**\n *\n * @param {string} [sessionId]\n * @param {DriverData[]} [driverData]\n * @returns {Promise<void>}\n */\n async deleteSession(sessionId, driverData) {\n await this.clearNewCommandTimeout();\n if (this.isCommandsQueueEnabled && this.commandsQueueGuard.isBusy()) {\n // simple hack to release pending commands if they exist\n // @ts-ignore\n for (const key of _.keys(this.commandsQueueGuard.queues)) {\n // @ts-ignore\n this.commandsQueueGuard.queues[key] = [];\n }\n }\n this.sessionId = null;\n this._log.prefix = helpers.generateDriverLogPrefix(this);\n }\n\n /**\n *\n * @param {Capabilities} caps\n */\n logExtraCaps(caps) {\n let extraCaps = _.difference(_.keys(caps), _.keys(this._desiredCapConstraints));\n if (extraCaps.length) {\n this.log.warn(\n `The following capabilities were provided, but are not ` + `recognized by Appium:`\n );\n for (const cap of extraCaps) {\n this.log.warn(` ${cap}`);\n }\n }\n }\n\n /**\n *\n * @param {Capabilities<C>} caps\n * @returns {boolean}\n */\n validateDesiredCaps(caps) {\n if (!this.shouldValidateCaps) {\n return true;\n }\n\n try {\n validateCaps(caps, this._desiredCapConstraints);\n } catch (e) {\n this.log.errorAndThrow(\n new errors.SessionNotCreatedError(\n `The desiredCapabilities object was not valid for the ` +\n `following reason(s): ${e.message}`\n )\n );\n }\n\n this.logExtraCaps(caps);\n\n return true;\n }\n}\n\n/**\n * This ensures that all of the mixins correctly implement the interface described in {@linkcode Driver}.\n * @template {Constraints} [C={}]\n * @implements {Driver<C>}\n */\nexport class BaseDriver extends createBaseDriverClass(BaseDriverCore) {}\nexport default BaseDriver;\n\n/**\n * @typedef {import('@appium/types').HTTPMethod} HTTPMethod\n * @typedef {import('@appium/types').ExternalDriver} ExternalDriver\n * @typedef {import('@appium/types').DriverData} DriverData\n * @typedef {import('@appium/types').Constraints} Constraints\n * @typedef {import('@appium/types').Constraint} Constraint\n * @typedef {import('@appium/types').StringRecord} StringRecord\n * @typedef {import('@appium/types').BaseDriverCapConstraints} BaseDriverCapConstraints\n * @typedef {import('@appium/types').ServerArgs} ServerArgs\n */\n\n/**\n * @callback UpdateServerCallback\n * @param {import('express').Express} app - Express app\n * @param {import('@appium/types').AppiumServer} httpServer - HTTP server\n * @returns {import('type-fest').Promisable<void>}\n */\n\n/**\n * This is used to extend {@linkcode BaseDriverCore} by the mixins and also external drivers.\n * @template [Proto={}]\n * @template [Static={}]\n * @typedef {import('@appium/types').Class<BaseDriverCore & Proto,import('@appium/types').DriverStatic & Static>} BaseDriverBase\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @typedef {import('@appium/types').SessionHandler<[string, object],void, C>} SessionHandler\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef {import('@appium/types').Capabilities<C, Extra>} Capabilities\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef {import('@appium/types').W3CCapabilities<C, Extra>} W3CCapabilities\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').ConstraintsToCaps<C>} ConstraintsToCaps\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').Driver<C>} Driver\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').DriverOpts<C>} DriverOpts\n */\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es6.d.ts","../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/@types/teen_process/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/empty-object.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/writable.d.ts","../../../node_modules/type-fest/source/omit-index-signature.d.ts","../../../node_modules/type-fest/source/pick-index-signature.d.ts","../../../node_modules/type-fest/source/enforce-optional.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/conditional-simplify.d.ts","../../../node_modules/type-fest/source/merge-deep.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/set-non-nullable.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/conditional-pick-deep.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/exact.d.ts","../../../node_modules/type-fest/source/readonly-tuple.d.ts","../../../node_modules/type-fest/source/optional-keys-of.d.ts","../../../node_modules/type-fest/source/has-optional-keys.d.ts","../../../node_modules/type-fest/source/required-keys-of.d.ts","../../../node_modules/type-fest/source/has-required-keys.d.ts","../../../node_modules/type-fest/source/spread.d.ts","../../../node_modules/type-fest/source/tuple-to-union.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/replace.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../support/build/lib/npm.d.ts","../../support/build/lib/tempdir.d.ts","../../support/build/lib/system.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/shell-quote/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../support/build/lib/util.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/mv/index.d.ts","../../../node_modules/@types/rimraf/index.d.ts","../../../node_modules/@types/ncp/index.d.ts","../../../node_modules/@types/which/index.d.ts","../../../node_modules/sanitize-filename/index.d.ts","../../../node_modules/@types/klaw/index.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/basic.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/except.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/mutable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/read-pkg/index.d.ts","../../support/build/lib/fs.d.ts","../../support/build/lib/plist.d.ts","../../support/build/lib/mkdirp.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../../types/build/appium-config.d.ts","../../types/build/config.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../types/build/action.d.ts","../../types/build/driver.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../types/build/plugin.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../types/build/constraints.d.ts","../../types/build/capabilities.d.ts","../../types/build/index.d.ts","../../support/build/lib/log-internal.d.ts","../../support/build/lib/logging.d.ts","../../support/build/lib/process.d.ts","../../../node_modules/@types/yauzl/index.d.ts","../../support/build/lib/zip.d.ts","../../../node_modules/@jimp/core/types/jimp.d.ts","../../../node_modules/@jimp/core/types/etc.d.ts","../../../node_modules/@jimp/core/types/functions.d.ts","../../../node_modules/@jimp/core/types/utils.d.ts","../../../node_modules/@jimp/core/types/plugins.d.ts","../../../node_modules/@jimp/core/types/index.d.ts","../../../node_modules/@jimp/jpeg/index.d.ts","../../../node_modules/@jimp/png/index.d.ts","../../../node_modules/@jimp/bmp/index.d.ts","../../../node_modules/@jimp/tiff/index.d.ts","../../../node_modules/@jimp/gif/index.d.ts","../../../node_modules/@jimp/types/index.d.ts","../../../node_modules/@jimp/plugin-blit/index.d.ts","../../../node_modules/@jimp/plugin-blur/index.d.ts","../../../node_modules/@jimp/plugin-circle/index.d.ts","../../../node_modules/@jimp/plugin-color/index.d.ts","../../../node_modules/@jimp/plugin-contain/index.d.ts","../../../node_modules/@jimp/plugin-cover/index.d.ts","../../../node_modules/@jimp/plugin-crop/index.d.ts","../../../node_modules/@jimp/plugin-displace/index.d.ts","../../../node_modules/@jimp/plugin-dither/index.d.ts","../../../node_modules/@jimp/plugin-fisheye/index.d.ts","../../../node_modules/@jimp/plugin-flip/index.d.ts","../../../node_modules/@jimp/plugin-gaussian/index.d.ts","../../../node_modules/@jimp/plugin-invert/index.d.ts","../../../node_modules/@jimp/plugin-mask/index.d.ts","../../../node_modules/@jimp/plugin-normalize/index.d.ts","../../../node_modules/@jimp/plugin-print/index.d.ts","../../../node_modules/@jimp/plugin-resize/index.d.ts","../../../node_modules/@jimp/plugin-rotate/index.d.ts","../../../node_modules/@jimp/plugin-scale/index.d.ts","../../../node_modules/@jimp/plugin-shadow/index.d.ts","../../../node_modules/@jimp/plugin-threshold/index.d.ts","../../../node_modules/@jimp/plugins/index.d.ts","../../../node_modules/jimp/types/ts3.1/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/buffer/index.d.ts","../../support/build/lib/image-util.d.ts","../../../node_modules/axios/index.d.ts","../../support/build/lib/net.d.ts","../../support/build/lib/mjpeg.d.ts","../../support/build/lib/node.d.ts","../../support/build/lib/timing.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../support/build/lib/env.d.ts","../../../node_modules/log-symbols/index.d.ts","../../../node_modules/@colors/colors/index.d.ts","../../support/build/lib/console.d.ts","../../support/build/lib/index.d.ts","../lib/constants.js","../lib/basedriver/logger.js","../../../node_modules/validate.js/validate.d.ts","../lib/basedriver/desired-caps.js","../../../node_modules/es6-error/typings/index.d.ts","../../../node_modules/http-status-codes/build/cjs/utils-functions.d.ts","../../../node_modules/http-status-codes/build/cjs/status-codes.d.ts","../../../node_modules/http-status-codes/build/cjs/reason-phrases.d.ts","../../../node_modules/http-status-codes/build/cjs/legacy.d.ts","../../../node_modules/http-status-codes/build/cjs/index.d.ts","../lib/protocol/errors.js","../lib/basedriver/capabilities.js","../../../node_modules/@types/async-lock/index.d.ts","../lib/protocol/validators.js","../lib/protocol/routes.js","../../../node_modules/lru-cache/index.d.ts","../lib/basedriver/helpers.js","../lib/protocol/helpers.js","../lib/helpers/capabilities.js","../../../node_modules/@types/serve-favicon/index.d.ts","../../../node_modules/@types/method-override/index.d.ts","../lib/express/logger.js","../lib/express/express-logging.js","../lib/express/idempotency.js","../lib/express/middleware.js","../lib/express/static.js","../lib/express/crash.js","../lib/express/websocket.js","../lib/express/server.js","../lib/protocol/protocol.js","../lib/protocol/index.js","../lib/basedriver/device-settings.js","../lib/basedriver/core.js","../lib/basedriver/commands/timeout.js","../lib/basedriver/commands/event.js","../lib/basedriver/commands/find.js","../lib/basedriver/commands/log.js","../lib/basedriver/commands/settings.js","../lib/basedriver/commands/session.js","../lib/basedriver/commands/execute.js","../lib/basedriver/commands/index.js","../lib/basedriver/driver.js","../lib/jsonwp-status/status.js","../lib/jsonwp-proxy/protocol-converter.js","../lib/jsonwp-proxy/proxy.js","../lib/index.js","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","3eb679a56cab01203a1ba7edeade937f6a2a4c718513b2cd930b579807fa9359","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"ff667ee99e5a28c3dc5063a3cfd4d3436699e3fb035d4451037da7f567da542a","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"2f6c9750131d5d2fdaba85c164a930dc07d2d7e7e8970b89d32864aa6c72620c","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","3a0c45fe95e8f0e2c5247d48acf3a522d2ef29f1ab0effb3c59a9c4fdd5edbcd","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","a5f6d22760eef0178bebc5b5b5664a403109615a9c49da879ccd84438bd55223","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","ee3bad055a79f188626b1a7046f04ab151fdd3581e55c51d32face175bd9d06f","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1dbccafbca82a60fdfb0fb3c28e2493ff76d06647a512dcf72a086022e8b6f91","d10f4929cd610c26926d6784fc3f9f4120b789c03081b5d65fb2d2670a00fa04","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","02b3239cf1b1ff8737e383ed5557f0247499d15f5bd21ab849b1a24687b6100c","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e3685a8957b4e2af64c3f04a58289ee0858a649dbcd963a2b897fe85858ae18a","85ca0c94bcc3d2fb62cfe8dfc1e649b77611118a77fde72915ebbcff71da5656","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","f1f0ab91eacf5fe45d4b9c0fc67b7510f490bd292505bc4baeba3bb43d17ec68",{"version":"2d32bbdbd53e80a4d05607716e7861e3fca9e846fd8a970dcc4890c439d54aa4","affectsGlobalScope":true},"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","fcaf4736b812dae6fc9de8f6b44c2d1e5faed66c1c58e022db39a292980b167e","326da4aebf555d54b995854ff8f3432f63ba067be354fa16c6e1f50daa0667de","cb26f195564ee703a68161f88e57e33e6e76e630b999e582d0a4328435d7f84e","d274da8ba27079a593a7de4fbe82f3aab664724bf4f1b080e977f6e745e690e1","4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","e5da2b7a4f643f017ffb444c2218217dbf76f096632af01a1d6c68d3fb2b14fb","ce01848c6682d9e7653bfa653b28ca9294beeabb85cf99bcc6168f10c6e3f436","ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","755bb3d307b8892706fc8b2bdbd4129f85b8fa40d54704eb4fa4b08fa88fbf52","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","a24c4fe21d5b13a9ecbbb39b5e22f5d4c6fe5feebb074865ba2de273381a73ae","48a9a38d31f33ba5a969cc7028907691e01c26d5341c558b051d27ef302602e9","2169cdcb2e85ec18274590018fc1a12b8fe02708813692d9a1531695c17d3198","9392e1e62ee32e9b9334fa9bf93c27be2d7227ded895a984532cb155dc776f95","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","b0cefbc19466a38f5883079f0845babcb856637f7d4f3f594b746d39b74390f7","1e86d750ab0d4fbde7213aa28174f8838e38fe755bc75d8ab05795c58164082c","2581e202c26cdcb937bce677f26e5c150c6e63c73f3745fa050a026835e6efc3","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","1e2c2a147cc887a3903d243aecb9be8d00f8701dd44a9668cc6f74a3559c8c1d","4d397c276bd0d41f8a5a0d67a674d5cf3f79b79b0f4df13a0fbefdf0e88f0519","aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","bfe7df6fcf991120bbaceee4349879cb61cc1818ca7861fbeb325d9fbc72010d","0b9bcc98884f81d8adda2c5d2ebb0361c7a53af6713e72138c4457e6016ff708","1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","746cb07f9dd17c219aaa9acbb1547bae40ad802cf98ee503a82f9be04e7d1da5","fcc438e50c00c9e865d9c1777627d3fdc1e13a4078c996fb4b04e67e462648c8","d0f07efa072420758194c452edb3f04f8eabc01cd4b3884a23e7274d4e2a7b69","a90339d50728b60f761127fe75192e632aa07055712a377acd8d20bb5d61e80c","37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","fa18c6fe108031717db1ada404c14dc75b8b38c54daa3bb3af4c4999861ca653","60f476f1c4de44a08d6a566c6f1e1b7de6cbe53d9153c9cc2284ca0022e21fba","9e4891d8c1d8de97893a062b68c543b3a77cfab40e1a4cf70db0be3c79a03b32","4f0781ec008bb24dc1923285d25d648ea48fb5a3c36d0786e2ee82eb00eff426","dcce1f3a3f016215125083f1b375167442b83a7bb205d60208f88e5038da7171","6d5ca4a24664e2abda6ca5268b35c98f3b51c24bfe2ea78e69474c33a00c70cf","e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","21fa5e89751e3004538ade8a86e892fdf107f183aa8ae07b205d10bd80d33156","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","587ce54f0e8ad1eea0c9174d6f274fb859648cebb2b8535c7adb3975aee74c21","9550769b302bcd2675b6ebbc1bcc3babd47f5a4fdae6324eb5a4d3bdeddd4d19","5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","f9c8e417b2c65e81f1af4837e8a525d44541c673906c891e10210b89aa273bc2","32568bfb6a4cc613a280821cb6d040cdb9f59002b94649b572ff56367d95acb0","3614116d0f47b274b9b771d45e06ef9bea3287295db0bafaecbaa592850328d0","92e35e09c72adfd70c14910c36e8edd659385822bb306d1a7ecf7cc45d87c2b7","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","074343ca788a38f572d8bdb0985956c0ad1a4d8ca8b6ef8c1a19a0e11cf09db0","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","7d05ac926705ce932b6e41e5e273333b380d08b6a036ad0c8b01139586b34548","0bc13111c65ef1373c84c86c039416127579469828f0e01e03ffe00fb8fd6785","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","f3dedc92d06e0fdc43e76c2e1acca21759dd63d2572c9ec78a5188249965d944","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","c0722c1915db9c489ddbece99e3cac757b961e945974c60574ca38c488f88c49","7ad042f7d744ccfbcf6398216203c7712f01359d6fd4348c8bd8df8164e98096","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","008ed9b6d1fdb68f9d98e6fd238d99be77e738892c3a1c6cf8b7616de4f8b114","08f95bee0619072d2c49854434af3e53d94e7e762fc082b49cea59e77db06905","5eafc2fbbb2d978fca6a14812632b117ea539964e773301327d1a3c194ebc572","f734063a854b2402e89de037fd7289e31685248c0d8ca0f80ff4fe657364dd61","72990795adebe4cbaa941875a2c984e9d10272fddab506703e09cc48193cc5fa","72f8b24415b650a67ef570e3a532b3203a339277af81cd44530738d521acd6d4","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","b7b3958e1ccccecf9992c09c3f70f6a37a4559d73858f36777cd2fdbf174af7b","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","a55ca8b5f8c6a8535bb26fac1e10132a5338234ca3d5b9ed739fbc8ef41c8075","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","1f5d54d716e2983942fa3e96c10b9a134975cacfd4d0a6d60b64569b0badc937","b05b48274c318121533dee4ff3d104ca6e89389e4963bfd8148389790102a638","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","b4358a89fcd9c579f84a6c68e2ce44ca91b07e4db3f8f403c2b7a72c1a1e04b6","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","7d9161ec720909c6abf2957b3f62d1ab27f2623e380a39d147715d43d8abd414","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","a983207132524290a38f8c5e3e1799c4b3372c66835ee1a9c207f42fc5220d88","8f55068da250ce5c00ce636f4c33b7e50fb15a75a84bf6092595e419e678dc2a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","b7e64651c85c710d82161ad78be0ff7c95e9ecc82b23ea21244b62753d549ea3","9505d603322c220b8b7d66d0a0ca163d895a1b679ea623d46a56b67c00f6219d","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","6f36e68c339aea454afcdd2387ed71411d727a612f1412d84530e05f74d3e963","3fa86a2c33804b6a4221dda3714a6a2f8a2f26983ea6c63d2bf6f2839fbb778a","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","2e97e912e078f6cea483fb096d9c49eb2b7285f9e4748e2f7723c7b55817b90b","5f9e9eee4568d2fbef66f0118381003c07c43193dd18bc86f3141726a23a386e","de723bc82cf4066cad42425e303fade98c8840f41a6ed51ac20da0ce4fff09e2","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"1153175167a3c48f04cea09400723d11107af1c13e2f0fc858347ef085417519","affectsGlobalScope":true},"e23921a9a56b94e03c638fe7709cff6e24ff5dbb673500f39549555ca8481e6d","537519754d03076deac4b04781d600e1dff67adc72c00189d411e9eb917d50d5","5a4c22b5fbebb9c0c8f34d8c94aaf3c3ea12941ae09f3794f1983b9aca568513","ab50fc338a9e0f6571e1143738eed70c3aa2fa7247667396167eba1ca402b607","d7fcddcd30ce28e95d3492b204a4ca7f0f1e83e36f475f6d0e8bf4d43ca582a6","962705e6b720553f5590fb20cc2be706aee3823f59a89c504a31a82f8e9a9937","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c","0e2e948c4ad3184567fcae2684c360d2de35db86a021652386646ea6d235f43c","61c19bbc816b7685a7f7c90928b978fd384820471bed4eb3c8a8d2f2c6d6f51b","81cba1ca948d7a158b75d9bf342955793576687c61930f9d87a331a968c820bc","ac26e1df718b688cb69170ef4a10c4615796af3042dc4a2d533b295095052142","e5435a253e31a74a5ba34cddd2983c2b6e7798be830cf9896656f3dd02d513a3","c58c3df82dbbac85d6cbbfb6ece2a425c125db04ef0ceb3f034d33f6258a595b","107c1b5064b01db7a55616d09c5b6c278cd402c6afb82fcbf95fe28b48920d22","616293f491f8f8038be5cc29418493ba333e6e98820b0e85a6bf02a333667eb8","e32df6324918608e0d404ed125e7f2429a21315830f81d15a22958e53c3bbe97","0f6dc41bab0e1f96f70f46d797644d0d32a491e34a390e3411f61ecbbef3159b","07d406e2b9185f08617234e5d1307789c202e99159f3aa1a13670df39589a2fe","6f690985c908fd2d566f694394016be3e757fb7094e1e3d8be8545813af0453f","cf34998d6c868eb5d814521523731767ceed7d00bddaf40f82f89ef861c411bf","0298fb593e400ab7d61366fad5e84399f224bee4bb1cd3dc0cfaae0e2929c3d7","6adab4f1c0c67ce871828183137449e443e17a4142529a32b22f189f3c737af6","1be04a4005e2b7f5b2688e2d4de704ae68c9d95ebacc0367b8b5730bd8c50fb1","83c2f5af37e6d351b3d2f6824c8c0fe85361e2640035bef7c9e56a5dfeedcd35","101b82e4cc6bc4230c4c764ce8f28d0841a665c38f7c1a40981b2727ebc1bf3c","9c7efe7cc60262099e1f7bb4fbc6d0014df273c9049e744ffb484e6761a7e2ad","259b9513ebf3c844555adec1e27878aaa9e057046f8163fcbb9f3b8a8495440b","0634e12db1decbf3edc562dcf8e2b7f4affe4919a21005d6bea90aa9532612aa","3c464b3eecdf5cd990dcd882a04608f4ae29b99fc24ffbff970e340ac5d4eef1","6daca098a3cf1585848a1464458143442ef8042470cb975ef7ab360afa7651b6","c7b5b995bd17d27758d13f8d200d9748d8fcb5491dd5593a4e840e5abdd4e0c3","a8d4833b2b4896c44af60626a844a086c8120807cf2e6a39d2dc80ab5d1af972","40156b6e614fe0b0aa4af9c21a0157eb84758e572ae700788ff9d436fae78c2b","f0867230a5838be63be92c9480a65f1d075eec34683212e080002760a6174c83","098d6936c459f18218ad71cde5aa25562a74461701c3551c544aecfd2c6226e7","405dc951dda9d1ba88aa742a04541a749973bafa7873f1b49c3065a6dc05e170","fc9091f36b50dfc7e47b6183bd7b4294a20878e1d826f38f44e7053d403358ed","4c846ba0a980408c10c12ed8358bcabdb8ca97aee0bb8869becaea412d6e89bb","ed995ca53b2c1b6bc1555bbee8bc12ea290b2117d89dc1c27c1333f8c3a97d35","26a8c45aaa7c9b7cb356b565f880295b5a94b14f0c348b41dd776cbeab9f06e1","a18ab8a8420f372aab81c57e9eb3b0c29a8a7760eab40328765d65a3d2dff5ac","15465dcb7504e00902baf1c1bf1195c35a20612a300fcd8482836c9319af2d1b","762539fa7b805a2ca94de8b9587db0dfe12ae440848678d028707b70f31acced","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","a24c550713b0c89c592210e3ed105d31b28c32ad771822aabd4fc218a7bfcde9","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","8158988aa420c707b0b8c83478da67f1ca846f861440371489c6921f8a519ae2","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","7a79ca84e4370ed2e1afaa99ff7d25194901916b7672e977d16f77af3b71342f","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"c0ab662b2062f0153ca133720fc005ab7c1540f4f43f5010fc188a37c4d6ad4b","d1d46acba7d3b3f9abe50982dcdddb536c184371d84746bfe5076ee95358095b",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"21c26e8b205b22ce0fc6b4a71dff51461339c88699b3c9bd1ba6a24cb1781820","a4380443e2595fb9a78b9dbe5f99556c54cabd40e86fba6c6e75335d6cab485e",{"version":"571ebbdcf7bf3def6f295ba37de8d024fd3c39a715fbbfe35881c14a500eb208","signature":"a1d603406aac490767ee4308bc9255c938026982e55fb6c658c0fc539866ac7b"},{"version":"be6a344d5ffe5605112c771cf96944441fde9756481986c379c495365072be30","signature":"3484ced9a2b78732bc8333ed8161b404648ec0ad504af6e76223599ea54b3d50"},"725dccff633196df66545215b99e54bbdab4b9c1b54f1324cf6a44d4464b5c7b",{"version":"d706cbb7eef2e550ea8716f5a6a165c60248852177ba44187b517d686c530558","signature":"b856fa3403faa1cf77f2d23ea8a6e5a95edbd3020a23c7d79c8c82d2fb6d9251"},"87dc4aa712e5fc14d93d1a91919b0105aac5dc6c04259fcb28a5d57a1347fba3","1bc146fb8f5cf8f67d0bb651c2237196ab42d7bae6eff9c079f254c3a4b2dc9f","fcb175cbc3a5f91152314cabe52625d495da9a3c4e9b4578dfcb1018b10b5bd1","66b458867662fd10111e8241abfd372570816317b456b712979826b0d784df37","de743c53fbbaa917b418cff186394602074f211fdeeedc27c3a2ddd83993c043","bf028cb4dfbaa3e027a2d8935a48d323ba5c98c68f8197f38bf341b64c8c467f",{"version":"d987fee45ca739f6f6ae90703a18f6d13ac1d8fd74e82de3b5bc7971f814ebf1","signature":"53fbbbf7f71249a8c3f4c72b85be080915571eb0d932484e02566b33c57bf92b"},{"version":"62d634e9a165a2e8941e41ba7a0ef818db359efcc909596c1c8423d23e14cd3c","signature":"2c8e2889dba45f246ad6a125e2d31eb108def5d1bb8a2a2a1ed6a08644d3949e"},"72978f1a73910441c6d0f39bd3f9f77d430764df6b51c47c93a0e37e84ab5ef6",{"version":"96433b0063fbff6e9f7f4431f05da93c80fe846057819dccbd80f6671f4534c4","signature":"73aa40493a72a96fdcc0568c6aa3cfdf3a19dd73d0173886b8f821c469189f62"},{"version":"0709b49348a954ddfbf50e78eee0701d0827aa6f7f36a7d9b7908b5513bc152a","signature":"a71f6b213dde1d750827d4f67ad6d18439cb6ba806324ca6e29a8b9c6218b9be"},"a83e11b6800c50b4d361fc997551dad8a95c817298e91cdff00e17b18a883418",{"version":"811ade98265f4c33ae0a5a6d9e2dbd2c55c61b974551d29a2206a0c06e2a4d1d","signature":"458b0a07e55108c088d3d2eabbe2bd278dfe3e51b199474e8de7b56b9acc5051"},{"version":"bc3aae52551bce321492ddf1dcba9ff13eca9b2ef303215dac16ec8644efb554","signature":"2b07f3f2781f35fc25d2d976e1dd464475ca95ca47bb1b923ea3c84abb518c16"},{"version":"428e53d5bcca7dac76fbcaa0d38de5db3a4f08d3487ac38be9ec42635813ce95","signature":"a3a1b1452ab56c0c4e16cadb28d25f3345af38e3357c19930ae9ea34906d58ae"},"2da5ca3148a44b80cf1358343069f62435567945f56671ddee2ab70a56dc701e","f968c02e8044479c5f6e3334fd48fa7085e44be7d146ef0660c5672e3b36ad65",{"version":"204c2b22a85e64267d9c79aeb7590a5d407c56dd526439932b8757af42259961","signature":"3484ced9a2b78732bc8333ed8161b404648ec0ad504af6e76223599ea54b3d50"},{"version":"b82b0fd822f594e691219b0c2ddb8c6fb8fd1ede6a4594e2254bb0c15f9ac277","signature":"7554402dd4944d53eaa87e21730d2c2ba267e9a210c4e54a664e0a17d2e9b1c1"},{"version":"9995f6ea594ca89a1833df35f179f1726b211ebaf38b18b0a0dc873897bb7e92","signature":"bb5791f210287a7376c0415ce32a63ca327c991beaa5f0e4618d6f38c68d2117"},{"version":"33d0691f1b40fe0ab8829a1d1dd9ae7250d7ffe45fe07b450685d720c2b1e994","signature":"77d9f395416cc72500659f5add88f1cac7b3373346136ef782827c7615abd342"},{"version":"f4ac2a7c9a369cf3aa781ced696e12a7c4484acd12045cb97c3d754276d97142","signature":"108b0c350deec609785717b44f9e9f7634485e413b9b6416d99faec964120d5f"},{"version":"1302f7069c3df4b66334b22733cd97f2f04e12bd868fa2140ed92620f9760ae6","signature":"12d82bd2ac8890c5ed94cfd823c6740807d4a1c5d89333f1c6a41bf19f1a97ce"},{"version":"181105b0f4458273b94cb2a714b852e7fd85e2bd681aba64e3cdbb2b4efa5ee1","signature":"7a2ddc3f16c5de66854cb96d396845751247a6082c270d5310f02616e06ffd0f"},{"version":"c177f731bef09eb59f2628c3565525f61e1524c7a18ad20cde1f3d50440c828e","signature":"93c3b101a674653181b771c5efc914801596ec64a1ad17b2ef0c75ad105b6307"},{"version":"c3ef61c531288f918029d7a3f0d47552c5ddc69258f6ed2d0e06c4da52d4fed9","signature":"6255df435fe0a5c2cea8717fbcbcd1ac2ec9102b1483f8a450e08a39e351b09f"},{"version":"4c3b18face6dbe13d9667b588eeb11d6767ab21e74207b328bb81c7c466c0e72","signature":"160d64085a149b692677da63c1d45ba2ef7377bc6b3fd391c66f32b1e403437e"},{"version":"7a22855cce9ac7e103ffe962f33df763c357d28b7ab087b1790200edc20b60b7","signature":"f28f215459d2e40ed8992591ab03de4e017b9fc2e7042f3e058803d894d063ce"},{"version":"db656816e2a3279a97f03fb0a55f894ff4f9cf421775c4c681d0749fcacb541f","signature":"984ec8f5d4630837bc3752a8cf34367a59846eeef3140b94bdcec747f2a84e0a"},{"version":"ffad6b3c857b2ebd47420afbe7e52f511d0314b4c588e0e8908c5ca76561d140","signature":"1a0230ad675972b170f3a492d627cf963471a00e22203be2510d082b59617c05"},{"version":"f7eecb667ce4b403daf48d6286b41118b2327b8cea7e4047b5308b406599fd14","signature":"bed6cdf8405abadfe425d46193b6bce79ef033b8a39c862829054fd52c677ca3"},{"version":"dc94d816fa5653bf8330f71c60d63ed1d24fa9da31adb37d22f86500e012b3bf","signature":"9d9b9bb3d90c0a7f3acf598d746f491b2919587c5965cb7a19b1be1be616fd41"},{"version":"dd5235c8ae80c4e67ab0a8980b9a169c77bdb825cc349abcd5f225628bd089f6","signature":"f7c0384749a02062034e355d3b92702406528ecf9ed3b7282b6feac2fedaebc1"},{"version":"ad8f368bd92e59e247f337581a594af05ccc40ce85917783ac0ac1d8a4bdd21e","signature":"0d1bb940bd4d71b832bb6cc5eff8f566d07091919d40d1894cd1be4c6c71f8ed"},{"version":"7491ccd0f9325ae432f1ebc79269eaad89402ff994fc28fe71bfa84cc188e965","signature":"00ce09fd50d04397a50965235c128331c21350c57caa6600ca20421f49151b05"},{"version":"41542977625b9ffca0db0322a90a8c3a37abb287f9dc15e46be4aabb2e0faf1b","signature":"33b2bb93ee35afcf0a8ccc60dcea1e77d0ed403fd847c7656694ba32dd4ab84d"},{"version":"f33e904d4d0265c07571f30c61145f453bab4cfd665a1e40a434f6eebc8f55ed","signature":"b6b507b2f06679e159e0021268d34f1a1904a6b2b635c603f5cae043976fc690"},{"version":"ee0cd02d89ba99b5c07864baed8d6ee5fc856e87e8b1ad9cdc6e654222fb1d6e","signature":"c035350c9f44cfc1363c81da560da5c5f21a95fd96eba2aef7a5776e160f2e71"},{"version":"ee415b75b3f2680587a2ecd78cbc91c6f6d428e84291c061813901e563660639","signature":"1555ce09d35784af5c889249b606212814a5bd9f69b8711b9a99bde57ff7e406"},{"version":"23a950ab4410c5dee1114969b256654ae34feea8433bf42bbd12ddd84cda7d16","signature":"2a430b29dba064fdc7bdec90cf5c71364e5f1beead7831fb4726f591b93f597a"},{"version":"343215fd646c92fcb791b605d50094d336410d0cd079a1ac3e96f6b5b0013fe0","signature":"c1277725ecc49d46abffc491fd63e981c38f41e8084fa399b2b21c0b98a4bb5d"},{"version":"fbe88610ce90844bd07bbeaa5302e9a4e06e272fe0b34d1b5e1d7c3fd88b3bb0","signature":"2ad7fb4f312399033790c58af7443104159208cc270ea667c432f0da3542afd1"},{"version":"486521d4e8acd463ea1cff8dd48b2b1167fb6cb913ca2db97ec88691a85ecb1f","affectsGlobalScope":true},{"version":"127bf414ca8ced28c9738b91a935121009d03bbc136668db980bd1ba18976b2b","affectsGlobalScope":true},"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","354abbae08f72ea982b1a767a8908f1b3efe8bbe53955c64f9c0c249c8832d5d",{"version":"0fd3b5704bf037608646df5aa053fd06819ff69302ff6ada9736c300f79df852","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":5,"outDir":"./","removeComments":false,"strictNullChecks":true,"target":2},"fileIdsList":[[102],[102,267],[102,262],[102,262,263,264,265,266],[102,263],[102,263,265],[102,266],[102,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294],[102,268,269,270,271,272],[76,102,109,237],[102,370],[76,102,109],[73,76,102,109,232,233],[102,233,234,236,238],[73,74,102,109,202],[74,90,102,109],[102,305,307,308,309,310,311,312,313,314,315,316,317],[102,305,306,308,309,310,311,312,313,314,315,316,317],[102,306,307,308,309,310,311,312,313,314,315,316,317],[102,305,306,307,309,310,311,312,313,314,315,316,317],[102,305,306,307,308,310,311,312,313,314,315,316,317],[102,305,306,307,308,309,311,312,313,314,315,316,317],[102,305,306,307,308,309,310,312,313,314,315,316,317],[102,305,306,307,308,309,310,311,313,314,315,316,317],[102,305,306,307,308,309,310,311,312,314,315,316,317],[102,305,306,307,308,309,310,311,312,313,315,316,317],[102,305,306,307,308,309,310,311,312,313,314,316,317],[102,305,306,307,308,309,310,311,312,313,314,315,317],[102,305,306,307,308,309,310,311,312,313,314,315,316],[102,239],[74,102,109],[58,102],[61,102],[62,67,102],[63,73,74,81,90,101,102],[63,64,73,81,102],[65,102],[66,67,74,82,102],[67,90,98,102],[68,70,73,81,102],[69,102],[70,71,102],[72,73,102],[73,102],[73,74,75,90,101,102],[73,74,75,90,102],[76,81,90,101,102],[73,74,76,77,81,90,98,101,102],[76,78,90,98,101,102],[58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108],[73,79,102],[80,101,102],[70,73,81,90,102],[82,102],[83,102],[61,84,102],[85,100,102,106],[86,102],[87,102],[73,88,102],[88,89,102,104],[73,90,91,92,102],[90,92,102],[90,91,102],[93,102],[94,102],[73,96,97,102],[96,97,102],[67,81,98,102],[99,102],[81,100,102],[62,76,87,101,102],[67,102],[90,102,103],[102,104],[102,105],[62,67,73,75,84,90,101,102,104,106],[90,102,107],[90,102,107,109],[74,102,109,203],[76,102,109,235],[102,370,372],[102,371],[63,73,101,102,109],[73,76,78,90,98,101,102,107,109],[73,90,102,109],[102,249],[102,250],[102,244],[102,246,247,248,249,250,251,252],[76,78,101,102,109,245,247,248,250],[73,74,102,109],[102,109,246,249,250],[73,102,109,249,250],[102,328,329,330,331],[102,267,273,295],[102,220,221],[102,210,211,212,213,214,215,216,217,218,219],[102,210],[102,211],[102,220],[102,111,112,113,114,115,117,118,119,120,121,123,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[102,154],[102,116,169],[102,170],[102,117,142],[102,116,124,135,143],[102,142],[102,116],[102,173],[102,118],[102,152],[102,116,160,169],[102,163],[102,165],[102,111],[102,135],[102,112,113,123,156],[102,177],[102,175],[102,116,120,121,122,123,124],[102,120,121,122],[102,113,133],[102,116,123],[102,179],[102,117],[102,173,182,185],[102,117,118],[102,117,118,165],[102,194,256,317,322,324,326,333],[102,256,317,356,364],[102,256,317,353,361,364],[102,256,353,357,364],[102,356,357,358,359,360,361,362,364],[102,256,317,358,364],[102,256,317,360,364],[102,256,359,364],[102,256,317,322,353,364],[73,82,102,256,317,322,323,335,339,353,354],[102,200,324,325],[102,256,317,322,324,333],[102,194,200,239,256,317,322,333,334,339,341,353,355,363],[83,101,102,256,300,317,322,324,335,338],[102,322],[102,353],[102,317,320,323,344],[73,82,83,102,322,338,344],[102,317,344,346,353],[73,76,83,102,200,238,239,256,317,323,342,343,344,345,347,348,349,350],[83,102,200,317,322,344],[101,102,200,226,256,317],[102,194,256,317],[102,200,323,334,348,350,351,353,354,355,364,365,367],[102,317,322,323,339],[76,78,102,194,256,300,317,322,323,332,333,340,353,365,366],[102,317],[102,317,322,327,332],[102,317,323,339],[102,333,337,352],[102,200,256,317,322,323,333,336,337,340,341,351],[102,256,317,322,323],[102,227],[102,228],[102,109,194,319,320],[102,222,317],[74,102,109,200,203,204,205,206,207,208,209,222],[62,102,109,296,297],[102,195,196,197,201,223,224,225,258,259,261,299,301,302,303,304,318,321],[102,242,256,257],[90,102],[102,300],[102,110,194],[102,198,199,200],[102,260],[102,253,254,256],[102,229,230],[73,102,109,231,240,256],[76,81,102,109,194,226,230,231,239,240,241,242,243,254,255],[102,241,256],[122,123,194,250,256],[256,356,364],[256,361,364],[256,357,364],[362,364],[256,358,364],[256,360,364],[256,359,364],[256,364],[256],[194,239,256,333,355,362],[76,239,256],[226,256],[351],[194,256,332],[256,351]],"referencedMap":[[320,1],[270,2],[263,3],[264,3],[267,4],[262,5],[266,6],[265,7],[272,2],[268,2],[274,2],[275,2],[276,2],[277,2],[278,2],[279,2],[280,2],[281,2],[282,2],[283,2],[284,2],[285,2],[286,2],[287,2],[288,2],[289,2],[290,2],[291,2],[292,2],[293,2],[294,2],[295,8],[269,2],[271,2],[273,9],[335,1],[200,1],[238,10],[374,11],[370,1],[237,12],[234,13],[239,14],[203,15],[227,1],[209,16],[306,17],[307,18],[305,19],[308,20],[309,21],[310,22],[311,23],[312,24],[313,25],[314,26],[315,27],[316,28],[317,29],[343,30],[235,1],[202,1],[369,1],[204,1],[206,31],[58,32],[59,32],[61,33],[62,34],[63,35],[64,36],[65,37],[66,38],[67,39],[68,40],[69,41],[70,42],[71,42],[72,43],[73,44],[74,45],[75,46],[60,1],[108,1],[76,47],[77,48],[78,49],[109,50],[79,51],[80,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[92,63],[91,64],[93,65],[94,66],[95,1],[96,67],[97,68],[98,69],[99,70],[100,71],[101,72],[102,73],[103,74],[104,75],[105,76],[106,77],[107,78],[221,1],[242,44],[297,79],[233,1],[232,1],[205,80],[342,30],[236,81],[199,1],[373,82],[372,83],[371,1],[110,84],[198,1],[207,1],[226,85],[260,86],[250,87],[251,88],[245,89],[246,1],[253,90],[249,91],[248,92],[247,93],[252,94],[300,1],[298,1],[327,1],[332,95],[331,1],[330,1],[329,1],[328,1],[296,96],[319,1],[338,1],[222,97],[220,98],[210,1],[211,1],[217,99],[214,1],[213,100],[212,1],[219,101],[218,1],[216,99],[215,100],[208,1],[194,102],[141,1],[155,103],[113,1],[170,104],[172,105],[171,105],[143,106],[142,1],[145,107],[144,108],[124,1],[173,109],[177,110],[175,110],[115,1],[122,111],[153,112],[152,1],[161,109],[117,109],[148,1],[190,113],[164,114],[166,115],[185,109],[116,116],[136,117],[151,1],[187,1],[157,118],[174,110],[178,119],[176,120],[191,1],[159,1],[133,116],[125,121],[126,1],[123,122],[149,109],[150,109],[156,1],[114,1],[120,1],[135,1],[163,1],[192,123],[130,109],[131,124],[179,105],[181,125],[180,125],[121,1],[111,1],[134,1],[132,109],[162,1],[189,1],[129,1],[127,126],[128,1],[165,1],[158,1],[186,127],[139,128],[137,128],[138,128],[154,1],[118,1],[182,110],[184,119],[183,120],[169,1],[167,129],[160,1],[147,1],[188,1],[193,1],[168,1],[112,1],[146,1],[140,1],[119,128],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[244,1],[325,1],[334,130],[357,131],[362,132],[358,133],[363,134],[359,135],[361,136],[360,137],[356,138],[355,139],[326,140],[354,141],[364,142],[339,143],[324,144],[323,144],[349,145],[345,146],[346,147],[344,144],[347,148],[351,149],[348,150],[350,151],[341,152],[368,153],[366,154],[367,155],[365,156],[333,157],[340,158],[353,159],[352,160],[337,161],[336,156],[228,162],[229,163],[321,164],[318,165],[223,166],[299,167],[322,168],[257,1],[258,169],[302,170],[225,31],[301,171],[303,1],[195,172],[224,1],[259,1],[197,1],[196,1],[304,1],[201,173],[261,174],[240,1],[230,1],[255,175],[231,176],[254,1],[241,177],[256,178],[243,179]],"exportedModulesMap":[[320,1],[270,2],[263,3],[264,3],[267,4],[262,5],[266,6],[265,7],[272,2],[268,2],[274,2],[275,2],[276,2],[277,2],[278,2],[279,2],[280,2],[281,2],[282,2],[283,2],[284,2],[285,2],[286,2],[287,2],[288,2],[289,2],[290,2],[291,2],[292,2],[293,2],[294,2],[295,8],[269,2],[271,2],[273,9],[335,1],[200,1],[238,10],[374,11],[370,1],[237,12],[234,13],[239,14],[203,15],[227,1],[209,16],[306,17],[307,18],[305,19],[308,20],[309,21],[310,22],[311,23],[312,24],[313,25],[314,26],[315,27],[316,28],[317,29],[343,30],[235,1],[202,1],[369,1],[204,1],[206,31],[58,32],[59,32],[61,33],[62,34],[63,35],[64,36],[65,37],[66,38],[67,39],[68,40],[69,41],[70,42],[71,42],[72,43],[73,44],[74,45],[75,46],[60,1],[108,1],[76,47],[77,48],[78,49],[109,50],[79,51],[80,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[92,63],[91,64],[93,65],[94,66],[95,1],[96,67],[97,68],[98,69],[99,70],[100,71],[101,72],[102,73],[103,74],[104,75],[105,76],[106,77],[107,78],[221,1],[242,44],[297,79],[233,1],[232,1],[205,80],[342,30],[236,81],[199,1],[373,82],[372,83],[371,1],[110,84],[198,1],[207,1],[226,85],[260,86],[250,87],[251,88],[245,89],[246,1],[253,90],[249,91],[248,92],[247,93],[252,94],[300,1],[298,1],[327,1],[332,95],[331,1],[330,1],[329,1],[328,1],[296,96],[319,1],[338,1],[222,97],[220,98],[210,1],[211,1],[217,99],[214,1],[213,100],[212,1],[219,101],[218,1],[216,99],[215,100],[208,1],[194,102],[141,1],[155,103],[113,1],[170,104],[172,105],[171,105],[143,106],[142,1],[145,107],[144,108],[124,1],[173,109],[177,110],[175,110],[115,1],[122,111],[153,112],[152,1],[161,109],[117,109],[148,1],[190,113],[164,114],[166,115],[185,109],[116,116],[136,117],[151,1],[187,1],[157,118],[174,110],[178,119],[176,120],[191,1],[159,1],[133,116],[125,121],[126,1],[123,122],[149,109],[150,109],[156,1],[114,1],[120,1],[135,1],[163,1],[192,123],[130,109],[131,124],[179,105],[181,125],[180,125],[121,1],[111,1],[134,1],[132,109],[162,1],[189,1],[129,1],[127,126],[128,1],[165,1],[158,1],[186,127],[139,128],[137,128],[138,128],[154,1],[118,1],[182,110],[184,119],[183,120],[169,1],[167,129],[160,1],[147,1],[188,1],[193,1],[168,1],[112,1],[146,1],[140,1],[119,128],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[244,1],[325,1],[334,180],[357,181],[362,182],[358,183],[363,184],[359,185],[361,186],[360,187],[356,188],[355,189],[354,189],[364,190],[339,189],[324,189],[344,189],[351,191],[350,192],[341,189],[368,193],[367,194],[352,195],[337,189],[228,162],[229,163],[321,164],[318,165],[223,166],[299,167],[322,168],[257,1],[258,169],[302,170],[225,31],[301,171],[303,1],[195,172],[224,1],[259,1],[197,1],[196,1],[304,1],[201,173],[261,174],[240,1],[230,1],[255,175],[231,176],[254,1],[241,177],[256,178],[243,179]],"semanticDiagnosticsPerFile":[320,270,263,264,267,262,266,265,272,268,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,269,271,273,335,200,238,374,370,237,234,239,203,227,209,306,307,305,308,309,310,311,312,313,314,315,316,317,343,235,202,369,204,206,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,60,108,76,77,78,109,79,80,81,82,83,84,85,86,87,88,89,90,92,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,221,242,297,233,232,205,342,236,199,373,372,371,110,198,207,226,260,250,251,245,246,253,249,248,247,252,300,298,327,332,331,330,329,328,296,319,338,222,220,210,211,217,214,213,212,219,218,216,215,208,194,141,155,113,170,172,171,143,142,145,144,124,173,177,175,115,122,153,152,161,117,148,190,164,166,185,116,136,151,187,157,174,178,176,191,159,133,125,126,123,149,150,156,114,120,135,163,192,130,131,179,181,180,121,111,134,132,162,189,129,127,128,165,158,186,139,137,138,154,118,182,184,183,169,167,160,147,188,193,168,112,146,140,119,12,13,17,16,3,18,19,20,21,22,23,24,25,4,5,29,26,27,28,30,31,32,6,33,34,35,36,7,37,38,39,40,8,41,46,47,42,43,44,45,9,51,48,49,50,52,10,53,54,55,56,2,1,11,57,15,14,244,325,334,357,362,358,363,359,361,360,356,355,326,354,364,339,324,323,349,345,346,344,347,351,348,350,341,368,366,367,365,333,340,353,352,337,336,228,229,321,318,223,299,322,257,258,302,225,301,303,195,224,259,197,196,304,201,261,240,230,255,231,254,241,256,243]},"version":"4.7.4"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es6.d.ts","../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/@types/teen_process/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/empty-object.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/writable.d.ts","../../../node_modules/type-fest/source/omit-index-signature.d.ts","../../../node_modules/type-fest/source/pick-index-signature.d.ts","../../../node_modules/type-fest/source/enforce-optional.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/conditional-simplify.d.ts","../../../node_modules/type-fest/source/merge-deep.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/set-non-nullable.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/conditional-pick-deep.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/exact.d.ts","../../../node_modules/type-fest/source/readonly-tuple.d.ts","../../../node_modules/type-fest/source/optional-keys-of.d.ts","../../../node_modules/type-fest/source/has-optional-keys.d.ts","../../../node_modules/type-fest/source/required-keys-of.d.ts","../../../node_modules/type-fest/source/has-required-keys.d.ts","../../../node_modules/type-fest/source/spread.d.ts","../../../node_modules/type-fest/source/tuple-to-union.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/replace.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../support/build/lib/npm.d.ts","../../support/build/lib/tempdir.d.ts","../../support/build/lib/system.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/shell-quote/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../support/build/lib/util.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/mv/index.d.ts","../../../node_modules/@types/rimraf/index.d.ts","../../../node_modules/@types/ncp/index.d.ts","../../../node_modules/@types/which/index.d.ts","../../../node_modules/sanitize-filename/index.d.ts","../../../node_modules/@types/klaw/index.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/basic.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/except.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/mutable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/read-pkg/index.d.ts","../../support/build/lib/fs.d.ts","../../support/build/lib/plist.d.ts","../../support/build/lib/mkdirp.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../../types/build/appium-config.d.ts","../../types/build/config.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../types/build/action.d.ts","../../types/build/driver.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../types/build/plugin.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../types/build/constraints.d.ts","../../types/build/capabilities.d.ts","../../types/build/index.d.ts","../../support/build/lib/log-internal.d.ts","../../support/build/lib/logging.d.ts","../../support/build/lib/process.d.ts","../../../node_modules/@types/yauzl/index.d.ts","../../support/build/lib/zip.d.ts","../../../node_modules/@jimp/core/types/jimp.d.ts","../../../node_modules/@jimp/core/types/etc.d.ts","../../../node_modules/@jimp/core/types/functions.d.ts","../../../node_modules/@jimp/core/types/utils.d.ts","../../../node_modules/@jimp/core/types/plugins.d.ts","../../../node_modules/@jimp/core/types/index.d.ts","../../../node_modules/@jimp/jpeg/index.d.ts","../../../node_modules/@jimp/png/index.d.ts","../../../node_modules/@jimp/bmp/index.d.ts","../../../node_modules/@jimp/tiff/index.d.ts","../../../node_modules/@jimp/gif/index.d.ts","../../../node_modules/@jimp/types/index.d.ts","../../../node_modules/@jimp/plugin-blit/index.d.ts","../../../node_modules/@jimp/plugin-blur/index.d.ts","../../../node_modules/@jimp/plugin-circle/index.d.ts","../../../node_modules/@jimp/plugin-color/index.d.ts","../../../node_modules/@jimp/plugin-contain/index.d.ts","../../../node_modules/@jimp/plugin-cover/index.d.ts","../../../node_modules/@jimp/plugin-crop/index.d.ts","../../../node_modules/@jimp/plugin-displace/index.d.ts","../../../node_modules/@jimp/plugin-dither/index.d.ts","../../../node_modules/@jimp/plugin-fisheye/index.d.ts","../../../node_modules/@jimp/plugin-flip/index.d.ts","../../../node_modules/@jimp/plugin-gaussian/index.d.ts","../../../node_modules/@jimp/plugin-invert/index.d.ts","../../../node_modules/@jimp/plugin-mask/index.d.ts","../../../node_modules/@jimp/plugin-normalize/index.d.ts","../../../node_modules/@jimp/plugin-print/index.d.ts","../../../node_modules/@jimp/plugin-resize/index.d.ts","../../../node_modules/@jimp/plugin-rotate/index.d.ts","../../../node_modules/@jimp/plugin-scale/index.d.ts","../../../node_modules/@jimp/plugin-shadow/index.d.ts","../../../node_modules/@jimp/plugin-threshold/index.d.ts","../../../node_modules/@jimp/plugins/index.d.ts","../../../node_modules/jimp/types/ts3.1/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/buffer/index.d.ts","../../support/build/lib/image-util.d.ts","../../../node_modules/axios/index.d.ts","../../support/build/lib/net.d.ts","../../support/build/lib/mjpeg.d.ts","../../support/build/lib/node.d.ts","../../support/build/lib/timing.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../support/build/lib/env.d.ts","../../../node_modules/log-symbols/index.d.ts","../../../node_modules/@colors/colors/index.d.ts","../../support/build/lib/console.d.ts","../../support/build/lib/index.d.ts","../lib/constants.js","../lib/basedriver/logger.js","../../../node_modules/validate.js/validate.d.ts","../lib/basedriver/desired-caps.js","../../../node_modules/es6-error/typings/index.d.ts","../../../node_modules/http-status-codes/build/cjs/utils-functions.d.ts","../../../node_modules/http-status-codes/build/cjs/status-codes.d.ts","../../../node_modules/http-status-codes/build/cjs/reason-phrases.d.ts","../../../node_modules/http-status-codes/build/cjs/legacy.d.ts","../../../node_modules/http-status-codes/build/cjs/index.d.ts","../lib/protocol/errors.js","../lib/basedriver/capabilities.js","../../../node_modules/@types/async-lock/index.d.ts","../lib/protocol/validators.js","../lib/protocol/routes.js","../../../node_modules/lru-cache/index.d.ts","../lib/basedriver/helpers.js","../lib/protocol/helpers.js","../lib/helpers/capabilities.js","../../../node_modules/@types/serve-favicon/index.d.ts","../../../node_modules/@types/method-override/index.d.ts","../lib/express/logger.js","../lib/express/express-logging.js","../lib/express/idempotency.js","../lib/express/middleware.js","../lib/express/static.js","../lib/express/crash.js","../lib/express/websocket.js","../lib/express/server.js","../lib/protocol/protocol.js","../lib/protocol/index.js","../lib/basedriver/device-settings.js","../lib/basedriver/core.js","../lib/basedriver/commands/timeout.js","../lib/basedriver/commands/event.js","../lib/basedriver/commands/find.js","../lib/basedriver/commands/log.js","../lib/basedriver/commands/settings.js","../lib/basedriver/commands/session.js","../lib/basedriver/commands/execute.js","../lib/basedriver/commands/index.js","../lib/basedriver/driver.js","../lib/jsonwp-status/status.js","../lib/jsonwp-proxy/protocol-converter.js","../lib/jsonwp-proxy/proxy.js","../lib/index.js","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","3eb679a56cab01203a1ba7edeade937f6a2a4c718513b2cd930b579807fa9359","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"ff667ee99e5a28c3dc5063a3cfd4d3436699e3fb035d4451037da7f567da542a","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"2f6c9750131d5d2fdaba85c164a930dc07d2d7e7e8970b89d32864aa6c72620c","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","3a0c45fe95e8f0e2c5247d48acf3a522d2ef29f1ab0effb3c59a9c4fdd5edbcd","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","a5f6d22760eef0178bebc5b5b5664a403109615a9c49da879ccd84438bd55223","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","ee3bad055a79f188626b1a7046f04ab151fdd3581e55c51d32face175bd9d06f","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1dbccafbca82a60fdfb0fb3c28e2493ff76d06647a512dcf72a086022e8b6f91","d10f4929cd610c26926d6784fc3f9f4120b789c03081b5d65fb2d2670a00fa04","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","02b3239cf1b1ff8737e383ed5557f0247499d15f5bd21ab849b1a24687b6100c","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e3685a8957b4e2af64c3f04a58289ee0858a649dbcd963a2b897fe85858ae18a","85ca0c94bcc3d2fb62cfe8dfc1e649b77611118a77fde72915ebbcff71da5656","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","f1f0ab91eacf5fe45d4b9c0fc67b7510f490bd292505bc4baeba3bb43d17ec68",{"version":"2d32bbdbd53e80a4d05607716e7861e3fca9e846fd8a970dcc4890c439d54aa4","affectsGlobalScope":true},"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","fcaf4736b812dae6fc9de8f6b44c2d1e5faed66c1c58e022db39a292980b167e","326da4aebf555d54b995854ff8f3432f63ba067be354fa16c6e1f50daa0667de","cb26f195564ee703a68161f88e57e33e6e76e630b999e582d0a4328435d7f84e","d274da8ba27079a593a7de4fbe82f3aab664724bf4f1b080e977f6e745e690e1","4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","e5da2b7a4f643f017ffb444c2218217dbf76f096632af01a1d6c68d3fb2b14fb","ce01848c6682d9e7653bfa653b28ca9294beeabb85cf99bcc6168f10c6e3f436","ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","755bb3d307b8892706fc8b2bdbd4129f85b8fa40d54704eb4fa4b08fa88fbf52","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","a24c4fe21d5b13a9ecbbb39b5e22f5d4c6fe5feebb074865ba2de273381a73ae","48a9a38d31f33ba5a969cc7028907691e01c26d5341c558b051d27ef302602e9","2169cdcb2e85ec18274590018fc1a12b8fe02708813692d9a1531695c17d3198","9392e1e62ee32e9b9334fa9bf93c27be2d7227ded895a984532cb155dc776f95","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","b0cefbc19466a38f5883079f0845babcb856637f7d4f3f594b746d39b74390f7","1e86d750ab0d4fbde7213aa28174f8838e38fe755bc75d8ab05795c58164082c","2581e202c26cdcb937bce677f26e5c150c6e63c73f3745fa050a026835e6efc3","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","1e2c2a147cc887a3903d243aecb9be8d00f8701dd44a9668cc6f74a3559c8c1d","4d397c276bd0d41f8a5a0d67a674d5cf3f79b79b0f4df13a0fbefdf0e88f0519","aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","bfe7df6fcf991120bbaceee4349879cb61cc1818ca7861fbeb325d9fbc72010d","0b9bcc98884f81d8adda2c5d2ebb0361c7a53af6713e72138c4457e6016ff708","1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","746cb07f9dd17c219aaa9acbb1547bae40ad802cf98ee503a82f9be04e7d1da5","fcc438e50c00c9e865d9c1777627d3fdc1e13a4078c996fb4b04e67e462648c8","d0f07efa072420758194c452edb3f04f8eabc01cd4b3884a23e7274d4e2a7b69","a90339d50728b60f761127fe75192e632aa07055712a377acd8d20bb5d61e80c","37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","fa18c6fe108031717db1ada404c14dc75b8b38c54daa3bb3af4c4999861ca653","60f476f1c4de44a08d6a566c6f1e1b7de6cbe53d9153c9cc2284ca0022e21fba","9e4891d8c1d8de97893a062b68c543b3a77cfab40e1a4cf70db0be3c79a03b32","4f0781ec008bb24dc1923285d25d648ea48fb5a3c36d0786e2ee82eb00eff426","dcce1f3a3f016215125083f1b375167442b83a7bb205d60208f88e5038da7171","6d5ca4a24664e2abda6ca5268b35c98f3b51c24bfe2ea78e69474c33a00c70cf","e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","21fa5e89751e3004538ade8a86e892fdf107f183aa8ae07b205d10bd80d33156","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","587ce54f0e8ad1eea0c9174d6f274fb859648cebb2b8535c7adb3975aee74c21","9550769b302bcd2675b6ebbc1bcc3babd47f5a4fdae6324eb5a4d3bdeddd4d19","5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","f9c8e417b2c65e81f1af4837e8a525d44541c673906c891e10210b89aa273bc2","32568bfb6a4cc613a280821cb6d040cdb9f59002b94649b572ff56367d95acb0","3614116d0f47b274b9b771d45e06ef9bea3287295db0bafaecbaa592850328d0","92e35e09c72adfd70c14910c36e8edd659385822bb306d1a7ecf7cc45d87c2b7","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","074343ca788a38f572d8bdb0985956c0ad1a4d8ca8b6ef8c1a19a0e11cf09db0","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","7d05ac926705ce932b6e41e5e273333b380d08b6a036ad0c8b01139586b34548","0bc13111c65ef1373c84c86c039416127579469828f0e01e03ffe00fb8fd6785","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","f3dedc92d06e0fdc43e76c2e1acca21759dd63d2572c9ec78a5188249965d944","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","c0722c1915db9c489ddbece99e3cac757b961e945974c60574ca38c488f88c49","7ad042f7d744ccfbcf6398216203c7712f01359d6fd4348c8bd8df8164e98096","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","008ed9b6d1fdb68f9d98e6fd238d99be77e738892c3a1c6cf8b7616de4f8b114","08f95bee0619072d2c49854434af3e53d94e7e762fc082b49cea59e77db06905","5eafc2fbbb2d978fca6a14812632b117ea539964e773301327d1a3c194ebc572","f734063a854b2402e89de037fd7289e31685248c0d8ca0f80ff4fe657364dd61","72990795adebe4cbaa941875a2c984e9d10272fddab506703e09cc48193cc5fa","72f8b24415b650a67ef570e3a532b3203a339277af81cd44530738d521acd6d4","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","b7b3958e1ccccecf9992c09c3f70f6a37a4559d73858f36777cd2fdbf174af7b","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","a55ca8b5f8c6a8535bb26fac1e10132a5338234ca3d5b9ed739fbc8ef41c8075","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","1f5d54d716e2983942fa3e96c10b9a134975cacfd4d0a6d60b64569b0badc937","b05b48274c318121533dee4ff3d104ca6e89389e4963bfd8148389790102a638","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","b4358a89fcd9c579f84a6c68e2ce44ca91b07e4db3f8f403c2b7a72c1a1e04b6","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","7d9161ec720909c6abf2957b3f62d1ab27f2623e380a39d147715d43d8abd414","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","a983207132524290a38f8c5e3e1799c4b3372c66835ee1a9c207f42fc5220d88","8f55068da250ce5c00ce636f4c33b7e50fb15a75a84bf6092595e419e678dc2a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","b7e64651c85c710d82161ad78be0ff7c95e9ecc82b23ea21244b62753d549ea3","9505d603322c220b8b7d66d0a0ca163d895a1b679ea623d46a56b67c00f6219d","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","6f36e68c339aea454afcdd2387ed71411d727a612f1412d84530e05f74d3e963","3fa86a2c33804b6a4221dda3714a6a2f8a2f26983ea6c63d2bf6f2839fbb778a","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","2e97e912e078f6cea483fb096d9c49eb2b7285f9e4748e2f7723c7b55817b90b","5f9e9eee4568d2fbef66f0118381003c07c43193dd18bc86f3141726a23a386e","de723bc82cf4066cad42425e303fade98c8840f41a6ed51ac20da0ce4fff09e2","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"1153175167a3c48f04cea09400723d11107af1c13e2f0fc858347ef085417519","affectsGlobalScope":true},"e23921a9a56b94e03c638fe7709cff6e24ff5dbb673500f39549555ca8481e6d","537519754d03076deac4b04781d600e1dff67adc72c00189d411e9eb917d50d5","5a4c22b5fbebb9c0c8f34d8c94aaf3c3ea12941ae09f3794f1983b9aca568513","ab50fc338a9e0f6571e1143738eed70c3aa2fa7247667396167eba1ca402b607","d7fcddcd30ce28e95d3492b204a4ca7f0f1e83e36f475f6d0e8bf4d43ca582a6","962705e6b720553f5590fb20cc2be706aee3823f59a89c504a31a82f8e9a9937","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c","0e2e948c4ad3184567fcae2684c360d2de35db86a021652386646ea6d235f43c","61c19bbc816b7685a7f7c90928b978fd384820471bed4eb3c8a8d2f2c6d6f51b","81cba1ca948d7a158b75d9bf342955793576687c61930f9d87a331a968c820bc","ac26e1df718b688cb69170ef4a10c4615796af3042dc4a2d533b295095052142","e5435a253e31a74a5ba34cddd2983c2b6e7798be830cf9896656f3dd02d513a3","c58c3df82dbbac85d6cbbfb6ece2a425c125db04ef0ceb3f034d33f6258a595b","107c1b5064b01db7a55616d09c5b6c278cd402c6afb82fcbf95fe28b48920d22","616293f491f8f8038be5cc29418493ba333e6e98820b0e85a6bf02a333667eb8","e32df6324918608e0d404ed125e7f2429a21315830f81d15a22958e53c3bbe97","0f6dc41bab0e1f96f70f46d797644d0d32a491e34a390e3411f61ecbbef3159b","07d406e2b9185f08617234e5d1307789c202e99159f3aa1a13670df39589a2fe","6f690985c908fd2d566f694394016be3e757fb7094e1e3d8be8545813af0453f","cf34998d6c868eb5d814521523731767ceed7d00bddaf40f82f89ef861c411bf","0298fb593e400ab7d61366fad5e84399f224bee4bb1cd3dc0cfaae0e2929c3d7","6adab4f1c0c67ce871828183137449e443e17a4142529a32b22f189f3c737af6","1be04a4005e2b7f5b2688e2d4de704ae68c9d95ebacc0367b8b5730bd8c50fb1","83c2f5af37e6d351b3d2f6824c8c0fe85361e2640035bef7c9e56a5dfeedcd35","101b82e4cc6bc4230c4c764ce8f28d0841a665c38f7c1a40981b2727ebc1bf3c","9c7efe7cc60262099e1f7bb4fbc6d0014df273c9049e744ffb484e6761a7e2ad","259b9513ebf3c844555adec1e27878aaa9e057046f8163fcbb9f3b8a8495440b","0634e12db1decbf3edc562dcf8e2b7f4affe4919a21005d6bea90aa9532612aa","3c464b3eecdf5cd990dcd882a04608f4ae29b99fc24ffbff970e340ac5d4eef1","6daca098a3cf1585848a1464458143442ef8042470cb975ef7ab360afa7651b6","c7b5b995bd17d27758d13f8d200d9748d8fcb5491dd5593a4e840e5abdd4e0c3","a8d4833b2b4896c44af60626a844a086c8120807cf2e6a39d2dc80ab5d1af972","40156b6e614fe0b0aa4af9c21a0157eb84758e572ae700788ff9d436fae78c2b","f0867230a5838be63be92c9480a65f1d075eec34683212e080002760a6174c83","098d6936c459f18218ad71cde5aa25562a74461701c3551c544aecfd2c6226e7","405dc951dda9d1ba88aa742a04541a749973bafa7873f1b49c3065a6dc05e170","fc9091f36b50dfc7e47b6183bd7b4294a20878e1d826f38f44e7053d403358ed","4c846ba0a980408c10c12ed8358bcabdb8ca97aee0bb8869becaea412d6e89bb","ed995ca53b2c1b6bc1555bbee8bc12ea290b2117d89dc1c27c1333f8c3a97d35","26a8c45aaa7c9b7cb356b565f880295b5a94b14f0c348b41dd776cbeab9f06e1","a18ab8a8420f372aab81c57e9eb3b0c29a8a7760eab40328765d65a3d2dff5ac","15465dcb7504e00902baf1c1bf1195c35a20612a300fcd8482836c9319af2d1b","762539fa7b805a2ca94de8b9587db0dfe12ae440848678d028707b70f31acced","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","a24c550713b0c89c592210e3ed105d31b28c32ad771822aabd4fc218a7bfcde9","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","8158988aa420c707b0b8c83478da67f1ca846f861440371489c6921f8a519ae2","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","7a79ca84e4370ed2e1afaa99ff7d25194901916b7672e977d16f77af3b71342f","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"c0ab662b2062f0153ca133720fc005ab7c1540f4f43f5010fc188a37c4d6ad4b","d1d46acba7d3b3f9abe50982dcdddb536c184371d84746bfe5076ee95358095b",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"21c26e8b205b22ce0fc6b4a71dff51461339c88699b3c9bd1ba6a24cb1781820","a4380443e2595fb9a78b9dbe5f99556c54cabd40e86fba6c6e75335d6cab485e",{"version":"571ebbdcf7bf3def6f295ba37de8d024fd3c39a715fbbfe35881c14a500eb208","signature":"a1d603406aac490767ee4308bc9255c938026982e55fb6c658c0fc539866ac7b"},{"version":"be6a344d5ffe5605112c771cf96944441fde9756481986c379c495365072be30","signature":"3484ced9a2b78732bc8333ed8161b404648ec0ad504af6e76223599ea54b3d50"},"725dccff633196df66545215b99e54bbdab4b9c1b54f1324cf6a44d4464b5c7b",{"version":"d706cbb7eef2e550ea8716f5a6a165c60248852177ba44187b517d686c530558","signature":"b856fa3403faa1cf77f2d23ea8a6e5a95edbd3020a23c7d79c8c82d2fb6d9251"},"87dc4aa712e5fc14d93d1a91919b0105aac5dc6c04259fcb28a5d57a1347fba3","1bc146fb8f5cf8f67d0bb651c2237196ab42d7bae6eff9c079f254c3a4b2dc9f","fcb175cbc3a5f91152314cabe52625d495da9a3c4e9b4578dfcb1018b10b5bd1","66b458867662fd10111e8241abfd372570816317b456b712979826b0d784df37","de743c53fbbaa917b418cff186394602074f211fdeeedc27c3a2ddd83993c043","bf028cb4dfbaa3e027a2d8935a48d323ba5c98c68f8197f38bf341b64c8c467f",{"version":"d987fee45ca739f6f6ae90703a18f6d13ac1d8fd74e82de3b5bc7971f814ebf1","signature":"53fbbbf7f71249a8c3f4c72b85be080915571eb0d932484e02566b33c57bf92b"},{"version":"62d634e9a165a2e8941e41ba7a0ef818db359efcc909596c1c8423d23e14cd3c","signature":"2c8e2889dba45f246ad6a125e2d31eb108def5d1bb8a2a2a1ed6a08644d3949e"},"72978f1a73910441c6d0f39bd3f9f77d430764df6b51c47c93a0e37e84ab5ef6",{"version":"96433b0063fbff6e9f7f4431f05da93c80fe846057819dccbd80f6671f4534c4","signature":"73aa40493a72a96fdcc0568c6aa3cfdf3a19dd73d0173886b8f821c469189f62"},{"version":"0709b49348a954ddfbf50e78eee0701d0827aa6f7f36a7d9b7908b5513bc152a","signature":"a71f6b213dde1d750827d4f67ad6d18439cb6ba806324ca6e29a8b9c6218b9be"},"a83e11b6800c50b4d361fc997551dad8a95c817298e91cdff00e17b18a883418",{"version":"811ade98265f4c33ae0a5a6d9e2dbd2c55c61b974551d29a2206a0c06e2a4d1d","signature":"458b0a07e55108c088d3d2eabbe2bd278dfe3e51b199474e8de7b56b9acc5051"},{"version":"bc3aae52551bce321492ddf1dcba9ff13eca9b2ef303215dac16ec8644efb554","signature":"2b07f3f2781f35fc25d2d976e1dd464475ca95ca47bb1b923ea3c84abb518c16"},{"version":"428e53d5bcca7dac76fbcaa0d38de5db3a4f08d3487ac38be9ec42635813ce95","signature":"a3a1b1452ab56c0c4e16cadb28d25f3345af38e3357c19930ae9ea34906d58ae"},"2da5ca3148a44b80cf1358343069f62435567945f56671ddee2ab70a56dc701e","f968c02e8044479c5f6e3334fd48fa7085e44be7d146ef0660c5672e3b36ad65",{"version":"204c2b22a85e64267d9c79aeb7590a5d407c56dd526439932b8757af42259961","signature":"3484ced9a2b78732bc8333ed8161b404648ec0ad504af6e76223599ea54b3d50"},{"version":"b82b0fd822f594e691219b0c2ddb8c6fb8fd1ede6a4594e2254bb0c15f9ac277","signature":"7554402dd4944d53eaa87e21730d2c2ba267e9a210c4e54a664e0a17d2e9b1c1"},{"version":"9995f6ea594ca89a1833df35f179f1726b211ebaf38b18b0a0dc873897bb7e92","signature":"bb5791f210287a7376c0415ce32a63ca327c991beaa5f0e4618d6f38c68d2117"},{"version":"33d0691f1b40fe0ab8829a1d1dd9ae7250d7ffe45fe07b450685d720c2b1e994","signature":"77d9f395416cc72500659f5add88f1cac7b3373346136ef782827c7615abd342"},{"version":"f4ac2a7c9a369cf3aa781ced696e12a7c4484acd12045cb97c3d754276d97142","signature":"108b0c350deec609785717b44f9e9f7634485e413b9b6416d99faec964120d5f"},{"version":"1302f7069c3df4b66334b22733cd97f2f04e12bd868fa2140ed92620f9760ae6","signature":"12d82bd2ac8890c5ed94cfd823c6740807d4a1c5d89333f1c6a41bf19f1a97ce"},{"version":"181105b0f4458273b94cb2a714b852e7fd85e2bd681aba64e3cdbb2b4efa5ee1","signature":"7a2ddc3f16c5de66854cb96d396845751247a6082c270d5310f02616e06ffd0f"},{"version":"c177f731bef09eb59f2628c3565525f61e1524c7a18ad20cde1f3d50440c828e","signature":"93c3b101a674653181b771c5efc914801596ec64a1ad17b2ef0c75ad105b6307"},{"version":"c3ef61c531288f918029d7a3f0d47552c5ddc69258f6ed2d0e06c4da52d4fed9","signature":"6255df435fe0a5c2cea8717fbcbcd1ac2ec9102b1483f8a450e08a39e351b09f"},{"version":"4c3b18face6dbe13d9667b588eeb11d6767ab21e74207b328bb81c7c466c0e72","signature":"160d64085a149b692677da63c1d45ba2ef7377bc6b3fd391c66f32b1e403437e"},{"version":"7a22855cce9ac7e103ffe962f33df763c357d28b7ab087b1790200edc20b60b7","signature":"f28f215459d2e40ed8992591ab03de4e017b9fc2e7042f3e058803d894d063ce"},{"version":"db656816e2a3279a97f03fb0a55f894ff4f9cf421775c4c681d0749fcacb541f","signature":"984ec8f5d4630837bc3752a8cf34367a59846eeef3140b94bdcec747f2a84e0a"},{"version":"ffad6b3c857b2ebd47420afbe7e52f511d0314b4c588e0e8908c5ca76561d140","signature":"1a0230ad675972b170f3a492d627cf963471a00e22203be2510d082b59617c05"},{"version":"f7eecb667ce4b403daf48d6286b41118b2327b8cea7e4047b5308b406599fd14","signature":"bed6cdf8405abadfe425d46193b6bce79ef033b8a39c862829054fd52c677ca3"},{"version":"dc94d816fa5653bf8330f71c60d63ed1d24fa9da31adb37d22f86500e012b3bf","signature":"9d9b9bb3d90c0a7f3acf598d746f491b2919587c5965cb7a19b1be1be616fd41"},{"version":"dd5235c8ae80c4e67ab0a8980b9a169c77bdb825cc349abcd5f225628bd089f6","signature":"f7c0384749a02062034e355d3b92702406528ecf9ed3b7282b6feac2fedaebc1"},{"version":"ad8f368bd92e59e247f337581a594af05ccc40ce85917783ac0ac1d8a4bdd21e","signature":"0d1bb940bd4d71b832bb6cc5eff8f566d07091919d40d1894cd1be4c6c71f8ed"},{"version":"7491ccd0f9325ae432f1ebc79269eaad89402ff994fc28fe71bfa84cc188e965","signature":"00ce09fd50d04397a50965235c128331c21350c57caa6600ca20421f49151b05"},{"version":"41542977625b9ffca0db0322a90a8c3a37abb287f9dc15e46be4aabb2e0faf1b","signature":"33b2bb93ee35afcf0a8ccc60dcea1e77d0ed403fd847c7656694ba32dd4ab84d"},{"version":"f33e904d4d0265c07571f30c61145f453bab4cfd665a1e40a434f6eebc8f55ed","signature":"b6b507b2f06679e159e0021268d34f1a1904a6b2b635c603f5cae043976fc690"},{"version":"e42132b5f01a6afc4fef484308d921546c15e409a870d162b83a251b61a60e33","signature":"72037918731467d37b2f239651832ac4a01319191517d7c9bd7390a8f6631a2c"},{"version":"ee415b75b3f2680587a2ecd78cbc91c6f6d428e84291c061813901e563660639","signature":"1555ce09d35784af5c889249b606212814a5bd9f69b8711b9a99bde57ff7e406"},{"version":"23a950ab4410c5dee1114969b256654ae34feea8433bf42bbd12ddd84cda7d16","signature":"2a430b29dba064fdc7bdec90cf5c71364e5f1beead7831fb4726f591b93f597a"},{"version":"343215fd646c92fcb791b605d50094d336410d0cd079a1ac3e96f6b5b0013fe0","signature":"c1277725ecc49d46abffc491fd63e981c38f41e8084fa399b2b21c0b98a4bb5d"},{"version":"fbe88610ce90844bd07bbeaa5302e9a4e06e272fe0b34d1b5e1d7c3fd88b3bb0","signature":"2ad7fb4f312399033790c58af7443104159208cc270ea667c432f0da3542afd1"},{"version":"486521d4e8acd463ea1cff8dd48b2b1167fb6cb913ca2db97ec88691a85ecb1f","affectsGlobalScope":true},{"version":"127bf414ca8ced28c9738b91a935121009d03bbc136668db980bd1ba18976b2b","affectsGlobalScope":true},"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","354abbae08f72ea982b1a767a8908f1b3efe8bbe53955c64f9c0c249c8832d5d",{"version":"0fd3b5704bf037608646df5aa053fd06819ff69302ff6ada9736c300f79df852","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":5,"outDir":"./","removeComments":false,"strictNullChecks":true,"target":2},"fileIdsList":[[102],[102,267],[102,262],[102,262,263,264,265,266],[102,263],[102,263,265],[102,266],[102,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294],[102,268,269,270,271,272],[76,102,109,237],[102,370],[76,102,109],[73,76,102,109,232,233],[102,233,234,236,238],[73,74,102,109,202],[74,90,102,109],[102,305,307,308,309,310,311,312,313,314,315,316,317],[102,305,306,308,309,310,311,312,313,314,315,316,317],[102,306,307,308,309,310,311,312,313,314,315,316,317],[102,305,306,307,309,310,311,312,313,314,315,316,317],[102,305,306,307,308,310,311,312,313,314,315,316,317],[102,305,306,307,308,309,311,312,313,314,315,316,317],[102,305,306,307,308,309,310,312,313,314,315,316,317],[102,305,306,307,308,309,310,311,313,314,315,316,317],[102,305,306,307,308,309,310,311,312,314,315,316,317],[102,305,306,307,308,309,310,311,312,313,315,316,317],[102,305,306,307,308,309,310,311,312,313,314,316,317],[102,305,306,307,308,309,310,311,312,313,314,315,317],[102,305,306,307,308,309,310,311,312,313,314,315,316],[102,239],[74,102,109],[58,102],[61,102],[62,67,102],[63,73,74,81,90,101,102],[63,64,73,81,102],[65,102],[66,67,74,82,102],[67,90,98,102],[68,70,73,81,102],[69,102],[70,71,102],[72,73,102],[73,102],[73,74,75,90,101,102],[73,74,75,90,102],[76,81,90,101,102],[73,74,76,77,81,90,98,101,102],[76,78,90,98,101,102],[58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108],[73,79,102],[80,101,102],[70,73,81,90,102],[82,102],[83,102],[61,84,102],[85,100,102,106],[86,102],[87,102],[73,88,102],[88,89,102,104],[73,90,91,92,102],[90,92,102],[90,91,102],[93,102],[94,102],[73,96,97,102],[96,97,102],[67,81,98,102],[99,102],[81,100,102],[62,76,87,101,102],[67,102],[90,102,103],[102,104],[102,105],[62,67,73,75,84,90,101,102,104,106],[90,102,107],[90,102,107,109],[74,102,109,203],[76,102,109,235],[102,370,372],[102,371],[63,73,101,102,109],[73,76,78,90,98,101,102,107,109],[73,90,102,109],[102,249],[102,250],[102,244],[102,246,247,248,249,250,251,252],[76,78,101,102,109,245,247,248,250],[73,74,102,109],[102,109,246,249,250],[73,102,109,249,250],[102,328,329,330,331],[102,267,273,295],[102,220,221],[102,210,211,212,213,214,215,216,217,218,219],[102,210],[102,211],[102,220],[102,111,112,113,114,115,117,118,119,120,121,123,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[102,154],[102,116,169],[102,170],[102,117,142],[102,116,124,135,143],[102,142],[102,116],[102,173],[102,118],[102,152],[102,116,160,169],[102,163],[102,165],[102,111],[102,135],[102,112,113,123,156],[102,177],[102,175],[102,116,120,121,122,123,124],[102,120,121,122],[102,113,133],[102,116,123],[102,179],[102,117],[102,173,182,185],[102,117,118],[102,117,118,165],[102,194,256,317,322,324,326,333],[102,256,317,356,364],[102,256,317,353,361,364],[102,256,353,357,364],[102,356,357,358,359,360,361,362,364],[102,256,317,358,364],[102,256,317,360,364],[102,256,359,364],[102,256,317,322,353,364],[73,82,102,256,317,322,323,335,339,353,354],[102,200,324,325],[102,256,317,322,324,333],[102,194,200,239,256,317,322,333,334,339,341,353,355,363],[83,101,102,256,300,317,322,324,335,338],[102,322],[102,353],[102,317,320,323,344],[73,82,83,102,322,338,344],[102,317,344,346,353],[73,76,83,102,200,238,239,256,317,323,342,343,344,345,347,348,349,350],[83,102,200,317,322,344],[101,102,200,226,256,317],[102,194,256,317],[102,200,323,334,348,350,351,353,354,355,364,365,367],[102,317,322,323,339],[76,78,102,194,256,300,317,322,323,332,333,340,353,365,366],[102,317],[102,317,322,327,332],[102,317,323,339],[102,333,337,352],[102,200,256,317,322,323,333,336,337,340,341,351],[102,256,317,322,323],[102,227],[102,228],[102,109,194,319,320],[102,222,317],[74,102,109,200,203,204,205,206,207,208,209,222],[62,102,109,296,297],[102,195,196,197,201,223,224,225,258,259,261,299,301,302,303,304,318,321],[102,242,256,257],[90,102],[102,300],[102,110,194],[102,198,199,200],[102,260],[102,253,254,256],[102,229,230],[73,102,109,231,240,256],[76,81,102,109,194,226,230,231,239,240,241,242,243,254,255],[102,241,256],[122,123,194,250,256],[256,356,364],[256,361,364],[256,357,364],[362,364],[256,358,364],[256,360,364],[256,359,364],[256,364],[256],[194,239,256,333,362],[76,239,256],[226,256],[351],[194,256,332],[256,351]],"referencedMap":[[320,1],[270,2],[263,3],[264,3],[267,4],[262,5],[266,6],[265,7],[272,2],[268,2],[274,2],[275,2],[276,2],[277,2],[278,2],[279,2],[280,2],[281,2],[282,2],[283,2],[284,2],[285,2],[286,2],[287,2],[288,2],[289,2],[290,2],[291,2],[292,2],[293,2],[294,2],[295,8],[269,2],[271,2],[273,9],[335,1],[200,1],[238,10],[374,11],[370,1],[237,12],[234,13],[239,14],[203,15],[227,1],[209,16],[306,17],[307,18],[305,19],[308,20],[309,21],[310,22],[311,23],[312,24],[313,25],[314,26],[315,27],[316,28],[317,29],[343,30],[235,1],[202,1],[369,1],[204,1],[206,31],[58,32],[59,32],[61,33],[62,34],[63,35],[64,36],[65,37],[66,38],[67,39],[68,40],[69,41],[70,42],[71,42],[72,43],[73,44],[74,45],[75,46],[60,1],[108,1],[76,47],[77,48],[78,49],[109,50],[79,51],[80,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[92,63],[91,64],[93,65],[94,66],[95,1],[96,67],[97,68],[98,69],[99,70],[100,71],[101,72],[102,73],[103,74],[104,75],[105,76],[106,77],[107,78],[221,1],[242,44],[297,79],[233,1],[232,1],[205,80],[342,30],[236,81],[199,1],[373,82],[372,83],[371,1],[110,84],[198,1],[207,1],[226,85],[260,86],[250,87],[251,88],[245,89],[246,1],[253,90],[249,91],[248,92],[247,93],[252,94],[300,1],[298,1],[327,1],[332,95],[331,1],[330,1],[329,1],[328,1],[296,96],[319,1],[338,1],[222,97],[220,98],[210,1],[211,1],[217,99],[214,1],[213,100],[212,1],[219,101],[218,1],[216,99],[215,100],[208,1],[194,102],[141,1],[155,103],[113,1],[170,104],[172,105],[171,105],[143,106],[142,1],[145,107],[144,108],[124,1],[173,109],[177,110],[175,110],[115,1],[122,111],[153,112],[152,1],[161,109],[117,109],[148,1],[190,113],[164,114],[166,115],[185,109],[116,116],[136,117],[151,1],[187,1],[157,118],[174,110],[178,119],[176,120],[191,1],[159,1],[133,116],[125,121],[126,1],[123,122],[149,109],[150,109],[156,1],[114,1],[120,1],[135,1],[163,1],[192,123],[130,109],[131,124],[179,105],[181,125],[180,125],[121,1],[111,1],[134,1],[132,109],[162,1],[189,1],[129,1],[127,126],[128,1],[165,1],[158,1],[186,127],[139,128],[137,128],[138,128],[154,1],[118,1],[182,110],[184,119],[183,120],[169,1],[167,129],[160,1],[147,1],[188,1],[193,1],[168,1],[112,1],[146,1],[140,1],[119,128],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[244,1],[325,1],[334,130],[357,131],[362,132],[358,133],[363,134],[359,135],[361,136],[360,137],[356,138],[355,139],[326,140],[354,141],[364,142],[339,143],[324,144],[323,144],[349,145],[345,146],[346,147],[344,144],[347,148],[351,149],[348,150],[350,151],[341,152],[368,153],[366,154],[367,155],[365,156],[333,157],[340,158],[353,159],[352,160],[337,161],[336,156],[228,162],[229,163],[321,164],[318,165],[223,166],[299,167],[322,168],[257,1],[258,169],[302,170],[225,31],[301,171],[303,1],[195,172],[224,1],[259,1],[197,1],[196,1],[304,1],[201,173],[261,174],[240,1],[230,1],[255,175],[231,176],[254,1],[241,177],[256,178],[243,179]],"exportedModulesMap":[[320,1],[270,2],[263,3],[264,3],[267,4],[262,5],[266,6],[265,7],[272,2],[268,2],[274,2],[275,2],[276,2],[277,2],[278,2],[279,2],[280,2],[281,2],[282,2],[283,2],[284,2],[285,2],[286,2],[287,2],[288,2],[289,2],[290,2],[291,2],[292,2],[293,2],[294,2],[295,8],[269,2],[271,2],[273,9],[335,1],[200,1],[238,10],[374,11],[370,1],[237,12],[234,13],[239,14],[203,15],[227,1],[209,16],[306,17],[307,18],[305,19],[308,20],[309,21],[310,22],[311,23],[312,24],[313,25],[314,26],[315,27],[316,28],[317,29],[343,30],[235,1],[202,1],[369,1],[204,1],[206,31],[58,32],[59,32],[61,33],[62,34],[63,35],[64,36],[65,37],[66,38],[67,39],[68,40],[69,41],[70,42],[71,42],[72,43],[73,44],[74,45],[75,46],[60,1],[108,1],[76,47],[77,48],[78,49],[109,50],[79,51],[80,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[92,63],[91,64],[93,65],[94,66],[95,1],[96,67],[97,68],[98,69],[99,70],[100,71],[101,72],[102,73],[103,74],[104,75],[105,76],[106,77],[107,78],[221,1],[242,44],[297,79],[233,1],[232,1],[205,80],[342,30],[236,81],[199,1],[373,82],[372,83],[371,1],[110,84],[198,1],[207,1],[226,85],[260,86],[250,87],[251,88],[245,89],[246,1],[253,90],[249,91],[248,92],[247,93],[252,94],[300,1],[298,1],[327,1],[332,95],[331,1],[330,1],[329,1],[328,1],[296,96],[319,1],[338,1],[222,97],[220,98],[210,1],[211,1],[217,99],[214,1],[213,100],[212,1],[219,101],[218,1],[216,99],[215,100],[208,1],[194,102],[141,1],[155,103],[113,1],[170,104],[172,105],[171,105],[143,106],[142,1],[145,107],[144,108],[124,1],[173,109],[177,110],[175,110],[115,1],[122,111],[153,112],[152,1],[161,109],[117,109],[148,1],[190,113],[164,114],[166,115],[185,109],[116,116],[136,117],[151,1],[187,1],[157,118],[174,110],[178,119],[176,120],[191,1],[159,1],[133,116],[125,121],[126,1],[123,122],[149,109],[150,109],[156,1],[114,1],[120,1],[135,1],[163,1],[192,123],[130,109],[131,124],[179,105],[181,125],[180,125],[121,1],[111,1],[134,1],[132,109],[162,1],[189,1],[129,1],[127,126],[128,1],[165,1],[158,1],[186,127],[139,128],[137,128],[138,128],[154,1],[118,1],[182,110],[184,119],[183,120],[169,1],[167,129],[160,1],[147,1],[188,1],[193,1],[168,1],[112,1],[146,1],[140,1],[119,128],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[244,1],[325,1],[334,180],[357,181],[362,182],[358,183],[363,184],[359,185],[361,186],[360,187],[356,188],[355,189],[354,189],[364,190],[339,189],[324,189],[344,189],[351,191],[350,192],[341,189],[368,193],[367,194],[352,195],[337,189],[228,162],[229,163],[321,164],[318,165],[223,166],[299,167],[322,168],[257,1],[258,169],[302,170],[225,31],[301,171],[303,1],[195,172],[224,1],[259,1],[197,1],[196,1],[304,1],[201,173],[261,174],[240,1],[230,1],[255,175],[231,176],[254,1],[241,177],[256,178],[243,179]],"semanticDiagnosticsPerFile":[320,270,263,264,267,262,266,265,272,268,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,269,271,273,335,200,238,374,370,237,234,239,203,227,209,306,307,305,308,309,310,311,312,313,314,315,316,317,343,235,202,369,204,206,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,60,108,76,77,78,109,79,80,81,82,83,84,85,86,87,88,89,90,92,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,221,242,297,233,232,205,342,236,199,373,372,371,110,198,207,226,260,250,251,245,246,253,249,248,247,252,300,298,327,332,331,330,329,328,296,319,338,222,220,210,211,217,214,213,212,219,218,216,215,208,194,141,155,113,170,172,171,143,142,145,144,124,173,177,175,115,122,153,152,161,117,148,190,164,166,185,116,136,151,187,157,174,178,176,191,159,133,125,126,123,149,150,156,114,120,135,163,192,130,131,179,181,180,121,111,134,132,162,189,129,127,128,165,158,186,139,137,138,154,118,182,184,183,169,167,160,147,188,193,168,112,146,140,119,12,13,17,16,3,18,19,20,21,22,23,24,25,4,5,29,26,27,28,30,31,32,6,33,34,35,36,7,37,38,39,40,8,41,46,47,42,43,44,45,9,51,48,49,50,52,10,53,54,55,56,2,1,11,57,15,14,244,325,334,357,362,358,363,359,361,360,356,355,326,354,364,339,324,323,349,345,346,344,347,351,348,350,341,368,366,367,365,333,340,353,352,337,336,228,229,321,318,223,299,322,257,258,302,225,301,303,195,224,259,197,196,304,201,261,240,230,255,231,254,241,256,243]},"version":"4.7.4"}
@@ -27,12 +27,12 @@ const ON_UNEXPECTED_SHUTDOWN_EVENT = 'onUnexpectedShutdown';
27
27
  /**
28
28
  * @implements {SessionHandler<C>}
29
29
  * @template {Constraints} C
30
- * @template {StringRecord} [A=StringRecord]
30
+ * @template {StringRecord} [CArgs=StringRecord]
31
31
  * @extends {DriverCore<C>}
32
32
  */
33
33
  export class BaseDriverCore extends DriverCore {
34
34
  /**
35
- * @type {A & ServerArgs}
35
+ * @type {CArgs & ServerArgs}
36
36
  */
37
37
  cliArgs;
38
38
 
@@ -56,6 +56,23 @@ export class BaseDriverCore extends DriverCore {
56
56
  */
57
57
  opts;
58
58
 
59
+ static BASE_DESIRED_CAP_CONSTRAINTS = BASE_DESIRED_CAP_CONSTRAINTS;
60
+
61
+ /**
62
+ *
63
+ * @param {DriverOpts<C>} opts
64
+ * @param {boolean} shouldValidateCaps
65
+ */
66
+ constructor(opts = /** @type {DriverOpts<C>} */ ({}), shouldValidateCaps = true) {
67
+ super(opts, shouldValidateCaps);
68
+
69
+ /**
70
+ * This must be assigned here because the declaration of {@linkcode BaseDriverCore.opts} above
71
+ * blows away {@linkcode DriverCore.opts}.
72
+ */
73
+ this.opts = opts;
74
+ }
75
+
59
76
  /**
60
77
  * Contains the base constraints plus whatever the subclass wants to add.
61
78
  *
@@ -69,8 +86,6 @@ export class BaseDriverCore extends DriverCore {
69
86
  return Object.freeze(_.merge({}, BASE_DESIRED_CAP_CONSTRAINTS, this.desiredCapConstraints));
70
87
  }
71
88
 
72
- static BASE_DESIRED_CAP_CONSTRAINTS = BASE_DESIRED_CAP_CONSTRAINTS;
73
-
74
89
  // This is the main command handler for the driver. It wraps command
75
90
  // execution with timeout logic, checking that we have a valid session,
76
91
  // and ensuring that we execute commands one at a time. This method is called
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/base-driver",
3
- "version": "8.7.2",
3
+ "version": "8.7.3",
4
4
  "description": "Base driver class for Appium drivers",
5
5
  "keywords": [
6
6
  "automation",
@@ -45,7 +45,7 @@
45
45
  "test:unit": "mocha \"./test/unit/**/*.spec.js\""
46
46
  },
47
47
  "dependencies": {
48
- "@appium/support": "^2.61.0",
48
+ "@appium/support": "^2.61.1",
49
49
  "@colors/colors": "1.5.0",
50
50
  "@types/async-lock": "1.3.0",
51
51
  "@types/bluebird": "3.5.37",
@@ -77,5 +77,5 @@
77
77
  "access": "public"
78
78
  },
79
79
  "types": "./build/lib/index.d.ts",
80
- "gitHead": "f545a6cde58d83f3289072f8957468793947ba66"
80
+ "gitHead": "6b3cc1a8743f78c1f50320364f25f3011d2b2136"
81
81
  }