@witnet/solidity 3.0.7 → 3.0.8

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 (142) hide show
  1. package/build/contracts/Bech32.json +1 -1
  2. package/build/contracts/Clonable.json +1 -1
  3. package/build/contracts/Context.json +1 -1
  4. package/build/contracts/Create3.json +1 -1
  5. package/build/contracts/ERC165.json +1 -1
  6. package/build/contracts/Escrowable.json +1 -1
  7. package/build/contracts/IChainlinkAggregatorV3.json +1 -1
  8. package/build/contracts/IERC165.json +1 -1
  9. package/build/contracts/IERC20.json +1 -1
  10. package/build/contracts/IERC2362.json +1 -1
  11. package/build/contracts/IPythChainlinkAggregatorV3.json +1 -1
  12. package/build/contracts/IWitAppliance.json +1 -1
  13. package/build/contracts/IWitOracle.json +1 -1
  14. package/build/contracts/IWitOracleAppliance.json +1 -1
  15. package/build/contracts/IWitOracleConsumer.json +1 -1
  16. package/build/contracts/IWitOracleConsumerLegacy.json +1 -1
  17. package/build/contracts/IWitOracleLegacy.json +1 -1
  18. package/build/contracts/IWitOracleQueriable.json +1 -1
  19. package/build/contracts/IWitOracleQueriableConsumer.json +1 -1
  20. package/build/contracts/IWitOracleQueriableEvents.json +1 -1
  21. package/build/contracts/IWitOracleQueriableExperimental.json +1 -1
  22. package/build/contracts/IWitOracleQueriableTrustableReporter.json +1 -1
  23. package/build/contracts/IWitOracleQueriableTrustlessReporter.json +1 -1
  24. package/build/contracts/IWitOracleRadonRegistry.json +1 -1
  25. package/build/contracts/IWitOracleRadonRegistryEvents.json +1 -1
  26. package/build/contracts/IWitOracleRadonRegistryLegacy.json +1 -1
  27. package/build/contracts/IWitOracleRadonRequestFactory.json +1 -1
  28. package/build/contracts/IWitOracleRadonRequestModal.json +1 -1
  29. package/build/contracts/IWitOracleRadonRequestTemplate.json +1 -1
  30. package/build/contracts/IWitOracleRequest.json +1 -1
  31. package/build/contracts/IWitOracleRequestFactory.json +1 -1
  32. package/build/contracts/IWitOracleRequestFactoryEvents.json +1 -1
  33. package/build/contracts/IWitOracleRequestTemplate.json +1 -1
  34. package/build/contracts/IWitOracleTrustableAdmin.json +1 -1
  35. package/build/contracts/IWitOracleTrustless.json +1 -1
  36. package/build/contracts/IWitPriceFeeds.json +1 -1
  37. package/build/contracts/IWitPriceFeedsAdmin.json +1 -1
  38. package/build/contracts/IWitPriceFeedsConsumer.json +1 -1
  39. package/build/contracts/IWitPriceFeedsEvents.json +1 -1
  40. package/build/contracts/IWitPriceFeedsLegacy.json +1 -1
  41. package/build/contracts/IWitPriceFeedsLegacyAdmin.json +1 -1
  42. package/build/contracts/IWitPriceFeedsLegacySolver.json +1 -1
  43. package/build/contracts/IWitPriceFeedsLegacySolverFactory.json +1 -1
  44. package/build/contracts/IWitPriceFeedsTypes.json +1 -1
  45. package/build/contracts/IWitPyth.json +1 -1
  46. package/build/contracts/IWitPythChainlinkAggregator.json +1 -1
  47. package/build/contracts/IWitPythErrors.json +1 -1
  48. package/build/contracts/IWitPythEvents.json +1 -1
  49. package/build/contracts/IWitPythReporter.json +1 -1
  50. package/build/contracts/IWitRandomness.json +1 -1
  51. package/build/contracts/IWitRandomnessAdmin.json +1 -1
  52. package/build/contracts/IWitRandomnessAdminV2.json +1 -1
  53. package/build/contracts/IWitRandomnessConsumer.json +1 -1
  54. package/build/contracts/IWitRandomnessEvents.json +1 -1
  55. package/build/contracts/IWitRandomnessLegacy.json +1 -1
  56. package/build/contracts/IWitRandomnessTypes.json +1 -1
  57. package/build/contracts/Initializable.json +1 -1
  58. package/build/contracts/OVM_GasPriceOracle.json +1 -1
  59. package/build/contracts/Ownable.json +1 -1
  60. package/build/contracts/Ownable2Step.json +1 -1
  61. package/build/contracts/Payable.json +1 -1
  62. package/build/contracts/Proxiable.json +1 -1
  63. package/build/contracts/ReentrancyGuard.json +1 -1
  64. package/build/contracts/Secp256k1.json +1 -1
  65. package/build/contracts/Slices.json +1 -1
  66. package/build/contracts/TestBech32.json +1 -1
  67. package/build/contracts/TestSecp256k1.json +1 -1
  68. package/build/contracts/Upgradeable.json +1 -1
  69. package/build/contracts/UsingWitOracle.json +1 -1
  70. package/build/contracts/UsingWitPriceFeeds.json +1 -1
  71. package/build/contracts/UsingWitRandomness.json +1 -1
  72. package/build/contracts/WitOracle.json +1 -1
  73. package/build/contracts/WitOracleBasePushOnly.json +1 -1
  74. package/build/contracts/WitOracleBasePushOnlyTrustable.json +1 -1
  75. package/build/contracts/WitOracleBasePushOnlyTrustless.json +1 -1
  76. package/build/contracts/WitOracleBasePushOnlyUpgradable.json +1 -1
  77. package/build/contracts/WitOracleBaseQueriable.json +1 -1
  78. package/build/contracts/WitOracleBaseQueriableTrustable.json +1 -1
  79. package/build/contracts/WitOracleBaseQueriableTrustless.json +1 -1
  80. package/build/contracts/WitOracleBaseQueriableUpgradable.json +1 -1
  81. package/build/contracts/WitOracleDataLib.json +1 -1
  82. package/build/contracts/WitOraclePushOnly.json +1 -1
  83. package/build/contracts/WitOracleRadonEncodingLib.json +1 -1
  84. package/build/contracts/WitOracleRadonRegistry.json +1 -1
  85. package/build/contracts/WitOracleRadonRegistryBase.json +1 -1
  86. package/build/contracts/WitOracleRadonRegistryBaseUpgradable.json +1 -1
  87. package/build/contracts/WitOracleRadonRegistryData.json +1 -1
  88. package/build/contracts/WitOracleRadonRegistryDefaultV21.json +1 -1
  89. package/build/contracts/WitOracleRadonRegistryUpgradableDefault.json +1 -1
  90. package/build/contracts/WitOracleRadonRegistryUpgradableNoSha256.json +1 -1
  91. package/build/contracts/WitOracleRadonRegistryUpgradableZkSync.json +1 -1
  92. package/build/contracts/WitOracleRadonRequestFactory.json +1 -1
  93. package/build/contracts/WitOracleRadonRequestFactoryBase.json +1 -1
  94. package/build/contracts/WitOracleRadonRequestFactoryBaseUpgradable.json +1 -1
  95. package/build/contracts/WitOracleRadonRequestFactoryModals.json +1 -1
  96. package/build/contracts/WitOracleRadonRequestFactoryModalsDefault.json +1 -1
  97. package/build/contracts/WitOracleRadonRequestFactoryTemplates.json +1 -1
  98. package/build/contracts/WitOracleRadonRequestFactoryTemplatesDefault.json +1 -1
  99. package/build/contracts/WitOracleRadonRequestFactoryUpgradableConfluxCore.json +1 -1
  100. package/build/contracts/WitOracleRadonRequestFactoryUpgradableDefault.json +1 -1
  101. package/build/contracts/WitOracleResultStatusLib.json +1 -1
  102. package/build/contracts/WitOracleTrustableDefault.json +1 -1
  103. package/build/contracts/WitOracleTrustableExperimental.json +1 -1
  104. package/build/contracts/WitOracleTrustableObscuro.json +1 -1
  105. package/build/contracts/WitOracleTrustableOvm2.json +1 -1
  106. package/build/contracts/WitOracleTrustablePushOnly.json +1 -1
  107. package/build/contracts/WitOracleTrustableReef.json +1 -1
  108. package/build/contracts/WitOracleTrustableZkSync.json +1 -1
  109. package/build/contracts/WitOracleTrustlessDataLib.json +1 -1
  110. package/build/contracts/WitOracleTrustlessDefaultV22.json +1 -1
  111. package/build/contracts/WitOracleTrustlessUpgradableDefault.json +1 -1
  112. package/build/contracts/WitPriceFeeds.json +1 -1
  113. package/build/contracts/WitPriceFeedsDataLib.json +1 -1
  114. package/build/contracts/WitPriceFeedsLegacy.json +1 -1
  115. package/build/contracts/WitPriceFeedsLegacyDataLib.json +1 -1
  116. package/build/contracts/WitPriceFeedsLegacyUpgradable.json +1 -1
  117. package/build/contracts/WitPriceFeedsLegacyUpgradableBypass.json +1 -1
  118. package/build/contracts/WitPriceFeedsSolverBase.json +1 -1
  119. package/build/contracts/WitPriceFeedsV3.json +1 -1
  120. package/build/contracts/WitPriceFeedsV3Upgradable.json +1 -1
  121. package/build/contracts/WitPythChainlinkAggregator.json +1 -1
  122. package/build/contracts/WitRandomness.json +1 -1
  123. package/build/contracts/WitRandomnessLegacy.json +1 -1
  124. package/build/contracts/WitRandomnessV3.json +1 -1
  125. package/build/contracts/WitRngConsumer.json +1 -1
  126. package/build/contracts/Witnet.json +1 -1
  127. package/build/contracts/WitnetBuffer.json +1 -1
  128. package/build/contracts/WitnetCBOR.json +1 -1
  129. package/build/contracts/WitnetDeployer.json +1 -1
  130. package/build/contracts/WitnetDeployerConfluxCore.json +1 -1
  131. package/build/contracts/WitnetDeployerDeferred.json +1 -1
  132. package/build/contracts/WitnetDeployerMeter.json +1 -1
  133. package/build/contracts/WitnetProxy.json +1 -1
  134. package/build/contracts/WitnetUpgradableBase.json +1 -1
  135. package/dist/migrations/addresses.json +16 -1
  136. package/dist/migrations/constructorArgs.json +7 -0
  137. package/dist/src/bin/helpers.cjs +4 -4
  138. package/{dist/dist/migrations → migrations}/addresses.json +17 -2
  139. package/{dist/dist/migrations → migrations}/constructorArgs.json +8 -1
  140. package/migrations/settings/artifacts.js +84 -0
  141. package/package.json +3 -1
  142. package/src/bin/helpers.cjs +3 -3
@@ -10935,7 +10935,7 @@
10935
10935
  },
10936
10936
  "networks": {},
10937
10937
  "schemaVersion": "3.4.16",
10938
- "updatedAt": "2025-11-11T11:46:16.780Z",
10938
+ "updatedAt": "2025-11-11T11:57:37.720Z",
10939
10939
  "devdoc": {
10940
10940
  "kind": "dev",
10941
10941
  "methods": {},
@@ -968,7 +968,7 @@
968
968
  }
969
969
  },
970
970
  "schemaVersion": "3.4.16",
971
- "updatedAt": "2025-11-11T11:46:15.817Z",
971
+ "updatedAt": "2025-11-11T11:57:36.986Z",
972
972
  "devdoc": {
973
973
  "kind": "dev",
974
974
  "methods": {
@@ -931,7 +931,7 @@
931
931
  },
932
932
  "networks": {},
933
933
  "schemaVersion": "3.4.16",
934
- "updatedAt": "2025-11-11T11:46:15.819Z",
934
+ "updatedAt": "2025-11-11T11:57:36.988Z",
935
935
  "devdoc": {
936
936
  "kind": "dev",
937
937
  "methods": {
@@ -55407,7 +55407,7 @@
55407
55407
  }
55408
55408
  },
55409
55409
  "schemaVersion": "3.4.16",
55410
- "updatedAt": "2025-11-11T11:46:15.985Z",
55410
+ "updatedAt": "2025-11-11T11:57:37.109Z",
55411
55411
  "devdoc": {
55412
55412
  "author": "The Witnet Foundation.",
55413
55413
  "details": "Protection against race-condition and malleability attacks requires randomness queried to this contract to be solved is an asynchronous way, meaning that after some randomness is requested, the result provided from the Wit/Oracle sidechain won't be ready until a certain amount of EVM blocks have elapsed. This protection also implies that eventually failing randomness requests on the Wit/Oracle sidechain cannot be retried but from this very same contract. Failing randomness requests will get all automatically and unbiasedly solved as soon as some new randomness request gets solved, even if paid by a different requester. Querying for new randomness requires paying a fee in native EVM gas currency, as to cover the implicit cost of solving unmalleable randomness on the Wit/Oracle sidechain and report it back to the EVM storage. The actual randomize fee depends on the expected gas price to pay for the EVM transaction that would eventually include a call to any of the `randomize(..)` methods of this contract. The randomize fee can be computed by passing the expected gas price value to the `estimateRandomizeFee(uint256)` method. > Note [1]: On highly volatile gas price markets, especially on some Layer-2 EVM chains, is highly recommended to estimate the randomize fee before a `randomize()` call, and pass a fresh EVM gas price value. Otherwise the call to `randomize()` could potentially revert with either \"insufficient reward\" or \"too much reward\". > Note [2]: Contracts requiring some external entity to report Witnet-certified randomness only when required, would need to implement the `IWitRandomnessConsumer`. The external entity would then have to clone the public-domain address, attach it to the consumer contract address, and get the `randomize()` function called on the cloned instance as many times as required.",
@@ -3300,7 +3300,7 @@
3300
3300
  },
3301
3301
  "networks": {},
3302
3302
  "schemaVersion": "3.4.16",
3303
- "updatedAt": "2025-11-11T11:46:16.793Z",
3303
+ "updatedAt": "2025-11-11T11:57:37.731Z",
3304
3304
  "devdoc": {
3305
3305
  "kind": "dev",
3306
3306
  "methods": {},
@@ -45754,7 +45754,7 @@
45754
45754
  },
45755
45755
  "networks": {},
45756
45756
  "schemaVersion": "3.4.16",
45757
- "updatedAt": "2025-11-11T11:46:16.737Z",
45757
+ "updatedAt": "2025-11-11T11:57:37.687Z",
45758
45758
  "devdoc": {
45759
45759
  "kind": "dev",
45760
45760
  "methods": {},
@@ -27294,7 +27294,7 @@
27294
27294
  },
27295
27295
  "networks": {},
27296
27296
  "schemaVersion": "3.4.16",
27297
- "updatedAt": "2025-11-11T11:46:16.760Z",
27297
+ "updatedAt": "2025-11-11T11:57:37.702Z",
27298
27298
  "devdoc": {
27299
27299
  "author": "The Witnet Foundation.",
27300
27300
  "details": "`uint32` is used here for `cursor` because `uint16` would only enable seeking up to 8KB, which could in some theoretical use cases be exceeded. Conversely, `uint32` supports up to 512MB, which cannot credibly be exceeded.",
@@ -19387,7 +19387,7 @@
19387
19387
  },
19388
19388
  "networks": {},
19389
19389
  "schemaVersion": "3.4.16",
19390
- "updatedAt": "2025-11-11T11:46:16.772Z",
19390
+ "updatedAt": "2025-11-11T11:57:37.713Z",
19391
19391
  "devdoc": {
19392
19392
  "author": "The Witnet Foundation.",
19393
19393
  "details": "Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js",
@@ -8235,7 +8235,7 @@
8235
8235
  }
8236
8236
  },
8237
8237
  "schemaVersion": "3.4.16",
8238
- "updatedAt": "2025-11-11T11:46:16.001Z",
8238
+ "updatedAt": "2025-11-11T11:57:37.121Z",
8239
8239
  "devdoc": {
8240
8240
  "author": "Guillermo Díaz <guillermo@witnet.io>",
8241
8241
  "kind": "dev",
@@ -6367,7 +6367,7 @@
6367
6367
  },
6368
6368
  "networks": {},
6369
6369
  "schemaVersion": "3.4.16",
6370
- "updatedAt": "2025-11-11T11:46:16.006Z",
6370
+ "updatedAt": "2025-11-11T11:57:37.125Z",
6371
6371
  "devdoc": {
6372
6372
  "author": "Guillermo Díaz <guillermo@witnet.io>",
6373
6373
  "kind": "dev",
@@ -7803,7 +7803,7 @@
7803
7803
  },
7804
7804
  "networks": {},
7805
7805
  "schemaVersion": "3.4.16",
7806
- "updatedAt": "2025-11-11T11:46:16.012Z",
7806
+ "updatedAt": "2025-11-11T11:57:37.128Z",
7807
7807
  "devdoc": {
7808
7808
  "author": "Guillermo Díaz <guillermo@witnet.io>",
7809
7809
  "details": "To be used on EVM chains where contract deployment takes place in a deferred way: - after the deployment tx gets mined, and not while it gets executed.",
@@ -5637,7 +5637,7 @@
5637
5637
  },
5638
5638
  "networks": {},
5639
5639
  "schemaVersion": "3.4.16",
5640
- "updatedAt": "2025-11-11T11:46:16.017Z",
5640
+ "updatedAt": "2025-11-11T11:57:37.131Z",
5641
5641
  "devdoc": {
5642
5642
  "author": "Guillermo Díaz <guillermo@witnet.io>",
5643
5643
  "kind": "dev",
@@ -9416,7 +9416,7 @@
9416
9416
  }
9417
9417
  },
9418
9418
  "schemaVersion": "3.4.16",
9419
- "updatedAt": "2025-11-11T11:46:16.024Z",
9419
+ "updatedAt": "2025-11-11T11:57:37.135Z",
9420
9420
  "devdoc": {
9421
9421
  "author": "Guillermo Díaz <guillermo@witnet.io>",
9422
9422
  "kind": "dev",
@@ -5333,7 +5333,7 @@
5333
5333
  },
5334
5334
  "networks": {},
5335
5335
  "schemaVersion": "3.4.16",
5336
- "updatedAt": "2025-11-11T11:46:16.029Z",
5336
+ "updatedAt": "2025-11-11T11:57:37.139Z",
5337
5337
  "devdoc": {
5338
5338
  "author": "Guillermo Díaz <guillermo@witnet.io>",
5339
5339
  "errors": {
@@ -433,7 +433,22 @@
433
433
  }
434
434
  },
435
435
  "scroll:mainnet": {},
436
- "scroll:sepolia": {},
436
+ "scroll:sepolia": {
437
+ "libs": {
438
+ "WitOracleDataLib": "0xA1276094aB5450Cd14bC5a7ed7901Ff2020d0740",
439
+ "WitOracleRadonEncodingLib": "0x8fbBf7445E8bC8d7400107613d59163476d1f2e2",
440
+ "WitOracleResultStatusLib": "0x59526A531c29c6DEb7C008e45A111e2cEd7BE815",
441
+ "WitPriceFeedsDataLib": "0x1c19cc594887B3423f24601cA618Fe545eCD1D95",
442
+ "WitPriceFeedsLegacyDataLib": "0xca7e9D37088e5438AE4C221f3639F480681f5A14"
443
+ },
444
+ "core": {
445
+ "WitOracleRadonRegistryUpgradableNoSha256": "0xdCf6e46133805Fcea966ED48470A3C67D88e79A3",
446
+ "WitOracleTrustableDefault": "0x1a4d67C29a56f0b08a9e987E45F2750EE44d3322"
447
+ },
448
+ "apps": {
449
+ "WitPriceFeedsLegacyUpgradable": "0x9D37FF6CF956F1E66143517CC6619474A54CfB95"
450
+ }
451
+ },
437
452
  "ultron:mainnet": {},
438
453
  "ultron:testnet": {},
439
454
  "unichain:sepolia": {
@@ -306,5 +306,12 @@
306
306
  "WitOracleRadonRegistryUpgradableDefault": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x322e322e382d666462376631652d333964323732380000000000000000000000\",true]}",
307
307
  "WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x322e322e392d346262313232312d643566363836340000000000000000000000\"]}",
308
308
  "WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x322e322e382d666462376631652d623239643930350000000000000000000000\",true]}"
309
+ },
310
+ "scroll:sepolia": {
311
+ "WitOracleRadonRequestFactoryUpgradableDefault": "{\"types\":[\"address\",\"address\",\"bytes32\",\"bool\"],\"values\":[\"0xffC4147d7b973B1766FB335bC847C7288c4365ff\",\"0xFF5ad05D038fcc04354B2fca1fb657eA345594FF\",\"0x332e302e362d346364356138302d326665396137610000000000000000000000\",true]}",
312
+ "WitOracleRadonRegistryUpgradableNoSha256": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x332e302e362d346364356138302d366231383331330000000000000000000000\",true]}",
313
+ "WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x332e302e362d346364356138302d613335646266370000000000000000000000\"]}",
314
+ "WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d386361376362620000000000000000000000\",true]}",
315
+ "WitPriceFeedsV3Upgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d666337656138620000000000000000000000\",true]}"
309
316
  }
310
317
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  const fs = require("node:fs");
3
3
  const merge = require("lodash.merge");
4
- const addresses = require("../../dist/migrations/addresses.json");
5
- const artifacts = require("../../dist/migrations/settings/artifacts.js").default;
6
- const constructorArgs = require("../../dist/migrations/constructorArgs.json");
4
+ const addresses = require("../../migrations/addresses.json");
5
+ const artifacts = require("../../migrations/settings/artifacts.js").default;
6
+ const constructorArgs = require("../../migrations/constructorArgs.json");
7
7
  const DEFAULT_BATCH_SIZE = 64;
8
8
  const DEFAULT_LIMIT = 64;
9
9
  const DEFAULT_SINCE = -5000;
@@ -347,4 +347,4 @@ module.exports = {
347
347
  colorstrip,
348
348
  prompter,
349
349
  };
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5janMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluL2hlbHBlcnMuY2pzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQ2pFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUNoRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsNENBQTRDLENBQUMsQ0FBQTtBQUU3RSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUM3QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7QUFDeEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUE7QUFDM0IsTUFBTSw0QkFBNEIsR0FDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsSUFBSSwyQkFBMkIsQ0FBQTtBQUV4RSxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUV0RSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUc7SUFDZCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3RDLElBQUks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Q0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLO0lBQzVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzVCLElBQUksS0FBSztRQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pELElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNoQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGFBQWE7SUFDYixNQUFNO0lBQ04sTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixTQUFTO0lBQ1QsU0FBUztJQUNULFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0NBQ1IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGZzID0gcmVxdWlyZShcIm5vZGU6ZnNcIilcbmNvbnN0IG1lcmdlID0gcmVxdWlyZShcImxvZGFzaC5tZXJnZVwiKVxuXG5jb25zdCBhZGRyZXNzZXMgPSByZXF1aXJlKFwiLi4vLi4vZGlzdC9taWdyYXRpb25zL2FkZHJlc3Nlcy5qc29uXCIpXG5jb25zdCBhcnRpZmFjdHMgPSByZXF1aXJlKFwiLi4vLi4vZGlzdC9taWdyYXRpb25zL3NldHRpbmdzL2FydGlmYWN0cy5qc1wiKS5kZWZhdWx0XG5jb25zdCBjb25zdHJ1Y3RvckFyZ3MgPSByZXF1aXJlKFwiLi4vLi4vZGlzdC9taWdyYXRpb25zL2NvbnN0cnVjdG9yQXJncy5qc29uXCIpXG5cbmNvbnN0IERFRkFVTFRfQkFUQ0hfU0laRSA9IDY0XG5jb25zdCBERUZBVUxUX0xJTUlUID0gNjRcbmNvbnN0IERFRkFVTFRfU0lOQ0UgPSAtNTAwMFxuY29uc3QgV0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSCA9XG5cdHByb2Nlc3MuZW52LldJVE5FVF9TREtfUkFET05fQVNTRVRTX1BBVEggfHwgXCIuLi8uLi8uLi8uLi93aXRuZXQvYXNzZXRzXCJcblxuY29uc3QgaXNNb2R1bGVJbml0aWFsaXplZCA9IGZzLmV4aXN0c1N5bmMoXCIuL3dpdG5ldC9hc3NldHMvaW5kZXguY2pzXCIpXG5cbmZ1bmN0aW9uKiBjaHVua3MoYXJyLCBuKSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBuKSB7XG5cdFx0eWllbGQgYXJyLnNsaWNlKGksIGkgKyBuKVxuXHR9XG59XG5cbmNvbnN0IGNvbG9ycyA9IHtcblx0Ymx1ZTogKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYCxcblx0Y3lhbjogKHN0cikgPT4gYFxceDFiWzM2bSR7c3RyfVxceDFiWzBtYCxcblx0Z3JheTogKHN0cikgPT4gYFxceDFiWzkwbSR7c3RyfVxceDFiWzBtYCxcblx0Z3JlZW46IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWAsXG5cdG1hZ2VudGE6IChzdHIpID0+IGBcXHgxYlswOzM1bSR7c3RyfVxceDFiWzBtYCxcblx0cmVkOiAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gLFxuXHR5ZWxsb3c6IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWAsXG5cdHdoaXRlOiAoc3RyKSA9PiBgXFx4MWJbMDszOG0ke3N0cn1cXHgxYlswbWAsXG5cdGxibHVlOiAoc3RyKSA9PiBgXFx4MWJbMTs5NG0ke3N0cn1cXHgxYlswbWAsXG5cdGxjeWFuOiAoc3RyKSA9PiBgXFx4MWJbMTs5Nm0ke3N0cn1cXHgxYlswbWAsXG5cdGxncmVlbjogKHN0cikgPT4gYFxceDFiWzE7OTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzE7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsd2hpdGU6IChzdHIpID0+IGBcXHgxYlswOzE7OThtJHtzdHJ9XFx4MWJbMG1gLFxuXHRseWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbMTs5M20ke3N0cn1cXHgxYlswbWAsXG5cdG1ibHVlOiAoc3RyKSA9PiBgXFx4MWJbOTRtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtY3lhbjogKHN0cikgPT4gYFxceDFiWzk2bSR7c3RyfVxceDFiWzBtYCxcblx0bWdyZWVuOiAoc3RyKSA9PiBgXFx4MWJbOTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzA7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtcmVkOiAoc3RyKSA9PiBgXFx4MWJbOTFtJHtzdHJ9XFx4MWJbMG1gLFxuXHRteWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbOTNtJHtzdHJ9XFx4MWJbMG1gLFxufVxuXG5jb25zdCBjb2xvcnN0cmlwID0gKHN0cikgPT5cblx0c3RyLnJlcGxhY2UoXG5cdFx0L1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcblx0XHRcIlwiLFxuXHQpXG5cbmNvbnN0IGNvbW1hcyA9IChudW1iZXIpID0+IHtcblx0Y29uc3QgcGFydHMgPSBudW1iZXI/LnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpIHx8IFtcIlwiXVxuXHRjb25zdCByZXN1bHQgPVxuXHRcdHBhcnRzLmxlbmd0aCA8PSAxXG5cdFx0XHQ/IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX1gXG5cdFx0XHQ6IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX0uJHtwYXJ0c1sxXX1gXG5cdHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gZGVsZXRlRXh0cmFGbGFncyhhcmdzKSB7XG5cdGNvbnN0IGRlbGV0ZWQgPSBbXVxuXHRyZXR1cm4gW1xuXHRcdGFyZ3M/LmZpbHRlcigoYXJnKSA9PiB7XG5cdFx0XHRpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuXHRcdFx0XHRkZWxldGVkLnB1c2goYXJnLnNsaWNlKDIpKVxuXHRcdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0cnVlXG5cdFx0XHR9XG5cdFx0fSksXG5cdFx0ZGVsZXRlZCxcblx0XVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RmxhZ3NGcm9tQXJncyhhcmdzLCBmbGFncykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBmbGFncykge1xuXHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7ZmxhZ31gKVxuXHRcdFx0aWYgKGluZGV4ID49IDApIHtcblx0XHRcdFx0Y3VyYXRlZFtmbGFnXSA9IHRydWVcblx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHRyZXR1cm4gW2FyZ3MgfHwgW10sIGN1cmF0ZWRdXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RPcHRpb25zRnJvbUFyZ3MoYXJncywgb3B0aW9ucykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBvcHRpb25zKSB7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7b3B0aW9ufWApXG5cdFx0XHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdFx0XHRjdXJhdGVkW29wdGlvbl0gPSBhcmdzW2luZGV4XVxuXHRcdFx0XHRpZiAoIWFyZ3NbaW5kZXggKyAxXSB8fCBhcmdzW2luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gdW5kZWZpbmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gYXJnc1tpbmRleCArIDFdXG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDIpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHJldHVybiBbYXJncyB8fCBbXSwgY3VyYXRlZF1cbn1cblxuZnVuY3Rpb24gZmxhdHRlbk9iamVjdChvYikge1xuXHRjb25zdCB0b1JldHVybiA9IHt9XG5cdGZvciAoY29uc3QgaSBpbiBvYikge1xuXHRcdGlmICghT2JqZWN0Lmhhc093bihvYiwgaSkpIGNvbnRpbnVlXG5cdFx0aWYgKHR5cGVvZiBvYltpXSA9PT0gXCJvYmplY3RcIiAmJiBvYltpXSAhPT0gbnVsbCkge1xuXHRcdFx0Y29uc3QgZmxhdE9iamVjdCA9IGZsYXR0ZW5PYmplY3Qob2JbaV0pXG5cdFx0XHRmb3IgKGNvbnN0IHggaW4gZmxhdE9iamVjdCkge1xuXHRcdFx0XHRpZiAoIU9iamVjdC5oYXNPd24oZmxhdE9iamVjdCwgeCkpIGNvbnRpbnVlXG5cdFx0XHRcdHRvUmV0dXJuW2Ake2l9LiR7eH1gXSA9IGZsYXRPYmplY3RbeF1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dG9SZXR1cm5baV0gPSBvYltpXVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gdG9SZXR1cm5cbn1cblxuZnVuY3Rpb24gZ2V0TmV0d29ya0FkZHJlc3NlcyhuZXR3b3JrKSB7XG5cdGxldCByZXMgPSBhZGRyZXNzZXM/LmRlZmF1bHRcblx0Z2V0TmV0d29ya1RhZ3NGcm9tU3RyaW5nKG5ldHdvcmspLmZvckVhY2goKG5ldCkgPT4ge1xuXHRcdHJlcyA9IG1lcmdlKHJlcywgYWRkcmVzc2VzW25ldF0pXG5cdH0pXG5cdHJldHVybiBtZXJnZShcblx0XHRyZXMsXG5cdFx0ZnMuZXhpc3RzU3luYyhgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS8uLi9hZGRyZXNzZXMuanNvbmApXG5cdFx0XHQ/IHJlcXVpcmUoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vLi4vYWRkcmVzc2VzLmpzb25gKVtcblx0XHRcdFx0XHRuZXR3b3JrLnRvTG93ZXJDYXNlKClcblx0XHRcdFx0XVxuXHRcdFx0OiB7fSxcblx0KVxufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQXJ0aWZhY3RzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IGFydGlmYWN0cz8uZGVmYXVsdFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcobmV0d29yaykuZm9yRWFjaCgobmV0KSA9PiB7XG5cdFx0cmVzID0gbWVyZ2UocmVzLCBhcnRpZmFjdHNbbmV0XSlcblx0fSlcblx0cmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IHt9XG5cdGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKS5mb3JFYWNoKChuZXQpID0+IHtcblx0XHRyZXMgPSBtZXJnZShyZXMsIGNvbnN0cnVjdG9yQXJnc1tuZXRdKVxuXHR9KVxuXHRyZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKSB7XG5cdG5ldHdvcmsgPSBuZXR3b3JrID8gbmV0d29yay50b0xvd2VyQ2FzZSgpIDogXCJkZXZlbG9wbWVudFwiXG5cdGNvbnN0IHRhZ3MgPSBbXVxuXHRjb25zdCBwYXJ0cyA9IG5ldHdvcmsuc3BsaXQoXCI6XCIpXG5cdGZvciAobGV0IGl4ID0gMDsgaXggPCBwYXJ0cy5sZW5ndGg7IGl4KyspIHtcblx0XHR0YWdzLnB1c2gocGFydHMuc2xpY2UoMCwgaXggKyAxKS5qb2luKFwiOlwiKSlcblx0fVxuXHRyZXR1cm4gdGFnc1xufVxuXG5mdW5jdGlvbiBpbXBvcnRSYWRvbkFzc2V0cyhvcHRpb25zKSB7XG5cdGNvbnN0IGFzc2V0cyA9IG9wdGlvbnM/LmxlZ2FjeSA/IHt9IDogcmVxdWlyZShcIkB3aXRuZXQvc2RrL2Fzc2V0c1wiKVxuXHRyZXR1cm4gaXNNb2R1bGVJbml0aWFsaXplZCAmJlxuXHRcdGZzLmV4aXN0c1N5bmMoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vaW5kZXguY2pzYClcblx0XHQ/IG1lcmdlKGFzc2V0cywgcmVxdWlyZShgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS9pbmRleC5janNgKSlcblx0XHQ6IGFzc2V0c1xufVxuXG5mdW5jdGlvbiBvcmRlcktleXMob2JqKSB7XG5cdGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopLnNvcnQoZnVuY3Rpb24ga2V5T3JkZXIoazEsIGsyKSB7XG5cdFx0aWYgKGsxIDwgazIpIHJldHVybiAtMVxuXHRcdGVsc2UgaWYgKGsxID4gazIpIHJldHVybiArMVxuXHRcdGVsc2UgcmV0dXJuIDBcblx0fSlcblx0bGV0IGlcblx0Y29uc3QgYWZ0ZXIgPSB7fVxuXHRmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuXHRcdGFmdGVyW2tleXNbaV1dID0gb2JqW2tleXNbaV1dXG5cdFx0ZGVsZXRlIG9ialtrZXlzW2ldXVxuXHR9XG5cdGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0b2JqW2tleXNbaV1dID0gYWZ0ZXJba2V5c1tpXV1cblx0fVxuXHRyZXR1cm4gb2JqXG59XG5cbmZ1bmN0aW9uIHByb21wdGVyKHByb21pc2UpIHtcblx0Y29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgaCA9IFtcInxcIiwgXCIvXCIsIFwiLVwiLCBcIlxcXFxcIl1cblx0XHRsZXQgaSA9IDBcblx0XHRyZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aSA9IGkgPiAzID8gMCA6IGlcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApXG5cdFx0XHRpKytcblx0XHR9LCA1MClcblx0fSkoKVxuXHRyZXR1cm4gcHJvbWlzZS50aGVuKChyZXN1bHQpID0+IHtcblx0XHRjbGVhckludGVydmFsKGxvYWRpbmcpXG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXGJcXGJcIilcblx0XHRyZXR1cm4gcmVzdWx0XG5cdH0pXG59XG5cbmZ1bmN0aW9uIHJlYWRXaXRuZXRKc29uRmlsZXMoLi4uZmlsZW5hbWVzKSB7XG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0ZmlsZW5hbWVzLm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdGtleSxcblx0XHRcdFx0ZnMuZXhpc3RzU3luYyhmaWxlcGF0aCkgPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlcGF0aCkpIDoge30sXG5cdFx0XHRdXG5cdFx0fSksXG5cdClcbn1cblxuZnVuY3Rpb24gc2F2ZVdpdG5ldEpzb25GaWxlcyhkYXRhKSB7XG5cdE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIG9ial0pID0+IHtcblx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZXBhdGgpKSBmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBcInt9XCIpXG5cdFx0Y29uc3QganNvbiA9IG1lcmdlKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoKSksIG9iailcblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCA0KSwgeyBmbGFnOiBcIncrXCIgfSlcblx0fSlcbn1cblxuZnVuY3Rpb24gc3VwcG9ydGVkTmV0d29ya3MoZWNvc3lzdGVtKSB7XG5cdGNvbnN0IG5ldHdvcmtzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvbmV0d29ya3MuanNcIikuZGVmYXVsdFxuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncylcblx0XHRcdC5zb3J0KClcblx0XHRcdC5maWx0ZXIoXG5cdFx0XHRcdChuZXR3b3JrKSA9PlxuXHRcdFx0XHRcdG5ldHdvcmsuaW5kZXhPZihcIjpcIikgPj0gMCAmJlxuXHRcdFx0XHRcdCghZWNvc3lzdGVtIHx8IG5ldHdvcmsuc3RhcnRzV2l0aChlY29zeXN0ZW0udG9Mb3dlckNhc2UoKSkpLFxuXHRcdFx0KVxuXHRcdFx0Lm1hcCgobmV0d29yaykgPT4ge1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdG5ldHdvcmssXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFpbm5ldDogbmV0d29ya3NbbmV0d29ya10/Lm1haW5uZXQgfHwgZmFsc2UsXG5cdFx0XHRcdFx0XHRuZXR3b3JrX2lkOiBuZXR3b3Jrc1tuZXR3b3JrXS5uZXR3b3JrX2lkLFxuXHRcdFx0XHRcdFx0cG9ydDogbmV0d29ya3NbbmV0d29ya10ucG9ydCxcblx0XHRcdFx0XHRcdHN5bWJvbDogbmV0d29ya3NbbmV0d29ya10/LnN5bWJvbCB8fCBcIkVUSFwiLFxuXHRcdFx0XHRcdFx0dmVyaWZpZWQ6IG5ldHdvcmtzW25ldHdvcmtdPy52ZXJpZnk/LmV4cGxvcmVyVXJsLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF1cblx0XHRcdH0pLFxuXHQpXG59XG5cbmZ1bmN0aW9uIHN1cHBvcnRzTmV0d29yayhuZXR3b3JrKSB7XG5cdHJldHVybiBuZXR3b3JrICYmIE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncykuaW5jbHVkZXMobmV0d29yay50b0xvd2VyQ2FzZSgpKVxufVxuXG5mdW5jdGlvbiB0cmFjZUhlYWRlcihoZWFkZXIsIGNvbG9yID0gY29sb3JzLndoaXRlLCBpbmRlbnQgPSBcIlwiKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJBgKVxuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRlcil9IOKUgmApXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJhgKVxufVxuXG5mdW5jdGlvbiB0cmFjZVRhYmxlKHJlY29yZHMsIG9wdGlvbnMpIHtcblx0Y29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PlxuXHRcdGh1bWFuaXplcnM/LltpbmRleF1cblx0XHRcdD8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKVxuXHRcdFx0OiAoZGF0YT8udG9TdHJpbmcoKSA/PyBcIlwiKVxuXHRjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT5cblx0XHRudW1iZXJzLnJlZHVjZSgoY3VyciwgcHJldikgPT4gTWF0aC5tYXgoY3VyciwgcHJldiksIDApXG5cdGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9XG5cdGNvbnN0IGluZGVudCA9IG9wdGlvbnM/LmluZGVudCB8fCBcIlwiXG5cdGNvbnN0IG51bUNvbHVtbnMgPSByZWR1Y2VNYXgocmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZW5ndGggfHwgMSkpXG5cdGNvbnN0IG1heENvbHVtbldpZHRoID0gb3B0aW9ucz8ubWF4Q29sdW1uV2lkdGggfHwgODBcblx0Y29uc3QgdGFibGUgPSB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucylcblx0b3B0aW9ucy53aWR0aHMgPVxuXHRcdG9wdGlvbnM/LndpZHRocyB8fFxuXHRcdHRhYmxlLm1hcCgoY29sdW1uLCBpbmRleCkgPT4ge1xuXHRcdFx0bGV0IG1heFdpZHRoID0gcmVkdWNlTWF4KFxuXHRcdFx0XHRjb2x1bW4ubWFwKFxuXHRcdFx0XHRcdChmaWVsZCkgPT5cblx0XHRcdFx0XHRcdGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCxcblx0XHRcdFx0KSxcblx0XHRcdClcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXM/LltpbmRleF0pIHtcblx0XHRcdFx0bWF4V2lkdGggPSBNYXRoLm1heChcblx0XHRcdFx0XHRtYXhXaWR0aCxcblx0XHRcdFx0XHRjb2xvcnN0cmlwKG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKSkubGVuZ3RoLFxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKVxuXHRcdH0pXG5cdGxldCBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSlcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilKzilIBcIil94pSA4pSQYClcblx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcykge1xuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGNhcHRpb24gPSBvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIilcblx0XHRcdGNvbnN0IGNhcHRpb25MZW5ndGggPSBjb2xvcnN0cmlwKGNhcHRpb24pLmxlbmd0aFxuXHRcdFx0cmV0dXJuIGAke2NvbG9ycy53aGl0ZShjYXB0aW9uKX0ke1wiIFwiLnJlcGVhdChtYXhXaWR0aCAtIGNhcHRpb25MZW5ndGgpfWBcblx0XHR9KVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSCICR7aGVhZGxpbmUuam9pbihcIiDilIIgXCIpfSDilIJgKVxuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSc4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS84pSAXCIpfeKUgOKUpGApXG5cdH1cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IGxpbmUgPSBcIlwiXG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBudW1Db2x1bW5zOyBqKyspIHtcblx0XHRcdGxldCBkYXRhID0gdGFibGVbal1baV1cblx0XHRcdGxldCBjb2xvclxuXHRcdFx0aWYgKG9wdGlvbnM/LmNvbG9ycz8uW2pdKSB7XG5cdFx0XHRcdGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbG9yID1cblx0XHRcdFx0XHR0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIlxuXHRcdFx0XHRcdFx0PyBjb2xvcnMuZ3JlZW5cblx0XHRcdFx0XHRcdDogTnVtYmVyKGRhdGEpID09PSBkYXRhICYmIGRhdGEgJSAxICE9PSAwIC8vIGlzIGZsb2F0IG51bWJlcj9cblx0XHRcdFx0XHRcdFx0PyBjb2xvcnMueWVsbG93XG5cdFx0XHRcdFx0XHRcdDogKHgpID0+IHhcblx0XHRcdH1cblx0XHRcdGRhdGEgPSBzdHJpbmdpZnkoZGF0YSwgb3B0aW9ucz8uaHVtYW5pemVycywgailcblx0XHRcdGlmIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoKSB7XG5cdFx0XHRcdHdoaWxlIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoIC0gMykge1xuXHRcdFx0XHRcdGRhdGEgPSBkYXRhLnNsaWNlKDAsIC0xKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGEgKz0gXCIuLi5cIlxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGF0YUxlbmd0aCA9IGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoXG5cdFx0XHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2pdWzBdID09PSBcIjpcIikge1xuXHRcdFx0XHRkYXRhID0gYCR7Y29sb3IoZGF0YSl9JHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX1gXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gXG5cdFx0XHR9XG5cdFx0XHRsaW5lICs9IGDilIIgJHtkYXRhfSBgXG5cdFx0fVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR9JHtsaW5lfeKUgmApXG5cdH1cblx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApXG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9zZShyZWNvcmRzLCBudW1Db2x1bW5zKSB7XG5cdGNvbnN0IGNvbHVtbnMgPSBbXVxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtQ29sdW1uczsgaW5kZXgrKykge1xuXHRcdGNvbHVtbnMucHVzaChyZWNvcmRzLm1hcCgocm93KSA9PiByb3dbaW5kZXhdKSlcblx0fVxuXHRyZXR1cm4gY29sdW1uc1xufVxuXG5mdW5jdGlvbiB0cmFjZURhdGEoaGVhZGVyLCBkYXRhLCB3aWR0aCwgY29sb3IpIHtcblx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoaGVhZGVyKVxuXHRpZiAoY29sb3IpIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGNvbG9yKVxuXHRmb3IgKGxldCBpeCA9IDA7IGl4IDwgZGF0YS5sZW5ndGggLyB3aWR0aDsgaXgrKykge1xuXHRcdGlmIChpeCA+IDApIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiIFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKSlcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShkYXRhLnNsaWNlKHdpZHRoICogaXgsIHdpZHRoICogKGl4ICsgMSkpKVxuXHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuXCIpXG5cdH1cblx0aWYgKGNvbG9yKSBwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxceDFiWzBtXCIpXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRERUZBVUxUX0JBVENIX1NJWkUsXG5cdERFRkFVTFRfTElNSVQsXG5cdERFRkFVTFRfU0lOQ0UsXG5cdGNvbG9ycyxcblx0Y2h1bmtzLFxuXHRkZWxldGVFeHRyYUZsYWdzLFxuXHRleHRyYWN0RmxhZ3NGcm9tQXJncyxcblx0ZXh0cmFjdE9wdGlvbnNGcm9tQXJncyxcblx0ZmxhdHRlbk9iamVjdCxcblx0b3JkZXJLZXlzLFxuXHR0cmFjZURhdGEsXG5cdHRyYWNlSGVhZGVyLFxuXHRnZXROZXR3b3JrQWRkcmVzc2VzLFxuXHRnZXROZXR3b3JrQXJ0aWZhY3RzLFxuXHRnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzLFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcsXG5cdHN1cHBvcnRlZE5ldHdvcmtzLFxuXHRzdXBwb3J0c05ldHdvcmssXG5cdGltcG9ydFJhZG9uQXNzZXRzLFxuXHRyZWFkV2l0bmV0SnNvbkZpbGVzLFxuXHRzYXZlV2l0bmV0SnNvbkZpbGVzLFxuXHR0cmFjZVRhYmxlLFxuXHRjb21tYXMsXG5cdGNvbG9yc3RyaXAsXG5cdHByb21wdGVyLFxufVxuIl19
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5janMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluL2hlbHBlcnMuY2pzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQzVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMzRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUV4RSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUM3QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7QUFDeEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUE7QUFDM0IsTUFBTSw0QkFBNEIsR0FDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsSUFBSSwyQkFBMkIsQ0FBQTtBQUV4RSxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUV0RSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUc7SUFDZCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3RDLElBQUks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Q0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLO0lBQzVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzVCLElBQUksS0FBSztRQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pELElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNoQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGFBQWE7SUFDYixNQUFNO0lBQ04sTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixTQUFTO0lBQ1QsU0FBUztJQUNULFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0NBQ1IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGZzID0gcmVxdWlyZShcIm5vZGU6ZnNcIilcbmNvbnN0IG1lcmdlID0gcmVxdWlyZShcImxvZGFzaC5tZXJnZVwiKVxuXG5jb25zdCBhZGRyZXNzZXMgPSByZXF1aXJlKFwiLi4vLi4vbWlncmF0aW9ucy9hZGRyZXNzZXMuanNvblwiKVxuY29uc3QgYXJ0aWZhY3RzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvYXJ0aWZhY3RzLmpzXCIpLmRlZmF1bHRcbmNvbnN0IGNvbnN0cnVjdG9yQXJncyA9IHJlcXVpcmUoXCIuLi8uLi9taWdyYXRpb25zL2NvbnN0cnVjdG9yQXJncy5qc29uXCIpXG5cbmNvbnN0IERFRkFVTFRfQkFUQ0hfU0laRSA9IDY0XG5jb25zdCBERUZBVUxUX0xJTUlUID0gNjRcbmNvbnN0IERFRkFVTFRfU0lOQ0UgPSAtNTAwMFxuY29uc3QgV0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSCA9XG5cdHByb2Nlc3MuZW52LldJVE5FVF9TREtfUkFET05fQVNTRVRTX1BBVEggfHwgXCIuLi8uLi8uLi8uLi93aXRuZXQvYXNzZXRzXCJcblxuY29uc3QgaXNNb2R1bGVJbml0aWFsaXplZCA9IGZzLmV4aXN0c1N5bmMoXCIuL3dpdG5ldC9hc3NldHMvaW5kZXguY2pzXCIpXG5cbmZ1bmN0aW9uKiBjaHVua3MoYXJyLCBuKSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBuKSB7XG5cdFx0eWllbGQgYXJyLnNsaWNlKGksIGkgKyBuKVxuXHR9XG59XG5cbmNvbnN0IGNvbG9ycyA9IHtcblx0Ymx1ZTogKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYCxcblx0Y3lhbjogKHN0cikgPT4gYFxceDFiWzM2bSR7c3RyfVxceDFiWzBtYCxcblx0Z3JheTogKHN0cikgPT4gYFxceDFiWzkwbSR7c3RyfVxceDFiWzBtYCxcblx0Z3JlZW46IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWAsXG5cdG1hZ2VudGE6IChzdHIpID0+IGBcXHgxYlswOzM1bSR7c3RyfVxceDFiWzBtYCxcblx0cmVkOiAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gLFxuXHR5ZWxsb3c6IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWAsXG5cdHdoaXRlOiAoc3RyKSA9PiBgXFx4MWJbMDszOG0ke3N0cn1cXHgxYlswbWAsXG5cdGxibHVlOiAoc3RyKSA9PiBgXFx4MWJbMTs5NG0ke3N0cn1cXHgxYlswbWAsXG5cdGxjeWFuOiAoc3RyKSA9PiBgXFx4MWJbMTs5Nm0ke3N0cn1cXHgxYlswbWAsXG5cdGxncmVlbjogKHN0cikgPT4gYFxceDFiWzE7OTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzE7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsd2hpdGU6IChzdHIpID0+IGBcXHgxYlswOzE7OThtJHtzdHJ9XFx4MWJbMG1gLFxuXHRseWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbMTs5M20ke3N0cn1cXHgxYlswbWAsXG5cdG1ibHVlOiAoc3RyKSA9PiBgXFx4MWJbOTRtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtY3lhbjogKHN0cikgPT4gYFxceDFiWzk2bSR7c3RyfVxceDFiWzBtYCxcblx0bWdyZWVuOiAoc3RyKSA9PiBgXFx4MWJbOTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzA7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtcmVkOiAoc3RyKSA9PiBgXFx4MWJbOTFtJHtzdHJ9XFx4MWJbMG1gLFxuXHRteWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbOTNtJHtzdHJ9XFx4MWJbMG1gLFxufVxuXG5jb25zdCBjb2xvcnN0cmlwID0gKHN0cikgPT5cblx0c3RyLnJlcGxhY2UoXG5cdFx0L1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcblx0XHRcIlwiLFxuXHQpXG5cbmNvbnN0IGNvbW1hcyA9IChudW1iZXIpID0+IHtcblx0Y29uc3QgcGFydHMgPSBudW1iZXI/LnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpIHx8IFtcIlwiXVxuXHRjb25zdCByZXN1bHQgPVxuXHRcdHBhcnRzLmxlbmd0aCA8PSAxXG5cdFx0XHQ/IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX1gXG5cdFx0XHQ6IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX0uJHtwYXJ0c1sxXX1gXG5cdHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gZGVsZXRlRXh0cmFGbGFncyhhcmdzKSB7XG5cdGNvbnN0IGRlbGV0ZWQgPSBbXVxuXHRyZXR1cm4gW1xuXHRcdGFyZ3M/LmZpbHRlcigoYXJnKSA9PiB7XG5cdFx0XHRpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuXHRcdFx0XHRkZWxldGVkLnB1c2goYXJnLnNsaWNlKDIpKVxuXHRcdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0cnVlXG5cdFx0XHR9XG5cdFx0fSksXG5cdFx0ZGVsZXRlZCxcblx0XVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RmxhZ3NGcm9tQXJncyhhcmdzLCBmbGFncykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBmbGFncykge1xuXHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7ZmxhZ31gKVxuXHRcdFx0aWYgKGluZGV4ID49IDApIHtcblx0XHRcdFx0Y3VyYXRlZFtmbGFnXSA9IHRydWVcblx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHRyZXR1cm4gW2FyZ3MgfHwgW10sIGN1cmF0ZWRdXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RPcHRpb25zRnJvbUFyZ3MoYXJncywgb3B0aW9ucykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBvcHRpb25zKSB7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7b3B0aW9ufWApXG5cdFx0XHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdFx0XHRjdXJhdGVkW29wdGlvbl0gPSBhcmdzW2luZGV4XVxuXHRcdFx0XHRpZiAoIWFyZ3NbaW5kZXggKyAxXSB8fCBhcmdzW2luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gdW5kZWZpbmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gYXJnc1tpbmRleCArIDFdXG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDIpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHJldHVybiBbYXJncyB8fCBbXSwgY3VyYXRlZF1cbn1cblxuZnVuY3Rpb24gZmxhdHRlbk9iamVjdChvYikge1xuXHRjb25zdCB0b1JldHVybiA9IHt9XG5cdGZvciAoY29uc3QgaSBpbiBvYikge1xuXHRcdGlmICghT2JqZWN0Lmhhc093bihvYiwgaSkpIGNvbnRpbnVlXG5cdFx0aWYgKHR5cGVvZiBvYltpXSA9PT0gXCJvYmplY3RcIiAmJiBvYltpXSAhPT0gbnVsbCkge1xuXHRcdFx0Y29uc3QgZmxhdE9iamVjdCA9IGZsYXR0ZW5PYmplY3Qob2JbaV0pXG5cdFx0XHRmb3IgKGNvbnN0IHggaW4gZmxhdE9iamVjdCkge1xuXHRcdFx0XHRpZiAoIU9iamVjdC5oYXNPd24oZmxhdE9iamVjdCwgeCkpIGNvbnRpbnVlXG5cdFx0XHRcdHRvUmV0dXJuW2Ake2l9LiR7eH1gXSA9IGZsYXRPYmplY3RbeF1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dG9SZXR1cm5baV0gPSBvYltpXVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gdG9SZXR1cm5cbn1cblxuZnVuY3Rpb24gZ2V0TmV0d29ya0FkZHJlc3NlcyhuZXR3b3JrKSB7XG5cdGxldCByZXMgPSBhZGRyZXNzZXM/LmRlZmF1bHRcblx0Z2V0TmV0d29ya1RhZ3NGcm9tU3RyaW5nKG5ldHdvcmspLmZvckVhY2goKG5ldCkgPT4ge1xuXHRcdHJlcyA9IG1lcmdlKHJlcywgYWRkcmVzc2VzW25ldF0pXG5cdH0pXG5cdHJldHVybiBtZXJnZShcblx0XHRyZXMsXG5cdFx0ZnMuZXhpc3RzU3luYyhgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS8uLi9hZGRyZXNzZXMuanNvbmApXG5cdFx0XHQ/IHJlcXVpcmUoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vLi4vYWRkcmVzc2VzLmpzb25gKVtcblx0XHRcdFx0XHRuZXR3b3JrLnRvTG93ZXJDYXNlKClcblx0XHRcdFx0XVxuXHRcdFx0OiB7fSxcblx0KVxufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQXJ0aWZhY3RzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IGFydGlmYWN0cz8uZGVmYXVsdFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcobmV0d29yaykuZm9yRWFjaCgobmV0KSA9PiB7XG5cdFx0cmVzID0gbWVyZ2UocmVzLCBhcnRpZmFjdHNbbmV0XSlcblx0fSlcblx0cmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IHt9XG5cdGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKS5mb3JFYWNoKChuZXQpID0+IHtcblx0XHRyZXMgPSBtZXJnZShyZXMsIGNvbnN0cnVjdG9yQXJnc1tuZXRdKVxuXHR9KVxuXHRyZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKSB7XG5cdG5ldHdvcmsgPSBuZXR3b3JrID8gbmV0d29yay50b0xvd2VyQ2FzZSgpIDogXCJkZXZlbG9wbWVudFwiXG5cdGNvbnN0IHRhZ3MgPSBbXVxuXHRjb25zdCBwYXJ0cyA9IG5ldHdvcmsuc3BsaXQoXCI6XCIpXG5cdGZvciAobGV0IGl4ID0gMDsgaXggPCBwYXJ0cy5sZW5ndGg7IGl4KyspIHtcblx0XHR0YWdzLnB1c2gocGFydHMuc2xpY2UoMCwgaXggKyAxKS5qb2luKFwiOlwiKSlcblx0fVxuXHRyZXR1cm4gdGFnc1xufVxuXG5mdW5jdGlvbiBpbXBvcnRSYWRvbkFzc2V0cyhvcHRpb25zKSB7XG5cdGNvbnN0IGFzc2V0cyA9IG9wdGlvbnM/LmxlZ2FjeSA/IHt9IDogcmVxdWlyZShcIkB3aXRuZXQvc2RrL2Fzc2V0c1wiKVxuXHRyZXR1cm4gaXNNb2R1bGVJbml0aWFsaXplZCAmJlxuXHRcdGZzLmV4aXN0c1N5bmMoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vaW5kZXguY2pzYClcblx0XHQ/IG1lcmdlKGFzc2V0cywgcmVxdWlyZShgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS9pbmRleC5janNgKSlcblx0XHQ6IGFzc2V0c1xufVxuXG5mdW5jdGlvbiBvcmRlcktleXMob2JqKSB7XG5cdGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopLnNvcnQoZnVuY3Rpb24ga2V5T3JkZXIoazEsIGsyKSB7XG5cdFx0aWYgKGsxIDwgazIpIHJldHVybiAtMVxuXHRcdGVsc2UgaWYgKGsxID4gazIpIHJldHVybiArMVxuXHRcdGVsc2UgcmV0dXJuIDBcblx0fSlcblx0bGV0IGlcblx0Y29uc3QgYWZ0ZXIgPSB7fVxuXHRmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuXHRcdGFmdGVyW2tleXNbaV1dID0gb2JqW2tleXNbaV1dXG5cdFx0ZGVsZXRlIG9ialtrZXlzW2ldXVxuXHR9XG5cdGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0b2JqW2tleXNbaV1dID0gYWZ0ZXJba2V5c1tpXV1cblx0fVxuXHRyZXR1cm4gb2JqXG59XG5cbmZ1bmN0aW9uIHByb21wdGVyKHByb21pc2UpIHtcblx0Y29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgaCA9IFtcInxcIiwgXCIvXCIsIFwiLVwiLCBcIlxcXFxcIl1cblx0XHRsZXQgaSA9IDBcblx0XHRyZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aSA9IGkgPiAzID8gMCA6IGlcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApXG5cdFx0XHRpKytcblx0XHR9LCA1MClcblx0fSkoKVxuXHRyZXR1cm4gcHJvbWlzZS50aGVuKChyZXN1bHQpID0+IHtcblx0XHRjbGVhckludGVydmFsKGxvYWRpbmcpXG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXGJcXGJcIilcblx0XHRyZXR1cm4gcmVzdWx0XG5cdH0pXG59XG5cbmZ1bmN0aW9uIHJlYWRXaXRuZXRKc29uRmlsZXMoLi4uZmlsZW5hbWVzKSB7XG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0ZmlsZW5hbWVzLm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdGtleSxcblx0XHRcdFx0ZnMuZXhpc3RzU3luYyhmaWxlcGF0aCkgPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlcGF0aCkpIDoge30sXG5cdFx0XHRdXG5cdFx0fSksXG5cdClcbn1cblxuZnVuY3Rpb24gc2F2ZVdpdG5ldEpzb25GaWxlcyhkYXRhKSB7XG5cdE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIG9ial0pID0+IHtcblx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZXBhdGgpKSBmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBcInt9XCIpXG5cdFx0Y29uc3QganNvbiA9IG1lcmdlKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoKSksIG9iailcblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCA0KSwgeyBmbGFnOiBcIncrXCIgfSlcblx0fSlcbn1cblxuZnVuY3Rpb24gc3VwcG9ydGVkTmV0d29ya3MoZWNvc3lzdGVtKSB7XG5cdGNvbnN0IG5ldHdvcmtzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvbmV0d29ya3MuanNcIikuZGVmYXVsdFxuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncylcblx0XHRcdC5zb3J0KClcblx0XHRcdC5maWx0ZXIoXG5cdFx0XHRcdChuZXR3b3JrKSA9PlxuXHRcdFx0XHRcdG5ldHdvcmsuaW5kZXhPZihcIjpcIikgPj0gMCAmJlxuXHRcdFx0XHRcdCghZWNvc3lzdGVtIHx8IG5ldHdvcmsuc3RhcnRzV2l0aChlY29zeXN0ZW0udG9Mb3dlckNhc2UoKSkpLFxuXHRcdFx0KVxuXHRcdFx0Lm1hcCgobmV0d29yaykgPT4ge1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdG5ldHdvcmssXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFpbm5ldDogbmV0d29ya3NbbmV0d29ya10/Lm1haW5uZXQgfHwgZmFsc2UsXG5cdFx0XHRcdFx0XHRuZXR3b3JrX2lkOiBuZXR3b3Jrc1tuZXR3b3JrXS5uZXR3b3JrX2lkLFxuXHRcdFx0XHRcdFx0cG9ydDogbmV0d29ya3NbbmV0d29ya10ucG9ydCxcblx0XHRcdFx0XHRcdHN5bWJvbDogbmV0d29ya3NbbmV0d29ya10/LnN5bWJvbCB8fCBcIkVUSFwiLFxuXHRcdFx0XHRcdFx0dmVyaWZpZWQ6IG5ldHdvcmtzW25ldHdvcmtdPy52ZXJpZnk/LmV4cGxvcmVyVXJsLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF1cblx0XHRcdH0pLFxuXHQpXG59XG5cbmZ1bmN0aW9uIHN1cHBvcnRzTmV0d29yayhuZXR3b3JrKSB7XG5cdHJldHVybiBuZXR3b3JrICYmIE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncykuaW5jbHVkZXMobmV0d29yay50b0xvd2VyQ2FzZSgpKVxufVxuXG5mdW5jdGlvbiB0cmFjZUhlYWRlcihoZWFkZXIsIGNvbG9yID0gY29sb3JzLndoaXRlLCBpbmRlbnQgPSBcIlwiKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJBgKVxuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRlcil9IOKUgmApXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJhgKVxufVxuXG5mdW5jdGlvbiB0cmFjZVRhYmxlKHJlY29yZHMsIG9wdGlvbnMpIHtcblx0Y29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PlxuXHRcdGh1bWFuaXplcnM/LltpbmRleF1cblx0XHRcdD8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKVxuXHRcdFx0OiAoZGF0YT8udG9TdHJpbmcoKSA/PyBcIlwiKVxuXHRjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT5cblx0XHRudW1iZXJzLnJlZHVjZSgoY3VyciwgcHJldikgPT4gTWF0aC5tYXgoY3VyciwgcHJldiksIDApXG5cdGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9XG5cdGNvbnN0IGluZGVudCA9IG9wdGlvbnM/LmluZGVudCB8fCBcIlwiXG5cdGNvbnN0IG51bUNvbHVtbnMgPSByZWR1Y2VNYXgocmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZW5ndGggfHwgMSkpXG5cdGNvbnN0IG1heENvbHVtbldpZHRoID0gb3B0aW9ucz8ubWF4Q29sdW1uV2lkdGggfHwgODBcblx0Y29uc3QgdGFibGUgPSB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucylcblx0b3B0aW9ucy53aWR0aHMgPVxuXHRcdG9wdGlvbnM/LndpZHRocyB8fFxuXHRcdHRhYmxlLm1hcCgoY29sdW1uLCBpbmRleCkgPT4ge1xuXHRcdFx0bGV0IG1heFdpZHRoID0gcmVkdWNlTWF4KFxuXHRcdFx0XHRjb2x1bW4ubWFwKFxuXHRcdFx0XHRcdChmaWVsZCkgPT5cblx0XHRcdFx0XHRcdGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCxcblx0XHRcdFx0KSxcblx0XHRcdClcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXM/LltpbmRleF0pIHtcblx0XHRcdFx0bWF4V2lkdGggPSBNYXRoLm1heChcblx0XHRcdFx0XHRtYXhXaWR0aCxcblx0XHRcdFx0XHRjb2xvcnN0cmlwKG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKSkubGVuZ3RoLFxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKVxuXHRcdH0pXG5cdGxldCBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSlcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilKzilIBcIil94pSA4pSQYClcblx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcykge1xuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGNhcHRpb24gPSBvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIilcblx0XHRcdGNvbnN0IGNhcHRpb25MZW5ndGggPSBjb2xvcnN0cmlwKGNhcHRpb24pLmxlbmd0aFxuXHRcdFx0cmV0dXJuIGAke2NvbG9ycy53aGl0ZShjYXB0aW9uKX0ke1wiIFwiLnJlcGVhdChtYXhXaWR0aCAtIGNhcHRpb25MZW5ndGgpfWBcblx0XHR9KVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSCICR7aGVhZGxpbmUuam9pbihcIiDilIIgXCIpfSDilIJgKVxuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSc4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS84pSAXCIpfeKUgOKUpGApXG5cdH1cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IGxpbmUgPSBcIlwiXG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBudW1Db2x1bW5zOyBqKyspIHtcblx0XHRcdGxldCBkYXRhID0gdGFibGVbal1baV1cblx0XHRcdGxldCBjb2xvclxuXHRcdFx0aWYgKG9wdGlvbnM/LmNvbG9ycz8uW2pdKSB7XG5cdFx0XHRcdGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbG9yID1cblx0XHRcdFx0XHR0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIlxuXHRcdFx0XHRcdFx0PyBjb2xvcnMuZ3JlZW5cblx0XHRcdFx0XHRcdDogTnVtYmVyKGRhdGEpID09PSBkYXRhICYmIGRhdGEgJSAxICE9PSAwIC8vIGlzIGZsb2F0IG51bWJlcj9cblx0XHRcdFx0XHRcdFx0PyBjb2xvcnMueWVsbG93XG5cdFx0XHRcdFx0XHRcdDogKHgpID0+IHhcblx0XHRcdH1cblx0XHRcdGRhdGEgPSBzdHJpbmdpZnkoZGF0YSwgb3B0aW9ucz8uaHVtYW5pemVycywgailcblx0XHRcdGlmIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoKSB7XG5cdFx0XHRcdHdoaWxlIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoIC0gMykge1xuXHRcdFx0XHRcdGRhdGEgPSBkYXRhLnNsaWNlKDAsIC0xKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGEgKz0gXCIuLi5cIlxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGF0YUxlbmd0aCA9IGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoXG5cdFx0XHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2pdWzBdID09PSBcIjpcIikge1xuXHRcdFx0XHRkYXRhID0gYCR7Y29sb3IoZGF0YSl9JHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX1gXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gXG5cdFx0XHR9XG5cdFx0XHRsaW5lICs9IGDilIIgJHtkYXRhfSBgXG5cdFx0fVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR9JHtsaW5lfeKUgmApXG5cdH1cblx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApXG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9zZShyZWNvcmRzLCBudW1Db2x1bW5zKSB7XG5cdGNvbnN0IGNvbHVtbnMgPSBbXVxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtQ29sdW1uczsgaW5kZXgrKykge1xuXHRcdGNvbHVtbnMucHVzaChyZWNvcmRzLm1hcCgocm93KSA9PiByb3dbaW5kZXhdKSlcblx0fVxuXHRyZXR1cm4gY29sdW1uc1xufVxuXG5mdW5jdGlvbiB0cmFjZURhdGEoaGVhZGVyLCBkYXRhLCB3aWR0aCwgY29sb3IpIHtcblx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoaGVhZGVyKVxuXHRpZiAoY29sb3IpIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGNvbG9yKVxuXHRmb3IgKGxldCBpeCA9IDA7IGl4IDwgZGF0YS5sZW5ndGggLyB3aWR0aDsgaXgrKykge1xuXHRcdGlmIChpeCA+IDApIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiIFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKSlcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShkYXRhLnNsaWNlKHdpZHRoICogaXgsIHdpZHRoICogKGl4ICsgMSkpKVxuXHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuXCIpXG5cdH1cblx0aWYgKGNvbG9yKSBwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxceDFiWzBtXCIpXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRERUZBVUxUX0JBVENIX1NJWkUsXG5cdERFRkFVTFRfTElNSVQsXG5cdERFRkFVTFRfU0lOQ0UsXG5cdGNvbG9ycyxcblx0Y2h1bmtzLFxuXHRkZWxldGVFeHRyYUZsYWdzLFxuXHRleHRyYWN0RmxhZ3NGcm9tQXJncyxcblx0ZXh0cmFjdE9wdGlvbnNGcm9tQXJncyxcblx0ZmxhdHRlbk9iamVjdCxcblx0b3JkZXJLZXlzLFxuXHR0cmFjZURhdGEsXG5cdHRyYWNlSGVhZGVyLFxuXHRnZXROZXR3b3JrQWRkcmVzc2VzLFxuXHRnZXROZXR3b3JrQXJ0aWZhY3RzLFxuXHRnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzLFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcsXG5cdHN1cHBvcnRlZE5ldHdvcmtzLFxuXHRzdXBwb3J0c05ldHdvcmssXG5cdGltcG9ydFJhZG9uQXNzZXRzLFxuXHRyZWFkV2l0bmV0SnNvbkZpbGVzLFxuXHRzYXZlV2l0bmV0SnNvbkZpbGVzLFxuXHR0cmFjZVRhYmxlLFxuXHRjb21tYXMsXG5cdGNvbG9yc3RyaXAsXG5cdHByb21wdGVyLFxufVxuIl19
@@ -433,7 +433,22 @@
433
433
  }
434
434
  },
435
435
  "scroll:mainnet": {},
436
- "scroll:sepolia": {},
436
+ "scroll:sepolia": {
437
+ "libs": {
438
+ "WitOracleDataLib": "0xA1276094aB5450Cd14bC5a7ed7901Ff2020d0740",
439
+ "WitOracleRadonEncodingLib": "0x8fbBf7445E8bC8d7400107613d59163476d1f2e2",
440
+ "WitOracleResultStatusLib": "0x59526A531c29c6DEb7C008e45A111e2cEd7BE815",
441
+ "WitPriceFeedsDataLib": "0x1c19cc594887B3423f24601cA618Fe545eCD1D95",
442
+ "WitPriceFeedsLegacyDataLib": "0xca7e9D37088e5438AE4C221f3639F480681f5A14"
443
+ },
444
+ "core": {
445
+ "WitOracleRadonRegistryUpgradableNoSha256": "0xdCf6e46133805Fcea966ED48470A3C67D88e79A3",
446
+ "WitOracleTrustableDefault": "0x1a4d67C29a56f0b08a9e987E45F2750EE44d3322"
447
+ },
448
+ "apps": {
449
+ "WitPriceFeedsLegacyUpgradable": "0x9D37FF6CF956F1E66143517CC6619474A54CfB95"
450
+ }
451
+ },
437
452
  "ultron:mainnet": {},
438
453
  "ultron:testnet": {},
439
454
  "unichain:sepolia": {
@@ -491,4 +506,4 @@
491
506
  "WitPriceFeedsLegacyDataLib": "0xBfFA2ec6225390C517A1bEB83b27a171C6734294"
492
507
  }
493
508
  }
494
- }
509
+ }
@@ -306,5 +306,12 @@
306
306
  "WitOracleRadonRegistryUpgradableDefault": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x322e322e382d666462376631652d333964323732380000000000000000000000\",true]}",
307
307
  "WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x322e322e392d346262313232312d643566363836340000000000000000000000\"]}",
308
308
  "WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x322e322e382d666462376631652d623239643930350000000000000000000000\",true]}"
309
+ },
310
+ "scroll:sepolia": {
311
+ "WitOracleRadonRequestFactoryUpgradableDefault": "{\"types\":[\"address\",\"address\",\"bytes32\",\"bool\"],\"values\":[\"0xffC4147d7b973B1766FB335bC847C7288c4365ff\",\"0xFF5ad05D038fcc04354B2fca1fb657eA345594FF\",\"0x332e302e362d346364356138302d326665396137610000000000000000000000\",true]}",
312
+ "WitOracleRadonRegistryUpgradableNoSha256": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x332e302e362d346364356138302d366231383331330000000000000000000000\",true]}",
313
+ "WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x332e302e362d346364356138302d613335646266370000000000000000000000\"]}",
314
+ "WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d386361376362620000000000000000000000\",true]}",
315
+ "WitPriceFeedsV3Upgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d666337656138620000000000000000000000\",true]}"
309
316
  }
310
- }
317
+ }
@@ -0,0 +1,84 @@
1
+ export default {
2
+ default: {
3
+ WitnetDeployer: "WitnetDeployer",
4
+ apps: {
5
+ WitPriceFeeds: "WitPriceFeedsV3Upgradable",
6
+ WitPriceFeedsLegacy: "WitPriceFeedsLegacyUpgradable",
7
+ WitRandomness: "WitRandomnessV3",
8
+ },
9
+ core: {
10
+ WitOracle: "WitOracleTrustableDefault",
11
+ WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableDefault",
12
+ WitOracleRadonRequestFactory:
13
+ "WitOracleRadonRequestFactoryUpgradableDefault",
14
+ WitOracleRadonRequestFactoryModals:
15
+ "WitOracleRadonRequestFactoryModalsDefault",
16
+ WitOracleRadonRequestFactoryTemplates:
17
+ "WitOracleRadonRequestFactoryTemplatesDefault",
18
+ },
19
+ libs: {
20
+ WitOracleDataLib: "WitOracleDataLib",
21
+ WitOracleRadonEncodingLib: "WitOracleRadonEncodingLib",
22
+ WitOracleResultStatusLib: "WitOracleResultStatusLib",
23
+ WitPriceFeedsDataLib: "WitPriceFeedsDataLib",
24
+ WitPriceFeedsLegacyDataLib: "WitPriceFeedsLegacyDataLib",
25
+ },
26
+ },
27
+ base: {
28
+ core: { WitOracle: "WitOracleTrustableOvm2" },
29
+ },
30
+ boba: {
31
+ core: { WitOracle: "WitOracleTrustableOvm2" },
32
+ },
33
+ "conflux:core": {
34
+ WitnetDeployer: "WitnetDeployerConfluxCore",
35
+ core: {
36
+ WitOracleRadonRequestFactory:
37
+ "WitOracleRadonRequestFactoryUpgradableConfluxCore",
38
+ },
39
+ },
40
+ "ethereum:sepolia": {
41
+ apps: {
42
+ WitPriceFeedsLegacy: "WitPriceFeedsLegacyUpgradableBypass",
43
+ },
44
+ },
45
+ mantle: {
46
+ core: { WitOracle: "WitOracleTrustableOvm2" },
47
+ },
48
+ meter: {
49
+ WitnetDeployer: "WitnetDeployerMeter",
50
+ core: {
51
+ WitOracleRadonRequestFactory:
52
+ "WitOracleRadonRequestFactoryUpgradableConfluxCore",
53
+ },
54
+ },
55
+ optimism: {
56
+ core: { WitOracle: "WitOracleTrustableOvm2" },
57
+ },
58
+ "okx:x1": {
59
+ core: {
60
+ WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableNoSha256",
61
+ },
62
+ },
63
+ "polygon:zkevm": {
64
+ core: {
65
+ WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableNoSha256",
66
+ },
67
+ },
68
+ reef: {
69
+ WitnetDeployer: "WitnetDeployerDeferred",
70
+ core: { WitOracle: "WitOracleTrustableReef" },
71
+ },
72
+ scroll: {
73
+ core: {
74
+ WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableNoSha256",
75
+ },
76
+ },
77
+ "syscoin:rollux": {
78
+ core: { WitOracle: "WitOracleTrustableOvm2" },
79
+ },
80
+ ten: {
81
+ WitnetDeployer: "WitnetDeployerDeferred",
82
+ core: { WitOracle: "WitOracleTrustableObscuro" },
83
+ },
84
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/solidity",
3
- "version": "3.0.7",
3
+ "version": "3.0.8",
4
4
  "description": "Wit/Oracle Solidity Framework for EVM-compatible chains",
5
5
  "author": "Witnet Foundation <info@witnet.foundation>",
6
6
  "license": "MIT",
@@ -60,6 +60,8 @@
60
60
  "build/contracts",
61
61
  "dist",
62
62
  "contracts",
63
+ "migrations/*.json",
64
+ "migrations/settings/artifacts.js",
63
65
  "scripts",
64
66
  "src/bin"
65
67
  ],
@@ -1,9 +1,9 @@
1
1
  const fs = require("node:fs")
2
2
  const merge = require("lodash.merge")
3
3
 
4
- const addresses = require("../../dist/migrations/addresses.json")
5
- const artifacts = require("../../dist/migrations/settings/artifacts.js").default
6
- const constructorArgs = require("../../dist/migrations/constructorArgs.json")
4
+ const addresses = require("../../migrations/addresses.json")
5
+ const artifacts = require("../../migrations/settings/artifacts.js").default
6
+ const constructorArgs = require("../../migrations/constructorArgs.json")
7
7
 
8
8
  const DEFAULT_BATCH_SIZE = 64
9
9
  const DEFAULT_LIMIT = 64