@witnet/solidity 3.0.6 → 3.0.7

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 (141) 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 +13 -2
  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 +254 -2
  82. package/build/contracts/WitOraclePushOnly.json +1 -1
  83. package/build/contracts/WitOracleRadonEncodingLib.json +14 -2
  84. package/build/contracts/WitOracleRadonRegistry.json +13 -2
  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 +10 -2
  90. package/build/contracts/WitOracleRadonRegistryUpgradableNoSha256.json +10 -2
  91. package/build/contracts/WitOracleRadonRegistryUpgradableZkSync.json +1 -1
  92. package/build/contracts/WitOracleRadonRequestFactory.json +13 -2
  93. package/build/contracts/WitOracleRadonRequestFactoryBase.json +1 -1
  94. package/build/contracts/WitOracleRadonRequestFactoryBaseUpgradable.json +1 -1
  95. package/build/contracts/WitOracleRadonRequestFactoryModals.json +13 -2
  96. package/build/contracts/WitOracleRadonRequestFactoryModalsDefault.json +23 -2
  97. package/build/contracts/WitOracleRadonRequestFactoryTemplates.json +13 -2
  98. package/build/contracts/WitOracleRadonRequestFactoryTemplatesDefault.json +33 -2
  99. package/build/contracts/WitOracleRadonRequestFactoryUpgradableConfluxCore.json +1 -1
  100. package/build/contracts/WitOracleRadonRequestFactoryUpgradableDefault.json +13 -2
  101. package/build/contracts/WitOracleResultStatusLib.json +14 -2
  102. package/build/contracts/WitOracleTrustableDefault.json +259 -2
  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 +13 -2
  113. package/build/contracts/WitPriceFeedsDataLib.json +14 -2
  114. package/build/contracts/WitPriceFeedsLegacy.json +13 -2
  115. package/build/contracts/WitPriceFeedsLegacyDataLib.json +154 -2
  116. package/build/contracts/WitPriceFeedsLegacyUpgradable.json +80 -2
  117. package/build/contracts/WitPriceFeedsLegacyUpgradableBypass.json +80 -2
  118. package/build/contracts/WitPriceFeedsSolverBase.json +1 -1
  119. package/build/contracts/WitPriceFeedsV3.json +1 -1
  120. package/build/contracts/WitPriceFeedsV3Upgradable.json +17 -2
  121. package/build/contracts/WitPythChainlinkAggregator.json +1 -1
  122. package/build/contracts/WitRandomness.json +8 -2
  123. package/build/contracts/WitRandomnessLegacy.json +1 -1
  124. package/build/contracts/WitRandomnessV3.json +8 -2
  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 +13 -2
  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 +9 -2
  134. package/build/contracts/WitnetUpgradableBase.json +1 -1
  135. package/dist/dist/migrations/addresses.json +494 -0
  136. package/dist/dist/migrations/constructorArgs.json +310 -0
  137. package/dist/migrations/settings/networks.js +2 -2
  138. package/dist/src/bin/helpers.cjs +4 -4
  139. package/package.json +1 -1
  140. package/scripts/verify-truffle.cjs +2 -2
  141. package/src/bin/helpers.cjs +3 -3
@@ -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("../../migrations/addresses.json");
5
- const artifacts = require("../../migrations/settings/artifacts.js").default;
6
- const constructorArgs = require("../../migrations/constructorArgs.json");
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");
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,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
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/solidity",
3
- "version": "3.0.6",
3
+ "version": "3.0.7",
4
4
  "description": "Wit/Oracle Solidity Framework for EVM-compatible chains",
5
5
  "author": "Witnet Foundation <info@witnet.foundation>",
6
6
  "license": "MIT",
@@ -2,8 +2,8 @@
2
2
 
3
3
  const addresses = require("../migrations/addresses.json")
4
4
  const constructorArgs = require("../migrations/constructorArgs.json")
5
- const settings = require("../settings/index.js").default
6
- const utils = require("../src/utils.js").default
5
+ const settings = require("../migrations/settings/index.js").default
6
+ const utils = require("../migrations/scripts/utils.js").default
7
7
 
8
8
  const web3 = require("web3")
9
9
 
@@ -1,9 +1,9 @@
1
1
  const fs = require("node:fs")
2
2
  const merge = require("lodash.merge")
3
3
 
4
- const addresses = require("../../migrations/addresses.json")
5
- const artifacts = require("../../migrations/settings/artifacts.js").default
6
- const constructorArgs = require("../../migrations/constructorArgs.json")
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")
7
7
 
8
8
  const DEFAULT_BATCH_SIZE = 64
9
9
  const DEFAULT_LIMIT = 64