@witnet/sdk 3.0.7 → 3.1.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/.env_witnet CHANGED
@@ -1,4 +1,5 @@
1
1
  ### @witnet/sdk
2
+ WITNET_SDK_DRY_RUN_DETACHED=
2
3
  WITNET_SDK_FARM_NODES=
3
4
  WITNET_SDK_KERMIT_URL
4
5
  WITNET_SDK_PROVIDER_URL=
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/sdk",
3
- "version": "3.0.7",
3
+ "version": "3.1.1",
4
4
  "description": "Typescript library and CLI tooling for Web3 buidlers willing to interact with the Witnet blockchain.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -68,9 +68,9 @@
68
68
  "cbor": "^10.0.11",
69
69
  "commander": "^14.0.2",
70
70
  "dotenv": "^17.2.3",
71
- "ethers": "^6.15.0",
71
+ "ethers": "^6.16.0",
72
72
  "graphql-query-compress": "1.2.4",
73
- "inquirer": "^12.10.0",
73
+ "inquirer": "^12.11.1",
74
74
  "json-bigint": "^1.0.0",
75
75
  "keccak256": "^1.0.6",
76
76
  "lodash.merge": "^4.6.2",
@@ -83,13 +83,13 @@
83
83
  "secp256k1": "^5.0.1"
84
84
  },
85
85
  "devDependencies": {
86
- "@biomejs/biome": "^2.3.4",
86
+ "@biomejs/biome": "^2.3.10",
87
87
  "@types/cbor": "^5.0.1",
88
88
  "@types/json-bigint": "^1.0.4",
89
- "@types/node": "^24.10.0",
89
+ "@types/node": "^24.10.4",
90
90
  "@types/promise-poller": "^1.7.4",
91
91
  "cross-env": "10.0.0",
92
- "protobufjs-cli": "^1.1.3",
92
+ "protobufjs-cli": "^1.2.0",
93
93
  "typescript": "^5.9.3"
94
94
  },
95
95
  "pnpm": {
@@ -112,7 +112,7 @@ export function cmd(timeout, ...commands) {
112
112
  return new Promise((resolve, reject) => {
113
113
  const [bin, ...args] = commands;
114
114
  const child = spawn(bin, args, {
115
- detached: process.platform !== "win32",
115
+ detached: process.env.WITSDK_DRY_RUN_DETACHED || false,
116
116
  shell: process.platform === "win32",
117
117
  stdio: ["ignore", "pipe", "pipe"],
118
118
  env: {
@@ -143,7 +143,7 @@ export function cmd(timeout, ...commands) {
143
143
  return;
144
144
  finished = true;
145
145
  killTree();
146
- reject(new Error(`npx command timed out after ${commas(timeout)} ms`));
146
+ reject(new Error(`npx shell command timed out after ${commas(timeout)} ms`));
147
147
  }, timeout)
148
148
  : null;
149
149
  child.stdout.on("data", (d) => (stdout += d.toString()));
@@ -873,4 +873,4 @@ export function unescapeSlashes(str) {
873
873
  }
874
874
  return parsedStr;
875
875
  }
876
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0MsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakMsR0FBRyxDQUFDLE9BQU8sQ0FBQyw2RUFBNkUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sTUFBTSxHQUNYLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENB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S0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ3BELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ3JELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ25ELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBRXRELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2pELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2xELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3BELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ25ELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdB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Q0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPO0lBQzFDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM3QyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RixJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDM0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDckMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxNQUFNLGNBQWMsR0FBRyxPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBQyxNQUFNO1FBQ2IsT0FBTyxFQUFFLE1BQU07WUFDZixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMzQixJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2pILElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2pDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0YsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0osSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0QsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNqRCxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDekMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLEtBQUssQ0FBQztZQUNWLElBQUksT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxLQUFLO29CQUNKLE9BQU8sSUFBSSxLQUFLLFFBQVE7d0JBQ3ZCLENBQUMsQ0FBQyxLQUFLO3dCQUNQLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQjs0QkFDNUQsQ0FBQyxDQUFDLE1BQU07NEJBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDZixDQUFDO1lBQ0QsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixDQUFDO2dCQUNELElBQUksSUFBSSxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMzQyxJQUFJLE9BQU8sRUFBRSxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDM0QsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3RFLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEUsQ0FBQztZQUNELElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSztJQUN4QyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2IsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLEtBQUs7WUFDVCxPQUFPLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsS0FBSyxJQUFJO1lBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5QyxLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxPQUFPO1lBQ1gsT0FBTyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEM7WUFDQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxLQUFLO0lBQy9DLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDYixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssS0FBSztZQUNULE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqQyxLQUFLLElBQUk7WUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE9BQU87WUFDWCxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsS0FBSyxXQUFXO1lBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdEO1lBQ0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0YsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxPQUFPO0lBQ25ELElBQUksT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUFDLE9BQU87SUFDckQsTUFBTSxRQUFRLEdBQUc7UUFDaEIsT0FBTyxFQUFFLG1CQUFtQjtRQUM1Qix1Q0FBdUM7UUFDdkMsdUNBQXVDO1FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsS0FBSyxFQUFFLDJCQUEyQjtLQUNsQyxDQUFDO0lBQ0YsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxJQUFJLE9BQU87UUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUUsT0FBTyxDQUFDLElBQUksQ0FDWCxvQkFBb0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLENBQzFHLENBQUM7UUFDRixPQUFPLENBQUMsSUFBSSxDQUNYLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsQ0FDeEosQ0FBQztJQUNILENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE9BQU87SUFDOUMsTUFBTSxRQUFRLEdBQUc7UUFDaEIsV0FBVyxFQUFFLG1CQUFtQjtRQUNoQyxhQUFhLEVBQUUsbUJBQW1CO0tBQ2xDLENBQUM7SUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUYsSUFBSSxPQUFPLEVBQUUsT0FBTztRQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4RixJQUFJLE9BQU8sRUFBRSxPQUFPO1FBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLElBQUksT0FBTyxFQUFFLE1BQU07UUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEYsSUFBSSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDekIsSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztTQUFNLENBQUM7UUFDUCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUUsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsSUFBSSxDQUNYLG9CQUFvQixNQUFNLENBQUMsS0FBSyxDQUMvQixPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM5RSxFQUFFLENBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLE9BQU8sRUFBRSxJQUFJO1FBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvRixJQUFJLE9BQU8sRUFBRSxLQUFLO1FBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRyxJQUFJLE9BQU8sRUFBRSxNQUFNO1FBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsT0FBTztJQUMxRCxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRSxJQUFJLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRSxJQUFJLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQiwyQkFBMkI7UUFDM0IsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2YsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3RDtnQkFDQyxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsT0FBTyxFQUFFLEtBQUs7YUFDZDtTQUNELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsT0FBTyxPQUFPLENBQUM7UUFDaEIsQ0FBQztJQUNGLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixPQUFPLEdBQUcsTUFBTSxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDOUMsSUFBSSxPQUFPLEVBQUUsS0FBSyxJQUFJLE9BQU8sRUFBRSxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUQsT0FBTyxHQUFHLE1BQU0sV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQzVELGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxJQUFJLENBQUM7Z0JBQzFDLFlBQVksRUFBRSw0QkFBNEI7Z0JBQzFDLGNBQWMsRUFBRSw4QkFBOEI7YUFDOUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLElBQUksR0FBRztnQkFDWixNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU07Z0JBQ3ZCLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQzthQUM5RCxDQUFDO1lBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDO0lBQ0YsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLEdBQUcsRUFBRSxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0QsTUFBTSxHQUFHLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBRztJQUNsQywyREFBMkQ7SUFDM0Qsd0RBQXdEO0lBQ3hELElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFM0QsdURBQXVEO0lBQ3ZELHFDQUFxQztJQUNyQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVoRSxJQUFJLENBQUM7UUFDSixTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDYixPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlYywgc3Bhd24gfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCAqIGFzIG5ldCBmcm9tIFwibm9kZTpuZXRcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgKiBhcyByZWFkbGluZSBmcm9tIFwibm9kZTpyZWFkbGluZVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5jb25zdCBfVE9PTEtJVF9SVU5fVElNRU9VVF9NU0VDUyA9IDMwMDAwO1xuXG5leHBvcnQgY29uc3QgY29sb3JzdHJpcCA9IChzdHIpID0+XG5cdHN0ci5yZXBsYWNlKC9bXFx1MDAxYlxcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csIFwiXCIpO1xuXG5leHBvcnQgY29uc3QgY29tbWFzID0gKG51bWJlcikgPT4ge1xuXHRjb25zdCBwYXJ0cyA9IG51bWJlci50b1N0cmluZygpLnNwbGl0KFwiLlwiKTtcblx0Y29uc3QgcmVzdWx0ID1cblx0XHRwYXJ0cy5sZW5ndGggPD0gMVxuXHRcdFx0PyBgJHtwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9YFxuXHRcdFx0OiBgJHtwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9LiR7cGFydHNbMV19YDtcblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0ZpeGVkVHJ1bmMoeCwgbikge1xuXHRjb25zdCB2ID0gKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiID8geCA6IHgudG9TdHJpbmcoKSkuc3BsaXQoXCIuXCIpO1xuXHRpZiAobiA8PSAwKSByZXR1cm4gdlswXTtcblx0bGV0IGYgPSB2WzFdIHx8IFwiXCI7XG5cdGlmIChmLmxlbmd0aCA+IG4pIHJldHVybiBgJHt2WzBdfS4ke2Yuc3Vic3RyKDAsIG4pfWA7XG5cdHdoaWxlIChmLmxlbmd0aCA8IG4pIGYgKz0gXCIwXCI7XG5cdHJldHVybiBgJHt2WzBdfS4ke2Z9YDtcbn1cblxuZXhwb3J0IGNvbnN0IHdob2xlX3dpdHMgPSAobnVtYmVyLCBkaWdpdHMpID0+IHtcblx0Y29uc3QgbG9va3VwID0gW1xuXHRcdHsgdmFsdWU6IDFuLCBzeW1ib2w6IFwicGVkcm9zXCIgfSxcblx0XHR7IHZhbHVlOiAxMG4gKiogNm4sIHN5bWJvbDogXCJtV2l0c1wiIH0sXG5cdFx0eyB2YWx1ZTogMTBuICoqIDluLCBzeW1ib2w6IFwiIFdpdHNcIiB9LFxuXHRcdHsgdmFsdWU6IDEwbiAqKiAxMm4sIHN5bWJvbDogXCJLV2l0c1wiIH0sXG5cdFx0eyB2YWx1ZTogMTBuICoqIDE1biwgc3ltYm9sOiBcIk1XaXRzXCIgfSxcblx0XTtcblx0Ly8gY29uc3QgcmVnZXhwID0gL1xcLjArJHwoPzw9XFwuWzAtOV0pMCskL1xuXHRjb25zdCBpdGVtID0gbG9va3VwLmZpbmRMYXN0KChpdGVtKSA9PiBudW1iZXIgPj0gaXRlbS52YWx1ZSk7XG5cdGNvbnN0IHF1b3RpZW50ID0gaXRlbSA/IE51bWJlcihCaWdJbnQobnVtYmVyKSAvIGl0ZW0udmFsdWUpIDogbnVtYmVyLnRvU3RyaW5nKCk7XG5cdGNvbnN0IGRlY2ltYWxzID0gaXRlbSA/IChpdGVtLnZhbHVlICsgQmlnSW50KG51bWJlcikgLSBCaWdJbnQocXVvdGllbnQpICogaXRlbS52YWx1ZSkudG9TdHJpbmcoKS5zbGljZSgxKSA6IFwiXCI7XG5cdHJldHVybiBpdGVtXG5cdFx0PyBgJHtjb21tYXMocXVvdGllbnQpfSR7ZGVjaW1hbHMgIT09IFwiXCIgPyBgLiR7ZGVjaW1hbHMuc2xpY2UoMCwgZGlnaXRzKX1gIDogXCJcIn0gJHtpdGVtLnN5bWJvbH1gXG5cdFx0OiBcIihubyBjb2lucylcIjtcbn07XG5cbmNvbnN0IGJibHVlID0gKHN0cikgPT4gYFxceDFiWzE7OTg7NDRtJHtzdHJ9XFx4MWJbMDswOzBtYDtcbmNvbnN0IGJjeWFuID0gKHN0cikgPT4gYFxceDFiWzM4OzQ2bSR7c3RyfVxceDFiWzA7MG1gO1xuY29uc3QgYmdyZWVuID0gKHN0cikgPT4gYFxceDFiWzMwOzQybSR7c3RyfVxceDFiWzA7MG1gO1xuY29uc3QgYnJlZCA9IChzdHIpID0+IGBcXHgxYlszMDs0MW0ke3N0cn1cXHgxYlswOzBtYDtcbmNvbnN0IGJ2aW9sZXQgPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDVtJHtzdHJ9XFx4MWJbMDswbWA7XG5cbmNvbnN0IGxjeWFuID0gKHN0cikgPT4gYFxceDFiWzE7OTZtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbGdyYXkgPSAoc3RyKSA9PiBgXFx4MWJbMTs5MG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBsZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbMTs5Mm0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBsbWFnZW50YSA9IChzdHIpID0+IGBcXHgxYlsxOzk1bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGx5ZWxsb3cgPSAoc3RyKSA9PiBgXFx4MWJbMTs5M20ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtYmx1ZSA9IChzdHIpID0+IGBcXHgxYls5NG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtY3lhbiA9IChzdHIpID0+IGBcXHgxYls5Nm0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbOTJtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbW1hZ2VudGEgPSAoc3RyKSA9PiBgXFx4MWJbMDs5NW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtcmVkID0gKHN0cikgPT4gYFxceDFiWzkxbSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IG15ZWxsb3cgPSAoc3RyKSA9PiBgXFx4MWJbOTNtJHtzdHJ9XFx4MWJbMG1gO1xuXG5jb25zdCBibHVlID0gKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGN5YW4gPSAoc3RyKSA9PiBgXFx4MWJbMzZtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgZ3JheSA9IChzdHIpID0+IGBcXHgxYls5MG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBncmVlbiA9IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtYWdlbnRhID0gKHN0cikgPT4gYFxceDFiWzA7MzVtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3Qgbm9ybWFsID0gKHN0cikgPT4gYFxceDFiWzk4bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IHJlZCA9IChzdHIpID0+IGBcXHgxYlszMW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCB3aGl0ZSA9IChzdHIpID0+IGBcXHgxYlsxOzk4bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IHllbGxvdyA9IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWA7XG5cbmV4cG9ydCBjb25zdCBjb2xvcnMgPSB7XG5cdGJibHVlLFxuXHRiY3lhbixcblx0YmdyZWVuLFxuXHRicmVkLFxuXHRidmlvbGV0LFxuXHRsY3lhbixcblx0bGdyYXksXG5cdGxncmVlbixcblx0bG1hZ2VudGEsXG5cdGx5ZWxsb3csXG5cdG1ibHVlLFxuXHRtY3lhbixcblx0bWdyZWVuLFxuXHRtbWFnZW50YSxcblx0bXJlZCxcblx0bXllbGxvdyxcblx0Ymx1ZSxcblx0Y3lhbixcblx0Z3JheSxcblx0Z3JlZW4sXG5cdG1hZ2VudGEsXG5cdG5vcm1hbCxcblx0cmVkLFxuXHR3aGl0ZSxcblx0eWVsbG93LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvdW50TGVhdmVzKHQsIG9iaikge1xuXHRpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSByZXR1cm4gMDtcblx0aWYgKG9iaiBpbnN0YW5jZW9mIHQpIHJldHVybiAxO1xuXHRpZiAoQXJyYXkuaXNBcnJheShvYmopKSByZXR1cm4gb2JqLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyBjb3VudExlYXZlcyh0LCBpdGVtKSwgMCk7XG5cdGVsc2UgcmV0dXJuIE9iamVjdC52YWx1ZXMob2JqKS5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4gc3VtICsgY291bnRMZWF2ZXModCwgaXRlbSksIDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlRXh0cmFGbGFncyhhcmdzKSB7XG5cdHJldHVybiBhcmdzLmZpbHRlcigoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbWQodGltZW91dCwgLi4uY29tbWFuZHMpIHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRjb25zdCBbYmluLCAuLi5hcmdzXSA9IGNvbW1hbmRzO1xuXHRcdGNvbnN0IGNoaWxkID0gc3Bhd24oYmluLCBhcmdzLCB7XG5cdFx0XHRkZXRhY2hlZDogcHJvY2Vzcy5wbGF0Zm9ybSAhPT0gXCJ3aW4zMlwiLFxuXHRcdFx0c2hlbGw6IHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIixcblx0XHRcdHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiXSxcblx0XHRcdGVudjoge1xuXHRcdFx0XHQuLi5wcm9jZXNzLmVudixcblx0XHRcdFx0TlBNX0NPTkZJR19ZRVM6IFwidHJ1ZVwiLCAvLyA9PiBwcmV2ZW50cyBucHggZnJvbSBzcGF3bmluZyBpbnRlcmFjdGl2ZSBwcm9tcHRzXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0bGV0IHN0ZG91dCA9IFwiXCI7XG5cdFx0bGV0IHN0ZGVyciA9IFwiXCI7XG5cdFx0bGV0IGZpbmlzaGVkID0gZmFsc2U7XG5cblx0XHRjb25zdCBraWxsVHJlZSA9ICgpID0+IHtcblx0XHRcdGlmICghY2hpbGQucGlkKSByZXR1cm47XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSB7XG5cdFx0XHRcdFx0c3Bhd24oXCJ0YXNra2lsbFwiLCBbXCIvUElEXCIsIGNoaWxkLnBpZC50b1N0cmluZygpLCBcIi9UXCIsIFwiL0ZcIl0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGtpbGwgZW50aXJlIHByb2Nlc3MgZ3JvdXBcblx0XHRcdFx0XHRwcm9jZXNzLmtpbGwoLWNoaWxkLnBpZCwgXCJTSUdLSUxMXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIHt9XG5cdFx0fTtcblxuXHRcdGNvbnN0IHRpbWVyID1cblx0XHRcdHRpbWVvdXQgPiAwXG5cdFx0XHRcdD8gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoZmluaXNoZWQpIHJldHVybjtcblx0XHRcdFx0XHRcdGZpbmlzaGVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGtpbGxUcmVlKCk7XG5cdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGBucHggY29tbWFuZCB0aW1lZCBvdXQgYWZ0ZXIgJHtjb21tYXModGltZW91dCl9IG1zYCkpO1xuXHRcdFx0XHRcdH0sIHRpbWVvdXQpXG5cdFx0XHRcdDogbnVsbDtcblxuXHRcdGNoaWxkLnN0ZG91dC5vbihcImRhdGFcIiwgKGQpID0+IChzdGRvdXQgKz0gZC50b1N0cmluZygpKSk7XG5cdFx0Y2hpbGQuc3RkZXJyLm9uKFwiZGF0YVwiLCAoZCkgPT4gKHN0ZGVyciArPSBkLnRvU3RyaW5nKCkpKTtcblxuXHRcdGNoaWxkLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuXHRcdFx0aWYgKGZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHRmaW5pc2hlZCA9IHRydWU7XG5cdFx0XHRpZiAodGltZXIpIGNsZWFyVGltZW91dCh0aW1lcik7XG5cdFx0XHRraWxsVHJlZSgpO1xuXHRcdFx0cmVqZWN0KGVycik7XG5cdFx0fSk7XG5cblx0XHRjaGlsZC5vbihcImNsb3NlXCIsIChjb2RlLCBzaWduYWwpID0+IHtcblx0XHRcdGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuXHRcdFx0ZmluaXNoZWQgPSB0cnVlO1xuXHRcdFx0aWYgKHRpbWVyKSBjbGVhclRpbWVvdXQodGltZXIpO1xuXG5cdFx0XHRpZiAoc2lnbmFsKSB7XG5cdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYG5weCB0ZXJtaW5hdGVkIGJ5IHNpZ25hbCAke3NpZ25hbH1gKSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGNvZGUgIT09IDApIHtcblx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgbnB4IGZhaWxlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9XFxuJHtzdGRlcnJ9YCkpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHJlc29sdmUoc3Rkb3V0KTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjUmFkb25CeXRlY29kZShieXRlY29kZSwgdGltZW91dCwgLi4uZmxhZ3MpIHtcblx0aWYgKCFpc0hleFN0cmluZyhieXRlY29kZSkpIHtcblx0XHR0aHJvdyBFdmFsRXJyb3IoXCJpbnZhbGlkIGhleCBzdHJpbmdcIik7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgbnB4ID0gb3MudHlwZSgpID09PSBcIldpbmRvd3NfTlRcIiA/IFwibnB4LmNtZFwiIDogXCJucHhcIjtcblx0XHRyZXR1cm4gY21kKHRpbWVvdXQsIG5weCwgXCJ3aXRzZGtcIiwgXCJyYWRvblwiLCBcImRyeS1ydW5cIiwgYnl0ZWNvZGUsIC4uLmZsYWdzKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZyb21BcmdzKGFyZ3MsIGZsYWdzKSB7XG5cdGNvbnN0IGN1cmF0ZWQgPSB7fTtcblx0aWYgKGFyZ3MgJiYgZmxhZ3MpIHtcblx0XHRPYmplY3Qua2V5cyhmbGFncykuZm9yRWFjaCgoZmxhZykgPT4ge1xuXHRcdFx0Y29uc3QgZmxhZ0luZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7ZmxhZ31gKTtcblx0XHRcdGlmIChmbGFnSW5kZXggPj0gMCkge1xuXHRcdFx0XHRpZiAoZmxhZ3NbZmxhZ10ucGFyYW0pIHtcblx0XHRcdFx0XHRjdXJhdGVkW2ZsYWddID0gYXJnc1tmbGFnSW5kZXhdO1xuXHRcdFx0XHRcdGlmICghYXJnc1tmbGFnSW5kZXggKyAxXSB8fCBhcmdzW2ZsYWdJbmRleCArIDFdLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuXHRcdFx0XHRcdFx0dGhyb3cgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIGZvciAtLSR7ZmxhZ31gKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y3VyYXRlZFtmbGFnXSA9IGFyZ3NbZmxhZ0luZGV4ICsgMV07XG5cdFx0XHRcdFx0XHRhcmdzLnNwbGljZShmbGFnSW5kZXgsIDIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjdXJhdGVkW2ZsYWddID0gdHJ1ZTtcblx0XHRcdFx0XHRhcmdzLnNwbGljZShmbGFnSW5kZXgsIDEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIFthcmdzLCBjdXJhdGVkXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21IZXhTdHJpbmcoaGV4U3RyaW5nKSB7XG5cdGlmIChoZXhTdHJpbmcuc3RhcnRzV2l0aChcIjB4XCIpKSBoZXhTdHJpbmcgPSBoZXhTdHJpbmcuc2xpY2UoMik7XG5cdHJldHVybiBVaW50OEFycmF5LmZyb20oaGV4U3RyaW5nLm1hdGNoKC8uezEsMn0vZykubWFwKChieXRlKSA9PiBwYXJzZUludChieXRlLCAxNikpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlwSXNQcml2YXRlT3JMb2NhbGhvc3QoaXApIHtcblx0aWYgKGlwLnN1YnN0cmluZygwLCA3KSA9PT0gXCI6OmZmZmY6XCIpIHtcblx0XHRpcCA9IGlwLnN1YnN0cmluZyg3KTtcblx0fVxuXG5cdGlmIChuZXQuaXNJUHY0KGlwKSkge1xuXHRcdC8vIGNoZWNrIGxvY2FsaG9zdFxuXHRcdGlmIChpcCA9PT0gXCIxMjcuMC4wLjFcIikge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0Ly8gICAgICAgICAxMC4wLjAuMCAtIDEwLjI1NS4yNTUuMjU1ICAgICAgICB8fCAgIDE3Mi4xNi4wLjAgLSAxNzIuMzEuMjU1LjI1NSAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgICAgMTkyLjE2OC4wLjAgLSAxOTIuMTY4LjI1NS4yNTVcblx0XHRyZXR1cm4gKFxuXHRcdFx0L14oMTApXFwuKC4qKVxcLiguKilcXC4oLiopJC8udGVzdChpcCkgfHxcblx0XHRcdC9eKDE3MilcXC4oMVs2LTldfDJbMC05XXwzWzAtMV0pXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKSB8fFxuXHRcdFx0L14oMTkyKVxcLigxNjgpXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKVxuXHRcdCk7XG5cdH1cblxuXHQvLyBlbHNlOiBpcCBpcyBJUHY2XG5cdGNvbnN0IGZpcnN0V29yZCA9IGlwLnNwbGl0KFwiOlwiKS5maW5kKChlbCkgPT4gISFlbCk7IC8vIGdldCBmaXJzdCBub3QgZW1wdHkgd29yZFxuXG5cdC8vIGVxdWl2YWxlbnQgb2YgMTI3LjAuMC4xIGluIElQdjZcblx0aWYgKGlwID09PSBcIjo6MVwiKSByZXR1cm4gdHJ1ZTtcblx0Ly8gVGhlIG9yaWdpbmFsIElQdjYgU2l0ZSBMb2NhbCBhZGRyZXNzZXMgKGZlYzA6Oi8xMCkgYXJlIGRlcHJlY2F0ZWQuIFJhbmdlOiBmZWMwIC0gZmVmZlxuXHRlbHNlIGlmICgvXmZlW2MtZl1bMC1mXSQvLnRlc3QoZmlyc3RXb3JkKSkgcmV0dXJuIHRydWU7XG5cdC8vIFRoZXNlIGRheXMgVW5pcXVlIExvY2FsIEFkZHJlc3NlcyAoVUxBKSBhcmUgdXNlZCBpbiBwbGFjZSBvZiBTaXRlIExvY2FsLlxuXHQvLyBSYW5nZTogZmMwMCAtIGZjZmZcblx0ZWxzZSBpZiAoL15mY1swLWZdezJ9JC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZTtcblx0Ly8gUmFuZ2U6IGZkMDAgLSBmY2ZmXG5cdGVsc2UgaWYgKC9eZmRbMC1mXXsyfSQvLnRlc3QoZmlyc3RXb3JkKSkgcmV0dXJuIHRydWU7XG5cdC8vIExpbmsgbG9jYWwgYWRkcmVzc2VzIChwcmVmaXhlZCB3aXRoIGZlODApIGFyZSBub3Qgcm91dGFibGVcblx0ZWxzZSBpZiAoZmlyc3RXb3JkID09PSBcImZlODBcIikgcmV0dXJuIHRydWU7XG5cdC8vIERpc2NhcmQgUHJlZml4XG5cdGVsc2UgaWYgKGZpcnN0V29yZCA9PT0gXCIxMDBcIikgcmV0dXJuIHRydWU7XG5cblx0Ly8gQW55IG90aGVyIElQIGFkZHJlc3MgaXMgbm90IFVuaXF1ZSBMb2NhbCBBZGRyZXNzIChVTEEpXG5cdHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSGV4U3RyaW5nT2ZMZW5ndGgoc3RyLCBsZW5ndGgpIHtcblx0cmV0dXJuIChcblx0XHQoaXNIZXhTdHJpbmcoc3RyKSAmJiAoKHN0ci5zdGFydHNXaXRoKFwiMHhcIikgJiYgc3RyLnNsaWNlKDIpLmxlbmd0aCA9PT0gbGVuZ3RoICogMikgfHwgc3RyLmxlbmd0aCA9PT0gbGVuZ3RoICogMikpIHx8XG5cdFx0aXNXaWxkY2FyZChzdHIpXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hleFN0cmluZyhzdHIpIHtcblx0cmV0dXJuIChcblx0XHQodHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJlxuXHRcdFx0KChzdHIuc3RhcnRzV2l0aChcIjB4XCIpICYmIC9eW2EtZkEtRjAtOV0rJC9pLnRlc3Qoc3RyLnNsaWNlKDIpKSkgfHwgL15bYS1mQS1GMC05XSskL2kudGVzdChzdHIpKSkgfHxcblx0XHRpc1dpbGRjYXJkKHN0cilcblx0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4U3RyaW5nKGJ1ZmZlciwgcHJlZml4MHggPSBmYWxzZSkge1xuXHRpZiAoYnVmZmVyIGluc3RhbmNlb2YgVWludDhBcnJheSkgYnVmZmVyID0gQnVmZmVyLmZyb20oYnVmZmVyKTtcblx0cmV0dXJuIChcblx0XHQocHJlZml4MHggPyBcIjB4XCIgOiBcIlwiKSArXG5cdFx0QXJyYXkucHJvdG90eXBlLm1hcFxuXHRcdFx0LmNhbGwoYnVmZmVyLCAoeCkgPT4gYDAwJHt4LnRvU3RyaW5nKDE2KX1gLnNsaWNlKC0yKSlcblx0XHRcdC5qb2luKFwiXCIpXG5cdFx0XHQubWF0Y2goL1thLWZBLUYwLTldezJ9L2cpXG5cdFx0XHQuam9pbihcIlwiKVxuXHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VVUkwodXJsKSB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgcGFyc2VkVXJsID0gbmV3IFVSTCh1cmwpO1xuXHRcdHJldHVybiBbYCR7cGFyc2VkVXJsLnByb3RvY29sfS8vYCwgcGFyc2VkVXJsLmhvc3QsIHBhcnNlZFVybC5wYXRobmFtZS5zbGljZSgxKSwgcGFyc2VkVXJsLnNlYXJjaC5zbGljZSgxKV07XG5cdH0gY2F0Y2gge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgVVJMIHdhcyBwcm92aWRlZDogJHt1cmx9YCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZShjbWQsIG1vZHVsZSkge1xuXHRzaG93VXNhZ2VIZWFkbGluZShjbWQpO1xuXHRzaG93VXNhZ2VPcHRpb25zKHsgLi4ubW9kdWxlPy5mbGFncyB9KTtcblx0c2hvd1VzYWdlRmxhZ3MoeyAuLi5tb2R1bGU/LmZsYWdzIH0pO1xuXHRzaG93VXNhZ2VSb3V0ZXIoeyAuLi5tb2R1bGU/LnJvdXRlciB9KTtcblx0c2hvd1VzYWdlRW52YXJzKHsgLi4ubW9kdWxlPy5lbnZhcnMgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VXNhZ2VSb3V0ZXIocm91dGVyKSB7XG5cdGNvbnN0IGNtZHMgPSBPYmplY3QuZW50cmllcyhyb3V0ZXIpO1xuXHRpZiAoY21kcy5sZW5ndGggPiAwKSB7XG5cdFx0Y29uc29sZS5pbmZvKFwiXFxuU1VCQ09NTUFORFM6XCIpO1xuXHRcdGNvbnN0IG1heExlbmd0aCA9IE1hdGgubWF4KC4uLmNtZHMubWFwKChbY21kXSkgPT4gY21kLmxlbmd0aCkpO1xuXHRcdGNtZHMuZm9yRWFjaCgoY21kKSA9PiB7XG5cdFx0XHRjb25zb2xlLmluZm8oXCIgIFwiLCBgJHtjbWRbMF19JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY21kWzBdLmxlbmd0aCl9YCwgXCIgIFwiLCBjbWRbMV0uaGludCk7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZUVycm9yKGNtZCwgc3ViY21kLCBtb2R1bGUsIGVycm9yLCBmbGFncykge1xuXHRzaG93VXNhZ2VTdWJjb21tYW5kKGNtZCwgc3ViY21kLCBtb2R1bGUsIGVycm9yKTtcblx0aWYgKGVycm9yKSB7XG5cdFx0Y29uc29sZS5pbmZvKFwiXFxuRVJST1I6XCIpO1xuXHRcdGlmIChmbGFncz8uZGVidWcpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGNvbG9ycy5yZWQoZXJyb3I/LnN0YWNrPy5zcGxpdChcIlxcblwiKVswXSB8fCBlcnJvcikpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlRW52YXJzKGVudmFycykge1xuXHRpZiAoZW52YXJzKSB7XG5cdFx0ZW52YXJzID0gT2JqZWN0LmVudHJpZXMoZW52YXJzKTtcblx0XHRpZiAoZW52YXJzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnNvbGUuaW5mbyhcIlxcbkVOVkFSUzpcIik7XG5cdFx0XHRjb25zdCBtYXhXaWR0aCA9IE1hdGgubWF4KC4uLmVudmFycy5tYXAoKFtlbnZhcl0pID0+IGVudmFyLmxlbmd0aCkpO1xuXHRcdFx0ZW52YXJzLmZvckVhY2goKFtlbnZhciwgaGludF0pID0+IHtcblx0XHRcdFx0aWYgKGVudmFyLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihcIktFWVwiKSA8IDAgJiYgcHJvY2Vzcy5lbnZbZW52YXJdKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5pbmZvKFxuXHRcdFx0XHRcdFx0XCIgIFwiLFxuXHRcdFx0XHRcdFx0YCR7eWVsbG93KGVudmFyLnRvVXBwZXJDYXNlKCkpfSR7XCIgXCIucmVwZWF0KG1heFdpZHRoIC0gZW52YXIubGVuZ3RoKX1gLFxuXHRcdFx0XHRcdFx0YCA9PiBTZXR0bGVkIHRvIFwiJHtteWVsbG93KHByb2Nlc3MuZW52W2VudmFyXSl9XCJgLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y29uc29sZS5pbmZvKFwiICBcIiwgYCR7eWVsbG93KGVudmFyLnRvVXBwZXJDYXNlKCkpfSR7XCIgXCIucmVwZWF0KG1heFdpZHRoIC0gZW52YXIubGVuZ3RoKX1gLCBgICR7aGludH1gKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VXNhZ2VGbGFncyhmbGFncykge1xuXHRpZiAoZmxhZ3MpIHtcblx0XHRmbGFncyA9IE9iamVjdC5lbnRyaWVzKGZsYWdzKVxuXHRcdFx0LmZpbHRlcigoWywgZmxhZ10pID0+ICFmbGFnPy5wYXJhbSlcblx0XHRcdC5zb3J0KChbYV0sIFtiXSkgPT4ge1xuXHRcdFx0XHRpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdFx0ZWxzZSBpZiAoYSA+IGIpIHJldHVybiAxO1xuXHRcdFx0XHRlbHNlIHJldHVybiAwO1xuXHRcdFx0fSk7XG5cdFx0aWYgKGZsYWdzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnNvbGUuaW5mbyhcIlxcbkZMQUdTOlwiKTtcblx0XHRcdGNvbnN0IG1heExlbmd0aCA9IE1hdGgubWF4KFxuXHRcdFx0XHQuLi5mbGFnc1xuXHRcdFx0XHRcdC5maWx0ZXIoKFssIHsgaGludCB9XSkgPT4gaGludClcblx0XHRcdFx0XHQubWFwKChba2V5LCB7IHBhcmFtIH1dKSA9PiAocGFyYW0gPyBrZXkubGVuZ3RoICsgcGFyYW0ubGVuZ3RoICsgMyA6IGtleS5sZW5ndGgpKSxcblx0XHRcdCk7XG5cdFx0XHRmbGFncy5mb3JFYWNoKChmbGFnKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHN0ciA9IGAke2ZsYWdbMF19JHtmbGFnWzFdLnBhcmFtID8gZ3JheShgIDwke2ZsYWdbMV0ucGFyYW19PmApIDogXCJcIn1gO1xuXHRcdFx0XHRpZiAoZmxhZ1sxXS5oaW50KSB7XG5cdFx0XHRcdFx0Y29uc29sZS5pbmZvKFwiICBcIiwgYC0tJHtzdHJ9JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY29sb3JzdHJpcChzdHIpLmxlbmd0aCl9YCwgXCIgIFwiLCBmbGFnWzFdLmhpbnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZUhlYWRsaW5lKGNtZCwgc3ViY21kLCBtb2R1bGUpIHtcblx0Y29uc29sZS5pbmZvKFwiVVNBR0U6XCIpO1xuXHRpZiAoc3ViY21kKSB7XG5cdFx0bGV0IHBhcmFtcyA9IG1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ucGFyYW1zO1xuXHRcdC8vIGNvbnN0IG9wdGlvbnMgPSBtb2R1bGUucm91dGVyW3N1YmNtZF0/Lm9wdGlvbnNcblx0XHRpZiAocGFyYW1zKSB7XG5cdFx0XHRjb25zdCBvcHRpb25hbGl6ZSA9IChzdHIpID0+XG5cdFx0XHRcdHN0ci5lbmRzV2l0aChcIiAuLi5dXCIpID8gYFs8JHtzdHIuc2xpY2UoMSwgLTUpfT4gLi4uXWAgOiBzdHJbMF0gPT09IFwiW1wiID8gYFs8JHtzdHIuc2xpY2UoMSwgLTEpfT5dYCA6IGA8JHtzdHJ9PmA7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShwYXJhbXMpKSB7XG5cdFx0XHRcdHBhcmFtcyA9IGAke3BhcmFtcy5tYXAoKHBhcmFtKSA9PiBvcHRpb25hbGl6ZShwYXJhbSkpLmpvaW4oXCIgXCIpfSBgO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cGFyYW1zID0gb3B0aW9uYWxpemUocGFyYW1zKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Y29uc29sZS5pbmZvKFxuXHRcdFx0YCAgICR7Y29sb3JzLndoaXRlKGBucHggd2l0c2RrICR7Y21kfWApfSAke2NvbG9ycy53aGl0ZShzdWJjbWQpfSAke3BhcmFtcyA/IGAke2NvbG9ycy5ncmVlbihwYXJhbXMpfSBgIDogXCJcIn1bT1BUSU9OU10gW0ZMQUdTXWAsXG5cdFx0KTtcblx0XHRpZiAobW9kdWxlPy5yb3V0ZXJbc3ViY21kXT8uaGludCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKFwiXFxuREVTQ1JJUFRJT046XCIpO1xuXHRcdFx0Y29uc29sZS5pbmZvKGAgICAke21vZHVsZS5yb3V0ZXJbc3ViY21kXS5oaW50fWApO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRjb25zb2xlLmluZm8oYCAgICR7Y29sb3JzLndoaXRlKGBucHggd2l0c2RrICR7Y21kfWApfSA8U1VCQ09NTUFORD4gLi4uIFtPUFRJT05TXSBbRkxBR1NdYCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZU9wdGlvbnMob3B0aW9ucykge1xuXHRvcHRpb25zID0gT2JqZWN0LmVudHJpZXMob3B0aW9ucylcblx0XHQuZmlsdGVyKChbLCBvcHRpb25dKSA9PiBvcHRpb24/LnBhcmFtKVxuXHRcdC5zb3J0KChbYV0sIFtiXSkgPT4ge1xuXHRcdFx0aWYgKGEgPCBiKSByZXR1cm4gLTE7XG5cdFx0XHRlbHNlIGlmIChhID4gYikgcmV0dXJuIDE7XG5cdFx0XHRlbHNlIHJldHVybiAwO1xuXHRcdH0pO1xuXHRpZiAob3B0aW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0Y29uc29sZS5pbmZvKFwiXFxuT1BUSU9OUzpcIik7XG5cdFx0Y29uc3QgbWF4TGVuZ3RoID0gb3B0aW9uc1xuXHRcdFx0Lm1hcCgob3B0aW9uKSA9PiAob3B0aW9uWzFdLnBhcmFtID8gb3B0aW9uWzFdLnBhcmFtLmxlbmd0aCArIG9wdGlvblswXS5sZW5ndGggKyAzIDogb3B0aW9uWzBdLmxlbmd0aCkpXG5cdFx0XHQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoY3VyciA+IHByZXYgPyBjdXJyIDogcHJldikpO1xuXHRcdG9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG5cdFx0XHRpZiAob3B0aW9uWzFdLmhpbnQpIHtcblx0XHRcdFx0Y29uc3Qgc3RyID0gYCR7b3B0aW9uWzBdfSR7b3B0aW9uWzFdLnBhcmFtID8gZ3JheShgIDwke29wdGlvblsxXS5wYXJhbX0+YCkgOiBcIlwifWA7XG5cdFx0XHRcdGNvbnNvbGUuaW5mbyhcIiAgXCIsIGAtLSR7c3RyfSR7XCIgXCIucmVwZWF0KG1heExlbmd0aCAtIGNvbG9yc3RyaXAoc3RyKS5sZW5ndGgpfWAsIFwiICBcIiwgb3B0aW9uWzFdLmhpbnQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VXNhZ2VTdWJjb21tYW5kKGNtZCwgc3ViY21kLCBtb2R1bGUpIHtcblx0c2hvd1VzYWdlSGVhZGxpbmUoY21kLCBzdWJjbWQsIG1vZHVsZSk7XG5cdHNob3dVc2FnZU9wdGlvbnMoeyAuLi5tb2R1bGU/LmZsYWdzLCAuLi5tb2R1bGUucm91dGVyW3N1YmNtZF0/Lm9wdGlvbnMgfSk7XG5cdHNob3dVc2FnZUZsYWdzKHsgLi4ubW9kdWxlPy5mbGFncywgLi4ubW9kdWxlLnJvdXRlcltzdWJjbWRdPy5vcHRpb25zIH0pO1xuXHRzaG93VXNhZ2VFbnZhcnMobW9kdWxlLnJvdXRlcltzdWJjbWRdPy5lbnZhcnMgfHwgbW9kdWxlPy5lbnZhcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1ZlcnNpb24oKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtjb2xvcnMubWN5YW4oYFdpdG5ldCBTREsgdiR7cmVxdWlyZShcIi4uLy4uL3BhY2thZ2UuanNvblwiKS52ZXJzaW9ufWApfWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2lsZGNhcmRzQ291bnRGcm9tU3RyaW5nKHN0cikge1xuXHRsZXQgbWF4QXJnc0luZGV4ID0gMDtcblx0aWYgKHN0ciAmJiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiKSB7XG5cdFx0bGV0IG1hdGNoO1xuXHRcdGNvbnN0IHJlZ2V4cCA9IC9cXFxcXFxkXFxcXC9nO1xuXHRcdHdoaWxlICgobWF0Y2ggPSByZWdleHAuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuXHRcdFx0Y29uc3QgYXJnc0luZGV4ID0gcGFyc2VJbnQobWF0Y2hbMF1bMV0sIDEwKSArIDE7XG5cdFx0XHRpZiAoYXJnc0luZGV4ID4gbWF4QXJnc0luZGV4KSBtYXhBcmdzSW5kZXggPSBhcmdzSW5kZXg7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBtYXhBcmdzSW5kZXg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZHMpIHtcblx0aWYgKHR5cGVvZiB3aWxkY2FyZHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHRPYmplY3QudmFsdWVzKHdpbGRjYXJkcykuZm9yRWFjaCgod2lsZGNhcmQpID0+IHtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHdpbGRjYXJkKSlcblx0XHRcdFx0d2lsZGNhcmQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuXHRcdFx0XHRcdGNoZWNrUnBjV2lsZGNhcmRzKGl0ZW0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdGVsc2UgY2hlY2tScGNXaWxkY2FyZHMod2lsZGNhcmQpO1xuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkod2lsZGNhcmRzKSkge1xuXHRcdHdpbGRjYXJkcy5mb3JFYWNoKCh3aWxkY2FyZCkgPT4ge1xuXHRcdFx0Y2hlY2tScGNXaWxkY2FyZHMod2lsZGNhcmQpO1xuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiB3aWxkY2FyZHMgPT09IFwic3RyaW5nXCIpIHtcblx0XHRpZiAoaXNXaWxkY2FyZCh3aWxkY2FyZHMpKSB7XG5cdFx0XHRjb25zdCBjaGFyID0gd2lsZGNhcmRzLmNoYXJBdCgxKTtcblx0XHRcdGlmIChjaGFyIDwgXCIwXCIgfHwgY2hhciA+IFwiOVwiKSB7XG5cdFx0XHRcdHRocm93IEVycm9yKFwiUlBDOiB3aWxkY2FyZHMgbm90IGluIHJhbmdlIFswIC4uIDldXCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNXaWxkY2FyZChzdHIpIHtcblx0cmV0dXJuIHN0ci5sZW5ndGggPT09IDMgJiYgL1xcXFxcXGRcXFxcL2cudGVzdChzdHIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVdpbGRjYXJkcyhvYmosIGFyZ3MpIHtcblx0aWYgKGFyZ3MubGVuZ3RoID4gMTApIGFyZ3MgPSBhcmdzLnNsaWNlKDAsIDEwKTtcblx0aWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSB7XG5cdFx0Zm9yIChsZXQgYXJnSW5kZXggPSAwOyBhcmdJbmRleCA8IGFyZ3MubGVuZ3RoOyBhcmdJbmRleCsrKSB7XG5cdFx0XHRjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYDtcblx0XHRcdG9iaiA9IG9iai5yZXBsYWNlQWxsKHdpbGRjYXJkLCBhcmdzW2FyZ0luZGV4XSk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKG9iaiAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcblx0XHRvYmogPSBvYmoubWFwKCh2YWx1ZSkgPT5cblx0XHRcdHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHJlcGxhY2VXaWxkY2FyZHModmFsdWUsIGFyZ3MpIDogdmFsdWUsXG5cdFx0KTtcblx0fSBlbHNlIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIikge1xuXHRcdG9iaiA9IHJlcGxhY2VPYmplY3RXaWxkY2FyZHMob2JqLCBhcmdzKTtcblx0fVxuXHRyZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZU9iamVjdFdpbGRjYXJkcyhvYmosIGFyZ3MpIHtcblx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRPYmplY3QuZW50cmllcyhvYmopLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG5cdFx0XHRmb3IgKGxldCBhcmdJbmRleCA9IDA7IGFyZ0luZGV4IDwgYXJncy5sZW5ndGg7IGFyZ0luZGV4KyspIHtcblx0XHRcdFx0Y29uc3Qgd2lsZGNhcmQgPSBgXFxcXCR7YXJnSW5kZXh9XFxcXGA7XG5cdFx0XHRcdGtleSA9IGtleS5yZXBsYWNlQWxsKHdpbGRjYXJkLCBhcmdzW2FyZ0luZGV4XSk7XG5cdFx0XHRcdHZhbHVlID0gcmVwbGFjZVdpbGRjYXJkcyh2YWx1ZSwgYXJncyk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gW2tleSwgdmFsdWVdO1xuXHRcdH0pLFxuXHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3BsaWNlV2lsZGNhcmQob2JqLCBhcmdJbmRleCwgYXJnVmFsdWUsIGFyZ3NDb3VudCkge1xuXHRpZiAob2JqICYmIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcblx0XHRjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYDtcblx0XHRvYmogPSBvYmoucmVwbGFjZUFsbCh3aWxkY2FyZCwgYXJnVmFsdWUpO1xuXHRcdGZvciAobGV0IGogPSBhcmdJbmRleCArIDE7IGogPCBhcmdzQ291bnQ7IGorKykge1xuXHRcdFx0b2JqID0gb2JqLnJlcGxhY2VBbGwoYFxcXFwke2p9XFxcXGAsIGBcXFxcJHtqIC0gMX1cXFxcYCk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKG9iaiAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcblx0XHRvYmogPSBvYmoubWFwKCh2YWx1ZSkgPT5cblx0XHRcdHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHNwbGljZVdpbGRjYXJkKHZhbHVlLCBhcmdJbmRleCwgYXJnVmFsdWUsIGFyZ3NDb3VudCkgOiB2YWx1ZSxcblx0XHQpO1xuXHR9XG5cdHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0b29sa2l0UnVuKHNldHRpbmdzLCBhcmdzKSB7XG5cdGNvbnN0IGNtZCA9IGAke3NldHRpbmdzLnBhdGhzLnRvb2xraXRCaW5QYXRofSAke2FyZ3Muam9pbihcIiBcIil9YDtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRleGVjKGNtZCwgeyB0aW1lb3V0OiBfVE9PTEtJVF9SVU5fVElNRU9VVF9NU0VDUywgbWF4QnVmZmVyOiAxMDI0ICogMTAyNCAqIDEwIH0sIChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcblx0XHRcdGlmIChlcnJvcikge1xuXHRcdFx0XHRyZWplY3QoZXJyb3IpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHN0ZGVycikge1xuXHRcdFx0XHRyZWplY3Qoc3RkZXJyKTtcblx0XHRcdH1cblx0XHRcdHJlc29sdmUoc3Rkb3V0KTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1VwcGVyQ2FtZWxDYXNlKHN0cikge1xuXHRyZXR1cm4gc3RyLnJlcGxhY2UoL1xcYihcXHcpL2csIChfbWF0Y2gsIGNhcHR1cmUpID0+IGNhcHR1cmUudG9VcHBlckNhc2UoKSkucmVwbGFjZSgvXFxzKy9nLCBcIlwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVXRmMTZCeXRlcyhzdHIpIHtcblx0Y29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShzdHIubGVuZ3RoICogMik7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3QgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuXHRcdGJ5dGVzW2kgKiAyXSA9IGNvZGUgPj4gODtcblx0XHRieXRlc1tpICogMiArIDFdID0gY29kZSAmIDB4ZmY7XG5cdH1cblx0cmV0dXJuIGJ5dGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VdGY4QXJyYXkoc3RyKSB7XG5cdGNvbnN0IHV0ZjggPSBbXTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcblx0XHRsZXQgY2hhcmNvZGUgPSBzdHIuY2hhckNvZGVBdChpKTtcblx0XHRpZiAoY2hhcmNvZGUgPCAweDgwKSB1dGY4LnB1c2goY2hhcmNvZGUpO1xuXHRcdGVsc2UgaWYgKGNoYXJjb2RlIDwgMHg4MDApIHtcblx0XHRcdHV0ZjgucHVzaCgweGMwIHwgKGNoYXJjb2RlID4+IDYpLCAweDgwIHwgKGNoYXJjb2RlICYgMHgzZikpO1xuXHRcdH0gZWxzZSBpZiAoY2hhcmNvZGUgPCAweGQ4MDAgfHwgY2hhcmNvZGUgPj0gMHhlMDAwKSB7XG5cdFx0XHR1dGY4LnB1c2goMHhlMCB8IChjaGFyY29kZSA+PiAxMiksIDB4ODAgfCAoKGNoYXJjb2RlID4+IDYpICYgMHgzZiksIDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIHN1cnJvZ2F0ZSBwYWlyXG5cdFx0XHRpKys7XG5cdFx0XHQvLyBVVEYtMTYgZW5jb2RlcyAweDEwMDAwLTB4MTBGRkZGIGJ5XG5cdFx0XHQvLyBzdWJ0cmFjdGluZyAweDEwMDAwIGFuZCBzcGxpdHRpbmcgdGhlXG5cdFx0XHQvLyAyMCBiaXRzIG9mIDB4MC0weEZGRkZGIGludG8gdHdvIGhhbHZlc1xuXHRcdFx0Y2hhcmNvZGUgPSAweDEwMDAwICsgKCgoY2hhcmNvZGUgJiAweDNmZikgPDwgMTApIHwgKHN0ci5jaGFyQ29kZUF0KGkpICYgMHgzZmYpKTtcblx0XHRcdHV0ZjgucHVzaChcblx0XHRcdFx0MHhmMCB8IChjaGFyY29kZSA+PiAxOCksXG5cdFx0XHRcdDB4ODAgfCAoKGNoYXJjb2RlID4+IDEyKSAmIDB4M2YpLFxuXHRcdFx0XHQweDgwIHwgKChjaGFyY29kZSA+PiA2KSAmIDB4M2YpLFxuXHRcdFx0XHQweDgwIHwgKGNoYXJjb2RlICYgMHgzZiksXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdXRmODtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHV0ZjhBcnJheVRvU3RyKGFycmF5KSB7XG5cdGNvbnN0IGxlbiA9IGFycmF5Lmxlbmd0aDtcblx0bGV0IG91dCA9IFwiXCI7XG5cdGxldCBpID0gMDtcblx0bGV0IGM7XG5cdGxldCBjaGFyMiwgY2hhcjM7XG5cdHdoaWxlIChpIDwgbGVuKSB7XG5cdFx0YyA9IGFycmF5W2krK107XG5cdFx0c3dpdGNoIChjID4+IDQpIHtcblx0XHRcdGNhc2UgMDpcblx0XHRcdGNhc2UgMTpcblx0XHRcdGNhc2UgMjpcblx0XHRcdGNhc2UgMzpcblx0XHRcdGNhc2UgNDpcblx0XHRcdGNhc2UgNTpcblx0XHRcdGNhc2UgNjpcblx0XHRcdGNhc2UgNzpcblx0XHRcdFx0Ly8gMHh4eHh4eHhcblx0XHRcdFx0b3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAxMjpcblx0XHRcdGNhc2UgMTM6XG5cdFx0XHRcdC8vIDExMHggeHh4eCAgIDEweHggeHh4eFxuXHRcdFx0XHRjaGFyMiA9IGFycmF5W2krK107XG5cdFx0XHRcdG91dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDB4MWYpIDw8IDYpIHwgKGNoYXIyICYgMHgzZikpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMTQ6XG5cdFx0XHRcdC8vIDExMTAgeHh4eCAgMTB4eCB4eHh4ICAxMHh4IHh4eHhcblx0XHRcdFx0Y2hhcjIgPSBhcnJheVtpKytdO1xuXHRcdFx0XHRjaGFyMyA9IGFycmF5W2krK107XG5cdFx0XHRcdG91dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDB4MGYpIDw8IDEyKSB8ICgoY2hhcjIgJiAweDNmKSA8PCA2KSB8ICgoY2hhcjMgJiAweDNmKSA8PCAwKSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gb3V0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvbXB0KHF1ZXN0aW9uKSB7XG5cdGNvbnN0IHJlYWRsaW5lSW50ZXJmYWNlID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcblx0XHRpbnB1dDogcHJvY2Vzcy5zdGRpbixcblx0XHRvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuXHR9KTtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG5cdFx0cmVhZGxpbmVJbnRlcmZhY2UucXVlc3Rpb24oYCR7cXVlc3Rpb259IGAsIChyZXNwb25zZSkgPT4ge1xuXHRcdFx0cmVhZGxpbmVJbnRlcmZhY2UuY2xvc2UoKTtcblx0XHRcdHJlc29sdmUocmVzcG9uc2UudHJpbSgpKTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9tcHRlcihwcm9taXNlKSB7XG5cdGNvbnN0IGxvYWRpbmcgPSAoKCkgPT4ge1xuXHRcdGNvbnN0IGggPSBbXCJ8XCIsIFwiL1wiLCBcIi1cIiwgXCJcXFxcXCJdO1xuXHRcdGxldCBpID0gMDtcblx0XHRyZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aSA9IGkgPiAzID8gMCA6IGk7XG5cdFx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShgXFxiXFxiJHtoW2ldfSBgKTtcblx0XHRcdGkrKztcblx0XHR9LCA1MCk7XG5cdH0pKCk7XG5cdHJldHVybiBwcm9taXNlLnRoZW4oKHJlc3VsdCkgPT4ge1xuXHRcdGNsZWFySW50ZXJ2YWwobG9hZGluZyk7XG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXGJcXGJcIik7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hXb3Jrc3BhY2UoKSB7XG5cdGxldCB3b3Jrc3BhY2UgPSBwYXRoLm5vcm1hbGl6ZShwcm9jZXNzLmN3ZCgpKTtcblx0d2hpbGUgKCFmcy5leGlzdHNTeW5jKGAke3dvcmtzcGFjZX0vd2l0bmV0L2Fzc2V0c2ApICYmIHBhdGguZGlybmFtZSh3b3Jrc3BhY2UpICE9PSB3b3Jrc3BhY2UpIHtcblx0XHR3b3Jrc3BhY2UgPSBwYXRoLmRpcm5hbWUod29ya3NwYWNlKTtcblx0fVxuXHRyZXR1cm4gd29ya3NwYWNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VDaGVja2xpc3RzKGNoZWNrbGlzdHMpIHtcblx0aWYgKGNoZWNrbGlzdHMgJiYgT2JqZWN0LmtleXMoY2hlY2tsaXN0cykubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IGhlYWRsaW5lcyA9IFtcIk5PREVTXCIsIC4uLk9iamVjdC5rZXlzKGNoZWNrbGlzdHMpLm1hcCgoa2V5KSA9PiBgOiR7a2V5fWApXTtcblx0XHRjaGVja2xpc3RzID0gT2JqZWN0LnZhbHVlcyhjaGVja2xpc3RzKTtcblx0XHRjb25zdCB1cmxzID0gT2JqZWN0LmtleXMoY2hlY2tsaXN0c1swXSk7XG5cdFx0Y29uc3QgcmVjb3JkcyA9IHVybHMubWFwKCh1cmwpID0+IHtcblx0XHRcdGNvbnN0IGVycm9ycyA9IGNoZWNrbGlzdHMuZmlsdGVyKChjaGVja2xpc3QpID0+IGNoZWNrbGlzdFt1cmxdIGluc3RhbmNlb2YgRXJyb3IpLmxlbmd0aDtcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdGVycm9ycyA9PT0gY2hlY2tsaXN0cy5sZW5ndGggPyBjb2xvcnMucmVkKHVybCkgOiBlcnJvcnMgPiAwID8gY29sb3JzLm15ZWxsb3codXJsKSA6IGNvbG9ycy5tY3lhbih1cmwpLFxuXHRcdFx0XHQuLi5jaGVja2xpc3RzLm1hcCgoY2hlY2tsaXN0KSA9PlxuXHRcdFx0XHRcdGNoZWNrbGlzdFt1cmxdIGluc3RhbmNlb2YgRXJyb3Jcblx0XHRcdFx0XHRcdD8gY29sb3JzLnJlZChjaGVja2xpc3RbdXJsXSlcblx0XHRcdFx0XHRcdDogY2hlY2tsaXN0W3VybF0gPT09IHRydWVcblx0XHRcdFx0XHRcdFx0PyBjb2xvcnMubGN5YW4oXCJBeWVcIilcblx0XHRcdFx0XHRcdFx0OiBjb2xvcnMuY3lhbihcIk5heVwiKSxcblx0XHRcdFx0KSxcblx0XHRcdF07XG5cdFx0fSk7XG5cdFx0dHJhY2VUYWJsZShyZWNvcmRzLCB7XG5cdFx0XHRoZWFkbGluZXMsXG5cdFx0XHRtYXhDb2x1bW5XaWR0aDogMzEsXG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlSGVhZGVyKGhlYWRsaW5lLCBjb2xvciA9IG5vcm1hbCwgaW5kZW50ID0gXCJcIikge1xuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUjOKUgCR7XCLilIBcIi5yZXBlYXQoaGVhZGxpbmUubGVuZ3RoKX3ilIDilJBgKTtcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIIgJHtjb2xvcihoZWFkbGluZSl9IOKUgmApO1xuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUlOKUgCR7XCLilIBcIi5yZXBlYXQoaGVhZGxpbmUubGVuZ3RoKX3ilIDilJhgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlVGFibGUocmVjb3Jkcywgb3B0aW9ucykge1xuXHRjb25zdCBzdHJpbmdpZnkgPSAoZGF0YSwgaHVtYW5pemVycywgaW5kZXgpID0+XG5cdFx0aHVtYW5pemVycz8uW2luZGV4XSA/IGh1bWFuaXplcnNbaW5kZXhdKGRhdGEpLnRvU3RyaW5nKCkgOiAoZGF0YT8udG9TdHJpbmcoKSA/PyBcIlwiKTtcblx0Y29uc3QgbWF4ID0gKGEsIGIpID0+IChhID4gYiA/IGEgOiBiKTtcblx0Y29uc3QgcmVkdWNlTWF4ID0gKG51bWJlcnMpID0+IG51bWJlcnMucmVkdWNlKChjdXJyLCBwcmV2KSA9PiAocHJldiA+IGN1cnIgPyBwcmV2IDogY3VyciksIDApO1xuXHRpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcblx0Y29uc3QgaW5kZW50ID0gb3B0aW9ucz8uaW5kZW50IHx8IFwiXCI7XG5cdGNvbnN0IG51bUNvbHVtbnMgPSByZWR1Y2VNYXgocmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZW5ndGggfHwgMSkpO1xuXHRjb25zdCBtYXhDb2x1bW5XaWR0aCA9IG9wdGlvbnM/Lm1heENvbHVtbldpZHRoIHx8IDgwO1xuXHRjb25zdCB0YWJsZSA9IHRyYW5zcG9zZShyZWNvcmRzLCBudW1Db2x1bW5zKTtcblx0b3B0aW9ucy53aWR0aHMgPVxuXHRcdG9wdGlvbnM/LndpZHRocyB8fFxuXHRcdHRhYmxlLm1hcCgoY29sdW1uLCBpbmRleCkgPT4ge1xuXHRcdFx0bGV0IG1heFdpZHRoID0gcmVkdWNlTWF4KGNvbHVtbi5tYXAoKGZpZWxkKSA9PiBjb2xvcnN0cmlwKHN0cmluZ2lmeShmaWVsZCwgb3B0aW9ucz8uaHVtYW5pemVycywgaW5kZXgpKS5sZW5ndGgpKTtcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXM/LltpbmRleF0pIHtcblx0XHRcdFx0bWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIGNvbG9yc3RyaXAob3B0aW9ucy5oZWFkbGluZXNbaW5kZXhdLnJlcGxhY2VBbGwoXCI6XCIsIFwiXCIpKS5sZW5ndGgpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIE1hdGgubWluKG1heFdpZHRoLCBtYXhDb2x1bW5XaWR0aCk7XG5cdFx0fSk7XG5cdGxldCBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSk7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pSs4pSAXCIpfeKUgOKUkGApO1xuXHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzKSB7XG5cdFx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoLCBpbmRleCkgPT4ge1xuXHRcdFx0Y29uc3QgY2FwdGlvbiA9IG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKTtcblx0XHRcdGNvbnN0IGNhcHRpb25MZW5ndGggPSBjb2xvcnN0cmlwKGNhcHRpb24pLmxlbmd0aDtcblx0XHRcdHJldHVybiBgJHt3aGl0ZShjYXB0aW9uKX0ke1wiIFwiLnJlcGVhdChtYXhXaWR0aCAtIGNhcHRpb25MZW5ndGgpfWA7XG5cdFx0fSk7XG5cdFx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIIgJHtoZWFkbGluZS5qb2luKFwiIOKUgiBcIil9IOKUgmApO1xuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKTtcblx0XHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUnOKUgCR7aGVhZGxpbmUuam9pbihcIuKUgOKUvOKUgFwiKX3ilIDilKRgKTtcblx0fVxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHtcblx0XHRsZXQgbGluZSA9IFwiXCI7XG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBudW1Db2x1bW5zOyBqKyspIHtcblx0XHRcdGxldCBkYXRhID0gdGFibGVbal1baV07XG5cdFx0XHRsZXQgY29sb3I7XG5cdFx0XHRpZiAob3B0aW9ucz8uY29sb3JzPy5bal0pIHtcblx0XHRcdFx0Y29sb3IgPSBvcHRpb25zLmNvbG9yc1tqXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbG9yID1cblx0XHRcdFx0XHR0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIlxuXHRcdFx0XHRcdFx0PyBncmVlblxuXHRcdFx0XHRcdFx0OiBOdW1iZXIoZGF0YSkgPT09IGRhdGEgJiYgZGF0YSAlIDEgIT09IDAgLy8gaXMgZmxvYXQgbnVtYmVyP1xuXHRcdFx0XHRcdFx0XHQ/IHllbGxvd1xuXHRcdFx0XHRcdFx0XHQ6ICh4KSA9PiB4O1xuXHRcdFx0fVxuXHRcdFx0ZGF0YSA9IHN0cmluZ2lmeShkYXRhLCBvcHRpb25zPy5odW1hbml6ZXJzLCBqKTtcblx0XHRcdGlmIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoKSB7XG5cdFx0XHRcdHdoaWxlIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoIC0gMykge1xuXHRcdFx0XHRcdGRhdGEgPSBkYXRhLnNsaWNlKDAsIC0xKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhICs9IFwiLi4uXCI7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBkYXRhTGVuZ3RoID0gY29sb3JzdHJpcChkYXRhKS5sZW5ndGg7XG5cdFx0XHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2pdWzBdID09PSBcIjpcIikge1xuXHRcdFx0XHRkYXRhID0gYCR7Y29sb3IoZGF0YSl9JHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX1gO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGF0YSA9IGAke1wiIFwiLnJlcGVhdChvcHRpb25zLndpZHRoc1tqXSAtIGRhdGFMZW5ndGgpfSR7Y29sb3IoZGF0YSl9YDtcblx0XHRcdH1cblx0XHRcdGxpbmUgKz0gYOKUgiAke2RhdGF9IGA7XG5cdFx0fVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR9JHtsaW5lfeKUgmApO1xuXHR9XG5cdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKTtcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilJTilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilLTilIBcIil94pSA4pSYYCk7XG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9zZShyZWNvcmRzLCBudW1Db2x1bW5zKSB7XG5cdGNvbnN0IGNvbHVtbnMgPSBbXTtcblx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG51bUNvbHVtbnM7IGluZGV4KyspIHtcblx0XHRjb2x1bW5zLnB1c2gocmVjb3Jkcy5tYXAoKHJvdykgPT4gcm93W2luZGV4XSkpO1xuXHR9XG5cdHJldHVybiBjb2x1bW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHhKc29uUmVwbGFjZXIoa2V5LCB2YWx1ZSkge1xuXHRzd2l0Y2ggKGtleSkge1xuXHRcdGNhc2UgXCJieXRlc1wiOlxuXHRcdGNhc2UgXCJkZXJcIjpcblx0XHRcdHJldHVybiB0b0hleFN0cmluZyh2YWx1ZSwgdHJ1ZSk7XG5cdFx0Y2FzZSBcInR4XCI6XG5cdFx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUsIHR4SnNvblJlcGxhY2VyKTtcblx0XHRjYXNlIFwiY2hhbmdlXCI6XG5cdFx0Y2FzZSBcImZlZXNcIjpcblx0XHRjYXNlIFwidmFsdWVcIjpcblx0XHRcdHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApIC8gMTAgKiogOTtcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eFJlY2VpcHRKc29uUmVwbGFjZXIoa2V5LCB2YWx1ZSkge1xuXHRzd2l0Y2ggKGtleSkge1xuXHRcdGNhc2UgXCJieXRlc1wiOlxuXHRcdGNhc2UgXCJkZXJcIjpcblx0XHRcdHJldHVybiB0b0hleFN0cmluZyh2YWx1ZSwgdHJ1ZSk7XG5cdFx0Y2FzZSBcInR4XCI6XG5cdFx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUsIHR4SnNvblJlcGxhY2VyKTtcblx0XHRjYXNlIFwiY2hhbmdlXCI6XG5cdFx0Y2FzZSBcImZlZXNcIjpcblx0XHRjYXNlIFwidmFsdWVcIjpcblx0XHRcdHJldHVybiBwYXJzZUludCh2YWx1ZT8ucGVkcm9zLCAxMCkgLyAxMCAqKiA5O1xuXHRcdGNhc2UgXCJ0aW1lc3RhbXBcIjpcblx0XHRcdHJldHVybiBtb21lbnQudW5peCh2YWx1ZSkuZm9ybWF0KFwiTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGFcIik7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvbk9uQ2hlY2twb2ludChyZWNlaXB0KSB7XG5cdGlmIChyZWNlaXB0Py5jb25maXJtYXRpb25zKSB7XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBDaGVja3BvaW50ICMke2NvbW1hcyhyZWNlaXB0LmNvbmZpcm1hdGlvbnMpfS4uLmApO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uT25TdGF0dXNDaGFuZ2UocmVjZWlwdCkge1xuXHRjb25zdCBjYXB0aW9ucyA9IHtcblx0XHRwZW5kaW5nOiBcIkF3YWl0aW5nIHJlbGF5Li4uXCIsXG5cdFx0Ly8gY29uZmlybWVkOiBcIlRyYW5zYWN0aW9uIGNvbmZpcm1lZDpcIixcblx0XHQvLyBmaW5hbGl6ZWQ6IFwiVHJhbnNhY3Rpb24gZmluYWxpemVkOlwiLFxuXHRcdHJlbGF5ZWQ6IFwiQXdhaXRpbmcgaW5jbHVzaW9uLi4uXCIsXG5cdFx0bWluZWQ6IFwiQXdhaXRpbmcgY29uZmlybWF0aW9ucy4uLlwiLFxuXHR9O1xuXHRjb25zdCBjYXB0aW9uID0gY2FwdGlvbnNbcmVjZWlwdC5zdGF0dXNdO1xuXHRpZiAoY2FwdGlvbikgY29uc29sZS5pbmZvKGAgPiAke2NhcHRpb25zW3JlY2VpcHQuc3RhdHVzXX1gKTtcblx0aWYgKFtcImZpbmFsaXplZFwiLCBcImNvbmZpcm1lZFwiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cykpIHtcblx0XHRjb25zb2xlLmluZm8oYCA+IEJsb2NrIGhhc2g6ICAgJHtjb2xvcnMuZ3JheShyZWNlaXB0Py5ibG9ja0hhc2gpfWApO1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gQmxvY2sgbWluZXI6ICAke2NvbG9ycy5jeWFuKHJlY2VpcHQ/LmJsb2NrTWluZXIpfWApO1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gQmxvY2sgZXBvY2g6ICAke2NvbG9ycy53aGl0ZShjb21tYXMocmVjZWlwdD8uYmxvY2tFcG9jaCkpfWApO1xuXHRcdGNvbnNvbGUuaW5mbyhcblx0XHRcdGAgPiBJbmNsdWRlZCBhdDogICR7Y29sb3JzLmdyZWVuKG1vbWVudC51bml4KHJlY2VpcHQ/LmJsb2NrVGltZXN0YW1wKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKSl9YCxcblx0XHQpO1xuXHRcdGNvbnNvbGUuaW5mbyhcblx0XHRcdGAgPiAke3JlY2VpcHQuc3RhdHVzWzBdLnRvVXBwZXJDYXNlKCkgKyByZWNlaXB0LnN0YXR1cy5zbGljZSgxKX0gYXQ6ICR7Y29sb3JzLm1ncmVlbihtb21lbnQudW5peChyZWNlaXB0LnRpbWVzdGFtcCkuZm9ybWF0KFwiTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGFcIikpfWAsXG5cdFx0KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvblJlY2VpcHQocmVjZWlwdCkge1xuXHRjb25zdCBjYXB0aW9ucyA9IHtcblx0XHREYXRhUmVxdWVzdDogXCIgPiBEUlQgaGFzaDogICAgIFwiLFxuXHRcdFZhbHVlVHJhbnNmZXI6IFwiID4gVlRUIGhhc2g6ICAgICBcIixcblx0fTtcblx0Y29uc29sZS5pbmZvKGAke2NhcHRpb25zW3JlY2VpcHQudHlwZV0gfHwgXCIgPiBUWCBoYXNoOiAgICAgIFwifSR7Y29sb3JzLndoaXRlKHJlY2VpcHQuaGFzaCl9YCk7XG5cdGlmIChyZWNlaXB0Py5kcm9IYXNoKSBjb25zb2xlLmluZm8oYCA+IERSTyBoYXNoOiAgICAgJHtjb2xvcnMuZ3JlZW4ocmVjZWlwdC5kcm9IYXNoKX1gKTtcblx0aWYgKHJlY2VpcHQ/LnJhZEhhc2gpIGNvbnNvbGUuaW5mbyhgID4gUkFEIGhhc2g6ICAgICAke2NvbG9ycy5tZ3JlZW4ocmVjZWlwdC5yYWRIYXNoKX1gKTtcblx0aWYgKHJlY2VpcHQ/LmRyb1NMQSkgY29uc29sZS5pbmZvKGAgPiBTTEEgcGFyYW1zOiAgICR7SlNPTi5zdHJpbmdpZnkocmVjZWlwdC5kcm9TTEEpfWApO1xuXHRpZiAocmVjZWlwdD8ud2l0aGRyYXdlcikge1xuXHRcdGlmIChyZWNlaXB0Py52YWxpZGF0b3IpIHtcblx0XHRcdGNvbnNvbGUuaW5mbyhgID4gVmFsaWRhdG9yOiAgICAke2NvbG9ycy5tY3lhbihyZWNlaXB0LnZhbGlkYXRvcil9YCk7XG5cdFx0fVxuXHRcdGNvbnNvbGUuaW5mbyhgID4gV2l0aGRyYXdlcjogICAke2NvbG9ycy5tbWFnZW50YShyZWNlaXB0LndpdGhkcmF3ZXIpfWApO1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IHNpZ25lcnMgPSBBcnJheS5pc0FycmF5KHJlY2VpcHQuZnJvbSkgPyByZWNlaXB0LmZyb20gOiBbcmVjZWlwdC5mcm9tXTtcblx0XHRjb25zb2xlLmluZm8oYCA+IFNpZ25lci9zOiAgICAgJHtjb2xvcnMubW1hZ2VudGEoc2lnbmVyc1swXSl9YCk7XG5cdFx0c2lnbmVycy5zbGljZSgxKS5mb3JFYWNoKChzaWduZXIpID0+IHtcblx0XHRcdGNvbnNvbGUuaW5mbyhgICAgICAgICAgICAgICAgICAke2NvbG9ycy5tbWFnZW50YShzaWduZXIpfWApO1xuXHRcdH0pO1xuXHR9XG5cdGlmIChyZWNlaXB0Py5yZWNpcGllbnRzKSB7XG5cdFx0Y29uc29sZS5pbmZvKFxuXHRcdFx0YCA+IFJlY2lwaWVudC9zOiAgJHtjb2xvcnMubWJsdWUoXG5cdFx0XHRcdHJlY2VpcHQucmVjaXBpZW50cy5maWx0ZXIoKHBraCwgaW5kZXgsIGFycmF5KSA9PiBpbmRleCA9PT0gYXJyYXkuaW5kZXhPZihwa2gpKSxcblx0XHRcdCl9YCxcblx0XHQpO1xuXHR9XG5cdGlmIChyZWNlaXB0Py5mZWVzKSBjb25zb2xlLmluZm8oYCA+IE5ldHdvcmsgZmVlOiAgJHtjb2xvcnMueWVsbG93KHJlY2VpcHQuZmVlcy50b1N0cmluZygyKSl9YCk7XG5cdGlmIChyZWNlaXB0Py52YWx1ZSkgY29uc29sZS5pbmZvKGAgPiBWYWx1ZTogICAgICAgICR7Y29sb3JzLm15ZWxsb3cocmVjZWlwdC52YWx1ZS50b1N0cmluZygyKSl9YCk7XG5cdGlmIChyZWNlaXB0Py53ZWlnaHQpIGNvbnNvbGUuaW5mbyhgID4gV2VpZ2h0OiAgICAgICAke2NvbG9ycy5tZ3JlZW4oY29tbWFzKHJlY2VpcHQud2VpZ2h0KSl9YCk7XG5cdGlmIChyZWNlaXB0Py53aXRuZXNzZXMpIHtcblx0XHRjb25zb2xlLmluZm8oYCA+IFdpdG5lc3NlczogICAgJHtyZWNlaXB0LndpdG5lc3Nlc31gKTtcblx0fVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvbih0cmFuc21pdHRlciwgb3B0aW9ucykge1xuXHRjb25zdCBjb2xvciA9IG9wdGlvbnM/LmNvbG9yIHx8ICgoeCkgPT4gYFxceDFiWzMwOzQ1bSR7eH1cXHgxYlswbWApO1xuXHRsZXQgcmVjZWlwdCA9IGF3YWl0IHRyYW5zbWl0dGVyLnNpZ25UcmFuc2FjdGlvbihvcHRpb25zLCBvcHRpb25zPy5yZWxvYWQpO1xuXHRpZiAob3B0aW9ucz8udmVyYm9zZSkge1xuXHRcdGNvbnNvbGUuaW5mbyhgXFxuJHtncmF5KEpTT04uc3RyaW5naWZ5KHJlY2VpcHQudHgsIHR4SnNvblJlcGxhY2VyKSl9YCk7XG5cdH1cblx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lKSB7XG5cdFx0Y29uc29sZS5pbmZvKGBcXG4gJHtjb2xvcihgICAke29wdGlvbnMuaGVhZGxpbmV9ICBgKX1cXG5gKTtcblx0fVxuXHR0cmFjZVRyYW5zYWN0aW9uUmVjZWlwdChyZWNlaXB0KTtcblx0aWYgKCFvcHRpb25zPy5mb3JjZSkge1xuXHRcdC8vIHByb21wdCB1c2VyIGNvbmZpcm1hdGlvblxuXHRcdGNvbnNvbGUuaW5mbygpO1xuXHRcdGNvbnN0IGFuc3dlciA9IGF3YWl0IHJlcXVpcmUoXCJpbnF1aXJlclwiKS5jcmVhdGVQcm9tcHRNb2R1bGUoKShbXG5cdFx0XHR7XG5cdFx0XHRcdG1lc3NhZ2U6IFwiU2VuZCB0cmFuc2FjdGlvbj9cIixcblx0XHRcdFx0dHlwZTogXCJjb25maXJtXCIsXG5cdFx0XHRcdG5hbWU6IFwiY29udGludWVcIixcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2UsXG5cdFx0XHR9LFxuXHRcdF0pO1xuXHRcdGlmICghYW5zd2VyLmNvbnRpbnVlKSB7XG5cdFx0XHRyZXR1cm4gcmVjZWlwdDtcblx0XHR9XG5cdH1cblx0dHJ5IHtcblx0XHRjb25zb2xlLmluZm8oKTtcblx0XHRyZWNlaXB0ID0gYXdhaXQgdHJhbnNtaXR0ZXIuc2VuZFRyYW5zYWN0aW9uKCk7XG5cdFx0aWYgKG9wdGlvbnM/LmF3YWl0IHx8IG9wdGlvbnM/LmNvbmZpcm1hdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmVjZWlwdCA9IGF3YWl0IHRyYW5zbWl0dGVyLmNvbmZpcm1UcmFuc2FjdGlvbihyZWNlaXB0Lmhhc2gsIHtcblx0XHRcdFx0Y29uZmlybWF0aW9uczogb3B0aW9ucz8uY29uZmlybWF0aW9ucyB8fCAwLFxuXHRcdFx0XHRvbkNoZWNrcG9pbnQ6IHRyYWNlVHJhbnNhY3Rpb25PbkNoZWNrcG9pbnQsXG5cdFx0XHRcdG9uU3RhdHVzQ2hhbmdlOiB0cmFjZVRyYW5zYWN0aW9uT25TdGF0dXNDaGFuZ2UsXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgZGF0YSA9IHtcblx0XHRcdFx0c3RhdHVzOiByZWNlaXB0Py5zdGF0dXMsXG5cdFx0XHRcdHRpbWVzdGFtcDogcmVjZWlwdD8udGltZXN0YW1wIHx8IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuXHRcdFx0fTtcblx0XHRcdGNvbnNvbGUuaW5mbyhkYXRhKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChlcnI/LmluRmxpZ2h0ICYmIGVyci5pbkZsaWdodCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKGBcXG4ke2NvbG9ycy5ncmF5KEpTT04uc3RyaW5naWZ5KGVyci5pbkZsaWd0Py5tZXNzYWdlLCB0eFJlY2VpcHRKc29uUmVwbGFjZXIpKX1gKTtcblx0XHR9XG5cdFx0dGhyb3cgZXJyO1xuXHR9XG5cdHJldHVybiByZWNlaXB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5lc2NhcGVTbGFzaGVzKHN0cikge1xuXHQvLyBhZGQgYW5vdGhlciBlc2NhcGVkIHNsYXNoIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIGFuIG9kZFxuXHQvLyBudW1iZXIgb2YgZXNjYXBlZCBzbGFzaGVzIHdoaWNoIHdpbGwgY3Jhc2ggSlNPTi5wYXJzZVxuXHRsZXQgcGFyc2VkU3RyID0gc3RyLnJlcGxhY2UoLyhefFteXFxcXF0pKFxcXFxcXFxcKSpcXFxcJC8sIFwiJCZcXFxcXCIpO1xuXG5cdC8vIGVzY2FwZSB1bmVzY2FwZWQgZG91YmxlIHF1b3RlcyB0byBwcmV2ZW50IGVycm9yIHdpdGhcblx0Ly8gYWRkZWQgZG91YmxlIHF1b3RlcyBpbiBqc29uIHN0cmluZ1xuXHRwYXJzZWRTdHIgPSBwYXJzZWRTdHIucmVwbGFjZSgvKF58W15cXFxcXSkoKFxcXFxcXFxcKSpcIikvZywgXCIkMVxcXFwkMlwiKTtcblxuXHR0cnkge1xuXHRcdHBhcnNlZFN0ciA9IEpTT04ucGFyc2UoYFwiJHtwYXJzZWRTdHJ9XCJgKTtcblx0fSBjYXRjaCAoX2UpIHtcblx0XHRyZXR1cm4gc3RyO1xuXHR9XG5cdHJldHVybiBwYXJzZWRTdHI7XG59XG4iXX0=
876
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0MsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakMsR0FBRyxDQUFDLE9BQU8sQ0FBQyw2RUFBNkUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sTUFBTSxHQUNYLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENB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S0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ3BELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ3JELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ25ELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBRXRELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2pELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2xELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3BELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ25ELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBRWpELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ25ELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQ2hELE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzdDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2pELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNyQixLQUFLO0lBQ0wsS0FBSztJQUNMLE1BQU07SUFDTixJQUFJO0lBQ0osT0FBTztJQUNQLEtBQUs7SUFDTCxLQUFLO0lBQ0wsTUFBTTtJQUNOLFFBQVE7SUFDUixPQUFPO0lBQ1AsS0FBSztJQUNMLEtBQUs7SUFDTCxNQUFNO0lBQ04sUUFBUTtJQUNSLElBQUk7SUFDSixPQUFPO0lBQ1AsSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osS0FBSztJQUNMLE9BQU87SUFDUCxNQUFNO0lBQ04sR0FBRztJQUNILEtBQUs7SUFDTCxNQUFNO0NBQ04sQ0FBQztBQUVGLE1BQU0sVUFBVSxXQUFXLENBQUMsQ0FBQyxFQUFFLEdBQUc7SUFDakMsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs7UUFDbkYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBSTtJQUNwQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVE7SUFDdkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN0QyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQzlCLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLEtBQUs7WUFDdEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTztZQUNuQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUNqQyxHQUFHLEVBQUU7Z0JBQ0osR0FBRyxPQUFPLENBQUMsR0FBRztnQkFDZCxjQUFjLEVBQUUsTUFBTSxFQUFFLG9EQUFvRDthQUM1RTtTQUNELENBQUMsQ0FBQztRQUVILElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXJCLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQUUsT0FBTztZQUN2QixJQUFJLENBQUM7Z0JBQ0osSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUNsQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQy9ELENBQUM7cUJBQU0sQ0FBQztvQkFDUCw0QkFBNEI7b0JBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO1lBQ0YsQ0FBQztZQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7UUFDWCxDQUFDLENBQUM7UUFFRixNQUFNLEtBQUssR0FDVixPQUFPLEdBQUcsQ0FBQztZQUNWLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNoQixJQUFJLFFBQVE7b0JBQUUsT0FBTztnQkFDckIsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDaEIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLHFDQUFxQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztZQUNaLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFVCxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXpELEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDekIsSUFBSSxRQUFRO2dCQUFFLE9BQU87WUFDckIsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNoQixJQUFJLEtBQUs7Z0JBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLFFBQVEsRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNsQyxJQUFJLFFBQVE7Z0JBQUUsT0FBTztZQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLElBQUksS0FBSztnQkFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFL0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsNEJBQTRCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDeEQsT0FBTztZQUNSLENBQUM7WUFFRCxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDZCQUE2QixJQUFJLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPO1lBQ1IsQ0FBQztZQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUs7SUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztTQUFNLENBQUM7UUFDUCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSztJQUMxQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDbkIsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1QyxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ2xFLE1BQU0sS0FBSyxDQUFDLG9DQUFvQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUN6RCxDQUFDO3lCQUFNLENBQUM7d0JBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMzQixDQUFDO2dCQUNGLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNGLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQVM7SUFDdEMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUFFLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUFFO0lBQ3hDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3BCLGtCQUFrQjtRQUNsQixJQUFJLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCx5SUFBeUk7UUFDekksT0FBTyxDQUNOLDBCQUEwQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkMsNkNBQTZDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0RCw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyQkFBMkI7SUFFL0Usa0NBQWtDO0lBQ2xDLElBQUksRUFBRSxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUM5Qix3RkFBd0Y7U0FDbkYsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdkQsMkVBQTJFO0lBQzNFLHFCQUFxQjtTQUNoQixJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDckQscUJBQXFCO1NBQ2hCLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNyRCw2REFBNkQ7U0FDeEQsSUFBSSxTQUFTLEtBQUssTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzNDLGlCQUFpQjtTQUNaLElBQUksU0FBUyxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUUxQyx5REFBeUQ7SUFDekQsT0FBTyxLQUFLLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxNQUFNO0lBQzlDLE9BQU8sQ0FDTixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakgsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFHO0lBQzlCLE9BQU8sQ0FDTixDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFDdkIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FDZixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsR0FBRyxLQUFLO0lBQ25ELElBQUksTUFBTSxZQUFZLFVBQVU7UUFBRSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvRCxPQUFPLENBQ04sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRzthQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwRCxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQ1IsS0FBSyxDQUFDLGlCQUFpQixDQUFDO2FBQ3hCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDVixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBRztJQUMzQixJQUFJLENBQUM7UUFDSixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUixNQUFNLElBQUksU0FBUyxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTTtJQUNwQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkMsY0FBYyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyQyxlQUFlLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLGVBQWUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBTTtJQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSztJQUMvRCxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ1AsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNGLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFNO0lBQ3JDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbEUsT0FBTyxDQUFDLElBQUksQ0FDWCxJQUFJLEVBQ0osR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQ3RFLG1CQUFtQixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQ2pELENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDeEcsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNGLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFLO0lBQ25DLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWCxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7YUFDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7YUFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDOztnQkFDcEIsT0FBTyxDQUFDLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3pCLEdBQUcsS0FBSztpQkFDTixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUNqRixDQUFDO1lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN0QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzVFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyRyxDQUFDO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0YsQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNO0lBQ3BELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkIsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNaLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQzNDLGlEQUFpRDtRQUNqRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDakgsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQ3BFLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDRixDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FDWCxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsQ0FDOUgsQ0FBQztRQUNGLElBQUksTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0YsQ0FBQztTQUFNLENBQUM7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBTztJQUN2QyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1NBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQzs7WUFDcEIsT0FBTyxDQUFDLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztJQUNKLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNCLE1BQU0sU0FBUyxHQUFHLE9BQU87YUFDdkIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckcsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNwQixNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2xGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkcsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNO0lBQ3RELGlCQUFpQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUUsY0FBYyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekYsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxHQUFHO0lBQzlDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNyQixJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxJQUFJLEtBQUssQ0FBQztRQUNWLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN6QixPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxJQUFJLFNBQVMsR0FBRyxZQUFZO2dCQUFFLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDeEQsQ0FBQztJQUNGLENBQUM7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFNBQVM7SUFDMUMsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQzFCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDekIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDOztnQkFDQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDOUIsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO1NBQU0sSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFHO0lBQzdCLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJO0lBQ3pDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDM0QsTUFBTSxRQUFRLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQztZQUNuQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNGLENBQUM7U0FBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUN2QixPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ3pGLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0MsR0FBRyxHQUFHLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJO0lBQy9DLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3hDLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDM0QsTUFBTSxRQUFRLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQztZQUNuQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDL0MsS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FDRixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUztJQUNoRSxJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDO1FBQ25DLEdBQUcsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9DLEdBQUcsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0YsQ0FBQztTQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3ZCLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDaEgsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSTtJQUM5QyxNQUFNLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNqRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3RDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsU0FBUyxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3pHLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1osTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLENBQUM7WUFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBRztJQUNuQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMvRixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFHO0lBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUN6QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQUc7SUFDOUIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDckMsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLFFBQVEsR0FBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNwQyxJQUFJLFFBQVEsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO2FBQU0sSUFBSSxRQUFRLEdBQUcsTUFBTSxJQUFJLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO2FBQU0sQ0FBQztZQUNQLGlCQUFpQjtZQUNqQixDQUFDLEVBQUUsQ0FBQztZQUNKLHFDQUFxQztZQUNyQyx3Q0FBd0M7WUFDeEMseUNBQXlDO1lBQ3pDLFFBQVEsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxJQUFJLENBQ1IsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUN2QixJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsRUFDaEMsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQy9CLElBQUksR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FDeEIsQ0FBQztRQUNILENBQUM7SUFDRixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFLO0lBQ25DLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDekIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsSUFBSSxDQUFDLENBQUM7SUFDTixJQUFJLEtBQUssRUFBRSxLQUFLLENBQUM7SUFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDaEIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLENBQUMsQ0FBQztZQUNQLEtBQUssQ0FBQyxDQUFDO1lBQ1AsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLENBQUMsQ0FBQztZQUNQLEtBQUssQ0FBQyxDQUFDO1lBQ1AsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLENBQUM7Z0JBQ0wsV0FBVztnQkFDWCxHQUFHLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtZQUNQLEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxFQUFFO2dCQUNOLHdCQUF3QjtnQkFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQixHQUFHLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQy9ELE1BQU07WUFDUCxLQUFLLEVBQUU7Z0JBQ04sa0NBQWtDO2dCQUNsQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25CLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0YsTUFBTTtRQUNSLENBQUM7SUFDRixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxNQUFNLENBQUMsUUFBUTtJQUNwQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDbEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN0QixDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3ZDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdkQsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFPO0lBQy9CLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsT0FBTyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsQ0FBQyxFQUFFLENBQUM7UUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUixDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ0wsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDOUIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWU7SUFDOUIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFNBQVMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzlGLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxVQUFVO0lBQ3pDLElBQUksVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDeEYsT0FBTztnQkFDTixNQUFNLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ3JHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQy9CLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxLQUFLO29CQUM5QixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzVCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSTt3QkFDeEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO3dCQUNyQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDdEI7YUFDRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ25CLFNBQVM7WUFDVCxjQUFjLEVBQUUsRUFBRTtTQUNsQixDQUFDLENBQUM7SUFDSixDQUFDO0FBQ0YsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUU7SUFDaEUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPO0lBQzFDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM3QyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RixJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDM0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDckMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxNQUFNLGNBQWMsR0FBRyxPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FB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Q0YsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLEdBQUcsRUFBRSxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0QsTUFBTSxHQUFHLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBRztJQUNsQywyREFBMkQ7SUFDM0Qsd0RBQXdEO0lBQ3hELElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFM0QsdURBQXVEO0lBQ3ZELHFDQUFxQztJQUNyQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVoRSxJQUFJLENBQUM7UUFDSixTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDYixPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlYywgc3Bhd24gfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCAqIGFzIG5ldCBmcm9tIFwibm9kZTpuZXRcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgKiBhcyByZWFkbGluZSBmcm9tIFwibm9kZTpyZWFkbGluZVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5jb25zdCBfVE9PTEtJVF9SVU5fVElNRU9VVF9NU0VDUyA9IDMwMDAwO1xuXG5leHBvcnQgY29uc3QgY29sb3JzdHJpcCA9IChzdHIpID0+XG5cdHN0ci5yZXBsYWNlKC9bXFx1MDAxYlxcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csIFwiXCIpO1xuXG5leHBvcnQgY29uc3QgY29tbWFzID0gKG51bWJlcikgPT4ge1xuXHRjb25zdCBwYXJ0cyA9IG51bWJlci50b1N0cmluZygpLnNwbGl0KFwiLlwiKTtcblx0Y29uc3QgcmVzdWx0ID1cblx0XHRwYXJ0cy5sZW5ndGggPD0gMVxuXHRcdFx0PyBgJHtwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9YFxuXHRcdFx0OiBgJHtwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9LiR7cGFydHNbMV19YDtcblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0ZpeGVkVHJ1bmMoeCwgbikge1xuXHRjb25zdCB2ID0gKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiID8geCA6IHgudG9TdHJpbmcoKSkuc3BsaXQoXCIuXCIpO1xuXHRpZiAobiA8PSAwKSByZXR1cm4gdlswXTtcblx0bGV0IGYgPSB2WzFdIHx8IFwiXCI7XG5cdGlmIChmLmxlbmd0aCA+IG4pIHJldHVybiBgJHt2WzBdfS4ke2Yuc3Vic3RyKDAsIG4pfWA7XG5cdHdoaWxlIChmLmxlbmd0aCA8IG4pIGYgKz0gXCIwXCI7XG5cdHJldHVybiBgJHt2WzBdfS4ke2Z9YDtcbn1cblxuZXhwb3J0IGNvbnN0IHdob2xlX3dpdHMgPSAobnVtYmVyLCBkaWdpdHMpID0+IHtcblx0Y29uc3QgbG9va3VwID0gW1xuXHRcdHsgdmFsdWU6IDFuLCBzeW1ib2w6IFwicGVkcm9zXCIgfSxcblx0XHR7IHZhbHVlOiAxMG4gKiogNm4sIHN5bWJvbDogXCJtV2l0c1wiIH0sXG5cdFx0eyB2YWx1ZTogMTBuICoqIDluLCBzeW1ib2w6IFwiIFdpdHNcIiB9LFxuXHRcdHsgdmFsdWU6IDEwbiAqKiAxMm4sIHN5bWJvbDogXCJLV2l0c1wiIH0sXG5cdFx0eyB2YWx1ZTogMTBuICoqIDE1biwgc3ltYm9sOiBcIk1XaXRzXCIgfSxcblx0XTtcblx0Ly8gY29uc3QgcmVnZXhwID0gL1xcLjArJHwoPzw9XFwuWzAtOV0pMCskL1xuXHRjb25zdCBpdGVtID0gbG9va3VwLmZpbmRMYXN0KChpdGVtKSA9PiBudW1iZXIgPj0gaXRlbS52YWx1ZSk7XG5cdGNvbnN0IHF1b3RpZW50ID0gaXRlbSA/IE51bWJlcihCaWdJbnQobnVtYmVyKSAvIGl0ZW0udmFsdWUpIDogbnVtYmVyLnRvU3RyaW5nKCk7XG5cdGNvbnN0IGRlY2ltYWxzID0gaXRlbSA/IChpdGVtLnZhbHVlICsgQmlnSW50KG51bWJlcikgLSBCaWdJbnQocXVvdGllbnQpICogaXRlbS52YWx1ZSkudG9TdHJpbmcoKS5zbGljZSgxKSA6IFwiXCI7XG5cdHJldHVybiBpdGVtXG5cdFx0PyBgJHtjb21tYXMocXVvdGllbnQpfSR7ZGVjaW1hbHMgIT09IFwiXCIgPyBgLiR7ZGVjaW1hbHMuc2xpY2UoMCwgZGlnaXRzKX1gIDogXCJcIn0gJHtpdGVtLnN5bWJvbH1gXG5cdFx0OiBcIihubyBjb2lucylcIjtcbn07XG5cbmNvbnN0IGJibHVlID0gKHN0cikgPT4gYFxceDFiWzE7OTg7NDRtJHtzdHJ9XFx4MWJbMDswOzBtYDtcbmNvbnN0IGJjeWFuID0gKHN0cikgPT4gYFxceDFiWzM4OzQ2bSR7c3RyfVxceDFiWzA7MG1gO1xuY29uc3QgYmdyZWVuID0gKHN0cikgPT4gYFxceDFiWzMwOzQybSR7c3RyfVxceDFiWzA7MG1gO1xuY29uc3QgYnJlZCA9IChzdHIpID0+IGBcXHgxYlszMDs0MW0ke3N0cn1cXHgxYlswOzBtYDtcbmNvbnN0IGJ2aW9sZXQgPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDVtJHtzdHJ9XFx4MWJbMDswbWA7XG5cbmNvbnN0IGxjeWFuID0gKHN0cikgPT4gYFxceDFiWzE7OTZtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbGdyYXkgPSAoc3RyKSA9PiBgXFx4MWJbMTs5MG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBsZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbMTs5Mm0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBsbWFnZW50YSA9IChzdHIpID0+IGBcXHgxYlsxOzk1bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGx5ZWxsb3cgPSAoc3RyKSA9PiBgXFx4MWJbMTs5M20ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtYmx1ZSA9IChzdHIpID0+IGBcXHgxYls5NG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtY3lhbiA9IChzdHIpID0+IGBcXHgxYls5Nm0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbOTJtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbW1hZ2VudGEgPSAoc3RyKSA9PiBgXFx4MWJbMDs5NW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtcmVkID0gKHN0cikgPT4gYFxceDFiWzkxbSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IG15ZWxsb3cgPSAoc3RyKSA9PiBgXFx4MWJbOTNtJHtzdHJ9XFx4MWJbMG1gO1xuXG5jb25zdCBibHVlID0gKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGN5YW4gPSAoc3RyKSA9PiBgXFx4MWJbMzZtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgZ3JheSA9IChzdHIpID0+IGBcXHgxYls5MG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBncmVlbiA9IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBtYWdlbnRhID0gKHN0cikgPT4gYFxceDFiWzA7MzVtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3Qgbm9ybWFsID0gKHN0cikgPT4gYFxceDFiWzk4bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IHJlZCA9IChzdHIpID0+IGBcXHgxYlszMW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCB3aGl0ZSA9IChzdHIpID0+IGBcXHgxYlsxOzk4bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IHllbGxvdyA9IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWA7XG5cbmV4cG9ydCBjb25zdCBjb2xvcnMgPSB7XG5cdGJibHVlLFxuXHRiY3lhbixcblx0YmdyZWVuLFxuXHRicmVkLFxuXHRidmlvbGV0LFxuXHRsY3lhbixcblx0bGdyYXksXG5cdGxncmVlbixcblx0bG1hZ2VudGEsXG5cdGx5ZWxsb3csXG5cdG1ibHVlLFxuXHRtY3lhbixcblx0bWdyZWVuLFxuXHRtbWFnZW50YSxcblx0bXJlZCxcblx0bXllbGxvdyxcblx0Ymx1ZSxcblx0Y3lhbixcblx0Z3JheSxcblx0Z3JlZW4sXG5cdG1hZ2VudGEsXG5cdG5vcm1hbCxcblx0cmVkLFxuXHR3aGl0ZSxcblx0eWVsbG93LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvdW50TGVhdmVzKHQsIG9iaikge1xuXHRpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSByZXR1cm4gMDtcblx0aWYgKG9iaiBpbnN0YW5jZW9mIHQpIHJldHVybiAxO1xuXHRpZiAoQXJyYXkuaXNBcnJheShvYmopKSByZXR1cm4gb2JqLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyBjb3VudExlYXZlcyh0LCBpdGVtKSwgMCk7XG5cdGVsc2UgcmV0dXJuIE9iamVjdC52YWx1ZXMob2JqKS5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4gc3VtICsgY291bnRMZWF2ZXModCwgaXRlbSksIDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlRXh0cmFGbGFncyhhcmdzKSB7XG5cdHJldHVybiBhcmdzLmZpbHRlcigoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbWQodGltZW91dCwgLi4uY29tbWFuZHMpIHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRjb25zdCBbYmluLCAuLi5hcmdzXSA9IGNvbW1hbmRzO1xuXHRcdGNvbnN0IGNoaWxkID0gc3Bhd24oYmluLCBhcmdzLCB7XG5cdFx0XHRkZXRhY2hlZDogcHJvY2Vzcy5lbnYuV0lUU0RLX0RSWV9SVU5fREVUQUNIRUQgfHwgZmFsc2UsXG5cdFx0XHRzaGVsbDogcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiLFxuXHRcdFx0c3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuXHRcdFx0ZW52OiB7XG5cdFx0XHRcdC4uLnByb2Nlc3MuZW52LFxuXHRcdFx0XHROUE1fQ09ORklHX1lFUzogXCJ0cnVlXCIsIC8vID0+IHByZXZlbnRzIG5weCBmcm9tIHNwYXduaW5nIGludGVyYWN0aXZlIHByb21wdHNcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHRsZXQgc3Rkb3V0ID0gXCJcIjtcblx0XHRsZXQgc3RkZXJyID0gXCJcIjtcblx0XHRsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuXHRcdGNvbnN0IGtpbGxUcmVlID0gKCkgPT4ge1xuXHRcdFx0aWYgKCFjaGlsZC5waWQpIHJldHVybjtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIpIHtcblx0XHRcdFx0XHRzcGF3bihcInRhc2traWxsXCIsIFtcIi9QSURcIiwgY2hpbGQucGlkLnRvU3RyaW5nKCksIFwiL1RcIiwgXCIvRlwiXSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8ga2lsbCBlbnRpcmUgcHJvY2VzcyBncm91cFxuXHRcdFx0XHRcdHByb2Nlc3Mua2lsbCgtY2hpbGQucGlkLCBcIlNJR0tJTExcIik7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2gge31cblx0XHR9O1xuXG5cdFx0Y29uc3QgdGltZXIgPVxuXHRcdFx0dGltZW91dCA+IDBcblx0XHRcdFx0PyBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuXHRcdFx0XHRcdFx0ZmluaXNoZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0a2lsbFRyZWUoKTtcblx0XHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYG5weCBzaGVsbCBjb21tYW5kIHRpbWVkIG91dCBhZnRlciAke2NvbW1hcyh0aW1lb3V0KX0gbXNgKSk7XG5cdFx0XHRcdFx0fSwgdGltZW91dClcblx0XHRcdFx0OiBudWxsO1xuXG5cdFx0Y2hpbGQuc3Rkb3V0Lm9uKFwiZGF0YVwiLCAoZCkgPT4gKHN0ZG91dCArPSBkLnRvU3RyaW5nKCkpKTtcblx0XHRjaGlsZC5zdGRlcnIub24oXCJkYXRhXCIsIChkKSA9PiAoc3RkZXJyICs9IGQudG9TdHJpbmcoKSkpO1xuXG5cdFx0Y2hpbGQub24oXCJlcnJvclwiLCAoZXJyKSA9PiB7XG5cdFx0XHRpZiAoZmluaXNoZWQpIHJldHVybjtcblx0XHRcdGZpbmlzaGVkID0gdHJ1ZTtcblx0XHRcdGlmICh0aW1lcikgY2xlYXJUaW1lb3V0KHRpbWVyKTtcblx0XHRcdGtpbGxUcmVlKCk7XG5cdFx0XHRyZWplY3QoZXJyKTtcblx0XHR9KTtcblxuXHRcdGNoaWxkLm9uKFwiY2xvc2VcIiwgKGNvZGUsIHNpZ25hbCkgPT4ge1xuXHRcdFx0aWYgKGZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHRmaW5pc2hlZCA9IHRydWU7XG5cdFx0XHRpZiAodGltZXIpIGNsZWFyVGltZW91dCh0aW1lcik7XG5cblx0XHRcdGlmIChzaWduYWwpIHtcblx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgbnB4IHRlcm1pbmF0ZWQgYnkgc2lnbmFsICR7c2lnbmFsfWApKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoY29kZSAhPT0gMCkge1xuXHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGBucHggZmFpbGVkIHdpdGggZXhpdCBjb2RlICR7Y29kZX1cXG4ke3N0ZGVycn1gKSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0cmVzb2x2ZShzdGRvdXQpO1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWNSYWRvbkJ5dGVjb2RlKGJ5dGVjb2RlLCB0aW1lb3V0LCAuLi5mbGFncykge1xuXHRpZiAoIWlzSGV4U3RyaW5nKGJ5dGVjb2RlKSkge1xuXHRcdHRocm93IEV2YWxFcnJvcihcImludmFsaWQgaGV4IHN0cmluZ1wiKTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBucHggPSBvcy50eXBlKCkgPT09IFwiV2luZG93c19OVFwiID8gXCJucHguY21kXCIgOiBcIm5weFwiO1xuXHRcdHJldHVybiBjbWQodGltZW91dCwgbnB4LCBcIndpdHNka1wiLCBcInJhZG9uXCIsIFwiZHJ5LXJ1blwiLCBieXRlY29kZSwgLi4uZmxhZ3MpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RnJvbUFyZ3MoYXJncywgZmxhZ3MpIHtcblx0Y29uc3QgY3VyYXRlZCA9IHt9O1xuXHRpZiAoYXJncyAmJiBmbGFncykge1xuXHRcdE9iamVjdC5rZXlzKGZsYWdzKS5mb3JFYWNoKChmbGFnKSA9PiB7XG5cdFx0XHRjb25zdCBmbGFnSW5kZXggPSBhcmdzLmluZGV4T2YoYC0tJHtmbGFnfWApO1xuXHRcdFx0aWYgKGZsYWdJbmRleCA+PSAwKSB7XG5cdFx0XHRcdGlmIChmbGFnc1tmbGFnXS5wYXJhbSkge1xuXHRcdFx0XHRcdGN1cmF0ZWRbZmxhZ10gPSBhcmdzW2ZsYWdJbmRleF07XG5cdFx0XHRcdFx0aWYgKCFhcmdzW2ZsYWdJbmRleCArIDFdIHx8IGFyZ3NbZmxhZ0luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIC0tJHtmbGFnfWApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjdXJhdGVkW2ZsYWddID0gYXJnc1tmbGFnSW5kZXggKyAxXTtcblx0XHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGN1cmF0ZWRbZmxhZ10gPSB0cnVlO1xuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gW2FyZ3MsIGN1cmF0ZWRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUhleFN0cmluZyhoZXhTdHJpbmcpIHtcblx0aWYgKGhleFN0cmluZy5zdGFydHNXaXRoKFwiMHhcIikpIGhleFN0cmluZyA9IGhleFN0cmluZy5zbGljZSgyKTtcblx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShoZXhTdHJpbmcubWF0Y2goLy57MSwyfS9nKS5tYXAoKGJ5dGUpID0+IHBhcnNlSW50KGJ5dGUsIDE2KSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXBJc1ByaXZhdGVPckxvY2FsaG9zdChpcCkge1xuXHRpZiAoaXAuc3Vic3RyaW5nKDAsIDcpID09PSBcIjo6ZmZmZjpcIikge1xuXHRcdGlwID0gaXAuc3Vic3RyaW5nKDcpO1xuXHR9XG5cblx0aWYgKG5ldC5pc0lQdjQoaXApKSB7XG5cdFx0Ly8gY2hlY2sgbG9jYWxob3N0XG5cdFx0aWYgKGlwID09PSBcIjEyNy4wLjAuMVwiKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyAgICAgICAgIDEwLjAuMC4wIC0gMTAuMjU1LjI1NS4yNTUgICAgICAgIHx8ICAgMTcyLjE2LjAuMCAtIDE3Mi4zMS4yNTUuMjU1ICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAgICAxOTIuMTY4LjAuMCAtIDE5Mi4xNjguMjU1LjI1NVxuXHRcdHJldHVybiAoXG5cdFx0XHQvXigxMClcXC4oLiopXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKSB8fFxuXHRcdFx0L14oMTcyKVxcLigxWzYtOV18MlswLTldfDNbMC0xXSlcXC4oLiopXFwuKC4qKSQvLnRlc3QoaXApIHx8XG5cdFx0XHQvXigxOTIpXFwuKDE2OClcXC4oLiopXFwuKC4qKSQvLnRlc3QoaXApXG5cdFx0KTtcblx0fVxuXG5cdC8vIGVsc2U6IGlwIGlzIElQdjZcblx0Y29uc3QgZmlyc3RXb3JkID0gaXAuc3BsaXQoXCI6XCIpLmZpbmQoKGVsKSA9PiAhIWVsKTsgLy8gZ2V0IGZpcnN0IG5vdCBlbXB0eSB3b3JkXG5cblx0Ly8gZXF1aXZhbGVudCBvZiAxMjcuMC4wLjEgaW4gSVB2NlxuXHRpZiAoaXAgPT09IFwiOjoxXCIpIHJldHVybiB0cnVlO1xuXHQvLyBUaGUgb3JpZ2luYWwgSVB2NiBTaXRlIExvY2FsIGFkZHJlc3NlcyAoZmVjMDo6LzEwKSBhcmUgZGVwcmVjYXRlZC4gUmFuZ2U6IGZlYzAgLSBmZWZmXG5cdGVsc2UgaWYgKC9eZmVbYy1mXVswLWZdJC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZTtcblx0Ly8gVGhlc2UgZGF5cyBVbmlxdWUgTG9jYWwgQWRkcmVzc2VzIChVTEEpIGFyZSB1c2VkIGluIHBsYWNlIG9mIFNpdGUgTG9jYWwuXG5cdC8vIFJhbmdlOiBmYzAwIC0gZmNmZlxuXHRlbHNlIGlmICgvXmZjWzAtZl17Mn0kLy50ZXN0KGZpcnN0V29yZCkpIHJldHVybiB0cnVlO1xuXHQvLyBSYW5nZTogZmQwMCAtIGZjZmZcblx0ZWxzZSBpZiAoL15mZFswLWZdezJ9JC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZTtcblx0Ly8gTGluayBsb2NhbCBhZGRyZXNzZXMgKHByZWZpeGVkIHdpdGggZmU4MCkgYXJlIG5vdCByb3V0YWJsZVxuXHRlbHNlIGlmIChmaXJzdFdvcmQgPT09IFwiZmU4MFwiKSByZXR1cm4gdHJ1ZTtcblx0Ly8gRGlzY2FyZCBQcmVmaXhcblx0ZWxzZSBpZiAoZmlyc3RXb3JkID09PSBcIjEwMFwiKSByZXR1cm4gdHJ1ZTtcblxuXHQvLyBBbnkgb3RoZXIgSVAgYWRkcmVzcyBpcyBub3QgVW5pcXVlIExvY2FsIEFkZHJlc3MgKFVMQSlcblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIZXhTdHJpbmdPZkxlbmd0aChzdHIsIGxlbmd0aCkge1xuXHRyZXR1cm4gKFxuXHRcdChpc0hleFN0cmluZyhzdHIpICYmICgoc3RyLnN0YXJ0c1dpdGgoXCIweFwiKSAmJiBzdHIuc2xpY2UoMikubGVuZ3RoID09PSBsZW5ndGggKiAyKSB8fCBzdHIubGVuZ3RoID09PSBsZW5ndGggKiAyKSkgfHxcblx0XHRpc1dpbGRjYXJkKHN0cilcblx0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSGV4U3RyaW5nKHN0cikge1xuXHRyZXR1cm4gKFxuXHRcdCh0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHQoKHN0ci5zdGFydHNXaXRoKFwiMHhcIikgJiYgL15bYS1mQS1GMC05XSskL2kudGVzdChzdHIuc2xpY2UoMikpKSB8fCAvXlthLWZBLUYwLTldKyQvaS50ZXN0KHN0cikpKSB8fFxuXHRcdGlzV2lsZGNhcmQoc3RyKVxuXHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9IZXhTdHJpbmcoYnVmZmVyLCBwcmVmaXgweCA9IGZhbHNlKSB7XG5cdGlmIChidWZmZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSBidWZmZXIgPSBCdWZmZXIuZnJvbShidWZmZXIpO1xuXHRyZXR1cm4gKFxuXHRcdChwcmVmaXgweCA/IFwiMHhcIiA6IFwiXCIpICtcblx0XHRBcnJheS5wcm90b3R5cGUubWFwXG5cdFx0XHQuY2FsbChidWZmZXIsICh4KSA9PiBgMDAke3gudG9TdHJpbmcoMTYpfWAuc2xpY2UoLTIpKVxuXHRcdFx0LmpvaW4oXCJcIilcblx0XHRcdC5tYXRjaCgvW2EtZkEtRjAtOV17Mn0vZylcblx0XHRcdC5qb2luKFwiXCIpXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVVSTCh1cmwpIHtcblx0dHJ5IHtcblx0XHRjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybCk7XG5cdFx0cmV0dXJuIFtgJHtwYXJzZWRVcmwucHJvdG9jb2x9Ly9gLCBwYXJzZWRVcmwuaG9zdCwgcGFyc2VkVXJsLnBhdGhuYW1lLnNsaWNlKDEpLCBwYXJzZWRVcmwuc2VhcmNoLnNsaWNlKDEpXTtcblx0fSBjYXRjaCB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBVUkwgd2FzIHByb3ZpZGVkOiAke3VybH1gKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlKGNtZCwgbW9kdWxlKSB7XG5cdHNob3dVc2FnZUhlYWRsaW5lKGNtZCk7XG5cdHNob3dVc2FnZU9wdGlvbnMoeyAuLi5tb2R1bGU/LmZsYWdzIH0pO1xuXHRzaG93VXNhZ2VGbGFncyh7IC4uLm1vZHVsZT8uZmxhZ3MgfSk7XG5cdHNob3dVc2FnZVJvdXRlcih7IC4uLm1vZHVsZT8ucm91dGVyIH0pO1xuXHRzaG93VXNhZ2VFbnZhcnMoeyAuLi5tb2R1bGU/LmVudmFycyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZVJvdXRlcihyb3V0ZXIpIHtcblx0Y29uc3QgY21kcyA9IE9iamVjdC5lbnRyaWVzKHJvdXRlcik7XG5cdGlmIChjbWRzLmxlbmd0aCA+IDApIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5TVUJDT01NQU5EUzpcIik7XG5cdFx0Y29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoLi4uY21kcy5tYXAoKFtjbWRdKSA9PiBjbWQubGVuZ3RoKSk7XG5cdFx0Y21kcy5mb3JFYWNoKChjbWQpID0+IHtcblx0XHRcdGNvbnNvbGUuaW5mbyhcIiAgXCIsIGAke2NtZFswXX0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjbWRbMF0ubGVuZ3RoKX1gLCBcIiAgXCIsIGNtZFsxXS5oaW50KTtcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlRXJyb3IoY21kLCBzdWJjbWQsIG1vZHVsZSwgZXJyb3IsIGZsYWdzKSB7XG5cdHNob3dVc2FnZVN1YmNvbW1hbmQoY21kLCBzdWJjbWQsIG1vZHVsZSwgZXJyb3IpO1xuXHRpZiAoZXJyb3IpIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5FUlJPUjpcIik7XG5cdFx0aWYgKGZsYWdzPy5kZWJ1Zykge1xuXHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoY29sb3JzLnJlZChlcnJvcj8uc3RhY2s/LnNwbGl0KFwiXFxuXCIpWzBdIHx8IGVycm9yKSk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VXNhZ2VFbnZhcnMoZW52YXJzKSB7XG5cdGlmIChlbnZhcnMpIHtcblx0XHRlbnZhcnMgPSBPYmplY3QuZW50cmllcyhlbnZhcnMpO1xuXHRcdGlmIChlbnZhcnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKFwiXFxuRU5WQVJTOlwiKTtcblx0XHRcdGNvbnN0IG1heFdpZHRoID0gTWF0aC5tYXgoLi4uZW52YXJzLm1hcCgoW2VudmFyXSkgPT4gZW52YXIubGVuZ3RoKSk7XG5cdFx0XHRlbnZhcnMuZm9yRWFjaCgoW2VudmFyLCBoaW50XSkgPT4ge1xuXHRcdFx0XHRpZiAoZW52YXIudG9VcHBlckNhc2UoKS5pbmRleE9mKFwiS0VZXCIpIDwgMCAmJiBwcm9jZXNzLmVudltlbnZhcl0pIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRcdFx0XHRcIiAgXCIsXG5cdFx0XHRcdFx0XHRgJHt5ZWxsb3coZW52YXIudG9VcHBlckNhc2UoKSl9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBlbnZhci5sZW5ndGgpfWAsXG5cdFx0XHRcdFx0XHRgID0+IFNldHRsZWQgdG8gXCIke215ZWxsb3cocHJvY2Vzcy5lbnZbZW52YXJdKX1cImAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXCIgIFwiLCBgJHt5ZWxsb3coZW52YXIudG9VcHBlckNhc2UoKSl9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBlbnZhci5sZW5ndGgpfWAsIGAgJHtoaW50fWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZUZsYWdzKGZsYWdzKSB7XG5cdGlmIChmbGFncykge1xuXHRcdGZsYWdzID0gT2JqZWN0LmVudHJpZXMoZmxhZ3MpXG5cdFx0XHQuZmlsdGVyKChbLCBmbGFnXSkgPT4gIWZsYWc/LnBhcmFtKVxuXHRcdFx0LnNvcnQoKFthXSwgW2JdKSA9PiB7XG5cdFx0XHRcdGlmIChhIDwgYikgcmV0dXJuIC0xO1xuXHRcdFx0XHRlbHNlIGlmIChhID4gYikgcmV0dXJuIDE7XG5cdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHR9KTtcblx0XHRpZiAoZmxhZ3MubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKFwiXFxuRkxBR1M6XCIpO1xuXHRcdFx0Y29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoXG5cdFx0XHRcdC4uLmZsYWdzXG5cdFx0XHRcdFx0LmZpbHRlcigoWywgeyBoaW50IH1dKSA9PiBoaW50KVxuXHRcdFx0XHRcdC5tYXAoKFtrZXksIHsgcGFyYW0gfV0pID0+IChwYXJhbSA/IGtleS5sZW5ndGggKyBwYXJhbS5sZW5ndGggKyAzIDoga2V5Lmxlbmd0aCkpLFxuXHRcdFx0KTtcblx0XHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdFx0Y29uc3Qgc3RyID0gYCR7ZmxhZ1swXX0ke2ZsYWdbMV0ucGFyYW0gPyBncmF5KGAgPCR7ZmxhZ1sxXS5wYXJhbX0+YCkgOiBcIlwifWA7XG5cdFx0XHRcdGlmIChmbGFnWzFdLmhpbnQpIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXCIgIFwiLCBgLS0ke3N0cn0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjb2xvcnN0cmlwKHN0cikubGVuZ3RoKX1gLCBcIiAgXCIsIGZsYWdbMV0uaGludCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlSGVhZGxpbmUoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuXHRjb25zb2xlLmluZm8oXCJVU0FHRTpcIik7XG5cdGlmIChzdWJjbWQpIHtcblx0XHRsZXQgcGFyYW1zID0gbW9kdWxlLnJvdXRlcltzdWJjbWRdPy5wYXJhbXM7XG5cdFx0Ly8gY29uc3Qgb3B0aW9ucyA9IG1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9uc1xuXHRcdGlmIChwYXJhbXMpIHtcblx0XHRcdGNvbnN0IG9wdGlvbmFsaXplID0gKHN0cikgPT5cblx0XHRcdFx0c3RyLmVuZHNXaXRoKFwiIC4uLl1cIikgPyBgWzwke3N0ci5zbGljZSgxLCAtNSl9PiAuLi5dYCA6IHN0clswXSA9PT0gXCJbXCIgPyBgWzwke3N0ci5zbGljZSgxLCAtMSl9Pl1gIDogYDwke3N0cn0+YDtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHBhcmFtcykpIHtcblx0XHRcdFx0cGFyYW1zID0gYCR7cGFyYW1zLm1hcCgocGFyYW0pID0+IG9wdGlvbmFsaXplKHBhcmFtKSkuam9pbihcIiBcIil9IGA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYXJhbXMgPSBvcHRpb25hbGl6ZShwYXJhbXMpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRgICAgJHtjb2xvcnMud2hpdGUoYG5weCB3aXRzZGsgJHtjbWR9YCl9ICR7Y29sb3JzLndoaXRlKHN1YmNtZCl9ICR7cGFyYW1zID8gYCR7Y29sb3JzLmdyZWVuKHBhcmFtcyl9IGAgOiBcIlwifVtPUFRJT05TXSBbRkxBR1NdYCxcblx0XHQpO1xuXHRcdGlmIChtb2R1bGU/LnJvdXRlcltzdWJjbWRdPy5oaW50KSB7XG5cdFx0XHRjb25zb2xlLmluZm8oXCJcXG5ERVNDUklQVElPTjpcIik7XG5cdFx0XHRjb25zb2xlLmluZm8oYCAgICR7bW9kdWxlLnJvdXRlcltzdWJjbWRdLmhpbnR9YCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGNvbnNvbGUuaW5mbyhgICAgJHtjb2xvcnMud2hpdGUoYG5weCB3aXRzZGsgJHtjbWR9YCl9IDxTVUJDT01NQU5EPiAuLi4gW09QVElPTlNdIFtGTEFHU11gKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlT3B0aW9ucyhvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBPYmplY3QuZW50cmllcyhvcHRpb25zKVxuXHRcdC5maWx0ZXIoKFssIG9wdGlvbl0pID0+IG9wdGlvbj8ucGFyYW0pXG5cdFx0LnNvcnQoKFthXSwgW2JdKSA9PiB7XG5cdFx0XHRpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdGVsc2UgaWYgKGEgPiBiKSByZXR1cm4gMTtcblx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0fSk7XG5cdGlmIChvcHRpb25zLmxlbmd0aCA+IDApIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5PUFRJT05TOlwiKTtcblx0XHRjb25zdCBtYXhMZW5ndGggPSBvcHRpb25zXG5cdFx0XHQubWFwKChvcHRpb24pID0+IChvcHRpb25bMV0ucGFyYW0gPyBvcHRpb25bMV0ucGFyYW0ubGVuZ3RoICsgb3B0aW9uWzBdLmxlbmd0aCArIDMgOiBvcHRpb25bMF0ubGVuZ3RoKSlcblx0XHRcdC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KSk7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGlmIChvcHRpb25bMV0uaGludCkge1xuXHRcdFx0XHRjb25zdCBzdHIgPSBgJHtvcHRpb25bMF19JHtvcHRpb25bMV0ucGFyYW0gPyBncmF5KGAgPCR7b3B0aW9uWzFdLnBhcmFtfT5gKSA6IFwiXCJ9YDtcblx0XHRcdFx0Y29uc29sZS5pbmZvKFwiICBcIiwgYC0tJHtzdHJ9JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY29sb3JzdHJpcChzdHIpLmxlbmd0aCl9YCwgXCIgIFwiLCBvcHRpb25bMV0uaGludCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZVN1YmNvbW1hbmQoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuXHRzaG93VXNhZ2VIZWFkbGluZShjbWQsIHN1YmNtZCwgbW9kdWxlKTtcblx0c2hvd1VzYWdlT3B0aW9ucyh7IC4uLm1vZHVsZT8uZmxhZ3MsIC4uLm1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9ucyB9KTtcblx0c2hvd1VzYWdlRmxhZ3MoeyAuLi5tb2R1bGU/LmZsYWdzLCAuLi5tb2R1bGUucm91dGVyW3N1YmNtZF0/Lm9wdGlvbnMgfSk7XG5cdHNob3dVc2FnZUVudmFycyhtb2R1bGUucm91dGVyW3N1YmNtZF0/LmVudmFycyB8fCBtb2R1bGU/LmVudmFycyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VmVyc2lvbigpIHtcblx0Y29uc29sZS5pbmZvKGAke2NvbG9ycy5tY3lhbihgV2l0bmV0IFNESyB2JHtyZXF1aXJlKFwiLi4vLi4vcGFja2FnZS5qc29uXCIpLnZlcnNpb259YCl9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaWxkY2FyZHNDb3VudEZyb21TdHJpbmcoc3RyKSB7XG5cdGxldCBtYXhBcmdzSW5kZXggPSAwO1xuXHRpZiAoc3RyICYmIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIpIHtcblx0XHRsZXQgbWF0Y2g7XG5cdFx0Y29uc3QgcmVnZXhwID0gL1xcXFxcXGRcXFxcL2c7XG5cdFx0d2hpbGUgKChtYXRjaCA9IHJlZ2V4cC5leGVjKHN0cikpICE9PSBudWxsKSB7XG5cdFx0XHRjb25zdCBhcmdzSW5kZXggPSBwYXJzZUludChtYXRjaFswXVsxXSwgMTApICsgMTtcblx0XHRcdGlmIChhcmdzSW5kZXggPiBtYXhBcmdzSW5kZXgpIG1heEFyZ3NJbmRleCA9IGFyZ3NJbmRleDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIG1heEFyZ3NJbmRleDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUnBjV2lsZGNhcmRzKHdpbGRjYXJkcykge1xuXHRpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJvYmplY3RcIikge1xuXHRcdE9iamVjdC52YWx1ZXMod2lsZGNhcmRzKS5mb3JFYWNoKCh3aWxkY2FyZCkgPT4ge1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkod2lsZGNhcmQpKVxuXHRcdFx0XHR3aWxkY2FyZC5mb3JFYWNoKChpdGVtKSA9PiB7XG5cdFx0XHRcdFx0Y2hlY2tScGNXaWxkY2FyZHMoaXRlbSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0ZWxzZSBjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh3aWxkY2FyZHMpKSB7XG5cdFx0d2lsZGNhcmRzLmZvckVhY2goKHdpbGRjYXJkKSA9PiB7XG5cdFx0XHRjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdGlmIChpc1dpbGRjYXJkKHdpbGRjYXJkcykpIHtcblx0XHRcdGNvbnN0IGNoYXIgPSB3aWxkY2FyZHMuY2hhckF0KDEpO1xuXHRcdFx0aWYgKGNoYXIgPCBcIjBcIiB8fCBjaGFyID4gXCI5XCIpIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoXCJSUEM6IHdpbGRjYXJkcyBub3QgaW4gcmFuZ2UgWzAgLi4gOV1cIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1dpbGRjYXJkKHN0cikge1xuXHRyZXR1cm4gc3RyLmxlbmd0aCA9PT0gMyAmJiAvXFxcXFxcZFxcXFwvZy50ZXN0KHN0cik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlV2lsZGNhcmRzKG9iaiwgYXJncykge1xuXHRpZiAoYXJncy5sZW5ndGggPiAxMCkgYXJncyA9IGFyZ3Muc2xpY2UoMCwgMTApO1xuXHRpZiAob2JqICYmIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcblx0XHRmb3IgKGxldCBhcmdJbmRleCA9IDA7IGFyZ0luZGV4IDwgYXJncy5sZW5ndGg7IGFyZ0luZGV4KyspIHtcblx0XHRcdGNvbnN0IHdpbGRjYXJkID0gYFxcXFwke2FyZ0luZGV4fVxcXFxgO1xuXHRcdFx0b2JqID0gb2JqLnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ3NbYXJnSW5kZXhdKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdG9iaiA9IG9iai5tYXAoKHZhbHVlKSA9PlxuXHRcdFx0dHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpID8gcmVwbGFjZVdpbGRjYXJkcyh2YWx1ZSwgYXJncykgOiB2YWx1ZSxcblx0XHQpO1xuXHR9IGVsc2UgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiKSB7XG5cdFx0b2JqID0gcmVwbGFjZU9iamVjdFdpbGRjYXJkcyhvYmosIGFyZ3MpO1xuXHR9XG5cdHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlT2JqZWN0V2lsZGNhcmRzKG9iaiwgYXJncykge1xuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRcdGZvciAobGV0IGFyZ0luZGV4ID0gMDsgYXJnSW5kZXggPCBhcmdzLmxlbmd0aDsgYXJnSW5kZXgrKykge1xuXHRcdFx0XHRjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYDtcblx0XHRcdFx0a2V5ID0ga2V5LnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ3NbYXJnSW5kZXhdKTtcblx0XHRcdFx0dmFsdWUgPSByZXBsYWNlV2lsZGNhcmRzKHZhbHVlLCBhcmdzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBba2V5LCB2YWx1ZV07XG5cdFx0fSksXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpY2VXaWxkY2FyZChvYmosIGFyZ0luZGV4LCBhcmdWYWx1ZSwgYXJnc0NvdW50KSB7XG5cdGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xuXHRcdGNvbnN0IHdpbGRjYXJkID0gYFxcXFwke2FyZ0luZGV4fVxcXFxgO1xuXHRcdG9iaiA9IG9iai5yZXBsYWNlQWxsKHdpbGRjYXJkLCBhcmdWYWx1ZSk7XG5cdFx0Zm9yIChsZXQgaiA9IGFyZ0luZGV4ICsgMTsgaiA8IGFyZ3NDb3VudDsgaisrKSB7XG5cdFx0XHRvYmogPSBvYmoucmVwbGFjZUFsbChgXFxcXCR7an1cXFxcYCwgYFxcXFwke2ogLSAxfVxcXFxgKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdG9iaiA9IG9iai5tYXAoKHZhbHVlKSA9PlxuXHRcdFx0dHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpID8gc3BsaWNlV2lsZGNhcmQodmFsdWUsIGFyZ0luZGV4LCBhcmdWYWx1ZSwgYXJnc0NvdW50KSA6IHZhbHVlLFxuXHRcdCk7XG5cdH1cblx0cmV0dXJuIG9iajtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRvb2xraXRSdW4oc2V0dGluZ3MsIGFyZ3MpIHtcblx0Y29uc3QgY21kID0gYCR7c2V0dGluZ3MucGF0aHMudG9vbGtpdEJpblBhdGh9ICR7YXJncy5qb2luKFwiIFwiKX1gO1xuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdGV4ZWMoY21kLCB7IHRpbWVvdXQ6IF9UT09MS0lUX1JVTl9USU1FT1VUX01TRUNTLCBtYXhCdWZmZXI6IDEwMjQgKiAxMDI0ICogMTAgfSwgKGVycm9yLCBzdGRvdXQsIHN0ZGVycikgPT4ge1xuXHRcdFx0aWYgKGVycm9yKSB7XG5cdFx0XHRcdHJlamVjdChlcnJvcik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoc3RkZXJyKSB7XG5cdFx0XHRcdHJlamVjdChzdGRlcnIpO1xuXHRcdFx0fVxuXHRcdFx0cmVzb2x2ZShzdGRvdXQpO1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVXBwZXJDYW1lbENhc2Uoc3RyKSB7XG5cdHJldHVybiBzdHIucmVwbGFjZSgvXFxiKFxcdykvZywgKF9tYXRjaCwgY2FwdHVyZSkgPT4gY2FwdHVyZS50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9cXHMrL2csIFwiXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VdGYxNkJ5dGVzKHN0cikge1xuXHRjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KHN0ci5sZW5ndGggKiAyKTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cdFx0Ynl0ZXNbaSAqIDJdID0gY29kZSA+PiA4O1xuXHRcdGJ5dGVzW2kgKiAyICsgMV0gPSBjb2RlICYgMHhmZjtcblx0fVxuXHRyZXR1cm4gYnl0ZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjhBcnJheShzdHIpIHtcblx0Y29uc3QgdXRmOCA9IFtdO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuXHRcdGxldCBjaGFyY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuXHRcdGlmIChjaGFyY29kZSA8IDB4ODApIHV0ZjgucHVzaChjaGFyY29kZSk7XG5cdFx0ZWxzZSBpZiAoY2hhcmNvZGUgPCAweDgwMCkge1xuXHRcdFx0dXRmOC5wdXNoKDB4YzAgfCAoY2hhcmNvZGUgPj4gNiksIDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSk7XG5cdFx0fSBlbHNlIGlmIChjaGFyY29kZSA8IDB4ZDgwMCB8fCBjaGFyY29kZSA+PSAweGUwMDApIHtcblx0XHRcdHV0ZjgucHVzaCgweGUwIHwgKGNoYXJjb2RlID4+IDEyKSwgMHg4MCB8ICgoY2hhcmNvZGUgPj4gNikgJiAweDNmKSwgMHg4MCB8IChjaGFyY29kZSAmIDB4M2YpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gc3Vycm9nYXRlIHBhaXJcblx0XHRcdGkrKztcblx0XHRcdC8vIFVURi0xNiBlbmNvZGVzIDB4MTAwMDAtMHgxMEZGRkYgYnlcblx0XHRcdC8vIHN1YnRyYWN0aW5nIDB4MTAwMDAgYW5kIHNwbGl0dGluZyB0aGVcblx0XHRcdC8vIDIwIGJpdHMgb2YgMHgwLTB4RkZGRkYgaW50byB0d28gaGFsdmVzXG5cdFx0XHRjaGFyY29kZSA9IDB4MTAwMDAgKyAoKChjaGFyY29kZSAmIDB4M2ZmKSA8PCAxMCkgfCAoc3RyLmNoYXJDb2RlQXQoaSkgJiAweDNmZikpO1xuXHRcdFx0dXRmOC5wdXNoKFxuXHRcdFx0XHQweGYwIHwgKGNoYXJjb2RlID4+IDE4KSxcblx0XHRcdFx0MHg4MCB8ICgoY2hhcmNvZGUgPj4gMTIpICYgMHgzZiksXG5cdFx0XHRcdDB4ODAgfCAoKGNoYXJjb2RlID4+IDYpICYgMHgzZiksXG5cdFx0XHRcdDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB1dGY4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXRmOEFycmF5VG9TdHIoYXJyYXkpIHtcblx0Y29uc3QgbGVuID0gYXJyYXkubGVuZ3RoO1xuXHRsZXQgb3V0ID0gXCJcIjtcblx0bGV0IGkgPSAwO1xuXHRsZXQgYztcblx0bGV0IGNoYXIyLCBjaGFyMztcblx0d2hpbGUgKGkgPCBsZW4pIHtcblx0XHRjID0gYXJyYXlbaSsrXTtcblx0XHRzd2l0Y2ggKGMgPj4gNCkge1xuXHRcdFx0Y2FzZSAwOlxuXHRcdFx0Y2FzZSAxOlxuXHRcdFx0Y2FzZSAyOlxuXHRcdFx0Y2FzZSAzOlxuXHRcdFx0Y2FzZSA0OlxuXHRcdFx0Y2FzZSA1OlxuXHRcdFx0Y2FzZSA2OlxuXHRcdFx0Y2FzZSA3OlxuXHRcdFx0XHQvLyAweHh4eHh4eFxuXHRcdFx0XHRvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDEyOlxuXHRcdFx0Y2FzZSAxMzpcblx0XHRcdFx0Ly8gMTEweCB4eHh4ICAgMTB4eCB4eHh4XG5cdFx0XHRcdGNoYXIyID0gYXJyYXlbaSsrXTtcblx0XHRcdFx0b3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjICYgMHgxZikgPDwgNikgfCAoY2hhcjIgJiAweDNmKSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAxNDpcblx0XHRcdFx0Ly8gMTExMCB4eHh4ICAxMHh4IHh4eHggIDEweHggeHh4eFxuXHRcdFx0XHRjaGFyMiA9IGFycmF5W2krK107XG5cdFx0XHRcdGNoYXIzID0gYXJyYXlbaSsrXTtcblx0XHRcdFx0b3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjICYgMHgwZikgPDwgMTIpIHwgKChjaGFyMiAmIDB4M2YpIDw8IDYpIHwgKChjaGFyMyAmIDB4M2YpIDw8IDApKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBvdXQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9tcHQocXVlc3Rpb24pIHtcblx0Y29uc3QgcmVhZGxpbmVJbnRlcmZhY2UgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2Uoe1xuXHRcdGlucHV0OiBwcm9jZXNzLnN0ZGluLFxuXHRcdG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG5cdH0pO1xuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIF9yZWplY3QpID0+IHtcblx0XHRyZWFkbGluZUludGVyZmFjZS5xdWVzdGlvbihgJHtxdWVzdGlvbn0gYCwgKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRyZWFkbGluZUludGVyZmFjZS5jbG9zZSgpO1xuXHRcdFx0cmVzb2x2ZShyZXNwb25zZS50cmltKCkpO1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb21wdGVyKHByb21pc2UpIHtcblx0Y29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgaCA9IFtcInxcIiwgXCIvXCIsIFwiLVwiLCBcIlxcXFxcIl07XG5cdFx0bGV0IGkgPSAwO1xuXHRcdHJldHVybiBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRpID0gaSA+IDMgPyAwIDogaTtcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApO1xuXHRcdFx0aSsrO1xuXHRcdH0sIDUwKTtcblx0fSkoKTtcblx0cmV0dXJuIHByb21pc2UudGhlbigocmVzdWx0KSA9PiB7XG5cdFx0Y2xlYXJJbnRlcnZhbChsb2FkaW5nKTtcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxcYlxcYlwiKTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFdvcmtzcGFjZSgpIHtcblx0bGV0IHdvcmtzcGFjZSA9IHBhdGgubm9ybWFsaXplKHByb2Nlc3MuY3dkKCkpO1xuXHR3aGlsZSAoIWZzLmV4aXN0c1N5bmMoYCR7d29ya3NwYWNlfS93aXRuZXQvYXNzZXRzYCkgJiYgcGF0aC5kaXJuYW1lKHdvcmtzcGFjZSkgIT09IHdvcmtzcGFjZSkge1xuXHRcdHdvcmtzcGFjZSA9IHBhdGguZGlybmFtZSh3b3Jrc3BhY2UpO1xuXHR9XG5cdHJldHVybiB3b3Jrc3BhY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZUNoZWNrbGlzdHMoY2hlY2tsaXN0cykge1xuXHRpZiAoY2hlY2tsaXN0cyAmJiBPYmplY3Qua2V5cyhjaGVja2xpc3RzKS5sZW5ndGggPiAwKSB7XG5cdFx0Y29uc3QgaGVhZGxpbmVzID0gW1wiTk9ERVNcIiwgLi4uT2JqZWN0LmtleXMoY2hlY2tsaXN0cykubWFwKChrZXkpID0+IGA6JHtrZXl9YCldO1xuXHRcdGNoZWNrbGlzdHMgPSBPYmplY3QudmFsdWVzKGNoZWNrbGlzdHMpO1xuXHRcdGNvbnN0IHVybHMgPSBPYmplY3Qua2V5cyhjaGVja2xpc3RzWzBdKTtcblx0XHRjb25zdCByZWNvcmRzID0gdXJscy5tYXAoKHVybCkgPT4ge1xuXHRcdFx0Y29uc3QgZXJyb3JzID0gY2hlY2tsaXN0cy5maWx0ZXIoKGNoZWNrbGlzdCkgPT4gY2hlY2tsaXN0W3VybF0gaW5zdGFuY2VvZiBFcnJvcikubGVuZ3RoO1xuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0ZXJyb3JzID09PSBjaGVja2xpc3RzLmxlbmd0aCA/IGNvbG9ycy5yZWQodXJsKSA6IGVycm9ycyA+IDAgPyBjb2xvcnMubXllbGxvdyh1cmwpIDogY29sb3JzLm1jeWFuKHVybCksXG5cdFx0XHRcdC4uLmNoZWNrbGlzdHMubWFwKChjaGVja2xpc3QpID0+XG5cdFx0XHRcdFx0Y2hlY2tsaXN0W3VybF0gaW5zdGFuY2VvZiBFcnJvclxuXHRcdFx0XHRcdFx0PyBjb2xvcnMucmVkKGNoZWNrbGlzdFt1cmxdKVxuXHRcdFx0XHRcdFx0OiBjaGVja2xpc3RbdXJsXSA9PT0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHQ/IGNvbG9ycy5sY3lhbihcIkF5ZVwiKVxuXHRcdFx0XHRcdFx0XHQ6IGNvbG9ycy5jeWFuKFwiTmF5XCIpLFxuXHRcdFx0XHQpLFxuXHRcdFx0XTtcblx0XHR9KTtcblx0XHR0cmFjZVRhYmxlKHJlY29yZHMsIHtcblx0XHRcdGhlYWRsaW5lcyxcblx0XHRcdG1heENvbHVtbldpZHRoOiAzMSxcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VIZWFkZXIoaGVhZGxpbmUsIGNvbG9yID0gbm9ybWFsLCBpbmRlbnQgPSBcIlwiKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkbGluZS5sZW5ndGgpfeKUgOKUkGApO1xuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRsaW5lKX0g4pSCYCk7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkbGluZS5sZW5ndGgpfeKUgOKUmGApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VUYWJsZShyZWNvcmRzLCBvcHRpb25zKSB7XG5cdGNvbnN0IHN0cmluZ2lmeSA9IChkYXRhLCBodW1hbml6ZXJzLCBpbmRleCkgPT5cblx0XHRodW1hbml6ZXJzPy5baW5kZXhdID8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKSA6IChkYXRhPy50b1N0cmluZygpID8/IFwiXCIpO1xuXHRjb25zdCBtYXggPSAoYSwgYikgPT4gKGEgPiBiID8gYSA6IGIpO1xuXHRjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT4gbnVtYmVycy5yZWR1Y2UoKGN1cnIsIHByZXYpID0+IChwcmV2ID4gY3VyciA/IHByZXYgOiBjdXJyKSwgMCk7XG5cdGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuXHRjb25zdCBpbmRlbnQgPSBvcHRpb25zPy5pbmRlbnQgfHwgXCJcIjtcblx0Y29uc3QgbnVtQ29sdW1ucyA9IHJlZHVjZU1heChyZWNvcmRzLm1hcCgocmVjb3JkKSA9PiByZWNvcmQ/Lmxlbmd0aCB8fCAxKSk7XG5cdGNvbnN0IG1heENvbHVtbldpZHRoID0gb3B0aW9ucz8ubWF4Q29sdW1uV2lkdGggfHwgODA7XG5cdGNvbnN0IHRhYmxlID0gdHJhbnNwb3NlKHJlY29yZHMsIG51bUNvbHVtbnMpO1xuXHRvcHRpb25zLndpZHRocyA9XG5cdFx0b3B0aW9ucz8ud2lkdGhzIHx8XG5cdFx0dGFibGUubWFwKChjb2x1bW4sIGluZGV4KSA9PiB7XG5cdFx0XHRsZXQgbWF4V2lkdGggPSByZWR1Y2VNYXgoY29sdW1uLm1hcCgoZmllbGQpID0+IGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCkpO1xuXHRcdFx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcz8uW2luZGV4XSkge1xuXHRcdFx0XHRtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgY29sb3JzdHJpcChvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIikpLmxlbmd0aCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKTtcblx0XHR9KTtcblx0bGV0IGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKTtcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilKzilIBcIil94pSA4pSQYCk7XG5cdGlmIChvcHRpb25zPy5oZWFkbGluZXMpIHtcblx0XHRoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgsIGluZGV4KSA9PiB7XG5cdFx0XHRjb25zdCBjYXB0aW9uID0gb3B0aW9ucy5oZWFkbGluZXNbaW5kZXhdLnJlcGxhY2VBbGwoXCI6XCIsIFwiXCIpO1xuXHRcdFx0Y29uc3QgY2FwdGlvbkxlbmd0aCA9IGNvbG9yc3RyaXAoY2FwdGlvbikubGVuZ3RoO1xuXHRcdFx0cmV0dXJuIGAke3doaXRlKGNhcHRpb24pfSR7XCIgXCIucmVwZWF0KG1heFdpZHRoIC0gY2FwdGlvbkxlbmd0aCl9YDtcblx0XHR9KTtcblx0XHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2hlYWRsaW5lLmpvaW4oXCIg4pSCIFwiKX0g4pSCYCk7XG5cdFx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpO1xuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSc4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS84pSAXCIpfeKUgOKUpGApO1xuXHR9XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykge1xuXHRcdGxldCBsaW5lID0gXCJcIjtcblx0XHRmb3IgKGxldCBqID0gMDsgaiA8IG51bUNvbHVtbnM7IGorKykge1xuXHRcdFx0bGV0IGRhdGEgPSB0YWJsZVtqXVtpXTtcblx0XHRcdGxldCBjb2xvcjtcblx0XHRcdGlmIChvcHRpb25zPy5jb2xvcnM/LltqXSkge1xuXHRcdFx0XHRjb2xvciA9IG9wdGlvbnMuY29sb3JzW2pdO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29sb3IgPVxuXHRcdFx0XHRcdHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiXG5cdFx0XHRcdFx0XHQ/IGdyZWVuXG5cdFx0XHRcdFx0XHQ6IE51bWJlcihkYXRhKSA9PT0gZGF0YSAmJiBkYXRhICUgMSAhPT0gMCAvLyBpcyBmbG9hdCBudW1iZXI/XG5cdFx0XHRcdFx0XHRcdD8geWVsbG93XG5cdFx0XHRcdFx0XHRcdDogKHgpID0+IHg7XG5cdFx0XHR9XG5cdFx0XHRkYXRhID0gc3RyaW5naWZ5KGRhdGEsIG9wdGlvbnM/Lmh1bWFuaXplcnMsIGopO1xuXHRcdFx0aWYgKGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoID4gbWF4Q29sdW1uV2lkdGgpIHtcblx0XHRcdFx0d2hpbGUgKGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoID4gbWF4Q29sdW1uV2lkdGggLSAzKSB7XG5cdFx0XHRcdFx0ZGF0YSA9IGRhdGEuc2xpY2UoMCwgLTEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGEgKz0gXCIuLi5cIjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IGRhdGFMZW5ndGggPSBjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aDtcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXMgJiYgb3B0aW9ucy5oZWFkbGluZXNbal1bMF0gPT09IFwiOlwiKSB7XG5cdFx0XHRcdGRhdGEgPSBgJHtjb2xvcihkYXRhKX0ke1wiIFwiLnJlcGVhdChvcHRpb25zLndpZHRoc1tqXSAtIGRhdGFMZW5ndGgpfWA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gO1xuXHRcdFx0fVxuXHRcdFx0bGluZSArPSBg4pSCICR7ZGF0YX0gYDtcblx0XHR9XG5cdFx0Y29uc29sZS5pbmZvKGAke2luZGVudH0ke2xpbmV94pSCYCk7XG5cdH1cblx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpO1xuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUlOKUgCR7aGVhZGxpbmUuam9pbihcIuKUgOKUtOKUgFwiKX3ilIDilJhgKTtcbn1cblxuZnVuY3Rpb24gdHJhbnNwb3NlKHJlY29yZHMsIG51bUNvbHVtbnMpIHtcblx0Y29uc3QgY29sdW1ucyA9IFtdO1xuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtQ29sdW1uczsgaW5kZXgrKykge1xuXHRcdGNvbHVtbnMucHVzaChyZWNvcmRzLm1hcCgocm93KSA9PiByb3dbaW5kZXhdKSk7XG5cdH1cblx0cmV0dXJuIGNvbHVtbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eEpzb25SZXBsYWNlcihrZXksIHZhbHVlKSB7XG5cdHN3aXRjaCAoa2V5KSB7XG5cdFx0Y2FzZSBcImJ5dGVzXCI6XG5cdFx0Y2FzZSBcImRlclwiOlxuXHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHZhbHVlLCB0cnVlKTtcblx0XHRjYXNlIFwidHhcIjpcblx0XHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgdHhKc29uUmVwbGFjZXIpO1xuXHRcdGNhc2UgXCJjaGFuZ2VcIjpcblx0XHRjYXNlIFwiZmVlc1wiOlxuXHRcdGNhc2UgXCJ2YWx1ZVwiOlxuXHRcdFx0cmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCkgLyAxMCAqKiA5O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR4UmVjZWlwdEpzb25SZXBsYWNlcihrZXksIHZhbHVlKSB7XG5cdHN3aXRjaCAoa2V5KSB7XG5cdFx0Y2FzZSBcImJ5dGVzXCI6XG5cdFx0Y2FzZSBcImRlclwiOlxuXHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHZhbHVlLCB0cnVlKTtcblx0XHRjYXNlIFwidHhcIjpcblx0XHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgdHhKc29uUmVwbGFjZXIpO1xuXHRcdGNhc2UgXCJjaGFuZ2VcIjpcblx0XHRjYXNlIFwiZmVlc1wiOlxuXHRcdGNhc2UgXCJ2YWx1ZVwiOlxuXHRcdFx0cmV0dXJuIHBhcnNlSW50KHZhbHVlPy5wZWRyb3MsIDEwKSAvIDEwICoqIDk7XG5cdFx0Y2FzZSBcInRpbWVzdGFtcFwiOlxuXHRcdFx0cmV0dXJuIG1vbWVudC51bml4KHZhbHVlKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKTtcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50KHJlY2VpcHQpIHtcblx0aWYgKHJlY2VpcHQ/LmNvbmZpcm1hdGlvbnMpIHtcblx0XHRjb25zb2xlLmluZm8oYCA+IENoZWNrcG9pbnQgIyR7Y29tbWFzKHJlY2VpcHQuY29uZmlybWF0aW9ucyl9Li4uYCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlVHJhbnNhY3Rpb25PblN0YXR1c0NoYW5nZShyZWNlaXB0KSB7XG5cdGNvbnN0IGNhcHRpb25zID0ge1xuXHRcdHBlbmRpbmc6IFwiQXdhaXRpbmcgcmVsYXkuLi5cIixcblx0XHQvLyBjb25maXJtZWQ6IFwiVHJhbnNhY3Rpb24gY29uZmlybWVkOlwiLFxuXHRcdC8vIGZpbmFsaXplZDogXCJUcmFuc2FjdGlvbiBmaW5hbGl6ZWQ6XCIsXG5cdFx0cmVsYXllZDogXCJBd2FpdGluZyBpbmNsdXNpb24uLi5cIixcblx0XHRtaW5lZDogXCJBd2FpdGluZyBjb25maXJtYXRpb25zLi4uXCIsXG5cdH07XG5cdGNvbnN0IGNhcHRpb24gPSBjYXB0aW9uc1tyZWNlaXB0LnN0YXR1c107XG5cdGlmIChjYXB0aW9uKSBjb25zb2xlLmluZm8oYCA+ICR7Y2FwdGlvbnNbcmVjZWlwdC5zdGF0dXNdfWApO1xuXHRpZiAoW1wiZmluYWxpemVkXCIsIFwiY29uZmlybWVkXCJdLmluY2x1ZGVzKHJlY2VpcHQuc3RhdHVzKSkge1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gQmxvY2sgaGFzaDogICAke2NvbG9ycy5ncmF5KHJlY2VpcHQ/LmJsb2NrSGFzaCl9YCk7XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBCbG9jayBtaW5lcjogICR7Y29sb3JzLmN5YW4ocmVjZWlwdD8uYmxvY2tNaW5lcil9YCk7XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBCbG9jayBlcG9jaDogICR7Y29sb3JzLndoaXRlKGNvbW1hcyhyZWNlaXB0Py5ibG9ja0Vwb2NoKSl9YCk7XG5cdFx0Y29uc29sZS5pbmZvKFxuXHRcdFx0YCA+IEluY2x1ZGVkIGF0OiAgJHtjb2xvcnMuZ3JlZW4obW9tZW50LnVuaXgocmVjZWlwdD8uYmxvY2tUaW1lc3RhbXApLmZvcm1hdChcIk1NTU0gRG8gWVlZWSwgaDptbTpzcyBhXCIpKX1gLFxuXHRcdCk7XG5cdFx0Y29uc29sZS5pbmZvKFxuXHRcdFx0YCA+ICR7cmVjZWlwdC5zdGF0dXNbMF0udG9VcHBlckNhc2UoKSArIHJlY2VpcHQuc3RhdHVzLnNsaWNlKDEpfSBhdDogJHtjb2xvcnMubWdyZWVuKG1vbWVudC51bml4KHJlY2VpcHQudGltZXN0YW1wKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKSl9YCxcblx0XHQpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uUmVjZWlwdChyZWNlaXB0KSB7XG5cdGNvbnN0IGNhcHRpb25zID0ge1xuXHRcdERhdGFSZXF1ZXN0OiBcIiA+IERSVCBoYXNoOiAgICAgXCIsXG5cdFx0VmFsdWVUcmFuc2ZlcjogXCIgPiBWVFQgaGFzaDogICAgIFwiLFxuXHR9O1xuXHRjb25zb2xlLmluZm8oYCR7Y2FwdGlvbnNbcmVjZWlwdC50eXBlXSB8fCBcIiA+IFRYIGhhc2g6ICAgICAgXCJ9JHtjb2xvcnMud2hpdGUocmVjZWlwdC5oYXNoKX1gKTtcblx0aWYgKHJlY2VpcHQ/LmRyb0hhc2gpIGNvbnNvbGUuaW5mbyhgID4gRFJPIGhhc2g6ICAgICAke2NvbG9ycy5ncmVlbihyZWNlaXB0LmRyb0hhc2gpfWApO1xuXHRpZiAocmVjZWlwdD8ucmFkSGFzaCkgY29uc29sZS5pbmZvKGAgPiBSQUQgaGFzaDogICAgICR7Y29sb3JzLm1ncmVlbihyZWNlaXB0LnJhZEhhc2gpfWApO1xuXHRpZiAocmVjZWlwdD8uZHJvU0xBKSBjb25zb2xlLmluZm8oYCA+IFNMQSBwYXJhbXM6ICAgJHtKU09OLnN0cmluZ2lmeShyZWNlaXB0LmRyb1NMQSl9YCk7XG5cdGlmIChyZWNlaXB0Py53aXRoZHJhd2VyKSB7XG5cdFx0aWYgKHJlY2VpcHQ/LnZhbGlkYXRvcikge1xuXHRcdFx0Y29uc29sZS5pbmZvKGAgPiBWYWxpZGF0b3I6ICAgICR7Y29sb3JzLm1jeWFuKHJlY2VpcHQudmFsaWRhdG9yKX1gKTtcblx0XHR9XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBXaXRoZHJhd2VyOiAgICR7Y29sb3JzLm1tYWdlbnRhKHJlY2VpcHQud2l0aGRyYXdlcil9YCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3Qgc2lnbmVycyA9IEFycmF5LmlzQXJyYXkocmVjZWlwdC5mcm9tKSA/IHJlY2VpcHQuZnJvbSA6IFtyZWNlaXB0LmZyb21dO1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gU2lnbmVyL3M6ICAgICAke2NvbG9ycy5tbWFnZW50YShzaWduZXJzWzBdKX1gKTtcblx0XHRzaWduZXJzLnNsaWNlKDEpLmZvckVhY2goKHNpZ25lcikgPT4ge1xuXHRcdFx0Y29uc29sZS5pbmZvKGAgICAgICAgICAgICAgICAgICR7Y29sb3JzLm1tYWdlbnRhKHNpZ25lcil9YCk7XG5cdFx0fSk7XG5cdH1cblx0aWYgKHJlY2VpcHQ/LnJlY2lwaWVudHMpIHtcblx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRgID4gUmVjaXBpZW50L3M6ICAke2NvbG9ycy5tYmx1ZShcblx0XHRcdFx0cmVjZWlwdC5yZWNpcGllbnRzLmZpbHRlcigocGtoLCBpbmRleCwgYXJyYXkpID0+IGluZGV4ID09PSBhcnJheS5pbmRleE9mKHBraCkpLFxuXHRcdFx0KX1gLFxuXHRcdCk7XG5cdH1cblx0aWYgKHJlY2VpcHQ/LmZlZXMpIGNvbnNvbGUuaW5mbyhgID4gTmV0d29yayBmZWU6ICAke2NvbG9ycy55ZWxsb3cocmVjZWlwdC5mZWVzLnRvU3RyaW5nKDIpKX1gKTtcblx0aWYgKHJlY2VpcHQ/LnZhbHVlKSBjb25zb2xlLmluZm8oYCA+IFZhbHVlOiAgICAgICAgJHtjb2xvcnMubXllbGxvdyhyZWNlaXB0LnZhbHVlLnRvU3RyaW5nKDIpKX1gKTtcblx0aWYgKHJlY2VpcHQ/LndlaWdodCkgY29uc29sZS5pbmZvKGAgPiBXZWlnaHQ6ICAgICAgICR7Y29sb3JzLm1ncmVlbihjb21tYXMocmVjZWlwdC53ZWlnaHQpKX1gKTtcblx0aWYgKHJlY2VpcHQ/LndpdG5lc3Nlcykge1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gV2l0bmVzc2VzOiAgICAke3JlY2VpcHQud2l0bmVzc2VzfWApO1xuXHR9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uKHRyYW5zbWl0dGVyLCBvcHRpb25zKSB7XG5cdGNvbnN0IGNvbG9yID0gb3B0aW9ucz8uY29sb3IgfHwgKCh4KSA9PiBgXFx4MWJbMzA7NDVtJHt4fVxceDFiWzBtYCk7XG5cdGxldCByZWNlaXB0ID0gYXdhaXQgdHJhbnNtaXR0ZXIuc2lnblRyYW5zYWN0aW9uKG9wdGlvbnMsIG9wdGlvbnM/LnJlbG9hZCk7XG5cdGlmIChvcHRpb25zPy52ZXJib3NlKSB7XG5cdFx0Y29uc29sZS5pbmZvKGBcXG4ke2dyYXkoSlNPTi5zdHJpbmdpZnkocmVjZWlwdC50eCwgdHhKc29uUmVwbGFjZXIpKX1gKTtcblx0fVxuXHRpZiAob3B0aW9ucz8uaGVhZGxpbmUpIHtcblx0XHRjb25zb2xlLmluZm8oYFxcbiAke2NvbG9yKGAgICR7b3B0aW9ucy5oZWFkbGluZX0gIGApfVxcbmApO1xuXHR9XG5cdHRyYWNlVHJhbnNhY3Rpb25SZWNlaXB0KHJlY2VpcHQpO1xuXHRpZiAoIW9wdGlvbnM/LmZvcmNlKSB7XG5cdFx0Ly8gcHJvbXB0IHVzZXIgY29uZmlybWF0aW9uXG5cdFx0Y29uc29sZS5pbmZvKCk7XG5cdFx0Y29uc3QgYW5zd2VyID0gYXdhaXQgcmVxdWlyZShcImlucXVpcmVyXCIpLmNyZWF0ZVByb21wdE1vZHVsZSgpKFtcblx0XHRcdHtcblx0XHRcdFx0bWVzc2FnZTogXCJTZW5kIHRyYW5zYWN0aW9uP1wiLFxuXHRcdFx0XHR0eXBlOiBcImNvbmZpcm1cIixcblx0XHRcdFx0bmFtZTogXCJjb250aW51ZVwiLFxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZSxcblx0XHRcdH0sXG5cdFx0XSk7XG5cdFx0aWYgKCFhbnN3ZXIuY29udGludWUpIHtcblx0XHRcdHJldHVybiByZWNlaXB0O1xuXHRcdH1cblx0fVxuXHR0cnkge1xuXHRcdGNvbnNvbGUuaW5mbygpO1xuXHRcdHJlY2VpcHQgPSBhd2FpdCB0cmFuc21pdHRlci5zZW5kVHJhbnNhY3Rpb24oKTtcblx0XHRpZiAob3B0aW9ucz8uYXdhaXQgfHwgb3B0aW9ucz8uY29uZmlybWF0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZWNlaXB0ID0gYXdhaXQgdHJhbnNtaXR0ZXIuY29uZmlybVRyYW5zYWN0aW9uKHJlY2VpcHQuaGFzaCwge1xuXHRcdFx0XHRjb25maXJtYXRpb25zOiBvcHRpb25zPy5jb25maXJtYXRpb25zIHx8IDAsXG5cdFx0XHRcdG9uQ2hlY2twb2ludDogdHJhY2VUcmFuc2FjdGlvbk9uQ2hlY2twb2ludCxcblx0XHRcdFx0b25TdGF0dXNDaGFuZ2U6IHRyYWNlVHJhbnNhY3Rpb25PblN0YXR1c0NoYW5nZSxcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBkYXRhID0ge1xuXHRcdFx0XHRzdGF0dXM6IHJlY2VpcHQ/LnN0YXR1cyxcblx0XHRcdFx0dGltZXN0YW1wOiByZWNlaXB0Py50aW1lc3RhbXAgfHwgTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCksXG5cdFx0XHR9O1xuXHRcdFx0Y29uc29sZS5pbmZvKGRhdGEpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0aWYgKGVycj8uaW5GbGlnaHQgJiYgZXJyLmluRmxpZ2h0KSB7XG5cdFx0XHRjb25zb2xlLmluZm8oYFxcbiR7Y29sb3JzLmdyYXkoSlNPTi5zdHJpbmdpZnkoZXJyLmluRmxpZ3Q/Lm1lc3NhZ2UsIHR4UmVjZWlwdEpzb25SZXBsYWNlcikpfWApO1xuXHRcdH1cblx0XHR0aHJvdyBlcnI7XG5cdH1cblx0cmV0dXJuIHJlY2VpcHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmVzY2FwZVNsYXNoZXMoc3RyKSB7XG5cdC8vIGFkZCBhbm90aGVyIGVzY2FwZWQgc2xhc2ggaWYgdGhlIHN0cmluZyBlbmRzIHdpdGggYW4gb2RkXG5cdC8vIG51bWJlciBvZiBlc2NhcGVkIHNsYXNoZXMgd2hpY2ggd2lsbCBjcmFzaCBKU09OLnBhcnNlXG5cdGxldCBwYXJzZWRTdHIgPSBzdHIucmVwbGFjZSgvKF58W15cXFxcXSkoXFxcXFxcXFwpKlxcXFwkLywgXCIkJlxcXFxcIik7XG5cblx0Ly8gZXNjYXBlIHVuZXNjYXBlZCBkb3VibGUgcXVvdGVzIHRvIHByZXZlbnQgZXJyb3Igd2l0aFxuXHQvLyBhZGRlZCBkb3VibGUgcXVvdGVzIGluIGpzb24gc3RyaW5nXG5cdHBhcnNlZFN0ciA9IHBhcnNlZFN0ci5yZXBsYWNlKC8oXnxbXlxcXFxdKSgoXFxcXFxcXFwpKlwiKS9nLCBcIiQxXFxcXCQyXCIpO1xuXG5cdHRyeSB7XG5cdFx0cGFyc2VkU3RyID0gSlNPTi5wYXJzZShgXCIke3BhcnNlZFN0cn1cImApO1xuXHR9IGNhdGNoIChfZSkge1xuXHRcdHJldHVybiBzdHI7XG5cdH1cblx0cmV0dXJuIHBhcnNlZFN0cjtcbn1cbiJdfQ==
@@ -1,7 +1,9 @@
1
- import type { Hash } from "../types.js";
1
+ import type { GetDataRequestEtherealReport, GetDataRequestFullReport, GetDataRequestMode, Hash, SyncStatus } from "../types.js";
2
2
  import type { DataPushReport } from "./types.js";
3
3
  interface IKermitClient {
4
4
  getDataPushReport(witDrTxHash: Hash, evmNetwork?: number | string): Promise<DataPushReport>;
5
+ getSyncStatus(isMainnet: boolean): Promise<SyncStatus>;
6
+ searchDataRequests(radHash: Hash, isMainnet: boolean, options?: any): Promise<Array<GetDataRequestEtherealReport | GetDataRequestFullReport>>;
5
7
  }
6
8
  export declare class KermitError extends Error {
7
9
  readonly error?: any;
@@ -15,6 +17,13 @@ export declare class KermitClient implements IKermitClient {
15
17
  constructor(url: string);
16
18
  protected callApiGetMethod<T>(path: string, query?: any): Promise<Error | any>;
17
19
  getDataPushReport(witDrTxHash: Hash, evmNetwork?: number | string): Promise<DataPushReport>;
20
+ getSyncStatus(isMainnet: boolean): Promise<SyncStatus>;
21
+ searchDataRequests(radHash: Hash, isMainnet: boolean, options?: {
22
+ limit?: number;
23
+ offset?: number;
24
+ mode?: GetDataRequestMode;
25
+ reverse?: boolean;
26
+ }): Promise<Array<GetDataRequestEtherealReport | GetDataRequestFullReport>>;
18
27
  }
19
28
  export {};
20
29
  //# sourceMappingURL=kermit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kermit.d.ts","sourceRoot":"","sources":["../../../../src/lib/rest/kermit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,UAAU,aAAa;IACtB,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAE5F;AAED,qBAAa,WAAY,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;gBACT,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG;CAOlD;AAED,qBAAa,YAAa,YAAW,aAAa;WACpC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzD,SAAgB,GAAG,EAAE,MAAM,CAAC;gBAEhB,GAAG,EAAE,MAAM;cAcP,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;IAoBvE,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAMxG"}
1
+ {"version":3,"file":"kermit.d.ts","sourceRoot":"","sources":["../../../../src/lib/rest/kermit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,4BAA4B,EAC5B,wBAAwB,EACxB,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,UAAU,aAAa;IACtB,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5F,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvD,kBAAkB,CACjB,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,wBAAwB,CAAC,CAAC,CAAC;CAC3E;AAED,qBAAa,WAAY,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;gBACT,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG;CAOlD;AAED,qBAAa,YAAa,YAAW,aAAa;WACpC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzD,SAAgB,GAAG,EAAE,MAAM,CAAC;gBAEhB,GAAG,EAAE,MAAM;cAcP,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;IAoBvE,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAO3F,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAItD,kBAAkB,CAC9B,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC;QAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,GACC,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,wBAAwB,CAAC,CAAC;CAU1E"}
@@ -62,5 +62,15 @@ export class KermitClient {
62
62
  evmNetwork,
63
63
  });
64
64
  }
65
+ async getSyncStatus(isMainnet) {
66
+ return this.callApiGetMethod("sync_status", { isMainnet });
67
+ }
68
+ async searchDataRequests(radHash, isMainnet, options) {
69
+ return this.callApiGetMethod("search_data_requests", {
70
+ radHash,
71
+ isMainnet,
72
+ ...options,
73
+ });
74
+ }
65
75
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZXN0L2tlcm1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXZDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDbkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0tBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUM7S0FDUixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFPWixNQUFNLE9BQU8sV0FBWSxTQUFRLEtBQUs7SUFDNUIsS0FBSyxDQUFPO0lBQ1osSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFPO0lBQ3JCLFlBQVksSUFBWSxFQUFFLEtBQVcsRUFBRSxLQUFXO1FBQ2pELEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxZQUFZO0lBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQVk7UUFDaEMsT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFZSxHQUFHLENBQVM7SUFFNUIsWUFBWSxHQUFXO1FBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckUsTUFBTSxLQUFLLENBQUMsd0NBQXdDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDO1FBQ3BCLENBQUM7SUFDRixDQUFDO0lBRVMsS0FBSyxDQUFDLGdCQUFnQixDQUFJLElBQVksRUFBRSxLQUFXO1FBQzVELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN2RSxPQUFPLEtBQUs7YUFDVixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1QsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDMUQsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3ZCLElBQUksUUFBUSxFQUFFLEtBQUssSUFBSSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUM5QyxNQUFNLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlFLENBQUM7aUJBQU0sSUFBSSxRQUFRLEVBQUUsVUFBVSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hFLE1BQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSw0QkFBNEIsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDdkYsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE9BQU8sUUFBUSxFQUFFLElBQVMsQ0FBQztZQUM1QixDQUFDO1FBQ0YsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxXQUFpQixFQUFFLFVBQTRCO1FBQzdFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFpQixzQkFBc0IsRUFBRTtZQUNwRSxXQUFXO1lBQ1gsVUFBVTtTQUNWLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHQgYXMgYXhpb3MgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMganNvbkJpZyB9IGZyb20gXCJqc29uLWJpZ2ludFwiO1xuaW1wb3J0IHR5cGUgeyBIYXNoIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBwYXJzZVVSTCB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5pbXBvcnQgdHlwZSB7IERhdGFQdXNoUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuY29uc3Qgc3RyaW5naWZ5ID0gKHF1ZXJ5OiBhbnkpID0+XG5cdE9iamVjdC5lbnRyaWVzKHF1ZXJ5KVxuXHRcdC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCYke2tleX09JHt2YWx1ZX1gKVxuXHRcdC5qb2luKFwiXCIpXG5cdFx0LnNsaWNlKDEpO1xuXG5pbnRlcmZhY2UgSUtlcm1pdENsaWVudCB7XG5cdGdldERhdGFQdXNoUmVwb3J0KHdpdERyVHhIYXNoOiBIYXNoLCBldm1OZXR3b3JrPzogbnVtYmVyIHwgc3RyaW5nKTogUHJvbWlzZTxEYXRhUHVzaFJlcG9ydD47XG5cdC8vIHNlYXJjaERhdGFSZXF1ZXN0cyhoYXNoOiBIYXNoLCB7fSk6IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEtlcm1pdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXHRyZWFkb25seSBlcnJvcj86IGFueTtcblx0cmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXHRyZWFkb25seSBxdWVyeT86IGFueTtcblx0Y29uc3RydWN0b3IocGF0aDogc3RyaW5nLCBxdWVyeT86IGFueSwgZXJyb3I/OiBhbnkpIHtcblx0XHRzdXBlcihgJHtwYXRofSR7c3RyaW5naWZ5KHF1ZXJ5KX06ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfWApO1xuXHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0dGhpcy5lcnJvciA9IGVycm9yO1xuXHRcdHRoaXMucGF0aCA9IHBhdGg7XG5cdFx0dGhpcy5xdWVyeSA9IHF1ZXJ5O1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBLZXJtaXRDbGllbnQgaW1wbGVtZW50cyBJS2VybWl0Q2xpZW50IHtcblx0c3RhdGljIGFzeW5jIGZyb21FbnYodXJsPzogc3RyaW5nKTogUHJvbWlzZTxLZXJtaXRDbGllbnQ+IHtcblx0XHRyZXR1cm4gbmV3IEtlcm1pdENsaWVudCh1cmwgfHwgcHJvY2Vzcy5lbnYuV0lUTkVUX1NES19LRVJNSVRfVVJMIHx8IFwiaHR0cHM6Ly9rZXJtaXQud2l0bmV0LmlvXCIpO1xuXHR9XG5cblx0cHVibGljIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHVybDogc3RyaW5nKSB7XG5cdFx0Y29uc3QgW3NjaGVtYV0gPSBwYXJzZVVSTCh1cmwpO1xuXHRcdGlmICghc2NoZW1hLnN0YXJ0c1dpdGgoXCJodHRwOi8vXCIpICYmICFzY2hlbWEuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihgS2VybWl0Q2xpZW50OiB1bnN1cHBvcnRlZCBVUkwgc2NoZW1hICR7c2NoZW1hfWApO1xuXHRcdH1cblx0XHR0aGlzLnVybCA9IHVybDtcblx0XHRpZiAoIXRoaXMudXJsLmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdFx0dGhpcy51cmwgKz0gXCIvXCI7XG5cdFx0fVxuXHRcdGlmICghdGhpcy51cmwuZW5kc1dpdGgoXCJhcGkvXCIpKSB7XG5cdFx0XHR0aGlzLnVybCArPSBcImFwaS9cIjtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgY2FsbEFwaUdldE1ldGhvZDxUPihwYXRoOiBzdHJpbmcsIHF1ZXJ5PzogYW55KTogUHJvbWlzZTxFcnJvciB8IGFueT4ge1xuXHRcdGNvbnN0IHVybCA9IGAke3RoaXMudXJsfSR7cGF0aH0ke3F1ZXJ5ID8gYD8ke3N0cmluZ2lmeShxdWVyeSl9YCA6IFwiXCJ9YDtcblx0XHRyZXR1cm4gYXhpb3Ncblx0XHRcdC5nZXQodXJsLCB7XG5cdFx0XHRcdHRyYW5zZm9ybVJlc3BvbnNlOiAocmVzcG9uc2UpID0+IGpzb25CaWcoKS5wYXJzZShyZXNwb25zZSksXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcblx0XHRcdFx0aWYgKHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgS2VybWl0RXJyb3IocGF0aCwgcXVlcnksIHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHJlc3BvbnNlPy5zdGF0dXNDb2RlICYmIHJlc3BvbnNlLnN0YXR1c0NvZGUgIT09IDIwMCkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBLZXJtaXRFcnJvcihwYXRoLCBxdWVyeSwgYHNlcnZlciBzdGF0dXMgY29kZTogSFRUUC8ke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlPy5kYXRhIGFzIFQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGVycm9yKSA9PiB7XG5cdFx0XHRcdHRocm93IG5ldyBLZXJtaXRFcnJvcihwYXRoLCBxdWVyeSwgZXJyb3IpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0RGF0YVB1c2hSZXBvcnQod2l0RHJUeEhhc2g6IEhhc2gsIGV2bU5ldHdvcms/OiBudW1iZXIgfCBzdHJpbmcpOiBQcm9taXNlPERhdGFQdXNoUmVwb3J0PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaUdldE1ldGhvZDxEYXRhUHVzaFJlcG9ydD4oXCJnZXRfZGF0YV9wdXNoX3JlcG9ydFwiLCB7XG5cdFx0XHR3aXREclR4SGFzaCxcblx0XHRcdGV2bU5ldHdvcmssXG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZXN0L2tlcm1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXZDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDbkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0tBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUM7S0FDUixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFZWixNQUFNLE9BQU8sV0FBWSxTQUFRLEtBQUs7SUFDNUIsS0FBSyxDQUFPO0lBQ1osSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFPO0lBQ3JCLFlBQVksSUFBWSxFQUFFLEtBQVcsRUFBRSxLQUFXO1FBQ2pELEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxZQUFZO0lBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMs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UUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FDM0Isc0JBQXNCLEVBQ3RCO1lBQ0MsT0FBTztZQUNQLFNBQVM7WUFDVCxHQUFHLE9BQU87U0FDVixDQUNELENBQUM7SUFDSCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZhdWx0IGFzIGF4aW9zIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGpzb25CaWcgfSBmcm9tIFwianNvbi1iaWdpbnRcIjtcbmltcG9ydCB0eXBlIHtcblx0R2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydCxcblx0R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0LFxuXHRHZXREYXRhUmVxdWVzdE1vZGUsXG5cdEhhc2gsXG5cdFN5bmNTdGF0dXMsXG59IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgcGFyc2VVUkwgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuaW1wb3J0IHR5cGUgeyBEYXRhUHVzaFJlcG9ydCB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmNvbnN0IHN0cmluZ2lmeSA9IChxdWVyeTogYW55KSA9PlxuXHRPYmplY3QuZW50cmllcyhxdWVyeSlcblx0XHQubWFwKChba2V5LCB2YWx1ZV0pID0+IGAmJHtrZXl9PSR7dmFsdWV9YClcblx0XHQuam9pbihcIlwiKVxuXHRcdC5zbGljZSgxKTtcblxuaW50ZXJmYWNlIElLZXJtaXRDbGllbnQge1xuXHRnZXREYXRhUHVzaFJlcG9ydCh3aXREclR4SGFzaDogSGFzaCwgZXZtTmV0d29yaz86IG51bWJlciB8IHN0cmluZyk6IFByb21pc2U8RGF0YVB1c2hSZXBvcnQ+O1xuXHRnZXRTeW5jU3RhdHVzKGlzTWFpbm5ldDogYm9vbGVhbik6IFByb21pc2U8U3luY1N0YXR1cz47XG5cdHNlYXJjaERhdGFSZXF1ZXN0cyhcblx0XHRyYWRIYXNoOiBIYXNoLFxuXHRcdGlzTWFpbm5ldDogYm9vbGVhbixcblx0XHRvcHRpb25zPzogYW55LFxuXHQpOiBQcm9taXNlPEFycmF5PEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQgfCBHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQ+Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEtlcm1pdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXHRyZWFkb25seSBlcnJvcj86IGFueTtcblx0cmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXHRyZWFkb25seSBxdWVyeT86IGFueTtcblx0Y29uc3RydWN0b3IocGF0aDogc3RyaW5nLCBxdWVyeT86IGFueSwgZXJyb3I/OiBhbnkpIHtcblx0XHRzdXBlcihgJHtwYXRofSR7c3RyaW5naWZ5KHF1ZXJ5KX06ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfWApO1xuXHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0dGhpcy5lcnJvciA9IGVycm9yO1xuXHRcdHRoaXMucGF0aCA9IHBhdGg7XG5cdFx0dGhpcy5xdWVyeSA9IHF1ZXJ5O1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBLZXJtaXRDbGllbnQgaW1wbGVtZW50cyBJS2VybWl0Q2xpZW50IHtcblx0c3RhdGljIGFzeW5jIGZyb21FbnYodXJsPzogc3RyaW5nKTogUHJvbWlzZTxLZXJtaXRDbGllbnQ+IHtcblx0XHRyZXR1cm4gbmV3IEtlcm1pdENsaWVudCh1cmwgfHwgcHJvY2Vzcy5lbnYuV0lUTkVUX1NES19LRVJNSVRfVVJMIHx8IFwiaHR0cHM6Ly9rZXJtaXQud2l0bmV0LmlvXCIpO1xuXHR9XG5cblx0cHVibGljIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHVybDogc3RyaW5nKSB7XG5cdFx0Y29uc3QgW3NjaGVtYV0gPSBwYXJzZVVSTCh1cmwpO1xuXHRcdGlmICghc2NoZW1hLnN0YXJ0c1dpdGgoXCJodHRwOi8vXCIpICYmICFzY2hlbWEuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihgS2VybWl0Q2xpZW50OiB1bnN1cHBvcnRlZCBVUkwgc2NoZW1hICR7c2NoZW1hfWApO1xuXHRcdH1cblx0XHR0aGlzLnVybCA9IHVybDtcblx0XHRpZiAoIXRoaXMudXJsLmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdFx0dGhpcy51cmwgKz0gXCIvXCI7XG5cdFx0fVxuXHRcdGlmICghdGhpcy51cmwuZW5kc1dpdGgoXCJhcGkvXCIpKSB7XG5cdFx0XHR0aGlzLnVybCArPSBcImFwaS9cIjtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgY2FsbEFwaUdldE1ldGhvZDxUPihwYXRoOiBzdHJpbmcsIHF1ZXJ5PzogYW55KTogUHJvbWlzZTxFcnJvciB8IGFueT4ge1xuXHRcdGNvbnN0IHVybCA9IGAke3RoaXMudXJsfSR7cGF0aH0ke3F1ZXJ5ID8gYD8ke3N0cmluZ2lmeShxdWVyeSl9YCA6IFwiXCJ9YDtcblx0XHRyZXR1cm4gYXhpb3Ncblx0XHRcdC5nZXQodXJsLCB7XG5cdFx0XHRcdHRyYW5zZm9ybVJlc3BvbnNlOiAocmVzcG9uc2UpID0+IGpzb25CaWcoKS5wYXJzZShyZXNwb25zZSksXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcblx0XHRcdFx0aWYgKHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgS2VybWl0RXJyb3IocGF0aCwgcXVlcnksIHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHJlc3BvbnNlPy5zdGF0dXNDb2RlICYmIHJlc3BvbnNlLnN0YXR1c0NvZGUgIT09IDIwMCkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBLZXJtaXRFcnJvcihwYXRoLCBxdWVyeSwgYHNlcnZlciBzdGF0dXMgY29kZTogSFRUUC8ke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlPy5kYXRhIGFzIFQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGVycm9yKSA9PiB7XG5cdFx0XHRcdHRocm93IG5ldyBLZXJtaXRFcnJvcihwYXRoLCBxdWVyeSwgZXJyb3IpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0RGF0YVB1c2hSZXBvcnQod2l0RHJUeEhhc2g6IEhhc2gsIGV2bU5ldHdvcms/OiBudW1iZXIgfCBzdHJpbmcpOiBQcm9taXNlPERhdGFQdXNoUmVwb3J0PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaUdldE1ldGhvZDxEYXRhUHVzaFJlcG9ydD4oXCJnZXRfZGF0YV9wdXNoX3JlcG9ydFwiLCB7XG5cdFx0XHR3aXREclR4SGFzaCxcblx0XHRcdGV2bU5ldHdvcmssXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0U3luY1N0YXR1cyhpc01haW5uZXQ6IGJvb2xlYW4pOiBQcm9taXNlPFN5bmNTdGF0dXM+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpR2V0TWV0aG9kPFN5bmNTdGF0dXM+KFwic3luY19zdGF0dXNcIiwgeyBpc01haW5uZXQgfSk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgc2VhcmNoRGF0YVJlcXVlc3RzKFxuXHRcdHJhZEhhc2g6IEhhc2gsXG5cdFx0aXNNYWlubmV0OiBib29sZWFuLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdG9mZnNldD86IG51bWJlcjtcblx0XHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGU7XG5cdFx0XHRyZXZlcnNlPzogYm9vbGVhbjtcblx0XHR9LFxuXHQpOiBQcm9taXNlPEFycmF5PEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQgfCBHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQ+PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaUdldE1ldGhvZDxBcnJheTxHZXREYXRhUmVxdWVzdEV0aGVyZWFsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0Pj4oXG5cdFx0XHRcInNlYXJjaF9kYXRhX3JlcXVlc3RzXCIsXG5cdFx0XHR7XG5cdFx0XHRcdHJhZEhhc2gsXG5cdFx0XHRcdGlzTWFpbm5ldCxcblx0XHRcdFx0Li4ub3B0aW9ucyxcblx0XHRcdH0sXG5cdFx0KTtcblx0fVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/sdk",
3
- "version": "3.0.7",
3
+ "version": "3.1.1",
4
4
  "description": "Typescript library and CLI tooling for Web3 buidlers willing to interact with the Witnet blockchain.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -58,9 +58,9 @@
58
58
  "cbor": "^10.0.11",
59
59
  "commander": "^14.0.2",
60
60
  "dotenv": "^17.2.3",
61
- "ethers": "^6.15.0",
61
+ "ethers": "^6.16.0",
62
62
  "graphql-query-compress": "1.2.4",
63
- "inquirer": "^12.10.0",
63
+ "inquirer": "^12.11.1",
64
64
  "json-bigint": "^1.0.0",
65
65
  "keccak256": "^1.0.6",
66
66
  "lodash.merge": "^4.6.2",
@@ -73,13 +73,13 @@
73
73
  "secp256k1": "^5.0.1"
74
74
  },
75
75
  "devDependencies": {
76
- "@biomejs/biome": "^2.3.4",
76
+ "@biomejs/biome": "^2.3.10",
77
77
  "@types/cbor": "^5.0.1",
78
78
  "@types/json-bigint": "^1.0.4",
79
- "@types/node": "^24.10.0",
79
+ "@types/node": "^24.10.4",
80
80
  "@types/promise-poller": "^1.7.4",
81
81
  "cross-env": "10.0.0",
82
- "protobufjs-cli": "^1.1.3",
82
+ "protobufjs-cli": "^1.2.0",
83
83
  "typescript": "^5.9.3"
84
84
  },
85
85
  "scripts": {
@@ -119,7 +119,7 @@ export function cmd(timeout, ...commands) {
119
119
  return new Promise((resolve, reject) => {
120
120
  const [bin, ...args] = commands;
121
121
  const child = spawn(bin, args, {
122
- detached: process.platform !== "win32",
122
+ detached: process.env.WITSDK_DRY_RUN_DETACHED || false,
123
123
  shell: process.platform === "win32",
124
124
  stdio: ["ignore", "pipe", "pipe"],
125
125
  env: {
@@ -150,7 +150,7 @@ export function cmd(timeout, ...commands) {
150
150
  if (finished) return;
151
151
  finished = true;
152
152
  killTree();
153
- reject(new Error(`npx command timed out after ${commas(timeout)} ms`));
153
+ reject(new Error(`npx shell command timed out after ${commas(timeout)} ms`));
154
154
  }, timeout)
155
155
  : null;
156
156