@superfluid-finance/ethereum-contracts 1.2.3-dev.f54cc8b.0 → 1.2.3-dev.f8cb3ec.0

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 (117) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/build/contracts/AccessControl.json +1 -1
  4. package/build/contracts/AccessControlEnumerable.json +1 -1
  5. package/build/contracts/Address.json +1 -1
  6. package/build/contracts/AgreementBase.json +9 -9
  7. package/build/contracts/AgreementLibrary.json +4 -4
  8. package/build/contracts/BaseRelayRecipient.json +1 -1
  9. package/build/contracts/BatchLiquidator.json +165 -165
  10. package/build/contracts/BatchOperation.json +1 -1
  11. package/build/contracts/CFAv1Library.json +4 -4
  12. package/build/contracts/CallUtils.json +1 -1
  13. package/build/contracts/ClosingOnUpdateFlowTestApp.json +4 -4
  14. package/build/contracts/ConstantFlowAgreementV1.json +5 -5
  15. package/build/contracts/Context.json +1 -1
  16. package/build/contracts/ContextDefinitions.json +1 -1
  17. package/build/contracts/Create2.json +1 -1
  18. package/build/contracts/CustomSuperTokenBase.json +2 -2
  19. package/build/contracts/ERC165.json +1 -1
  20. package/build/contracts/ERC1820Implementer.json +1 -1
  21. package/build/contracts/ERC1820RegistryCompiled.json +1 -1
  22. package/build/contracts/ERC20.json +1 -1
  23. package/build/contracts/ERC20Burnable.json +1 -1
  24. package/build/contracts/ERC20Pausable.json +1 -1
  25. package/build/contracts/ERC20PresetMinterPauser.json +1 -1
  26. package/build/contracts/ERC20WithTokenInfo.json +1 -1
  27. package/build/contracts/ERC777Helper.json +1 -1
  28. package/build/contracts/ERC777RecipientDrainingGas.json +4 -4
  29. package/build/contracts/ERC777RecipientReverting.json +4 -4
  30. package/build/contracts/EnumerableSet.json +1 -1
  31. package/build/contracts/ExclusiveInflowTestApp.json +4 -4
  32. package/build/contracts/FixedSizeData.json +1 -1
  33. package/build/contracts/FlowExchangeTestApp.json +4 -4
  34. package/build/contracts/FlowOperatorDefinitions.json +1 -1
  35. package/build/contracts/FullUpgradableSuperTokenProxy.json +4 -4
  36. package/build/contracts/IAccessControl.json +1 -1
  37. package/build/contracts/IAccessControlEnumerable.json +1 -1
  38. package/build/contracts/IConstantFlowAgreementV1.json +1 -1
  39. package/build/contracts/IDAv1Library.json +4 -4
  40. package/build/contracts/IERC165.json +1 -1
  41. package/build/contracts/IERC1820Implementer.json +1 -1
  42. package/build/contracts/IERC1820Registry.json +1 -1
  43. package/build/contracts/IERC20.json +1 -1
  44. package/build/contracts/IERC20Metadata.json +1 -1
  45. package/build/contracts/IERC777.json +1 -1
  46. package/build/contracts/IERC777Recipient.json +1 -1
  47. package/build/contracts/IERC777Sender.json +1 -1
  48. package/build/contracts/IInstantDistributionAgreementV1.json +1 -1
  49. package/build/contracts/IMaticBridgedNativeSuperToken.json +2 -2
  50. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +2 -2
  51. package/build/contracts/IMultiSigWallet.json +1 -1
  52. package/build/contracts/IPureSuperToken.json +2 -2
  53. package/build/contracts/IPureSuperTokenCustom.json +2 -2
  54. package/build/contracts/IRelayRecipient.json +1 -1
  55. package/build/contracts/IResolver.json +1 -1
  56. package/build/contracts/ISETH.json +2 -2
  57. package/build/contracts/ISETHCustom.json +2 -2
  58. package/build/contracts/ISuperAgreement.json +1 -1
  59. package/build/contracts/ISuperApp.json +2 -2
  60. package/build/contracts/ISuperToken.json +2 -2
  61. package/build/contracts/ISuperTokenFactory.json +2 -2
  62. package/build/contracts/ISuperfluid.json +425 -418
  63. package/build/contracts/ISuperfluidGovernance.json +2 -2
  64. package/build/contracts/ISuperfluidToken.json +1 -1
  65. package/build/contracts/ITOGAv1.json +1208 -1208
  66. package/build/contracts/ITOGAv2.json +1208 -1208
  67. package/build/contracts/Initializable.json +1 -1
  68. package/build/contracts/InstantDistributionAgreementV1.json +5 -5
  69. package/build/contracts/Int96SafeMath.json +1 -1
  70. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +191 -191
  71. package/build/contracts/NonClosableOutflowTestApp.json +4 -4
  72. package/build/contracts/Ownable.json +1 -1
  73. package/build/contracts/Pausable.json +1 -1
  74. package/build/contracts/Proxy.json +1 -1
  75. package/build/contracts/PureSuperToken.json +88 -88
  76. package/build/contracts/Resolver.json +90 -90
  77. package/build/contracts/SETHProxy.json +196 -196
  78. package/build/contracts/SafeCast.json +1 -1
  79. package/build/contracts/SafeERC20.json +1 -1
  80. package/build/contracts/SafeMath.json +1 -1
  81. package/build/contracts/SelfDeletingFlowTestApp.json +4 -4
  82. package/build/contracts/SlotsBitmapLibrary.json +1 -1
  83. package/build/contracts/Strings.json +1 -1
  84. package/build/contracts/SuperAppBase.json +2 -2
  85. package/build/contracts/SuperAppDefinitions.json +1 -1
  86. package/build/contracts/SuperToken.json +46 -46
  87. package/build/contracts/SuperTokenFactory.json +35 -35
  88. package/build/contracts/SuperTokenFactoryBase.json +33 -33
  89. package/build/contracts/SuperTokenFactoryHelper.json +35 -35
  90. package/build/contracts/SuperUpgrader.json +422 -422
  91. package/build/contracts/Superfluid.json +5488 -5454
  92. package/build/contracts/SuperfluidFrameworkDeployer.json +472 -472
  93. package/build/contracts/SuperfluidGovernanceBase.json +9 -9
  94. package/build/contracts/SuperfluidGovernanceConfigs.json +1 -1
  95. package/build/contracts/SuperfluidGovernanceII.json +17 -17
  96. package/build/contracts/SuperfluidGovernanceIIProxy.json +17 -17
  97. package/build/contracts/SuperfluidLoader.json +144 -144
  98. package/build/contracts/SuperfluidToken.json +1217 -1217
  99. package/build/contracts/TOGA.json +1218 -1218
  100. package/build/contracts/TestGovernance.json +171 -171
  101. package/build/contracts/TestToken.json +94 -94
  102. package/build/contracts/TokenCustodian.json +214 -214
  103. package/build/contracts/TokenInfo.json +1 -1
  104. package/build/contracts/UInt128SafeMath.json +1 -1
  105. package/build/contracts/UUPSProxiable.json +132 -132
  106. package/build/contracts/UUPSProxy.json +81 -81
  107. package/build/contracts/UUPSUtils.json +37 -37
  108. package/build/contracts-sizes.txt +7 -7
  109. package/contracts/interfaces/superfluid/ISuperfluid.sol +14 -6
  110. package/contracts/superfluid/Superfluid.sol +12 -10
  111. package/package.json +2 -2
  112. package/scripts/{deploy-unlisted-native-super-token.js → deploy-unlisted-pure-super-token.js} +4 -4
  113. package/scripts/gov-transfer-framework-ownership.js +3 -3
  114. package/scripts/libs/getConfig.js +3 -3
  115. package/utils/README.md +19 -1
  116. package/utils/stream-closer.html +212 -0
  117. package/utils/supertoken-deployer.html +1 -1
@@ -21,9 +21,9 @@
21
21
  "type": "function"
22
22
  }
23
23
  ],
24
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"logic\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/superfluid/SuperTokenFactory.sol\":\"SuperTokenFactoryHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0x0edeb16b9821ae2b16e9d69c383b38d3ad2fbb3e0c06cf809a0786d96e602551\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88adc865fb1bd8dab4c58096e1d5887713f62c0405f8d2d17294727a8f43d8f7\",\"dweb:/ipfs/QmUJ27zsjxCatfoTFWho4k4qdhuBTorMqLuJzWqUX4Sdmg\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol\":{\"keccak256\":\"0x1a5d61db2733202ba361e6d6741cd2e662380e22b80e987eacfc91973f2267dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04c0cd697050a6516b7779aa2343ad2d0e5217d8915ac2382681dfdf4e445be3\",\"dweb:/ipfs/QmPCBCZgm7pHBwwogE2F9NCN3UfTdLNhqc8UDEvw8kDzyA\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Sender.sol\":{\"keccak256\":\"0x742e51d63b108240759794360637468d9fcbf072cbd357744790d356a87bb382\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23912910ce2bb68e49ff83f43fcfa864210ee44580491e876db14922f8aecc18\",\"dweb:/ipfs/QmU6GnRQ51xvY8D57kPCV47oGeYozaz5AQZUCHxFfXdFZ4\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xebe3f8a59f0f1c96344a05edb984ef666ee4207e993cca99af3808f1de8771b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db23062a52185cf06ad4202be0bfa4c7718c4b75f4526aeb456620ff2e737d4\",\"dweb:/ipfs/QmXtWdePeH6xpXf175YcnbwjsuLp35k6JxX8CjHzvHiyAi\"]},\"@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol\":{\"keccak256\":\"0x6e306f9ab28416a9e5931f0b6e264676e8ac68fad184f9a9d8bb125c6ec23bc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd7fe961c914caa1fcc8223d446c1582aec4f2a32d2f06cf09c938b72cf8ce11\",\"dweb:/ipfs/QmPfEfqtUh9SA86br28HfmMyVSBe22B3oPwF8iACCF4evY\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x5c6caab697d302ad7eb59c234a4d2dbc965c1bae87709bd2850060b7695b28c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb62abcee612c175f1b9bc70e5dfe5bd23473c99987ade6e80e291f68dc60ff1\",\"dweb:/ipfs/QmZCMajhG7FtRYNDwBchXN89mXR6HLPVzr9732qfUdNf9E\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0xa2f576be637946f767aa56601c26d717f48a0aff44f82e46f13807eea1009a21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://973868f808e88e21a1a0a01d4839314515ee337ad096286c88e41b74dcc11fc2\",\"dweb:/ipfs/QmfYuZxRfx2J2xdk4EXN7jKg4bUYEMTaYk9BAw9Bqn4o2Y\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0xc1007d1082050b532947d27973bf996da2b0df9bdf6ed4d4fcaaa3ff2354262c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2d22da1d2140b1ed3964ddc62d3a38e9a24a8814c18ffe496f0fbce5afef5ea0\",\"dweb:/ipfs/QmYxVnaU87HSaQktkqCZZBFj3MgphgFsZMrMLXLeZLzrvR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/libs/ERC777Helper.sol\":{\"keccak256\":\"0x5db4d5e987d0659d5fd915e9823359141ad3d9d5796e50ae98756bccc86ea9d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2a4e7413e6539cffc1ea0807f05ac49fea8ebc258a9d76b72bade12a0c143075\",\"dweb:/ipfs/QmTsrsMe3bcwB4JnfPAiG1bNvEdTAVFTSyVBKQALVuLMWy\"]},\"project:/contracts/libs/FixedSizeData.sol\":{\"keccak256\":\"0xbb3de3fbf919ef59b6890063847904d2824d7a0da63ff486d97a19eb8f4241f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://23a9d841867cbe1da4487d78929cc994352c22c9113840f98c15f0870b612f6f\",\"dweb:/ipfs/QmS7tZMw2itiie8BPosFiwmZy8TUipHUbzpEAf66SficGL\"]},\"project:/contracts/superfluid/FullUpgradableSuperTokenProxy.sol\":{\"keccak256\":\"0x8351cd8c965160f68ab2b5ffde063d1457d3f51c179a7c1081547a60d856bc3c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://152dc489a518ac6f9b90b42c52faebc0cbb7479516c606b8ca3b7f7c63945717\",\"dweb:/ipfs/QmW5Q5K3zqsFmcRXA3FMsoom76tYuHUF9pZLvZYZGynnxe\"]},\"project:/contracts/superfluid/SuperToken.sol\":{\"keccak256\":\"0xcaa50b4f7c92fd51a483f31d9869d7ad4a8b11d0fb7564eca1859434a18ba429\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5311245d23b5e6359a95a9b62ca047f6bdcb82b68c309aaf44d7852c6af7ff96\",\"dweb:/ipfs/QmNvbjHfENCwJVprouTgDS1M7J2PTyuuuKshKtAnjWEjAJ\"]},\"project:/contracts/superfluid/SuperTokenFactory.sol\":{\"keccak256\":\"0x3cb80ed9391959d9d79cc06f95071b00dee5b07e28fc0a75e7d6338b40ebddbb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://8d589a8000d2b57865d0ca3f9d2342971003eff476e3aeb1fcd36c903cde429b\",\"dweb:/ipfs/QmSdbmi2TCLKBqNvHBEfsdujSFa6ievkqHkKjLX2B5QbQ5\"]},\"project:/contracts/superfluid/SuperfluidToken.sol\":{\"keccak256\":\"0x10158d04d399c5cdcfba45161d8241924b21cda4301f6f5f9f019c21f2647da0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://983f259f440910fdb8fa8a3d8c990e99982e7865b4d97f36ba9f24287d485fdf\",\"dweb:/ipfs/QmdYnYuPwmYWzBoNgP4pN4kKCqBm2oDRJUfpSFhFtaRtii\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0x5f50cec21a585dab7b59545aeb51735f36e3222e4b0768370be8d46373d0ef05\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://acdd57d81b5b2d346da335636baf1e37da3d31cf2eef58af493e43bc65a27414\",\"dweb:/ipfs/QmTepRBNAfRBXVDBM37ME1jpw1YgcseVehC17sWpEYeFDc\"]},\"project:/contracts/upgradability/UUPSProxy.sol\":{\"keccak256\":\"0x1164a0047c0600d162060fc9ea72a5e50779a9ccd28143fa4a984f5a635493cc\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1205e5b16fd67b2bf99bb917175d0bd1caaa1509d3f4a4f3c8184e8c40c564ef\",\"dweb:/ipfs/Qme96cpfG4LNjdA44H2CZP3zYT73XEtRZMXpBGMTDjtFVf\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xffec084e77ce3c0b595f0612687242f3d8b7a84cab15e5650c17428ee48d0b5b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://be0183816467872b053562d9a737042ac3a91ea67e3c74e03de5db7226f3e73b\",\"dweb:/ipfs/QmUyi4YXh1T7MExbrLwZ6rAdXTPChF8q27YpZxxniR6CHM\"]}},\"version\":1}",
25
- "bytecode": "0x608060405234801561001057600080fd5b50614a03806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6148ef806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620048ef380380620048ef833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516147f2620000fd600039600081816103f701528181610a8101528181610aef01528181610b8501528181610c1c01528181610e7101528181610fcb0152818161109a015281816112b1015281816113ff015281816115930152818161187a0152818161193c015281816119c3015281816132f7015261357701526147f26000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b6040516103419190613856565b60405180910390f35b6103526107ca565b60405161034191906138fb565b61037261036d36600461396e565b61085c565b005b6103876103823660046139c9565b610910565b6040519015158152602001610341565b6103726103a53660046139f5565b610927565b6103726103b8366004613a0e565b610955565b6103726103cb366004613a59565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613b6d565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613bff565b610e57565b6103726104503660046139c9565b610e6f565b610372610463366004613c40565b610ee6565b61047b610476366004613c62565b610fc3565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613c62565b611066565b6103876104cb3660046139c9565b611109565b6103726104de366004613a59565b611145565b6103726104f1366004613cc0565b611170565b6103726105043660046139f5565b61127a565b610372610517366004613c62565b6112a6565b61052f61052a366004613d5a565b611335565b6040516103419190613da0565b61041761137a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613dd8565b6113a4565b610372610592366004613bff565b6113fd565b6103726105a5366004613e27565b611455565b6103726105b8366004613bff565b611502565b61052f6105cb366004613ec5565b611521565b6103d46105de366004613c62565b611563565b6103876105f1366004613c62565b61158b565b610372610604366004613c62565b611613565b610352611664565b61037261061f366004613dd8565b611673565b610372610632366004613efa565b6116c7565b610372610645366004613a0e565b611706565b610372610658366004613c62565b6117b0565b61038761066b3660046139c9565b6117c4565b61038761067e3660046139c9565b611813565b6103876106913660046139c9565b611821565b6103876106a4366004613c62565b611872565b6103726106b7366004613efa565b6118fa565b6103726106ca3660046139c9565b61193a565b6103726106dd3660046139c9565b6119ae565b6103876106f0366004613f52565b611a96565b6103876107033660046139c9565b611aa4565b6103d4610716366004613f52565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f3660046139c9565b611abe565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613c62565b611bfa565b6103726107a1366004613f8b565b611c4b565b6103726107b4366004613fd2565b611cea565b60606107c56012611d3a565b905090565b6060600f80546107d990614010565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614010565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60003385856040516020016108739392919061404a565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611de1565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611f08565b50565b604051339060009061096d9083908790602001614093565b60408051601f198184030181529190528051602090910120905061099181846120ef565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a70939291906140d0565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614114565b610ad38484848461212b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061415f565b610b7e5760405162461bcd60e51b81526004016109ed9061417c565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906141c3565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906141c3565b9250829150506001600160a01b038116610cd7578691505b8515610d2757610ce684612249565b6001600160a01b038316600090815260026020526040902054610d0991906141f6565b6001600160a01b038316600090815260026020526040902055610dbd565b610d3084612249565b6001600160a01b038816600090815260026020526040902054610d5391906141f6565b6001600160a01b03881660009081526002602052604090205582610d7685612249565b6001600160a01b038416600090815260026020526040902054610d999190614237565b610da39190614237565b6001600160a01b0383166000908152600260205260409020555b6001600160a01b038516600090815260026020526040902054610de19084906141f6565b6001600160a01b038087166000818152600260205260409020929092558816337fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8a610e2e578b610e30565b865b89898f604051610e44959493929190614276565b60405180910390a4505050505050505050565b6000610e653385858561212b565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610eb75760405162461bcd60e51b81526004016109ed90614114565b610ee23383836040518060200160405280600081525060405180602001604052806000815250611f08565b5050565b6040513390600090610efe9083908690602001614093565b604051602081830303815290604052805190602001209050610f2081846120ef565b610f7e5760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610f8881846122b7565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906142a9565b90506110578582611abe565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092191908101906142c2565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d918590611140908690614373565b611de1565b3330146111645760405162461bcd60e51b81526004016109ed9061438b565b610ad38385848461212b565b600054610100900460ff1661118b5760005460ff161561118f565b303b155b6111f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611214576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055611248600f86866137c6565b50611255601084846137c6565b5061125f306122d8565b8015611271576000805461ff00191690555b50505050505050565b610952333333846040518060200160405280600081525060405180602001604052806000815250612406565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132c5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b61095281612609565b6060600085858560405160200161134e9392919061404a565b6040516020818303038152906040528051906020012090506113708184612849565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6113f7333386866040518060200160405280600081525087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146114455760405162461bcd60e51b81526004016109ed90614114565b611450838383611de1565b505050565b336114626012828a6128d8565b61147e5760405162461bcd60e51b81526004016109ed906143c2565b6114f88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612981915050565b5050505050505050565b3330146114455760405162461bcd60e51b81526004016109ed9061438b565b606060008484604051602001611538929190614093565b60405160208183030381529060405280519060200120905061155a8184612849565b95945050505050565b60008061156f83610fc3565b5050509050600081126115825780610e68565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070391906142a9565b33611620601282846129f8565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614010565b6113f73333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506129819050565b3330146116e65760405162461bcd60e51b81526004016109ed9061438b565b604080516000815260208101909152611450903390859085908590612afc565b604051339060009061171e9083908790602001614093565b60405160208183030381529060405280519060200120905061177381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a70939291906140d0565b610ee23333836117bf33611563565b61212b565b600061091d3384611140856040518060600160405280602a8152602001614766602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c03565b6000610e683333858561212b565b6000806000806118318686611abe565b925092509250600061185982841161184a576000612249565b6118548385614412565b612249565b61186390856141f6565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069191906142a9565b3330146119195760405162461bcd60e51b81526004016109ed9061438b565b60408051600080825260208201909252611450913391869186918690612c2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146119825760405162461bcd60e51b81526004016109ed90614114565b610ee2338384846040518060200160405280600081525060405180602001604052806000815250612406565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a36919061415f565b611a525760405162461bcd60e51b81526004016109ed9061417c565b6001600160a01b038216600090815260026020526040902054611a769082906141f6565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610e68601284846128d8565b600080611ab18484611abe565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611ae386611066565b905060005b8151811015611bf1576000806000848481518110611b0857611b08614429565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b919061443f565b91945092509050611b9c8288614373565b9650611ba88187614373565b9550611bc5818311611bbb576000612249565b6118548284614412565b611bcf848a6141f6565b611bd99190614237565b97505050508080611be99061446d565b915050611ae8565b50509250925092565b33611c0760128284612d38565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611c58601282896128d8565b611c745760405162461bcd60e51b81526004016109ed906143c2565b61127181888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611f0892505050565b61145033338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611f08915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611d9457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d76575b50505050509050919050565b60005b8151811015611450576000828281518110611dc057611dc0614429565b6020026020010151905080828501555080611dda9061446d565b9050611da3565b6001600160a01b038316611e455760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611ea75760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b0316611f605760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611f6c85612e30565b91509150611f7d8787838787612afc565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea91906142a9565b600e54909150612004906001600160a01b03168885612eec565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207191906142a9565b9050600061207f8284614412565b90508085146120a05760405162461bcd60e51b81526004016109ed90614486565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516120db91815260200190565b60405180910390a250505050505050505050565b6000805b828110156121215783810154801561211057600192505050610921565b5061211a8161446d565b90506120f3565b5060009392505050565b60006001600160a01b0384166121535760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0383166121795760405162461bcd60e51b81526004016109ed90614529565b60003390506121aa818686866040518060200160405280600081525060405180602001604052806000815250612f4f565b846001600160a01b0316866001600160a01b03161461223d5761223d8587611140866040518060600160405280602d8152602001614790602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c039092919063ffffffff16565b50600195945050505050565b60006001600160ff1b038211156122b35760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b60005b81811015611450576000838201556122d18161446d565b90506122ba565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156123f257600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b031661245e5760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061246a85612e30565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156124bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124df91906142a9565b600e549091506124fa906001600160a01b0316893086613000565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256791906142a9565b905060006125758383614412565b90508085146125965760405162461bcd60e51b81526004016109ed90614486565b6125b98b8a868c6001600160a01b03168e6001600160a01b031614158b8b612c2f565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516125f491815260200190565b60405180910390a25050505050505050505050565b60006126337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036126895760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb91906142a9565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146127655760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036127bd5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b6127e5817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b0381111561286357612863613aaa565b60405190808252806020026020018201604052801561288c578160200160208202803683370190505b50905060005b828110156128d1576000818501549050808383815181106128b5576128b5614429565b6020908102919091010152506128ca8161446d565b9050612892565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061294757506001600160a01b038316600090815260018501602052604090205460ff16801561294757506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610e6557506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166129a75760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0385166129cd5760405162461bcd60e51b81526004016109ed90614529565b6129db878787878787613038565b6129e9878787878787612f4f565b6112718787878787878761315f565b806001600160a01b0316826001600160a01b031603612a6f5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612ac5576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612b5d5760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612b6c85856000868686613038565b612b7684846132ef565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612bbd9392919061456d565b60405180910390a36040518381526000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610901565b60008184841115612c275760405162461bcd60e51b81526004016109ed91906138fb565b505050900390565b6001600160a01b038516612c855760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612c8f8585613443565b612c9f866000878786868961315f565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612ce69392919061456d565b60405180910390a36040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050505050565b336001600160a01b03821603612da35760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612dfd576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612e8f57600e54612e6590600160a01b900460ff166012614598565b612e7090600a61469f565b9050612e7c81856146ae565b9250612e8881846146d0565b9150612ee6565b600e546012600160a01b90910460ff161115612edf57600e54612ebe90601290600160a01b900460ff16614598565b612ec990600a61469f565b9050612ed581856146d0565b9250839150612ee6565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261145090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261349d565b612f628585612f5d86612249565b61356f565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051612fb39392919061456d565b60405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612d2891815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113f79085906323b872dd60e01b90608401612f18565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156130b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130dd91906141c3565b90506001600160a01b0381161561127157604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613124908a908a908a908a908a908a906004016146ef565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156131e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320491906141c3565b90506001600160a01b03811615613280576040516223de2960e01b81526001600160a01b038216906223de2990613249908b908b908b908b908b908b906004016146ef565b600060405180830381600087803b15801561326357600080fd5b505af1158015613277573d6000803e3d6000fd5b505050506114f8565b81156114f8576001600160a01b0386163b156114f85760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b6000613377837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906142a9565b5050905061338482612249565b8112156133e85760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6133f182612249565b6001600160a01b0384166000908152600260205260409020546134149190614237565b6001600160a01b03841660009081526002602052604090205560035461343b908390614412565b600355505050565b61344c81612249565b6001600160a01b03831660009081526002602052604090205461346f91906141f6565b6001600160a01b038316600090815260026020526040902055600354613496908290614373565b6003555050565b60006134f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136b29092919063ffffffff16565b8051909150156114505780806020019051810190613510919061415f565b6114505760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b60006135d3847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505090508181121561363c5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b038416600090815260026020526040902054613660908390614237565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136909083906141f6565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610e658484600085856001600160a01b0385163b6137145760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b031685876040516137309190614749565b60006040518083038185875af1925050503d806000811461376d576040519150601f19603f3d011682016040523d82523d6000602084013e613772565b606091505b509150915061378282828661378d565b979650505050505050565b6060831561379c575081610e68565b8251156137ac5782518084602001fd5b8160405162461bcd60e51b81526004016109ed91906138fb565b8280546137d290614010565b90600052602060002090601f0160209004810192826137f4576000855561383a565b82601f1061380d5782800160ff1982351617855561383a565b8280016001018555821561383a579182015b8281111561383a57823582559160200191906001019061381f565b506122b39291505b808211156122b35760008155600101613842565b6020808252825182820181905260009190848201906040850190845b818110156138975783516001600160a01b031683529284019291840191600101613872565b50909695505050505050565b60005b838110156138be5781810151838201526020016138a6565b838111156113f75750506000910152565b600081518084526138e78160208601602086016138a3565b601f01601f19169290920160200192915050565b602081526000610e6860208301846138cf565b6001600160a01b038116811461095257600080fd5b60008083601f84011261393557600080fd5b5081356001600160401b0381111561394c57600080fd5b6020830191508360208260051b850101111561396757600080fd5b9250929050565b6000806000806060858703121561398457600080fd5b843561398f8161390e565b93506020850135925060408501356001600160401b038111156139b157600080fd5b6139bd87828801613923565b95989497509550505050565b600080604083850312156139dc57600080fd5b82356139e78161390e565b946020939093013593505050565b600060208284031215613a0757600080fd5b5035919050565b600080600060408486031215613a2357600080fd5b8335925060208401356001600160401b03811115613a4057600080fd5b613a4c86828701613923565b9497909650939450505050565b60008060008060808587031215613a6f57600080fd5b8435613a7a8161390e565b93506020850135613a8a8161390e565b92506040850135613a9a8161390e565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae857613ae8613aaa565b604052919050565b600082601f830112613b0157600080fd5b81356001600160401b03811115613b1a57613b1a613aaa565b613b2d601f8201601f1916602001613ac0565b818152846020838601011115613b4257600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613b8857600080fd5b8735965060208801356001600160401b03811115613ba557600080fd5b613bb18a828b01613af0565b9650506040880135613bc28161390e565b94506060880135613bd281613b5f565b93506080880135613be28161390e565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c1457600080fd5b8335613c1f8161390e565b92506020840135613c2f8161390e565b929592945050506040919091013590565b60008060408385031215613c5357600080fd5b50508035926020909101359150565b600060208284031215613c7457600080fd5b8135610e688161390e565b60008083601f840112613c9157600080fd5b5081356001600160401b03811115613ca857600080fd5b60208301915083602082850101111561396757600080fd5b60008060008060008060808789031215613cd957600080fd5b8635613ce48161390e565b9550602087013560ff81168114613cfa57600080fd5b945060408701356001600160401b0380821115613d1657600080fd5b613d228a838b01613c7f565b90965094506060890135915080821115613d3b57600080fd5b50613d4889828a01613c7f565b979a9699509497509295939492505050565b60008060008060808587031215613d7057600080fd5b8435613d7b8161390e565b93506020850135613d8b8161390e565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561389757835183529284019291840191600101613dbc565b60008060008060608587031215613dee57600080fd5b8435613df98161390e565b93506020850135925060408501356001600160401b03811115613e1b57600080fd5b6139bd87828801613c7f565b600080600080600080600060a0888a031215613e4257600080fd5b8735613e4d8161390e565b96506020880135613e5d8161390e565b95506040880135945060608801356001600160401b0380821115613e8057600080fd5b613e8c8b838c01613c7f565b909650945060808a0135915080821115613ea557600080fd5b50613eb28a828b01613c7f565b989b979a50959850939692959293505050565b600080600060608486031215613eda57600080fd5b8335613ee58161390e565b95602085013595506040909401359392505050565b600080600060608486031215613f0f57600080fd5b8335613f1a8161390e565b92506020840135915060408401356001600160401b03811115613f3c57600080fd5b613f4886828701613af0565b9150509250925092565b60008060408385031215613f6557600080fd5b8235613f708161390e565b91506020830135613f808161390e565b809150509250929050565b60008060008060008060808789031215613fa457600080fd5b8635613faf8161390e565b95506020870135945060408701356001600160401b0380821115613d1657600080fd5b600080600060408486031215613fe757600080fd5b8335925060208401356001600160401b0381111561400457600080fd5b613a4c86828701613c7f565b600181811c9082168061402457607f821691505b60208210810361404457634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156140f757600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b60006020828403121561417157600080fd5b8151610e6881613b5f565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b6000602082840312156141d557600080fd5b8151610e688161390e565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b0384900385131615614218576142186141e0565b600160ff1b8390038412811615614231576142316141e0565b50500190565b60008083128015600160ff1b850184121615614255576142556141e0565b6001600160ff1b0384018313811615614270576142706141e0565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061378260a08301846138cf565b6000602082840312156142bb57600080fd5b5051919050565b600060208083850312156142d557600080fd5b82516001600160401b03808211156142ec57600080fd5b818501915085601f83011261430057600080fd5b81518181111561431257614312613aaa565b8060051b9150614323848301613ac0565b818152918301840191848101908884111561433d57600080fd5b938501935b8385101561436757845192506143578361390e565b8282529385019390850190614342565b98975050505050505050565b60008219821115614386576143866141e0565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b600082821015614424576144246141e0565b500390565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561445457600080fd5b8351925060208401519150604084015190509250925092565b60006001820161447f5761447f6141e0565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b83815260606020820152600061458660608301856138cf565b828103604084015261137081856138cf565b600060ff821660ff8416808210156145b2576145b26141e0565b90039392505050565b600181815b808511156145f65781600019048211156145dc576145dc6141e0565b808516156145e957918102915b93841c93908002906145c0565b509250929050565b60008261460d57506001610921565b8161461a57506000610921565b8160018114614630576002811461463a57614656565b6001915050610921565b60ff84111561464b5761464b6141e0565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614679575081810a610921565b61468383836145bb565b8060001904821115614697576146976141e0565b029392505050565b6000610e6860ff8416836145fe565b6000826146cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156146ea576146ea6141e0565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061472a908301856138cf565b82810360a084015261473c81856138cf565b9998505050505050505050565b6000825161475b8184602087016138a3565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d87e53c8441fe86e64bb3c205f08d2fb2931367f0e12803dacef022eefd3b8964736f6c634300080d0033a2646970667358221220ec49360a8f9e56f6049f45b090f1cbd07698990b9ed784e07b42f5872658d5d064736f6c634300080d0033",
26
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6148ef806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620048ef380380620048ef833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516147f2620000fd600039600081816103f701528181610a8101528181610aef01528181610b8501528181610c1c01528181610e7101528181610fcb0152818161109a015281816112b1015281816113ff015281816115930152818161187a0152818161193c015281816119c3015281816132f7015261357701526147f26000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b6040516103419190613856565b60405180910390f35b6103526107ca565b60405161034191906138fb565b61037261036d36600461396e565b61085c565b005b6103876103823660046139c9565b610910565b6040519015158152602001610341565b6103726103a53660046139f5565b610927565b6103726103b8366004613a0e565b610955565b6103726103cb366004613a59565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613b6d565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613bff565b610e57565b6103726104503660046139c9565b610e6f565b610372610463366004613c40565b610ee6565b61047b610476366004613c62565b610fc3565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613c62565b611066565b6103876104cb3660046139c9565b611109565b6103726104de366004613a59565b611145565b6103726104f1366004613cc0565b611170565b6103726105043660046139f5565b61127a565b610372610517366004613c62565b6112a6565b61052f61052a366004613d5a565b611335565b6040516103419190613da0565b61041761137a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613dd8565b6113a4565b610372610592366004613bff565b6113fd565b6103726105a5366004613e27565b611455565b6103726105b8366004613bff565b611502565b61052f6105cb366004613ec5565b611521565b6103d46105de366004613c62565b611563565b6103876105f1366004613c62565b61158b565b610372610604366004613c62565b611613565b610352611664565b61037261061f366004613dd8565b611673565b610372610632366004613efa565b6116c7565b610372610645366004613a0e565b611706565b610372610658366004613c62565b6117b0565b61038761066b3660046139c9565b6117c4565b61038761067e3660046139c9565b611813565b6103876106913660046139c9565b611821565b6103876106a4366004613c62565b611872565b6103726106b7366004613efa565b6118fa565b6103726106ca3660046139c9565b61193a565b6103726106dd3660046139c9565b6119ae565b6103876106f0366004613f52565b611a96565b6103876107033660046139c9565b611aa4565b6103d4610716366004613f52565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f3660046139c9565b611abe565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613c62565b611bfa565b6103726107a1366004613f8b565b611c4b565b6103726107b4366004613fd2565b611cea565b60606107c56012611d3a565b905090565b6060600f80546107d990614010565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614010565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60003385856040516020016108739392919061404a565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611de1565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611f08565b50565b604051339060009061096d9083908790602001614093565b60408051601f198184030181529190528051602090910120905061099181846120ef565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a70939291906140d0565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614114565b610ad38484848461212b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061415f565b610b7e5760405162461bcd60e51b81526004016109ed9061417c565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906141c3565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906141c3565b9250829150506001600160a01b038116610cd7578691505b8515610d2757610ce684612249565b6001600160a01b038316600090815260026020526040902054610d0991906141f6565b6001600160a01b038316600090815260026020526040902055610dbd565b610d3084612249565b6001600160a01b038816600090815260026020526040902054610d5391906141f6565b6001600160a01b03881660009081526002602052604090205582610d7685612249565b6001600160a01b038416600090815260026020526040902054610d999190614237565b610da39190614237565b6001600160a01b0383166000908152600260205260409020555b6001600160a01b038516600090815260026020526040902054610de19084906141f6565b6001600160a01b038087166000818152600260205260409020929092558816337fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8a610e2e578b610e30565b865b89898f604051610e44959493929190614276565b60405180910390a4505050505050505050565b6000610e653385858561212b565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610eb75760405162461bcd60e51b81526004016109ed90614114565b610ee23383836040518060200160405280600081525060405180602001604052806000815250611f08565b5050565b6040513390600090610efe9083908690602001614093565b604051602081830303815290604052805190602001209050610f2081846120ef565b610f7e5760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610f8881846122b7565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906142a9565b90506110578582611abe565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092191908101906142c2565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d918590611140908690614373565b611de1565b3330146111645760405162461bcd60e51b81526004016109ed9061438b565b610ad38385848461212b565b600054610100900460ff1661118b5760005460ff161561118f565b303b155b6111f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611214576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055611248600f86866137c6565b50611255601084846137c6565b5061125f306122d8565b8015611271576000805461ff00191690555b50505050505050565b610952333333846040518060200160405280600081525060405180602001604052806000815250612406565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132c5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b61095281612609565b6060600085858560405160200161134e9392919061404a565b6040516020818303038152906040528051906020012090506113708184612849565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6113f7333386866040518060200160405280600081525087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146114455760405162461bcd60e51b81526004016109ed90614114565b611450838383611de1565b505050565b336114626012828a6128d8565b61147e5760405162461bcd60e51b81526004016109ed906143c2565b6114f88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612981915050565b5050505050505050565b3330146114455760405162461bcd60e51b81526004016109ed9061438b565b606060008484604051602001611538929190614093565b60405160208183030381529060405280519060200120905061155a8184612849565b95945050505050565b60008061156f83610fc3565b5050509050600081126115825780610e68565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070391906142a9565b33611620601282846129f8565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614010565b6113f73333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506129819050565b3330146116e65760405162461bcd60e51b81526004016109ed9061438b565b604080516000815260208101909152611450903390859085908590612afc565b604051339060009061171e9083908790602001614093565b60405160208183030381529060405280519060200120905061177381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a70939291906140d0565b610ee23333836117bf33611563565b61212b565b600061091d3384611140856040518060600160405280602a8152602001614766602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c03565b6000610e683333858561212b565b6000806000806118318686611abe565b925092509250600061185982841161184a576000612249565b6118548385614412565b612249565b61186390856141f6565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069191906142a9565b3330146119195760405162461bcd60e51b81526004016109ed9061438b565b60408051600080825260208201909252611450913391869186918690612c2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146119825760405162461bcd60e51b81526004016109ed90614114565b610ee2338384846040518060200160405280600081525060405180602001604052806000815250612406565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a36919061415f565b611a525760405162461bcd60e51b81526004016109ed9061417c565b6001600160a01b038216600090815260026020526040902054611a769082906141f6565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610e68601284846128d8565b600080611ab18484611abe565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611ae386611066565b905060005b8151811015611bf1576000806000848481518110611b0857611b08614429565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b919061443f565b91945092509050611b9c8288614373565b9650611ba88187614373565b9550611bc5818311611bbb576000612249565b6118548284614412565b611bcf848a6141f6565b611bd99190614237565b97505050508080611be99061446d565b915050611ae8565b50509250925092565b33611c0760128284612d38565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611c58601282896128d8565b611c745760405162461bcd60e51b81526004016109ed906143c2565b61127181888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611f0892505050565b61145033338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611f08915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611d9457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d76575b50505050509050919050565b60005b8151811015611450576000828281518110611dc057611dc0614429565b6020026020010151905080828501555080611dda9061446d565b9050611da3565b6001600160a01b038316611e455760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611ea75760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b0316611f605760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611f6c85612e30565b91509150611f7d8787838787612afc565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea91906142a9565b600e54909150612004906001600160a01b03168885612eec565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207191906142a9565b9050600061207f8284614412565b90508085146120a05760405162461bcd60e51b81526004016109ed90614486565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516120db91815260200190565b60405180910390a250505050505050505050565b6000805b828110156121215783810154801561211057600192505050610921565b5061211a8161446d565b90506120f3565b5060009392505050565b60006001600160a01b0384166121535760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0383166121795760405162461bcd60e51b81526004016109ed90614529565b60003390506121aa818686866040518060200160405280600081525060405180602001604052806000815250612f4f565b846001600160a01b0316866001600160a01b03161461223d5761223d8587611140866040518060600160405280602d8152602001614790602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c039092919063ffffffff16565b50600195945050505050565b60006001600160ff1b038211156122b35760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b60005b81811015611450576000838201556122d18161446d565b90506122ba565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156123f257600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b031661245e5760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061246a85612e30565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156124bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124df91906142a9565b600e549091506124fa906001600160a01b0316893086613000565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256791906142a9565b905060006125758383614412565b90508085146125965760405162461bcd60e51b81526004016109ed90614486565b6125b98b8a868c6001600160a01b03168e6001600160a01b031614158b8b612c2f565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516125f491815260200190565b60405180910390a25050505050505050505050565b60006126337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036126895760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb91906142a9565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146127655760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036127bd5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b6127e5817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b0381111561286357612863613aaa565b60405190808252806020026020018201604052801561288c578160200160208202803683370190505b50905060005b828110156128d1576000818501549050808383815181106128b5576128b5614429565b6020908102919091010152506128ca8161446d565b9050612892565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061294757506001600160a01b038316600090815260018501602052604090205460ff16801561294757506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610e6557506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166129a75760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0385166129cd5760405162461bcd60e51b81526004016109ed90614529565b6129db878787878787613038565b6129e9878787878787612f4f565b6112718787878787878761315f565b806001600160a01b0316826001600160a01b031603612a6f5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612ac5576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612b5d5760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612b6c85856000868686613038565b612b7684846132ef565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612bbd9392919061456d565b60405180910390a36040518381526000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610901565b60008184841115612c275760405162461bcd60e51b81526004016109ed91906138fb565b505050900390565b6001600160a01b038516612c855760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612c8f8585613443565b612c9f866000878786868961315f565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612ce69392919061456d565b60405180910390a36040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050505050565b336001600160a01b03821603612da35760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612dfd576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612e8f57600e54612e6590600160a01b900460ff166012614598565b612e7090600a61469f565b9050612e7c81856146ae565b9250612e8881846146d0565b9150612ee6565b600e546012600160a01b90910460ff161115612edf57600e54612ebe90601290600160a01b900460ff16614598565b612ec990600a61469f565b9050612ed581856146d0565b9250839150612ee6565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261145090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261349d565b612f628585612f5d86612249565b61356f565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051612fb39392919061456d565b60405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612d2891815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113f79085906323b872dd60e01b90608401612f18565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156130b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130dd91906141c3565b90506001600160a01b0381161561127157604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613124908a908a908a908a908a908a906004016146ef565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156131e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320491906141c3565b90506001600160a01b03811615613280576040516223de2960e01b81526001600160a01b038216906223de2990613249908b908b908b908b908b908b906004016146ef565b600060405180830381600087803b15801561326357600080fd5b505af1158015613277573d6000803e3d6000fd5b505050506114f8565b81156114f8576001600160a01b0386163b156114f85760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b6000613377837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906142a9565b5050905061338482612249565b8112156133e85760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6133f182612249565b6001600160a01b0384166000908152600260205260409020546134149190614237565b6001600160a01b03841660009081526002602052604090205560035461343b908390614412565b600355505050565b61344c81612249565b6001600160a01b03831660009081526002602052604090205461346f91906141f6565b6001600160a01b038316600090815260026020526040902055600354613496908290614373565b6003555050565b60006134f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136b29092919063ffffffff16565b8051909150156114505780806020019051810190613510919061415f565b6114505760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b60006135d3847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505090508181121561363c5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b038416600090815260026020526040902054613660908390614237565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136909083906141f6565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610e658484600085856001600160a01b0385163b6137145760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b031685876040516137309190614749565b60006040518083038185875af1925050503d806000811461376d576040519150601f19603f3d011682016040523d82523d6000602084013e613772565b606091505b509150915061378282828661378d565b979650505050505050565b6060831561379c575081610e68565b8251156137ac5782518084602001fd5b8160405162461bcd60e51b81526004016109ed91906138fb565b8280546137d290614010565b90600052602060002090601f0160209004810192826137f4576000855561383a565b82601f1061380d5782800160ff1982351617855561383a565b8280016001018555821561383a579182015b8281111561383a57823582559160200191906001019061381f565b506122b39291505b808211156122b35760008155600101613842565b6020808252825182820181905260009190848201906040850190845b818110156138975783516001600160a01b031683529284019291840191600101613872565b50909695505050505050565b60005b838110156138be5781810151838201526020016138a6565b838111156113f75750506000910152565b600081518084526138e78160208601602086016138a3565b601f01601f19169290920160200192915050565b602081526000610e6860208301846138cf565b6001600160a01b038116811461095257600080fd5b60008083601f84011261393557600080fd5b5081356001600160401b0381111561394c57600080fd5b6020830191508360208260051b850101111561396757600080fd5b9250929050565b6000806000806060858703121561398457600080fd5b843561398f8161390e565b93506020850135925060408501356001600160401b038111156139b157600080fd5b6139bd87828801613923565b95989497509550505050565b600080604083850312156139dc57600080fd5b82356139e78161390e565b946020939093013593505050565b600060208284031215613a0757600080fd5b5035919050565b600080600060408486031215613a2357600080fd5b8335925060208401356001600160401b03811115613a4057600080fd5b613a4c86828701613923565b9497909650939450505050565b60008060008060808587031215613a6f57600080fd5b8435613a7a8161390e565b93506020850135613a8a8161390e565b92506040850135613a9a8161390e565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae857613ae8613aaa565b604052919050565b600082601f830112613b0157600080fd5b81356001600160401b03811115613b1a57613b1a613aaa565b613b2d601f8201601f1916602001613ac0565b818152846020838601011115613b4257600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613b8857600080fd5b8735965060208801356001600160401b03811115613ba557600080fd5b613bb18a828b01613af0565b9650506040880135613bc28161390e565b94506060880135613bd281613b5f565b93506080880135613be28161390e565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c1457600080fd5b8335613c1f8161390e565b92506020840135613c2f8161390e565b929592945050506040919091013590565b60008060408385031215613c5357600080fd5b50508035926020909101359150565b600060208284031215613c7457600080fd5b8135610e688161390e565b60008083601f840112613c9157600080fd5b5081356001600160401b03811115613ca857600080fd5b60208301915083602082850101111561396757600080fd5b60008060008060008060808789031215613cd957600080fd5b8635613ce48161390e565b9550602087013560ff81168114613cfa57600080fd5b945060408701356001600160401b0380821115613d1657600080fd5b613d228a838b01613c7f565b90965094506060890135915080821115613d3b57600080fd5b50613d4889828a01613c7f565b979a9699509497509295939492505050565b60008060008060808587031215613d7057600080fd5b8435613d7b8161390e565b93506020850135613d8b8161390e565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561389757835183529284019291840191600101613dbc565b60008060008060608587031215613dee57600080fd5b8435613df98161390e565b93506020850135925060408501356001600160401b03811115613e1b57600080fd5b6139bd87828801613c7f565b600080600080600080600060a0888a031215613e4257600080fd5b8735613e4d8161390e565b96506020880135613e5d8161390e565b95506040880135945060608801356001600160401b0380821115613e8057600080fd5b613e8c8b838c01613c7f565b909650945060808a0135915080821115613ea557600080fd5b50613eb28a828b01613c7f565b989b979a50959850939692959293505050565b600080600060608486031215613eda57600080fd5b8335613ee58161390e565b95602085013595506040909401359392505050565b600080600060608486031215613f0f57600080fd5b8335613f1a8161390e565b92506020840135915060408401356001600160401b03811115613f3c57600080fd5b613f4886828701613af0565b9150509250925092565b60008060408385031215613f6557600080fd5b8235613f708161390e565b91506020830135613f808161390e565b809150509250929050565b60008060008060008060808789031215613fa457600080fd5b8635613faf8161390e565b95506020870135945060408701356001600160401b0380821115613d1657600080fd5b600080600060408486031215613fe757600080fd5b8335925060208401356001600160401b0381111561400457600080fd5b613a4c86828701613c7f565b600181811c9082168061402457607f821691505b60208210810361404457634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156140f757600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b60006020828403121561417157600080fd5b8151610e6881613b5f565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b6000602082840312156141d557600080fd5b8151610e688161390e565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b0384900385131615614218576142186141e0565b600160ff1b8390038412811615614231576142316141e0565b50500190565b60008083128015600160ff1b850184121615614255576142556141e0565b6001600160ff1b0384018313811615614270576142706141e0565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061378260a08301846138cf565b6000602082840312156142bb57600080fd5b5051919050565b600060208083850312156142d557600080fd5b82516001600160401b03808211156142ec57600080fd5b818501915085601f83011261430057600080fd5b81518181111561431257614312613aaa565b8060051b9150614323848301613ac0565b818152918301840191848101908884111561433d57600080fd5b938501935b8385101561436757845192506143578361390e565b8282529385019390850190614342565b98975050505050505050565b60008219821115614386576143866141e0565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b600082821015614424576144246141e0565b500390565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561445457600080fd5b8351925060208401519150604084015190509250925092565b60006001820161447f5761447f6141e0565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b83815260606020820152600061458660608301856138cf565b828103604084015261137081856138cf565b600060ff821660ff8416808210156145b2576145b26141e0565b90039392505050565b600181815b808511156145f65781600019048211156145dc576145dc6141e0565b808516156145e957918102915b93841c93908002906145c0565b509250929050565b60008261460d57506001610921565b8161461a57506000610921565b8160018114614630576002811461463a57614656565b6001915050610921565b60ff84111561464b5761464b6141e0565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614679575081810a610921565b61468383836145bb565b8060001904821115614697576146976141e0565b029392505050565b6000610e6860ff8416836145fe565b6000826146cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156146ea576146ea6141e0565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061472a908301856138cf565b82810360a084015261473c81856138cf565b9998505050505050505050565b6000825161475b8184602087016138a3565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d87e53c8441fe86e64bb3c205f08d2fb2931367f0e12803dacef022eefd3b8964736f6c634300080d0033a2646970667358221220ec49360a8f9e56f6049f45b090f1cbd07698990b9ed784e07b42f5872658d5d064736f6c634300080d0033",
24
+ "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"logic\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/superfluid/SuperTokenFactory.sol\":\"SuperTokenFactoryHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0x0edeb16b9821ae2b16e9d69c383b38d3ad2fbb3e0c06cf809a0786d96e602551\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88adc865fb1bd8dab4c58096e1d5887713f62c0405f8d2d17294727a8f43d8f7\",\"dweb:/ipfs/QmUJ27zsjxCatfoTFWho4k4qdhuBTorMqLuJzWqUX4Sdmg\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol\":{\"keccak256\":\"0x1a5d61db2733202ba361e6d6741cd2e662380e22b80e987eacfc91973f2267dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04c0cd697050a6516b7779aa2343ad2d0e5217d8915ac2382681dfdf4e445be3\",\"dweb:/ipfs/QmPCBCZgm7pHBwwogE2F9NCN3UfTdLNhqc8UDEvw8kDzyA\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Sender.sol\":{\"keccak256\":\"0x742e51d63b108240759794360637468d9fcbf072cbd357744790d356a87bb382\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23912910ce2bb68e49ff83f43fcfa864210ee44580491e876db14922f8aecc18\",\"dweb:/ipfs/QmU6GnRQ51xvY8D57kPCV47oGeYozaz5AQZUCHxFfXdFZ4\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xebe3f8a59f0f1c96344a05edb984ef666ee4207e993cca99af3808f1de8771b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db23062a52185cf06ad4202be0bfa4c7718c4b75f4526aeb456620ff2e737d4\",\"dweb:/ipfs/QmXtWdePeH6xpXf175YcnbwjsuLp35k6JxX8CjHzvHiyAi\"]},\"@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol\":{\"keccak256\":\"0x6e306f9ab28416a9e5931f0b6e264676e8ac68fad184f9a9d8bb125c6ec23bc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd7fe961c914caa1fcc8223d446c1582aec4f2a32d2f06cf09c938b72cf8ce11\",\"dweb:/ipfs/QmPfEfqtUh9SA86br28HfmMyVSBe22B3oPwF8iACCF4evY\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x5c6caab697d302ad7eb59c234a4d2dbc965c1bae87709bd2850060b7695b28c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb62abcee612c175f1b9bc70e5dfe5bd23473c99987ade6e80e291f68dc60ff1\",\"dweb:/ipfs/QmZCMajhG7FtRYNDwBchXN89mXR6HLPVzr9732qfUdNf9E\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0xa2f576be637946f767aa56601c26d717f48a0aff44f82e46f13807eea1009a21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://973868f808e88e21a1a0a01d4839314515ee337ad096286c88e41b74dcc11fc2\",\"dweb:/ipfs/QmfYuZxRfx2J2xdk4EXN7jKg4bUYEMTaYk9BAw9Bqn4o2Y\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0x2d9b845469a35b66f1166406149ac85e933dbe9156f57e4a4078948e6a6e71a4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://48e5cb11d4b90e42af521e23b33d57e12187c989d8d56be332b1649308168d45\",\"dweb:/ipfs/QmdaTW4HfpFfHjkHiJ3CmZUmCfLJyFCPTnCygwhiNhx3Tu\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/libs/ERC777Helper.sol\":{\"keccak256\":\"0x5db4d5e987d0659d5fd915e9823359141ad3d9d5796e50ae98756bccc86ea9d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2a4e7413e6539cffc1ea0807f05ac49fea8ebc258a9d76b72bade12a0c143075\",\"dweb:/ipfs/QmTsrsMe3bcwB4JnfPAiG1bNvEdTAVFTSyVBKQALVuLMWy\"]},\"project:/contracts/libs/FixedSizeData.sol\":{\"keccak256\":\"0xbb3de3fbf919ef59b6890063847904d2824d7a0da63ff486d97a19eb8f4241f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://23a9d841867cbe1da4487d78929cc994352c22c9113840f98c15f0870b612f6f\",\"dweb:/ipfs/QmS7tZMw2itiie8BPosFiwmZy8TUipHUbzpEAf66SficGL\"]},\"project:/contracts/superfluid/FullUpgradableSuperTokenProxy.sol\":{\"keccak256\":\"0x8351cd8c965160f68ab2b5ffde063d1457d3f51c179a7c1081547a60d856bc3c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://152dc489a518ac6f9b90b42c52faebc0cbb7479516c606b8ca3b7f7c63945717\",\"dweb:/ipfs/QmW5Q5K3zqsFmcRXA3FMsoom76tYuHUF9pZLvZYZGynnxe\"]},\"project:/contracts/superfluid/SuperToken.sol\":{\"keccak256\":\"0xcaa50b4f7c92fd51a483f31d9869d7ad4a8b11d0fb7564eca1859434a18ba429\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5311245d23b5e6359a95a9b62ca047f6bdcb82b68c309aaf44d7852c6af7ff96\",\"dweb:/ipfs/QmNvbjHfENCwJVprouTgDS1M7J2PTyuuuKshKtAnjWEjAJ\"]},\"project:/contracts/superfluid/SuperTokenFactory.sol\":{\"keccak256\":\"0x3cb80ed9391959d9d79cc06f95071b00dee5b07e28fc0a75e7d6338b40ebddbb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://8d589a8000d2b57865d0ca3f9d2342971003eff476e3aeb1fcd36c903cde429b\",\"dweb:/ipfs/QmSdbmi2TCLKBqNvHBEfsdujSFa6ievkqHkKjLX2B5QbQ5\"]},\"project:/contracts/superfluid/SuperfluidToken.sol\":{\"keccak256\":\"0x10158d04d399c5cdcfba45161d8241924b21cda4301f6f5f9f019c21f2647da0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://983f259f440910fdb8fa8a3d8c990e99982e7865b4d97f36ba9f24287d485fdf\",\"dweb:/ipfs/QmdYnYuPwmYWzBoNgP4pN4kKCqBm2oDRJUfpSFhFtaRtii\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0x5f50cec21a585dab7b59545aeb51735f36e3222e4b0768370be8d46373d0ef05\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://acdd57d81b5b2d346da335636baf1e37da3d31cf2eef58af493e43bc65a27414\",\"dweb:/ipfs/QmTepRBNAfRBXVDBM37ME1jpw1YgcseVehC17sWpEYeFDc\"]},\"project:/contracts/upgradability/UUPSProxy.sol\":{\"keccak256\":\"0x1164a0047c0600d162060fc9ea72a5e50779a9ccd28143fa4a984f5a635493cc\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1205e5b16fd67b2bf99bb917175d0bd1caaa1509d3f4a4f3c8184e8c40c564ef\",\"dweb:/ipfs/Qme96cpfG4LNjdA44H2CZP3zYT73XEtRZMXpBGMTDjtFVf\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xffec084e77ce3c0b595f0612687242f3d8b7a84cab15e5650c17428ee48d0b5b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://be0183816467872b053562d9a737042ac3a91ea67e3c74e03de5db7226f3e73b\",\"dweb:/ipfs/QmUyi4YXh1T7MExbrLwZ6rAdXTPChF8q27YpZxxniR6CHM\"]}},\"version\":1}",
25
+ "bytecode": "0x608060405234801561001057600080fd5b50614a03806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6148ef806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620048ef380380620048ef833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516147f2620000fd600039600081816103f701528181610a8101528181610aef01528181610b8501528181610c1c01528181610e7101528181610fcb0152818161109a015281816112b1015281816113ff015281816115930152818161187a0152818161193c015281816119c3015281816132f7015261357701526147f26000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b6040516103419190613856565b60405180910390f35b6103526107ca565b60405161034191906138fb565b61037261036d36600461396e565b61085c565b005b6103876103823660046139c9565b610910565b6040519015158152602001610341565b6103726103a53660046139f5565b610927565b6103726103b8366004613a0e565b610955565b6103726103cb366004613a59565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613b6d565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613bff565b610e57565b6103726104503660046139c9565b610e6f565b610372610463366004613c40565b610ee6565b61047b610476366004613c62565b610fc3565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613c62565b611066565b6103876104cb3660046139c9565b611109565b6103726104de366004613a59565b611145565b6103726104f1366004613cc0565b611170565b6103726105043660046139f5565b61127a565b610372610517366004613c62565b6112a6565b61052f61052a366004613d5a565b611335565b6040516103419190613da0565b61041761137a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613dd8565b6113a4565b610372610592366004613bff565b6113fd565b6103726105a5366004613e27565b611455565b6103726105b8366004613bff565b611502565b61052f6105cb366004613ec5565b611521565b6103d46105de366004613c62565b611563565b6103876105f1366004613c62565b61158b565b610372610604366004613c62565b611613565b610352611664565b61037261061f366004613dd8565b611673565b610372610632366004613efa565b6116c7565b610372610645366004613a0e565b611706565b610372610658366004613c62565b6117b0565b61038761066b3660046139c9565b6117c4565b61038761067e3660046139c9565b611813565b6103876106913660046139c9565b611821565b6103876106a4366004613c62565b611872565b6103726106b7366004613efa565b6118fa565b6103726106ca3660046139c9565b61193a565b6103726106dd3660046139c9565b6119ae565b6103876106f0366004613f52565b611a96565b6103876107033660046139c9565b611aa4565b6103d4610716366004613f52565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f3660046139c9565b611abe565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613c62565b611bfa565b6103726107a1366004613f8b565b611c4b565b6103726107b4366004613fd2565b611cea565b60606107c56012611d3a565b905090565b6060600f80546107d990614010565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614010565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60003385856040516020016108739392919061404a565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611de1565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611f08565b50565b604051339060009061096d9083908790602001614093565b60408051601f198184030181529190528051602090910120905061099181846120ef565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a70939291906140d0565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614114565b610ad38484848461212b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061415f565b610b7e5760405162461bcd60e51b81526004016109ed9061417c565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906141c3565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906141c3565b9250829150506001600160a01b038116610cd7578691505b8515610d2757610ce684612249565b6001600160a01b038316600090815260026020526040902054610d0991906141f6565b6001600160a01b038316600090815260026020526040902055610dbd565b610d3084612249565b6001600160a01b038816600090815260026020526040902054610d5391906141f6565b6001600160a01b03881660009081526002602052604090205582610d7685612249565b6001600160a01b038416600090815260026020526040902054610d999190614237565b610da39190614237565b6001600160a01b0383166000908152600260205260409020555b6001600160a01b038516600090815260026020526040902054610de19084906141f6565b6001600160a01b038087166000818152600260205260409020929092558816337fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8a610e2e578b610e30565b865b89898f604051610e44959493929190614276565b60405180910390a4505050505050505050565b6000610e653385858561212b565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610eb75760405162461bcd60e51b81526004016109ed90614114565b610ee23383836040518060200160405280600081525060405180602001604052806000815250611f08565b5050565b6040513390600090610efe9083908690602001614093565b604051602081830303815290604052805190602001209050610f2081846120ef565b610f7e5760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610f8881846122b7565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906142a9565b90506110578582611abe565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092191908101906142c2565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d918590611140908690614373565b611de1565b3330146111645760405162461bcd60e51b81526004016109ed9061438b565b610ad38385848461212b565b600054610100900460ff1661118b5760005460ff161561118f565b303b155b6111f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611214576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055611248600f86866137c6565b50611255601084846137c6565b5061125f306122d8565b8015611271576000805461ff00191690555b50505050505050565b610952333333846040518060200160405280600081525060405180602001604052806000815250612406565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132c5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b61095281612609565b6060600085858560405160200161134e9392919061404a565b6040516020818303038152906040528051906020012090506113708184612849565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6113f7333386866040518060200160405280600081525087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146114455760405162461bcd60e51b81526004016109ed90614114565b611450838383611de1565b505050565b336114626012828a6128d8565b61147e5760405162461bcd60e51b81526004016109ed906143c2565b6114f88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612981915050565b5050505050505050565b3330146114455760405162461bcd60e51b81526004016109ed9061438b565b606060008484604051602001611538929190614093565b60405160208183030381529060405280519060200120905061155a8184612849565b95945050505050565b60008061156f83610fc3565b5050509050600081126115825780610e68565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070391906142a9565b33611620601282846129f8565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614010565b6113f73333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506129819050565b3330146116e65760405162461bcd60e51b81526004016109ed9061438b565b604080516000815260208101909152611450903390859085908590612afc565b604051339060009061171e9083908790602001614093565b60405160208183030381529060405280519060200120905061177381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a70939291906140d0565b610ee23333836117bf33611563565b61212b565b600061091d3384611140856040518060600160405280602a8152602001614766602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c03565b6000610e683333858561212b565b6000806000806118318686611abe565b925092509250600061185982841161184a576000612249565b6118548385614412565b612249565b61186390856141f6565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069191906142a9565b3330146119195760405162461bcd60e51b81526004016109ed9061438b565b60408051600080825260208201909252611450913391869186918690612c2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146119825760405162461bcd60e51b81526004016109ed90614114565b610ee2338384846040518060200160405280600081525060405180602001604052806000815250612406565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a36919061415f565b611a525760405162461bcd60e51b81526004016109ed9061417c565b6001600160a01b038216600090815260026020526040902054611a769082906141f6565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610e68601284846128d8565b600080611ab18484611abe565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611ae386611066565b905060005b8151811015611bf1576000806000848481518110611b0857611b08614429565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b919061443f565b91945092509050611b9c8288614373565b9650611ba88187614373565b9550611bc5818311611bbb576000612249565b6118548284614412565b611bcf848a6141f6565b611bd99190614237565b97505050508080611be99061446d565b915050611ae8565b50509250925092565b33611c0760128284612d38565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611c58601282896128d8565b611c745760405162461bcd60e51b81526004016109ed906143c2565b61127181888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611f0892505050565b61145033338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611f08915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611d9457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d76575b50505050509050919050565b60005b8151811015611450576000828281518110611dc057611dc0614429565b6020026020010151905080828501555080611dda9061446d565b9050611da3565b6001600160a01b038316611e455760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611ea75760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b0316611f605760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611f6c85612e30565b91509150611f7d8787838787612afc565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea91906142a9565b600e54909150612004906001600160a01b03168885612eec565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207191906142a9565b9050600061207f8284614412565b90508085146120a05760405162461bcd60e51b81526004016109ed90614486565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516120db91815260200190565b60405180910390a250505050505050505050565b6000805b828110156121215783810154801561211057600192505050610921565b5061211a8161446d565b90506120f3565b5060009392505050565b60006001600160a01b0384166121535760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0383166121795760405162461bcd60e51b81526004016109ed90614529565b60003390506121aa818686866040518060200160405280600081525060405180602001604052806000815250612f4f565b846001600160a01b0316866001600160a01b03161461223d5761223d8587611140866040518060600160405280602d8152602001614790602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c039092919063ffffffff16565b50600195945050505050565b60006001600160ff1b038211156122b35760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b60005b81811015611450576000838201556122d18161446d565b90506122ba565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156123f257600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b031661245e5760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061246a85612e30565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156124bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124df91906142a9565b600e549091506124fa906001600160a01b0316893086613000565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256791906142a9565b905060006125758383614412565b90508085146125965760405162461bcd60e51b81526004016109ed90614486565b6125b98b8a868c6001600160a01b03168e6001600160a01b031614158b8b612c2f565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516125f491815260200190565b60405180910390a25050505050505050505050565b60006126337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036126895760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb91906142a9565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146127655760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036127bd5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b6127e5817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b0381111561286357612863613aaa565b60405190808252806020026020018201604052801561288c578160200160208202803683370190505b50905060005b828110156128d1576000818501549050808383815181106128b5576128b5614429565b6020908102919091010152506128ca8161446d565b9050612892565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061294757506001600160a01b038316600090815260018501602052604090205460ff16801561294757506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610e6557506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166129a75760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0385166129cd5760405162461bcd60e51b81526004016109ed90614529565b6129db878787878787613038565b6129e9878787878787612f4f565b6112718787878787878761315f565b806001600160a01b0316826001600160a01b031603612a6f5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612ac5576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612b5d5760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612b6c85856000868686613038565b612b7684846132ef565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612bbd9392919061456d565b60405180910390a36040518381526000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610901565b60008184841115612c275760405162461bcd60e51b81526004016109ed91906138fb565b505050900390565b6001600160a01b038516612c855760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612c8f8585613443565b612c9f866000878786868961315f565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612ce69392919061456d565b60405180910390a36040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050505050565b336001600160a01b03821603612da35760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612dfd576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612e8f57600e54612e6590600160a01b900460ff166012614598565b612e7090600a61469f565b9050612e7c81856146ae565b9250612e8881846146d0565b9150612ee6565b600e546012600160a01b90910460ff161115612edf57600e54612ebe90601290600160a01b900460ff16614598565b612ec990600a61469f565b9050612ed581856146d0565b9250839150612ee6565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261145090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261349d565b612f628585612f5d86612249565b61356f565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051612fb39392919061456d565b60405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612d2891815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113f79085906323b872dd60e01b90608401612f18565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156130b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130dd91906141c3565b90506001600160a01b0381161561127157604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613124908a908a908a908a908a908a906004016146ef565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156131e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320491906141c3565b90506001600160a01b03811615613280576040516223de2960e01b81526001600160a01b038216906223de2990613249908b908b908b908b908b908b906004016146ef565b600060405180830381600087803b15801561326357600080fd5b505af1158015613277573d6000803e3d6000fd5b505050506114f8565b81156114f8576001600160a01b0386163b156114f85760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b6000613377837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906142a9565b5050905061338482612249565b8112156133e85760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6133f182612249565b6001600160a01b0384166000908152600260205260409020546134149190614237565b6001600160a01b03841660009081526002602052604090205560035461343b908390614412565b600355505050565b61344c81612249565b6001600160a01b03831660009081526002602052604090205461346f91906141f6565b6001600160a01b038316600090815260026020526040902055600354613496908290614373565b6003555050565b60006134f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136b29092919063ffffffff16565b8051909150156114505780806020019051810190613510919061415f565b6114505760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b60006135d3847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505090508181121561363c5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b038416600090815260026020526040902054613660908390614237565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136909083906141f6565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610e658484600085856001600160a01b0385163b6137145760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b031685876040516137309190614749565b60006040518083038185875af1925050503d806000811461376d576040519150601f19603f3d011682016040523d82523d6000602084013e613772565b606091505b509150915061378282828661378d565b979650505050505050565b6060831561379c575081610e68565b8251156137ac5782518084602001fd5b8160405162461bcd60e51b81526004016109ed91906138fb565b8280546137d290614010565b90600052602060002090601f0160209004810192826137f4576000855561383a565b82601f1061380d5782800160ff1982351617855561383a565b8280016001018555821561383a579182015b8281111561383a57823582559160200191906001019061381f565b506122b39291505b808211156122b35760008155600101613842565b6020808252825182820181905260009190848201906040850190845b818110156138975783516001600160a01b031683529284019291840191600101613872565b50909695505050505050565b60005b838110156138be5781810151838201526020016138a6565b838111156113f75750506000910152565b600081518084526138e78160208601602086016138a3565b601f01601f19169290920160200192915050565b602081526000610e6860208301846138cf565b6001600160a01b038116811461095257600080fd5b60008083601f84011261393557600080fd5b5081356001600160401b0381111561394c57600080fd5b6020830191508360208260051b850101111561396757600080fd5b9250929050565b6000806000806060858703121561398457600080fd5b843561398f8161390e565b93506020850135925060408501356001600160401b038111156139b157600080fd5b6139bd87828801613923565b95989497509550505050565b600080604083850312156139dc57600080fd5b82356139e78161390e565b946020939093013593505050565b600060208284031215613a0757600080fd5b5035919050565b600080600060408486031215613a2357600080fd5b8335925060208401356001600160401b03811115613a4057600080fd5b613a4c86828701613923565b9497909650939450505050565b60008060008060808587031215613a6f57600080fd5b8435613a7a8161390e565b93506020850135613a8a8161390e565b92506040850135613a9a8161390e565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae857613ae8613aaa565b604052919050565b600082601f830112613b0157600080fd5b81356001600160401b03811115613b1a57613b1a613aaa565b613b2d601f8201601f1916602001613ac0565b818152846020838601011115613b4257600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613b8857600080fd5b8735965060208801356001600160401b03811115613ba557600080fd5b613bb18a828b01613af0565b9650506040880135613bc28161390e565b94506060880135613bd281613b5f565b93506080880135613be28161390e565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c1457600080fd5b8335613c1f8161390e565b92506020840135613c2f8161390e565b929592945050506040919091013590565b60008060408385031215613c5357600080fd5b50508035926020909101359150565b600060208284031215613c7457600080fd5b8135610e688161390e565b60008083601f840112613c9157600080fd5b5081356001600160401b03811115613ca857600080fd5b60208301915083602082850101111561396757600080fd5b60008060008060008060808789031215613cd957600080fd5b8635613ce48161390e565b9550602087013560ff81168114613cfa57600080fd5b945060408701356001600160401b0380821115613d1657600080fd5b613d228a838b01613c7f565b90965094506060890135915080821115613d3b57600080fd5b50613d4889828a01613c7f565b979a9699509497509295939492505050565b60008060008060808587031215613d7057600080fd5b8435613d7b8161390e565b93506020850135613d8b8161390e565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561389757835183529284019291840191600101613dbc565b60008060008060608587031215613dee57600080fd5b8435613df98161390e565b93506020850135925060408501356001600160401b03811115613e1b57600080fd5b6139bd87828801613c7f565b600080600080600080600060a0888a031215613e4257600080fd5b8735613e4d8161390e565b96506020880135613e5d8161390e565b95506040880135945060608801356001600160401b0380821115613e8057600080fd5b613e8c8b838c01613c7f565b909650945060808a0135915080821115613ea557600080fd5b50613eb28a828b01613c7f565b989b979a50959850939692959293505050565b600080600060608486031215613eda57600080fd5b8335613ee58161390e565b95602085013595506040909401359392505050565b600080600060608486031215613f0f57600080fd5b8335613f1a8161390e565b92506020840135915060408401356001600160401b03811115613f3c57600080fd5b613f4886828701613af0565b9150509250925092565b60008060408385031215613f6557600080fd5b8235613f708161390e565b91506020830135613f808161390e565b809150509250929050565b60008060008060008060808789031215613fa457600080fd5b8635613faf8161390e565b95506020870135945060408701356001600160401b0380821115613d1657600080fd5b600080600060408486031215613fe757600080fd5b8335925060208401356001600160401b0381111561400457600080fd5b613a4c86828701613c7f565b600181811c9082168061402457607f821691505b60208210810361404457634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156140f757600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b60006020828403121561417157600080fd5b8151610e6881613b5f565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b6000602082840312156141d557600080fd5b8151610e688161390e565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b0384900385131615614218576142186141e0565b600160ff1b8390038412811615614231576142316141e0565b50500190565b60008083128015600160ff1b850184121615614255576142556141e0565b6001600160ff1b0384018313811615614270576142706141e0565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061378260a08301846138cf565b6000602082840312156142bb57600080fd5b5051919050565b600060208083850312156142d557600080fd5b82516001600160401b03808211156142ec57600080fd5b818501915085601f83011261430057600080fd5b81518181111561431257614312613aaa565b8060051b9150614323848301613ac0565b818152918301840191848101908884111561433d57600080fd5b938501935b8385101561436757845192506143578361390e565b8282529385019390850190614342565b98975050505050505050565b60008219821115614386576143866141e0565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b600082821015614424576144246141e0565b500390565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561445457600080fd5b8351925060208401519150604084015190509250925092565b60006001820161447f5761447f6141e0565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b83815260606020820152600061458660608301856138cf565b828103604084015261137081856138cf565b600060ff821660ff8416808210156145b2576145b26141e0565b90039392505050565b600181815b808511156145f65781600019048211156145dc576145dc6141e0565b808516156145e957918102915b93841c93908002906145c0565b509250929050565b60008261460d57506001610921565b8161461a57506000610921565b8160018114614630576002811461463a57614656565b6001915050610921565b60ff84111561464b5761464b6141e0565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614679575081810a610921565b61468383836145bb565b8060001904821115614697576146976141e0565b029392505050565b6000610e6860ff8416836145fe565b6000826146cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156146ea576146ea6141e0565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061472a908301856138cf565b82810360a084015261473c81856138cf565b9998505050505050505050565b6000825161475b8184602087016138a3565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a29cf338f1f5eb15711d2c2c0d5b24b574642df87a41e37efad880471a6d74e064736f6c634300080d0033a2646970667358221220ed22a197451fba4ad034c19321632f4b9bb7dca59e336a1e9d9480537a8e1f7864736f6c634300080d0033",
26
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6148ef806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620048ef380380620048ef833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516147f2620000fd600039600081816103f701528181610a8101528181610aef01528181610b8501528181610c1c01528181610e7101528181610fcb0152818161109a015281816112b1015281816113ff015281816115930152818161187a0152818161193c015281816119c3015281816132f7015261357701526147f26000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b6040516103419190613856565b60405180910390f35b6103526107ca565b60405161034191906138fb565b61037261036d36600461396e565b61085c565b005b6103876103823660046139c9565b610910565b6040519015158152602001610341565b6103726103a53660046139f5565b610927565b6103726103b8366004613a0e565b610955565b6103726103cb366004613a59565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613b6d565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613bff565b610e57565b6103726104503660046139c9565b610e6f565b610372610463366004613c40565b610ee6565b61047b610476366004613c62565b610fc3565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613c62565b611066565b6103876104cb3660046139c9565b611109565b6103726104de366004613a59565b611145565b6103726104f1366004613cc0565b611170565b6103726105043660046139f5565b61127a565b610372610517366004613c62565b6112a6565b61052f61052a366004613d5a565b611335565b6040516103419190613da0565b61041761137a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613dd8565b6113a4565b610372610592366004613bff565b6113fd565b6103726105a5366004613e27565b611455565b6103726105b8366004613bff565b611502565b61052f6105cb366004613ec5565b611521565b6103d46105de366004613c62565b611563565b6103876105f1366004613c62565b61158b565b610372610604366004613c62565b611613565b610352611664565b61037261061f366004613dd8565b611673565b610372610632366004613efa565b6116c7565b610372610645366004613a0e565b611706565b610372610658366004613c62565b6117b0565b61038761066b3660046139c9565b6117c4565b61038761067e3660046139c9565b611813565b6103876106913660046139c9565b611821565b6103876106a4366004613c62565b611872565b6103726106b7366004613efa565b6118fa565b6103726106ca3660046139c9565b61193a565b6103726106dd3660046139c9565b6119ae565b6103876106f0366004613f52565b611a96565b6103876107033660046139c9565b611aa4565b6103d4610716366004613f52565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f3660046139c9565b611abe565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613c62565b611bfa565b6103726107a1366004613f8b565b611c4b565b6103726107b4366004613fd2565b611cea565b60606107c56012611d3a565b905090565b6060600f80546107d990614010565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614010565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60003385856040516020016108739392919061404a565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611de1565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611f08565b50565b604051339060009061096d9083908790602001614093565b60408051601f198184030181529190528051602090910120905061099181846120ef565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a70939291906140d0565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614114565b610ad38484848461212b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061415f565b610b7e5760405162461bcd60e51b81526004016109ed9061417c565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906141c3565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906141c3565b9250829150506001600160a01b038116610cd7578691505b8515610d2757610ce684612249565b6001600160a01b038316600090815260026020526040902054610d0991906141f6565b6001600160a01b038316600090815260026020526040902055610dbd565b610d3084612249565b6001600160a01b038816600090815260026020526040902054610d5391906141f6565b6001600160a01b03881660009081526002602052604090205582610d7685612249565b6001600160a01b038416600090815260026020526040902054610d999190614237565b610da39190614237565b6001600160a01b0383166000908152600260205260409020555b6001600160a01b038516600090815260026020526040902054610de19084906141f6565b6001600160a01b038087166000818152600260205260409020929092558816337fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8a610e2e578b610e30565b865b89898f604051610e44959493929190614276565b60405180910390a4505050505050505050565b6000610e653385858561212b565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610eb75760405162461bcd60e51b81526004016109ed90614114565b610ee23383836040518060200160405280600081525060405180602001604052806000815250611f08565b5050565b6040513390600090610efe9083908690602001614093565b604051602081830303815290604052805190602001209050610f2081846120ef565b610f7e5760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610f8881846122b7565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906142a9565b90506110578582611abe565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092191908101906142c2565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d918590611140908690614373565b611de1565b3330146111645760405162461bcd60e51b81526004016109ed9061438b565b610ad38385848461212b565b600054610100900460ff1661118b5760005460ff161561118f565b303b155b6111f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611214576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055611248600f86866137c6565b50611255601084846137c6565b5061125f306122d8565b8015611271576000805461ff00191690555b50505050505050565b610952333333846040518060200160405280600081525060405180602001604052806000815250612406565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132c5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b61095281612609565b6060600085858560405160200161134e9392919061404a565b6040516020818303038152906040528051906020012090506113708184612849565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6113f7333386866040518060200160405280600081525087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146114455760405162461bcd60e51b81526004016109ed90614114565b611450838383611de1565b505050565b336114626012828a6128d8565b61147e5760405162461bcd60e51b81526004016109ed906143c2565b6114f88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612981915050565b5050505050505050565b3330146114455760405162461bcd60e51b81526004016109ed9061438b565b606060008484604051602001611538929190614093565b60405160208183030381529060405280519060200120905061155a8184612849565b95945050505050565b60008061156f83610fc3565b5050509050600081126115825780610e68565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070391906142a9565b33611620601282846129f8565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614010565b6113f73333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506129819050565b3330146116e65760405162461bcd60e51b81526004016109ed9061438b565b604080516000815260208101909152611450903390859085908590612afc565b604051339060009061171e9083908790602001614093565b60405160208183030381529060405280519060200120905061177381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611da092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a70939291906140d0565b610ee23333836117bf33611563565b61212b565b600061091d3384611140856040518060600160405280602a8152602001614766602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c03565b6000610e683333858561212b565b6000806000806118318686611abe565b925092509250600061185982841161184a576000612249565b6118548385614412565b612249565b61186390856141f6565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069191906142a9565b3330146119195760405162461bcd60e51b81526004016109ed9061438b565b60408051600080825260208201909252611450913391869186918690612c2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146119825760405162461bcd60e51b81526004016109ed90614114565b610ee2338384846040518060200160405280600081525060405180602001604052806000815250612406565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a36919061415f565b611a525760405162461bcd60e51b81526004016109ed9061417c565b6001600160a01b038216600090815260026020526040902054611a769082906141f6565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610e68601284846128d8565b600080611ab18484611abe565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611ae386611066565b905060005b8151811015611bf1576000806000848481518110611b0857611b08614429565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b919061443f565b91945092509050611b9c8288614373565b9650611ba88187614373565b9550611bc5818311611bbb576000612249565b6118548284614412565b611bcf848a6141f6565b611bd99190614237565b97505050508080611be99061446d565b915050611ae8565b50509250925092565b33611c0760128284612d38565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611c58601282896128d8565b611c745760405162461bcd60e51b81526004016109ed906143c2565b61127181888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611f0892505050565b61145033338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611f08915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611d9457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d76575b50505050509050919050565b60005b8151811015611450576000828281518110611dc057611dc0614429565b6020026020010151905080828501555080611dda9061446d565b9050611da3565b6001600160a01b038316611e455760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611ea75760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b0316611f605760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611f6c85612e30565b91509150611f7d8787838787612afc565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea91906142a9565b600e54909150612004906001600160a01b03168885612eec565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207191906142a9565b9050600061207f8284614412565b90508085146120a05760405162461bcd60e51b81526004016109ed90614486565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516120db91815260200190565b60405180910390a250505050505050505050565b6000805b828110156121215783810154801561211057600192505050610921565b5061211a8161446d565b90506120f3565b5060009392505050565b60006001600160a01b0384166121535760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0383166121795760405162461bcd60e51b81526004016109ed90614529565b60003390506121aa818686866040518060200160405280600081525060405180602001604052806000815250612f4f565b846001600160a01b0316866001600160a01b03161461223d5761223d8587611140866040518060600160405280602d8152602001614790602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c039092919063ffffffff16565b50600195945050505050565b60006001600160ff1b038211156122b35760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b60005b81811015611450576000838201556122d18161446d565b90506122ba565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156123f257600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b031661245e5760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061246a85612e30565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156124bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124df91906142a9565b600e549091506124fa906001600160a01b0316893086613000565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256791906142a9565b905060006125758383614412565b90508085146125965760405162461bcd60e51b81526004016109ed90614486565b6125b98b8a868c6001600160a01b03168e6001600160a01b031614158b8b612c2f565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516125f491815260200190565b60405180910390a25050505050505050505050565b60006126337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036126895760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb91906142a9565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146127655760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036127bd5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b6127e5817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b0381111561286357612863613aaa565b60405190808252806020026020018201604052801561288c578160200160208202803683370190505b50905060005b828110156128d1576000818501549050808383815181106128b5576128b5614429565b6020908102919091010152506128ca8161446d565b9050612892565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061294757506001600160a01b038316600090815260018501602052604090205460ff16801561294757506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610e6557506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166129a75760405162461bcd60e51b81526004016109ed906144e3565b6001600160a01b0385166129cd5760405162461bcd60e51b81526004016109ed90614529565b6129db878787878787613038565b6129e9878787878787612f4f565b6112718787878787878761315f565b806001600160a01b0316826001600160a01b031603612a6f5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612ac5576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612b5d5760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612b6c85856000868686613038565b612b7684846132ef565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612bbd9392919061456d565b60405180910390a36040518381526000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610901565b60008184841115612c275760405162461bcd60e51b81526004016109ed91906138fb565b505050900390565b6001600160a01b038516612c855760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612c8f8585613443565b612c9f866000878786868961315f565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612ce69392919061456d565b60405180910390a36040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050505050565b336001600160a01b03821603612da35760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612dfd576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612e8f57600e54612e6590600160a01b900460ff166012614598565b612e7090600a61469f565b9050612e7c81856146ae565b9250612e8881846146d0565b9150612ee6565b600e546012600160a01b90910460ff161115612edf57600e54612ebe90601290600160a01b900460ff16614598565b612ec990600a61469f565b9050612ed581856146d0565b9250839150612ee6565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261145090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261349d565b612f628585612f5d86612249565b61356f565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051612fb39392919061456d565b60405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612d2891815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113f79085906323b872dd60e01b90608401612f18565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156130b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130dd91906141c3565b90506001600160a01b0381161561127157604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613124908a908a908a908a908a908a906004016146ef565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156131e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320491906141c3565b90506001600160a01b03811615613280576040516223de2960e01b81526001600160a01b038216906223de2990613249908b908b908b908b908b908b906004016146ef565b600060405180830381600087803b15801561326357600080fd5b505af1158015613277573d6000803e3d6000fd5b505050506114f8565b81156114f8576001600160a01b0386163b156114f85760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b6000613377837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906142a9565b5050905061338482612249565b8112156133e85760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6133f182612249565b6001600160a01b0384166000908152600260205260409020546134149190614237565b6001600160a01b03841660009081526002602052604090205560035461343b908390614412565b600355505050565b61344c81612249565b6001600160a01b03831660009081526002602052604090205461346f91906141f6565b6001600160a01b038316600090815260026020526040902055600354613496908290614373565b6003555050565b60006134f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136b29092919063ffffffff16565b8051909150156114505780806020019051810190613510919061415f565b6114505760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b60006135d3847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505090508181121561363c5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b038416600090815260026020526040902054613660908390614237565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136909083906141f6565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610e658484600085856001600160a01b0385163b6137145760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b031685876040516137309190614749565b60006040518083038185875af1925050503d806000811461376d576040519150601f19603f3d011682016040523d82523d6000602084013e613772565b606091505b509150915061378282828661378d565b979650505050505050565b6060831561379c575081610e68565b8251156137ac5782518084602001fd5b8160405162461bcd60e51b81526004016109ed91906138fb565b8280546137d290614010565b90600052602060002090601f0160209004810192826137f4576000855561383a565b82601f1061380d5782800160ff1982351617855561383a565b8280016001018555821561383a579182015b8281111561383a57823582559160200191906001019061381f565b506122b39291505b808211156122b35760008155600101613842565b6020808252825182820181905260009190848201906040850190845b818110156138975783516001600160a01b031683529284019291840191600101613872565b50909695505050505050565b60005b838110156138be5781810151838201526020016138a6565b838111156113f75750506000910152565b600081518084526138e78160208601602086016138a3565b601f01601f19169290920160200192915050565b602081526000610e6860208301846138cf565b6001600160a01b038116811461095257600080fd5b60008083601f84011261393557600080fd5b5081356001600160401b0381111561394c57600080fd5b6020830191508360208260051b850101111561396757600080fd5b9250929050565b6000806000806060858703121561398457600080fd5b843561398f8161390e565b93506020850135925060408501356001600160401b038111156139b157600080fd5b6139bd87828801613923565b95989497509550505050565b600080604083850312156139dc57600080fd5b82356139e78161390e565b946020939093013593505050565b600060208284031215613a0757600080fd5b5035919050565b600080600060408486031215613a2357600080fd5b8335925060208401356001600160401b03811115613a4057600080fd5b613a4c86828701613923565b9497909650939450505050565b60008060008060808587031215613a6f57600080fd5b8435613a7a8161390e565b93506020850135613a8a8161390e565b92506040850135613a9a8161390e565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae857613ae8613aaa565b604052919050565b600082601f830112613b0157600080fd5b81356001600160401b03811115613b1a57613b1a613aaa565b613b2d601f8201601f1916602001613ac0565b818152846020838601011115613b4257600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613b8857600080fd5b8735965060208801356001600160401b03811115613ba557600080fd5b613bb18a828b01613af0565b9650506040880135613bc28161390e565b94506060880135613bd281613b5f565b93506080880135613be28161390e565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c1457600080fd5b8335613c1f8161390e565b92506020840135613c2f8161390e565b929592945050506040919091013590565b60008060408385031215613c5357600080fd5b50508035926020909101359150565b600060208284031215613c7457600080fd5b8135610e688161390e565b60008083601f840112613c9157600080fd5b5081356001600160401b03811115613ca857600080fd5b60208301915083602082850101111561396757600080fd5b60008060008060008060808789031215613cd957600080fd5b8635613ce48161390e565b9550602087013560ff81168114613cfa57600080fd5b945060408701356001600160401b0380821115613d1657600080fd5b613d228a838b01613c7f565b90965094506060890135915080821115613d3b57600080fd5b50613d4889828a01613c7f565b979a9699509497509295939492505050565b60008060008060808587031215613d7057600080fd5b8435613d7b8161390e565b93506020850135613d8b8161390e565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561389757835183529284019291840191600101613dbc565b60008060008060608587031215613dee57600080fd5b8435613df98161390e565b93506020850135925060408501356001600160401b03811115613e1b57600080fd5b6139bd87828801613c7f565b600080600080600080600060a0888a031215613e4257600080fd5b8735613e4d8161390e565b96506020880135613e5d8161390e565b95506040880135945060608801356001600160401b0380821115613e8057600080fd5b613e8c8b838c01613c7f565b909650945060808a0135915080821115613ea557600080fd5b50613eb28a828b01613c7f565b989b979a50959850939692959293505050565b600080600060608486031215613eda57600080fd5b8335613ee58161390e565b95602085013595506040909401359392505050565b600080600060608486031215613f0f57600080fd5b8335613f1a8161390e565b92506020840135915060408401356001600160401b03811115613f3c57600080fd5b613f4886828701613af0565b9150509250925092565b60008060408385031215613f6557600080fd5b8235613f708161390e565b91506020830135613f808161390e565b809150509250929050565b60008060008060008060808789031215613fa457600080fd5b8635613faf8161390e565b95506020870135945060408701356001600160401b0380821115613d1657600080fd5b600080600060408486031215613fe757600080fd5b8335925060208401356001600160401b0381111561400457600080fd5b613a4c86828701613c7f565b600181811c9082168061402457607f821691505b60208210810361404457634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156140f757600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b60006020828403121561417157600080fd5b8151610e6881613b5f565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b6000602082840312156141d557600080fd5b8151610e688161390e565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b0384900385131615614218576142186141e0565b600160ff1b8390038412811615614231576142316141e0565b50500190565b60008083128015600160ff1b850184121615614255576142556141e0565b6001600160ff1b0384018313811615614270576142706141e0565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061378260a08301846138cf565b6000602082840312156142bb57600080fd5b5051919050565b600060208083850312156142d557600080fd5b82516001600160401b03808211156142ec57600080fd5b818501915085601f83011261430057600080fd5b81518181111561431257614312613aaa565b8060051b9150614323848301613ac0565b818152918301840191848101908884111561433d57600080fd5b938501935b8385101561436757845192506143578361390e565b8282529385019390850190614342565b98975050505050505050565b60008219821115614386576143866141e0565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b600082821015614424576144246141e0565b500390565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561445457600080fd5b8351925060208401519150604084015190509250925092565b60006001820161447f5761447f6141e0565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b83815260606020820152600061458660608301856138cf565b828103604084015261137081856138cf565b600060ff821660ff8416808210156145b2576145b26141e0565b90039392505050565b600181815b808511156145f65781600019048211156145dc576145dc6141e0565b808516156145e957918102915b93841c93908002906145c0565b509250929050565b60008261460d57506001610921565b8161461a57506000610921565b8160018114614630576002811461463a57614656565b6001915050610921565b60ff84111561464b5761464b6141e0565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614679575081810a610921565b61468383836145bb565b8060001904821115614697576146976141e0565b029392505050565b6000610e6860ff8416836145fe565b6000826146cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156146ea576146ea6141e0565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061472a908301856138cf565b82810360a084015261473c81856138cf565b9998505050505050505050565b6000825161475b8184602087016138a3565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a29cf338f1f5eb15711d2c2c0d5b24b574642df87a41e37efad880471a6d74e064736f6c634300080d0033a2646970667358221220ed22a197451fba4ad034c19321632f4b9bb7dca59e336a1e9d9480537a8e1f7864736f6c634300080d0033",
27
27
  "immutableReferences": {},
28
28
  "generatedSources": [],
29
29
  "deployedGeneratedSources": [
@@ -661,10 +661,10 @@
661
661
  30908
662
662
  ],
663
663
  "UUPSProxiable": [
664
- 35197
664
+ 35200
665
665
  ],
666
666
  "UUPSProxy": [
667
- 35254
667
+ 35257
668
668
  ]
669
669
  },
670
670
  "id": 30947,
@@ -774,7 +774,7 @@
774
774
  "nameLocation": "-1:-1:-1",
775
775
  "nodeType": "ImportDirective",
776
776
  "scope": 30947,
777
- "sourceUnit": 35255,
777
+ "sourceUnit": 35258,
778
778
  "src": "277:59:89",
779
779
  "symbolAliases": [
780
780
  {
@@ -783,7 +783,7 @@
783
783
  "name": "UUPSProxy",
784
784
  "nodeType": "Identifier",
785
785
  "overloadedDeclarations": [],
786
- "referencedDeclaration": 35254,
786
+ "referencedDeclaration": 35257,
787
787
  "src": "286:9:89",
788
788
  "typeDescriptions": {}
789
789
  },
@@ -799,7 +799,7 @@
799
799
  "nameLocation": "-1:-1:-1",
800
800
  "nodeType": "ImportDirective",
801
801
  "scope": 30947,
802
- "sourceUnit": 35198,
802
+ "sourceUnit": 35201,
803
803
  "src": "337:67:89",
804
804
  "symbolAliases": [
805
805
  {
@@ -808,7 +808,7 @@
808
808
  "name": "UUPSProxiable",
809
809
  "nodeType": "Identifier",
810
810
  "overloadedDeclarations": [],
811
- "referencedDeclaration": 35197,
811
+ "referencedDeclaration": 35200,
812
812
  "src": "346:13:89",
813
813
  "typeDescriptions": {}
814
814
  },
@@ -925,7 +925,7 @@
925
925
  "id": 30593,
926
926
  "name": "UUPSProxiable",
927
927
  "nodeType": "IdentifierPath",
928
- "referencedDeclaration": 35197,
928
+ "referencedDeclaration": 35200,
929
929
  "src": "739:13:89"
930
930
  },
931
931
  "id": 30594,
@@ -948,7 +948,7 @@
948
948
  "canonicalName": "SuperTokenFactoryBase",
949
949
  "contractDependencies": [
950
950
  28979,
951
- 35254
951
+ 35257
952
952
  ],
953
953
  "contractKind": "contract",
954
954
  "fullyImplemented": false,
@@ -956,7 +956,7 @@
956
956
  "linearizedBaseContracts": [
957
957
  30889,
958
958
  17845,
959
- 35197,
959
+ 35200,
960
960
  762
961
961
  ],
962
962
  "name": "SuperTokenFactoryBase",
@@ -1384,7 +1384,7 @@
1384
1384
  },
1385
1385
  {
1386
1386
  "baseFunctions": [
1387
- 35137
1387
+ 35140
1388
1388
  ],
1389
1389
  "body": {
1390
1390
  "id": 30647,
@@ -1513,7 +1513,7 @@
1513
1513
  },
1514
1514
  {
1515
1515
  "baseFunctions": [
1516
- 35131
1516
+ 35134
1517
1517
  ],
1518
1518
  "body": {
1519
1519
  "id": 30672,
@@ -1711,7 +1711,7 @@
1711
1711
  "name": "_updateCodeAddress",
1712
1712
  "nodeType": "Identifier",
1713
1713
  "overloadedDeclarations": [],
1714
- "referencedDeclaration": 35190,
1714
+ "referencedDeclaration": 35193,
1715
1715
  "src": "1821:18:89",
1716
1716
  "typeDescriptions": {
1717
1717
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
@@ -2858,7 +2858,7 @@
2858
2858
  "stateVariable": false,
2859
2859
  "storageLocation": "default",
2860
2860
  "typeDescriptions": {
2861
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
2861
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
2862
2862
  "typeString": "contract UUPSProxy"
2863
2863
  },
2864
2864
  "typeName": {
@@ -2868,13 +2868,13 @@
2868
2868
  "id": 30758,
2869
2869
  "name": "UUPSProxy",
2870
2870
  "nodeType": "IdentifierPath",
2871
- "referencedDeclaration": 35254,
2871
+ "referencedDeclaration": 35257,
2872
2872
  "src": "3176:9:89"
2873
2873
  },
2874
- "referencedDeclaration": 35254,
2874
+ "referencedDeclaration": 35257,
2875
2875
  "src": "3176:9:89",
2876
2876
  "typeDescriptions": {
2877
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
2877
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
2878
2878
  "typeString": "contract UUPSProxy"
2879
2879
  }
2880
2880
  },
@@ -2894,7 +2894,7 @@
2894
2894
  "nodeType": "NewExpression",
2895
2895
  "src": "3194:13:89",
2896
2896
  "typeDescriptions": {
2897
- "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_UUPSProxy_$35254_$",
2897
+ "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_UUPSProxy_$35257_$",
2898
2898
  "typeString": "function () returns (contract UUPSProxy)"
2899
2899
  },
2900
2900
  "typeName": {
@@ -2904,13 +2904,13 @@
2904
2904
  "id": 30761,
2905
2905
  "name": "UUPSProxy",
2906
2906
  "nodeType": "IdentifierPath",
2907
- "referencedDeclaration": 35254,
2907
+ "referencedDeclaration": 35257,
2908
2908
  "src": "3198:9:89"
2909
2909
  },
2910
- "referencedDeclaration": 35254,
2910
+ "referencedDeclaration": 35257,
2911
2911
  "src": "3198:9:89",
2912
2912
  "typeDescriptions": {
2913
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
2913
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
2914
2914
  "typeString": "contract UUPSProxy"
2915
2915
  }
2916
2916
  }
@@ -2926,7 +2926,7 @@
2926
2926
  "src": "3194:15:89",
2927
2927
  "tryCall": false,
2928
2928
  "typeDescriptions": {
2929
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
2929
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
2930
2930
  "typeString": "contract UUPSProxy"
2931
2931
  }
2932
2932
  },
@@ -3008,7 +3008,7 @@
3008
3008
  "referencedDeclaration": 30760,
3009
3009
  "src": "3261:5:89",
3010
3010
  "typeDescriptions": {
3011
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
3011
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
3012
3012
  "typeString": "contract UUPSProxy"
3013
3013
  }
3014
3014
  },
@@ -3019,7 +3019,7 @@
3019
3019
  "lValueRequested": false,
3020
3020
  "memberName": "initializeProxy",
3021
3021
  "nodeType": "MemberAccess",
3022
- "referencedDeclaration": 35241,
3022
+ "referencedDeclaration": 35244,
3023
3023
  "src": "3261:21:89",
3024
3024
  "typeDescriptions": {
3025
3025
  "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
@@ -3078,7 +3078,7 @@
3078
3078
  "referencedDeclaration": 30760,
3079
3079
  "src": "3356:5:89",
3080
3080
  "typeDescriptions": {
3081
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
3081
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
3082
3082
  "typeString": "contract UUPSProxy"
3083
3083
  }
3084
3084
  }
@@ -3086,7 +3086,7 @@
3086
3086
  "expression": {
3087
3087
  "argumentTypes": [
3088
3088
  {
3089
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
3089
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
3090
3090
  "typeString": "contract UUPSProxy"
3091
3091
  }
3092
3092
  ],
@@ -4337,10 +4337,10 @@
4337
4337
  "name": "UUPSProxy",
4338
4338
  "nodeType": "Identifier",
4339
4339
  "overloadedDeclarations": [],
4340
- "referencedDeclaration": 35254,
4340
+ "referencedDeclaration": 35257,
4341
4341
  "src": "4597:9:89",
4342
4342
  "typeDescriptions": {
4343
- "typeIdentifier": "t_type$_t_contract$_UUPSProxy_$35254_$",
4343
+ "typeIdentifier": "t_type$_t_contract$_UUPSProxy_$35257_$",
4344
4344
  "typeString": "type(contract UUPSProxy)"
4345
4345
  }
4346
4346
  },
@@ -4355,7 +4355,7 @@
4355
4355
  "src": "4597:12:89",
4356
4356
  "tryCall": false,
4357
4357
  "typeDescriptions": {
4358
- "typeIdentifier": "t_contract$_UUPSProxy_$35254",
4358
+ "typeIdentifier": "t_contract$_UUPSProxy_$35257",
4359
4359
  "typeString": "contract UUPSProxy"
4360
4360
  }
4361
4361
  },
@@ -4366,7 +4366,7 @@
4366
4366
  "lValueRequested": false,
4367
4367
  "memberName": "initializeProxy",
4368
4368
  "nodeType": "MemberAccess",
4369
- "referencedDeclaration": 35241,
4369
+ "referencedDeclaration": 35244,
4370
4370
  "src": "4597:28:89",
4371
4371
  "typeDescriptions": {
4372
4372
  "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
@@ -4804,7 +4804,7 @@
4804
4804
  "canonicalName": "SuperTokenFactory",
4805
4805
  "contractDependencies": [
4806
4806
  28979,
4807
- 35254
4807
+ 35257
4808
4808
  ],
4809
4809
  "contractKind": "contract",
4810
4810
  "fullyImplemented": true,
@@ -4813,7 +4813,7 @@
4813
4813
  30946,
4814
4814
  30889,
4815
4815
  17845,
4816
- 35197,
4816
+ 35200,
4817
4817
  762
4818
4818
  ],
4819
4819
  "name": "SuperTokenFactory",
@@ -5217,7 +5217,7 @@
5217
5217
  },
5218
5218
  "networks": {},
5219
5219
  "schemaVersion": "3.4.7",
5220
- "updatedAt": "2022-05-12T16:07:14.200Z",
5220
+ "updatedAt": "2022-05-19T15:01:21.603Z",
5221
5221
  "devdoc": {
5222
5222
  "kind": "dev",
5223
5223
  "methods": {},