@rosen-bridge/tx-pot 1.1.0 → 2.0.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +8 -8
  3. package/dist/db/entities/{TransactionEntity.d.ts → transactionEntity.d.ts} +1 -1
  4. package/dist/db/entities/{TransactionEntity.d.ts.map → transactionEntity.d.ts.map} +1 -1
  5. package/dist/db/entities/{TransactionEntity.js → transactionEntity.js} +2 -2
  6. package/dist/db/migrations/postgres/1706350644686-migration.d.ts +1 -1
  7. package/dist/db/migrations/postgres/1706350644686-migration.d.ts.map +1 -1
  8. package/dist/db/migrations/postgres/1706350644686-migration.js +1 -1
  9. package/dist/db/migrations/sqlite/1706007154531-migration.d.ts +1 -1
  10. package/dist/db/migrations/sqlite/1706007154531-migration.d.ts.map +1 -1
  11. package/dist/db/migrations/sqlite/1706007154531-migration.js +1 -1
  12. package/dist/index.d.ts +3 -3
  13. package/dist/index.js +4 -4
  14. package/dist/network/{AbstractPotChainManager.d.ts → abstractPotChainManager.d.ts} +1 -1
  15. package/dist/network/{AbstractPotChainManager.d.ts.map → abstractPotChainManager.d.ts.map} +1 -1
  16. package/dist/network/{AbstractPotChainManager.js → abstractPotChainManager.js} +1 -1
  17. package/dist/transaction/{TxPot.d.ts → txPot.d.ts} +4 -4
  18. package/dist/transaction/txPot.d.ts.map +1 -0
  19. package/dist/transaction/{TxPot.js → txPot.js} +2 -2
  20. package/dist/transaction/types.d.ts +1 -1
  21. package/dist/transaction/types.d.ts.map +1 -1
  22. package/dist/transaction/types.js +1 -1
  23. package/dist/transaction/utils.js +2 -2
  24. package/package.json +22 -13
  25. package/.eslintignore +0 -1
  26. package/dist/transaction/TxPot.d.ts.map +0 -1
  27. package/lib/db/entities/TransactionEntity.ts +0 -44
  28. package/lib/db/migrations/index.ts +0 -7
  29. package/lib/db/migrations/postgres/1706350644686-migration.ts +0 -31
  30. package/lib/db/migrations/sqlite/1706007154531-migration.ts +0 -31
  31. package/lib/index.ts +0 -5
  32. package/lib/network/AbstractPotChainManager.ts +0 -44
  33. package/lib/transaction/TxPot.ts +0 -728
  34. package/lib/transaction/types.ts +0 -46
  35. package/lib/transaction/utils.ts +0 -59
  36. package/tests/.gitkeep +0 -0
  37. package/tests/db/dataSource.mock.ts +0 -18
  38. package/tests/network/TestPotChainManager.ts +0 -23
  39. package/tests/transaction/TestTxPot.ts +0 -32
  40. package/tests/transaction/TxPot.spec.ts +0 -1881
  41. package/tests/transaction/testData.ts +0 -84
  42. package/tsconfig.build.json +0 -9
  43. package/tsconfig.build.tsbuildinfo +0 -1
  44. package/tsconfig.json +0 -9
  45. package/vitest.config.ts +0 -18
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @rosen-bridge/tx-pot
2
2
 
3
+ ## 2.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Remove unused dependencies and install missed dependencies
8
+
9
+ ## 2.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - Update node version to 22.18
14
+
15
+ ### Minor Changes
16
+
17
+ - Update typeorm version to 0.3.26
18
+
19
+ ### Patch Changes
20
+
21
+ - Update dependencies
22
+ - @rosen-bridge/abstract-logger@3.0.0
23
+ - @rosen-bridge/extended-typeorm@1.0.0
24
+
3
25
  ## 1.1.0
4
26
 
5
27
  ### Minor Changes
package/README.md CHANGED
@@ -135,7 +135,7 @@ await txPot.addTx(
135
135
  'ergo',
136
136
  'my-type',
137
137
  1,
138
- 'your-serialized-tx'
138
+ 'your-serialized-tx',
139
139
  );
140
140
  ```
141
141
 
@@ -151,7 +151,7 @@ await txPot.addTx(
151
151
  1,
152
152
  'your-serialized-tx',
153
153
  TransactionStatus.SIGNED,
154
- 1000000
154
+ 1000000,
155
155
  );
156
156
  ```
157
157
 
@@ -169,7 +169,7 @@ await txPot.addTx(
169
169
  undefined,
170
170
  undefined,
171
171
  'your-foreign-key',
172
- '{ yourData: "any-data", secondKey: 100 }'
172
+ '{ yourData: "any-data", secondKey: 100 }',
173
173
  );
174
174
  ```
175
175
 
@@ -219,12 +219,12 @@ const txPotJob = async () => {
219
219
 
220
220
  const approvedTxs = await TxPot.getTxsByStatus(
221
221
  TransactionStatus.APPROVED,
222
- true // only returns valid txs (also mutate invalid ones)
222
+ true, // only returns valid txs (also mutate invalid ones)
223
223
  );
224
224
  await processApprovedTxs(approvedTxs);
225
225
 
226
226
  const signFailedTxs = await TxPot.getTxsByStatus(
227
- TransactionStatus.SIGN_FAILED
227
+ TransactionStatus.SIGN_FAILED,
228
228
  );
229
229
  await processSignFailedTxs(signFailedTxs);
230
230
 
@@ -258,13 +258,13 @@ txPot.registerValidator(
258
258
  `ergo`,
259
259
  `payment`,
260
260
  `service-1`,
261
- s1ErgoPaymentTxValidator
261
+ s1ErgoPaymentTxValidator,
262
262
  );
263
263
  txPot.registerValidator(
264
264
  `ergo`,
265
265
  `payment`,
266
266
  `service-2`,
267
- s2ErgoPaymentTxValidator
267
+ s2ErgoPaymentTxValidator,
268
268
  );
269
269
  ```
270
270
 
@@ -297,7 +297,7 @@ txPot.registerCallback(
297
297
  `payment`,
298
298
  TransactionStatus.COMPLETED,
299
299
  'service-1',
300
- onPaymentComplete
300
+ onPaymentComplete,
301
301
  );
302
302
  ```
303
303
 
@@ -12,4 +12,4 @@ export declare class TransactionEntity {
12
12
  extra?: string | null;
13
13
  extra2?: string | null;
14
14
  }
15
- //# sourceMappingURL=TransactionEntity.d.ts.map
15
+ //# sourceMappingURL=transactionEntity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionEntity.d.ts","sourceRoot":"","sources":["../../../lib/db/entities/TransactionEntity.ts"],"names":[],"mappings":"AAEA,qBACa,iBAAiB;IAE5B,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;IAGlB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,YAAY,EAAE,OAAO,CAAC;IAGtB,eAAe,EAAE,MAAM,CAAC;IAGxB,YAAY,EAAE,MAAM,CAAC;IAKrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB"}
1
+ {"version":3,"file":"transactionEntity.d.ts","sourceRoot":"","sources":["../../../lib/db/entities/transactionEntity.ts"],"names":[],"mappings":"AAEA,qBACa,iBAAiB;IAE5B,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;IAGlB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,YAAY,EAAE,OAAO,CAAC;IAGtB,eAAe,EAAE,MAAM,CAAC;IAGxB,YAAY,EAAE,MAAM,CAAC;IAKrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB"}
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Column, Entity, PrimaryColumn } from 'typeorm';
10
+ import { Column, Entity, PrimaryColumn } from '@rosen-bridge/extended-typeorm';
11
11
  let TransactionEntity = class TransactionEntity {
12
12
  txId;
13
13
  chain;
@@ -78,4 +78,4 @@ TransactionEntity = __decorate([
78
78
  Entity()
79
79
  ], TransactionEntity);
80
80
  export { TransactionEntity };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25FbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGIvZW50aXRpZXMvVHJhbnNhY3Rpb25FbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2pELElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBRTVCLElBQUksQ0FBUztJQUdiLEtBQUssQ0FBUztJQUdkLE1BQU0sQ0FBUztJQUdmLE1BQU0sQ0FBUztJQUdmLFlBQVksQ0FBUztJQUdyQixTQUFTLENBQVM7SUFHbEIsZ0JBQWdCLENBQVM7SUFHekIsWUFBWSxDQUFVO0lBR3RCLGVBQWUsQ0FBUztJQUd4QixZQUFZLENBQVM7SUFLckIsS0FBSyxDQUFpQjtJQUt0QixNQUFNLENBQWlCO0NBQ3hCLENBQUE7QUF0Q0M7SUFEQyxhQUFhLENBQUMsU0FBUyxDQUFDOzsrQ0FDWjtBQUdiO0lBREMsYUFBYSxDQUFDLFNBQVMsQ0FBQzs7Z0RBQ1g7QUFHZDtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7O2lEQUNIO0FBR2Y7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOztpREFDSDtBQUdmO0lBREMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7dURBQ0c7QUFHckI7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOztvREFDQTtBQUdsQjtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7OzJEQUNPO0FBR3pCO0lBREMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7dURBQ0k7QUFHdEI7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOzswREFDTTtBQUd4QjtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7O3VEQUNHO0FBS3JCO0lBSEMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7O2dEQUNvQjtBQUt0QjtJQUhDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDakIsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDOztpREFDcUI7QUF2Q1osaUJBQWlCO0lBRDdCLE1BQU0sRUFBRTtHQUNJLGlCQUFpQixDQXdDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW4sIEVudGl0eSwgUHJpbWFyeUNvbHVtbiB9IGZyb20gJ3R5cGVvcm0nO1xuXG5ARW50aXR5KClcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkVudGl0eSB7XG4gIEBQcmltYXJ5Q29sdW1uKCd2YXJjaGFyJylcbiAgdHhJZDogc3RyaW5nO1xuXG4gIEBQcmltYXJ5Q29sdW1uKCd2YXJjaGFyJylcbiAgY2hhaW46IHN0cmluZztcblxuICBAQ29sdW1uKCd2YXJjaGFyJylcbiAgdHhUeXBlOiBzdHJpbmc7XG5cbiAgQENvbHVtbigndmFyY2hhcicpXG4gIHN0YXR1czogc3RyaW5nO1xuXG4gIEBDb2x1bW4oJ2ludGVnZXInKVxuICByZXF1aXJlZFNpZ246IG51bWJlcjtcblxuICBAQ29sdW1uKCdpbnRlZ2VyJylcbiAgbGFzdENoZWNrOiBudW1iZXI7XG5cbiAgQENvbHVtbigndmFyY2hhcicpXG4gIGxhc3RTdGF0dXNVcGRhdGU6IHN0cmluZztcblxuICBAQ29sdW1uKCdib29sZWFuJylcbiAgZmFpbGVkSW5TaWduOiBib29sZWFuO1xuXG4gIEBDb2x1bW4oJ2ludGVnZXInKVxuICBzaWduRmFpbGVkQ291bnQ6IG51bWJlcjtcblxuICBAQ29sdW1uKCd2YXJjaGFyJylcbiAgc2VyaWFsaXplZFR4OiBzdHJpbmc7XG5cbiAgQENvbHVtbigndmFyY2hhcicsIHtcbiAgICBudWxsYWJsZTogdHJ1ZSxcbiAgfSlcbiAgZXh0cmE/OiBzdHJpbmcgfCBudWxsO1xuXG4gIEBDb2x1bW4oJ3ZhcmNoYXInLCB7XG4gICAgbnVsbGFibGU6IHRydWUsXG4gIH0pXG4gIGV4dHJhMj86IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25FbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGIvZW50aXRpZXMvdHJhbnNhY3Rpb25FbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEUsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFFNUIsSUFBSSxDQUFTO0lBR2IsS0FBSyxDQUFTO0lBR2QsTUFBTSxDQUFTO0lBR2YsTUFBTSxDQUFTO0lBR2YsWUFBWSxDQUFTO0lBR3JCLFNBQVMsQ0FBUztJQUdsQixnQkFBZ0IsQ0FBUztJQUd6QixZQUFZLENBQVU7SUFHdEIsZUFBZSxDQUFTO0lBR3hCLFlBQVksQ0FBUztJQUtyQixLQUFLLENBQWlCO0lBS3RCLE1BQU0sQ0FBaUI7Q0FDeEIsQ0FBQTtBQXRDQztJQURDLGFBQWEsQ0FBQyxTQUFTLENBQUM7OytDQUNaO0FBR2I7SUFEQyxhQUFhLENBQUMsU0FBUyxDQUFDOztnREFDWDtBQUdkO0lBREMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7aURBQ0g7QUFHZjtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7O2lEQUNIO0FBR2Y7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOzt1REFDRztBQUdyQjtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7O29EQUNBO0FBR2xCO0lBREMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7MkRBQ087QUFHekI7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOzt1REFDSTtBQUd0QjtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7OzBEQUNNO0FBR3hCO0lBREMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7dURBQ0c7QUFLckI7SUFIQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQzs7Z0RBQ29CO0FBS3RCO0lBSEMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7O2lEQUNxQjtBQXZDWixpQkFBaUI7SUFEN0IsTUFBTSxFQUFFO0dBQ0ksaUJBQWlCLENBd0M3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5Q29sdW1uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcblxuQEVudGl0eSgpXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25FbnRpdHkge1xuICBAUHJpbWFyeUNvbHVtbigndmFyY2hhcicpXG4gIHR4SWQ6IHN0cmluZztcblxuICBAUHJpbWFyeUNvbHVtbigndmFyY2hhcicpXG4gIGNoYWluOiBzdHJpbmc7XG5cbiAgQENvbHVtbigndmFyY2hhcicpXG4gIHR4VHlwZTogc3RyaW5nO1xuXG4gIEBDb2x1bW4oJ3ZhcmNoYXInKVxuICBzdGF0dXM6IHN0cmluZztcblxuICBAQ29sdW1uKCdpbnRlZ2VyJylcbiAgcmVxdWlyZWRTaWduOiBudW1iZXI7XG5cbiAgQENvbHVtbignaW50ZWdlcicpXG4gIGxhc3RDaGVjazogbnVtYmVyO1xuXG4gIEBDb2x1bW4oJ3ZhcmNoYXInKVxuICBsYXN0U3RhdHVzVXBkYXRlOiBzdHJpbmc7XG5cbiAgQENvbHVtbignYm9vbGVhbicpXG4gIGZhaWxlZEluU2lnbjogYm9vbGVhbjtcblxuICBAQ29sdW1uKCdpbnRlZ2VyJylcbiAgc2lnbkZhaWxlZENvdW50OiBudW1iZXI7XG5cbiAgQENvbHVtbigndmFyY2hhcicpXG4gIHNlcmlhbGl6ZWRUeDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oJ3ZhcmNoYXInLCB7XG4gICAgbnVsbGFibGU6IHRydWUsXG4gIH0pXG4gIGV4dHJhPzogc3RyaW5nIHwgbnVsbDtcblxuICBAQ29sdW1uKCd2YXJjaGFyJywge1xuICAgIG51bGxhYmxlOiB0cnVlLFxuICB9KVxuICBleHRyYTI/OiBzdHJpbmcgfCBudWxsO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm';
1
+ import { MigrationInterface, QueryRunner } from '@rosen-bridge/extended-typeorm';
2
2
  export declare class Migration1706350644686 implements MigrationInterface {
3
3
  name: string;
4
4
  up(queryRunner: QueryRunner): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"1706350644686-migration.d.ts","sourceRoot":"","sources":["../../../../lib/db/migrations/postgres/1706350644686-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
1
+ {"version":3,"file":"1706350644686-migration.d.ts","sourceRoot":"","sources":["../../../../lib/db/migrations/postgres/1706350644686-migration.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
@@ -25,4 +25,4 @@ export class Migration1706350644686 {
25
25
  `);
26
26
  }
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwNjM1MDY0NDY4Ni1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNzA2MzUwNjQ0Njg2LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztTQWdCbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDeEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7SUFDVCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaWdyYXRpb25JbnRlcmZhY2UsIFF1ZXJ5UnVubmVyIH0gZnJvbSAndHlwZW9ybSc7XG5cbmV4cG9ydCBjbGFzcyBNaWdyYXRpb24xNzA2MzUwNjQ0Njg2IGltcGxlbWVudHMgTWlncmF0aW9uSW50ZXJmYWNlIHtcbiAgbmFtZSA9ICdNaWdyYXRpb24xNzA2MzUwNjQ0Njg2JztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwidHJhbnNhY3Rpb25fZW50aXR5XCIgKFxuICAgICAgICAgICAgICAgIFwidHhJZFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY2hhaW5cIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4VHlwZVwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFNpZ25cIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwibGFzdENoZWNrXCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNVcGRhdGVcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZhaWxlZEluU2lnblwiIGJvb2xlYW4gTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzaWduRmFpbGVkQ291bnRcIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic2VyaWFsaXplZFR4XCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJleHRyYVwiIGNoYXJhY3RlciB2YXJ5aW5nLFxuICAgICAgICAgICAgICAgIFwiZXh0cmEyXCIgY2hhcmFjdGVyIHZhcnlpbmcsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlBLX2NhZmNjOWQ4ZTc2ZmVmNTdiYzBjZjM4NWNhYVwiIFBSSU1BUlkgS0VZIChcInR4SWRcIiwgXCJjaGFpblwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJ0cmFuc2FjdGlvbl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgfVxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwNjM1MDY0NDY4Ni1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNzA2MzUwNjQ0Njg2LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztTQWdCbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDeEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7SUFDVCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjaGVjay1maWxlL2ZpbGVuYW1lLW5hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQge1xuICBNaWdyYXRpb25JbnRlcmZhY2UsXG4gIFF1ZXJ5UnVubmVyLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuXG5leHBvcnQgY2xhc3MgTWlncmF0aW9uMTcwNjM1MDY0NDY4NiBpbXBsZW1lbnRzIE1pZ3JhdGlvbkludGVyZmFjZSB7XG4gIG5hbWUgPSAnTWlncmF0aW9uMTcwNjM1MDY0NDY4Nic7XG5cbiAgcHVibGljIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIENSRUFURSBUQUJMRSBcInRyYW5zYWN0aW9uX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcInR4SWRcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImNoYWluXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0eFR5cGVcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRTaWduXCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImxhc3RDaGVja1wiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJsYXN0U3RhdHVzVXBkYXRlXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmYWlsZWRJblNpZ25cIiBib29sZWFuIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic2lnbkZhaWxlZENvdW50XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNlcmlhbGl6ZWRUeFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFcIiBjaGFyYWN0ZXIgdmFyeWluZyxcbiAgICAgICAgICAgICAgICBcImV4dHJhMlwiIGNoYXJhY3RlciB2YXJ5aW5nLFxuICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgXCJQS19jYWZjYzlkOGU3NmZlZjU3YmMwY2YzODVjYWFcIiBQUklNQVJZIEtFWSAoXCJ0eElkXCIsIFwiY2hhaW5cIilcbiAgICAgICAgICAgIClcbiAgICAgICAgYCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidHJhbnNhY3Rpb25fZW50aXR5XCJcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm';
1
+ import { MigrationInterface, QueryRunner } from '@rosen-bridge/extended-typeorm';
2
2
  export declare class Migration1706007154531 implements MigrationInterface {
3
3
  name: string;
4
4
  up(queryRunner: QueryRunner): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"1706007154531-migration.d.ts","sourceRoot":"","sources":["../../../../lib/db/migrations/sqlite/1706007154531-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
1
+ {"version":3,"file":"1706007154531-migration.d.ts","sourceRoot":"","sources":["../../../../lib/db/migrations/sqlite/1706007154531-migration.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
@@ -25,4 +25,4 @@ export class Migration1706007154531 {
25
25
  `);
26
26
  }
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwNjAwNzE1NDUzMS1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGIvbWlncmF0aW9ucy9zcWxpdGUvMTcwNjAwNzE1NDUzMS1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQm5CLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWlncmF0aW9uSW50ZXJmYWNlLCBRdWVyeVJ1bm5lciB9IGZyb20gJ3R5cGVvcm0nO1xuXG5leHBvcnQgY2xhc3MgTWlncmF0aW9uMTcwNjAwNzE1NDUzMSBpbXBsZW1lbnRzIE1pZ3JhdGlvbkludGVyZmFjZSB7XG4gIG5hbWUgPSAnTWlncmF0aW9uMTcwNjAwNzE1NDUzMSc7XG5cbiAgcHVibGljIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIENSRUFURSBUQUJMRSBcInRyYW5zYWN0aW9uX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidHhUeXBlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFNpZ25cIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwibGFzdENoZWNrXCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNVcGRhdGVcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZmFpbGVkSW5TaWduXCIgYm9vbGVhbiBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNpZ25GYWlsZWRDb3VudFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzZXJpYWxpemVkVHhcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFcIiB2YXJjaGFyLFxuICAgICAgICAgICAgICAgIFwiZXh0cmEyXCIgdmFyY2hhcixcbiAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoXCJ0eElkXCIsIFwiY2hhaW5cIilcbiAgICAgICAgICAgIClcbiAgICAgICAgYCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidHJhbnNhY3Rpb25fZW50aXR5XCJcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwNjAwNzE1NDUzMS1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGIvbWlncmF0aW9ucy9zcWxpdGUvMTcwNjAwNzE1NDUzMS1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQm5CLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY2hlY2stZmlsZS9maWxlbmFtZS1uYW1pbmctY29udmVudGlvbiAqL1xuaW1wb3J0IHtcbiAgTWlncmF0aW9uSW50ZXJmYWNlLFxuICBRdWVyeVJ1bm5lcixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcblxuZXhwb3J0IGNsYXNzIE1pZ3JhdGlvbjE3MDYwMDcxNTQ1MzEgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICBuYW1lID0gJ01pZ3JhdGlvbjE3MDYwMDcxNTQ1MzEnO1xuXG4gIHB1YmxpYyBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJ0cmFuc2FjdGlvbl9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImNoYWluXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4VHlwZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRTaWduXCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImxhc3RDaGVja1wiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJsYXN0U3RhdHVzVXBkYXRlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZhaWxlZEluU2lnblwiIGJvb2xlYW4gTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzaWduRmFpbGVkQ291bnRcIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic2VyaWFsaXplZFR4XCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV4dHJhXCIgdmFyY2hhcixcbiAgICAgICAgICAgICAgICBcImV4dHJhMlwiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKFwidHhJZFwiLCBcImNoYWluXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgRFJPUCBUQUJMRSBcInRyYW5zYWN0aW9uX2VudGl0eVwiXG4gICAgICAgIGApO1xuICB9XG59XG4iXX0=
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { AbstractPotChainManager } from './network/AbstractPotChainManager';
2
- export { TxPot } from './transaction/TxPot';
1
+ export { AbstractPotChainManager } from './network/abstractPotChainManager';
2
+ export { TxPot } from './transaction/txPot';
3
3
  export * from './transaction/types';
4
- export { TransactionEntity } from './db/entities/TransactionEntity';
4
+ export { TransactionEntity } from './db/entities/transactionEntity';
5
5
  export { migrations } from './db/migrations/index';
6
6
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { AbstractPotChainManager } from './network/AbstractPotChainManager';
2
- export { TxPot } from './transaction/TxPot';
1
+ export { AbstractPotChainManager } from './network/abstractPotChainManager';
2
+ export { TxPot } from './transaction/txPot';
3
3
  export * from './transaction/types';
4
- export { TransactionEntity } from './db/entities/TransactionEntity';
4
+ export { TransactionEntity } from './db/entities/transactionEntity';
5
5
  export { migrations } from './db/migrations/index';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIgfSBmcm9tICcuL25ldHdvcmsvQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXInO1xuZXhwb3J0IHsgVHhQb3QgfSBmcm9tICcuL3RyYW5zYWN0aW9uL1R4UG90JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24vdHlwZXMnO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25FbnRpdHkgfSBmcm9tICcuL2RiL2VudGl0aWVzL1RyYW5zYWN0aW9uRW50aXR5JztcbmV4cG9ydCB7IG1pZ3JhdGlvbnMgfSBmcm9tICcuL2RiL21pZ3JhdGlvbnMvaW5kZXgnO1xuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIgfSBmcm9tICcuL25ldHdvcmsvYWJzdHJhY3RQb3RDaGFpbk1hbmFnZXInO1xuZXhwb3J0IHsgVHhQb3QgfSBmcm9tICcuL3RyYW5zYWN0aW9uL3R4UG90JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24vdHlwZXMnO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25FbnRpdHkgfSBmcm9tICcuL2RiL2VudGl0aWVzL3RyYW5zYWN0aW9uRW50aXR5JztcbmV4cG9ydCB7IG1pZ3JhdGlvbnMgfSBmcm9tICcuL2RiL21pZ3JhdGlvbnMvaW5kZXgnO1xuIl19
@@ -33,4 +33,4 @@ export declare abstract class AbstractPotChainManager {
33
33
  */
34
34
  abstract isTxInMempool: (txId: string) => Promise<boolean>;
35
35
  }
36
- //# sourceMappingURL=AbstractPotChainManager.d.ts.map
36
+ //# sourceMappingURL=abstractPotChainManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractPotChainManager.d.ts","sourceRoot":"","sources":["../../lib/network/AbstractPotChainManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8BAAsB,uBAAuB;IAC3C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAE/D;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D"}
1
+ {"version":3,"file":"abstractPotChainManager.d.ts","sourceRoot":"","sources":["../../lib/network/abstractPotChainManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8BAAsB,uBAAuB;IAC3C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAE/D;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D"}
@@ -1,3 +1,3 @@
1
1
  export class AbstractPotChainManager {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9BYnN0cmFjdFBvdENoYWluTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLHVCQUF1QjtDQXlDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduaW5nU3RhdHVzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vdHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIge1xuICAvKipcbiAgICogZ2V0cyB0aGUgYmxvY2tjaGFpbiBjdXJyZW50IGhlaWdodFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0SGVpZ2h0OiAoKSA9PiBQcm9taXNlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIHJldHVybnMgcmVxdWlyZWQgbnVtYmVyIG9mIGNvbmZpcm1hdGlvblxuICAgKiBAcGFyYW0gdHhUeXBlXG4gICAqL1xuICBhYnN0cmFjdCBnZXRUeFJlcXVpcmVkQ29uZmlybWF0aW9uOiAodHhUeXBlOiBzdHJpbmcpID0+IG51bWJlcjtcblxuICAvKipcbiAgICogZ2V0cyBudW1iZXIgb2YgY29uZmlybWF0aW9uIGZvciBhIHR4XG4gICAqICByZXR1cm5zIC0xIGlmIHR4IGlzIG5vdCBpbiB0aGUgYmxvY2tjaGFpblxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VHhDb25maXJtYXRpb246ICh0eElkOiBzdHJpbmcpID0+IFByb21pc2U8bnVtYmVyPjtcblxuICAvKipcbiAgICogY2hlY2tzIGlmIGEgdHggaXMgc3RpbGwgdmFsaWQgYW5kIGNhbiBiZSBzZW50IHRvIHRoZSBuZXR3b3JrXG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHhcbiAgICogQHBhcmFtIHNpZ25pbmdTdGF0dXNcbiAgICovXG4gIGFic3RyYWN0IGlzVHhWYWxpZDogKFxuICAgIHNlcmlhbGl6ZWRUeDogc3RyaW5nLFxuICAgIHNpZ25pbmdTdGF0dXM6IFNpZ25pbmdTdGF0dXNcbiAgKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBzdWJtaXRzIGEgdHggdG8gdGhlIGJsb2NrY2hhaW5cbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUeFxuICAgKi9cbiAgYWJzdHJhY3Qgc3VibWl0VHJhbnNhY3Rpb246IChzZXJpYWxpemVkVHg6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogY2hlY2tzIGlmIGEgdHggaXMgaW4gbWVtcG9vbFxuICAgKiAgcmV0dXJucyBmYWxzZSBpZiB0aGUgY2hhaW4gaGFzIG5vIG1lbXBvb2xcbiAgICogQHBhcmFtIHR4SWRcbiAgICovXG4gIGFic3RyYWN0IGlzVHhJbk1lbXBvb2w6ICh0eElkOiBzdHJpbmcpID0+IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9hYnN0cmFjdFBvdENoYWluTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLHVCQUF1QjtDQXlDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduaW5nU3RhdHVzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vdHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIge1xuICAvKipcbiAgICogZ2V0cyB0aGUgYmxvY2tjaGFpbiBjdXJyZW50IGhlaWdodFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0SGVpZ2h0OiAoKSA9PiBQcm9taXNlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIHJldHVybnMgcmVxdWlyZWQgbnVtYmVyIG9mIGNvbmZpcm1hdGlvblxuICAgKiBAcGFyYW0gdHhUeXBlXG4gICAqL1xuICBhYnN0cmFjdCBnZXRUeFJlcXVpcmVkQ29uZmlybWF0aW9uOiAodHhUeXBlOiBzdHJpbmcpID0+IG51bWJlcjtcblxuICAvKipcbiAgICogZ2V0cyBudW1iZXIgb2YgY29uZmlybWF0aW9uIGZvciBhIHR4XG4gICAqICByZXR1cm5zIC0xIGlmIHR4IGlzIG5vdCBpbiB0aGUgYmxvY2tjaGFpblxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VHhDb25maXJtYXRpb246ICh0eElkOiBzdHJpbmcpID0+IFByb21pc2U8bnVtYmVyPjtcblxuICAvKipcbiAgICogY2hlY2tzIGlmIGEgdHggaXMgc3RpbGwgdmFsaWQgYW5kIGNhbiBiZSBzZW50IHRvIHRoZSBuZXR3b3JrXG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHhcbiAgICogQHBhcmFtIHNpZ25pbmdTdGF0dXNcbiAgICovXG4gIGFic3RyYWN0IGlzVHhWYWxpZDogKFxuICAgIHNlcmlhbGl6ZWRUeDogc3RyaW5nLFxuICAgIHNpZ25pbmdTdGF0dXM6IFNpZ25pbmdTdGF0dXMsXG4gICkgPT4gUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogc3VibWl0cyBhIHR4IHRvIHRoZSBibG9ja2NoYWluXG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHhcbiAgICovXG4gIGFic3RyYWN0IHN1Ym1pdFRyYW5zYWN0aW9uOiAoc2VyaWFsaXplZFR4OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIGNoZWNrcyBpZiBhIHR4IGlzIGluIG1lbXBvb2xcbiAgICogIHJldHVybnMgZmFsc2UgaWYgdGhlIGNoYWluIGhhcyBubyBtZW1wb29sXG4gICAqIEBwYXJhbSB0eElkXG4gICAqL1xuICBhYnN0cmFjdCBpc1R4SW5NZW1wb29sOiAodHhJZDogc3RyaW5nKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xufVxuIl19
@@ -1,8 +1,8 @@
1
- import { DataSource, Repository } from 'typeorm';
2
- import { TransactionEntity } from '../db/entities/TransactionEntity';
1
+ import { DataSource, Repository } from '@rosen-bridge/extended-typeorm';
2
+ import { TransactionEntity } from '../db/entities/transactionEntity';
3
3
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
4
4
  import { CallbackFunction, TransactionStatus, TxOptions, ValidatorFunction } from './types';
5
- import { AbstractPotChainManager } from '../network/AbstractPotChainManager';
5
+ import { AbstractPotChainManager } from '../network/abstractPotChainManager';
6
6
  export declare class TxPot {
7
7
  protected static instance: TxPot;
8
8
  protected readonly txRepository: Repository<TransactionEntity>;
@@ -209,4 +209,4 @@ export declare class TxPot {
209
209
  */
210
210
  updateExtra: (txId: string, chain: string, extra?: string | null, extra2?: string | null) => Promise<void>;
211
211
  }
212
- //# sourceMappingURL=TxPot.d.ts.map
212
+ //# sourceMappingURL=txPot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txPot.d.ts","sourceRoot":"","sources":["../../lib/transaction/txPot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,SAAS,EAET,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,qBAAa,KAAK;IAChB,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC/D,SAAS,CAAC,MAAM,uCAA8C;IAC9D,SAAS,CAAC,UAAU,2DAGhB;IACJ,SAAS,CAAC,eAAe,qEAGrB;IACJ,SAAS,CAAC,mBAAmB,8CAGzB;IACJ,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IAEjC,SAAS,aAAa,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAMrE;;;;;OAKG;IACH,OAAc,KAAK,GACjB,YAAY,UAAU,EACtB,SAAS,cAAc,KACtB,KAAK,CAGN;IAEF;;;OAGG;IACH,OAAc,WAAW,QAAO,KAAK,CAGnC;IAEF;;;;OAIG;IACH,aAAa,GACX,OAAO,MAAM,EACb,cAAc,uBAAuB,KACpC,IAAI,CAKL;IAEF;;;;;;OAMG;IACH,iBAAiB,GACf,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,IAAI,MAAM,EACV,WAAW,iBAAiB,KAC3B,IAAI,CAuBL;IAEF;;;;;OAKG;IACH,mBAAmB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,IAAI,CAarE;IAEF;;;;;OAKG;IACH,uBAAuB,GACrB,OAAO,MAAM,EACb,IAAI,MAAM,EACV,WAAW,iBAAiB,KAC3B,IAAI,CAkBL;IAEF;;;;OAIG;IACH,yBAAyB,GAAI,OAAO,MAAM,EAAE,IAAI,MAAM,KAAG,IAAI,CAa3D;IAEF;;;;;;;;OAQG;IACH,gBAAgB,GACd,QAAQ,MAAM,EACd,QAAQ,iBAAiB,EACzB,IAAI,MAAM,EACV,UAAU,gBAAgB,KACzB,IAAI,CA2BL;IAEF;;;;;OAKG;IACH,kBAAkB,GAChB,QAAQ,MAAM,EACd,QAAQ,iBAAiB,EACzB,IAAI,MAAM,KACT,IAAI,CAaL;IAEF;;;;OAIG;IACH,SAAS,CAAC,eAAe,GAAI,OAAO,MAAM,KAAG,uBAAuB,CAOlE;IAEF;;;OAGG;IACH,SAAS,CAAC,uBAAuB,GAC/B,IAAI,iBAAiB,KACpB,OAAO,CAAC,IAAI,CAAC,CAkBd;IAEF;;;;;OAKG;IACH,SAAS,CAAC,UAAU,GAAU,IAAI,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,CAmBpE;IAEF;;;;;OAKG;IACH,SAAS,CAAC,eAAe,GACvB,IAAI,iBAAiB,KACpB,OAAO,CAAC,OAAO,CAAC,CAkBjB;IAEF;;;;OAIG;IACH,SAAS,CAAC,WAAW,GACnB,IAAI,iBAAiB,EACrB,QAAQ,iBAAiB,KACxB,OAAO,CAAC,IAAI,CAAC,CAyBd;IAEF;;OAEG;IACH,SAAS,CAAC,WAAW,eAA+C;IAEpE;;;OAGG;IACH,SAAS,CAAC,eAAe,GAAU,IAAI,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC,CAYtE;IAEF;;;OAGG;IACH,SAAS,CAAC,eAAe,GAAU,IAAI,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC,CAoDtE;IAEF;;;;OAIG;IACH,MAAM,QAAa,OAAO,CAAC,IAAI,CAAC,CAkC9B;IAEF;;;;;OAKG;IACH,cAAc,GACZ,QAAQ,iBAAiB,EACzB,kBAAgB,KACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAclC;IAEF;;;;;;;;;;;;OAYG;IACH,KAAK,GACH,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,cAAc,MAAM,EACpB,cAAc,MAAM,EACpB,iCAA0C,EAC1C,kBAAa,EACb,QAAQ,MAAM,GAAG,IAAI,EACrB,SAAS,MAAM,GAAG,IAAI,KACrB,OAAO,CAAC,IAAI,CAAC,CAed;IAEF;;;;;OAKG;IACH,eAAe,GACb,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,QAAQ,iBAAiB,KACxB,OAAO,CAAC,IAAI,CAAC,CAKd;IAEF;;;;OAIG;IACH,iBAAiB,GAAU,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAcpE;IAEF;;;;;;;;OAQG;IACH,aAAa,GACX,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,cAAc,MAAM,EACpB,eAAe,MAAM,EACrB,QAAQ,MAAM,EACd,SAAS,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAWd;IAEF;;;;;OAKG;IACH,iBAAiB,GACf,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,eAAe,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAKd;IAEF;;;;OAIG;IACH,iBAAiB,GAAU,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;IAEF;;;;;OAKG;IACH,kBAAkB,GAChB,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,OAAO,CAAC,IAAI,CAAC,CAOd;IAEF;;;;OAIG;IACH,UAAU,GACR,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAIlC;IAEF;;OAEG;IACH,WAAW,GACT,UAAS,KAAK,CAAC,SAAS,CAAM,KAC7B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAI7B;IAEF;;;;;;OAMG;IACH,WAAW,GACT,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,QAAQ,MAAM,GAAG,IAAI,EACrB,SAAS,MAAM,GAAG,IAAI,KACrB,OAAO,CAAC,IAAI,CAAC,CAGd;CACH"}
@@ -1,4 +1,4 @@
1
- import { TransactionEntity } from '../db/entities/TransactionEntity';
1
+ import { TransactionEntity } from '../db/entities/transactionEntity';
2
2
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
3
3
  import { SigningStatus, TransactionStatus, UnregisteredChain, } from './types';
4
4
  import { txOptionToClause } from './utils';
@@ -530,4 +530,4 @@ export class TxPot {
530
530
  await this.txRepository.update({ txId, chain }, { extra, extra2 });
531
531
  };
532
532
  }
533
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhQb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHJhbnNhY3Rpb24vVHhQb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBRUwsYUFBYSxFQUNiLGlCQUFpQixFQUVqQixpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzNDLE1BQU0sT0FBTyxLQUFLO0lBQ04sTUFBTSxDQUFDLFFBQVEsQ0FBUTtJQUNkLFlBQVksQ0FBZ0M7SUFDckQsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO0lBQ3BELFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFHM0IsQ0FBQztJQUNNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFHaEMsQ0FBQztJQUNNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUdwQyxDQUFDO0lBQ00sTUFBTSxDQUFpQjtJQUVqQyxZQUFzQixVQUFzQixFQUFFLE1BQXVCO1FBQ25FLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsS0FBSyxHQUFHLENBQ3BCLFVBQXNCLEVBQ3RCLE1BQXVCLEVBQ2hCLEVBQUU7UUFDVCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxPQUFP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LEVBQ0EsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQzVCLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILFdBQVcsR0FBRyxLQUFLLEVBQ2pCLElBQVksRUFDWixLQUFhLEVBQ2IsS0FBcUIsRUFDckIsTUFBc0IsRUFDUCxFQUFFO1FBQ2pCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE9BQU87UUFDeEQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIFJlcG9zaXRvcnkgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uRW50aXR5IH0gZnJvbSAnLi4vZGIvZW50aXRpZXMvVHJhbnNhY3Rpb25FbnRpdHknO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FsbGJhY2tGdW5jdGlvbixcbiAgU2lnbmluZ1N0YXR1cyxcbiAgVHJhbnNhY3Rpb25TdGF0dXMsXG4gIFR4T3B0aW9ucyxcbiAgVW5yZWdpc3RlcmVkQ2hhaW4sXG4gIFZhbGlkYXRvckZ1bmN0aW9uLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHR4T3B0aW9uVG9DbGF1c2UgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFic3RyYWN0UG90Q2hhaW5NYW5hZ2VyIH0gZnJvbSAnLi4vbmV0d29yay9BYnN0cmFjdFBvdENoYWluTWFuYWdlcic7XG5cbmV4cG9ydCBjbGFzcyBUeFBvdCB7XG4gIHByb3RlY3RlZCBzdGF0aWMgaW5zdGFuY2U6IFR4UG90O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHhSZXBvc2l0b3J5OiBSZXBvc2l0b3J5PFRyYW5zYWN0aW9uRW50aXR5PjtcbiAgcHJvdGVjdGVkIGNoYWlucyA9IG5ldyBNYXA8c3RyaW5nLCBBYnN0cmFjdFBvdENoYWluTWFuYWdlcj4oKTtcbiAgcHJvdGVjdGVkIHZhbGlkYXRvcnMgPSBuZXcgTWFwPFxuICAgIHN0cmluZyxcbiAgICBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBWYWxpZGF0b3JGdW5jdGlvbj4+XG4gID4oKTtcbiAgcHJvdGVjdGVkIHR4VHlwZUNhbGxiYWNrcyA9IG5ldyBNYXA8XG4gICAgc3RyaW5nLFxuICAgIE1hcDxUcmFuc2FjdGlvblN0YXR1cywgTWFwPHN0cmluZywgQ2FsbGJhY2tGdW5jdGlvbj4+XG4gID4oKTtcbiAgcHJvdGVjdGVkIHN1Ym1pc3Npb25BbGxvd2FuY2UgPSBuZXcgTWFwPFxuICAgIHN0cmluZyxcbiAgICBNYXA8c3RyaW5nLCBWYWxpZGF0b3JGdW5jdGlvbj5cbiAgPigpO1xuICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLnR4UmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShUcmFuc2FjdGlvbkVudGl0eSk7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPz8gbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ1R4UG90IGluc3RhbnRpYXRlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIGluaXRpYXRlcyBUeFBvdFxuICAgKiBAcGFyYW0gZGF0YVNvdXJjZSB0eXBlb3JtIGRhdGEgc291cmNlXG4gICAqIEBwYXJhbSBsb2dnZXJcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2V0dXAgPSAoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApOiBUeFBvdCA9PiB7XG4gICAgVHhQb3QuaW5zdGFuY2UgPSBuZXcgVHhQb3QoZGF0YVNvdXJjZSwgbG9nZ2VyKTtcbiAgICByZXR1cm4gVHhQb3QuaW5zdGFuY2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJldHVybnMgVHhQb3QgaW5zdGFuY2UgKHRocm93cyBlcnJvciBpZiBub25lIGV4aXN0cylcbiAgICogQHJldHVybnMgVHhQb3QgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5zdGFuY2UgPSAoKTogVHhQb3QgPT4ge1xuICAgIGlmICghVHhQb3QuaW5zdGFuY2UpIHRocm93IEVycm9yKGBUeFBvdCBpbnN0YW5jZSBkb2Vzbid0IGV4aXN0YCk7XG4gICAgcmV0dXJuIFR4UG90Lmluc3RhbmNlO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZWdpc3RlcnMgYSBjaGFpbiB0byBUeFBvdFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIGNoYWluTWFuYWdlclxuICAgKi9cbiAgcmVnaXN0ZXJDaGFpbiA9IChcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIGNoYWluTWFuYWdlcjogQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXJcbiAgKTogdm9pZCA9PiB7XG4gICAgdGhpcy5jaGFpbnMuc2V0KGNoYWluLCBjaGFpbk1hbmFnZXIpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYEEgVHhQb3QgY2hhaW4gbWFuYWdlciBpcyByZWdpc3RlcmVkIGZvciBjaGFpbiBbJHtjaGFpbn1dYFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlZ2lzdGVycyBhIHZhbGlkYXRvciBmdW5jdGlvblxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIHR4VHlwZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIHZhbGlkYXRvclxuICAgKi9cbiAgcmVnaXN0ZXJWYWxpZGF0b3IgPSAoXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICB0eFR5cGU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbGlkYXRvcjogVmFsaWRhdG9yRnVuY3Rpb25cbiAgKTogdm9pZCA9PiB7XG4gICAgbGV0IGNoYWluVmFsaWRhdG9ycyA9IHRoaXMudmFsaWRhdG9ycy5nZXQoY2hhaW4pO1xuICAgIGlmICghY2hhaW5WYWxpZGF0b3JzKSB7XG4gICAgICBjaGFpblZhbGlkYXRvcnMgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgVmFsaWRhdG9yRnVuY3Rpb24+PigpO1xuICAgICAgdGhpcy52YWxpZGF0b3JzLnNldChjaGFpbiwgY2hhaW5WYWxpZGF0b3JzKTtcbiAgICB9XG5cbiAgICBsZXQgdHlwZVZhbGlkYXRvcnMgPSBjaGFpblZhbGlkYXRvcnMuZ2V0KHR4VHlwZSk7XG4gICAgaWYgKCF0eXBlVmFsaWRhdG9ycykge1xuICAgICAgdHlwZVZhbGlkYXRvcnMgPSBuZXcgTWFwPHN0cmluZywgVmFsaWRhdG9yRnVuY3Rpb24+KCk7XG4gICAgICBjaGFpblZhbGlkYXRvcnMuc2V0KHR4VHlwZSwgdHlwZVZhbGlkYXRvcnMpO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VmFsaWRhdG9yID0gdHlwZVZhbGlkYXRvcnMuZ2V0KGlkKTtcbiAgICB0eXBlVmFsaWRhdG9ycy5zZXQoaWQsIHZhbGlkYXRvcik7XG4gICAgaWYgKGN1cnJlbnRWYWxpZGF0b3IpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgVGhlIHR4IHZhbGlkYXRvciBmdW5jdGlvbiBmb3IgY2hhaW4gWyR7Y2hhaW59XSwgdHlwZSBbJHt0eFR5cGV9XSBhbmQgaWQgWyR7aWR9XSBpcyByZXBsYWNlZGBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgIGBOZXcgdHggdmFsaWRhdG9yIGZ1bmN0aW9uIGlzIHJlZ2lzdGVyZWQgZm9yIGNoYWluIFske2NoYWlufV0gYW5kIHR5cGUgWyR7dHhUeXBlfV0gYnkgaWQgWyR7aWR9XWBcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiByZW1vdmVzIGEgdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gdHhUeXBlXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgdW5yZWdpc3RlclZhbGlkYXRvciA9IChjaGFpbjogc3RyaW5nLCB0eFR5cGU6IHN0cmluZywgaWQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLnZhbGlkYXRvcnMuZ2V0KGNoYWluKT8uZ2V0KHR4VHlwZSk7XG4gICAgaWYgKCF2YWxpZGF0b3JzKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIHR4IHZhbGlkYXRvciBmdW5jdGlvbiBpcyBzZXQgZm9yIGNoYWluIFske2NoYWlufV0sIHR5cGUgWyR7dHhUeXBlfV0gYW5kIGlkIFske2lkfV1gXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhbGlkYXRvcnMuZGVsZXRlKGlkKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYFJlbW92ZWQgdHggdmFsaWRhdG9yIGZ1bmN0aW9uIGZvciBjaGFpbiBbJHtjaGFpbn1dLCB0eXBlIFske3R4VHlwZX1dIGFuZCBpZCBbJHtpZH1dYFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlZ2lzdGVycyBhIHN1Ym1pdCB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gdmFsaWRhdG9yXG4gICAqL1xuICByZWdpc3RlclN1Ym1pdFZhbGlkYXRvciA9IChcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGdW5jdGlvblxuICApOiB2b2lkID0+IHtcbiAgICBsZXQgY2hhaW5BbGxvd2FuY2UgPSB0aGlzLnN1Ym1pc3Npb25BbGxvd2FuY2UuZ2V0KGNoYWluKTtcbiAgICBpZiAoIWNoYWluQWxsb3dhbmNlKSB7XG4gICAgICBjaGFpbkFsbG93YW5jZSA9IG5ldyBNYXA8c3RyaW5nLCBWYWxpZGF0b3JGdW5jdGlvbj4oKTtcbiAgICAgIHRoaXMuc3VibWlzc2lvbkFsbG93YW5jZS5zZXQoY2hhaW4sIGNoYWluQWxsb3dhbmNlKTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50VmFsaWRhdG9yID0gY2hhaW5BbGxvd2FuY2UuZ2V0KGlkKTtcbiAgICBjaGFpbkFsbG93YW5jZS5zZXQoaWQsIHZhbGlkYXRvcik7XG4gICAgaWYgKGN1cnJlbnRWYWxpZGF0b3IpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgVGhlIHR4IHN1Ym1pdCB2YWxpZGF0b3IgZnVuY3Rpb24gZm9yIGNoYWluIFske2NoYWlufV0gYW5kIGlkIFske2lkfV0gaXMgcmVwbGFjZWRgXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgTmV3IHR4IHN1Ym1pdCB2YWxpZGF0b3IgZnVuY3Rpb24gaXMgcmVnaXN0ZXJlZCBmb3IgY2hhaW4gWyR7Y2hhaW59XSBieSBpZCBbJHtpZH1dYFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgYSBzdWJtaXQgdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIHVucmVnaXN0ZXJTdWJtaXRWYWxpZGF0b3IgPSAoY2hhaW46IHN0cmluZywgaWQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGNoYWluQWxsb3dhbmNlID0gdGhpcy5zdWJtaXNzaW9uQWxsb3dhbmNlLmdldChjaGFpbik7XG4gICAgaWYgKCFjaGFpbkFsbG93YW5jZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBObyB0eCBzdWJtaXQgdmFsaWRhdG9yIGZ1bmN0aW9uIGlzIHNldCBmb3IgY2hhaW4gWyR7Y2hhaW59XSBhbmQgaWQgWyR7aWR9XWBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2hhaW5BbGxvd2FuY2UuZGVsZXRlKGlkKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYFJlbW92ZWQgdHggc3VibWl0IHZhbGlkYXRvciBmdW5jdGlvbiBmb3IgY2hhaW4gWyR7Y2hhaW59XSBhbmQgaWQgWyR7aWR9XWBcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvblxuICAgKiAgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHdoZW4gc3RhdHVzIG9mIGFueSB0cmFuc2FjdGlvbnNcbiAgICogIG9mIGdpdmVuIHR5cGUgY2hhbmdlcyB0byBnaXZlbiBzdGF0dXNcbiAgICogQHBhcmFtIHR4VHlwZVxuICAgKiBAcGFyYW0gc3RhdHVzXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICovXG4gIHJlZ2lzdGVyQ2FsbGJhY2sgPSAoXG4gICAgdHhUeXBlOiBzdHJpbmcsXG4gICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1cyxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiBDYWxsYmFja0Z1bmN0aW9uXG4gICk6IHZvaWQgPT4ge1xuICAgIGxldCB0eXBlQ2FsbGJhY2tzID0gdGhpcy50eFR5cGVDYWxsYmFja3MuZ2V0KHR4VHlwZSk7XG4gICAgaWYgKCF0eXBlQ2FsbGJhY2tzKSB7XG4gICAgICB0eXBlQ2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICAgICAgVHJhbnNhY3Rpb25TdGF0dXMsXG4gICAgICAgIE1hcDxzdHJpbmcsIENhbGxiYWNrRnVuY3Rpb24+XG4gICAgICA+KCk7XG4gICAgICB0aGlzLnR4VHlwZUNhbGxiYWNrcy5zZXQodHhUeXBlLCB0eXBlQ2FsbGJhY2tzKTtcbiAgICB9XG5cbiAgICBsZXQgc3RhdHVzQ2FsbGJhY2tzID0gdHlwZUNhbGxiYWNrcy5nZXQoc3RhdHVzKTtcbiAgICBpZiAoIXN0YXR1c0NhbGxiYWNrcykge1xuICAgICAgc3RhdHVzQ2FsbGJhY2tzID0gbmV3IE1hcDxzdHJpbmcsIENhbGxiYWNrRnVuY3Rpb24+KCk7XG4gICAgICB0eXBlQ2FsbGJhY2tzLnNldChzdGF0dXMsIHN0YXR1c0NhbGxiYWNrcyk7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudENhbGxiYWNrID0gc3RhdHVzQ2FsbGJhY2tzLmdldChpZCk7XG4gICAgc3RhdHVzQ2FsbGJhY2tzLnNldChpZCwgY2FsbGJhY2spO1xuICAgIGlmIChjdXJyZW50Q2FsbGJhY2spIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgVGhlIHR4IHN0YXR1cyBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdHlwZSBbJHt0eFR5cGV9XSBhbmQgc3RhdHVzIFske3N0YXR1c31dIGFuZCBpZCBbJHtpZH1dIGlzIHJlcGxhY2VkYFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgYE5ldyB0eCBzdGF0dXMgY2FsbGJhY2sgZnVuY3Rpb24gaXMgcmVnaXN0ZXJlZCBmb3IgdHlwZSBbJHt0eFR5cGV9XSBhbmQgc3RhdHVzIFske3N0YXR1c31dIGJ5IGlkIFske2lkfV1gXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB0eFR5cGVcbiAgICogQHBhcmFtIHN0YXR1c1xuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIHVucmVnaXN0ZXJDYWxsYmFjayA9IChcbiAgICB0eFR5cGU6IHN0cmluZyxcbiAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLFxuICAgIGlkOiBzdHJpbmdcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgY2FsbGJhY2tzID0gdGhpcy50eFR5cGVDYWxsYmFja3MuZ2V0KHR4VHlwZSk/LmdldChzdGF0dXMpO1xuICAgIGlmICghY2FsbGJhY2tzKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIHR4IHN0YXR1cyBjYWxsYmFjayBmdW5jdGlvbiBpcyBzZXQgZm9yIHR5cGUgWyR7dHhUeXBlfV0gYW5kIHN0YXR1cyBbJHtzdGF0dXN9XSBhbmQgaWQgWyR7aWR9XWBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2FsbGJhY2tzLmRlbGV0ZShpZCk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgIGBSZW1vdmVkIHR4IHN0YXR1cyBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdHlwZSBbJHt0eFR5cGV9XSBhbmQgc3RhdHVzIFske3N0YXR1c31dIGFuZCBpZCBbJHtpZH1dYFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJldHVybnMgY2hhaW4gbWFuYWdlciBmb3IgZ2l2ZW4gY2hhaW5cbiAgICogIHRocm93cyBlcnJvciBpZiBubyBtYW5hZ2VyIGlzIHJlZ2lzdGVyZWQgZm9yIGl0XG4gICAqIEBwYXJhbSBjaGFpblxuICAgKi9cbiAgcHJvdGVjdGVkIGdldENoYWluTWFuYWdlciA9IChjaGFpbjogc3RyaW5nKTogQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIgPT4ge1xuICAgIGNvbnN0IG1hbmFnZXIgPSB0aGlzLmNoYWlucy5nZXQoY2hhaW4pO1xuICAgIGlmICghbWFuYWdlcilcbiAgICAgIHRocm93IG5ldyBVbnJlZ2lzdGVyZWRDaGFpbihcbiAgICAgICAgYE5vIG1hbmFnZXIgaXMgcmVnaXN0ZXJlZCBmb3IgY2hhaW4gWyR7Y2hhaW59XWBcbiAgICAgICk7XG4gICAgcmV0dXJuIG1hbmFnZXI7XG4gIH07XG5cbiAgLyoqXG4gICAqIHNldHMgdGhlIHR4IGFzIGludmFsaWQgaWYgZW5vdWdoIGJsb2NrcyBpcyBwYXNzZWQgZnJvbSBsYXN0IGNoZWNrXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJvdGVjdGVkIHNldFRyYW5zYWN0aW9uQXNJbnZhbGlkID0gYXN5bmMgKFxuICAgIHR4OiBUcmFuc2FjdGlvbkVudGl0eVxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBtYW5hZ2VyID0gdGhpcy5nZXRDaGFpbk1hbmFnZXIodHguY2hhaW4pO1xuXG4gICAgY29uc3QgY3VycmVudEhlaWdodCA9IGF3YWl0IG1hbmFnZXIuZ2V0SGVpZ2h0KCk7XG4gICAgY29uc3QgcmVxdWlyZWRDb25maXJtYXRpb24gPSBtYW5hZ2VyLmdldFR4UmVxdWlyZWRDb25maXJtYXRpb24odHgudHhUeXBlKTtcblxuICAgIGlmIChjdXJyZW50SGVpZ2h0IC0gdHgubGFzdENoZWNrID49IHJlcXVpcmVkQ29uZmlybWF0aW9uKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFR4U3RhdHVzKHR4LCBUcmFuc2FjdGlvblN0YXR1cy5JTlZBTElEKTtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oYFR4IFske3R4LnR4SWR9XSBpcyBpbnZhbGlkYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgIGBUeCBbJHtcbiAgICAgICAgICB0eC50eElkXG4gICAgICAgIH1dIHNlZW1zIGludmFsaWQuIFdhaXRpbmcgZm9yIGVub3VnaCBjb25maXJtYXRpb24gb2YgdGhpcyBwcm9wb3NpdGlvbiBbJHtcbiAgICAgICAgICBjdXJyZW50SGVpZ2h0IC0gdHgubGFzdENoZWNrXG4gICAgICAgIH0vJHtyZXF1aXJlZENvbmZpcm1hdGlvbn1dYFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHZhbGlkYXRlcyBhIHRyYW5zYWN0aW9uXG4gICAqIHJldHVybnMgdHJ1ZSBpZiBubyB2YWxpZGF0b3IgZnVuY3Rpb25zIGlzIHNldCBvciB0eCBpcyB2YWxpZFxuICAgKiBvdGhlcndpc2UgaGFuZGxlIHRoZSB0eCBhcyBpbnZhbGlkIGFuZCByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlVHggPSBhc3luYyAodHg6IFRyYW5zYWN0aW9uRW50aXR5KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMudmFsaWRhdG9ycy5nZXQodHguY2hhaW4pPy5nZXQodHgudHhUeXBlKTtcbiAgICBpZiAodmFsaWRhdG9ycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0eCBpcyB2YWxpZCBzaW5jZSBubyB2YWxpZGF0b3IgaXMgZm91bmRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgTm8gdmFsaWRhdG9yIGZ1bmN0aW9uIGlzIGZvdW5kIGZvciBjaGFpbiBbJHt0eC5jaGFpbn1dIGFuZCB0eXBlIFske3R4LnR4VHlwZX1dYFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGlkVmFsaWRhdG9yUGFpciBvZiB2YWxpZGF0b3JzKSB7XG4gICAgICBpZiAoKGF3YWl0IGlkVmFsaWRhdG9yUGFpclsxXSh0eCkpID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgdHggWyR7dHgudHhJZH1dIGlzIHJlY29nbml6ZWQgYXMgaW52YWxpZCBieSB2YWxpZGF0b3IgWyR7aWRWYWxpZGF0b3JQYWlyWzBdfV1gXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuc2V0VHJhbnNhY3Rpb25Bc0ludmFsaWQodHgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBjaGVja3MgYSB0cmFuc2FjdGlvbiBmb3Igc3VibWlzc2lvblxuICAgKiByZXR1cm5zIHRydWUgaWYgbm8gdmFsaWRhdG9yIGZ1bmN0aW9ucyBpcyBzZXQgb3IgYWxsIHZhbGlkYXRvcnMgYWxsb3cgdHggdG8gc3VibWl0XG4gICAqIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJvdGVjdGVkIGlzU3VibWl0QWxsb3dlZCA9IGFzeW5jIChcbiAgICB0eDogVHJhbnNhY3Rpb25FbnRpdHlcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMuc3VibWlzc2lvbkFsbG93YW5jZS5nZXQodHguY2hhaW4pO1xuICAgIGlmICh2YWxpZGF0b3JzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHR4IGlzIGFsbG93ZWQgZm9yIHN1Ym1pc3Npb24gc2luY2Ugbm8gdmFsaWRhdG9yIGlzIGZvdW5kXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIHN1Ym1pdCB2YWxpZGF0b3IgZnVuY3Rpb24gaXMgZm91bmQgZm9yIGNoYWluIFske3R4LmNoYWlufV1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZvciAoY29uc3QgaWRWYWxpZGF0b3JQYWlyIG9mIHZhbGlkYXRvcnMpIHtcbiAgICAgIGlmICgoYXdhaXQgaWRWYWxpZGF0b3JQYWlyWzFdKHR4KSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGB0eCBbJHt0eC50eElkfV0gaXMgbm90IGFsbG93ZWQgZm9yIHN1Ym1pc3Npb24gYnkgc3VibWl0IHZhbGlkYXRvciBbJHtpZFZhbGlkYXRvclBhaXJbMF19XWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyB0aGUgc3RhdHVzIG9mIGEgdHhcbiAgICogQHBhcmFtIHR4S2V5IHR4IGlkIGFuZCBjaGFpblxuICAgKiBAcGFyYW0gc3RhdHVzIG5ldyBzdGF0dXNcbiAgICovXG4gIHByb3RlY3RlZCBzZXRUeFN0YXR1cyA9IGFzeW5jIChcbiAgICB0eDogVHJhbnNhY3Rpb25FbnRpdHksXG4gICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c1xuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7XG4gICAgICAgIHR4SWQ6IHR4LnR4SWQsXG4gICAgICAgIGNoYWluOiB0eC5jaGFpbixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogc3RhdHVzLFxuICAgICAgICBsYXN0U3RhdHVzVXBkYXRlOiB0aGlzLmN1cnJlbnRUaW1lKCksXG4gICAgICB9XG4gICAgKTtcbiAgICBjb25zdCBjYWxsYmFja3MgPSB0aGlzLnR4VHlwZUNhbGxiYWNrcy5nZXQodHgudHhUeXBlKT8uZ2V0KHN0YXR1cyk7XG4gICAgaWYgKGNhbGxiYWNrcykge1xuICAgICAgZm9yIChjb25zdCBpZENhbGxiYWNrUGFpciBvZiBjYWxsYmFja3MpIHtcbiAgICAgICAgaWRDYWxsYmFja1BhaXJbMV0odHgsIHN0YXR1cykuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBoYW5kbGluZyB0eCBbJHt0eC50eElkfV0gc3RhdHVzIGNoYW5nZSBpbiBjYWxsYmFjayBbJHtpZENhbGxiYWNrUGFpclswXX1dOiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB0aGlzLmxvZ2dlci5kZWJ1ZyhlLnN0YWNrKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHNldCBmb3IgdHlwZSBbJHt0eC50eFR5cGV9XSBhbmQgc3RhdHVzIFske3N0YXR1c31dYFxuICAgICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgY3VycmVudCB0aW1lc3RhbXAgaW4gc2Vjb25kcyBhbmQgc3RyaW5nIGZvcm1hdFxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lID0gKCkgPT4gU3RyaW5nKE1hdGgucm91bmQoRGF0ZS5ub3coKSAvIDEwMDApKTtcblxuICAvKipcbiAgICogc3VibWl0cyB0aGUgc2lnbmVkIHRyYW5zYWN0aW9uIHRvIHRoZSBibG9ja2NoYWluXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJvdGVjdGVkIHByb2Nlc3NTaWduZWRUeCA9IGFzeW5jICh0eDogVHJhbnNhY3Rpb25FbnRpdHkpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAoIShhd2FpdCB0aGlzLmlzU3VibWl0QWxsb3dlZCh0eCkpKSByZXR1cm47XG4gICAgY29uc3QgbWFuYWdlciA9IHRoaXMuZ2V0Q2hhaW5NYW5hZ2VyKHR4LmNoYWluKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbWFuYWdlci5zdWJtaXRUcmFuc2FjdGlvbih0eC5zZXJpYWxpemVkVHgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBGYWlsZWQgdG8gc3VibWl0IHR4IFske3R4LnR4SWR9XSB0byBjaGFpbiBbJHt0eC5jaGFpbn1dOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykgdGhpcy5sb2dnZXIud2FybihlLnN0YWNrKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5zZXRUeFN0YXR1cyh0eCwgVHJhbnNhY3Rpb25TdGF0dXMuU0VOVCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHByb2Nlc3NlcyB0aGUgc2VudCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHhcbiAgICovXG4gIHByb3RlY3RlZCBwcm9jZXNzZXNTZW50VHggPSBhc3luYyAodHg6IFRyYW5zYWN0aW9uRW50aXR5KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgbWFuYWdlciA9IHRoaXMuZ2V0Q2hhaW5NYW5hZ2VyKHR4LmNoYWluKTtcblxuICAgIGNvbnN0IHR4Q29uZmlybWF0aW9uID0gYXdhaXQgbWFuYWdlci5nZXRUeENvbmZpcm1hdGlvbih0eC50eElkKTtcbiAgICBjb25zdCByZXF1aXJlZENvbmZpcm1hdGlvbiA9IG1hbmFnZXIuZ2V0VHhSZXF1aXJlZENvbmZpcm1hdGlvbih0eC50eFR5cGUpO1xuXG4gICAgaWYgKHR4Q29uZmlybWF0aW9uID49IHJlcXVpcmVkQ29uZmlybWF0aW9uKSB7XG4gICAgICAvLyB0eCBpcyBjb25maXJtZWQgZW5vdWdoXG4gICAgICBhd2FpdCB0aGlzLnNldFR4U3RhdHVzKHR4LCBUcmFuc2FjdGlvblN0YXR1cy5DT01QTEVURUQpO1xuICAgIH0gZWxzZSBpZiAodHhDb25maXJtYXRpb24gPT09IC0xKSB7XG4gICAgICAvLyB0eCBpcyBub3QgbWluZWQsIGNoZWNraW5nIG1lbXBvb2wuLi5cbiAgICAgIGlmIChhd2FpdCBtYW5hZ2VyLmlzVHhJbk1lbXBvb2wodHgudHhJZCkpIHtcbiAgICAgICAgLy8gdHggaXMgaW4gbWVtcG9vbCwgdXBkYXRpbmcgbGFzdCBjaGVjay4uLlxuICAgICAgICBjb25zdCBoZWlnaHQgPSBhd2FpdCBtYW5hZ2VyLmdldEhlaWdodCgpO1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVR4TGFzdENoZWNrKHR4LnR4SWQsIHR4LmNoYWluLCBoZWlnaHQpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKGBUeCBbJHt0eC50eElkfV0gaXMgaW4gbWVtcG9vbGApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdHggaXMgbm90IGluIG1lbXBvb2wsIGNoZWNraW5nIGlmIHR4IGlzIHN0aWxsIHZhbGlkXG4gICAgICAgIGNvbnN0IGlzVmFsaWRUeCA9IGF3YWl0IG1hbmFnZXIuaXNUeFZhbGlkKFxuICAgICAgICAgIHR4LnNlcmlhbGl6ZWRUeCxcbiAgICAgICAgICBTaWduaW5nU3RhdHVzLlNpZ25lZFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBpc1ZhbGlkVG9UeXBlID0gYXdhaXQgdGhpcy52YWxpZGF0ZVR4KHR4KTtcblxuICAgICAgICBpZiAoaXNWYWxpZFR4ICYmIGlzVmFsaWRUb1R5cGUpIHtcbiAgICAgICAgICAvLyB0eCBpcyB2YWxpZC4gcmVzZW5kaW5nLi4uXG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBUeCBbJHt0eC50eElkfV0gaXMgc3RpbGwgdmFsaWQuIEF0dGVtcHRpbmcgcmVzZW5kLi4uYFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGF3YWl0IHRoaXMuaXNTdWJtaXRBbGxvd2VkKHR4KSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgYXdhaXQgbWFuYWdlci5zdWJtaXRUcmFuc2FjdGlvbih0eC5zZXJpYWxpemVkVHgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gc3VibWl0IHR4IFske3R4LnR4SWR9XSB0byBjaGFpbiBbJHt0eC5jaGFpbn1dOiAke2V9YFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHRoaXMubG9nZ2VyLndhcm4oZS5zdGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHR4IHNlZW1zIGludmFsaWQuIHJlc2V0IHN0YXR1cyBpZiBlbm91Z2ggYmxvY2tzIHBhc3QuXG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXRUcmFuc2FjdGlvbkFzSW52YWxpZCh0eCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdHggaXMgbWluZWQsIGJ1dCBpcyBub3QgY29uZmlybWVkIGVub3VnaCwgdXBkYXRpbmcgbGFzdCBjaGVjay4uLlxuICAgICAgY29uc3QgaGVpZ2h0ID0gYXdhaXQgbWFuYWdlci5nZXRIZWlnaHQoKTtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlVHhMYXN0Q2hlY2sodHgudHhJZCwgdHguY2hhaW4sIGhlaWdodCk7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgVHggWyR7dHgudHhJZH1dIGlzIGluIGNvbmZpcm1hdGlvbiBwcm9jZXNzIFske3R4Q29uZmlybWF0aW9ufS8ke3JlcXVpcmVkQ29uZmlybWF0aW9ufV1gXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcnVucyBhbGwgam9icyBvZiBUeFBvdFxuICAgKiAtIHByb2Nlc3Mgc2lnbmVkIHR4c1xuICAgKiAtIHByb2Nlc3Mgc2VudCB0eHNcbiAgICovXG4gIHVwZGF0ZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBmZXRjaCBzaWduZWQgYW5kIHNlbnQgdHhzXG4gICAgY29uc3Qgc2lnbmVkVHhzID0gYXdhaXQgdGhpcy5nZXRUeHNCeVN0YXR1cyhUcmFuc2FjdGlvblN0YXR1cy5TSUdORUQpO1xuICAgIGNvbnN0IHNlbnRUeHMgPSBhd2FpdCB0aGlzLmdldFR4c0J5U3RhdHVzKFRyYW5zYWN0aW9uU3RhdHVzLlNFTlQpO1xuXG4gICAgLy8gcHJvY2VzcyBzaWduZWQgdHhzXG4gICAgZm9yIChjb25zdCB0eCBvZiBzaWduZWRUeHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc1NpZ25lZFR4KHR4KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyB0eCBbJHt0eC50eElkfV0gd2l0aCBzdGF0dXMgWyR7VHJhbnNhY3Rpb25TdGF0dXMuU0lHTkVEfV06ICR7ZX1gXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykgdGhpcy5sb2dnZXIud2FybihlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgUHJvY2Vzc2VkIFske3NpZ25lZFR4cy5sZW5ndGh9XSB0eHMgd2l0aCBzdGF0dXMgWyR7VHJhbnNhY3Rpb25TdGF0dXMuU0lHTkVEfV1gXG4gICAgKTtcblxuICAgIC8vIHByb2Nlc3Mgc2VudCB0eHNcbiAgICBmb3IgKGNvbnN0IHR4IG9mIHNlbnRUeHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc2VzU2VudFR4KHR4KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyB0eCBbJHt0eC50eElkfV0gd2l0aCBzdGF0dXMgWyR7VHJhbnNhY3Rpb25TdGF0dXMuU0VOVH1dOiAke2V9YFxuICAgICAgICApO1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHRoaXMubG9nZ2VyLndhcm4oZS5zdGFjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYFByb2Nlc3NlZCBbJHtzZW50VHhzLmxlbmd0aH1dIHR4cyB3aXRoIHN0YXR1cyBbJHtUcmFuc2FjdGlvblN0YXR1cy5TRU5UfV1gXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogZ2V0cyB0cmFuc2FjdGlvbnMgYnkgc3RhdHVzXG4gICAqIEBwYXJhbSBzdGF0dXNcbiAgICogQHBhcmFtIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRUeHNCeVN0YXR1cyA9IGFzeW5jIChcbiAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLFxuICAgIHZhbGlkYXRlID0gZmFsc2VcbiAgKTogUHJvbWlzZTxBcnJheTxUcmFuc2FjdGlvbkVudGl0eT4+ID0+IHtcbiAgICBjb25zdCB0eHMgPSBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHN0YXR1czogc3RhdHVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBpZiAoIXZhbGlkYXRlKSByZXR1cm4gdHhzO1xuXG4gICAgLy8gdmFsaWRhdGUgdGhlIHRyYW5zYWN0aW9uc1xuICAgIGNvbnN0IHZhbGlkVHhzOiBBcnJheTxUcmFuc2FjdGlvbkVudGl0eT4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHR4IG9mIHR4cykge1xuICAgICAgaWYgKGF3YWl0IHRoaXMudmFsaWRhdGVUeCh0eCkpIHZhbGlkVHhzLnB1c2godHgpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRUeHM7XG4gIH07XG5cbiAgLyoqXG4gICAqIGluc2VydHMgYSBuZXcgdHJhbnNhY3Rpb24gaW50byBkYlxuICAgKiAgIE5vdGU6IG1ha2Ugc3VyZSB0byBzZXQgYGxhc3RDaGVja2AgZmllbGQgaWYgaW5pdGlhbFN0YXR1cyBpcyBgc2lnbmVkYCBvciBgc2VudGBcbiAgICogQHBhcmFtIHR4SWRcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSB0eFR5cGVcbiAgICogQHBhcmFtIHJlcXVpcmVkU2lnblxuICAgKiBAcGFyYW0gc2VyaWFsaXplZFR4XG4gICAqIEBwYXJhbSBpbml0aWFsU3RhdHVzXG4gICAqIEBwYXJhbSBsYXN0Q2hlY2sgbGFzdCBibG9ja2NoYWluIGhlaWdodCB0aGF0IHR4IHdhcyB2YWxpZFxuICAgKiBAcGFyYW0gZXh0cmFcbiAgICogQHBhcmFtIGV4dHJhMlxuICAgKi9cbiAgYWRkVHggPSBhc3luYyAoXG4gICAgdHhJZDogc3RyaW5nLFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICAgdHhUeXBlOiBzdHJpbmcsXG4gICAgcmVxdWlyZWRTaWduOiBudW1iZXIsXG4gICAgc2VyaWFsaXplZFR4OiBzdHJpbmcsXG4gICAgaW5pdGlhbFN0YXR1cyA9IFRyYW5zYWN0aW9uU3RhdHVzLkFQUFJPVkVELFxuICAgIGxhc3RDaGVjayA9IDAsXG4gICAgZXh0cmE/OiBzdHJpbmcgfCBudWxsLFxuICAgIGV4dHJhMj86IHN0cmluZyB8IG51bGxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy50eFJlcG9zaXRvcnkuaW5zZXJ0KHtcbiAgICAgIHR4SWQ6IHR4SWQsXG4gICAgICBjaGFpbjogY2hhaW4sXG4gICAgICB0eFR5cGU6IHR4VHlwZSxcbiAgICAgIHN0YXR1czogaW5pdGlhbFN0YXR1cyxcbiAgICAgIHJlcXVpcmVkU2lnbjogcmVxdWlyZWRTaWduLFxuICAgICAgbGFzdENoZWNrOiBsYXN0Q2hlY2ssXG4gICAgICBsYXN0U3RhdHVzVXBkYXRlOiB0aGlzLmN1cnJlbnRUaW1lKCksXG4gICAgICBmYWlsZWRJblNpZ246IGZhbHNlLFxuICAgICAgc2lnbkZhaWxlZENvdW50OiAwLFxuICAgICAgc2VyaWFsaXplZFR4OiBzZXJpYWxpemVkVHgsXG4gICAgICBleHRyYTogZXh0cmEsXG4gICAgICBleHRyYTI6IGV4dHJhMixcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyB0aGUgc3RhdHVzIG9mIGEgdHhcbiAgICogQHBhcmFtIHR4SWRcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBzdGF0dXMgbmV3IHN0YXR1c1xuICAgKi9cbiAgc2V0VHhTdGF0dXNCeUlkID0gYXN5bmMgKFxuICAgIHR4SWQ6IHN0cmluZyxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS5maW5kT25lT3JGYWlsKHtcbiAgICAgIHdoZXJlOiB7IHR4SWQsIGNoYWluIH0sXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5zZXRUeFN0YXR1cyh0eCwgc3RhdHVzKTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyB0eCBpbmZvIHdoZW4gZmFpbGVkIGluIHNpZ24gcHJvY2Vzc1xuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICovXG4gIHNldFR4QXNTaWduRmFpbGVkID0gYXN5bmMgKHR4SWQ6IHN0cmluZywgY2hhaW46IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMudHhSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgdHhJZDogdHhJZCxcbiAgICAgICAgY2hhaW46IGNoYWluLFxuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLklOX1NJR04sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLlNJR05fRkFJTEVELFxuICAgICAgICBsYXN0U3RhdHVzVXBkYXRlOiB0aGlzLmN1cnJlbnRUaW1lKCksXG4gICAgICAgIHNpZ25GYWlsZWRDb3VudDogKCkgPT4gJ1wic2lnbkZhaWxlZENvdW50XCIgKyAxJyxcbiAgICAgICAgZmFpbGVkSW5TaWduOiB0cnVlLFxuICAgICAgfVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZXMgdGhlIHR4IGFuZCBzZXQgc3RhdHVzIGFzIHNpZ25lZFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUeFxuICAgKiBAcGFyYW0gY3VycmVudEhlaWdodCBjdXJyZW50IGhlaWdodCBvZiB0aGUgYmxvY2tjaGFpblxuICAgKiBAcGFyYW0gZXh0cmFcbiAgICogQHBhcmFtIGV4dHJhMlxuICAgKi9cbiAgc2V0VHhBc1NpZ25lZCA9IGFzeW5jIChcbiAgICB0eElkOiBzdHJpbmcsXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICBzZXJpYWxpemVkVHg6IHN0cmluZyxcbiAgICBjdXJyZW50SGVpZ2h0OiBudW1iZXIsXG4gICAgZXh0cmE/OiBzdHJpbmcsXG4gICAgZXh0cmEyPzogc3RyaW5nXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRGaWVsZHM6IFBhcnRpYWw8VHJhbnNhY3Rpb25FbnRpdHk+ID0ge1xuICAgICAgc2VyaWFsaXplZFR4OiBzZXJpYWxpemVkVHgsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLlNJR05FRCxcbiAgICAgIGxhc3RTdGF0dXNVcGRhdGU6IHRoaXMuY3VycmVudFRpbWUoKSxcbiAgICAgIGxhc3RDaGVjazogY3VycmVudEhlaWdodCxcbiAgICB9O1xuICAgIGlmIChleHRyYSkgdXBkYXRlZEZpZWxkcy5leHRyYSA9IGV4dHJhO1xuICAgIGlmIChleHRyYTIpIHVwZGF0ZWRGaWVsZHMuZXh0cmEyID0gZXh0cmEyO1xuXG4gICAgYXdhaXQgdGhpcy50eFJlcG9zaXRvcnkudXBkYXRlKHsgdHhJZCwgY2hhaW4gfSwgdXBkYXRlZEZpZWxkcyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZXMgbGFzdCBjaGVjayB2YWx1ZSBvZiBhIHR4XG4gICAqIEBwYXJhbSB0eElkXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gY3VycmVudEhlaWdodCBjdXJyZW50IGhlaWdodCBvZiB0aGUgYmxvY2tjaGFpblxuICAgKi9cbiAgdXBkYXRlVHhMYXN0Q2hlY2sgPSBhc3luYyAoXG4gICAgdHhJZDogc3RyaW5nLFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICAgY3VycmVudEhlaWdodDogbnVtYmVyXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMudHhSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgdHhJZCwgY2hhaW4gfSxcbiAgICAgIHsgbGFzdENoZWNrOiBjdXJyZW50SGVpZ2h0IH1cbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIGZhaWxlZEluU2lnbiBmaWVsZCBvZiBhIHRyYW5zYWN0aW9uIHRvIGZhbHNlXG4gICAqIEBwYXJhbSB0eElkXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKi9cbiAgcmVzZXRGYWlsZWRJblNpZ24gPSBhc3luYyAodHhJZDogc3RyaW5nLCBjaGFpbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy50eFJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAgeyB0eElkLCBjaGFpbiB9LFxuICAgICAge1xuICAgICAgICBmYWlsZWRJblNpZ246IGZhbHNlLFxuICAgICAgfVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZXMgcmVxdWlyZWRTaWduIGZpZWxkIG9mIGEgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHR4SWRcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSByZXF1aXJlZFNpZ25cbiAgICovXG4gIHVwZGF0ZVJlcXVpcmVkU2lnbiA9IGFzeW5jIChcbiAgICB0eElkOiBzdHJpbmcsXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICByZXF1aXJlZFNpZ246IG51bWJlclxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IHR4SWQsIGNoYWluIH0sXG4gICAgICB7XG4gICAgICAgIHJlcXVpcmVkU2lnbjogcmVxdWlyZWRTaWduLFxuICAgICAgfVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGdldHMgdGhlIHRyYW5zYWN0aW9uIGJ5IGl0cyBpZCBhbmQgY2hhaW5cbiAgICogQHBhcmFtIHR4SWRcbiAgICogQHBhcmFtIGNoYWluXG4gICAqL1xuICBnZXRUeEJ5S2V5ID0gYXN5bmMgKFxuICAgIHR4SWQ6IHN0cmluZyxcbiAgICBjaGFpbjogc3RyaW5nXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25FbnRpdHkgfCBudWxsPiA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudHhSZXBvc2l0b3J5LmZpbmRPbmUoe1xuICAgICAgd2hlcmU6IHsgdHhJZCwgY2hhaW4gfSxcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgdGhlIHRyYW5zYWN0aW9ucyB3aXRoIHZhbGlkIHN0YXR1c1xuICAgKi9cbiAgZ2V0VHhzUXVlcnkgPSAoXG4gICAgb3B0aW9uczogQXJyYXk8VHhPcHRpb25zPiA9IFtdXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25FbnRpdHlbXT4gPT4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHdoZXJlOiBvcHRpb25zLm1hcCh0eE9wdGlvblRvQ2xhdXNlKSxcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyBleHRyYSBmaWVsZHMgb2YgYSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIGV4dHJhXG4gICAqIEBwYXJhbSBleHRyYTJcbiAgICovXG4gIHVwZGF0ZUV4dHJhID0gYXN5bmMgKFxuICAgIHR4SWQ6IHN0cmluZyxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIGV4dHJhPzogc3RyaW5nIHwgbnVsbCxcbiAgICBleHRyYTI/OiBzdHJpbmcgfCBudWxsXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmIChleHRyYSA9PT0gdW5kZWZpbmVkICYmIGV4dHJhMiA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgYXdhaXQgdGhpcy50eFJlcG9zaXRvcnkudXBkYXRlKHsgdHhJZCwgY2hhaW4gfSwgeyBleHRyYSwgZXh0cmEyIH0pO1xuICB9O1xufVxuIl19
533
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhQb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHJhbnNhY3Rpb24vdHhQb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBRUwsYUFBYSxFQUNiLGlCQUFpQixFQUVqQixpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzNDLE1BQU0sT0FBTyxLQUFLO0lBQ04sTUFBTSxDQUFDLFFBQVEsQ0FBUTtJQUNkLFlBQVksQ0FBZ0M7SUFDckQsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO0lBQ3BELFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFHM0IsQ0FBQztJQUNNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFHaEMsQ0FBQztJQUNNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUdwQyxDQUFDO0lBQ00sTUFBTSxDQUFpQjtJQUVqQyxZQUFzQixVQUFzQixFQUFFLE1BQXVCO1FBQ25FLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsS0FBSyxHQUFHLENBQ3BCLFVBQXNCLEVBQ3RCLE1BQXVCLEVBQ2hCLEVBQUU7UUFDVCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFVLEVBQUU7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQUUsTUFBTSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNqRSxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILGFBQWEsR0FBRyxDQUNkLEtBQWEsRUFDYixZQUFxQyxFQUMvQixFQUFFO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGtEQUFrRCxLQUFLLEdBQUcsQ0FDM0QsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGlCQUFpQixHQUFHLENBQ2xCLEtBQWEsRUFDYixNQUFjLEVBQ2QsRUFBVSxFQUNWLFNBQTRCLEVBQ3RCLEVBQUU7UUFDUixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsZUFBZSxHQUFHLElBQUksR0FBRyxFQUEwQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxjQUFjLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO1lBQ3RELGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHdDQUF3QyxLQUFLLFlBQVksTUFBTSxhQUFhLEVBQUUsZUFBZSxDQUM5RixDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxzREFBc0QsS0FBSyxlQUFlLE1BQU0sWUFBWSxFQUFFLEdBQUcsQ0FDbEcsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILG1CQUFtQixHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFVLEVBQVEsRUFBRTtRQUN4RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLDhDQUE4QyxLQUFLLFlBQVksTUFBTSxhQUFhLEVBQUUsR0FBRyxDQUN4RixDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFFRCxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLDRDQUE0QyxLQUFLLFlBQVksTUFBTSxhQUFhLEVBQUUsR0FBRyxDQUN0RixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCx1QkFBdUIsR0FBRyxDQUN4QixLQUFhLEVBQ2IsRUFBVSxFQUNWLFNBQTRCLEVBQ3RCLEVBQUU7UUFDUixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUM7WUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsK0NBQStDLEtBQUssYUFBYSxFQUFFLGVBQWUsQ0FDbkYsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsNkRBQTZELEtBQUssWUFBWSxFQUFFLEdBQUcsQ0FDcEYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gseUJBQXlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBVSxFQUFRLEVBQUU7UUFDOUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YscURBQXFELEtBQUssYUFBYSxFQUFFLEdBQUcsQ0FDN0UsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxtREFBbUQsS0FBSyxhQUFhLEVBQUUsR0FBRyxDQUMzRSxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7Ozs7O09BUUc7SUFDSCxnQkFBZ0IsR0FBRyxDQUNqQixNQUFjLEVBQ2QsTUFBeUIsRUFDekIsRUFBVSxFQUNWLFFBQTBCLEVBQ3BCLEVBQUU7UUFDUixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsYUFBYSxHQUFHLElBQUksR0FBRyxFQUdwQixDQUFDO1lBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLGVBQWUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7WUFDdEQsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEMsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiw2Q0FBNkMsTUFBTSxpQkFBaUIsTUFBTSxhQUFhLEVBQUUsZUFBZSxDQUN6RyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCwyREFBMkQsTUFBTSxpQkFBaUIsTUFBTSxZQUFZLEVBQUUsR0FBRyxDQUMxRyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsa0JBQWtCLEdBQUcsQ0FDbkIsTUFBYyxFQUNkLE1BQXlCLEVBQ3pCLEVBQVUsRUFDSixFQUFFO1FBQ1IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLG1EQUFtRCxNQUFNLGlCQUFpQixNQUFNLGFBQWEsRUFBRSxHQUFHLENBQ25HLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsaURBQWlELE1BQU0saUJBQWlCLE1BQU0sYUFBYSxFQUFFLEdBQUcsQ0FDakcsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDTyxlQUFlLEdBQUcsQ0FBQyxLQUFhLEVBQTJCLEVBQUU7UUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU87WUFDVixNQUFNLElBQUksaUJBQWlCLENBQ3pCLHVDQUF1QyxLQUFLLEdBQUcsQ0FDaEQsQ0FBQztRQUNKLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNPLHVCQUF1QixHQUFHLEtBQUssRUFDdkMsRUFBcUIsRUFDTixFQUFFO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9DLE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxRSxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUMsU0FBUyxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekQsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsT0FDRSxFQUFFLENBQUMsSUFDTCx5RUFDRSxhQUFhLEdBQUcsRUFBRSxDQUFDLFNBQ3JCLElBQUksb0JBQW9CLEdBQUcsQ0FDNUIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNPLFVBQVUsR0FBRyxLQUFLLEVBQUUsRUFBcUIsRUFBb0IsRUFBRTtRQUN2RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QiwwQ0FBMEM7WUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsNkNBQTZDLEVBQUUsQ0FBQyxLQUFLLGVBQWUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUNqRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsS0FBSyxNQUFNLGVBQWUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsTUFBTSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSw0Q0FBNEMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQ2hGLENBQUM7Z0JBQ0YsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ08sZUFBZSxHQUFHLEtBQUssRUFDL0IsRUFBcUIsRUFDSCxFQUFFO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixvREFBb0QsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUNoRSxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsS0FBSyxNQUFNLGVBQWUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsTUFBTSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSx3REFBd0QsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzVGLENBQUM7Z0JBQ0YsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNPLFdBQVcsR0FBRyxLQUFLLEVBQzNCLEVBQXFCLEVBQ3JCLE1BQXlCLEVBQ1YsRUFBRTtRQUNqQixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUM1QjtZQUNFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSTtZQUNiLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztTQUNoQixFQUNEO1lBQ0UsTUFBTSxFQUFFLE1BQU07WUFDZCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQ3JDLENBQ0YsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLEtBQUssTUFBTSxjQUFjLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ3ZDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHdDQUF3QyxFQUFFLENBQUMsSUFBSSxnQ0FBZ0MsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUMxRyxDQUFDO29CQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSzt3QkFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hFLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7O1lBQ0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YseUNBQXlDLEVBQUUsQ0FBQyxNQUFNLGlCQUFpQixNQUFNLEdBQUcsQ0FDN0UsQ0FBQztJQUNOLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ08sV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXBFOzs7T0FHRztJQUNPLGVBQWUsR0FBRyxLQUFLLEVBQUUsRUFBcUIsRUFBaUIsRUFBRTtRQUN6RSxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHdCQUF3QixFQUFFLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQ2hFLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNPLGVBQWUsR0FBRyxLQUFLLEVBQUUsRUFBcUIsRUFBaUIsRUFBRTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFFLElBQUksY0FBYyxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDM0MseUJBQXlCO1lBQ3pCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLElBQUksY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakMsdUNBQXVDO1lBQ3ZDLElBQUksTUFBTSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6QywyQ0FBMkM7Z0JBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FBQztZQUNwRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sc0RBQXNEO2dCQUN0RCxNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQ3ZDLEVBQUUsQ0FBQyxZQUFZLEVBQ2YsYUFBYSxDQUFDLE1BQU0sQ0FDckIsQ0FBQztnQkFDRixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRWhELElBQUksU0FBUyxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUMvQiw0QkFBNEI7b0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLE9BQU8sRUFBRSxDQUFDLElBQUksd0NBQXdDLENBQ3ZELENBQUM7b0JBQ0YsSUFBSSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDbkMsSUFBSSxDQUFDOzRCQUNILE1BQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDbkQsQ0FBQzt3QkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDOzRCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHdCQUF3QixFQUFFLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQ2hFLENBQUM7NEJBQ0YsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLO2dDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0QsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDTix3REFBd0Q7b0JBQ3hELE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sbUVBQW1FO1lBQ25FLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxPQUFPLEVBQUUsQ0FBQyxJQUFJLGlDQUFpQyxjQUFjLElBQUksb0JBQW9CLEdBQUcsQ0FDekYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsTUFBTSxHQUFHLEtBQUssSUFBbUIsRUFBRTtRQUNqQyw0QkFBNEI7UUFDNUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRSxxQkFBcUI7UUFDckIsS0FBSyxNQUFNLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLDBDQUEwQyxFQUFFLENBQUMsSUFBSSxrQkFBa0IsaUJBQWlCLENBQUMsTUFBTSxNQUFNLENBQUMsRUFBRSxDQUNyRyxDQUFDO2dCQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSztvQkFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0QsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixjQUFjLFNBQVMsQ0FBQyxNQUFNLHNCQUFzQixpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FDaEYsQ0FBQztRQUVGLG1CQUFtQjtRQUNuQixLQUFLLE1BQU0sRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsMENBQTBDLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixpQkFBaUIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQ25HLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLO29CQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGNBQWMsT0FBTyxDQUFDLE1BQU0sc0JBQXNCLGlCQUFpQixDQUFDLElBQUksR0FBRyxDQUM1RSxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxjQUFjLEdBQUcsS0FBSyxFQUNwQixNQUF5QixFQUN6QixRQUFRLEdBQUcsS0FBSyxFQUNtQixFQUFFO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDdkMsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSxNQUFNO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sR0FBRyxDQUFDO1FBRTFCLDRCQUE0QjtRQUM1QixNQUFNLFFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQzlDLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUVGOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILEtBQUssR0FBRyxLQUFLLEVBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixNQUFjLEVBQ2QsWUFBb0IsRUFDcEIsWUFBb0IsRUFDcEIsYUFBYSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFDYixLQUFxQixFQUNyQixNQUFzQixFQUNQLEVBQUU7UUFDakIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUM3QixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsYUFBYTtZQUNyQixZQUFZLEVBQUUsWUFBWTtZQUMxQixTQUFTLEVBQUUsU0FBUztZQUNwQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BDLFlBQVksRUFBRSxLQUFLO1lBQ25CLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLFlBQVksRUFBRSxZQUFZO1lBQzFCLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILGVBQWUsR0FBRyxLQUFLLEVBQ3JCLElBQVksRUFDWixLQUFhLEVBQ2IsTUFBeUIsRUFDVixFQUFFO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7WUFDL0MsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtTQUN2QixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBaUIsRUFBRTtRQUN2RSxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUM1QjtZQUNFLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsaUJBQWlCLENBQUMsT0FBTztTQUNsQyxFQUNEO1lBQ0UsTUFBTSxFQUFFLGlCQUFpQixDQUFDLFdBQVc7WUFDckMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsdUJBQXVCO1lBQzlDLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7OztPQVFHO0lBQ0gsYUFBYSxHQUFHLEtBQUssRUFDbkIsSUFBWSxFQUNaLEtBQWEsRUFDYixZQUFvQixFQUNwQixhQUFxQixFQUNyQixLQUFjLEVBQ2QsTUFBZSxFQUNBLEVBQUU7UUFDakIsTUFBTSxhQUFhLEdBQStCO1lBQ2hELFlBQVksRUFBRSxZQUFZO1lBQzFCLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO1lBQ2hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEMsU0FBUyxFQUFFLGFBQWE7U0FDekIsQ0FBQztRQUNGLElBQUksS0FBSztZQUFFLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLElBQUksTUFBTTtZQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRTFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDakUsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLElBQVksRUFDWixLQUFhLEVBQ2IsYUFBcUIsRUFDTixFQUFFO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQzVCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUNmLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsS0FBYSxFQUFpQixFQUFFO1FBQ3ZFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQzVCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUNmO1lBQ0UsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxrQkFBa0IsR0FBRyxLQUFLLEVBQ3hCLElBQVksRUFDWixLQUFhLEVBQ2IsWUFBb0IsRUFDTCxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQzVCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUNmO1lBQ0UsWUFBWSxFQUFFLFlBQVk7U0FDM0IsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILFVBQVUsR0FBRyxLQUFLLEVBQ2hCLElBQVksRUFDWixLQUFhLEVBQ3NCLEVBQUU7UUFDckMsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3JDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxXQUFXLEdBQUcsQ0FDWixVQUE0QixFQUFFLEVBQ0EsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQzVCLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILFdBQVcsR0FBRyxLQUFLLEVBQ2pCLElBQVksRUFDWixLQUFhLEVBQ2IsS0FBcUIsRUFDckIsTUFBc0IsRUFDUCxFQUFFO1FBQ2pCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE9BQU87UUFDeEQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIFJlcG9zaXRvcnkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FbnRpdHkgfSBmcm9tICcuLi9kYi9lbnRpdGllcy90cmFuc2FjdGlvbkVudGl0eSc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQge1xuICBDYWxsYmFja0Z1bmN0aW9uLFxuICBTaWduaW5nU3RhdHVzLFxuICBUcmFuc2FjdGlvblN0YXR1cyxcbiAgVHhPcHRpb25zLFxuICBVbnJlZ2lzdGVyZWRDaGFpbixcbiAgVmFsaWRhdG9yRnVuY3Rpb24sXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdHhPcHRpb25Ub0NsYXVzZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIgfSBmcm9tICcuLi9uZXR3b3JrL2Fic3RyYWN0UG90Q2hhaW5NYW5hZ2VyJztcblxuZXhwb3J0IGNsYXNzIFR4UG90IHtcbiAgcHJvdGVjdGVkIHN0YXRpYyBpbnN0YW5jZTogVHhQb3Q7XG4gIHByb3RlY3RlZCByZWFkb25seSB0eFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8VHJhbnNhY3Rpb25FbnRpdHk+O1xuICBwcm90ZWN0ZWQgY2hhaW5zID0gbmV3IE1hcDxzdHJpbmcsIEFic3RyYWN0UG90Q2hhaW5NYW5hZ2VyPigpO1xuICBwcm90ZWN0ZWQgdmFsaWRhdG9ycyA9IG5ldyBNYXA8XG4gICAgc3RyaW5nLFxuICAgIE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIFZhbGlkYXRvckZ1bmN0aW9uPj5cbiAgPigpO1xuICBwcm90ZWN0ZWQgdHhUeXBlQ2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICBzdHJpbmcsXG4gICAgTWFwPFRyYW5zYWN0aW9uU3RhdHVzLCBNYXA8c3RyaW5nLCBDYWxsYmFja0Z1bmN0aW9uPj5cbiAgPigpO1xuICBwcm90ZWN0ZWQgc3VibWlzc2lvbkFsbG93YW5jZSA9IG5ldyBNYXA8XG4gICAgc3RyaW5nLFxuICAgIE1hcDxzdHJpbmcsIFZhbGlkYXRvckZ1bmN0aW9uPlxuICA+KCk7XG4gIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHRoaXMudHhSZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KFRyYW5zYWN0aW9uRW50aXR5KTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnVHhQb3QgaW5zdGFudGlhdGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogaW5pdGlhdGVzIFR4UG90XG4gICAqIEBwYXJhbSBkYXRhU291cmNlIHR5cGVvcm0gZGF0YSBzb3VyY2VcbiAgICogQHBhcmFtIGxvZ2dlclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzZXR1cCA9IChcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICApOiBUeFBvdCA9PiB7XG4gICAgVHhQb3QuaW5zdGFuY2UgPSBuZXcgVHhQb3QoZGF0YVNvdXJjZSwgbG9nZ2VyKTtcbiAgICByZXR1cm4gVHhQb3QuaW5zdGFuY2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJldHVybnMgVHhQb3QgaW5zdGFuY2UgKHRocm93cyBlcnJvciBpZiBub25lIGV4aXN0cylcbiAgICogQHJldHVybnMgVHhQb3QgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5zdGFuY2UgPSAoKTogVHhQb3QgPT4ge1xuICAgIGlmICghVHhQb3QuaW5zdGFuY2UpIHRocm93IEVycm9yKGBUeFBvdCBpbnN0YW5jZSBkb2Vzbid0IGV4aXN0YCk7XG4gICAgcmV0dXJuIFR4UG90Lmluc3RhbmNlO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZWdpc3RlcnMgYSBjaGFpbiB0byBUeFBvdFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIGNoYWluTWFuYWdlclxuICAgKi9cbiAgcmVnaXN0ZXJDaGFpbiA9IChcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIGNoYWluTWFuYWdlcjogQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIsXG4gICk6IHZvaWQgPT4ge1xuICAgIHRoaXMuY2hhaW5zLnNldChjaGFpbiwgY2hhaW5NYW5hZ2VyKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBBIFR4UG90IGNoYWluIG1hbmFnZXIgaXMgcmVnaXN0ZXJlZCBmb3IgY2hhaW4gWyR7Y2hhaW59XWAsXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogcmVnaXN0ZXJzIGEgdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gdHhUeXBlXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gdmFsaWRhdG9yXG4gICAqL1xuICByZWdpc3RlclZhbGlkYXRvciA9IChcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIHR4VHlwZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGdW5jdGlvbixcbiAgKTogdm9pZCA9PiB7XG4gICAgbGV0IGNoYWluVmFsaWRhdG9ycyA9IHRoaXMudmFsaWRhdG9ycy5nZXQoY2hhaW4pO1xuICAgIGlmICghY2hhaW5WYWxpZGF0b3JzKSB7XG4gICAgICBjaGFpblZhbGlkYXRvcnMgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgVmFsaWRhdG9yRnVuY3Rpb24+PigpO1xuICAgICAgdGhpcy52YWxpZGF0b3JzLnNldChjaGFpbiwgY2hhaW5WYWxpZGF0b3JzKTtcbiAgICB9XG5cbiAgICBsZXQgdHlwZVZhbGlkYXRvcnMgPSBjaGFpblZhbGlkYXRvcnMuZ2V0KHR4VHlwZSk7XG4gICAgaWYgKCF0eXBlVmFsaWRhdG9ycykge1xuICAgICAgdHlwZVZhbGlkYXRvcnMgPSBuZXcgTWFwPHN0cmluZywgVmFsaWRhdG9yRnVuY3Rpb24+KCk7XG4gICAgICBjaGFpblZhbGlkYXRvcnMuc2V0KHR4VHlwZSwgdHlwZVZhbGlkYXRvcnMpO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VmFsaWRhdG9yID0gdHlwZVZhbGlkYXRvcnMuZ2V0KGlkKTtcbiAgICB0eXBlVmFsaWRhdG9ycy5zZXQoaWQsIHZhbGlkYXRvcik7XG4gICAgaWYgKGN1cnJlbnRWYWxpZGF0b3IpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgVGhlIHR4IHZhbGlkYXRvciBmdW5jdGlvbiBmb3IgY2hhaW4gWyR7Y2hhaW59XSwgdHlwZSBbJHt0eFR5cGV9XSBhbmQgaWQgWyR7aWR9XSBpcyByZXBsYWNlZGAsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgTmV3IHR4IHZhbGlkYXRvciBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIGZvciBjaGFpbiBbJHtjaGFpbn1dIGFuZCB0eXBlIFske3R4VHlwZX1dIGJ5IGlkIFske2lkfV1gLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgYSB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSB0eFR5cGVcbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICB1bnJlZ2lzdGVyVmFsaWRhdG9yID0gKGNoYWluOiBzdHJpbmcsIHR4VHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMudmFsaWRhdG9ycy5nZXQoY2hhaW4pPy5nZXQodHhUeXBlKTtcbiAgICBpZiAoIXZhbGlkYXRvcnMpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgTm8gdHggdmFsaWRhdG9yIGZ1bmN0aW9uIGlzIHNldCBmb3IgY2hhaW4gWyR7Y2hhaW59XSwgdHlwZSBbJHt0eFR5cGV9XSBhbmQgaWQgWyR7aWR9XWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhbGlkYXRvcnMuZGVsZXRlKGlkKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYFJlbW92ZWQgdHggdmFsaWRhdG9yIGZ1bmN0aW9uIGZvciBjaGFpbiBbJHtjaGFpbn1dLCB0eXBlIFske3R4VHlwZX1dIGFuZCBpZCBbJHtpZH1dYCxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZWdpc3RlcnMgYSBzdWJtaXQgdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIHZhbGlkYXRvclxuICAgKi9cbiAgcmVnaXN0ZXJTdWJtaXRWYWxpZGF0b3IgPSAoXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbGlkYXRvcjogVmFsaWRhdG9yRnVuY3Rpb24sXG4gICk6IHZvaWQgPT4ge1xuICAgIGxldCBjaGFpbkFsbG93YW5jZSA9IHRoaXMuc3VibWlzc2lvbkFsbG93YW5jZS5nZXQoY2hhaW4pO1xuICAgIGlmICghY2hhaW5BbGxvd2FuY2UpIHtcbiAgICAgIGNoYWluQWxsb3dhbmNlID0gbmV3IE1hcDxzdHJpbmcsIFZhbGlkYXRvckZ1bmN0aW9uPigpO1xuICAgICAgdGhpcy5zdWJtaXNzaW9uQWxsb3dhbmNlLnNldChjaGFpbiwgY2hhaW5BbGxvd2FuY2UpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRWYWxpZGF0b3IgPSBjaGFpbkFsbG93YW5jZS5nZXQoaWQpO1xuICAgIGNoYWluQWxsb3dhbmNlLnNldChpZCwgdmFsaWRhdG9yKTtcbiAgICBpZiAoY3VycmVudFZhbGlkYXRvcikge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBUaGUgdHggc3VibWl0IHZhbGlkYXRvciBmdW5jdGlvbiBmb3IgY2hhaW4gWyR7Y2hhaW59XSBhbmQgaWQgWyR7aWR9XSBpcyByZXBsYWNlZGAsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgTmV3IHR4IHN1Ym1pdCB2YWxpZGF0b3IgZnVuY3Rpb24gaXMgcmVnaXN0ZXJlZCBmb3IgY2hhaW4gWyR7Y2hhaW59XSBieSBpZCBbJHtpZH1dYCxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiByZW1vdmVzIGEgc3VibWl0IHZhbGlkYXRvciBmdW5jdGlvblxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICB1bnJlZ2lzdGVyU3VibWl0VmFsaWRhdG9yID0gKGNoYWluOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBjaGFpbkFsbG93YW5jZSA9IHRoaXMuc3VibWlzc2lvbkFsbG93YW5jZS5nZXQoY2hhaW4pO1xuICAgIGlmICghY2hhaW5BbGxvd2FuY2UpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgTm8gdHggc3VibWl0IHZhbGlkYXRvciBmdW5jdGlvbiBpcyBzZXQgZm9yIGNoYWluIFske2NoYWlufV0gYW5kIGlkIFske2lkfV1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjaGFpbkFsbG93YW5jZS5kZWxldGUoaWQpO1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgUmVtb3ZlZCB0eCBzdWJtaXQgdmFsaWRhdG9yIGZ1bmN0aW9uIGZvciBjaGFpbiBbJHtjaGFpbn1dIGFuZCBpZCBbJHtpZH1dYCxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvblxuICAgKiAgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHdoZW4gc3RhdHVzIG9mIGFueSB0cmFuc2FjdGlvbnNcbiAgICogIG9mIGdpdmVuIHR5cGUgY2hhbmdlcyB0byBnaXZlbiBzdGF0dXNcbiAgICogQHBhcmFtIHR4VHlwZVxuICAgKiBAcGFyYW0gc3RhdHVzXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICovXG4gIHJlZ2lzdGVyQ2FsbGJhY2sgPSAoXG4gICAgdHhUeXBlOiBzdHJpbmcsXG4gICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1cyxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiBDYWxsYmFja0Z1bmN0aW9uLFxuICApOiB2b2lkID0+IHtcbiAgICBsZXQgdHlwZUNhbGxiYWNrcyA9IHRoaXMudHhUeXBlQ2FsbGJhY2tzLmdldCh0eFR5cGUpO1xuICAgIGlmICghdHlwZUNhbGxiYWNrcykge1xuICAgICAgdHlwZUNhbGxiYWNrcyA9IG5ldyBNYXA8XG4gICAgICAgIFRyYW5zYWN0aW9uU3RhdHVzLFxuICAgICAgICBNYXA8c3RyaW5nLCBDYWxsYmFja0Z1bmN0aW9uPlxuICAgICAgPigpO1xuICAgICAgdGhpcy50eFR5cGVDYWxsYmFja3Muc2V0KHR4VHlwZSwgdHlwZUNhbGxiYWNrcyk7XG4gICAgfVxuXG4gICAgbGV0IHN0YXR1c0NhbGxiYWNrcyA9IHR5cGVDYWxsYmFja3MuZ2V0KHN0YXR1cyk7XG4gICAgaWYgKCFzdGF0dXNDYWxsYmFja3MpIHtcbiAgICAgIHN0YXR1c0NhbGxiYWNrcyA9IG5ldyBNYXA8c3RyaW5nLCBDYWxsYmFja0Z1bmN0aW9uPigpO1xuICAgICAgdHlwZUNhbGxiYWNrcy5zZXQoc3RhdHVzLCBzdGF0dXNDYWxsYmFja3MpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRDYWxsYmFjayA9IHN0YXR1c0NhbGxiYWNrcy5nZXQoaWQpO1xuICAgIHN0YXR1c0NhbGxiYWNrcy5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICBpZiAoY3VycmVudENhbGxiYWNrKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYFRoZSB0eCBzdGF0dXMgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHR5cGUgWyR7dHhUeXBlfV0gYW5kIHN0YXR1cyBbJHtzdGF0dXN9XSBhbmQgaWQgWyR7aWR9XSBpcyByZXBsYWNlZGAsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgTmV3IHR4IHN0YXR1cyBjYWxsYmFjayBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIGZvciB0eXBlIFske3R4VHlwZX1dIGFuZCBzdGF0dXMgWyR7c3RhdHVzfV0gYnkgaWQgWyR7aWR9XWAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB0eFR5cGVcbiAgICogQHBhcmFtIHN0YXR1c1xuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIHVucmVnaXN0ZXJDYWxsYmFjayA9IChcbiAgICB0eFR5cGU6IHN0cmluZyxcbiAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLFxuICAgIGlkOiBzdHJpbmcsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGNhbGxiYWNrcyA9IHRoaXMudHhUeXBlQ2FsbGJhY2tzLmdldCh0eFR5cGUpPy5nZXQoc3RhdHVzKTtcbiAgICBpZiAoIWNhbGxiYWNrcykge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBObyB0eCBzdGF0dXMgY2FsbGJhY2sgZnVuY3Rpb24gaXMgc2V0IGZvciB0eXBlIFske3R4VHlwZX1dIGFuZCBzdGF0dXMgWyR7c3RhdHVzfV0gYW5kIGlkIFske2lkfV1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYWxsYmFja3MuZGVsZXRlKGlkKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYFJlbW92ZWQgdHggc3RhdHVzIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0eXBlIFske3R4VHlwZX1dIGFuZCBzdGF0dXMgWyR7c3RhdHVzfV0gYW5kIGlkIFske2lkfV1gLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJldHVybnMgY2hhaW4gbWFuYWdlciBmb3IgZ2l2ZW4gY2hhaW5cbiAgICogIHRocm93cyBlcnJvciBpZiBubyBtYW5hZ2VyIGlzIHJlZ2lzdGVyZWQgZm9yIGl0XG4gICAqIEBwYXJhbSBjaGFpblxuICAgKi9cbiAgcHJvdGVjdGVkIGdldENoYWluTWFuYWdlciA9IChjaGFpbjogc3RyaW5nKTogQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIgPT4ge1xuICAgIGNvbnN0IG1hbmFnZXIgPSB0aGlzLmNoYWlucy5nZXQoY2hhaW4pO1xuICAgIGlmICghbWFuYWdlcilcbiAgICAgIHRocm93IG5ldyBVbnJlZ2lzdGVyZWRDaGFpbihcbiAgICAgICAgYE5vIG1hbmFnZXIgaXMgcmVnaXN0ZXJlZCBmb3IgY2hhaW4gWyR7Y2hhaW59XWAsXG4gICAgICApO1xuICAgIHJldHVybiBtYW5hZ2VyO1xuICB9O1xuXG4gIC8qKlxuICAgKiBzZXRzIHRoZSB0eCBhcyBpbnZhbGlkIGlmIGVub3VnaCBibG9ja3MgaXMgcGFzc2VkIGZyb20gbGFzdCBjaGVja1xuICAgKiBAcGFyYW0gdHhcbiAgICovXG4gIHByb3RlY3RlZCBzZXRUcmFuc2FjdGlvbkFzSW52YWxpZCA9IGFzeW5jIChcbiAgICB0eDogVHJhbnNhY3Rpb25FbnRpdHksXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IG1hbmFnZXIgPSB0aGlzLmdldENoYWluTWFuYWdlcih0eC5jaGFpbik7XG5cbiAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gYXdhaXQgbWFuYWdlci5nZXRIZWlnaHQoKTtcbiAgICBjb25zdCByZXF1aXJlZENvbmZpcm1hdGlvbiA9IG1hbmFnZXIuZ2V0VHhSZXF1aXJlZENvbmZpcm1hdGlvbih0eC50eFR5cGUpO1xuXG4gICAgaWYgKGN1cnJlbnRIZWlnaHQgLSB0eC5sYXN0Q2hlY2sgPj0gcmVxdWlyZWRDb25maXJtYXRpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0VHhTdGF0dXModHgsIFRyYW5zYWN0aW9uU3RhdHVzLklOVkFMSUQpO1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgVHggWyR7dHgudHhJZH1dIGlzIGludmFsaWRgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgYFR4IFske1xuICAgICAgICAgIHR4LnR4SWRcbiAgICAgICAgfV0gc2VlbXMgaW52YWxpZC4gV2FpdGluZyBmb3IgZW5vdWdoIGNvbmZpcm1hdGlvbiBvZiB0aGlzIHByb3Bvc2l0aW9uIFske1xuICAgICAgICAgIGN1cnJlbnRIZWlnaHQgLSB0eC5sYXN0Q2hlY2tcbiAgICAgICAgfS8ke3JlcXVpcmVkQ29uZmlybWF0aW9ufV1gLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHZhbGlkYXRlcyBhIHRyYW5zYWN0aW9uXG4gICAqIHJldHVybnMgdHJ1ZSBpZiBubyB2YWxpZGF0b3IgZnVuY3Rpb25zIGlzIHNldCBvciB0eCBpcyB2YWxpZFxuICAgKiBvdGhlcndpc2UgaGFuZGxlIHRoZSB0eCBhcyBpbnZhbGlkIGFuZCByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlVHggPSBhc3luYyAodHg6IFRyYW5zYWN0aW9uRW50aXR5KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMudmFsaWRhdG9ycy5nZXQodHguY2hhaW4pPy5nZXQodHgudHhUeXBlKTtcbiAgICBpZiAodmFsaWRhdG9ycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0eCBpcyB2YWxpZCBzaW5jZSBubyB2YWxpZGF0b3IgaXMgZm91bmRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgTm8gdmFsaWRhdG9yIGZ1bmN0aW9uIGlzIGZvdW5kIGZvciBjaGFpbiBbJHt0eC5jaGFpbn1dIGFuZCB0eXBlIFske3R4LnR4VHlwZX1dYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBpZFZhbGlkYXRvclBhaXIgb2YgdmFsaWRhdG9ycykge1xuICAgICAgaWYgKChhd2FpdCBpZFZhbGlkYXRvclBhaXJbMV0odHgpKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHR4IFske3R4LnR4SWR9XSBpcyByZWNvZ25pemVkIGFzIGludmFsaWQgYnkgdmFsaWRhdG9yIFske2lkVmFsaWRhdG9yUGFpclswXX1dYCxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zZXRUcmFuc2FjdGlvbkFzSW52YWxpZCh0eCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNoZWNrcyBhIHRyYW5zYWN0aW9uIGZvciBzdWJtaXNzaW9uXG4gICAqIHJldHVybnMgdHJ1ZSBpZiBubyB2YWxpZGF0b3IgZnVuY3Rpb25zIGlzIHNldCBvciBhbGwgdmFsaWRhdG9ycyBhbGxvdyB0eCB0byBzdWJtaXRcbiAgICogb3RoZXJ3aXNlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIHR4XG4gICAqL1xuICBwcm90ZWN0ZWQgaXNTdWJtaXRBbGxvd2VkID0gYXN5bmMgKFxuICAgIHR4OiBUcmFuc2FjdGlvbkVudGl0eSxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMuc3VibWlzc2lvbkFsbG93YW5jZS5nZXQodHguY2hhaW4pO1xuICAgIGlmICh2YWxpZGF0b3JzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHR4IGlzIGFsbG93ZWQgZm9yIHN1Ym1pc3Npb24gc2luY2Ugbm8gdmFsaWRhdG9yIGlzIGZvdW5kXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYE5vIHN1Ym1pdCB2YWxpZGF0b3IgZnVuY3Rpb24gaXMgZm91bmQgZm9yIGNoYWluIFske3R4LmNoYWlufV1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGlkVmFsaWRhdG9yUGFpciBvZiB2YWxpZGF0b3JzKSB7XG4gICAgICBpZiAoKGF3YWl0IGlkVmFsaWRhdG9yUGFpclsxXSh0eCkpID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgdHggWyR7dHgudHhJZH1dIGlzIG5vdCBhbGxvd2VkIGZvciBzdWJtaXNzaW9uIGJ5IHN1Ym1pdCB2YWxpZGF0b3IgWyR7aWRWYWxpZGF0b3JQYWlyWzBdfV1gLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIHRoZSBzdGF0dXMgb2YgYSB0eFxuICAgKiBAcGFyYW0gdHhLZXkgdHggaWQgYW5kIGNoYWluXG4gICAqIEBwYXJhbSBzdGF0dXMgbmV3IHN0YXR1c1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldFR4U3RhdHVzID0gYXN5bmMgKFxuICAgIHR4OiBUcmFuc2FjdGlvbkVudGl0eSxcbiAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7XG4gICAgICAgIHR4SWQ6IHR4LnR4SWQsXG4gICAgICAgIGNoYWluOiB0eC5jaGFpbixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogc3RhdHVzLFxuICAgICAgICBsYXN0U3RhdHVzVXBkYXRlOiB0aGlzLmN1cnJlbnRUaW1lKCksXG4gICAgICB9LFxuICAgICk7XG4gICAgY29uc3QgY2FsbGJhY2tzID0gdGhpcy50eFR5cGVDYWxsYmFja3MuZ2V0KHR4LnR4VHlwZSk/LmdldChzdGF0dXMpO1xuICAgIGlmIChjYWxsYmFja3MpIHtcbiAgICAgIGZvciAoY29uc3QgaWRDYWxsYmFja1BhaXIgb2YgY2FsbGJhY2tzKSB7XG4gICAgICAgIGlkQ2FsbGJhY2tQYWlyWzFdKHR4LCBzdGF0dXMpLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgaGFuZGxpbmcgdHggWyR7dHgudHhJZH1dIHN0YXR1cyBjaGFuZ2UgaW4gY2FsbGJhY2sgWyR7aWRDYWxsYmFja1BhaXJbMF19XTogJHtlfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHRoaXMubG9nZ2VyLmRlYnVnKGUuc3RhY2spO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2VcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgTm8gY2FsbGJhY2sgZnVuY3Rpb24gaXMgc2V0IGZvciB0eXBlIFske3R4LnR4VHlwZX1dIGFuZCBzdGF0dXMgWyR7c3RhdHVzfV1gLFxuICAgICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgY3VycmVudCB0aW1lc3RhbXAgaW4gc2Vjb25kcyBhbmQgc3RyaW5nIGZvcm1hdFxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lID0gKCkgPT4gU3RyaW5nKE1hdGgucm91bmQoRGF0ZS5ub3coKSAvIDEwMDApKTtcblxuICAvKipcbiAgICogc3VibWl0cyB0aGUgc2lnbmVkIHRyYW5zYWN0aW9uIHRvIHRoZSBibG9ja2NoYWluXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJvdGVjdGVkIHByb2Nlc3NTaWduZWRUeCA9IGFzeW5jICh0eDogVHJhbnNhY3Rpb25FbnRpdHkpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAoIShhd2FpdCB0aGlzLmlzU3VibWl0QWxsb3dlZCh0eCkpKSByZXR1cm47XG4gICAgY29uc3QgbWFuYWdlciA9IHRoaXMuZ2V0Q2hhaW5NYW5hZ2VyKHR4LmNoYWluKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbWFuYWdlci5zdWJtaXRUcmFuc2FjdGlvbih0eC5zZXJpYWxpemVkVHgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBGYWlsZWQgdG8gc3VibWl0IHR4IFske3R4LnR4SWR9XSB0byBjaGFpbiBbJHt0eC5jaGFpbn1dOiAke2V9YCxcbiAgICAgICk7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHRoaXMubG9nZ2VyLndhcm4oZS5zdGFjayk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuc2V0VHhTdGF0dXModHgsIFRyYW5zYWN0aW9uU3RhdHVzLlNFTlQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBwcm9jZXNzZXMgdGhlIHNlbnQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHR4XG4gICAqL1xuICBwcm90ZWN0ZWQgcHJvY2Vzc2VzU2VudFR4ID0gYXN5bmMgKHR4OiBUcmFuc2FjdGlvbkVudGl0eSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IG1hbmFnZXIgPSB0aGlzLmdldENoYWluTWFuYWdlcih0eC5jaGFpbik7XG5cbiAgICBjb25zdCB0eENvbmZpcm1hdGlvbiA9IGF3YWl0IG1hbmFnZXIuZ2V0VHhDb25maXJtYXRpb24odHgudHhJZCk7XG4gICAgY29uc3QgcmVxdWlyZWRDb25maXJtYXRpb24gPSBtYW5hZ2VyLmdldFR4UmVxdWlyZWRDb25maXJtYXRpb24odHgudHhUeXBlKTtcblxuICAgIGlmICh0eENvbmZpcm1hdGlvbiA+PSByZXF1aXJlZENvbmZpcm1hdGlvbikge1xuICAgICAgLy8gdHggaXMgY29uZmlybWVkIGVub3VnaFxuICAgICAgYXdhaXQgdGhpcy5zZXRUeFN0YXR1cyh0eCwgVHJhbnNhY3Rpb25TdGF0dXMuQ09NUExFVEVEKTtcbiAgICB9IGVsc2UgaWYgKHR4Q29uZmlybWF0aW9uID09PSAtMSkge1xuICAgICAgLy8gdHggaXMgbm90IG1pbmVkLCBjaGVja2luZyBtZW1wb29sLi4uXG4gICAgICBpZiAoYXdhaXQgbWFuYWdlci5pc1R4SW5NZW1wb29sKHR4LnR4SWQpKSB7XG4gICAgICAgIC8vIHR4IGlzIGluIG1lbXBvb2wsIHVwZGF0aW5nIGxhc3QgY2hlY2suLi5cbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gYXdhaXQgbWFuYWdlci5nZXRIZWlnaHQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVUeExhc3RDaGVjayh0eC50eElkLCB0eC5jaGFpbiwgaGVpZ2h0KTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgVHggWyR7dHgudHhJZH1dIGlzIGluIG1lbXBvb2xgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHR4IGlzIG5vdCBpbiBtZW1wb29sLCBjaGVja2luZyBpZiB0eCBpcyBzdGlsbCB2YWxpZFxuICAgICAgICBjb25zdCBpc1ZhbGlkVHggPSBhd2FpdCBtYW5hZ2VyLmlzVHhWYWxpZChcbiAgICAgICAgICB0eC5zZXJpYWxpemVkVHgsXG4gICAgICAgICAgU2lnbmluZ1N0YXR1cy5TaWduZWQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGlzVmFsaWRUb1R5cGUgPSBhd2FpdCB0aGlzLnZhbGlkYXRlVHgodHgpO1xuXG4gICAgICAgIGlmIChpc1ZhbGlkVHggJiYgaXNWYWxpZFRvVHlwZSkge1xuICAgICAgICAgIC8vIHR4IGlzIHZhbGlkLiByZXNlbmRpbmcuLi5cbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFR4IFske3R4LnR4SWR9XSBpcyBzdGlsbCB2YWxpZC4gQXR0ZW1wdGluZyByZXNlbmQuLi5gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGF3YWl0IHRoaXMuaXNTdWJtaXRBbGxvd2VkKHR4KSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgYXdhaXQgbWFuYWdlci5zdWJtaXRUcmFuc2FjdGlvbih0eC5zZXJpYWxpemVkVHgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gc3VibWl0IHR4IFske3R4LnR4SWR9XSB0byBjaGFpbiBbJHt0eC5jaGFpbn1dOiAke2V9YCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB0aGlzLmxvZ2dlci53YXJuKGUuc3RhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB0eCBzZWVtcyBpbnZhbGlkLiByZXNldCBzdGF0dXMgaWYgZW5vdWdoIGJsb2NrcyBwYXN0LlxuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VHJhbnNhY3Rpb25Bc0ludmFsaWQodHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHR4IGlzIG1pbmVkLCBidXQgaXMgbm90IGNvbmZpcm1lZCBlbm91Z2gsIHVwZGF0aW5nIGxhc3QgY2hlY2suLi5cbiAgICAgIGNvbnN0IGhlaWdodCA9IGF3YWl0IG1hbmFnZXIuZ2V0SGVpZ2h0KCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVR4TGFzdENoZWNrKHR4LnR4SWQsIHR4LmNoYWluLCBoZWlnaHQpO1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgYFR4IFske3R4LnR4SWR9XSBpcyBpbiBjb25maXJtYXRpb24gcHJvY2VzcyBbJHt0eENvbmZpcm1hdGlvbn0vJHtyZXF1aXJlZENvbmZpcm1hdGlvbn1dYCxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBydW5zIGFsbCBqb2JzIG9mIFR4UG90XG4gICAqIC0gcHJvY2VzcyBzaWduZWQgdHhzXG4gICAqIC0gcHJvY2VzcyBzZW50IHR4c1xuICAgKi9cbiAgdXBkYXRlID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8vIGZldGNoIHNpZ25lZCBhbmQgc2VudCB0eHNcbiAgICBjb25zdCBzaWduZWRUeHMgPSBhd2FpdCB0aGlzLmdldFR4c0J5U3RhdHVzKFRyYW5zYWN0aW9uU3RhdHVzLlNJR05FRCk7XG4gICAgY29uc3Qgc2VudFR4cyA9IGF3YWl0IHRoaXMuZ2V0VHhzQnlTdGF0dXMoVHJhbnNhY3Rpb25TdGF0dXMuU0VOVCk7XG5cbiAgICAvLyBwcm9jZXNzIHNpZ25lZCB0eHNcbiAgICBmb3IgKGNvbnN0IHR4IG9mIHNpZ25lZFR4cykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzU2lnbmVkVHgodHgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHR4IFske3R4LnR4SWR9XSB3aXRoIHN0YXR1cyBbJHtUcmFuc2FjdGlvblN0YXR1cy5TSUdORUR9XTogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykgdGhpcy5sb2dnZXIud2FybihlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgUHJvY2Vzc2VkIFske3NpZ25lZFR4cy5sZW5ndGh9XSB0eHMgd2l0aCBzdGF0dXMgWyR7VHJhbnNhY3Rpb25TdGF0dXMuU0lHTkVEfV1gLFxuICAgICk7XG5cbiAgICAvLyBwcm9jZXNzIHNlbnQgdHhzXG4gICAgZm9yIChjb25zdCB0eCBvZiBzZW50VHhzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3Nlc1NlbnRUeCh0eCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICAgYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdHggWyR7dHgudHhJZH1dIHdpdGggc3RhdHVzIFske1RyYW5zYWN0aW9uU3RhdHVzLlNFTlR9XTogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykgdGhpcy5sb2dnZXIud2FybihlLnN0YWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgUHJvY2Vzc2VkIFske3NlbnRUeHMubGVuZ3RofV0gdHhzIHdpdGggc3RhdHVzIFske1RyYW5zYWN0aW9uU3RhdHVzLlNFTlR9XWAsXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogZ2V0cyB0cmFuc2FjdGlvbnMgYnkgc3RhdHVzXG4gICAqIEBwYXJhbSBzdGF0dXNcbiAgICogQHBhcmFtIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRUeHNCeVN0YXR1cyA9IGFzeW5jIChcbiAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLFxuICAgIHZhbGlkYXRlID0gZmFsc2UsXG4gICk6IFByb21pc2U8QXJyYXk8VHJhbnNhY3Rpb25FbnRpdHk+PiA9PiB7XG4gICAgY29uc3QgdHhzID0gYXdhaXQgdGhpcy50eFJlcG9zaXRvcnkuZmluZCh7XG4gICAgICB3aGVyZToge1xuICAgICAgICBzdGF0dXM6IHN0YXR1cyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKCF2YWxpZGF0ZSkgcmV0dXJuIHR4cztcblxuICAgIC8vIHZhbGlkYXRlIHRoZSB0cmFuc2FjdGlvbnNcbiAgICBjb25zdCB2YWxpZFR4czogQXJyYXk8VHJhbnNhY3Rpb25FbnRpdHk+ID0gW107XG4gICAgZm9yIChjb25zdCB0eCBvZiB0eHMpIHtcbiAgICAgIGlmIChhd2FpdCB0aGlzLnZhbGlkYXRlVHgodHgpKSB2YWxpZFR4cy5wdXNoKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkVHhzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBpbnNlcnRzIGEgbmV3IHRyYW5zYWN0aW9uIGludG8gZGJcbiAgICogICBOb3RlOiBtYWtlIHN1cmUgdG8gc2V0IGBsYXN0Q2hlY2tgIGZpZWxkIGlmIGluaXRpYWxTdGF0dXMgaXMgYHNpZ25lZGAgb3IgYHNlbnRgXG4gICAqIEBwYXJhbSB0eElkXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gdHhUeXBlXG4gICAqIEBwYXJhbSByZXF1aXJlZFNpZ25cbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUeFxuICAgKiBAcGFyYW0gaW5pdGlhbFN0YXR1c1xuICAgKiBAcGFyYW0gbGFzdENoZWNrIGxhc3QgYmxvY2tjaGFpbiBoZWlnaHQgdGhhdCB0eCB3YXMgdmFsaWRcbiAgICogQHBhcmFtIGV4dHJhXG4gICAqIEBwYXJhbSBleHRyYTJcbiAgICovXG4gIGFkZFR4ID0gYXN5bmMgKFxuICAgIHR4SWQ6IHN0cmluZyxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIHR4VHlwZTogc3RyaW5nLFxuICAgIHJlcXVpcmVkU2lnbjogbnVtYmVyLFxuICAgIHNlcmlhbGl6ZWRUeDogc3RyaW5nLFxuICAgIGluaXRpYWxTdGF0dXMgPSBUcmFuc2FjdGlvblN0YXR1cy5BUFBST1ZFRCxcbiAgICBsYXN0Q2hlY2sgPSAwLFxuICAgIGV4dHJhPzogc3RyaW5nIHwgbnVsbCxcbiAgICBleHRyYTI/OiBzdHJpbmcgfCBudWxsLFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS5pbnNlcnQoe1xuICAgICAgdHhJZDogdHhJZCxcbiAgICAgIGNoYWluOiBjaGFpbixcbiAgICAgIHR4VHlwZTogdHhUeXBlLFxuICAgICAgc3RhdHVzOiBpbml0aWFsU3RhdHVzLFxuICAgICAgcmVxdWlyZWRTaWduOiByZXF1aXJlZFNpZ24sXG4gICAgICBsYXN0Q2hlY2s6IGxhc3RDaGVjayxcbiAgICAgIGxhc3RTdGF0dXNVcGRhdGU6IHRoaXMuY3VycmVudFRpbWUoKSxcbiAgICAgIGZhaWxlZEluU2lnbjogZmFsc2UsXG4gICAgICBzaWduRmFpbGVkQ291bnQ6IDAsXG4gICAgICBzZXJpYWxpemVkVHg6IHNlcmlhbGl6ZWRUeCxcbiAgICAgIGV4dHJhOiBleHRyYSxcbiAgICAgIGV4dHJhMjogZXh0cmEyLFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIHRoZSBzdGF0dXMgb2YgYSB0eFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIHN0YXR1cyBuZXcgc3RhdHVzXG4gICAqL1xuICBzZXRUeFN0YXR1c0J5SWQgPSBhc3luYyAoXG4gICAgdHhJZDogc3RyaW5nLFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1cyxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS5maW5kT25lT3JGYWlsKHtcbiAgICAgIHdoZXJlOiB7IHR4SWQsIGNoYWluIH0sXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5zZXRUeFN0YXR1cyh0eCwgc3RhdHVzKTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyB0eCBpbmZvIHdoZW4gZmFpbGVkIGluIHNpZ24gcHJvY2Vzc1xuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICovXG4gIHNldFR4QXNTaWduRmFpbGVkID0gYXN5bmMgKHR4SWQ6IHN0cmluZywgY2hhaW46IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMudHhSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgdHhJZDogdHhJZCxcbiAgICAgICAgY2hhaW46IGNoYWluLFxuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLklOX1NJR04sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzLlNJR05fRkFJTEVELFxuICAgICAgICBsYXN0U3RhdHVzVXBkYXRlOiB0aGlzLmN1cnJlbnRUaW1lKCksXG4gICAgICAgIHNpZ25GYWlsZWRDb3VudDogKCkgPT4gJ1wic2lnbkZhaWxlZENvdW50XCIgKyAxJyxcbiAgICAgICAgZmFpbGVkSW5TaWduOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIHRoZSB0eCBhbmQgc2V0IHN0YXR1cyBhcyBzaWduZWRcbiAgICogQHBhcmFtIHR4SWRcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHhcbiAgICogQHBhcmFtIGN1cnJlbnRIZWlnaHQgY3VycmVudCBoZWlnaHQgb2YgdGhlIGJsb2NrY2hhaW5cbiAgICogQHBhcmFtIGV4dHJhXG4gICAqIEBwYXJhbSBleHRyYTJcbiAgICovXG4gIHNldFR4QXNTaWduZWQgPSBhc3luYyAoXG4gICAgdHhJZDogc3RyaW5nLFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICAgc2VyaWFsaXplZFR4OiBzdHJpbmcsXG4gICAgY3VycmVudEhlaWdodDogbnVtYmVyLFxuICAgIGV4dHJhPzogc3RyaW5nLFxuICAgIGV4dHJhMj86IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgdXBkYXRlZEZpZWxkczogUGFydGlhbDxUcmFuc2FjdGlvbkVudGl0eT4gPSB7XG4gICAgICBzZXJpYWxpemVkVHg6IHNlcmlhbGl6ZWRUeCxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXMuU0lHTkVELFxuICAgICAgbGFzdFN0YXR1c1VwZGF0ZTogdGhpcy5jdXJyZW50VGltZSgpLFxuICAgICAgbGFzdENoZWNrOiBjdXJyZW50SGVpZ2h0LFxuICAgIH07XG4gICAgaWYgKGV4dHJhKSB1cGRhdGVkRmllbGRzLmV4dHJhID0gZXh0cmE7XG4gICAgaWYgKGV4dHJhMikgdXBkYXRlZEZpZWxkcy5leHRyYTIgPSBleHRyYTI7XG5cbiAgICBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS51cGRhdGUoeyB0eElkLCBjaGFpbiB9LCB1cGRhdGVkRmllbGRzKTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyBsYXN0IGNoZWNrIHZhbHVlIG9mIGEgdHhcbiAgICogQHBhcmFtIHR4SWRcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBjdXJyZW50SGVpZ2h0IGN1cnJlbnQgaGVpZ2h0IG9mIHRoZSBibG9ja2NoYWluXG4gICAqL1xuICB1cGRhdGVUeExhc3RDaGVjayA9IGFzeW5jIChcbiAgICB0eElkOiBzdHJpbmcsXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICBjdXJyZW50SGVpZ2h0OiBudW1iZXIsXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMudHhSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgdHhJZCwgY2hhaW4gfSxcbiAgICAgIHsgbGFzdENoZWNrOiBjdXJyZW50SGVpZ2h0IH0sXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyBmYWlsZWRJblNpZ24gZmllbGQgb2YgYSB0cmFuc2FjdGlvbiB0byBmYWxzZVxuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICovXG4gIHJlc2V0RmFpbGVkSW5TaWduID0gYXN5bmMgKHR4SWQ6IHN0cmluZywgY2hhaW46IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMudHhSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgdHhJZCwgY2hhaW4gfSxcbiAgICAgIHtcbiAgICAgICAgZmFpbGVkSW5TaWduOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyByZXF1aXJlZFNpZ24gZmllbGQgb2YgYSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIHJlcXVpcmVkU2lnblxuICAgKi9cbiAgdXBkYXRlUmVxdWlyZWRTaWduID0gYXN5bmMgKFxuICAgIHR4SWQ6IHN0cmluZyxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIHJlcXVpcmVkU2lnbjogbnVtYmVyLFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLnR4UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IHR4SWQsIGNoYWluIH0sXG4gICAgICB7XG4gICAgICAgIHJlcXVpcmVkU2lnbjogcmVxdWlyZWRTaWduLFxuICAgICAgfSxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBnZXRzIHRoZSB0cmFuc2FjdGlvbiBieSBpdHMgaWQgYW5kIGNoYWluXG4gICAqIEBwYXJhbSB0eElkXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKi9cbiAgZ2V0VHhCeUtleSA9IGFzeW5jIChcbiAgICB0eElkOiBzdHJpbmcsXG4gICAgY2hhaW46IHN0cmluZyxcbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvbkVudGl0eSB8IG51bGw+ID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy50eFJlcG9zaXRvcnkuZmluZE9uZSh7XG4gICAgICB3aGVyZTogeyB0eElkLCBjaGFpbiB9LFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0aGUgdHJhbnNhY3Rpb25zIHdpdGggdmFsaWQgc3RhdHVzXG4gICAqL1xuICBnZXRUeHNRdWVyeSA9IChcbiAgICBvcHRpb25zOiBBcnJheTxUeE9wdGlvbnM+ID0gW10sXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25FbnRpdHlbXT4gPT4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHdoZXJlOiBvcHRpb25zLm1hcCh0eE9wdGlvblRvQ2xhdXNlKSxcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlcyBleHRyYSBmaWVsZHMgb2YgYSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIGV4dHJhXG4gICAqIEBwYXJhbSBleHRyYTJcbiAgICovXG4gIHVwZGF0ZUV4dHJhID0gYXN5bmMgKFxuICAgIHR4SWQ6IHN0cmluZyxcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIGV4dHJhPzogc3RyaW5nIHwgbnVsbCxcbiAgICBleHRyYTI/OiBzdHJpbmcgfCBudWxsLFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAoZXh0cmEgPT09IHVuZGVmaW5lZCAmJiBleHRyYTIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMudHhSZXBvc2l0b3J5LnVwZGF0ZSh7IHR4SWQsIGNoYWluIH0sIHsgZXh0cmEsIGV4dHJhMiB9KTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { TransactionEntity } from '../db/entities/TransactionEntity';
1
+ import { TransactionEntity } from '../db/entities/transactionEntity';
2
2
  export type ChainRequiredConfirmations = Record<string, number>;
3
3
  export type RequiredConfirmations = Record<string, ChainRequiredConfirmations>;
4
4
  export type ValidatorFunction = (tx: TransactionEntity) => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAC7B,EAAE,EAAE,iBAAiB,EACrB,SAAS,EAAE,iBAAiB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,oBAAY,iBAAiB;IAC3B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,oBAAY,aAAa;IACvB,MAAM,IAAA;IACN,QAAQ,IAAA;CACT;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,GAAG,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAC7B,EAAE,EAAE,iBAAiB,EAErB,SAAS,EAAE,iBAAiB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,oBAAY,iBAAiB;IAC3B,QAAQ,aAAa;IAErB,OAAO,YAAY;IAEnB,WAAW,gBAAgB;IAE3B,MAAM,WAAW;IAEjB,IAAI,SAAS;IAEb,OAAO,YAAY;IAEnB,SAAS,cAAc;CACxB;AAED,oBAAY,aAAa;IACvB,MAAM,IAAA;IAEN,QAAQ,IAAA;CACT;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,GAAG,EAAE,MAAM;CAGxB"}
@@ -18,4 +18,4 @@ export class UnregisteredChain extends Error {
18
18
  super('UnregisteredChain: ' + msg);
19
19
  }
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxDQUFOLElBQVksaUJBUVg7QUFSRCxXQUFZLGlCQUFpQjtJQUMzQiwwQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBbUIsQ0FBQTtJQUNuQixnREFBMkIsQ0FBQTtJQUMzQixzQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBYSxDQUFBO0lBQ2Isd0NBQW1CLENBQUE7SUFDbkIsNENBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVJXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFRNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHFEQUFNLENBQUE7SUFDTix5REFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBaUJELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxLQUFLO0lBQzFDLFlBQVksR0FBVztRQUNyQixLQUFLLENBQUMscUJBQXFCLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25FbnRpdHkgfSBmcm9tICcuLi9kYi9lbnRpdGllcy9UcmFuc2FjdGlvbkVudGl0eSc7XG5cbmV4cG9ydCB0eXBlIENoYWluUmVxdWlyZWRDb25maXJtYXRpb25zID0gUmVjb3JkPHN0cmluZywgbnVtYmVyPjsgLy8gdHggdHlwZSA9PiByZXF1aXJlZCBudW1iZXJcbmV4cG9ydCB0eXBlIFJlcXVpcmVkQ29uZmlybWF0aW9ucyA9IFJlY29yZDxzdHJpbmcsIENoYWluUmVxdWlyZWRDb25maXJtYXRpb25zPjtcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yRnVuY3Rpb24gPSAodHg6IFRyYW5zYWN0aW9uRW50aXR5KSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuZXhwb3J0IHR5cGUgQ2FsbGJhY2tGdW5jdGlvbiA9IChcbiAgdHg6IFRyYW5zYWN0aW9uRW50aXR5LFxuICBuZXdTdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzXG4pID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uU3RhdHVzIHtcbiAgQVBQUk9WRUQgPSAnYXBwcm92ZWQnLFxuICBJTl9TSUdOID0gJ2luLXNpZ24nLFxuICBTSUdOX0ZBSUxFRCA9ICdzaWduLWZhaWxlZCcsXG4gIFNJR05FRCA9ICdzaWduZWQnLFxuICBTRU5UID0gJ3NlbnQnLFxuICBJTlZBTElEID0gJ2ludmFsaWQnLFxuICBDT01QTEVURUQgPSAnY29tcGxldGVkJyxcbn1cblxuZXhwb3J0IGVudW0gU2lnbmluZ1N0YXR1cyB7XG4gIFNpZ25lZCxcbiAgVW5TaWduZWQsXG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkVmFsdWU8VD4gPSBUIHwgQXJyYXk8VD47XG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkT3B0aW9uPFQ+IHtcbiAgbm90OiBib29sZWFuO1xuICB2YWx1ZTogRmllbGRWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeE9wdGlvbnMge1xuICB0eElkPzogRmllbGRWYWx1ZTxzdHJpbmc+O1xuICBjaGFpbj86IHN0cmluZztcbiAgdHhUeXBlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBGaWVsZE9wdGlvbjxUcmFuc2FjdGlvblN0YXR1cz47XG4gIGZhaWxlZEluU2lnbj86IGJvb2xlYW47XG4gIGV4dHJhPzogRmllbGRWYWx1ZTxzdHJpbmcgfCBudWxsPjtcbn1cblxuZXhwb3J0IGNsYXNzIFVucmVnaXN0ZXJlZENoYWluIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZykge1xuICAgIHN1cGVyKCdVbnJlZ2lzdGVyZWRDaGFpbjogJyArIG1zZyk7XG4gIH1cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxDQUFOLElBQVksaUJBY1g7QUFkRCxXQUFZLGlCQUFpQjtJQUMzQiwwQ0FBcUIsQ0FBQTtJQUVyQix3Q0FBbUIsQ0FBQTtJQUVuQixnREFBMkIsQ0FBQTtJQUUzQixzQ0FBaUIsQ0FBQTtJQUVqQixrQ0FBYSxDQUFBO0lBRWIsd0NBQW1CLENBQUE7SUFFbkIsNENBQXVCLENBQUE7QUFDekIsQ0FBQyxFQWRXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFjNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLHFEQUFNLENBQUE7SUFFTix5REFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBaUJELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxLQUFLO0lBQzFDLFlBQVksR0FBVztRQUNyQixLQUFLLENBQUMscUJBQXFCLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25FbnRpdHkgfSBmcm9tICcuLi9kYi9lbnRpdGllcy90cmFuc2FjdGlvbkVudGl0eSc7XG5cbmV4cG9ydCB0eXBlIENoYWluUmVxdWlyZWRDb25maXJtYXRpb25zID0gUmVjb3JkPHN0cmluZywgbnVtYmVyPjsgLy8gdHggdHlwZSA9PiByZXF1aXJlZCBudW1iZXJcbmV4cG9ydCB0eXBlIFJlcXVpcmVkQ29uZmlybWF0aW9ucyA9IFJlY29yZDxzdHJpbmcsIENoYWluUmVxdWlyZWRDb25maXJtYXRpb25zPjtcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yRnVuY3Rpb24gPSAodHg6IFRyYW5zYWN0aW9uRW50aXR5KSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuZXhwb3J0IHR5cGUgQ2FsbGJhY2tGdW5jdGlvbiA9IChcbiAgdHg6IFRyYW5zYWN0aW9uRW50aXR5LFxuXG4gIG5ld1N0YXR1czogVHJhbnNhY3Rpb25TdGF0dXMsXG4pID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uU3RhdHVzIHtcbiAgQVBQUk9WRUQgPSAnYXBwcm92ZWQnLFxuXG4gIElOX1NJR04gPSAnaW4tc2lnbicsXG5cbiAgU0lHTl9GQUlMRUQgPSAnc2lnbi1mYWlsZWQnLFxuXG4gIFNJR05FRCA9ICdzaWduZWQnLFxuXG4gIFNFTlQgPSAnc2VudCcsXG5cbiAgSU5WQUxJRCA9ICdpbnZhbGlkJyxcblxuICBDT01QTEVURUQgPSAnY29tcGxldGVkJyxcbn1cblxuZXhwb3J0IGVudW0gU2lnbmluZ1N0YXR1cyB7XG4gIFNpZ25lZCxcblxuICBVblNpZ25lZCxcbn1cblxuZXhwb3J0IHR5cGUgRmllbGRWYWx1ZTxUPiA9IFQgfCBBcnJheTxUPjtcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRPcHRpb248VD4ge1xuICBub3Q6IGJvb2xlYW47XG4gIHZhbHVlOiBGaWVsZFZhbHVlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR4T3B0aW9ucyB7XG4gIHR4SWQ/OiBGaWVsZFZhbHVlPHN0cmluZz47XG4gIGNoYWluPzogc3RyaW5nO1xuICB0eFR5cGU/OiBzdHJpbmc7XG4gIHN0YXR1cz86IEZpZWxkT3B0aW9uPFRyYW5zYWN0aW9uU3RhdHVzPjtcbiAgZmFpbGVkSW5TaWduPzogYm9vbGVhbjtcbiAgZXh0cmE/OiBGaWVsZFZhbHVlPHN0cmluZyB8IG51bGw+O1xufVxuXG5leHBvcnQgY2xhc3MgVW5yZWdpc3RlcmVkQ2hhaW4gZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ1VucmVnaXN0ZXJlZENoYWluOiAnICsgbXNnKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { In, Not } from 'typeorm';
1
+ import { In, Not } from '@rosen-bridge/extended-typeorm';
2
2
  /**
3
3
  * converts options for fetching txs to typeorm clause
4
4
  * @param options
@@ -53,4 +53,4 @@ export const txOptionToClause = (options) => {
53
53
  }
54
54
  return clause;
55
55
  };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHJhbnNhY3Rpb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbEM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBa0IsRUFBRSxFQUFFO0lBQ3JELE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7SUFFdkMsa0JBQWtCO0lBQ2xCLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO1NBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLElBQUksT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLElBQUksT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDOUMsTUFBTSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbiwgTm90IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBUeE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBjb252ZXJ0cyBvcHRpb25zIGZvciBmZXRjaGluZyB0eHMgdG8gdHlwZW9ybSBjbGF1c2VcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgdHhPcHRpb25Ub0NsYXVzZSA9IChvcHRpb25zOiBUeE9wdGlvbnMpID0+IHtcbiAgY29uc3QgY2xhdXNlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgLy8gYWRkIHR4SWQgY2xhdXNlXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy50eElkID09PSAnc3RyaW5nJykge1xuICAgIGNsYXVzZS50eElkID0gb3B0aW9ucy50eElkO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy50eElkKSkge1xuICAgIGNsYXVzZS50eElkID0gSW4ob3B0aW9ucy50eElkKTtcbiAgfVxuXG4gIC8vIGFkZCBjaGFpbiBjbGF1c2VcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmNoYWluID09PSAnc3RyaW5nJykge1xuICAgIGNsYXVzZS5jaGFpbiA9IG9wdGlvbnMuY2hhaW47XG4gIH1cblxuICAvLyBhZGQgdHhUeXBlIGNsYXVzZVxuICBpZiAodHlwZW9mIG9wdGlvbnMudHhUeXBlID09PSAnc3RyaW5nJykge1xuICAgIGNsYXVzZS50eFR5cGUgPSBvcHRpb25zLnR4VHlwZTtcbiAgfVxuXG4gIC8vIGFkZCBzdGF0dXMgY2xhdXNlXG4gIGlmIChvcHRpb25zLnN0YXR1cykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zdGF0dXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAob3B0aW9ucy5zdGF0dXMubm90KSB7XG4gICAgICAgIGNsYXVzZS5zdGF0dXMgPSBOb3Qob3B0aW9ucy5zdGF0dXMudmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xhdXNlLnN0YXR1cyA9IG9wdGlvbnMuc3RhdHVzLnZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnN0YXR1cy52YWx1ZSkpIHtcbiAgICAgIGlmIChvcHRpb25zLnN0YXR1cy5ub3QpIHtcbiAgICAgICAgY2xhdXNlLnN0YXR1cyA9IE5vdChJbihvcHRpb25zLnN0YXR1cy52YWx1ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xhdXNlLnN0YXR1cyA9IEluKG9wdGlvbnMuc3RhdHVzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBhZGQgZmFpbGVkSW5TaWduIGNsYXVzZVxuICBpZiAodHlwZW9mIG9wdGlvbnMuZmFpbGVkSW5TaWduID09PSAnYm9vbGVhbicpIHtcbiAgICBjbGF1c2UuZmFpbGVkSW5TaWduID0gb3B0aW9ucy5mYWlsZWRJblNpZ247XG4gIH1cblxuICAvLyBhZGQgZXh0cmEgY2xhdXNlXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5leHRyYSA9PT0gJ3N0cmluZycpIHtcbiAgICBjbGF1c2UuZXh0cmEgPSBvcHRpb25zLmV4dHJhO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy5leHRyYSkpIHtcbiAgICBjbGF1c2UuZXh0cmEgPSBJbihvcHRpb25zLmV4dHJhKTtcbiAgfVxuXG4gIHJldHVybiBjbGF1c2U7XG59O1xuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHJhbnNhY3Rpb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUd6RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFrQixFQUFFLEVBQUU7SUFDckQsTUFBTSxNQUFNLEdBQXdCLEVBQUUsQ0FBQztJQUV2QyxrQkFBa0I7SUFDbEIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0MsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixJQUFJLE9BQU8sT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM5QyxNQUFNLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDN0MsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxNQUFNLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluLCBOb3QgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgVHhPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogY29udmVydHMgb3B0aW9ucyBmb3IgZmV0Y2hpbmcgdHhzIHRvIHR5cGVvcm0gY2xhdXNlXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IHR4T3B0aW9uVG9DbGF1c2UgPSAob3B0aW9uczogVHhPcHRpb25zKSA9PiB7XG4gIGNvbnN0IGNsYXVzZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIC8vIGFkZCB0eElkIGNsYXVzZVxuICBpZiAodHlwZW9mIG9wdGlvbnMudHhJZCA9PT0gJ3N0cmluZycpIHtcbiAgICBjbGF1c2UudHhJZCA9IG9wdGlvbnMudHhJZDtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMudHhJZCkpIHtcbiAgICBjbGF1c2UudHhJZCA9IEluKG9wdGlvbnMudHhJZCk7XG4gIH1cblxuICAvLyBhZGQgY2hhaW4gY2xhdXNlXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jaGFpbiA9PT0gJ3N0cmluZycpIHtcbiAgICBjbGF1c2UuY2hhaW4gPSBvcHRpb25zLmNoYWluO1xuICB9XG5cbiAgLy8gYWRkIHR4VHlwZSBjbGF1c2VcbiAgaWYgKHR5cGVvZiBvcHRpb25zLnR4VHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjbGF1c2UudHhUeXBlID0gb3B0aW9ucy50eFR5cGU7XG4gIH1cblxuICAvLyBhZGQgc3RhdHVzIGNsYXVzZVxuICBpZiAob3B0aW9ucy5zdGF0dXMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuc3RhdHVzLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKG9wdGlvbnMuc3RhdHVzLm5vdCkge1xuICAgICAgICBjbGF1c2Uuc3RhdHVzID0gTm90KG9wdGlvbnMuc3RhdHVzLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsYXVzZS5zdGF0dXMgPSBvcHRpb25zLnN0YXR1cy52YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy5zdGF0dXMudmFsdWUpKSB7XG4gICAgICBpZiAob3B0aW9ucy5zdGF0dXMubm90KSB7XG4gICAgICAgIGNsYXVzZS5zdGF0dXMgPSBOb3QoSW4ob3B0aW9ucy5zdGF0dXMudmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsYXVzZS5zdGF0dXMgPSBJbihvcHRpb25zLnN0YXR1cy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gYWRkIGZhaWxlZEluU2lnbiBjbGF1c2VcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmZhaWxlZEluU2lnbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgY2xhdXNlLmZhaWxlZEluU2lnbiA9IG9wdGlvbnMuZmFpbGVkSW5TaWduO1xuICB9XG5cbiAgLy8gYWRkIGV4dHJhIGNsYXVzZVxuICBpZiAodHlwZW9mIG9wdGlvbnMuZXh0cmEgPT09ICdzdHJpbmcnKSB7XG4gICAgY2xhdXNlLmV4dHJhID0gb3B0aW9ucy5leHRyYTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMuZXh0cmEpKSB7XG4gICAgY2xhdXNlLmV4dHJhID0gSW4ob3B0aW9ucy5leHRyYSk7XG4gIH1cblxuICByZXR1cm4gY2xhdXNlO1xufTtcbiJdfQ==