@appium/base-plugin 2.1.3 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,126 +1,3 @@
1
1
  # Appium Base Plugin
2
2
 
3
- The base class used to create Appium plugins. This plugin should not be installed directly as it does nothing. Instead, you extend this plugin when creating your *own* Appium plugins.
4
-
5
- ## Steps to create your own plugin
6
-
7
- You can follow this guide to create your own Appium plugin.
8
-
9
- ### 1. Initialize a Node.js project
10
-
11
- Appium plugins are Node.js programs, though of course you can call out to any other language or framework you want in the course of executing Node.js code. The basic requirement for an Appium plugin is to add certain metadata fields in your project's `package.json`, for example:
12
-
13
- ```
14
- {
15
- ...,
16
- "appium": {
17
- "pluginName": "your-plugin-name",
18
- "mainClass": "YourPlugin",
19
- },
20
- ...
21
- }
22
- ```
23
-
24
- Here the `pluginName` is the name used to activate your plugin by users who have installed it. So if your `pluginName` is `cool-plugin`, they would activate it as follows:
25
-
26
- ```
27
- appium --use-plugins=cool-plugin
28
- ```
29
-
30
- The same goes for updating and removing the plugin using the CLI.
31
-
32
- The `mainClass` value is the name that Appium should import from your project's entrypoint. So for example if somewhere in your project you have defined your plugin as follows:
33
-
34
- ```
35
- class CoolPlugin extends BasePlugin {
36
- ...
37
- }
38
- ```
39
-
40
- Then you need to make sure that Appium can import/require this name from your node package:
41
-
42
- ```
43
- const { CoolPlugin } = require('someones-cool-plugin')
44
- ```
45
-
46
- ### 2. Create your Plugin class by extending BasePlugin
47
-
48
- As implied above, your project should export a class which extends BasePlugin. This means you need to add BasePlugin as a project dependency:
49
-
50
- ```
51
- npm install --save @appium/base-plugin
52
- ```
53
-
54
- Then you can create a class which extends it:
55
-
56
- ```
57
- import BasePlugin from '@appium/base-plugin'
58
-
59
- class CoolPlugin extends BasePlugin {}
60
- ```
61
-
62
- ### 3. Implement your Plugin class
63
-
64
- Your plugin can do one or more of 3 basic things:
65
-
66
- 1. Update the Appium server object before it starts listening for requests
67
- 1. Handle Appium commands in lieu of the driver which would normally handle them
68
- 1. Add new routes/commands to Appium (which your plugin must then handle)
69
-
70
- #### Updating the server
71
-
72
- You probably don't normally need to update the Appium server object (which is an Express server having already been configured in a variety of ways). But, for example, you could add new Express middleware to the server to support your plugin's requirements. To update the server you must implement the `static async updateServer` method in your class. This method takes two parameters:
73
-
74
- * `expressApp`: the Express app object
75
- * `httpServer`: the Node HTTP server object
76
-
77
- You can do whatever you want with them inside the `updateServer` method. You might want to reference how these objects are created and worked with in the BaseDriver code, so that you know you're not undoing or overriding anything standard and important. But if you insist, you can, with results you'll need to test!
78
-
79
- ### Handling Appium commands
80
-
81
- This is the most normal behavior for Appium plugins -- to modify or replace the execution of one or more commands. To override the default command handling, you need to implement `async` methods in your class with the same name as the Appium commands to be handled (just exactly how drivers themselves are implemented). Curious what command names there are? They are defined in the Appium base driver's [routes.js](https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js) file, and of course you can add more as defined in the next section.
82
-
83
- Each command method is sent the following arguments:
84
-
85
- 1. `next`: This is a reference to an `async` function which encapsulates the chain of behaviors which would take place if this plugin were not handling the command. You can choose to call the next behavior in the chain at any point in your logic (by making sure to include `await next()` somewhere), or not. If you don't, it means the default behavior (or any plugins registered after this one) won't be run.
86
- 1. `driver`: This is the object representing the driver handling the current session. You have access to it for any work you need to do, for example calling other driver methods, checking capabilities or settings, etc...
87
- 1. `...args`: A spread array with any arguments that have been applied to the command by the user.
88
-
89
- You might find yourself in a position where you want to handle *all* commands, in order to inspect payloads to determine whether or not to act in some way. If so, you can implement `async handle`, and any command that is not handled by one of your named methods will be handled by this method instead. It takes the following parameters (with all the same semantics as above):
90
-
91
- 1. `next`
92
- 1. `driver`
93
- 1. `cmdName` - string representing the command being run
94
- 1. `...args`
95
-
96
- There is a bit of a gotcha with handling Appium commands. Appium drivers have the ability to turn on a special 'proxy' mode, wherein the Appium server process takes a look at incoming URLs, and decides whether to forward them on to some upstream WebDriver server. It could happen that a command which a plugin wants to handle is designated as a command which is being proxied to an upstream server. In this case, we run into a problem, because the plugin never gets a chance to handle that command! For this reason, plugins can implement a special member function called `shouldAvoidProxy`, which takes the following parameters:
97
-
98
- 1. `method` - string denoting HTTP method (`GET`, `POST`, etc...)
99
- 2. `route` - string denoting the requested resource, for example `/session/8b3d9aa8-a0ca-47b9-9ab7-446e818ec4fc/source`
100
- 3. `body` - optional value of any type representing the WebDriver request body
101
-
102
- These parameters define an incoming request. If you want to handle a command in your plugin which would normally be proxied directly through a driver, you could disable or 'avoid' proxying the request, and instead have the request fall into the typical Appium command execution flow (and thereby your own command function). To avoid proxying a request, just return `true` from `shouldAvoidProxy`. Some examples of how this method is used are in the [Universal XML plugin](../universal-xml/lib/plugin.js) (where we want to avoid proxying the `getPageSource` command, or in the [Images plugin](../images/lib/plugin.js) (where we want to conditionally avoid proxying any command if it looks like it contains an image element).
103
-
104
- ### Adding new routes/commands
105
-
106
- You might decide that you want to add some new routes or commands to the Appium server, which could be called by clients. To do this, you should assign the static `newMethodMap` class variable to an object containing a set of routes and command names and arguments. The format of this object should exactly match the format of the `METHOD_MAP` object in Appium's [routes definition](https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js). Of course, just adding commands here does not implement them: you will also need to check for any new command names in your `handle` method to handle them, since by default there will be no implementation of commands added via `newMethodMap`.
107
-
108
- Note that the information about avoiding proxying above also applies to new commands that you've added. But to make life easy, instead of implementing `shouldAvoidProxy` for these cases, you can simply add the `neverProxy: true` field to your command specifier (see examples in the Fake Plugin class).
109
-
110
- ### Unexpected session shutdown
111
-
112
- When developing a plugin you may want to add some cleanup logic by handling `deleteSession`. This works in most cases, except when the session does not finish cleanly. Appium sometimes determines that a session has finished unexpectedly, and in these situations, Appium will look for a method called `onUnexpectedShutdown` in your plugin class, which will be called (passing the current session driver as the first parameter, and the error object representing the cause of the shutdown as the second), giving you an opportunity to take any steps that might be necessary to clean up from the session. For example, keeping in mind that the function is not `await`ed you could implement something like this:
113
-
114
- ```js
115
- async onUnexpectedShutdown(driver, cause) {
116
- try {
117
- // do some cleanup
118
- } catch (e) {
119
- // log any errors; don't allow anything to be thrown as they will be unhandled rejections
120
- }
121
- }
122
- ```
123
-
124
- ## Tips
125
-
126
- All of this is a lot to digest, and it's often easier to have a look at examples. The various plugins inside this monorepo are a good way to get familiar with what plugins can do!
3
+ The base class used to create Appium plugins. This plugin should not be installed directly as it does nothing. Instead, you extend this plugin when creating your *own* Appium plugins. Check out the [Building Plugins](https://appium.github.io/appium/docs/en/latest/ecosystem/build-plugins/) to learn how to make use of this base class to develop Appium plugins.
@@ -1,5 +1,8 @@
1
1
  export default BasePlugin;
2
2
  export type Plugin = import('@appium/types').Plugin;
3
+ export type NextPluginCallback = import('@appium/types').NextPluginCallback;
4
+ export type Driver = import('@appium/types').Driver;
5
+ export type PluginClass = import('@appium/types').PluginClass;
3
6
  /**
4
7
  * @implements {Plugin}
5
8
  */
@@ -20,6 +23,23 @@ export class BasePlugin implements Plugin {
20
23
  * ```
21
24
  */
22
25
  static newMethodMap: {};
26
+ /**
27
+ * Subclasses should use type `import('@appium/types').ExecuteMethodMap<SubclassName>`.
28
+ *
29
+ * Building up this map allows the use of the convenience function `executeMethod`, which
30
+ * basically does verification of names and parameters for execute methods implemented by this
31
+ * plugin.
32
+ *
33
+ * ```ts
34
+ * static executeMethodMap = {
35
+ * 'foo: bar': {
36
+ * command: 'commandName',
37
+ * params: {required: ['thing1', 'thing2'], optional: ['thing3']},
38
+ * },
39
+ * } as const;
40
+ * ```
41
+ */
42
+ static executeMethodMap: {};
23
43
  /**
24
44
  * @param {string} name
25
45
  * @param {Record<string,unknown>} [cliArgs]
@@ -28,5 +48,19 @@ export class BasePlugin implements Plugin {
28
48
  name: string;
29
49
  cliArgs: Record<string, unknown>;
30
50
  logger: import("@appium/types").AppiumLogger;
51
+ /**
52
+ * A convenience method that can be called by plugins who implement their own `executeMethodMap`.
53
+ * Only useful if your plugin has defined `executeMethodMap`. This helper requires passing in the
54
+ * `next` and `driver` objects since naturally we'd want to make sure to trigger the driver's own
55
+ * `executeMethod` call if an execute method is not found on the plugin itself.
56
+ *
57
+ * @template {Driver} D
58
+ * @param {NextPluginCallback} next
59
+ * @param {D} driver
60
+ * @param {string} script
61
+ * @param {[Record<string, any>]|[]} protoArgs
62
+ * @this {Plugin}
63
+ */
64
+ executeMethod<D extends import("@appium/types").Driver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS, import("@appium/types").StringRecord, any>>(this: import("@appium/types").Plugin, next: NextPluginCallback, driver: D, script: string, protoArgs: [Record<string, any>] | []): Promise<any>;
31
65
  }
32
66
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":";qBAsCa,OAAO,eAAe,EAAE,MAAM;AApC3C;;GAEG;AACH;IACE;;;;;;;;;;;;;;OAcG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,kBAHW,MAAM,iDAOhB;IAHC,aAAgB;IAChB,iCAAsB;IACtB,6CAAkD;CAErD"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":";qBAuFa,OAAO,eAAe,EAAE,MAAM;iCAC9B,OAAO,eAAe,EAAE,kBAAkB;qBAC1C,OAAO,eAAe,EAAE,MAAM;0BAC9B,OAAO,eAAe,EAAE,WAAW;AAvFhD;;GAEG;AACH;IACE;;;;;;;;;;;;;;OAcG;IACH,wBAAyB;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,4BAA6B;IAE7B;;;OAGG;IACH,kBAHW,MAAM,iDAOhB;IAHC,aAAgB;IAChB,iCAAsB;IACtB,6CAAkD;IAGpD;;;;;;;;;;;;OAYG;IACH,4MANW,kBAAkB,qBAElB,MAAM,aACN,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,CAAC,GAAC,EAAE,gBAkBlC;CACF"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BasePlugin = void 0;
4
4
  const support_1 = require("@appium/support");
5
+ const base_driver_1 = require("@appium/base-driver");
5
6
  /**
6
7
  * @implements {Plugin}
7
8
  */
@@ -15,6 +16,31 @@ class BasePlugin {
15
16
  this.cliArgs = cliArgs;
16
17
  this.logger = support_1.logger.getLogger(`Plugin [${name}]`);
17
18
  }
19
+ /**
20
+ * A convenience method that can be called by plugins who implement their own `executeMethodMap`.
21
+ * Only useful if your plugin has defined `executeMethodMap`. This helper requires passing in the
22
+ * `next` and `driver` objects since naturally we'd want to make sure to trigger the driver's own
23
+ * `executeMethod` call if an execute method is not found on the plugin itself.
24
+ *
25
+ * @template {Driver} D
26
+ * @param {NextPluginCallback} next
27
+ * @param {D} driver
28
+ * @param {string} script
29
+ * @param {[Record<string, any>]|[]} protoArgs
30
+ * @this {Plugin}
31
+ */
32
+ async executeMethod(next, driver, script, protoArgs) {
33
+ const Plugin = /** @type {PluginClass} */ (this.constructor);
34
+ const commandMetadata = { ...Plugin.executeMethodMap?.[script] };
35
+ /** @type {import('@appium/types').PluginCommand<D>|undefined} */
36
+ let command;
37
+ if (!commandMetadata.command || !(command = this[commandMetadata.command])) {
38
+ this.logger.info(`Plugin did not know how to handle method '${script}'. Passing control to next`);
39
+ return await next();
40
+ }
41
+ const args = (0, base_driver_1.validateExecuteMethodParams)(protoArgs, commandMetadata.params);
42
+ return await command.call(this, next, driver, ...args);
43
+ }
18
44
  }
19
45
  exports.BasePlugin = BasePlugin;
20
46
  /**
@@ -33,8 +59,28 @@ exports.BasePlugin = BasePlugin;
33
59
  * ```
34
60
  */
35
61
  BasePlugin.newMethodMap = {};
62
+ /**
63
+ * Subclasses should use type `import('@appium/types').ExecuteMethodMap<SubclassName>`.
64
+ *
65
+ * Building up this map allows the use of the convenience function `executeMethod`, which
66
+ * basically does verification of names and parameters for execute methods implemented by this
67
+ * plugin.
68
+ *
69
+ * ```ts
70
+ * static executeMethodMap = {
71
+ * 'foo: bar': {
72
+ * command: 'commandName',
73
+ * params: {required: ['thing1', 'thing2'], optional: ['thing3']},
74
+ * },
75
+ * } as const;
76
+ * ```
77
+ */
78
+ BasePlugin.executeMethodMap = {};
36
79
  exports.default = BasePlugin;
37
80
  /**
38
81
  * @typedef {import('@appium/types').Plugin} Plugin
82
+ * @typedef {import('@appium/types').NextPluginCallback} NextPluginCallback
83
+ * @typedef {import('@appium/types').Driver} Driver
84
+ * @typedef {import('@appium/types').PluginClass} PluginClass
39
85
  */
40
86
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC;;GAEG;AACH,MAAM,UAAU;IAkBd;;;OAGG;IACH,YAAY,IAAI,EAAE,OAAO,GAAG,EAAE;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,gBAAM,CAAC,SAAS,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;IACrD,CAAC;;AAIK,gCAAU;AA7BhB;;;;;;;;;;;;;;GAcG;AACI,uBAAY,GAAG,EAAE,CAAC;AAa3B,kBAAe,UAAU,CAAC;AAG1B;;GAEG"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":";;;AAAA,6CAAuC;AACvC,qDAAgE;AAEhE;;GAEG;AACH,MAAM,UAAU;IAoCd;;;OAGG;IACH,YAAY,IAAI,EAAE,OAAO,GAAG,EAAE;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,gBAAM,CAAC,SAAS,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;QACjD,MAAM,MAAM,GAAG,0BAA0B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,EAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC;QAE/D,iEAAiE;QACjE,IAAI,OAAO,CAAC;QAEZ,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE;YAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6CAA6C,MAAM,4BAA4B,CAChF,CAAC;YACF,OAAO,MAAM,IAAI,EAAE,CAAC;SACrB;QACD,MAAM,IAAI,GAAG,IAAA,yCAA2B,EAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5E,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;;AAIK,gCAAU;AA7EhB;;;;;;;;;;;;;;GAcG;AACI,uBAAY,GAAG,EAAE,CAAC;AAEzB;;;;;;;;;;;;;;;GAeG;AACI,2BAAgB,GAAG,EAAE,CAAC;AA2C/B,kBAAe,UAAU,CAAC;AAG1B;;;;;GAKG"}
package/lib/plugin.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import {logger} from '@appium/support';
2
+ import {validateExecuteMethodParams} from '@appium/base-driver';
2
3
 
3
4
  /**
4
5
  * @implements {Plugin}
@@ -21,6 +22,24 @@ class BasePlugin {
21
22
  */
22
23
  static newMethodMap = {};
23
24
 
25
+ /**
26
+ * Subclasses should use type `import('@appium/types').ExecuteMethodMap<SubclassName>`.
27
+ *
28
+ * Building up this map allows the use of the convenience function `executeMethod`, which
29
+ * basically does verification of names and parameters for execute methods implemented by this
30
+ * plugin.
31
+ *
32
+ * ```ts
33
+ * static executeMethodMap = {
34
+ * 'foo: bar': {
35
+ * command: 'commandName',
36
+ * params: {required: ['thing1', 'thing2'], optional: ['thing3']},
37
+ * },
38
+ * } as const;
39
+ * ```
40
+ */
41
+ static executeMethodMap = {};
42
+
24
43
  /**
25
44
  * @param {string} name
26
45
  * @param {Record<string,unknown>} [cliArgs]
@@ -30,6 +49,36 @@ class BasePlugin {
30
49
  this.cliArgs = cliArgs;
31
50
  this.logger = logger.getLogger(`Plugin [${name}]`);
32
51
  }
52
+
53
+ /**
54
+ * A convenience method that can be called by plugins who implement their own `executeMethodMap`.
55
+ * Only useful if your plugin has defined `executeMethodMap`. This helper requires passing in the
56
+ * `next` and `driver` objects since naturally we'd want to make sure to trigger the driver's own
57
+ * `executeMethod` call if an execute method is not found on the plugin itself.
58
+ *
59
+ * @template {Driver} D
60
+ * @param {NextPluginCallback} next
61
+ * @param {D} driver
62
+ * @param {string} script
63
+ * @param {[Record<string, any>]|[]} protoArgs
64
+ * @this {Plugin}
65
+ */
66
+ async executeMethod(next, driver, script, protoArgs) {
67
+ const Plugin = /** @type {PluginClass} */ (this.constructor);
68
+ const commandMetadata = {...Plugin.executeMethodMap?.[script]};
69
+
70
+ /** @type {import('@appium/types').PluginCommand<D>|undefined} */
71
+ let command;
72
+
73
+ if (!commandMetadata.command || !(command = this[commandMetadata.command])) {
74
+ this.logger.info(
75
+ `Plugin did not know how to handle method '${script}'. Passing control to next`
76
+ );
77
+ return await next();
78
+ }
79
+ const args = validateExecuteMethodParams(protoArgs, commandMetadata.params);
80
+ return await command.call(this, next, driver, ...args);
81
+ }
33
82
  }
34
83
 
35
84
  export default BasePlugin;
@@ -37,4 +86,7 @@ export {BasePlugin};
37
86
 
38
87
  /**
39
88
  * @typedef {import('@appium/types').Plugin} Plugin
89
+ * @typedef {import('@appium/types').NextPluginCallback} NextPluginCallback
90
+ * @typedef {import('@appium/types').Driver} Driver
91
+ * @typedef {import('@appium/types').PluginClass} PluginClass
40
92
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/base-plugin",
3
- "version": "2.1.3",
3
+ "version": "2.2.1",
4
4
  "description": "The base plugin used to create Appium 2.0 plugins",
5
5
  "keywords": [
6
6
  "automation",
@@ -31,7 +31,8 @@
31
31
  "lib",
32
32
  "build",
33
33
  "index.js",
34
- "tsconfig.json"
34
+ "tsconfig.json",
35
+ "!build/tsconfig.tsbuildinfo"
35
36
  ],
36
37
  "scripts": {
37
38
  "test": "npm run test:unit",
@@ -39,7 +40,8 @@
39
40
  "test:unit": "mocha \"./test/unit/**/*.spec.js\""
40
41
  },
41
42
  "dependencies": {
42
- "@appium/support": "^3.1.3"
43
+ "@appium/base-driver": "^9.3.1",
44
+ "@appium/support": "^3.1.5"
43
45
  },
44
46
  "engines": {
45
47
  "node": "^14.17.0 || ^16.13.0 || >=18.0.0",
@@ -48,7 +50,7 @@
48
50
  "publishConfig": {
49
51
  "access": "public"
50
52
  },
51
- "gitHead": "67c9bdfbceeb049aa134bf1d9b107543ff0a80b0",
53
+ "gitHead": "322363b8876a7ea7b630d538e22965f7bab0ea06",
52
54
  "tags": [
53
55
  "appium"
54
56
  ],
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../../../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.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/dom-events.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/readline/promises.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/is-equal.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/internal.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/jsonifiable.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-words.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/split.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/global-this.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/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/mime.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","../../../node_modules/@types/npmlog/index.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/lib/appium-config.d.ts","../../types/build/lib/config.d.ts","../../types/build/lib/action.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/lib/constraints.d.ts","../../types/build/lib/capabilities.d.ts","../../types/build/lib/driver.d.ts","../../types/build/lib/plugin.d.ts","../../types/build/lib/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","../../support/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/plugin.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":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","3eb679a56cab01203a1ba7edeade937f6a2a4c718513b2cd930b579807fa9359","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"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},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","eafab3bfb5877327390c4290a933054d2b29ad7d92e42ed1ac60f874f61a3370","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","f1f0ab91eacf5fe45d4b9c0fc67b7510f490bd292505bc4baeba3bb43d17ec68",{"version":"4f24c2781b21b6cd65eede543669327d68a8cf0c6d9cf106a1146b164a7c8ef9","affectsGlobalScope":true},"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","7873594f89f40867f1c033609db4052bb2e03a5d128f9b12c8ca657f83d293e4","47df64bd7286fa0b26b23c10f0a2c9221535a67934b8aecb6ed179688ee4d3c7","cb26f195564ee703a68161f88e57e33e6e76e630b999e582d0a4328435d7f84e","d274da8ba27079a593a7de4fbe82f3aab664724bf4f1b080e977f6e745e690e1","4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","952c4a8d2338e19ef26c1c0758815b1de6c082a485f88368f5bece1e555f39d4","ce01848c6682d9e7653bfa653b28ca9294beeabb85cf99bcc6168f10c6e3f436","ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","d97e5cd7a4962d990e63aa07a22ca564cafb87ea8f7d145480eaa8a437242f81","dee75c873b20a13839a8ce9ea9d32696682c6db4b1e9f4fb6bc431ed31b0fb8a","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","a24c4fe21d5b13a9ecbbb39b5e22f5d4c6fe5feebb074865ba2de273381a73ae","48a9a38d31f33ba5a969cc7028907691e01c26d5341c558b051d27ef302602e9","2169cdcb2e85ec18274590018fc1a12b8fe02708813692d9a1531695c17d3198","9392e1e62ee32e9b9334fa9bf93c27be2d7227ded895a984532cb155dc776f95","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","b0cefbc19466a38f5883079f0845babcb856637f7d4f3f594b746d39b74390f7","1e86d750ab0d4fbde7213aa28174f8838e38fe755bc75d8ab05795c58164082c","1f0ee5ddb64540632c6f9a5b63e242b06e49dd6472f3f5bd7dfeb96d12543e15","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","2d3f23c577a913d0f396184f31998507e18c8712bc74303a433cf47f94fd7e07","4d397c276bd0d41f8a5a0d67a674d5cf3f79b79b0f4df13a0fbefdf0e88f0519","aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","3c2e543e5913aca16ba24e406cebbf84bac298f79c249ea255016fabaf8be744","0b9bcc98884f81d8adda2c5d2ebb0361c7a53af6713e72138c4457e6016ff708","1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","31073e7d0e51f33b1456ff2ab7f06546c95e24e11c29d5b39a634bc51f86d914","f60149e188145ebf3e6edf735576a2c26e805ac575bfdfa839a27929175e0855","31d18349ccfc45ce4f82990c71aed8901272a8edc9c6d1b2d330aabf36f50aec","a90339d50728b60f761127fe75192e632aa07055712a377acd8d20bb5d61e80c","37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","fa18c6fe108031717db1ada404c14dc75b8b38c54daa3bb3af4c4999861ca653","bb01ebb9b76c4eb319208a744c0d63a1fd9093c26b8a78aa3c661db3a22d4b22","efa00be58e65b88ea17c1eafd3efe3bc02ea403be1ee858f128ed79e7b880bd4","4f0781ec008bb24dc1923285d25d648ea48fb5a3c36d0786e2ee82eb00eff426","0aa5e0000438b420fa0222347d822c5699d24b5a188026ac364cadf1cc3d26f0","cd8aa48c26b3de057cfd76706c0cff88ace0f23f548b8dee974088497780e5ae","abf140fdc3db44c2cac9415426544d8c2a89e73f13f7838376b2b6d36d74a582","e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","11958f2fce49e1af7203482d72b410b1247724e35b7cce94ca72f994dc3d536b","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","587ce54f0e8ad1eea0c9174d6f274fb859648cebb2b8535c7adb3975aee74c21","1502a23e43fd7e9976a83195dc4eaf54acaff044687e0988a3bd4f19fc26b02b","dfdd3da3c5aab7f4ef3078d833bd3cef0ae65f7e358a008476e59aef6cc1d708","f47280c45ddbc8aa4909396e1d8b526f64dfad4a845aec2356a6c1dc7b6fe722","7b7f39411329342a28ea19a4ca3aa4c7f7d888c9f01a411b05e4126280026ea6","7f89aebd8a6aa9ff7dfc72d12352478f1db227e2d79d5b5f9d8a59cf1b5c6b48","7d936e6db7d5d73c02471a8e872739f1ddbacf213c159e97d1d94cca315ea3f2","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","074343ca788a38f572d8bdb0985956c0ad1a4d8ca8b6ef8c1a19a0e11cf09db0","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","7d05ac926705ce932b6e41e5e273333b380d08b6a036ad0c8b01139586b34548","0bc13111c65ef1373c84c86c039416127579469828f0e01e03ffe00fb8fd6785","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","d82c245bfb76da44dd573948eca299ff75759b9714f8410468d2d055145a4b64","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","d3752f9a8387c9c6938e7f68aba40fd8f9ade46bd50001e3c4f12b4abae0b6b4","5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","7ad042f7d744ccfbcf6398216203c7712f01359d6fd4348c8bd8df8164e98096","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","008ed9b6d1fdb68f9d98e6fd238d99be77e738892c3a1c6cf8b7616de4f8b114","08f95bee0619072d2c49854434af3e53d94e7e762fc082b49cea59e77db06905","9e5c7463fc0259a38938c9afbdeda92e802cff87560277fd3e385ad24663f214","e2b3d1e59ccc94f5c6bd3cac408fbe98344b4a42e50b924918d7d24afa68545a","288f78bb86d191e35b95b60396ba413f13768968c98e1904723b912348274f5a","63c66d9a40ef7d388fd747d4e6a814e534aae35a3edb9e1388227f7ebf942f61","24af8d0cd92f76c6bbd9adf5f9280bba728f0044de524d685bb9096a281353f4","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","d258b243f130c00b958bfad96586b5413bccc86cf17e9339e6a94d45f7e7b84f","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","b7b3958e1ccccecf9992c09c3f70f6a37a4559d73858f36777cd2fdbf174af7b","963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","a55ca8b5f8c6a8535bb26fac1e10132a5338234ca3d5b9ed739fbc8ef41c8075","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","8d7398f138f2c77fee289536b384dd8efad5425b668d791c5750ec5ad25899f2","b05b48274c318121533dee4ff3d104ca6e89389e4963bfd8148389790102a638","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","77c5c7f8578d139c74102a29384f5f4f0792a12d819ddcdcaf8307185ff2d45d","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","2483bc7046beeeb4cc644cdc84dc605ff97f755b859315e976966dcb1cb4321a","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","f4f1a89f5e2e6d2520d46e18a95eba7d1572f9c39389ee52383eb0bb6ac2db1e","8f55068da250ce5c00ce636f4c33b7e50fb15a75a84bf6092595e419e678dc2a","b7e64651c85c710d82161ad78be0ff7c95e9ecc82b23ea21244b62753d549ea3","3fa86a2c33804b6a4221dda3714a6a2f8a2f26983ea6c63d2bf6f2839fbb778a","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","9175464b6d81e04a6c2b0db519671b8bf7e27e16d8e013e4865abd7136886fff","5f9e9eee4568d2fbef66f0118381003c07c43193dd18bc86f3141726a23a386e","f7966ad6831404160d87c57d0628ae90130b24f8936ee3760e11d4e87465b1a9","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"1153175167a3c48f04cea09400723d11107af1c13e2f0fc858347ef085417519","affectsGlobalScope":true},"db579a65541b7e79862fe5e2147fbfc7750f6e9e895d99edae2c7c300df716a9","537519754d03076deac4b04781d600e1dff67adc72c00189d411e9eb917d50d5","56d0a49e2c4728d760c3633a581adf7dc931328bc9236a5c807259078e7c7977","85c3708731869d9b822b39f5ff71892f5de76d44a8e70742732e68634b6795c5","5f53045e8560742523251eeaed8d07e8c65c6e5371f28dab593e0b9f478ee8c2","c26b1340f043f3f32e9ae2e78fa3f1e9236f67f4309c4cf959df65c114a9e3f5","6e30220c1a2b7da5b83c3c7ce680f16e7ff5dd4549c6836da5a74ff8a7e6e308","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","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","06dee36c2eb08a5af99fb07f2c9f5a5d3a2a2a5642a429398c3697a4b0d0a7bd","a24c550713b0c89c592210e3ed105d31b28c32ad771822aabd4fc218a7bfcde9","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","8158988aa420c707b0b8c83478da67f1ca846f861440371489c6921f8a519ae2","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"c0ab662b2062f0153ca133720fc005ab7c1540f4f43f5010fc188a37c4d6ad4b","d1d46acba7d3b3f9abe50982dcdddb536c184371d84746bfe5076ee95358095b",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"64ceb32071d30631aa9d969255016f88d73285115057e4f88f9a4a475b99082c","a4380443e2595fb9a78b9dbe5f99556c54cabd40e86fba6c6e75335d6cab485e",{"version":"82f710ff07a8be990ee27a7479aa5d505a1b189da46c21cf5eee534bd834d5d4","signature":"ee24faffb9397e65f039bd3bbd48ce829d11ebe17c0e31633faf6175c0e1a377"},{"version":"677646e2620795c98a539fb12fb531f10331c217cef1492132b2518f894fa92d","affectsGlobalScope":true},{"version":"b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846","affectsGlobalScope":true},"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","354abbae08f72ea982b1a767a8908f1b3efe8bbe53955c64f9c0c249c8832d5d",{"version":"4f0ad52a7fbd6bfba88ec22ec719b6956a0fc647030462f9db490e74236d116f","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":1,"outDir":"./","removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"stripInternal":true,"target":7},"fileIdsList":[[99],[99,269],[99,264],[99,264,265,266,267,268],[99,265],[99,265,267],[99,268],[99,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296],[99,270,271,272,273,274],[72,99,106,233],[99,327],[72,99,106],[69,72,99,106,227,228],[99,228,229,232,234],[69,70,99,106,203],[70,87,99,106],[99,307,309,310,311,312,313,314,315,316,317,318,319],[99,307,308,310,311,312,313,314,315,316,317,318,319],[99,308,309,310,311,312,313,314,315,316,317,318,319],[99,307,308,309,311,312,313,314,315,316,317,318,319],[99,307,308,309,310,312,313,314,315,316,317,318,319],[99,307,308,309,310,311,313,314,315,316,317,318,319],[99,307,308,309,310,311,312,314,315,316,317,318,319],[99,307,308,309,310,311,312,313,315,316,317,318,319],[99,307,308,309,310,311,312,313,314,316,317,318,319],[99,307,308,309,310,311,312,313,314,315,317,318,319],[99,307,308,309,310,311,312,313,314,315,316,318,319],[99,307,308,309,310,311,312,313,314,315,316,317,319],[99,307,308,309,310,311,312,313,314,315,316,317,318],[99,230],[99,231],[70,99,106],[53,99],[56,99],[57,62,90,99],[58,69,70,77,87,98,99],[58,59,69,77,99],[60,99],[61,62,70,78,99],[62,87,95,99],[63,65,69,77,99],[64,99],[65,66,99],[69,99],[67,69,99],[69,70,71,87,98,99],[69,70,71,84,87,90,99],[99,103],[65,72,77,87,98,99],[69,70,72,73,77,87,95,98,99],[72,74,87,95,98,99],[53,54,55,56,57,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],[69,75,99],[76,98,99],[65,69,77,87,99],[78,99],[79,99],[56,80,99],[81,97,99,103],[82,99],[83,99],[69,84,85,99],[84,86,99,101],[57,69,87,88,89,90,99],[57,87,89,99],[87,88,99],[90,99],[91,99],[69,93,94,99],[93,94,99],[62,77,87,95,99],[96,99],[77,97,99],[57,72,83,98,99],[62,99],[87,99,100],[99,101],[99,102],[57,62,69,71,80,87,98,99,101,103],[87,99,104],[87,99,104,106],[70,99,106,204],[72,99,106,231],[99,327,329],[99,328],[58,69,98,99,106],[69,72,74,87,95,98,99,104,106],[69,87,99,106],[99,249],[99,250],[99,244],[99,246,247,248,249,250,251,252],[72,74,98,99,106,245,247,248,250],[69,70,99,106,250],[99,106,246,249,250],[69,99,106,249,250],[99,269,275,297],[99,221,222],[99,211,212,213,214,215,216,217,218,219,220],[99,211],[99,212],[99,221],[99,108,109,110,111,112,113,114,115,116,117,118,120,123,124,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,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,194],[99,152],[99,168],[99,169],[99,114,140],[99,113,121,133,141],[99,140],[99,122],[99,172],[99,115],[99,150],[99,122,133],[99,113],[99,122,159,187],[99,162],[99,164],[99,108,115],[99,133],[99,110],[99,109,110,112,122,154],[99,176],[99,174],[99,108],[99,117,118,119,120,121,122],[99,117,118,119],[99,113,122],[99,110,131],[99,120,122],[99,178],[99,114],[99,172,181,184],[99,114,115],[99,114,115,164],[99,258,324],[99,238],[99,239],[99,106,195,321,322],[99,223,319],[70,99,106,201,204,205,206,207,208,209,210,223],[57,99,106,298,299],[99,196,197,198,202,224,225,226,260,261,263,301,303,304,305,306,320,323],[99,258],[99,236,258,259],[87,99],[99,302],[99,107,195],[99,199,200,201],[99,262],[99,253,254,258],[99,240,241],[69,99,106,195,242,243,258],[72,77,99,106,195,235,236,237,241,242,243,254,255,256,257],[99,256,258],[258]],"referencedMap":[[322,1],[272,2],[265,3],[266,3],[269,4],[264,5],[268,6],[267,7],[274,2],[270,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,2],[296,2],[297,8],[271,2],[273,2],[275,9],[201,1],[234,10],[331,11],[327,1],[233,12],[229,13],[235,14],[204,15],[238,1],[210,16],[308,17],[309,18],[307,19],[310,20],[311,21],[312,22],[313,23],[314,24],[315,25],[316,26],[317,27],[318,28],[319,29],[231,30],[230,31],[203,1],[326,1],[205,1],[207,32],[53,33],[54,33],[56,34],[57,35],[58,36],[59,37],[60,38],[61,39],[62,40],[63,41],[64,42],[65,43],[66,43],[68,44],[67,45],[69,44],[70,46],[71,47],[55,48],[105,1],[72,49],[73,50],[74,51],[106,52],[75,53],[76,54],[77,55],[78,56],[79,57],[80,58],[81,59],[82,60],[83,61],[84,62],[85,62],[86,63],[87,64],[89,65],[88,66],[90,67],[91,68],[92,1],[93,69],[94,70],[95,71],[96,72],[97,73],[98,74],[99,75],[100,76],[101,77],[102,78],[103,79],[104,80],[222,1],[236,44],[299,81],[228,1],[227,1],[206,82],[232,83],[200,1],[330,84],[329,85],[328,1],[107,86],[199,1],[208,1],[237,87],[262,88],[250,89],[251,90],[245,91],[246,1],[253,92],[249,93],[248,94],[247,95],[252,96],[302,1],[298,97],[321,1],[223,98],[221,99],[211,1],[212,1],[218,100],[215,1],[214,101],[213,1],[220,102],[219,1],[217,100],[216,101],[209,1],[195,103],[139,1],[153,104],[110,1],[169,105],[171,106],[170,106],[141,107],[140,1],[143,108],[142,109],[121,1],[172,110],[176,111],[174,111],[112,1],[119,112],[151,113],[150,1],[160,114],[114,115],[146,1],[190,116],[192,1],[163,117],[165,118],[184,115],[122,119],[134,120],[113,1],[149,1],[186,1],[156,121],[155,122],[173,111],[177,123],[175,124],[191,1],[158,1],[131,125],[123,126],[124,1],[120,127],[147,128],[148,128],[154,1],[111,1],[117,1],[133,1],[162,1],[193,129],[128,110],[129,130],[178,106],[180,131],[179,131],[118,1],[108,1],[132,1],[130,110],[161,1],[189,1],[127,1],[125,132],[126,1],[164,1],[157,1],[185,133],[137,1],[135,134],[136,134],[152,110],[115,1],[181,111],[183,123],[182,124],[168,110],[187,1],[166,135],[159,1],[145,1],[188,1],[194,1],[167,1],[109,1],[144,1],[138,1],[116,134],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[1,1],[10,1],[52,1],[244,1],[325,136],[239,137],[240,138],[323,139],[320,140],[224,141],[301,142],[324,143],[259,144],[260,145],[304,146],[226,32],[303,147],[305,1],[196,148],[225,1],[261,1],[198,1],[197,1],[306,1],[202,149],[263,150],[300,1],[243,1],[241,1],[255,151],[242,152],[254,1],[256,153],[258,154],[257,155]],"exportedModulesMap":[[322,1],[272,2],[265,3],[266,3],[269,4],[264,5],[268,6],[267,7],[274,2],[270,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,2],[296,2],[297,8],[271,2],[273,2],[275,9],[201,1],[234,10],[331,11],[327,1],[233,12],[229,13],[235,14],[204,15],[238,1],[210,16],[308,17],[309,18],[307,19],[310,20],[311,21],[312,22],[313,23],[314,24],[315,25],[316,26],[317,27],[318,28],[319,29],[231,30],[230,31],[203,1],[326,1],[205,1],[207,32],[53,33],[54,33],[56,34],[57,35],[58,36],[59,37],[60,38],[61,39],[62,40],[63,41],[64,42],[65,43],[66,43],[68,44],[67,45],[69,44],[70,46],[71,47],[55,48],[105,1],[72,49],[73,50],[74,51],[106,52],[75,53],[76,54],[77,55],[78,56],[79,57],[80,58],[81,59],[82,60],[83,61],[84,62],[85,62],[86,63],[87,64],[89,65],[88,66],[90,67],[91,68],[92,1],[93,69],[94,70],[95,71],[96,72],[97,73],[98,74],[99,75],[100,76],[101,77],[102,78],[103,79],[104,80],[222,1],[236,44],[299,81],[228,1],[227,1],[206,82],[232,83],[200,1],[330,84],[329,85],[328,1],[107,86],[199,1],[208,1],[237,87],[262,88],[250,89],[251,90],[245,91],[246,1],[253,92],[249,93],[248,94],[247,95],[252,96],[302,1],[298,97],[321,1],[223,98],[221,99],[211,1],[212,1],[218,100],[215,1],[214,101],[213,1],[220,102],[219,1],[217,100],[216,101],[209,1],[195,103],[139,1],[153,104],[110,1],[169,105],[171,106],[170,106],[141,107],[140,1],[143,108],[142,109],[121,1],[172,110],[176,111],[174,111],[112,1],[119,112],[151,113],[150,1],[160,114],[114,115],[146,1],[190,116],[192,1],[163,117],[165,118],[184,115],[122,119],[134,120],[113,1],[149,1],[186,1],[156,121],[155,122],[173,111],[177,123],[175,124],[191,1],[158,1],[131,125],[123,126],[124,1],[120,127],[147,128],[148,128],[154,1],[111,1],[117,1],[133,1],[162,1],[193,129],[128,110],[129,130],[178,106],[180,131],[179,131],[118,1],[108,1],[132,1],[130,110],[161,1],[189,1],[127,1],[125,132],[126,1],[164,1],[157,1],[185,133],[137,1],[135,134],[136,134],[152,110],[115,1],[181,111],[183,123],[182,124],[168,110],[187,1],[166,135],[159,1],[145,1],[188,1],[194,1],[167,1],[109,1],[144,1],[138,1],[116,134],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[1,1],[10,1],[52,1],[244,1],[325,156],[239,137],[240,138],[323,139],[320,140],[224,141],[301,142],[324,143],[259,144],[260,145],[304,146],[226,32],[303,147],[305,1],[196,148],[225,1],[261,1],[198,1],[197,1],[306,1],[202,149],[263,150],[300,1],[243,1],[241,1],[255,151],[242,152],[254,1],[256,153],[258,154],[257,155]],"semanticDiagnosticsPerFile":[322,272,265,266,269,264,268,267,274,270,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,271,273,275,201,234,331,327,233,229,235,204,238,210,308,309,307,310,311,312,313,314,315,316,317,318,319,231,230,203,326,205,207,53,54,56,57,58,59,60,61,62,63,64,65,66,68,67,69,70,71,55,105,72,73,74,106,75,76,77,78,79,80,81,82,83,84,85,86,87,89,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,222,236,299,228,227,206,232,200,330,329,328,107,199,208,237,262,250,251,245,246,253,249,248,247,252,302,298,321,223,221,211,212,218,215,214,213,220,219,217,216,209,195,139,153,110,169,171,170,141,140,143,142,121,172,176,174,112,119,151,150,160,114,146,190,192,163,165,184,122,134,113,149,186,156,155,173,177,175,191,158,131,123,124,120,147,148,154,111,117,133,162,193,128,129,178,180,179,118,108,132,130,161,189,127,125,126,164,157,185,137,135,136,152,115,181,183,182,168,187,166,159,145,188,194,167,109,144,138,116,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,36,41,42,37,38,39,40,8,46,43,44,45,47,9,48,49,50,51,1,10,52,244,325,239,240,323,320,224,301,324,259,260,304,226,303,305,196,225,261,198,197,306,202,263,300,243,241,255,242,254,256,258,257]},"version":"4.7.4"}