@meterio/sumer-js 0.2.71 → 0.2.73

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 (62) hide show
  1. package/dist/browser/sumer.min.js +7 -7
  2. package/dist/nodejs/constants/arbitrum.js +10 -12
  3. package/dist/nodejs/constants/arbitrum.js.map +1 -1
  4. package/dist/nodejs/constants/basemain.js +1 -1
  5. package/dist/nodejs/constants/bsc.js +6 -6
  6. package/dist/nodejs/constants/bsc.js.map +1 -1
  7. package/dist/nodejs/constants/ethereum.d.ts +6 -2
  8. package/dist/nodejs/constants/ethereum.js +36 -8
  9. package/dist/nodejs/constants/ethereum.js.map +1 -1
  10. package/dist/nodejs/typechain/contracts/Comptroller/CompLogic.d.ts +1 -9
  11. package/dist/nodejs/typechain/contracts/Comptroller/Comptroller.d.ts +31 -90
  12. package/dist/nodejs/typechain/contracts/Interfaces/ICompLogic.d.ts +1 -9
  13. package/dist/nodejs/typechain/contracts/Interfaces/IComptroller.d.ts +1 -68
  14. package/dist/nodejs/typechain/contracts/Oracle/index.d.ts +0 -4
  15. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.d.ts +1 -37
  16. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js +1 -46
  17. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js.map +1 -1
  18. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.d.ts +1 -37
  19. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js +1 -46
  20. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js.map +1 -1
  21. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.d.ts +0 -36
  22. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js +0 -45
  23. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js.map +1 -1
  24. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.d.ts +1 -37
  25. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js +1 -46
  26. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js.map +1 -1
  27. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.d.ts +1 -47
  28. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js +1 -59
  29. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js.map +1 -1
  30. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.d.ts +1 -37
  31. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js +1 -46
  32. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js.map +1 -1
  33. package/dist/nodejs/typechain/factories/contracts/Comptroller/ComptrollerStorage__factory.d.ts +1 -1
  34. package/dist/nodejs/typechain/factories/contracts/Comptroller/ComptrollerStorage__factory.js +1 -1
  35. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.d.ts +30 -134
  36. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js +35 -168
  37. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js.map +1 -1
  38. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.d.ts +1 -37
  39. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js +1 -46
  40. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js.map +1 -1
  41. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.d.ts +1 -1
  42. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.js +1 -1
  43. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.d.ts +0 -10
  44. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.js +0 -13
  45. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.js.map +1 -1
  46. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.d.ts +0 -78
  47. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.js +0 -99
  48. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.js.map +1 -1
  49. package/dist/nodejs/typechain/factories/contracts/Oracle/index.d.ts +0 -2
  50. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js +1 -3
  51. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js.map +1 -1
  52. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.d.ts +1 -37
  53. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js +1 -46
  54. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js.map +1 -1
  55. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.d.ts +1 -37
  56. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js +1 -46
  57. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js.map +1 -1
  58. package/dist/nodejs/typechain/hardhat.d.ts +0 -72
  59. package/dist/nodejs/typechain/index.d.ts +0 -8
  60. package/dist/nodejs/typechain/index.js +2 -10
  61. package/dist/nodejs/typechain/index.js.map +1 -1
  62. package/package.json +1 -1
@@ -14,7 +14,7 @@ export declare class Comptroller__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): Comptroller__factory;
17
- static readonly bytecode = "0x6080806040523460bd576000549060ff8260081c16606b575060ff808216106031575b604051615fc490816100c38239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386022565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe61016080604052600436101561001457600080fd5b600090813560e01c9081627e3dd214612f635750806301ffc9a714612f0c5780631407e28114612eaf5780631ededc9114612e6457806322c70ebd14612cea57806323ec2fb214612ca357806324008a6214612c62578063248a9ca314612c3457806324a3d62214612c0b578063250d71e714612bb15780632bebbc0914612b6f5780632f2ff15d14612aad5780633278eb0414612a84578063360f5a0114612a5b57806336568abe146129c85780633e90dce5146126cc578063411679f4146125d557806347ef3b3b146125645780634cbfec681461252c5780634e79238f146125035780634ef4c3e11461228b57806351dff9891461219457806352d84d1e1461216957806354fd4d501461214d57806355ee1fe1146120da57806356087375146120195780635ebbea8514611fd75780635f5af1aa14611d745780635fc7e71e14611a5e5780637d71c0b7146116a35780637dc0d1d01461167a57806381a397e4146115eb57806387bae18f146115695780638c765e94146115315780638e8f294b146114d75780639158c2aa1461132257806391d14854146112d657806395ee8208146112aa578063a217fddf1461128e578063a7adfb4414611146578063a7c1abe0146110e7578063abfceffc1461106c578063b0772d0b14610fde578063bdcdc25814610f79578063c299823814610e96578063cc2a9a5b14610bf0578063d02f735114610aa2578063d33219b414610a79578063d547741f14610a33578063d78a18d8146109c4578063da3d454c146106e0578063db0846cb146106bd578063dce154491461065c578063e22b39341461045a578063e63ab1e914610431578063eabe7d91146103f4578063ede4edd014610314578063f794062e146102d55763f96dae0a146102aa57600080fd5b346102d257806003193601126102d25760d1546040516001600160a01b039091168152602090f35b80fd5b50346102d25760203660031901126102d25760209060ff906040906001600160a01b03610300612f7e565b16815260cc84522054166040519015158152f35b50346102d25760203660031901126102d25761032e612f7e565b6040516361bfb47160e11b81523360048201526001600160a01b038216608082602481845afa80156103e957849285916103b2575b506103a357835260cc60205260ff60408420541615610394579061038b610391923383615cd6565b33615732565b80f35b6341554b6360e01b8352600483fd5b631a4e452560e31b8452600484fd5b90506103d791925060803d6080116103e2575b6103cf81836131f9565b810190613264565b505091909138610363565b503d6103c5565b6040513d86823e3d90fd5b50346102d25761040336613082565b6001600160a01b038316845260cc602052604084205492939290919060ff1615610394576103919293615cd6565b50346102d257806003193601126102d2576020604051600080516020615f6f8339815191528152f35b50346102d25760603660031901126102d25760043567ffffffffffffffff81116106585761048c903690600401613233565b60243567ffffffffffffffff8111610654576104ac903690600401613233565b60443567ffffffffffffffff8111610650576104cc903690600401613233565b9190936104d76158fc565b80158015610646575b801561063c575b61062d57865b8181106104f8578780f35b8061055f61051161050c600194878a6156fa565b61570a565b8961052b6105268588888060a01b03946156fa565b61571e565b168b5260e560205260408b2090640100000000600160981b0382549160201b1690640100000000600160981b031916179055565b61056d61050c82878a6156fa565b828060a01b0361058161052684878d6156fa565b168a5260e56020526001600160781b038360408c200191166001600160781b03198254161790556105b661052682858b6156fa565b7f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da126105e561050c84888b6156fa565b916105f461050c858a8d6156fa565b90610624604051928392888060a01b031695839092916001600160781b0360209181604085019616845216910152565b0390a2016104ed565b63b4fa3fb360e01b8752600487fd5b50828114156104e7565b50818114156104e0565b8580fd5b8380fd5b5080fd5b50346102d25760403660031901126102d257610676612f7e565b6001600160a01b0316815260cb60205260408120805460243592908310156102d25760206106a484846130ed565b905460405160039290921b1c6001600160a01b03168152f35b50346102d257806003193601126102d257602060ff60e854166040519015158152f35b50346102d2576106ef36613082565b6001600160a01b03831680855260cc60205260408520549094919060ff16156109b55784825260e560205260ff604083205460081c166109a6576001600160a01b0383169493825b86845260cb60205260408420548110156108485786845260cb60205261076081604086206130ed565b905460039190911b1c6001600160a01b031680855260cc602052604085205460ff1661081b576040516361bfb47160e11b815260048101899052608081602481855afa90811561081057869087926107ed575b501590816107e4575b50156107d557906107cf60019287615732565b01610737565b6334b04fe360e11b8552600485fd5b905015386107bc565b9050610807915060803d81116103e2576103cf81836131f9565b505090386107b3565b6040513d88823e3d90fd5b845260e560205260ff604085205460081c16610839576001906107cf565b630a9105a360e31b8452600484fd5b50848681855260cc602052600160408620018160005260205260ff6040600020541615610935575b506040516308f7a6e360e31b8152602081600481855afa801561092a57849086906108ef575b6108a092506133d9565b90845260e56020526001600160781b03604085205460201c16106108e0576108c89293613db5565b90506108d15780f35b633a23d82560e01b8152600490fd5b6353977d1f60e01b8352600483fd5b50506020813d602011610922575b8161090a602093836131f9565b8101031261091d57836108a09151610896565b600080fd5b3d91506108fd565b6040513d87823e3d90fd5b8133036109975733855260cc60205260ff604086205416156109885761095b8633615b77565b81855260cc602052600160408620019060005260205261098260ff604060002054166154ff565b85610870565b6341554b6360e01b8552600485fd5b6318e2bacb60e11b8552600485fd5b63095865a360e11b8252600482fd5b6341554b6360e01b8252600482fd5b50346102d25760203660031901126102d257604060c09160ff6109e5613024565b16815260e4602052205461ffff6040519160ff81168352818160081c166020840152818160181c166040840152818160281c166060840152818160381c16608084015260481c1660a0820152f35b50346102d25760403660031901126102d257610391600435610a53612f94565b90610a74610a6f82600052606560205260016040600020015490565b615a0b565b615a4f565b50346102d257806003193601126102d25760dd546040516001600160a01b039091168152602090f35b50346102d257610ab136613105565b5050506001600160a01b0390911680835260cc602052604083205490919060ff1615610394576001600160a01b031680835260cc602052604083205490919060ff16156103945780835260e560205260ff604084205460181c16610be15790602060049260405193848092635fe3b56760e01b82525afa918215610bb1578392610bbc575b50602060049160405192838092635fe3b56760e01b82525afa908115610bb1578391610b82575b506001600160a01b03908116911603610b735780f35b630c73eb0560e01b8152600490fd5b610ba4915060203d602011610baa575b610b9c81836131f9565b8101906156db565b38610b5d565b503d610b92565b6040513d85823e3d90fd5b6004919250610bd9602091823d8411610baa57610b9c81836131f9565b929150610b36565b6307f4077b60e11b8352600483fd5b50346102d25760c03660031901126102d257610c0a612f7e565b610c12612f94565b610c1a612faa565b91610c23612fc0565b6084356001600160a01b038116908190036106505760a4356001600160a01b0381169290839003610e925786549060ff8260081c161596878098610e85575b8015610e6e575b15610e125760ff19831660011789557ff261845a790fe29bbd6631e2ca4a5bdc83e6eed7c3271d9590d97287e00e9123966020967f4f813296278c4a6ff473beaa88063942b681c61aa1f935692e19c41a02dde62a948a610e01575b508a8052606588526040808c206001600160a01b0383166000908152908a52205460ff1615610da7575b5060d180546001600160a01b039283166001600160a01b03199182161790915560da80549383169382168417905560de805494909216931683179055604080519182526020820192909252a16001600160601b0360a01b60dd54161760dd55806001600160601b0360a01b60db54161760db55604051908152a1610d705780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b8a8052606588526040808c206001600160a01b03929092166000818152928a529120805460ff1916600117905533908b7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a438610cef565b61ffff1916610101178b5538610cc5565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b158015610c695750600160ff841614610c69565b50600160ff841610610c62565b8680fd5b50346102d25760203660031901126102d25760043567ffffffffffffffff81116106585736602382011215610658578060040135610ed38161321b565b91610ee160405193846131f9565b8183526024602084019260051b82010190368211610f7557602401915b818310610f5557505050805190825b828110610f18578380f35b6001600160a01b03610f2a828461339c565b511680855260cc60205260ff604086205416156109885790610f4f6001923390615b77565b01610f0d565b82356001600160a01b038116810361091d57815260209283019201610efe565b8480fd5b50346102d257610f8836612fd6565b6001600160a01b03841680865260e56020526040862054949594919392509060101c60ff16610fcf57835260cc60205260ff60408420541615610394576103919293615cd6565b63cd1fda9f60e01b8452600484fd5b50346102d257806003193601126102d2576040518091602060cd5492838152019160cd82527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e915b81811061104d576110498561103d818703826131f9565b60405191829182613167565b0390f35b82546001600160a01b0316845260209093019260019283019201611026565b50346102d25760203660031901126102d2576001600160a01b0361108e612f7e565b16815260cb60205260408120604051918260208354918281520192825260208220915b8181106110c8576110498561103d818703826131f9565b82546001600160a01b03168452602090930192600192830192016110b1565b50346102d257806003193601126102d25760e6546040805161ffff83168152601083901c63ffffffff9081166020830152603084901c811692820192909252605083901c909116606082015260709190911c60ff16608082015260a090f35b50346102d25760a03660031901126102d2576111606158fc565b60e65461ffff61116e61551c565b1661ffff1960e654161760e6556111836156a2565b60e65469ffffffff0000000000006111996156b5565b60301b169065ffffffff000063ffffffff60501b6111b56156c8565b60501b169360101b16906dffffffffffffffffffffffff0000191617171760e65560843560ff8116810361128a575060e6805460ff60701b191660ff60701b83161790557f14afda479c9cdb1b364268a7f4859305595991e335158f423d3f30ece9565fa19060ff9061128461122961551c565b6112316156a2565b6112396156b5565b6112416156c8565b9160405196879660701c1693869363ffffffff90816080958160ff969a99959a61ffff60a08b019c168a5216602089015216604087015216606085015216910152565b0390a180f35b8280fd5b50346102d257806003193601126102d257602090604051908152f35b50346102d25760203660031901126102d25760206112ce6112c9612f7e565b61554f565b604051908152f35b50346102d25760403660031901126102d25760406112f2612f94565b9160043581526065602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102d25760c03660031901126102d25761133c613024565b6024359061ffff821680920361128a5760443561ffff8116809103610654576064359061ffff8216809203610f75576084359361ffff85168095036106505760a4359061ffff8216809203610e92577f5a7475dc25262b989cc368a46a0d7d9102beffcc3e8dc131b5254ec31026dd089260c0926113b86158fc565b60ff8716978896878b5260e460205260ff60408c20541615936040516113dd816131aa565b8981528c8a602083019189835260408401858152606085019387855260ff604060808801948b865260a08901968d8852815260e46020522096511660ff19875416178655519361ffff60481b61ffff60381b66ffff000000000064ffff0000008954955160181b16935160281b16945160381b16945160481b169461ffff60481b199262ffff0061ffff60381b199260081b169066ffffffffffff001916171617161717179055604051958652602086015260408501526060840152608083015260a0820152a260e6549160ff8360701c16106114b8578280f35b60ff60701b1990911660709190911b60ff60701b161760e65538808280f35b50346102d25760203660031901126102d2576060906040906001600160a01b036114ff612f7e565b16815260cc6020522060ff600282549201541660ff604051928181161515845260081c16602083015215156040820152f35b50346102d257806003193601126102d257606060e75461ffff604051918181168352818160101c16602084015260201c166040820152f35b50346102d25760203660031901126102d257611583612f7e565b61158b6158fc565b6001600160a01b031680156115dc576020817f2d4667ae407248b3da2da6f92d6dc3c9d3529d53fbdc7d476d540d68bb29d02d926001600160601b0360a01b60dd54161760dd55604051908152a180f35b6342bcdf7f60e11b8252600482fd5b50346102d25760203660031901126102d25760c0906040906001600160a01b03611613612f7e565b16815260e5602052206001600160781b0360018254920154166001600160781b036040519260ff81161515845260ff8160081c161515602085015260ff8160101c161515604085015260ff8160181c161515606085015260201c16608083015260a0820152f35b50346102d257806003193601126102d25760db546040516001600160a01b039091168152602090f35b50346102d25760203660031901126102d2576116bd612f7e565b6116c56158fc565b6001600160a01b03811680835260cc602052604083205490919060ff1615611a4f5781835260e560205260ff60408420541680611a36575b80611a1d575b80611a04575b156119f5576117179061554f565b6040516308f7a6e360e31b815290602082600481865afa9182156103e95784926119bf575b506117596001926ec097ce7bc90715b34b9f1000000000926133b0565b04116119b0576040516318160ddd60e01b8152602081600481855afa908115610bb157839161197e575b5061196f5780825260cc60205281600260408220828155015560cd5480835b81811061193e575b506117b68183106154ff565b600019810190811161192a57906117ea6117d261180e936130bc565b905460039190911b1c6001600160a01b0316916130bc565b81546001600160a01b0393841660039290921b91821b9390911b1916919091179055565b60cd548015611916576000190161183e6118298260cd6130ed565b81549060018060a01b039060031b1b19169055565b60cd5560da5482906001600160a01b0316803b156106585781809160246040518094819363d5e5cec560e01b83528860048401525af1801561190b576118f6575b50507f302feb03efd5741df80efe7f97f5d93d74d46a542a3d312d0faae64fa1f3e0e96020604051838152a180825260e56020818152604080852060010180546effffffffffffffffffffffffffffff19169055928452528120805472ffffffffffffffffffffffffffffff000000001916905580f35b81611900916131f9565b61065857813861187f565b6040513d84823e3d90fd5b634e487b7160e01b83526031600452602483fd5b634e487b7160e01b84526011600452602484fd5b83611948826130bc565b905460039190911b1c6001600160a01b031614611967576001016117a2565b9150386117aa565b63ceb2484b60e01b8252600482fd5b90506020813d6020116119a8575b81611999602093836131f9565b8101031261091d575138611783565b3d915061198c565b6315d4aa5b60e01b8252600482fd5b91506020823d6020116119ed575b816119da602093836131f9565b8101031261091d5790519061175961173c565b3d91506119cd565b63049a260960e31b8352600483fd5b5081835260e560205260ff604084205460181c16611709565b5081835260e560205260ff604084205460101c16611703565b5081835260e560205260ff604084205460081c166116fd565b63246b81d360e01b8352600483fd5b50346102d257611a6d36613105565b9291509260018060a01b0381169182865260cc60205260ff604087205416158015611d54575b611d4557604051637f4e225760e11b8152602081600481875afa908115611c64578791611d26575b50159081611cce575b5080611cc1575b611cb2576040516395dd919360e01b81526001600160a01b0385166004820181905290949092602086602481845afa958615611c64578796611c7e575b5060e65493611b2063ffffffff8660501c16426133e6565b90885260e260205265ffffffffffff6040892054161015611c6f57602060049160405192838092630c71782360e41b82525afa908115611c64578791611c35575b5015611b815750505011611b725780f35b63e46c155960e01b8152600490fd5b81611b8b916133f3565b905015611c2657611b9b9061554f565b9061ffff8116655af3107a4000810290808204655af3107a40001490151715611c1257670de0b6b3a764000080611be381611bdb8963ffffffff966133b0565b0480966133b0565b04049160101c1611600014611bfb575011611b725780f35b915011156103915763e46c155960e01b8152600490fd5b634e487b7160e01b86526011600452602486fd5b63095bf33360e01b8552600485fd5b611c57915060203d602011611c5d575b611c4f81836131f9565b810190613339565b38611b61565b503d611c45565b6040513d89823e3d90fd5b63d26a7d5f60e01b8752600487fd5b9095506020813d602011611caa575b81611c9a602093836131f9565b8101031261091d57519438611b08565b3d9150611c8d565b639557c3f160e01b8552600485fd5b5060ff60e8541615611acb565b604051637f4e225760e11b81529150602090829060049082906001600160a01b03165afa908115610810578691611d07575b5038611ac4565b611d20915060203d602011611c5d57611c4f81836131f9565b38611d00565b611d3f915060203d602011611c5d57611c4f81836131f9565b38611abb565b6334b04fe360e11b8652600486fd5b506001600160a01b038116865260cc602052604086205460ff1615611a93565b50346102d25760203660031901126102d257611d8e612f7e565b611d966158fc565b6001600160a01b031680156115dc5760d554600080516020615f6f83398151915260005260656020527fbfe93621c6aa2dbf737e9056c9b79e4d30ee4f6b28b18be2cb71aac8a7bf258f547f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e926001600160a01b039092169190611e1990615a0b565b600080516020615f6f833981519152845260656020526040842060018060a01b03831660005260205260ff60406000205416611f67575b60d580546001600160a01b03191682179055600080516020615f6f83398151915260005260656020527fbfe93621c6aa2dbf737e9056c9b79e4d30ee4f6b28b18be2cb71aac8a7bf258f54611ea490615a0b565b600080516020615f6f83398151915284526065602052604084208160005260205260ff6040600020541615611efb575b5060d554604080516001600160a01b03938416815292909116602083015281908101611284565b600080516020615f6f8339815191528452606560205260408420816000526020526040600020600160ff198254161790553390600080516020615f6f8339815191527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8680a438611ed4565b600080516020615f6f833981519152845260656020526040842060018060a01b038316600052602052604060002060ff1981541690553382600080516020615f6f8339815191527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8780a4611e50565b50346102d25760203660031901126102d257611ff1613024565b611ff96158fc565b60e6805460ff60701b191660709290921b60ff60701b1691909117905580f35b50346102d25760603660031901126102d2576120336158fc565b61ffff61203e61551c565b1661ffff1960e754161760e75561205361552d565b60e75463ffff000065ffff0000000061206a61553e565b60201b169260101b169065ffffffff00001916171760e7557f2698927ee5b9013fbd186eaff76d8f2c53d81f992f036c5a8e0ebcc3b9e34c2760606120ad61551c565b61ffff6120b861552d565b816120c161553e565b918160405195168552166020840152166040820152a180f35b50346102d25760203660031901126102d2576120f4612f7e565b6120fc6158fc565b6001600160a01b031680156115dc576020817ff261845a790fe29bbd6631e2ca4a5bdc83e6eed7c3271d9590d97287e00e9123926001600160601b0360a01b60db54161760db55604051908152a180f35b50346102d257806003193601126102d257602060405160038152f35b50346102d25760203660031901126102d2576004359060cd548210156102d25760206106a4836130bc565b50346102d2576121a336613044565b9092919233855260cc60205260ff60408620541615610988576001600160a01b038316913383900361227c57159081612272575b50612263576040516361bfb47160e11b81526001600160a01b038416600482015290608090829060249082905afa9081156103e9578490859261223f575b50159081612236575b50612227578280f35b61223091615732565b38808280f35b9050153861221e565b905061225a915060803d6080116103e2576103cf81836131f9565b50509038612215565b635dec801160e11b8452600484fd5b90501515386121d7565b6323c2e22960e21b8652600486fd5b50346102d25761229a36613082565b6001600160a01b0390921680845260cc60205260408420549092919060ff16156124a15782845260e560205260ff6040852054166124f4576040516361bfb47160e11b81526001600160a01b0382166004820152608081602481875afa801561092a57859186916124d1575b5084865260cc6020526001604087200160018060a01b03841660005260205260ff604060002054161591826124c8575b50816124bf575b50612446575b5060405163182df0f560e01b815290602082600481865afa9182156103e9578492612412575b506040516318160ddd60e01b815291602083600481875afa92831561092a5785936123dc575b506123a6670de0b6b3a7640000916123ac946133b0565b046133d9565b90825260e56020526001600160781b03600160408420015416106123cd5780f35b6354db2d5d60e11b8152600490fd5b92506020833d60201161240a575b816123f7602093836131f9565b8101031261091d579151916123a661238f565b3d91506123ea565b9091506020813d60201161243e575b8161242e602093836131f9565b8101031261091d57519038612369565b3d9150612421565b8233036124b05733845260cc60205260ff604085205416156124a15761246c8133615b77565b82845260cc602052600160408520019060018060a01b031660005260205261249b60ff604060002054166154ff565b38612343565b6341554b6360e01b8452600484fd5b63094d2b6d60e21b8452600484fd5b9050153861233d565b15915038612336565b90506124ec915060803d6080116103e2576103cf81836131f9565b505038612306565b636be9245d60e11b8452600484fd5b50346102d257604061252061251736613044565b92919091614c6b565b82519182526020820152f35b50346102d25760203660031901126102d257600435801515809103610658576125536158fc565b60ff801960e8541691161760e85580f35b50346102d25760c03660031901126102d25761257e612f7e565b612586612f94565b9061258f612faa565b50612598612fc0565b9133845260cc60205260ff604085205416156124a1576001600160a01b0316835260cc602052604083205460ff1615610394579061039191613286565b50346102d25760403660031901126102d2576125ef612f7e565b6125f7613034565b906126006158fc565b6001600160a01b031680835260cc602052604083205460ff16156103945760ff821680156126bd5780845260e46020526040842060405190612641826131aa565b549060a061ffff60ff841693848452818160081c166020850152818160181c166040850152818160281c166060850152818160381c16608085015260481c16910152036126ae579061039191835260cc602052604083209061ff0082549160081b169061ff001916179055565b631b47388560e11b8352600483fd5b631b47388560e11b8452600484fd5b50346102d25760803660031901126102d2576126e6612f7e565b6126ee613034565b906044356001600160781b038116810361065457606435916001600160781b0383168303610f755761271e6158fc565b6001600160a01b03811680865260cc602052604086205490949060ff166129b95760ff8116156129aa57604051637f4e225760e11b815290602082600481895afa918215611c64576127989261298d575b5085875260cc60205260408720805461ffff191660089290921b61ff0016919091176001179055565b60cd54855b81811061295557505060cd54600160401b81101561294157906117ea8260016127cb940160cd5560cd6130ed565b6401000000004310156129325760da5484906001600160a01b0316803b15610658578190604460405180948193633ace041560e11b835289600484015263ffffffff431660248401525af1801561092a576128fc575b50907f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da12917fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f6020604051868152a183855260e56020526128a7816040872090640100000000600160981b0382549160201b1690640100000000600160981b031916179055565b83855260e5602052600160408620016001600160781b0383166001600160781b03198254161790556128f6604051928392839092916001600160781b0360209181604085019616845216910152565b0390a280f35b9361292a817f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da129493966131f9565b939091612821565b631391e11b60e21b8452600484fd5b634e487b7160e01b86526041600452602486fd5b8561295f826130bc565b905460039190911b1c6001600160a01b03161461297e5760010161279d565b634d5eeb4960e01b8752600487fd5b6129a59060203d602011611c5d57611c4f81836131f9565b61276f565b631b47388560e11b8652600486fd5b634d5eeb4960e01b8652600486fd5b50346102d25760403660031901126102d2576129e2612f94565b336001600160a01b038216036129fe5761039190600435615a4f565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b50346102d257806003193601126102d25760da546040516001600160a01b039091168152602090f35b50346102d257806003193601126102d25760de546040516001600160a01b039091168152602090f35b50346102d25760403660031901126102d257600435612aca612f94565b90612ae6610a6f82600052606560205260016040600020015490565b8083526065602090815260408085206001600160a01b038516865290915283205460ff1615612b13578280f35b8083526065602090815260408085206001600160a01b0394909416808652939091528320805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a438808280f35b50346102d25760203660031901126102d25760209065ffffffffffff906040906001600160a01b03612b9f612f7e565b16815260e28452205416604051908152f35b50346102d25760203660031901126102d25760ff612bcd613024565b612bd56158fc565b1680825260e46020528160408120557f43d0e400379e99c6a1d618a8b7110cc3558e16380afb06f6b69f5da65c17a7d88280a280f35b50346102d257806003193601126102d25760d5546040516001600160a01b039091168152602090f35b50346102d25760203660031901126102d25760206112ce600435600052606560205260016040600020015490565b50346102d257612c7136612fd6565b5050506001600160a01b0316815260cc602052604081205460ff1615612c945780f35b6341554b6360e01b8152600490fd5b50346102d25760203660031901126102d257612cbd612f7e565b612cc56158fc565b6001600160a01b031680156115dc576001600160601b0360a01b60d154161760d15580f35b50346102d25760a03660031901126102d257612d04612f7e565b6024359081151580920361128a576044358015158091036106545760643590811515809203610f7557608435928315158094036106505785805260656020908152604080882033895290915286205460ff161580612e34575b612e25576001600160a01b031680865260e560208181526040808920805460ff8a1660ff1991909116179055838952828252808920805461ff001916600887901b61ff0016179055838952828252808920805462ff00001916601088901b62ff000016179055838952918152818820805463ff0000001916601888901b63ff00000016179055815192835282019590955293840152606083015260808201527f6cdba85bf8c0449c45d7967a9c1ef7e6f69aabd25eb273e4b6f184f9e26477a69060a090a180f35b630e8e849b60e41b8652600486fd5b50600080516020615f6f833981519152865260656020908152604080882033895290915286205460ff1615612d5d565b50346102d25760a03660031901126102d257612e7e612f7e565b612e86612f94565b50612e8f612faa565b9033835260cc60205260ff60408420541615610394579061039191613286565b50346102d25760403660031901126102d257612ec9612f7e565b33825260cc60205260ff604083205416156109b5576001600160a01b0316815260e260205260408120805465ffffffffffff19164265ffffffffffff1617905580f35b50346102d25760203660031901126102d25760043563ffffffff60e01b811680910361065857602090637965db0b60e01b8114908115612f52575b506040519015158152f35b6301ffc9a760e01b14905082612f47565b90503461065857816003193601126106585780600160209252f35b600435906001600160a01b038216820361091d57565b602435906001600160a01b038216820361091d57565b604435906001600160a01b038216820361091d57565b606435906001600160a01b038216820361091d57565b608090600319011261091d576004356001600160a01b038116810361091d57906024356001600160a01b038116810361091d57906044356001600160a01b038116810361091d579060643590565b6004359060ff8216820361091d57565b6024359060ff8216820361091d57565b608090600319011261091d576004356001600160a01b038116810361091d57906024356001600160a01b038116810361091d57906044359060643590565b606090600319011261091d576004356001600160a01b038116810361091d57906024356001600160a01b038116810361091d579060443590565b60cd548110156130d75760cd60005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b80548210156130d75760005260206000200190600090565b60a090600319011261091d576004356001600160a01b038116810361091d57906024356001600160a01b038116810361091d57906044356001600160a01b038116810361091d57906064356001600160a01b038116810361091d579060843590565b602060408183019282815284518094520192019060005b81811061318b5750505090565b82516001600160a01b031684526020938401939092019160010161317e565b60c0810190811067ffffffffffffffff8211176131c657604052565b634e487b7160e01b600052604160045260246000fd5b610140810190811067ffffffffffffffff8211176131c657604052565b90601f8019910116810190811067ffffffffffffffff8211176131c657604052565b67ffffffffffffffff81116131c65760051b60200190565b9181601f8401121561091d5782359167ffffffffffffffff831161091d576020808501948460051b01011161091d57565b919082608091031261091d578151916020810151916060604083015192015190565b6001600160a01b038116338103613328576040516361bfb47160e11b81526001600160a01b038416600482015290608090829060249082905afa90811561331c576000906000926132f8575b501590816132ef575b506132e4575050565b6132ed91615732565b565b905015386132db565b9050613313915060803d6080116103e2576103cf81836131f9565b505090386132d2565b6040513d6000823e3d90fd5b6323c2e22960e21b60005260046000fd5b9081602091031261091d5751801515810361091d5790565b6040519061335e826131dc565b6000610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b80518210156130d75760209160051b010190565b818102929181159184041417156133c357565b634e487b7160e01b600052601160045260246000fd5b919082018092116133c357565b919082039182116133c357565b6101005260e052600160ff60e65460701c160160ff81116133c35761341a60ff821661321b565b9161342860405193846131f9565b60ff8216808452601f199061343c9061321b565b0160005b818110613d9e57505060e0516001600160a01b03161515610120819052613d40575b60006101408190529081613474613351565b9060018060a01b036101005116610140515260cb60205260406101405120936040518086602082985493848152019061014051526020610140512092610140515b818110613d1e5750506134ca925003866131f9565b610140515b8551811015613933576001600160a01b036134ea828861339c565b5116906101405150610140515081610140515260cc60205260ff6040610140512054161561392a5781610140515260cc60205260ff604061014051205460081c1660ff613537828c61339c565b5151161580613921575b61378f575b6040516361bfb47160e11b8152610100516001600160a01b0316600482015290608082602481875afa9182156136985761014051928391829182919061376a575b5060e0516001600160a01b0316871494851580613762575b8061375a575b61374b576135e9670de0b6b3a76400006135e1816135d98195826135d38f6135cc9061554f565b9a8b6133b0565b046133b0565b0494856133b0565b0494846133b0565b04946136a6575b5050602060049560405196878092637f4e225760e11b82525afa948515613698576001958d91610140519161367a575b501561365a5782604092613649602061363f6136519761363f9661339c565b51019182516133d9565b90528d61339c565b90525b016134cf565b82608092613649606061363f6136739761363f9661339c565b9052613654565b613692915060203d8111611c5d57611c4f81836131f9565b38613620565b6040513d61014051823e3d90fd5b6101405191969491818102918015908304909114171561371457670de0b6b3a7640000900482811161372e576136dc91926133e6565b905b6101405186810296801590880490911417156137145761370d602091670de0b6b3a764000060049804906133d9565b93956135f0565b634e487b7160e01b61014051526011600452602461014051fd5b6137419261373b916133e6565b906133d9565b61014051906136de565b50505050505060019150613654565b5083156135a5565b50811561359f565b9250505061378791925060803d81116103e2576103cf81836131f9565b939238613587565b80610140515260e460205260406101405120604051906137ae826131aa565b549060ff8216815261ffff8260081c1690816020820152604081019161ffff8460181c168352606082019261ffff8560281c16845260a0608084019361ffff8760381c168552019061ffff8660481c168252655af3107a4000830292808404655af3107a400014901517156137145761ffff90511693655af3107a4000850294808604655af3107a400014901517156137145761ffff90511692655af3107a4000840293808504655af3107a400014901517156137145761ffff9051169081655af3107a4000810204655af3107a400014821517156137145761ffff9051169283655af3107a4000810204655af3107a4000148415171561371457655af3107a400094859360ff604051986138c28a6131dc565b16885261014051602089015261014051604089015261014051606089015261014051608089015260a088015260c087015260e08601520261010084015202610120820152613910828c61339c565b5261391b818b61339c565b50613546565b50801515613541565b60019150613654565b50929590935093909360018060a01b0360e05116610140515260cc60205260ff604061014051205460081c169561014051955b60ff871660ff8516811015613b535760ff613981828661339c565b51511615613b4957613993908461339c565b519060808201805180613b29575b5060408301805180613b09575b50815180613ae9575b50805180613ac9575b50602084018051906139d860608701928351906133d9565b151580613ab4575b613a7857855160ff168d03613a0b57505050505060ff90965b1660ff81146133c35760010195613966565b91613a5f86670de0b6b3a7640000613a58613a72989f9d979e95610120613a4d84613a43613a6a9b60ff9f61010001519051906133b0565b04610140516133d9565b9401519051906133b0565b04906133d9565b6101405251906133d9565b9751906133d9565b946139f9565b919260a49360ff8751169351925190519151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b50613ac283518551906133d9565b15156139e0565b613adf606086019182519060e088015191615ad5565b83529052386139c0565b613aff606086019182519060e088015191615ad5565b84529052386139b7565b613b1f602086019182519060a088015191615ad5565b83529052386139ae565b613b3f602085019182519060c087015191615ad5565b83529052386139a1565b509560ff906139f9565b5095509550505090613bc8613bc0613b71613bd39361014051615b4e565b91909482866101405260ff60e854169687613d07575b506040880193613b9b855161014051615b4e565b8652888161014052613cea575b5080613cc9575b508681613cab575b613c63576133d9565b9051906133d9565b6080840151906133d9565b80613c595750613a43613c2792670de0b6b3a76400009261012051600014613c385715613c2d575b613c1283613a4360c08401516020850151906133b0565b610140525b606060e0820151910151906133b0565b90600090565b600061014052613bfb565b50613c5083613a4360a08401516020850151906133b0565b61014052613c17565b9291505060009190565b81613c8d575b81156133d957613c8660608901928351906101208b015191615ad5565b92526133d9565b613ca460208901928351906101008b015191615ad5565b9252613c69565b613cc260608a01928351906101208c015191615ad5565b9252613bb7565b9050613ce260208901918251906101008b015191615ad5565b915238613baf565b613cfa60808b0191825190615b4e565b9091526101405238613ba8565b91613d129192615b4e565b91906101405238613b87565b84546001600160a01b031683526001948501948a9450602090930192016134b5565b604051637f4e225760e11b815260e051602090829060049082906001600160a01b03165afa90811561331c57600091613d7f575b501561012052613462565b613d98915060203d602011611c5d57611c4f81836131f9565b38613d74565b602090613da9613351565b82828801015201613440565b60e05260a05261010052600160ff60e65460701c16019060ff82116133c357613df1613de360ff841661321b565b60405160c05260c0516131f9565b60ff821660c05152601f19613e0860ff841661321b565b0160005b81811061452757505060a0516001600160a01b031615156101208190526144c9575b60006101408190529081613e40613351565b9060018060a01b0360e05116610140515260cb60205260406101405120936040518086602082985493848152019061014051526020610140512092610140515b8181106144a7575050613e95925003866131f9565b610140515b85518110156142cc576001600160a01b03613eb5828861339c565b5116906101405150610140515081610140515260cc60205260ff604061014051205416156142c35781610140515260cc60205260ff604061014051205460081c1660ff613f048260c05161339c565b51511615806142ba575b614123575b6040516361bfb47160e11b815260e0516001600160a01b0316600482015290608082602481875afa9182156136985761014051948593849283916140fb575b5060a0516001600160a01b03168214948515806140f3575b806140eb575b6140dc57613fad670de0b6b3a7640000613fa581613f9d8195826135d3613f968b61554f565b998a6133b0565b049a8b6133b0565b0494836133b0565b0494614057575b50604051637f4e225760e11b81529550602090869060049082905afa8015613698576001956101405191614039575b50156140175761363f82604092614004602061363f61400e9760c05161339c565b905260c05161339c565b90525b01613e9a565b61363f82608092614004606061363f6140329760c05161339c565b9052614011565b614051915060203d8111611c5d57611c4f81836131f9565b38613fe3565b6101405194969194909291818102918115918304141715613714576004966020926140b192670de0b6b3a76400009004908082116140b8576140a5670de0b6b3a764000092613a58926133e6565b955b61010051906133b0565b9390613fb4565b61373b906140c693926133e6565b670de0b6b3a7640000613a5861014051956140a7565b50505050505060019150614011565b508315613f70565b508715613f6a565b925050945061411991925060803d81116103e2576103cf81836131f9565b9392959038613f52565b80610140515260e46020526040610140512060405190614142826131aa565b549060ff8216815261ffff8260081c16806020830152604082019061ffff8460181c168252606083019161ffff8560281c16835260a0608085019461ffff8760381c168652019061ffff8660481c16825282655af3107a4000810204655af3107a400014831517156137145761ffff9051169283655af3107a4000810204655af3107a400014841517156137145761ffff9051169384655af3107a4000810204655af3107a400014851517156137145761ffff9051169081655af3107a4000810204655af3107a400014821517156137145761ffff9051169283655af3107a4000810204655af3107a4000148415171561371457655af3107a4000948580949281809460ff6040519b6142548d6131dc565b168b526101405160208c01526101405160408c01526101405160608c01526101405160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526142a78260c05161339c565b526142b48160c05161339c565b50613f13565b50801515613f0e565b60019150614011565b50919350919360018060a01b0360a05116610140515260cc60205260ff604061014051205460081c169461014051945b60ff861660ff841681101561448a5760ff6143198260c05161339c565b515116156144805761432d9060c05161339c565b519060808201805180614460575b5060408301805180614440575b50815180614420575b50805180614400575b506020840180519061437260608701928351906133d9565b1515806143eb575b613a7857855160ff168c036143a557505050505060ff90955b1660ff81146133c357600101946142fc565b91613a5f86670de0b6b3a7640000613a586143e5989e9c979d95610120613a4d84613a436143dd9b60ff9f61010001519051906133b0565b9651906133d9565b93614393565b506143f983518551906133d9565b151561437a565b614416606086019182519060e088015191615ad5565b835290523861435a565b614436606086019182519060e088015191615ad5565b8452905238614351565b614456602086019182519060a088015191615ad5565b8352905238614348565b614476602085019182519060c087015191615ad5565b835290523861433b565b509460ff90614393565b50945094505090613bc8613bc0613b71613bd39361014051615b4e565b84546001600160a01b031683526001948501948a945060209093019201613e80565b604051637f4e225760e11b815260a051602090829060049082906001600160a01b03165afa90811561331c57600091614508575b501561012052613e2e565b614521915060203d602011611c5d57611c4f81836131f9565b386144fd565b602090614532613351565b828260c05101015201613e0c565b60e05260a05261010052600160ff60e65460701c16019060ff82116133c35761456e613de360ff841661321b565b60ff821660c05152601f1961458560ff841661321b565b0160005b818110614c5257505060a0516001600160a01b03161515610120819052614bf4575b600061014081905290816145bd613351565b9060018060a01b0360e05116610140515260cb60205260406101405120936040518086602082985493848152019061014051526020610140512092610140515b818110614bd2575050614612925003866131f9565b610140515b8551811015614a1c576001600160a01b03614632828861339c565b5116906101405150610140515081610140515260cc60205260ff60406101405120541615614a135781610140515260cc60205260ff604061014051205460081c1660ff6146818260c05161339c565b5151161580614a0a575b614873575b6040516361bfb47160e11b815260e0516001600160a01b0316600482015290608082602481875afa9182156136985761014051928391829182919061484e575b5060a0516001600160a01b0316871494851580614846575b8061483e575b61482f57614715670de0b6b3a76400006135e1816135d98195826135d38f6135cc9061554f565b04946147b3575b5050602060049560405196878092637f4e225760e11b82525afa8015613698576001956101405191614795575b50156147735761363f82604092614004602061363f61476a9760c05161339c565b90525b01614617565b61363f82608092614004606061363f61478e9760c05161339c565b905261476d565b6147ad915060203d8111611c5d57611c4f81836131f9565b38614749565b6147ce670de0b6b3a7640000916101009896939851906133b0565b04828111614818576147e091926133e6565b905b61014051868102968015908804909114171561371457614811602091670de0b6b3a764000060049804906133d9565b939561471c565b6148259261373b916133e6565b61014051906147e2565b5050505050506001915061476d565b5083156146ee565b5081156146e8565b9250505061486b91925060803d81116103e2576103cf81836131f9565b9392386146d0565b80610140515260e46020526040610140512060405190614892826131aa565b549060ff8216815261ffff8260081c16806020830152604082019061ffff8460181c168252606083019161ffff8560281c16835260a0608085019461ffff8760381c168652019061ffff8660481c16825282655af3107a4000810204655af3107a400014831517156137145761ffff9051169283655af3107a4000810204655af3107a400014841517156137145761ffff9051169384655af3107a4000810204655af3107a400014851517156137145761ffff9051169081655af3107a4000810204655af3107a400014821517156137145761ffff9051169283655af3107a4000810204655af3107a4000148415171561371457655af3107a4000948580949281809460ff6040519b6149a48d6131dc565b168b526101405160208c01526101405160408c01526101405160608c01526101405160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526149f78260c05161339c565b52614a048160c05161339c565b50614690565b5080151561468b565b6001915061476d565b50919350919360018060a01b0360a05116610140515260cc60205260ff604061014051205460081c169461014051945b60ff861660ff841681101561448a5760ff614a698260c05161339c565b51511615614bc857614a7d9060c05161339c565b519060808201805180614ba8575b5060408301805180614b88575b50815180614b68575b50805180614b48575b5060208401805190614ac260608701928351906133d9565b151580614b33575b613a7857855160ff168c03614af557505050505060ff90955b1660ff81146133c35760010194614a4c565b91613a5f86670de0b6b3a7640000613a58614b2d989e9c979d95610120613a4d84613a436143dd9b60ff9f61010001519051906133b0565b93614ae3565b50614b4183518551906133d9565b1515614aca565b614b5e606086019182519060e088015191615ad5565b8352905238614aaa565b614b7e606086019182519060e088015191615ad5565b8452905238614aa1565b614b9e602086019182519060a088015191615ad5565b8352905238614a98565b614bbe602085019182519060c087015191615ad5565b8352905238614a8b565b509460ff90614ae3565b84546001600160a01b031683526001948501948a9450602090930192016145fd565b604051637f4e225760e11b815260a051602090829060049082906001600160a01b03165afa90811561331c57600091614c33575b5015610120526145ab565b614c4c915060203d602011611c5d57611c4f81836131f9565b38614c28565b602090614c5d613351565b828260c05101015201614589565b60805260a0526101405261012052600160ff60e65460701c16019060ff82116133c357614c9d613de360ff841661321b565b60ff821660c05152601f19614cb460ff841661321b565b0160005b8181106154e657505060a0516001600160a01b0316151560e0819052615489575b60006101008190529081614ceb613351565b9060018060a01b0360805116610100515260cb60205260406101005120936040518086602082985493848152019061010051526020610100512092610100515b818110615467575050614d40925003866131f9565b610100515b8551811015615181576001600160a01b03614d60828861339c565b5116906101005150610100515081610100515260cc60205260ff604061010051205416156151785781610100515260cc60205260ff604061010051205460081c169160ff614db08460c05161339c565b515116158061516f575b614fbe575b6040516361bfb47160e11b8152608080516001600160a01b0316600483015290939084602481855afa938415614ef2576101005192610100519161010051906101005197614f96575b5060a0516001600160a01b0316821494851580614f8e575b80614f86575b614f7757670de0b6b3a7640000614e5681614e4e816135d960049d826135d36135cc8c61554f565b0495846133b0565b0495614f00575b505060209060405196878092637f4e225760e11b82525afa8015614ef2576001956101005191614ed4575b5015614eb25761363f82604092614004602061363f614ea99760c05161339c565b90525b01614d45565b61363f82608092614004606061363f614ecd9760c05161339c565b9052614eac565b614eec915060203d8111611c5d57611c4f81836131f9565b38614e88565b6040513d61010051823e3d90fd5b94614f4b9193670de0b6b3a7640000614f206020959861014051906133b0565b0490808211614f5357614f3f670de0b6b3a764000092613a58926133e6565b955b61012051906133b0565b939038614e5d565b61373b90614f6193926133e6565b670de0b6b3a7640000613a586101005195614f41565b50505050505060019150614eac565b508315614e26565b508015614e20565b9250509250614fb491945060803d81116103e2576103cf81836131f9565b9592939038614e08565b82610100515260e46020526040610100512060405190614fdd826131aa565b549060ff8216815261ffff8260081c16806020830152604082019061ffff8460181c168252606083019161ffff8560281c16835260a0608085019461ffff8760381c168652019061ffff8660481c16825282655af3107a4000810204655af3107a400014831517156151555761ffff9051169283655af3107a4000810204655af3107a400014841517156151555761ffff9051169384655af3107a4000810204655af3107a400014851517156151555761ffff9051169081655af3107a4000810204655af3107a400014821517156151555761ffff9051169283655af3107a4000810204655af3107a4000148415171561515557655af3107a4000948580949281809460ff6040519b6150ef8d6131dc565b168b526101005160208c01526101005160408c01526101005160608c01526101005160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526151428460c05161339c565b5261514f8360c05161339c565b50614dbf565b634e487b7160e01b61010051526011600452602461010051fd5b50821515614dba565b60019150614eac565b50919350919360018060a01b0360a05116610100515260cc60205260ff604061010051205460081c169461010051945b60ff861660ff841681101561534c5760ff6151ce8260c05161339c565b51511615615342576151e29060c05161339c565b519060808201805180615322575b5060408301805180615302575b508151806152e2575b508051806152c2575b506020840180519061522760608701928351906133d9565b1515806152ad575b613a7857855160ff168c0361525a57505050505060ff90955b1660ff81146133c357600101946151b1565b9161529c86670de0b6b3a7640000613a586152a7989e9c979d95610120613a4d846152926143dd9b60ff9f61010001519051906133b0565b04610100516133d9565b6101005251906133d9565b93615248565b506152bb83518551906133d9565b151561522f565b6152d8606086019182519060e088015191615ad5565b835290523861520f565b6152f8606086019182519060e088015191615ad5565b8452905238615206565b615318602086019182519060a088015191615ad5565b83529052386151fd565b615338602085019182519060c087015191615ad5565b83529052386151f0565b509460ff90615248565b50945094505090613bc8613bc06153696153b59361010051615b4e565b91909482866101005260ff60e854169687615450575b506040880193615393855161010051615b4e565b8652888161010052615433575080613cc957508681613cab57613c63576133d9565b80613c595750615292613c2792670de0b6b3a76400009260e0516000146154125715615407575b6153f38361529260c08401516020850151906133b0565b61010052606060e0820151910151906133b0565b6000610100526153dc565b5061542a8361529260a08401516020850151906133b0565b61010052613c17565b61544360808b0191825190615b4e565b9091526101005238613ba8565b9161545b9192615b4e565b9190610100523861537f565b84546001600160a01b031683526001948501948a945060209093019201614d2b565b604051637f4e225760e11b815260a051602090829060049082906001600160a01b03165afa90811561331c576000916154c7575b501560e052614cd9565b6154e0915060203d602011611c5d57611c4f81836131f9565b386154bd565b6020906154f1613351565b828260c05101015201614cb8565b1561550657565b634e487b7160e01b600052600160045260246000fd5b60043561ffff8116810361091d5790565b60243561ffff8116810361091d5790565b60443561ffff8116810361091d5790565b6001600160a01b0316600081815260cc602052604090205460ff16156156915760db5460405163fc57d4df60e01b81526004810183905290602090829060249082906001600160a01b03165afa90811561331c5760009161565f575b508091811561564e5760206004916040519283809263313ce56760e01b82525afa90811561331c57600091615611575b5060ff16601281106155ec57505090565b6012908103925082116133c357604d82116133c35761560e91600a0a906133b0565b90565b6020813d602011615646575b8161562a602093836131f9565b8101031261065857519060ff821682036102d2575060ff6155db565b3d915061561d565b6348fa9b2b60e11b60005260046000fd5b906020823d602011615689575b81615679602093836131f9565b810103126102d2575051386155ab565b3d915061566c565b6334b04fe360e11b60005260046000fd5b60243563ffffffff8116810361091d5790565b60443563ffffffff8116810361091d5790565b60643563ffffffff8116810361091d5790565b9081602091031261091d57516001600160a01b038116810361091d5790565b91908110156130d75760051b0190565b356001600160781b038116810361091d5790565b356001600160a01b038116810361091d5790565b60018060a01b038216908160005260cc602052600160406000200160018060a01b0382166000528060205260ff60406000205416156158f6576001600160a01b038216600081815260209283526040808220805460ff1916905560cb8452808220905181548082529183528483209097949092889291830191905b8181106158d45750506157c2925003866131f9565b845193849060005b8281106158a2575b5050846157e4929394959650106154ff565b60005260cb60205260406000209283549060001982019182116133c3576117ea61581161582a93876130ed565b905460039190911b1c6001600160a01b031691866130ed565b825492831561588c577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d93600019019061586761182983836130ed565b55604080516001600160a01b039283168152929091166020830152819081015b0390a1565b634e487b7160e01b600052603160045260246000fd5b816001600160a01b036158b5838b61339c565b5116146158c4576001016157ca565b91965090945085905038806157d2565b84546001600160a01b031683526001948501948a9450602090930192016157ad565b50505050565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff161561593557565b6159fd6044603761594533615d82565b6159d560116159546000615ec2565b60405194859160208301957f416363657373436f6e74726f6c3a206163636f756e742000000000000000000087526159958151809260208688019101615d32565b83017001034b99036b4b9b9b4b733903937b6329607d1b838201526159c4825180936020604885019101615d32565b01010301601f1981018452836131f9565b60405193849262461bcd60e51b84526020600485015251809281602486015285850190615d32565b601f01601f19168101030190fd5b600081815260656020908152604080832033845290915290205460ff1615615a305750565b604460376159fd926159d56011615954615a4933615d82565b93615ec2565b806000526065602052604060002060018060a01b03831660005260205260ff60406000205416615a7d575050565b60008181526065602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4565b929190928115615b4657670de0b6b3a7640000615af282846133b0565b0491670de0b6b3a76400008502858104670de0b6b3a764000014861517156133c3570491600090600095808211600014615b375750505090615b33916133e6565b9190565b919550915061560e92506133e6565b505060009190565b8115615b745781811115615b665790613c27916133e6565b615b6f916133e6565b600091565b91565b9060018060a01b0382168060005260cc60205260016040600020019060018060a01b0383166000528160205260ff604060002054166158f6578060005260e560205260ff60406000205416908115615cb9575b8115615c9c575b8115615c80575b50615c6f576001600160a01b038216600090815260209182526040808220805460ff1916600117905560cb9092522080549290600160401b8410156131c657816117ea85615c4c9360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a5980181556130ed565b604080516001600160a01b03928316815292909116602083015281908101615887565b63110df29b60e21b60005260046000fd5b905060005260e560205260ff60406000205460181c1638615bd8565b80915060005260e560205260ff60406000205460101c1690615bd1565b80915060005260e560205260ff60406000205460081c1690615bca565b6001600160a01b03818116600090815260cc60209081526040808320938616835260019093019052205491929160ff1615615d2d57615d1492614540565b9050615d1c57565b633a23d82560e01b60005260046000fd5b505050565b60005b838110615d455750506000910152565b8181015183820152602001615d35565b67ffffffffffffffff81116131c657601f01601f191660200190565b9081518110156130d7570160200190565b600090615d8f602a615d55565b91615d9d60405193846131f9565b602a8352615dab602a615d55565b6020840190601f1901368237835115615eae5760309053825160011015615e9a576078602184015350602960005b60018211615e2e575050615dea5790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015615e86576f181899199a1a9b1b9c1cb0b131b232b360811b901a615e5d8486615d71565b5360041c918015615e72576000190190615dd9565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b600090615ecf6042615d55565b91615edd60405193846131f9565b60428352615eeb6042615d55565b6020840190601f1901368237835115615eae5760309053825160011015615e9a576078602184015350604160005b60018211615f2a575050615dea5790565b9091600f81166010811015615e86576f181899199a1a9b1b9c1cb0b131b232b360811b901a615f598486615d71565b5360041c918015615e72576000190190615f1956fe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa2646970667358221220b720485e8e49212fe03021118e1bc4a684970609b0bb237d41f0d46cbb0ab7e564736f6c634300081a0033";
17
+ static readonly bytecode = "0x6080806040523460bd576000549060ff8260081c16606b575060ff808216106031575b60405161577e90816100c38239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386022565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe61016080604052600436101561001457600080fd5b600090813560e01c9081627e3dd2146128f95750806301ffc9a7146128a25780631407e2811461283657806322c70ebd146126bc57806323ec2fb21461267557806324008a6214612634578063248a9ca31461260657806324a3d622146125dd578063250d71e7146125835780632bebbc09146125415780632f2ff15d1461247f5780633278eb0414612456578063360f5a011461242d57806336568abe1461239a5780633e90dce51461207a578063411679f414611f835780634cbfec6814611f4b5780634e79238f14611f0a5780634ef4c3e114611c8657806352d84d1e14611c5b57806354fd4d5014611c3f57806355ee1fe114611bcc5780635608737514611b0b5780635ebbea8514611ac95780635f5af1aa146118665780635fc7e71e146115455780637dc0d1d01461151c57806381a397e41461148d57806387bae18f1461140b5780638c765e94146113d35780638e8f294b146113795780639158c2aa1461115b57806391d148541461110f57806395ee8208146110e3578063a217fddf146110c7578063a7adfb4414610f7f578063a7c1abe014610f20578063abfceffc14610ea5578063b0772d0b14610e17578063bdcdc25814610db2578063c299823814610cc4578063cc2a9a5b146109f9578063d02f7351146108ab578063d33219b414610882578063d547741f1461083c578063d78a18d8146107cd578063da3d454c1461060b578063db0846cb146105e8578063dce1544914610587578063e22b393414610382578063e63ab1e914610359578063eabe7d911461030d578063ede4edd0146102e8578063f794062e146102a95763f96dae0a1461027e57600080fd5b346102a657806003193601126102a65760d1546040516001600160a01b039091168152602090f35b80fd5b50346102a65760203660031901126102a65760209060ff906040906001600160a01b036102d4612914565b16815260cc84522054166040519015158152f35b50346102a65760203660031901126102a65761030a610305612914565b614eeb565b80f35b50346102a65761031c366129ae565b6001600160a01b038316845260cc602052604084205492939290919060ff161561034a5761030a9293615495565b6341554b6360e01b8352600483fd5b50346102a657806003193601126102a65760206040516000805160206157298339815191528152f35b50346102a65760603660031901126102a65760043567ffffffffffffffff8111610583576103b4903690600401612b5f565b9060243567ffffffffffffffff811161057f576103d5903690600401612b5f565b91909260443567ffffffffffffffff811161057b576103f8903690600401612b5f565b929093610403615151565b82158015610571575b8015610567575b61055857865b838110610424578780f35b8061048a61043d610438600194868c614eb3565b614ec3565b838060a01b03610456610451858a8a614eb3565b614ed7565b168b5260e560205260408b2090640100000000600160981b0382549160201b1690640100000000600160981b031916179055565b61049861043882888a614eb3565b828060a01b036104ac610451848989614eb3565b168a5260e56020526001600160781b038360408c200191166001600160781b03198254161790556104e1610451828787614eb3565b7f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da12610510610438848a8c614eb3565b9161051f610438858b8d614eb3565b9061054f604051928392888060a01b031695839092916001600160781b0360209181604085019616845216910152565b0390a201610419565b63b4fa3fb360e01b8752600487fd5b5083831415610413565b508083141561040c565b8580fd5b8380fd5b5080fd5b50346102a65760403660031901126102a6576105a1612914565b6001600160a01b0316815260cb60205260408120805460243592908310156102a65760206105cf8484612a19565b905460405160039290921b1c6001600160a01b03168152f35b50346102a657806003193601126102a657602060ff60e854166040519015158152f35b50346102a65761061a366129ae565b6001600160a01b03831680855260cc6020526040852054929493919260ff16156107a05780845260e560205260ff604085205460081c166107be5780845260cc6020526001604085200160018060a01b03861660005260205260ff6040600020541615610746575b6040516308f7a6e360e31b8152602081600481855afa801561073b5784908690610700575b6106b19250612c52565b90845260e56020526001600160781b03604085205460201c16106106f1576106d99293613607565b90506106e25780f35b633a23d82560e01b8152600490fd5b6353977d1f60e01b8352600483fd5b50506020813d602011610733575b8161071b60209383612b25565b8101031261072e57836106b191516106a7565b600080fd5b3d915061070e565b6040513d87823e3d90fd5b8033036107af5733845260cc60205260ff604085205416156107a05761076c85336153cc565b80845260cc6020526001604085200160018060a01b03861660005260205261079b60ff60406000205416614cb8565b610682565b6341554b6360e01b8452600484fd5b6318e2bacb60e11b8452600484fd5b63095865a360e11b8452600484fd5b50346102a65760203660031901126102a657604060c09160ff6107ee61298e565b16815260e4602052205461ffff6040519160ff81168352818160081c166020840152818160181c166040840152818160281c166060840152818160381c16608084015260481c1660a0820152f35b50346102a65760403660031901126102a65761030a60043561085c61292a565b9061087d61087882600052606560205260016040600020015490565b615260565b6152a4565b50346102a657806003193601126102a65760dd546040516001600160a01b039091168152602090f35b50346102a6576108ba36612a31565b5050506001600160a01b0390911680835260cc602052604083205490919060ff161561034a576001600160a01b031680835260cc602052604083205490919060ff161561034a5780835260e560205260ff604084205460181c166109ea5790602060049260405193848092635fe3b56760e01b82525afa9182156109ba5783926109c5575b50602060049160405192838092635fe3b56760e01b82525afa9081156109ba57839161098b575b506001600160a01b0390811691160361097c5780f35b630c73eb0560e01b8152600490fd5b6109ad915060203d6020116109b3575b6109a58183612b25565b810190614e94565b38610966565b503d61099b565b6040513d85823e3d90fd5b60049192506109e2602091823d84116109b3576109a58183612b25565b92915061093f565b6307f4077b60e11b8352600483fd5b50346102a65760c03660031901126102a657610a13612914565b610a1b61292a565b6044356001600160a01b0381169290838103610cc0576064356001600160a01b038116808203610cbc576084356001600160a01b0381169290839003610cb85760a4356001600160a01b0381169490859003610cb45788549260ff8460081c16159889809a610ca7575b8015610c90575b15610c345760ff1985166001178b557ff261845a790fe29bbd6631e2ca4a5bdc83e6eed7c3271d9590d97287e00e9123986020987f4f813296278c4a6ff473beaa88063942b681c61aa1f935692e19c41a02dde62a968c610c23575b508c805260658a526040808e206001600160a01b0383166000908152908c52205460ff1615610bc9575b5060d180546001600160a01b039283166001600160a01b03199182161790915560da805482169390931790925560de805490921692909217905560408051928216835292166020820152a16001600160601b0360a01b60dd54161760dd55806001600160601b0360a01b60db54161760db55604051908152a1610b925780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b8c805260658a526040808e206001600160a01b03929092166000818152928c529120805460ff1916600117905533908d7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a438610b12565b61ffff1916610101178d5538610ae8565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b158015610a8c5750600160ff861614610a8c565b50600160ff861610610a85565b8880fd5b8780fd5b8680fd5b8480fd5b50346102a65760203660031901126102a65760043567ffffffffffffffff81116105835736602382011215610583578060040135610d0181612b47565b91610d0f6040519384612b25565b8183526024602084019260051b82010190368211610cc057602401915b818310610d9257505050805190825b828110610d46578380f35b6001600160a01b03610d588284612bf3565b511680855260cc60205260ff60408620541615610d835790610d7d60019233906153cc565b01610d3b565b6341554b6360e01b8552600485fd5b82356001600160a01b038116810361072e57815260209283019201610d2c565b50346102a657610dc136612940565b6001600160a01b03841680865260e56020526040862054949594919392509060101c60ff16610e0857835260cc60205260ff6040842054161561034a5761030a9293615495565b63cd1fda9f60e01b8452600484fd5b50346102a657806003193601126102a6576040518091602060cd5492838152019160cd82527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e915b818110610e8657610e8285610e7681870382612b25565b60405191829182612a93565b0390f35b82546001600160a01b0316845260209093019260019283019201610e5f565b50346102a65760203660031901126102a6576001600160a01b03610ec7612914565b16815260cb60205260408120604051918260208354918281520192825260208220915b818110610f0157610e8285610e7681870382612b25565b82546001600160a01b0316845260209093019260019283019201610eea565b50346102a657806003193601126102a65760e6546040805161ffff83168152601083901c63ffffffff9081166020830152603084901c811692820192909252605083901c909116606082015260709190911c60ff16608082015260a090f35b50346102a65760a03660031901126102a657610f99615151565b60e65461ffff610fa7614cd5565b1661ffff1960e654161760e655610fbc614e5b565b60e65469ffffffff000000000000610fd2614e6e565b60301b169065ffffffff000063ffffffff60501b610fee614e81565b60501b169360101b16906dffffffffffffffffffffffff0000191617171760e65560843560ff811681036110c3575060e6805460ff60701b191660ff60701b83161790557f14afda479c9cdb1b364268a7f4859305595991e335158f423d3f30ece9565fa19060ff906110bd611062614cd5565b61106a614e5b565b611072614e6e565b61107a614e81565b9160405196879660701c1693869363ffffffff90816080958160ff969a99959a61ffff60a08b019c168a5216602089015216604087015216606085015216910152565b0390a180f35b8280fd5b50346102a657806003193601126102a657602090604051908152f35b50346102a65760203660031901126102a6576020611107611102612914565b614d08565b604051908152f35b50346102a65760403660031901126102a657604061112b61292a565b9160043581526065602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102a65760c03660031901126102a65761117561298e565b6024359061ffff82169182810361057f576044359061ffff82169182810361057b576064359161ffff831692838103610cb857608435908861ffff8316988984036105835760a4359661ffff881680890361057f576111d2615151565b60ff8b169b8c9a8b9485875260e460205260ff604081818a20541615988151986111fb8a612ad6565b808a5260208a01948552828a0195865260608a0198895260808a0196875260a08a01978852815260e46020522096511660ff19875416178655519361ffff60481b61ffff60381b66ffff000000000064ffff0000008954955160181b16935160281b16945160381b16945160481b169461ffff60481b199262ffff0061ffff60381b199260081b169066ffffffffffff001916171617161717179055600014611323576040805161ffff9485168152948416602086015290831690840152811660608301529190911660808201527f9fda7abee4eda89d92494b6c6eaa73afc7d274ff49f02c4900e35dfbdb64910f9060a090a25b60e6549160ff8360701c1610611304578280f35b60ff60701b1990911660709190911b60ff60701b161760e65538808280f35b6040805161ffff9485168152948416602086015290831690840152811660608301529190911660808201527fde2570157c619cddaed66d3e1074c3c6332b8cd49fd07ee178e0149dbcdf30689060a090a26112f0565b50346102a65760203660031901126102a6576060906040906001600160a01b036113a1612914565b16815260cc6020522060ff600282549201541660ff604051928181161515845260081c16602083015215156040820152f35b50346102a657806003193601126102a657606060e75461ffff604051918181168352818160101c16602084015260201c166040820152f35b50346102a65760203660031901126102a657611425612914565b61142d615151565b6001600160a01b0316801561147e576020817f2d4667ae407248b3da2da6f92d6dc3c9d3529d53fbdc7d476d540d68bb29d02d926001600160601b0360a01b60dd54161760dd55604051908152a180f35b6342bcdf7f60e11b8252600482fd5b50346102a65760203660031901126102a65760c0906040906001600160a01b036114b5612914565b16815260e5602052206001600160781b0360018254920154166001600160781b036040519260ff81161515845260ff8160081c161515602085015260ff8160101c161515604085015260ff8160181c161515606085015260201c16608083015260a0820152f35b50346102a657806003193601126102a65760db546040516001600160a01b039091168152602090f35b50346102a65761155436612a31565b9291509260018060a01b0381169182865260cc60205260ff604087205416158015611846575b61183757604051637f4e225760e11b8152602081600481875afa90811561174b578791611818575b501590816117b5575b50806117a8575b611799576040516395dd919360e01b81526001600160a01b0385166004820181905290949092602086602481845afa95861561174b578796611765575b5060e6549361160763ffffffff8660501c1642612c5f565b90885260e260205265ffffffffffff604089205416101561175657602060049160405192838092630c71782360e41b82525afa90811561174b57879161171c575b501561166857505050116116595780f35b63e46c155960e01b8152600490fd5b8161167291612c6c565b90501561170d5761168290614d08565b9061ffff8116655af3107a4000810290808204655af3107a400014901517156116f957670de0b6b3a7640000806116ca816116c28963ffffffff96612c07565b048096612c07565b04049160101c16116000146116e25750116116595780f35b9150111561030a5763e46c155960e01b8152600490fd5b634e487b7160e01b86526011600452602486fd5b63095bf33360e01b8552600485fd5b61173e915060203d602011611744575b6117368183612b25565b810190612b90565b38611648565b503d61172c565b6040513d89823e3d90fd5b63d26a7d5f60e01b8752600487fd5b9095506020813d602011611791575b8161178160209383612b25565b8101031261072e575194386115ef565b3d9150611774565b639557c3f160e01b8552600485fd5b5060ff60e85416156115b2565b604051637f4e225760e11b81529150602090829060049082906001600160a01b03165afa90811561180d5786916117ee575b50386115ab565b611807915060203d602011611744576117368183612b25565b386117e7565b6040513d88823e3d90fd5b611831915060203d602011611744576117368183612b25565b386115a2565b6334b04fe360e11b8652600486fd5b506001600160a01b038116865260cc602052604086205460ff161561157a565b50346102a65760203660031901126102a657611880612914565b611888615151565b6001600160a01b0316801561147e5760d55460008051602061572983398151915260005260656020527fbfe93621c6aa2dbf737e9056c9b79e4d30ee4f6b28b18be2cb71aac8a7bf258f547f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e926001600160a01b03909216919061190b90615260565b600080516020615729833981519152845260656020526040842060018060a01b03831660005260205260ff60406000205416611a59575b60d580546001600160a01b0319168217905560008051602061572983398151915260005260656020527fbfe93621c6aa2dbf737e9056c9b79e4d30ee4f6b28b18be2cb71aac8a7bf258f5461199690615260565b60008051602061572983398151915284526065602052604084208160005260205260ff60406000205416156119ed575b5060d554604080516001600160a01b039384168152929091166020830152819081016110bd565b6000805160206157298339815191528452606560205260408420816000526020526040600020600160ff1982541617905533906000805160206157298339815191527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8680a4386119c6565b600080516020615729833981519152845260656020526040842060018060a01b038316600052602052604060002060ff19815416905533826000805160206157298339815191527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8780a4611942565b50346102a65760203660031901126102a657611ae361298e565b611aeb615151565b60e6805460ff60701b191660709290921b60ff60701b1691909117905580f35b50346102a65760603660031901126102a657611b25615151565b61ffff611b30614cd5565b1661ffff1960e754161760e755611b45614ce6565b60e75463ffff000065ffff00000000611b5c614cf7565b60201b169260101b169065ffffffff00001916171760e7557f2698927ee5b9013fbd186eaff76d8f2c53d81f992f036c5a8e0ebcc3b9e34c276060611b9f614cd5565b61ffff611baa614ce6565b81611bb3614cf7565b918160405195168552166020840152166040820152a180f35b50346102a65760203660031901126102a657611be6612914565b611bee615151565b6001600160a01b0316801561147e576020817ff261845a790fe29bbd6631e2ca4a5bdc83e6eed7c3271d9590d97287e00e9123926001600160601b0360a01b60db54161760db55604051908152a180f35b50346102a657806003193601126102a657602060405160038152f35b50346102a65760203660031901126102a6576004359060cd548210156102a65760206105cf836129e8565b50346102a657611c95366129ae565b6001600160a01b0390921680845260cc60205260408420549092919060ff16156107a05782845260e560205260ff604085205416611efb576040516361bfb47160e11b81526001600160a01b0382166004820152608081602481875afa801561073b5785918691611ec8575b5084865260cc6020526001604087200160018060a01b03841660005260205260ff60406000205416159182611ebf575b5081611eb6575b50611e4c575b5060405163182df0f560e01b815290602082600481865afa918215611e41578492611e0d575b506040516318160ddd60e01b815291602083600481875afa92831561073b578593611dd7575b50611da1670de0b6b3a764000091611da794612c07565b04612c52565b90825260e56020526001600160781b0360016040842001541610611dc85780f35b6354db2d5d60e11b8152600490fd5b92506020833d602011611e05575b81611df260209383612b25565b8101031261072e57915191611da1611d8a565b3d9150611de5565b9091506020813d602011611e39575b81611e2960209383612b25565b8101031261072e57519038611d64565b3d9150611e1c565b6040513d86823e3d90fd5b823303611ea75733845260cc60205260ff604085205416156107a057611e7281336153cc565b82845260cc602052600160408520019060018060a01b0316600052602052611ea160ff60406000205416614cb8565b38611d3e565b63094d2b6d60e21b8452600484fd5b90501538611d38565b15915038611d31565b9050611eec915060803d608011611ef4575b611ee48183612b25565b810190612c30565b505038611d01565b503d611eda565b636be9245d60e11b8452600484fd5b50346102a65760803660031901126102a6576040611f3f611f29612914565b611f3161292a565b906064359160443591614457565b82519182526020820152f35b50346102a65760203660031901126102a65760043580151580910361058357611f72615151565b60ff801960e8541691161760e85580f35b50346102a65760403660031901126102a657611f9d612914565b611fa561299e565b90611fae615151565b6001600160a01b031680835260cc602052604083205460ff161561034a5760ff8216801561206b5780845260e46020526040842060405190611fef82612ad6565b549060a061ffff60ff841693848452818160081c166020850152818160181c166040850152818160281c166060850152818160381c16608085015260481c169101520361205c579061030a91835260cc602052604083209061ff0082549160081b169061ff001916179055565b631b47388560e11b8352600483fd5b631b47388560e11b8452600484fd5b50346102a65760803660031901126102a657612094612914565b61209c61299e565b906044356001600160781b038116810361057f57606435916001600160781b0383168303610cc0576120cc615151565b6001600160a01b03811680865260cc602052604086205490949060ff1661238b5760ff81161561237c57604051637f4e225760e11b815290602082600481895afa91821561174b576121469261235f575b5085875260cc60205260408720805461ffff191660089290921b61ff0016919091176001179055565b60cd54855b81811061232757505060cd54600160401b811015612313579061217982600161219d940160cd5560cd612a19565b81546001600160a01b0393841660039290921b91821b9390911b1916919091179055565b6401000000004310156123045760da5484906001600160a01b0316803b15610583578190604460405180948193633ace041560e11b835289600484015263ffffffff431660248401525af1801561073b576122ce575b50907f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da12917fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f6020604051868152a183855260e5602052612279816040872090640100000000600160981b0382549160201b1690640100000000600160981b031916179055565b83855260e5602052600160408620016001600160781b0383166001600160781b03198254161790556122c8604051928392839092916001600160781b0360209181604085019616845216910152565b0390a280f35b936122fc817f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da12949396612b25565b9390916121f3565b631391e11b60e21b8452600484fd5b634e487b7160e01b86526041600452602486fd5b85612331826129e8565b905460039190911b1c6001600160a01b0316146123505760010161214b565b634d5eeb4960e01b8752600487fd5b6123779060203d602011611744576117368183612b25565b61211d565b631b47388560e11b8652600486fd5b634d5eeb4960e01b8652600486fd5b50346102a65760403660031901126102a6576123b461292a565b336001600160a01b038216036123d05761030a906004356152a4565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b50346102a657806003193601126102a65760da546040516001600160a01b039091168152602090f35b50346102a657806003193601126102a65760de546040516001600160a01b039091168152602090f35b50346102a65760403660031901126102a65760043561249c61292a565b906124b861087882600052606560205260016040600020015490565b8083526065602090815260408085206001600160a01b038516865290915283205460ff16156124e5578280f35b8083526065602090815260408085206001600160a01b0394909416808652939091528320805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a438808280f35b50346102a65760203660031901126102a65760209065ffffffffffff906040906001600160a01b03612571612914565b16815260e28452205416604051908152f35b50346102a65760203660031901126102a65760ff61259f61298e565b6125a7615151565b1680825260e46020528160408120557f43d0e400379e99c6a1d618a8b7110cc3558e16380afb06f6b69f5da65c17a7d88280a280f35b50346102a657806003193601126102a65760d5546040516001600160a01b039091168152602090f35b50346102a65760203660031901126102a6576020611107600435600052606560205260016040600020015490565b50346102a65761264336612940565b5050506001600160a01b0316815260cc602052604081205460ff16156126665780f35b6341554b6360e01b8152600490fd5b50346102a65760203660031901126102a65761268f612914565b612697615151565b6001600160a01b0316801561147e576001600160601b0360a01b60d154161760d15580f35b50346102a65760a03660031901126102a6576126d6612914565b602435908115158092036110c35760443580151580910361057f5760643590811515809203610cc0576084359283151580940361057b5785805260656020908152604080882033895290915286205460ff161580612806575b6127f7576001600160a01b031680865260e560208181526040808920805460ff8a1660ff1991909116179055838952828252808920805461ff001916600887901b61ff0016179055838952828252808920805462ff00001916601088901b62ff000016179055838952918152818820805463ff0000001916601888901b63ff00000016179055815192835282019590955293840152606083015260808201527f6cdba85bf8c0449c45d7967a9c1ef7e6f69aabd25eb273e4b6f184f9e26477a69060a090a180f35b630e8e849b60e41b8652600486fd5b50600080516020615729833981519152865260656020908152604080882033895290915286205460ff161561272f565b50346102a65760403660031901126102a657612850612914565b33825260cc60205260ff60408320541615612893576001600160a01b0316815260e260205260408120805465ffffffffffff19164265ffffffffffff1617905580f35b6341554b6360e01b8252600482fd5b50346102a65760203660031901126102a65760043563ffffffff60e01b811680910361058357602090637965db0b60e01b81149081156128e8575b506040519015158152f35b6301ffc9a760e01b149050826128dd565b90503461058357816003193601126105835780600160209252f35b600435906001600160a01b038216820361072e57565b602435906001600160a01b038216820361072e57565b608090600319011261072e576004356001600160a01b038116810361072e57906024356001600160a01b038116810361072e57906044356001600160a01b038116810361072e579060643590565b6004359060ff8216820361072e57565b6024359060ff8216820361072e57565b606090600319011261072e576004356001600160a01b038116810361072e57906024356001600160a01b038116810361072e579060443590565b60cd54811015612a035760cd60005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b8054821015612a035760005260206000200190600090565b60a090600319011261072e576004356001600160a01b038116810361072e57906024356001600160a01b038116810361072e57906044356001600160a01b038116810361072e57906064356001600160a01b038116810361072e579060843590565b602060408183019282815284518094520192019060005b818110612ab75750505090565b82516001600160a01b0316845260209384019390920191600101612aaa565b60c0810190811067ffffffffffffffff821117612af257604052565b634e487b7160e01b600052604160045260246000fd5b610140810190811067ffffffffffffffff821117612af257604052565b90601f8019910116810190811067ffffffffffffffff821117612af257604052565b67ffffffffffffffff8111612af25760051b60200190565b9181601f8401121561072e5782359167ffffffffffffffff831161072e576020808501948460051b01011161072e57565b9081602091031261072e5751801515810361072e5790565b60405190612bb582612b08565b6000610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b8051821015612a035760209160051b010190565b81810292918115918404141715612c1a57565b634e487b7160e01b600052601160045260246000fd5b919082608091031261072e578151916020810151916060604083015192015190565b91908201809211612c1a57565b91908203918211612c1a57565b6101005260e052600160ff60e65460701c160160ff8111612c1a57612c9360ff8216612b47565b91612ca16040519384612b25565b60ff8216808452601f1990612cb590612b47565b0160005b8181106135f057505060e0516001600160a01b03161515610120819052613586575b60006101408190529081612ced612ba8565b9060018060a01b036101005116610140515260cb60205260406101405120936040518086602082985493848152019061014051526020610140512092610140515b818110613564575050612d4392500386612b25565b610140515b8551811015613179576001600160a01b03612d638288612bf3565b5116906101405150610140515081610140515260cc60205260ff604061014051205460081c1660ff612d95828c612bf3565b51511615612fe7575b6040516361bfb47160e11b8152610100516001600160a01b0316600482015290608082602481875afa918215612ef057610140519283918291829190612fc2575b5060e0516001600160a01b0316871494851580612fba575b80612fb2575b612fa357612e41670de0b6b3a7640000612e3981612e31819582612e2b8f612e2490614d08565b9a8b612c07565b04612c07565b049485612c07565b049484612c07565b0494612efe575b5050602060049560405196878092637f4e225760e11b82525afa948515612ef0576001958d916101405191612ed2575b5015612eb25782604092612ea16020612e97612ea997612e9796612bf3565b5101918251612c52565b90528d612bf3565b90525b01612d48565b82608092612ea16060612e97612ecb97612e9796612bf3565b9052612eac565b612eea915060203d8111611744576117368183612b25565b38612e78565b6040513d61014051823e3d90fd5b61014051919694918181029180159083049091141715612f6c57670de0b6b3a76400009004828111612f8657612f349192612c5f565b905b610140518681029680159088049091141715612f6c57612f65602091670de0b6b3a76400006004980490612c52565b9395612e48565b634e487b7160e01b61014051526011600452602461014051fd5b612f9992612f9391612c5f565b90612c52565b6101405190612f36565b50505050505060019150612eac565b508315612dfd565b508115612df7565b92505050612fdf91925060803d8111611ef457611ee48183612b25565b939238612ddf565b80610140515260e4602052604061014051206040519061300682612ad6565b549060ff8216815261ffff8260081c1690816020820152604081019161ffff8460181c168352606082019261ffff8560281c16845260a0608084019361ffff8760381c168552019061ffff8660481c168252655af3107a4000830292808404655af3107a40001490151715612f6c5761ffff90511693655af3107a4000850294808604655af3107a40001490151715612f6c5761ffff90511692655af3107a4000840293808504655af3107a40001490151715612f6c5761ffff9051169081655af3107a4000810204655af3107a40001482151715612f6c5761ffff9051169283655af3107a4000810204655af3107a40001484151715612f6c57655af3107a400094859360ff6040519861311a8a612b08565b16885261014051602089015261014051604089015261014051606089015261014051608089015260a088015260c087015260e08601520261010084015202610120820152613168828c612bf3565b52613173818b612bf3565b50612d9e565b50929590935093909360018060a01b0360e05116610140515260cc60205260ff604061014051205460081c169561014051955b60ff871660ff85168110156133995760ff6131c78286612bf3565b5151161561338f576131d99084612bf3565b51906080820180518061336f575b506040830180518061334f575b5081518061332f575b5080518061330f575b506020840180519061321e6060870192835190612c52565b1515806132fa575b6132be57855160ff168d0361325157505050505060ff90965b1660ff8114612c1a57600101956131ac565b916132a586670de0b6b3a764000061329e6132b8989f9d979e95610120613293846132896132b09b60ff9f6101000151905190612c07565b0461014051612c52565b940151905190612c07565b0490612c52565b610140525190612c52565b975190612c52565b9461323f565b919260a49360ff8751169351925190519151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b506133088351855190612c52565b1515613226565b613325606086019182519060e08801519161532a565b8352905238613206565b613345606086019182519060e08801519161532a565b84529052386131fd565b613365602086019182519060a08801519161532a565b83529052386131f4565b613385602085019182519060c08701519161532a565b83529052386131e7565b509560ff9061323f565b509550955050509061340e6134066133b761341993610140516153a3565b91909482866101405260ff60e85416968761354d575b5060408801936133e18551610140516153a3565b8652888161014052613530575b508061350f575b5086816134f1575b6134a957612c52565b905190612c52565b608084015190612c52565b8061349f575061328961346d92670de0b6b3a7640000926101205160001461347e5715613473575b6134588361328960c0840151602085015190612c07565b610140525b606060e082015191015190612c07565b90600090565b600061014052613441565b506134968361328960a0840151602085015190612c07565b6101405261345d565b9291505060009190565b816134d3575b8115612c52576134cc60608901928351906101208b01519161532a565b9252612c52565b6134ea60208901928351906101008b01519161532a565b92526134af565b61350860608a01928351906101208c01519161532a565b92526133fd565b905061352860208901918251906101008b01519161532a565b9152386133f5565b61354060808b01918251906153a3565b90915261014052386133ee565b9161355891926153a3565b919061014052386133cd565b84546001600160a01b031683526001948501948a945060209093019201612d2e565b604051637f4e225760e11b815260e051602090829060049082906001600160a01b03165afa9081156135e4576000916135c5575b501561012052612cdb565b6135de915060203d602011611744576117368183612b25565b386135ba565b6040513d6000823e3d90fd5b6020906135fb612ba8565b82828801015201612cb9565b60e05260a05261010052600160ff60e65460701c16019060ff8211612c1a5761364361363560ff8416612b47565b60405160c05260c051612b25565b60ff821660c05152601f1961365a60ff8416612b47565b0160005b818110613d4657505060a0516001600160a01b03161515610120819052613ce8575b60006101408190529081613692612ba8565b9060018060a01b0360e05116610140515260cb60205260406101405120936040518086602082985493848152019061014051526020610140512092610140515b818110613cc65750506136e792500386612b25565b610140515b8551811015613aeb576001600160a01b036137078288612bf3565b5116906101405150610140515081610140515260cc60205260ff604061014051205460081c1660ff61373b8260c051612bf3565b51511615613954575b6040516361bfb47160e11b815260e0516001600160a01b0316600482015290608082602481875afa918215612ef057610140519485938492839161392c575b5060a0516001600160a01b0316821494851580613924575b8061391c575b61390d576137de670de0b6b3a76400006137d6816137ce819582612e2b6137c78b614d08565b998a612c07565b049a8b612c07565b049483612c07565b0494613888575b50604051637f4e225760e11b81529550602090869060049082905afa8015612ef057600195610140519161386a575b501561384857612e97826040926138356020612e9761383f9760c051612bf3565b905260c051612bf3565b90525b016136ec565b612e97826080926138356060612e976138639760c051612bf3565b9052613842565b613882915060203d8111611744576117368183612b25565b38613814565b6101405194969194909291818102918115918304141715612f6c576004966020926138e292670de0b6b3a76400009004908082116138e9576138d6670de0b6b3a76400009261329e92612c5f565b955b6101005190612c07565b93906137e5565b612f93906138f79392612c5f565b670de0b6b3a764000061329e61014051956138d8565b50505050505060019150613842565b5083156137a1565b50871561379b565b925050945061394a91925060803d8111611ef457611ee48183612b25565b9392959038613783565b80610140515260e4602052604061014051206040519061397382612ad6565b549060ff8216815261ffff8260081c16806020830152604082019061ffff8460181c168252606083019161ffff8560281c16835260a0608085019461ffff8760381c168652019061ffff8660481c16825282655af3107a4000810204655af3107a40001483151715612f6c5761ffff9051169283655af3107a4000810204655af3107a40001484151715612f6c5761ffff9051169384655af3107a4000810204655af3107a40001485151715612f6c5761ffff9051169081655af3107a4000810204655af3107a40001482151715612f6c5761ffff9051169283655af3107a4000810204655af3107a40001484151715612f6c57655af3107a4000948580949281809460ff6040519b613a858d612b08565b168b526101405160208c01526101405160408c01526101405160608c01526101405160808c01520260a08a01520260c08801520260e08601520261010084015202610120820152613ad88260c051612bf3565b52613ae58160c051612bf3565b50613744565b50919350919360018060a01b0360a05116610140515260cc60205260ff604061014051205460081c169461014051945b60ff861660ff8416811015613ca95760ff613b388260c051612bf3565b51511615613c9f57613b4c9060c051612bf3565b519060808201805180613c7f575b5060408301805180613c5f575b50815180613c3f575b50805180613c1f575b5060208401805190613b916060870192835190612c52565b151580613c0a575b6132be57855160ff168c03613bc457505050505060ff90955b1660ff8114612c1a5760010194613b1b565b916132a586670de0b6b3a764000061329e613c04989e9c979d9561012061329384613289613bfc9b60ff9f6101000151905190612c07565b965190612c52565b93613bb2565b50613c188351855190612c52565b1515613b99565b613c35606086019182519060e08801519161532a565b8352905238613b79565b613c55606086019182519060e08801519161532a565b8452905238613b70565b613c75602086019182519060a08801519161532a565b8352905238613b67565b613c95602085019182519060c08701519161532a565b8352905238613b5a565b509460ff90613bb2565b5094509450509061340e6134066133b761341993610140516153a3565b84546001600160a01b031683526001948501948a9450602090930192016136d2565b604051637f4e225760e11b815260a051602090829060049082906001600160a01b03165afa9081156135e457600091613d27575b501561012052613680565b613d40915060203d602011611744576117368183612b25565b38613d1c565b602090613d51612ba8565b828260c0510101520161365e565b60e05260a05261010052600160ff60e65460701c16019060ff8211612c1a57613d8d61363560ff8416612b47565b60ff821660c05152601f19613da460ff8416612b47565b0160005b81811061443e57505060a0516001600160a01b031615156101208190526143e0575b60006101408190529081613ddc612ba8565b9060018060a01b0360e05116610140515260cb60205260406101405120936040518086602082985493848152019061014051526020610140512092610140515b8181106143be575050613e3192500386612b25565b610140515b8551811015614208576001600160a01b03613e518288612bf3565b5116906101405150610140515081610140515260cc60205260ff604061014051205460081c1660ff613e858260c051612bf3565b51511615614071575b6040516361bfb47160e11b815260e0516001600160a01b0316600482015290608082602481875afa918215612ef05761014051928391829182919061404c575b5060a0516001600160a01b0316871494851580614044575b8061403c575b61402d57613f13670de0b6b3a7640000612e3981612e31819582612e2b8f612e2490614d08565b0494613fb1575b5050602060049560405196878092637f4e225760e11b82525afa8015612ef0576001956101405191613f93575b5015613f7157612e97826040926138356020612e97613f689760c051612bf3565b90525b01613e36565b612e97826080926138356060612e97613f8c9760c051612bf3565b9052613f6b565b613fab915060203d8111611744576117368183612b25565b38613f47565b613fcc670de0b6b3a764000091610100989693985190612c07565b0482811161401657613fde9192612c5f565b905b610140518681029680159088049091141715612f6c5761400f602091670de0b6b3a76400006004980490612c52565b9395613f1a565b61402392612f9391612c5f565b6101405190613fe0565b50505050505060019150613f6b565b508315613eec565b508115613ee6565b9250505061406991925060803d8111611ef457611ee48183612b25565b939238613ece565b80610140515260e4602052604061014051206040519061409082612ad6565b549060ff8216815261ffff8260081c16806020830152604082019061ffff8460181c168252606083019161ffff8560281c16835260a0608085019461ffff8760381c168652019061ffff8660481c16825282655af3107a4000810204655af3107a40001483151715612f6c5761ffff9051169283655af3107a4000810204655af3107a40001484151715612f6c5761ffff9051169384655af3107a4000810204655af3107a40001485151715612f6c5761ffff9051169081655af3107a4000810204655af3107a40001482151715612f6c5761ffff9051169283655af3107a4000810204655af3107a40001484151715612f6c57655af3107a4000948580949281809460ff6040519b6141a28d612b08565b168b526101405160208c01526101405160408c01526101405160608c01526101405160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526141f58260c051612bf3565b526142028160c051612bf3565b50613e8e565b50919350919360018060a01b0360a05116610140515260cc60205260ff604061014051205460081c169461014051945b60ff861660ff8416811015613ca95760ff6142558260c051612bf3565b515116156143b4576142699060c051612bf3565b519060808201805180614394575b5060408301805180614374575b50815180614354575b50805180614334575b50602084018051906142ae6060870192835190612c52565b15158061431f575b6132be57855160ff168c036142e157505050505060ff90955b1660ff8114612c1a5760010194614238565b916132a586670de0b6b3a764000061329e614319989e9c979d9561012061329384613289613bfc9b60ff9f6101000151905190612c07565b936142cf565b5061432d8351855190612c52565b15156142b6565b61434a606086019182519060e08801519161532a565b8352905238614296565b61436a606086019182519060e08801519161532a565b845290523861428d565b61438a602086019182519060a08801519161532a565b8352905238614284565b6143aa602085019182519060c08701519161532a565b8352905238614277565b509460ff906142cf565b84546001600160a01b031683526001948501948a945060209093019201613e1c565b604051637f4e225760e11b815260a051602090829060049082906001600160a01b03165afa9081156135e45760009161441f575b501561012052613dca565b614438915060203d602011611744576117368183612b25565b38614414565b602090614449612ba8565b828260c05101015201613da8565b60805260a0526101405261012052600160ff60e65460701c16019060ff8211612c1a5761448961363560ff8416612b47565b60ff821660c05152601f196144a060ff8416612b47565b0160005b818110614c9f57505060a0516001600160a01b0316151560e0819052614c42575b600061010081905290816144d7612ba8565b9060018060a01b0360805116610100515260cb60205260406101005120936040518086602082985493848152019061010051526020610100512092610100515b818110614c2057505061452c92500386612b25565b610100515b855181101561493a576001600160a01b0361454c8288612bf3565b5116906101005150610100515081610100515260cc60205260ff604061010051205460081c169160ff6145818460c051612bf3565b51511615614789575b6040516361bfb47160e11b8152608080516001600160a01b0316600483015290939084602481855afa9384156146bd576101005192610100519161010051906101005197614761575b5060a0516001600160a01b0316821494851580614759575b80614751575b61474257670de0b6b3a76400006146218161461981612e3160049d82612e2b612e248c614d08565b049584612c07565b04956146cb575b505060209060405196878092637f4e225760e11b82525afa80156146bd57600195610100519161469f575b501561467d57612e97826040926138356020612e976146749760c051612bf3565b90525b01614531565b612e97826080926138356060612e976146989760c051612bf3565b9052614677565b6146b7915060203d8111611744576117368183612b25565b38614653565b6040513d61010051823e3d90fd5b946147169193670de0b6b3a76400006146eb602095986101405190612c07565b049080821161471e5761470a670de0b6b3a76400009261329e92612c5f565b955b6101205190612c07565b939038614628565b612f939061472c9392612c5f565b670de0b6b3a764000061329e610100519561470c565b50505050505060019150614677565b5083156145f1565b5080156145eb565b925050925061477f91945060803d8111611ef457611ee48183612b25565b95929390386145d3565b82610100515260e460205260406101005120604051906147a882612ad6565b549060ff8216815261ffff8260081c16806020830152604082019061ffff8460181c168252606083019161ffff8560281c16835260a0608085019461ffff8760381c168652019061ffff8660481c16825282655af3107a4000810204655af3107a400014831517156149205761ffff9051169283655af3107a4000810204655af3107a400014841517156149205761ffff9051169384655af3107a4000810204655af3107a400014851517156149205761ffff9051169081655af3107a4000810204655af3107a400014821517156149205761ffff9051169283655af3107a4000810204655af3107a4000148415171561492057655af3107a4000948580949281809460ff6040519b6148ba8d612b08565b168b526101005160208c01526101005160408c01526101005160608c01526101005160808c01520260a08a01520260c08801520260e0860152026101008401520261012082015261490d8460c051612bf3565b5261491a8360c051612bf3565b5061458a565b634e487b7160e01b61010051526011600452602461010051fd5b50919350919360018060a01b0360a05116610100515260cc60205260ff604061010051205460081c169461010051945b60ff861660ff8416811015614b055760ff6149878260c051612bf3565b51511615614afb5761499b9060c051612bf3565b519060808201805180614adb575b5060408301805180614abb575b50815180614a9b575b50805180614a7b575b50602084018051906149e06060870192835190612c52565b151580614a66575b6132be57855160ff168c03614a1357505050505060ff90955b1660ff8114612c1a576001019461496a565b91614a5586670de0b6b3a764000061329e614a60989e9c979d9561012061329384614a4b613bfc9b60ff9f6101000151905190612c07565b0461010051612c52565b610100525190612c52565b93614a01565b50614a748351855190612c52565b15156149e8565b614a91606086019182519060e08801519161532a565b83529052386149c8565b614ab1606086019182519060e08801519161532a565b84529052386149bf565b614ad1602086019182519060a08801519161532a565b83529052386149b6565b614af1602085019182519060c08701519161532a565b83529052386149a9565b509460ff90614a01565b5094509450509061340e613406614b22614b6e93610100516153a3565b91909482866101005260ff60e854169687614c09575b506040880193614b4c8551610100516153a3565b8652888161010052614bec57508061350f575086816134f1576134a957612c52565b8061349f5750614a4b61346d92670de0b6b3a76400009260e051600014614bcb5715614bc0575b614bac83614a4b60c0840151602085015190612c07565b61010052606060e082015191015190612c07565b600061010052614b95565b50614be383614a4b60a0840151602085015190612c07565b6101005261345d565b614bfc60808b01918251906153a3565b90915261010052386133ee565b91614c1491926153a3565b91906101005238614b38565b84546001600160a01b031683526001948501948a945060209093019201614517565b604051637f4e225760e11b815260a051602090829060049082906001600160a01b03165afa9081156135e457600091614c80575b501560e0526144c5565b614c99915060203d602011611744576117368183612b25565b38614c76565b602090614caa612ba8565b828260c051010152016144a4565b15614cbf57565b634e487b7160e01b600052600160045260246000fd5b60043561ffff8116810361072e5790565b60243561ffff8116810361072e5790565b60443561ffff8116810361072e5790565b6001600160a01b0316600081815260cc602052604090205460ff1615614e4a5760db5460405163fc57d4df60e01b81526004810183905290602090829060249082906001600160a01b03165afa9081156135e457600091614e18575b5080918115614e075760206004916040519283809263313ce56760e01b82525afa9081156135e457600091614dca575b5060ff1660128110614da557505090565b601290810392508211612c1a57604d8211612c1a57614dc791600a0a90612c07565b90565b6020813d602011614dff575b81614de360209383612b25565b8101031261058357519060ff821682036102a6575060ff614d94565b3d9150614dd6565b6348fa9b2b60e11b60005260046000fd5b906020823d602011614e42575b81614e3260209383612b25565b810103126102a657505138614d64565b3d9150614e25565b6334b04fe360e11b60005260046000fd5b60243563ffffffff8116810361072e5790565b60443563ffffffff8116810361072e5790565b60643563ffffffff8116810361072e5790565b9081602091031261072e57516001600160a01b038116810361072e5790565b9190811015612a035760051b0190565b356001600160781b038116810361072e5790565b356001600160a01b038116810361072e5790565b6040516361bfb47160e11b81523360048201526001600160a01b03821690608081602481855afa80156135e45760009160009161512e575b5061511d578160005260cc60205260ff604060002054161561510c57614f4a903384615495565b600081815260cc60209081526040808320338452600101918290529091205460ff16156151075733600090815260209182526040808220805460ff1916905560cb8352808220905181548082529183528383209095939092869291830191905b8181106150e5575050614fbf92500384612b25565b825191829060005b8281106150b3575b505082614fdf9293945010614cb8565b3360005260cb6020526040600020918254906000198201918211612c1a5761217961500d6150269386612a19565b905460039190911b1c6001600160a01b03169185612a19565b815490811561509d577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d926150989260001901906150648282612a19565b81546001600160a01b0360039290921b82901b19169091559190556040805192909116825233602083015290918291820190565b0390a1565b634e487b7160e01b600052603160045260246000fd5b816001600160a01b036150c68389612bf3565b5116146150d557600101614fc7565b9194509092508390503880614fcf565b84546001600160a01b0316835260019485019488945060209093019201614faa565b505050565b6341554b6360e01b60005260046000fd5b631a4e452560e31b60005260046000fd5b9050615149915060803d608011611ef457611ee48183612b25565b505038614f23565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff161561518a57565b6152526044603761519a3361553c565b61522a60116151a9600061567c565b60405194859160208301957f416363657373436f6e74726f6c3a206163636f756e742000000000000000000087526151ea81518092602086880191016154ec565b83017001034b99036b4b9b9b4b733903937b6329607d1b838201526152198251809360206048850191016154ec565b01010301601f198101845283612b25565b60405193849262461bcd60e51b845260206004850152518092816024860152858501906154ec565b601f01601f19168101030190fd5b600081815260656020908152604080832033845290915290205460ff16156152855750565b604460376152529261522a60116151a961529e3361553c565b9361567c565b806000526065602052604060002060018060a01b03831660005260205260ff604060002054166152d2575050565b60008181526065602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4565b92919092811561539b57670de0b6b3a76400006153478284612c07565b0491670de0b6b3a76400008502858104670de0b6b3a76400001486151715612c1a57049160009060009580821160001461538c575050509061538891612c5f565b9190565b9195509150614dc79250612c5f565b505060009190565b81156153c957818111156153bb579061346d91612c5f565b6153c491612c5f565b600091565b91565b9060018060a01b03821660005260cc602052600160406000200160018060a01b0382166000528060205260ff60406000205416615107576001600160a01b038216600090815260209182526040808220805460ff1916600117905560cb9092522080549290600160401b841015612af25781612179856154729360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a598018155612a19565b604080516001600160a01b03928316815292909116602083015281908101615098565b6001600160a01b03818116600090815260cc60209081526040808320938616835260019093019052205491929160ff1615615107576154d392613d5f565b90506154db57565b633a23d82560e01b60005260046000fd5b60005b8381106154ff5750506000910152565b81810151838201526020016154ef565b67ffffffffffffffff8111612af257601f01601f191660200190565b908151811015612a03570160200190565b600090615549602a61550f565b916155576040519384612b25565b602a8352615565602a61550f565b6020840190601f19013682378351156156685760309053825160011015615654576078602184015350602960005b600182116155e85750506155a45790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015615640576f181899199a1a9b1b9c1cb0b131b232b360811b901a615617848661552b565b5360041c91801561562c576000190190615593565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b600090615689604261550f565b916156976040519384612b25565b604283526156a5604261550f565b6020840190601f19013682378351156156685760309053825160011015615654576078602184015350604160005b600182116156e45750506155a45790565b9091600f81166010811015615640576f181899199a1a9b1b9c1cb0b131b232b360811b901a615713848661552b565b5360041c91801561562c5760001901906156d356fe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa26469706673582212204c9f3b08038e3ca560eb70a39ed2dcb89aa75ed5f3f283dbe89d8dd4522951c364736f6c634300081a0033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly stateMutability: "nonpayable";
@@ -55,10 +55,6 @@ export declare class Comptroller__factory extends ContractFactory {
55
55
  }];
56
56
  readonly name: "BorrowValueMustBeLargerThanThreshold";
57
57
  readonly type: "error";
58
- }, {
59
- readonly inputs: readonly [];
60
- readonly name: "CantEnterPausedMarket";
61
- readonly type: "error";
62
58
  }, {
63
59
  readonly inputs: readonly [];
64
60
  readonly name: "CantExitMarketWithNonZeroBorrowBalance";
@@ -127,10 +123,6 @@ export declare class Comptroller__factory extends ContractFactory {
127
123
  readonly inputs: readonly [];
128
124
  readonly name: "InvalidBlockNumber";
129
125
  readonly type: "error";
130
- }, {
131
- readonly inputs: readonly [];
132
- readonly name: "InvalidCToken";
133
- readonly type: "error";
134
126
  }, {
135
127
  readonly inputs: readonly [];
136
128
  readonly name: "InvalidCloseFactor";
@@ -163,10 +155,6 @@ export declare class Comptroller__factory extends ContractFactory {
163
155
  readonly inputs: readonly [];
164
156
  readonly name: "InvalidMinSuBorrowValue";
165
157
  readonly type: "error";
166
- }, {
167
- readonly inputs: readonly [];
168
- readonly name: "InvalidRedeem";
169
- readonly type: "error";
170
158
  }, {
171
159
  readonly inputs: readonly [];
172
160
  readonly name: "InvalidReduceAmount";
@@ -219,26 +207,14 @@ export declare class Comptroller__factory extends ContractFactory {
219
207
  readonly inputs: readonly [];
220
208
  readonly name: "MarketAlreadyListed";
221
209
  readonly type: "error";
222
- }, {
223
- readonly inputs: readonly [];
224
- readonly name: "MarketAlreadyUnlisted";
225
- readonly type: "error";
226
210
  }, {
227
211
  readonly inputs: readonly [];
228
212
  readonly name: "MarketCanOnlyInitializeOnce";
229
213
  readonly type: "error";
230
- }, {
231
- readonly inputs: readonly [];
232
- readonly name: "MarketNotEmpty";
233
- readonly type: "error";
234
214
  }, {
235
215
  readonly inputs: readonly [];
236
216
  readonly name: "MarketNotListed";
237
217
  readonly type: "error";
238
- }, {
239
- readonly inputs: readonly [];
240
- readonly name: "MarketPaused";
241
- readonly type: "error";
242
218
  }, {
243
219
  readonly inputs: readonly [];
244
220
  readonly name: "MinDelayNotReached";
@@ -287,10 +263,6 @@ export declare class Comptroller__factory extends ContractFactory {
287
263
  readonly inputs: readonly [];
288
264
  readonly name: "OnlyListedCToken";
289
265
  readonly type: "error";
290
- }, {
291
- readonly inputs: readonly [];
292
- readonly name: "OnlyPausedMarketCanBeUnlisted";
293
- readonly type: "error";
294
266
  }, {
295
267
  readonly inputs: readonly [];
296
268
  readonly name: "OnlyPendingAdmin";
@@ -379,14 +351,6 @@ export declare class Comptroller__factory extends ContractFactory {
379
351
  readonly inputs: readonly [];
380
352
  readonly name: "TooMuchRepay";
381
353
  readonly type: "error";
382
- }, {
383
- readonly inputs: readonly [];
384
- readonly name: "TotalBorrowsNotZero";
385
- readonly type: "error";
386
- }, {
387
- readonly inputs: readonly [];
388
- readonly name: "TotalSupplyNotZero";
389
- readonly type: "error";
390
354
  }, {
391
355
  readonly inputs: readonly [];
392
356
  readonly name: "TransferNotAllowed";
@@ -456,12 +420,37 @@ export declare class Comptroller__factory extends ContractFactory {
456
420
  }, {
457
421
  readonly anonymous: false;
458
422
  readonly inputs: readonly [{
423
+ readonly indexed: true;
424
+ readonly internalType: "uint8";
425
+ readonly name: "groupId";
426
+ readonly type: "uint8";
427
+ }, {
459
428
  readonly indexed: false;
460
- readonly internalType: "address";
461
- readonly name: "cToken";
462
- readonly type: "address";
429
+ readonly internalType: "uint16";
430
+ readonly name: "intraCRatePercent";
431
+ readonly type: "uint16";
432
+ }, {
433
+ readonly indexed: false;
434
+ readonly internalType: "uint16";
435
+ readonly name: "intraMintRatePercent";
436
+ readonly type: "uint16";
437
+ }, {
438
+ readonly indexed: false;
439
+ readonly internalType: "uint16";
440
+ readonly name: "intraSuRatePercent";
441
+ readonly type: "uint16";
442
+ }, {
443
+ readonly indexed: false;
444
+ readonly internalType: "uint16";
445
+ readonly name: "interCRatePercent";
446
+ readonly type: "uint16";
447
+ }, {
448
+ readonly indexed: false;
449
+ readonly internalType: "uint16";
450
+ readonly name: "interSuRatePercent";
451
+ readonly type: "uint16";
463
452
  }];
464
- readonly name: "MarketUnlisted";
453
+ readonly name: "NewAssetGroup";
465
454
  readonly type: "event";
466
455
  }, {
467
456
  readonly anonymous: false;
@@ -715,11 +704,6 @@ export declare class Comptroller__factory extends ContractFactory {
715
704
  readonly internalType: "uint16";
716
705
  readonly name: "interSuRatePercent";
717
706
  readonly type: "uint16";
718
- }, {
719
- readonly indexed: false;
720
- readonly internalType: "bool";
721
- readonly name: "isNewGroup";
722
- readonly type: "bool";
723
707
  }];
724
708
  readonly name: "UpdateAssetGroup";
725
709
  readonly type: "event";
@@ -937,16 +921,6 @@ export declare class Comptroller__factory extends ContractFactory {
937
921
  readonly outputs: readonly [];
938
922
  readonly stateMutability: "nonpayable";
939
923
  readonly type: "function";
940
- }, {
941
- readonly inputs: readonly [{
942
- readonly internalType: "address";
943
- readonly name: "cToken";
944
- readonly type: "address";
945
- }];
946
- readonly name: "_unlistMarket";
947
- readonly outputs: readonly [];
948
- readonly stateMutability: "nonpayable";
949
- readonly type: "function";
950
924
  }, {
951
925
  readonly inputs: readonly [{
952
926
  readonly internalType: "address";
@@ -1329,36 +1303,6 @@ export declare class Comptroller__factory extends ContractFactory {
1329
1303
  readonly outputs: readonly [];
1330
1304
  readonly stateMutability: "view";
1331
1305
  readonly type: "function";
1332
- }, {
1333
- readonly inputs: readonly [{
1334
- readonly internalType: "address";
1335
- readonly name: "cTokenBorrowed";
1336
- readonly type: "address";
1337
- }, {
1338
- readonly internalType: "address";
1339
- readonly name: "cTokenCollateral";
1340
- readonly type: "address";
1341
- }, {
1342
- readonly internalType: "address";
1343
- readonly name: "liquidator";
1344
- readonly type: "address";
1345
- }, {
1346
- readonly internalType: "address";
1347
- readonly name: "borrower";
1348
- readonly type: "address";
1349
- }, {
1350
- readonly internalType: "uint256";
1351
- readonly name: "actualRepayAmount";
1352
- readonly type: "uint256";
1353
- }, {
1354
- readonly internalType: "uint256";
1355
- readonly name: "seizeTokens";
1356
- readonly type: "uint256";
1357
- }];
1358
- readonly name: "liquidateBorrowVerify";
1359
- readonly outputs: readonly [];
1360
- readonly stateMutability: "nonpayable";
1361
- readonly type: "function";
1362
1306
  }, {
1363
1307
  readonly inputs: readonly [];
1364
1308
  readonly name: "liquidationIncentive";
@@ -1489,28 +1433,6 @@ export declare class Comptroller__factory extends ContractFactory {
1489
1433
  readonly outputs: readonly [];
1490
1434
  readonly stateMutability: "nonpayable";
1491
1435
  readonly type: "function";
1492
- }, {
1493
- readonly inputs: readonly [{
1494
- readonly internalType: "address";
1495
- readonly name: "cToken";
1496
- readonly type: "address";
1497
- }, {
1498
- readonly internalType: "address";
1499
- readonly name: "redeemer";
1500
- readonly type: "address";
1501
- }, {
1502
- readonly internalType: "uint256";
1503
- readonly name: "redeemAmount";
1504
- readonly type: "uint256";
1505
- }, {
1506
- readonly internalType: "uint256";
1507
- readonly name: "redeemTokens";
1508
- readonly type: "uint256";
1509
- }];
1510
- readonly name: "redeemVerify";
1511
- readonly outputs: readonly [];
1512
- readonly stateMutability: "nonpayable";
1513
- readonly type: "function";
1514
1436
  }, {
1515
1437
  readonly inputs: readonly [];
1516
1438
  readonly name: "redemptionManager";
@@ -1567,32 +1489,6 @@ export declare class Comptroller__factory extends ContractFactory {
1567
1489
  readonly outputs: readonly [];
1568
1490
  readonly stateMutability: "nonpayable";
1569
1491
  readonly type: "function";
1570
- }, {
1571
- readonly inputs: readonly [{
1572
- readonly internalType: "address";
1573
- readonly name: "cToken";
1574
- readonly type: "address";
1575
- }, {
1576
- readonly internalType: "address";
1577
- readonly name: "payer";
1578
- readonly type: "address";
1579
- }, {
1580
- readonly internalType: "address";
1581
- readonly name: "borrower";
1582
- readonly type: "address";
1583
- }, {
1584
- readonly internalType: "uint256";
1585
- readonly name: "actualRepayAmount";
1586
- readonly type: "uint256";
1587
- }, {
1588
- readonly internalType: "uint256";
1589
- readonly name: "borrowIndex";
1590
- readonly type: "uint256";
1591
- }];
1592
- readonly name: "repayBorrowVerify";
1593
- readonly outputs: readonly [];
1594
- readonly stateMutability: "nonpayable";
1595
- readonly type: "function";
1596
1492
  }, {
1597
1493
  readonly inputs: readonly [{
1598
1494
  readonly internalType: "bytes32";