@meterio/sumer-js 0.1.20 → 0.1.21
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.
- package/dist/browser/sumer.min.js +10 -10
- package/dist/nodejs/abi.d.ts +6 -3
- package/dist/nodejs/abi.js +2131 -1481
- package/dist/nodejs/abi.js.map +1 -1
- package/dist/nodejs/cToken.d.ts +1 -0
- package/dist/nodejs/cToken.js +42 -3
- package/dist/nodejs/cToken.js.map +1 -1
- package/dist/nodejs/constants/metertest.js +1 -1
- package/dist/nodejs/errors.d.ts +45 -149
- package/dist/nodejs/errors.js +91 -195
- package/dist/nodejs/errors.js.map +1 -1
- package/dist/nodejs/index.d.ts +51 -152
- package/dist/nodejs/typechain/contracts/Comptroller/AccountLiquidity.d.ts +2 -2
- package/dist/nodejs/typechain/contracts/Comptroller/CompLogic.d.ts +14 -12
- package/dist/nodejs/typechain/contracts/Interfaces/ICompLogic.d.ts +14 -12
- package/dist/nodejs/typechain/contracts/SumerErrors.d.ts +20 -0
- package/dist/nodejs/typechain/contracts/SumerErrors.js +3 -0
- package/dist/nodejs/typechain/contracts/SumerErrors.js.map +1 -0
- package/dist/nodejs/typechain/contracts/index.d.ts +1 -0
- package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.d.ts +43 -75
- package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js +44 -84
- package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.d.ts +48 -64
- package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js +49 -69
- package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.d.ts +81 -33
- package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js +93 -33
- package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.d.ts +36 -84
- package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js +40 -100
- package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.d.ts +1 -5
- package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.js +1 -6
- package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.d.ts +3 -3
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js +3 -3
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.d.ts +209 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js +261 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.d.ts +153 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js +191 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.d.ts +2 -2
- package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.js +2 -2
- package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.d.ts +234 -0
- package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js +305 -0
- package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js.map +1 -0
- package/dist/nodejs/typechain/factories/contracts/Timelock.sol/Timelock__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Timelock.sol/Timelock__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Timelock.sol/Timelock__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/index.d.ts +1 -0
- package/dist/nodejs/typechain/factories/contracts/index.js +3 -1
- package/dist/nodejs/typechain/factories/contracts/index.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.js.map +1 -1
- package/dist/nodejs/typechain/hardhat.d.ts +18 -0
- package/dist/nodejs/typechain/index.d.ts +2 -0
- package/dist/nodejs/typechain/index.js +3 -1
- package/dist/nodejs/typechain/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,8 +14,20 @@ 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 = "0x6080806040523461001757615f4890816200001d8239f35b600080fdfe608080604052600436101561001357600080fd5b60009060e08235811c9182627e3dd21461411d5750816301ffc9a7146140ac5781630914888d14613f0e578163098c76f514613ece5781630df9ef2c14613e8e578163141a7a6514613e705781631475995c14613e3f57816318c882a514613d465781631dbd1aa914613cc95781631ededc9114613c9257816321af45691461100357816324008a6214613c5c578163243cdb5514613c37578163248a9ca314613c0a57816324a3d622146131b5578163250d71e714613aa55781632a6a606514613a675781632d70db78146139705781632f2ff15d146138c2578163317b0b77146138225781633278eb04146137f957816336085d4614613712578163360f5a01146136e957816336568abe14613656578163391957d7146134725781633bcf7ec11461337b5781633bd38381146132da5781633c94786f146132b45781633f08c0931461326757816347bd11ad146132495781634a584432146132105781634ada90af146131de5781634cab0f2d146131b55781634e79238f146131325781634ede8e6a146131145781634ef4c3e114612e8657816351dff98914612e4857816352d84d1e14612e1d578163554994f214612df457816355ee1fe114612d745781635c77860514612d585781635ec88c7914612ca45781635f5af1aa14612aed5781635f87769b14612a6d5781635fc7e71e14612896578163607ef6c11461278c57816369cf0c6f1461262a5781636d154ea5146125eb5781636d35bf9114612580578163731f0c2b1461254157816373a19dc5146122f85781637dc0d1d0146122cf578163840f82ac1461227657816384b9272014611f3857816387f7630314611f125781638e8f294b14611eb85781638ebf636414611db75781639010d07c14611d7157816391d1485414611d25578163929fe9a114611ccb57816397d0fbe5146117695781639cc7becf146117305781639d1b5a0a146117075781639d8ef7e6146116da578163a217fddf146116be578163a3514009146113cb578163aa6fb5c01461138b578163abfceffc14611313578163ac0b0bb7146112ed578163b0772d0b14611262578163b3030a6314611222578163b9412e3b146111ba578163bc1fc18a1461117f578163bdacb3031461113f578163bdcdc258146110f9578163c29982381461102c578163c42e5b2b14611003578163c7108b4314610fda578163c91033b014610fb9578163ca15c87314610f8f578163ce8b680514610f71578163d02f735114610dfd578163d1eb167e14610dc9578163d33219b414610da0578163d547741f14610d62578163da3d454c1461094257508063dce15449146108e7578063dd1e75d2146107a1578063e4295d411461075d578063e63ab1e914610734578063e6653f3d1461070e578063e8755446146106f0578063e8762110146106d2578063eabe7d91146106b7578063ede4edd01461068b578063eebc3a99146105ef578063f794062e146105b0578063f8717d401461048e5763f96dae0a1461046357600080fd5b3461048b578060031936011261048b5760d1546040516001600160a01b039091168152602090f35b80fd5b503461048b5761049d3661454a565b848094939552602094606586526040852033600052865260ff604060002054168015610582575b6104cd9061568f565b80151580610579575b6104df906156da565b845b8181106104f2578686604051908152f35b80610501610574928587615716565b6001600160a01b0390358161051f61051a85888c615716565b615726565b16895260ce8a52604089205561053961051a83868a615716565b167fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea8961056784888a615716565b35604051908152a2614c7c565b6104e1565b508082146104d6565b50600080516020615ed38339815191528552606586526040808620336000908152908852205460ff166104c4565b503461048b57602036600319011261048b5760209060ff906040906001600160a01b036105db6141f0565b16815260cc84522054166040519015158152f35b503461048b57606036600319011261048b576020907fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c60043560243561068060443561063961462a565b60ca549260cf549060d054918660ca558160cf558360d055604051968796879260a094919796959260c0850198855260208501526040840152606083015260808201520152565b0390a1604051908152f35b503461048b57602036600319011261048b5760206106af6106aa6141f0565b614e33565b604051908152f35b503461048b576106cf6106c936614480565b91615c86565b80f35b503461048b578060031936011261048b57602060d054604051908152f35b503461048b578060031936011261048b57602060c954604051908152f35b503461048b578060031936011261048b57602060ff60d55460a81c166040519015158152f35b503461048b578060031936011261048b576020604051600080516020615eb38339815191528152f35b503461048b57602036600319011261048b5760043561077a61462a565b670de0b6b3a7640000811061078f5760df5580f35b604051635012e14560e01b8152600490fd5b503461048b576107b036614232565b81905b80518210156108e3576001600160a01b03806107cf8484614c8b565b5116845260209060cb825260408520916040518093849183825491828152019189528389209389905b8282106108c75750505061080e925003836141b8565b845b82518110156108b457858260de54168361082a8487614c8b565b5116846108378989614c8b565b5116823b156108b05760405163947f5b7760e01b81526001600160a01b039283166004820152911660248201529082908290604490829084905af180156108a55761088d575b505061088890614c7c565b610810565b61089690614138565b6108a157853861087d565b8580fd5b6040513d84823e3d90fd5b8380fd5b505050906108c190614c7c565b906107b3565b85548716845260019586019588955093810193909101906107f8565b8280f35b503461048b57604036600319011261048b576109016141f0565b6001600160a01b03908116825260cb602052604082208054602435939084101561048b575060209261093291614502565b9190546040519260031b1c168152f35b905034610d5e5760ff9061095536614480565b9390925416610d4c576001600160a01b0390811680855260d76020908152604086205491929160ff16610d3a5782865260cc81526109a260ff60408820541661099c614c9f565b90614ccc565b82865260cc815260016040872001938281169485600052825260ff6040600020541615610cf9575b508160db54169060405163fc57d4df60e01b908181528560048201528281602481875afa908115610bad578991610ccc575b5015610c995784885260d98252604088205480610bb8575b50604051637f4e225760e11b81528281600481895afa908115610bad578991610b80575b5015610ac7575b50505060609260849160dc54166040519586948593634e79238f60e01b85526004850152602484015287604484015260648301525afa80156108a5576106cf918391610a96575b50610a8f615c54565b9015614ccc565b610ab7915060603d8111610ac0575b610aaf81836141b8565b8101906150c9565b91505038610a86565b503d610aa5565b819060246040518095819382528860048301525afa8015610b755786918891610b3d575b50610b05925060405190610afe8261414b565b8152615dd5565b5160df548015159182610b33575b5050610b2157388080610a3f565b604051630b92ac0b60e11b8152600490fd5b1090503880610b13565b8092508391503d8311610b6e575b610b5581836141b8565b81010312610b695784610b05915138610aeb565b600080fd5b503d610b4b565b6040513d89823e3d90fd5b610ba09150833d8511610ba6575b610b9881836141b8565b81019061573a565b38610a38565b503d610b8e565b6040513d8b823e3d90fd5b6040516308f7a6e360e31b815283816004818a5afa908115610c8e578a91610c61575b50610c1b604051610beb81614182565b60118152706164646974696f6e206f766572666c6f7760781b86820152610c128b846149b8565b92831015614ccc565b1015610c275738610a14565b60405162461bcd60e51b8152600481018390526012602482015271189bdc9c9bddc818d85c081c995858da195960721b6044820152606490fd5b90508381813d8311610c87575b610c7881836141b8565b81010312610b69575138610bdb565b503d610c6e565b6040513d8c823e3d90fd5b60405162461bcd60e51b815260048101839052600b60248201526a383934b1b29032b93937b960a91b6044820152606490fd5b90508281813d8311610cf2575b610ce381836141b8565b81010312610b695751386109fc565b503d610cd9565b610d0e90610d08853314615d32565b33614cf8565b5082865260cc815260016040872001846000528152610d3460ff60406000205416614e16565b386109ca565b60405163095865a360e11b8152600490fd5b604051632bc2c01360e21b8152600490fd5b5080fd5b823461048b57604036600319011261048b576106cf600435610d82614206565b908084526065602052610d9b6001604086200154614824565b61492f565b823461048b578060031936011261048b5760dd546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b5760ff604060209282610deb6142c0565b16815260d48452205416604051908152f35b905034610d5e5760ff610e0f36614431565b5050509190925416610d4c5760ff60d55460b81c16610f5f5760018060a01b038092169081845260209260cc845260ff60408620541680610f4c575b610e579061099c614c9f565b6040518481600481635fe3b56760e01b978882525afa928315610f415785918794610f1f575b50600483949560405194859384928352165afa8015610f145782918691610ee7575b5016911603610eac575080f35b6064906040519062461bcd60e51b8252600482015260146024820152730c6dedae0e8e4ded8d8cae440dad2e6dac2e8c6d60631b6044820152fd5b610f079150853d8711610f0d575b610eff81836141b8565b810190615a4e565b38610e9f565b503d610ef5565b6040513d87823e3d90fd5b839450610f3a600491843d8611610f0d57610eff81836141b8565b9450610e7d565b6040513d88823e3d90fd5b508181168552604085205460ff16610e4b565b6040516307f4077b60e11b8152600490fd5b823461048b578060031936011261048b57602060ca54604051908152f35b823461048b57602036600319011261048b5760406020916004358152609783522054604051908152f35b823461048b578060031936011261048b57602060ff60d35416604051908152f35b823461048b578060031936011261048b576020604051600080516020615ed38339815191528152f35b823461048b578060031936011261048b5760d8546040516001600160a01b039091168152602090f35b823461048b5761103b36614232565b8051611046816141d9565b9261105460405194856141b8565b818452611060826141d9565b6020938585019391601f1901368537825b8281106110b95750505060405193838594850191818652518092526040850193925b8281106110a257505050500390f35b835185528695509381019392810192600101611093565b92959394926110ef906110df336001600160a01b036110d88487614c8b565b5116614cf8565b6110e98288614c8b565b52614c7c565b9592949395611071565b905034610d5e5760ff61110b366143b7565b9391929490505416610d4c5760ff60d55460b01c1661112d576106cf92615c86565b60405163cd1fda9f60e01b8152600490fd5b823461048b57602036600319011261048b576111596141f0565b61116161462a565b60018060a01b03166001600160601b0360a01b60dd54161760dd5580f35b823461048b578060031936011261048b5760206040517f750fc7a006f78e0009a09aa4bf97546d802b8f6c9d27e623dd7cc78951321eaf8152f35b823461048b57602036600319011261048b5761120a6112046111ff60ff604061121e95826111e66142c0565b6111ee6150e4565b5016815260d4602052205416615123565b615136565b506151aa565b604051918291602083526020830190614318565b0390f35b823461048b57602036600319011261048b5761123c6141f0565b61124461462a565b60018060a01b03166001600160601b0360a01b60da54161760da5580f35b823461048b578060031936011261048b5760405160cd80548083529083526020808301937f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e92915b8282106112cd5761121e856112c1818903826141b8565b604051918291826145e6565b83546001600160a01b0316865294850194600193840193909101906112aa565b823461048b578060031936011261048b57602060ff60d55460b81c166040519015158152f35b823461048b57602080600319360112610d5e576001600160a01b0391826113386141f0565b16815260cb82526040812092604051908193808654938481520195845280842093915b8383106113725761121e866112c1818a03826141b8565b845481168752958101956001948501949092019161135b565b823461048b57602036600319011261048b5760209060ff906040906001600160a01b036113b66141f0565b16815260cc8452205460081c16604051908152f35b823461048b5761014036600319011261048b576113e66141f0565b6113ee614206565b6113f661421c565b6001600160a01b0392906064358481169190829003610b695760843590858216809203610b69576101243591868316809303610b695787549360ff8560081c1615968780986116b1575b801561169a575b1561163e5760ff198087166001178b558a968961162d575b508680526020998a92606584528160408a209a16998a600052845260406000205460ff16157fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c9a604060c09b60977fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e229883986114e5966115f5575b508280525220614afa565b50816001600160601b0360a01b97168760d154161760d155670de0b6b3a764000060d25516808660db54161760db55815190600082528b820152a18260da54161760da558160dc54161760dc557f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9604060a4358060c9558151908a825289820152a160c435918260ca5560e435908160cf5561010435928360d05560de54161760de556801158e460913d0000060df556040519288845287840152876040840152606083015286608083015260a0820152a16115bf575080f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061ff0019835416835560405160018152a180f35b8380526065825284842086600052825260018560002091825416179055338584600080516020615e938339815191528180a4386114da565b61ffff19166101011787558b61145f565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156114475750600160ff871614611447565b50600160ff871610611440565b823461048b578060031936011261048b57602090604051908152f35b823461048b57604036600319011261048b5760206106af6116f96141f0565b611701614206565b90615752565b823461048b578060031936011261048b5760d1546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b576020906040906001600160a01b036117586141f0565b16815260ce83522054604051908152f35b823461048b57604036600319011261048b576117836141f0565b604051637f4e225760e11b81529091602435916001600160a01b03841690602081600481855afa908115611b7c578391611cac575b50611c745760de546040516308f7a6e360e31b81526001600160a01b0390911690602081600481865afa908115611c6957908492918391611c31575b5090604460209260405194859384926309d3fe0b60e41b84528a600485015260248401525af18015611b7c57611c06575b5080825260cc60205260408220549290602060018060a01b0360de5416916024604051809481936350e8542360e01b835260048301525afa908115611b7c578391611be7575b505b81151580611bd5575b15611bbb5760018060a01b038116835260cb602052604083206040518082602082945493848152019087526020872092875b818110611b995750506118bd925003826141b8565b835b8151811080611b90575b15611a0357600460206001600160a01b036118e48486614c8b565b511660405192838092637f4e225760e11b82525afa908115610f415786916119e4575b501561195057336001600160a01b03841614611950576001600160a01b0361192f8284614c8b565b5116855260cc60205260ff8660081c1660ff604087205460081c161461195e575b61195990614c7c565b6118bf565b9261197f81886001600160a01b036119768887614c8b565b51168633615a6d565b90808210156119d857611959916119cf916119ca60405161199f81614182565b60158152747375627472616374696f6e20756e646572666c6f7760581b602082015282841115614ccc565b614b7f565b935b9050611950565b505061195984936119d1565b6119fd915060203d602011610ba657610b9881836141b8565b88611907565b50835b8151811080611b87575b15611b1157600460206001600160a01b03611a2b8486614c8b565b511660405192838092637f4e225760e11b82525afa908115610f41578691611af2575b5015611a9757336001600160a01b03841614611a97576001600160a01b03611a768284614c8b565b5116855260cc60205260ff8660081c1660ff604087205460081c1603611aa5575b611aa090614c7c565b611a06565b92611abd81886001600160a01b036119768887614c8b565b9080821015611ae657611aa091611add916119ca60405161199f81614182565b935b9050611a97565b5050611aa08493611adf565b611b0b915060203d602011610ba657610b9881836141b8565b88611a4e565b505060de5460405163d99550c960e01b81526001600160a01b03878116600483015292831660248201529160209183916044918391165afa908115611b7c578391611b5d575b5061186d565b611b76915060203d602011610f0d57610eff81836141b8565b85611b57565b6040513d85823e3d90fd5b50831515611a10565b508315156118c9565b84546001600160a01b03168352600194850194869450602090930192016118a8565b50611bc35780f35b60405163518d5aa560e11b8152600490fd5b506001600160a01b0381161515611876565b611c00915060203d602011610f0d57610eff81836141b8565b8561186b565b602090813d8311611c2a575b611c1c81836141b8565b81010312610b695784611825565b503d611c12565b919250506020813d602011611c61575b81611c4e602093836141b8565b81010312610b69575183919060446117f4565b3d9150611c41565b6040513d86823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21039ba903a37b5b2b760811b6044820152606490fd5b611cc5915060203d602011610ba657610b9881836141b8565b856117b8565b823461048b57604036600319011261048b57611ce56141f0565b906001600160a01b039060019060409083611cfe614206565b16815260cc60205220019116600052602052602060ff604060002054166040519015158152f35b823461048b57604036600319011261048b576040611d41614206565b9160043581526065602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b823461048b57604036600319011261048b57611d9e60209160043581526097835260406024359120614502565b905460405160039290921b1c6001600160a01b03168152f35b823461048b576020908160031936011261048b57600080516020615ef383398151915260a0611de4614379565b8015611e5b578380526065855260408420336000528552611e0c60ff60406000205416615656565b15159260d55460ff60b01b8560b01b169060ff60b01b19161760d55560405190815260608582015260086060820152672a3930b739b332b960c11b6080820152836040820152a1604051908152f35b838052606585526040842033600052855260ff604060002054168015611e8a575b611e8590615613565b611e0c565b50600080516020615eb38339815191528452606585526040808520336000908152908752205460ff16611e7c565b823461048b57602036600319011261048b576060906040906001600160a01b03611ee06141f0565b16815260cc6020522060ff600282549201541660ff604051928181161515845260081c16602083015215156040820152f35b823461048b578060031936011261048b57602060ff60d55460b01c166040519015158152f35b823461048b57608036600319011261048b57611f526141f0565b9060243560ff811692838203610b69576044359060643590611f7261462a565b60018060a01b03908181169485875260209760cc895260ff6040892054166121e8571561223f5786806040518a810190637f4e225760e11b825260048152611fb981614182565b519082865af13d1561223a573d611fcf81614594565b90611fdd60405192836141b8565b8152888a3d92013e5b80612230575b156121fa5785875260cc88526001604088209161ff0083549160081b169061ffff191617179055859060cd54915b8281106121c25750600160401b8210156121ac57612041826001612060940160cd556144b5565b90919082549060031b9160018060a01b03809116831b921b1916179055565b6120a560405161206f81614182565b601c81527f626c6f636b206e756d6265722065786365656473203332206269747300000000888201526401000000004310614ccc565b60da5416803b156121a857848091604460405180948193633ace041560e11b835289600484015263ffffffff431660248401525af18015610f145785879392869261218a575b50507f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6837fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea957fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f82604051868152a183895260d982528060408a2055604051908152a283855260ce8252806040862055604051908152a2604051908152f35b90929493506121999150614138565b6108b0579084908385886120eb565b8480fd5b634e487b7160e01b600052604160045260246000fd5b86846121cd836144b5565b90549060031b1c16146121e8576121e390614c7c565b61201a565b604051634d5eeb4960e01b8152600490fd5b60405162461bcd60e51b815260048101899052600e60248201526d31b7b73a3930b1ba1032b93937b960911b6044820152606490fd5b50813b1515611fec565b611fe6565b60405162461bcd60e51b815260048101899052600f60248201526e1a5b9d985b1a590819dc9bdd5c1259608a1b6044820152606490fd5b823461048b57602036600319011261048b576122906141f0565b61229861462a565b6001600160a01b031680156122bd576001600160601b0360a01b60d154161760d15580f35b60405163e6c4247b60e01b8152600490fd5b823461048b578060031936011261048b5760db546040516001600160a01b039091168152602090f35b823461048b578160031936011261048b576123116142c0565b6024356001600160401b03811161253d573660238201121561253d576123419036906024816004013591016145af565b906044356064359260843560a4359060c4359261235c61462a565b60ff8096169586895260209960d48b528160408b20541660d3548110801590612527575b1561248d575060016040519161239583614166565b898352848d8401528860408401528a60608401528560808401528660a08401528760c084015282015260d354600160401b8110156124795760c096937f878e48ed20dc6724a982e6ed357e7ad8d32f3a8550cc2d946046e3a708545e7998969360d48e6124178f999661241187600161244c990160d355615136565b9061530b565b8c6124258460d35416615123565b99525260408d209616958660ff198254161790558c604051928284809451938492016142d0565b8101039020986040519586528b86015260408501526060840152608083015260a0820152a3604051908152f35b634e487b7160e01b8b52604160045260248bfd5b9780999391979261249d8a615136565b505416036124ef57926124ea989795926001959261241198956040519a6124c38c614166565b8b528d8b015260408a01526060890152608088015260a087015260c0860152840152615136565b6106af565b60405162461bcd60e51b8152600481018c9052601060248201526f0cee4deeae092c840dad2e6dac2e8c6d60831b6044820152606490fd5b50888361253383615136565b5054161415612380565b8280fd5b823461048b57602036600319011261048b5760209060ff906040906001600160a01b0361256c6141f0565b16815260d684522054166040519015158152f35b823461048b5761258f36614431565b50919250506125a0333b1515615d32565b604051637f4e225760e11b815291602083600481335afa928315611c69576106cf936125cd575b50615d6c565b6125e49060203d8111610ba657610b9881836141b8565b50846125c7565b823461048b57602036600319011261048b5760209060ff906040906001600160a01b036126166141f0565b16815260d784522054166040519015158152f35b823461048b57608036600319011261048b57806126456141f0565b6024356064356001600160401b0381116127875736602382011215612787576126789036906024816004013591016145af565b604051636f307dc360e01b81526001600160a01b039384169390602081600481885afa908115610f41578691612769575b5016803b156121a8576126f88592918392604051948580948193639fd5a6cf60e01b83523360048401528a6024840152896044840152604435606484015260a0608484015260a48301906142f3565b03925af1908115611c69578491612755575b5050303b1561275157604051916397d0fbe560e01b835260048301526024820152818160448183305af180156108a5576127415750f35b61274a90614138565b61048b5780f35b5050fd5b61275e90614138565b61275157828561270a565b612781915060203d8111610f0d57610eff81836141b8565b876126a9565b505050fd5b823461048b5761279b3661454a565b848093929352602091606583526040862033600052835260ff604060002054168015612868575b6127cb9061568f565b8015158061285f575b6127dd906156da565b855b8181106127ea578680f35b806127f961285a928588615716565b6001600160a01b0390358161281261051a85888d615716565b168a5260d9875260408a205561282c61051a83868b615716565b167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f68661056784888b615716565b6127df565b508082146127d4565b50600080516020615ed38339815191528652606583526040808720336000908152908552205460ff166127c2565b823461048b576128a536614431565b939092915060018060a01b0380911680865260209260cc84528260ff60408920541615918215612a59575b5050612a47576040516395dd919360e01b815293821660048501819052928085602481855afa948515610b75578795612a18575b50604051630c71782360e41b81528181600481865afa918215612a0d5788926129f0575b50501561294c575050501061293a5780f35b60405163e46c155960e01b8152600490fd5b608460609260dc5416936040519485938492634e79238f60e01b84526004840152602483015260006044830152600060648301525afa908115611c695784916129cf575b50156129bd576129b3670de0b6b3a76400009160c95460405190610afe8261414b565b51041061293a5780f35b60405163095bf33360e01b8152600490fd5b6129e7915060603d8111610ac057610aaf81836141b8565b91505084612990565b612a069250803d10610ba657610b9881836141b8565b8780612928565b6040513d8a823e3d90fd5b9080955081813d8311612a40575b612a3081836141b8565b81010312610b6957519387612904565b503d612a26565b6040516334b04fe360e11b8152600490fd5b16875250604086205460ff161582886128d0565b823461048b57606036600319011261048b57612a876141f0565b612a8f61462a565b60da546001600160a01b0390811691839190833b1561253d57606490836040519586948593635f87769b60e01b8552166004840152602435602484015260443560448401525af180156108a557612ae4575080f35b6106cf90614138565b823461048b576020908160031936011261048b57612b096141f0565b612b1161462a565b6001600160a01b0390811680156122bd5781612bfc7f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9360d5541692600080516020615eb38339815191528087526065808952612b74600160408a200154614824565b81885280895260408820868952895260ff604089205416612c5e575b81885260978952612ba48660408a20614b8c565b50826001600160601b0360a01b60d554161760d555818852808952612bcf600160408a200154614824565b81885280895260408820838952895260ff60408920541615612c27575b5086526097875260408620614afa565b5060d554604080516001600160a01b0394851681529290911690921660208201529081908101610680565b8188528852604080882083895289528720805460ff19166001179055338282600080516020615e938339815191528a80a488612bec565b8188528089526040808920878a528a528820805460ff191690553386837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8b80a4612b90565b823461048b57602036600319011261048b57612cbe6141f0565b60dc54604051634e79238f60e01b81526001600160a01b0392831660048201526024810184905260448101849052606481018490529160609183916084918391165afa80156108a55782918391612d32575b5061121e90604051938493846040919493926060820195825260208201520152565b905061121e9250612d51915060603d8111610ac057610aaf81836141b8565b9092612d10565b823461048b57612d6736614480565b506125a0333b1515615d32565b823461048b57602036600319011261048b576020907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e22612db26141f0565b612dba61462a565b60db80546001600160a01b039283166001600160a01b03198216811790925560408051939091168352602083019190915281908101610680565b823461048b578060031936011261048b5760dc546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b576004359060cd5482101561048b576020611d9e836144b5565b823461048b57612e57366143f8565b159250905081612e7c575b50612e6a5780f35b604051631812515160e11b8152600490fd5b9050151582612e62565b905034610d5e5760ff612e9836614480565b9290935416610d4c5760018060a01b038091169081855260209360d6855260ff6040872054166131025782865260cc8552612edc60ff60408820541661099c614c9f565b6040516361bfb47160e11b81529181166004830181905291608081602481875afa8015610b755787889289926130c8575b50612f1a90610a8f614dec565b84885260cc875260016040892001848952875260ff6040892054161591826130bf575b50816130b6575b50613068575b505080845260ce83526040842054159182159182612fa8575b50505015612f6f575080f35b6064906040519062461bcd60e51b8252600482015260126024820152711cdd5c1c1b1e4818d85c081c995858da195960721b6044820152fd5b9192509082612fbc575b5050388080612f63565b6040516318160ddd60e01b81529250908383600481855afa928315610f14578593613037575b506130239061301a60405191612ff783614182565b60118352706164646974696f6e206f766572666c6f7760781b87840152856149b8565b93841015614ccc565b835260ce8252604083205410153880612fb2565b9092508381813d8311613061575b61304f81836141b8565b810103126121a8575191613023612fe2565b503d613045565b8233036130a4576130799033614cf8565b5081855260cc845260016040862001908552835261309d60ff604086205416614e16565b3880612f4a565b60405163094d2b6d60e21b8152600490fd5b90501538612f44565b15915038612f3d565b9050612f1a92506130f0915060803d81116130fb575b6130e881836141b8565b810190614dca565b509290929190612f0d565b503d6130de565b604051636be9245d60e11b8152600490fd5b823461048b578060031936011261048b57602060cf54604051908152f35b823461048b576060613143366143f8565b60dc54604051634e79238f60e01b81526001600160a01b03958616600482015293851660248501526044840192909252606483015290929183916084918391165afa80156108a55782918391612d32575061121e90604051938493846040919493926060820195825260208201520152565b823461048b578060031936011261048b5760d5546040516001600160a01b039091168152602090f35b823461048b578060031936011261048b5760ca5460cf5460d05460408051938452602084019290925290820152606090f35b823461048b57602036600319011261048b576020906040906001600160a01b036132386141f0565b16815260d983522054604051908152f35b823461048b578060031936011261048b57602060d254604051908152f35b823461048b5761121e61328561327c36614431565b939290926158c0565b604080519687526020870195909552938501929092526060840152608083015260a082015290819060c0820190565b823461048b578060031936011261048b57602060ff60d55460a01c166040519015158152f35b823461048b5760206132eb366143f8565b60dc546040516354f2052160e11b81526001600160a01b03958616600482015293851660248501526044840192909252606483015290929183916084918391165afa9081156108a5578291613346575b602082604051908152f35b90506020813d8211613373575b81613360602093836141b8565b81010312610d5e5760209150518261333b565b3d9150613353565b823461048b57602090600080516020615ef383398151915260a060406133eb6133a336614388565b928391821561341d578780526065895281882033895289526133ca60ff838a205416615656565b600180871b03169687815260d68952209060ff801983541691151516179055565b6040519384526060858501526004606085015263135a5b9d60e21b6080850152151592836040820152a1604051908152f35b87805260658952818820338952895260ff82892054168015613448575b61344390615613565b6133ca565b50600080516020615eb383398151915288526065895281882033895289528188205460ff1661343a565b823461048b576020908160031936011261048b5761348e6141f0565b61349661462a565b6001600160a01b0381811690811561361f577feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e2993949160976135829260d8541693600080516020615ed383398151915280895260658083526134fe600160408c200154614824565b818a5280835260408a20878b52835260ff60408b2054166135d9575b818a5283835261352d8760408c20614b8c565b50846001600160601b0360a01b60d854161760d855818a52808352613558600160408c200154614824565b818a5280835260408a20858b52835260ff60408b205416156135a2575b5088525260408620614afa565b50604080516001600160a01b03928316815292909116602083015290a180f35b818a5282526040808a20858b5283528920805460ff19166001179055338482600080516020615e938339815191528c80a489613575565b818a528083526040808b20888c5284528a20805460ff191690553387837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8d80a461351a565b60405162461bcd60e51b815260048101869052600f60248201526e696e76616c6964206164647265737360881b6044820152606490fd5b823461048b57604036600319011261048b57613670614206565b336001600160a01b0382160361368c576106cf9060043561492f565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b823461048b578060031936011261048b5760da546040516001600160a01b039091168152602090f35b823461048b578060031936011261048b5760d35461372f816141d9565b9061373d60405192836141b8565b80825260d3835260209283830191817f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a6845b8383106137d45750505050604051928484019085855251809152604084019460408260051b8601019392955b8287106137a85785850386f35b9091929382806137c4600193603f198a82030186528851614318565b960192019601959291909261379b565b6008886001926137e7859b9a989b6151aa565b8152019201920191909693959661376f565b823461048b578060031936011261048b5760de546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b576004359061384061462a565b8115613886577f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9604060209360c954908060c955825191825285820152a1604051908152f35b60405162461bcd60e51b815260206004820152601460248201527334b73b30b634b21031b637b9b2903330b1ba37b960611b6044820152606490fd5b823461048b57604036600319011261048b5761393460043560976138e4614206565b91808552602090606582526138ff6001604088200154614824565b8086526065825260408087206001600160a01b0390951680885294835286205460ff1615613938575b85525260408320614afa565b5080f35b80865260658252604080872085885283528620805460ff19166001179055338482600080516020615e938339815191528980a4613928565b823461048b576020908160031936011261048b57600080516020615ef383398151915260a061399d614379565b8015613a0f57838052606585526040842033855285526139c360ff604086205416615656565b15159260d55460ff60b81b8560b81b169060ff60b81b19161760d55560405190815260608582015260056060820152645365697a6560d81b6080820152836040820152a1604051908152f35b8380526065855260408420338552855260ff6040852054168015613a3c575b613a3790615613565b6139c3565b50600080516020615eb38339815191528452606585526040808520338652865284205460ff16613a2e565b905034610d5e576020366003190112610d5e57602090613a85614379565b613a8d61462a565b15159060ff1981541660ff8316179055604051908152f35b823461048b576020908160031936011261048b57613ac16142c0565b613ac961462a565b60ff8060d35416908080613adf6111ff85615123565b50541693169283855260d486528160408620541691613b006111ff85615123565b50613b0a84615136565b919091613bf6579181838a96947f3142b1d766c6799b48d5083bdb3ef6e5a2d93657c1a073fba6c4cf5a93f3d0be98969403613b81575b505050865260d483526040862060ff199182825416179055613b6161553c565b84865260d4835260408620908154169055604051908152a2604051908152f35b82600782613bee958294541660ff19865416178555613ba66001820160018701615464565b600281015460028601556003810154600386015560048101546004860155600581015460058601556006810154600686015501541691019060ff801983541691151516179055565b888080613b41565b634e487b7160e01b88526004889052602488fd5b823461048b57602036600319011261048b5760016040602092600435815260658452200154604051908152f35b823461048b57602036600319011261048b5761121e61120a613c576142c0565b6155e7565b823461048b57613c6b366143b7565b5050506001600160a01b0316815260cc60205260408120546106cf9060ff1661099c614c9f565b823461048b5760a036600319011261048b57613cac6141f0565b613cb4614206565b50613cbd61421c565b6125a0333b1515615d32565b823461048b578060031936011261048b57805b60d3549060ff918282161015613d1957613d1491613cf982615136565b505416835260d460205260408320805460ff191690556155d6565b613cdc565b8260ff8060d35416825b8183821610613d30578380f35b613d4190613d3c61553c565b6155d6565b613d23565b823461048b57602090600080516020615ef383398151915260a06040613db6613d6e36614388565b9283918215613dea57878052606589528188203389528952613d9560ff838a205416615656565b600180871b03169687815260d78952209060ff801983541691151516179055565b6040519384526060858501526006606085015265426f72726f7760d01b6080850152151592836040820152a1604051908152f35b87805260658952818820338952895260ff82892054168015613e15575b613e1090615613565b613d95565b50600080516020615eb383398151915288526065895281882033895289528188205460ff16613e07565b823461048b57602036600319011261048b5761121e61120a611204613e626142c0565b613e6a6150e4565b50615136565b823461048b578060031936011261048b57602060df54604051908152f35b823461048b57602036600319011261048b57613ea86141f0565b613eb061462a565b60018060a01b03166001600160601b0360a01b60de54161760de5580f35b823461048b57602036600319011261048b57613ee86141f0565b613ef061462a565b60018060a01b03166001600160601b0360a01b60dc54161760dc5580f35b823461048b57613f1d36614232565b613f2561462a565b805191805b60cd5481101561393457613f3d816144b5565b90546001600160a01b0360039290921b1c811690835b868110613f6b57505050613f6690614c7c565b613f2a565b81613f7a828894959698614c8b565b51166040516370a0823160e01b8152816004820152602091602491838184818b5afa908115610bad57899161407f575b501580159061401b575b613fcf575b505050613fc590614c7c565b9492919094613f53565b613fd99087614cf8565b613fe35780613fb9565b9060126064926040519262461bcd60e51b8452600484015282015271185919151bd3585c9ad95d0819985a5b195960721b6044820152fd5b506040516305eff7ef60e21b815260048101829052838184818c8c5af1908115610bad57899161404e575b501515613fb4565b90508381813d8311614078575b61406581836141b8565b8101031261407457518b614046565b8880fd5b503d61405b565b90508381813d83116140a5575b61409681836141b8565b8101031261407457518b613faa565b503d61408c565b823461048b57602036600319011261048b5760043563ffffffff60e01b8116809103610d5e57602090635a05180f60e01b81149081156140f2575b506040519015158152f35b637965db0b60e01b81149150811561410c575b50826140e7565b6301ffc9a760e01b14905082614105565b839034610d5e5781600319360112610d5e5780600160209252f35b6001600160401b0381116121ac57604052565b602081019081106001600160401b038211176121ac57604052565b61010081019081106001600160401b038211176121ac57604052565b604081019081106001600160401b038211176121ac57604052565b608081019081106001600160401b038211176121ac57604052565b90601f801991011681019081106001600160401b038211176121ac57604052565b6001600160401b0381116121ac5760051b60200190565b600435906001600160a01b0382168203610b6957565b602435906001600160a01b0382168203610b6957565b604435906001600160a01b0382168203610b6957565b602080600319830112610b6957600435916001600160401b038311610b695780602384011215610b6957826004013561426a816141d9565b9361427860405195866141b8565b81855260248486019260051b820101928311610b6957602401905b8282106142a1575050505090565b81356001600160a01b0381168103610b69578152908301908301614293565b6004359060ff82168203610b6957565b60005b8381106142e35750506000910152565b81810151838201526020016142d3565b9060209161430c815180928185528580860191016142d0565b601f01601f1916010190565b9060ff825116815260e08061433c60208501516101008060208701528501906142f3565b9360408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151151591015290565b600435908115158203610b6957565b6040906003190112610b69576004356001600160a01b0381168103610b6957906024358015158103610b695790565b6080906003190112610b69576001600160a01b036004358181168103610b6957916024358281168103610b6957916044359081168103610b69579060643590565b6080906003190112610b69576001600160a01b03906004358281168103610b6957916024359081168103610b6957906044359060643590565b60a0906003190112610b69576001600160a01b03906004358281168103610b6957916024358181168103610b6957916044358281168103610b6957916064359081168103610b69579060843590565b6060906003190112610b69576001600160a01b03906004358281168103610b6957916024359081168103610b69579060443590565b60cd548110156144ec5760cd6000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0190600090565b634e487b7160e01b600052603260045260246000fd5b80548210156144ec5760005260206000200190600090565b9181601f84011215610b69578235916001600160401b038311610b69576020808501948460051b010111610b6957565b6040600319820112610b69576001600160401b0391600435838111610b6957826145769160040161451a565b93909392602435918211610b69576145909160040161451a565b9091565b6001600160401b0381116121ac57601f01601f191660200190565b9291926145bb82614594565b916145c960405193846141b8565b829481845281830111610b69578281602093846000960137010152565b6020908160408183019282815285518094520193019160005b82811061460d575050505090565b83516001600160a01b0316855293810193928101926001016145ff565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602090815260408083205490929060ff161561466c57505050565b614675336149ec565b90808451906146838261419d565b6042825284820192606036853782511561481057603084538251906001918210156148105790607860218501536041915b8183116147a25750505061476057604861475c93869361474093614731985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a860152614708815180928c6037890191016142d0565b8401917001034b99036b4b9b9b4b733903937b6329607d1b6037840152518093868401906142d0565b010360288101875201856141b8565b5192839262461bcd60e51b8452600484015260248301906142f3565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f811660108110156147fc576f181899199a1a9b1b9c1cb0b131b232b360811b901a6147d285876149db565b5360041c9280156147e8576000190191906146b4565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b60009080825260209060658252604092838120338252835260ff84822054161561484e5750505050565b614857336149ec565b918451906148648261419d565b6042825284820192606036853782511561481057603084538251906001918210156148105790607860218501536041915b8183116148e95750505061476057604861475c93869361474093614731985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a860152614708815180928c6037890191016142d0565b909192600f811660108110156147fc576f181899199a1a9b1b9c1cb0b131b232b360811b901a61491985876149db565b5360041c9280156147e857600019019190614895565b90604061496d9260009080825260656020528282209360018060a01b03169384835260205260ff8383205416614970575b8152609760205220614b8c565b50565b808252606560205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4614960565b919082018092116149c557565b634e487b7160e01b600052601160045260246000fd5b9081518110156144ec570160200190565b60405190606082018281106001600160401b038211176121ac57604052602a82526020820160403682378251156144ec576030905381516001908110156144ec57607860218401536029905b808211614a8c575050614a485790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015614ae5576f181899199a1a9b1b9c1cb0b131b232b360811b901a614abb84866149db565b5360041c918015614ad0576000190190614a38565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b91906001830160009082825280602052604082205415600014614b7957845494600160401b861015614b655783614b55614b3e886001604098999a01855584614502565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b919082039182116149c557565b90600182019060009281845282602052604084205490811515600014614c755760001991808301818111614c6157825490848201918211614c4d57808203614c18575b50505080548015614c0457820191614be78383614502565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b614c38614c28614b3e9386614502565b90549060031b1c92839286614502565b90558652846020526040862055388080614bcf565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b60001981146149c55760010190565b80518210156144ec5760209160051b010190565b60405190614cac82614182565b60118252701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6020830152565b15614cd45750565b60405162461bcd60e51b81526020600482015290819061475c9060248301906142f3565b6001600160a01b03808216600090815260cc60205260408120805491949392600192614d299060ff1661099c614c9f565b841685520160205260408320805460ff8116614c755760ff1916600117905560cb60205260408320805490600160401b821015614db6578261204183614d979360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a5989796018155614502565b604080516001600160a01b03928316815292909116602083015290a190565b634e487b7160e01b85526041600452602485fd5b9190826080910312610b69578151916020810151916060604083015192015190565b60405190614df982614182565b600e82526d39b730b839b437ba1032b93937b960911b6020830152565b15614e1d57565b634e487b7160e01b600052600160045260246000fd5b604080516361bfb47160e11b81523360048201526001600160a01b03838116939091608081602481885afa80156150be57600080928192615094575b50614e7c90610a8f614dec565b61505757614e8b903383615c86565b8360005260209260cc845260019384826000200133600052815281600020805460ff81161561504a5760ff1916905560cb8152816000209482519081968791848254948581520191600052846000209060005b868682106150325750505050614ef6925003866141b8565b845194859660005b888110615000575b505050614f1a859660cb9394959610614e16565b33600052528060002092835494600019958681019081116149c557614f769183614f47614f519389614502565b9390549289614502565b92909360031b1c169082549060031b9160018060a01b03809116831b921b1916179055565b8354938415614fea577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d95614fe2950191614fb18383614502565b815460039190911b9290921b19909116905555516001600160a01b0390911681523360208201529081906040820190565b0390a1600090565b634e487b7160e01b600052603160045260246000fd5b818761500c8386614c8b565b5116146150215761501c90614c7c565b614efe565b9650614f1a915060cb905038614f06565b83548b1685528b955090930192918101918101614ede565b5050505050505050600090565b835162461bcd60e51b81526020600482015260166024820152756e6f6e7a65726f20626f72726f772062616c616e636560501b6044820152606490fd5b9050614e7c92506150b3915060803d81116130fb576130e881836141b8565b509290929190614e6f565b84513d6000823e3d90fd5b90816060910312610b69578051916040602083015192015190565b604051906150f182614166565b8160e0600091828152606060208201528260408201528260608201528260808201528260a08201528260c08201520152565b60ff6000199116019060ff82116149c557565b60d3548110156144ec5760d360005260031b7f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a60190600090565b90600182811c921680156151a0575b602083101461518a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161517f565b906040516151b781614166565b809260ff81541682526001808201604051916000918054906151d882615170565b808652918381169081156152835750600114615247575b50505060e0928261520660ff9460079403826141b8565b6020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b90925060005260209182600020916000925b8284106152705750505082010182826152066151ef565b8054868501860152928401928101615259565b60ff191660208088019190915292151560051b8601909201935085925084915061520690506151ef565b8181106152b8575050565b600081556001016152ad565b9190601f81116152d357505050565b6152ff926000526020600020906020601f840160051c83019310615301575b601f0160051c01906152ad565b565b90915081906152f2565b9061544e5760ff82511660ff19825416178155600191828201602080830151948551916001600160401b0383116121ac576153508361534a8654615170565b866152c4565b80601f84116001146153da575091808060e09593600797956152ff9a6000946153cf575b50501b916000199060031b1c19161790555b60408101516002850155606081015160038501556080810151600485015560a0810151600585015560c081015160068501550151151591019060ff801983541691151516179055565b015192503880615374565b9193949596601f1984168660005283600020936000905b8282106154375750509260e0959285926152ff9a9996600799961061541e575b505050811b019055615386565b015160001960f88460031b161c19169055388080615411565b8088869782949787015181550196019401906153f1565b634e487b7160e01b600052600060045260246000fd5b90808214615538576154768154615170565b906001600160401b0382116121ac5781906154958261534a8654615170565b600090601f83116001146154cc576000926154c1575b50508160011b916000199060031b1c1916179055565b0154905038806154ab565b81526020808220858352818320935090601f1985169083905b82821061551f575050908460019594939210615506575b505050811b019055565b015460001960f88460031b161c191690553880806154fc565b84958192958501548155600180910196019401906154e5565b5050565b60d3548015614fea576000190161555281615136565b61544e576007600091828155826001820161556d8154615170565b80615599575b50506002820155826003820155826004820155826005820155826006820155015560d355565b82601f82116001146155b1575050555b823880615573565b90918082526155cf601f60208420940160051c8401600185016152ad565b55556155a9565b60ff1660ff81146149c55760010190565b60ff906155f26150e4565b501660005260d460205261561061120460ff60406000205416615136565b90565b1561561a57565b60405162461bcd60e51b815260206004820152601460248201527337b7363c9030b236b4b71037b9103830bab9b2b960611b6044820152606490fd5b1561565d57565b60405162461bcd60e51b815260206004820152600a60248201526937b7363c9030b236b4b760b11b6044820152606490fd5b1561569657565b606460405162461bcd60e51b815260206004820152602060248201527f6f6e6c792061646d696e206f72206361707065722063616e20736574206361706044820152fd5b156156e157565b60405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606490fd5b91908110156144ec5760051b0190565b356001600160a01b0381168103610b695790565b90816020910312610b6957518015158103610b695790565b60018060a01b038091169060009082825260209060cc825260409460ff8685205416156158af57169283835260cc825260ff85842054161561589e5780835260cc825260ff8584205460081c169380845260ff8685205460081c16928651928184600481637f4e225760e11b948582525afa938415615894578694615873575b508190600489518095819382525afa9485156158685794615849575b50501561582957820361581b571561580e57615809906155e7565b015190565b60609150615809906155e7565b5060a09150615809906155e7565b91925050810361583e576158096080916155e7565b61580960c0916155e7565b615860929450803d10610ba657610b9881836141b8565b9138806157ee565b8751903d90823e3d90fd5b8291945061588d90823d8411610ba657610b9881836141b8565b93906157d2565b88513d88823e3d90fd5b84516334b04fe360e11b8152600490fd5b85516334b04fe360e11b8152600490fd5b9394936001600160a01b03929190831683821614615a3a578260de54169060409687519463629430f960e11b8652602086600481875afa958615615a2f576000966159fb575b5060db548951635dfab59d60e11b815260048101939093526001600160a01b03938416602484015294831660448301529582166064820152949092169091166084840152608090839060a49082906000905af19081156150be5760009384859486946159d2575b50851580156159ca575b6159b957866159b291846119ca9899516159908161414b565b52670de0b6b3a76400006159a48683615e01565b049788925161199f81614182565b9493929190565b506000955085945084939291508390565b508015615977565b9294505093506159f0915060803d81116130fb576130e881836141b8565b92949093913861596d565b90956020823d8211615a27575b81615a15602093836141b8565b8101031261048b575051946080615906565b3d9150615a08565b89513d6000823e3d90fd5b506000945084938493508392508291508190565b90816020910312610b6957516001600160a01b0381168103610b695790565b60de5460408051631588aa8d60e11b815294959394926001600160a01b03926020919084168286600481845afa9586156150be57600096615c25575b5060db548451635dfab59d60e11b8152600481019b909b526001600160a01b0389811660248d01528a811660448d015288811660648d01529086161660848b01528960a4815a608094600091f1958615615be3576000998a97615bfd575b508915615bee578615615bee5784169380808551936372cd916760e01b8552169889600485015216988960248401528a6044840152169485606483015286608483015260a4820152818160c4816000885af18015615be357615bae575b50907fa99c28e2353d54c85eddfc29c44a1c922aa0878a5934b0c7d9e75552d5e210189660c096959493928251968752860152840152856060840152608083015260a0820152a190565b9080969594939291813d8311615bdc575b615bc981836141b8565b81010312610b6957909192939438615b64565b503d615bbf565b83513d6000823e3d90fd5b50505050505050505050600090565b909650615c1991995060803d81116130fb576130e881836141b8565b50509890989538615b07565b90958382813d8311615c4d575b615c3c81836141b8565b8101031261048b5750519438615aa9565b503d615c32565b60405190615c6182614182565b6016825275696e73756666696369656e74206c697175696469747960501b6020830152565b6001600160a01b03908116600081815260cc602052604081205490959493919290615cb69060ff1661099c614c9f565b82865260cc602052806001604088200192169182875260205260ff60408720541615615d2a576060929160849160dc54166040519586948593634e79238f60e01b85526004850152602484015260448301528760648301525afa908115611b7c576152ff929391610a965750610a8f615c54565b505050509050565b15615d3957565b60405162461bcd60e51b815260206004820152600b60248201526a37b7363c9031ba37b5b2b760a91b6044820152606490fd5b60de546001600160a01b031691823b15610b695760405163947f5b7760e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015615dc957615dc05750565b6152ff90614138565b6040513d6000823e3d90fd5b90615def916000604051615de88161414b565b5251615e01565b60405190615dfc8261414b565b815290565b6156109160405191615e1283614182565b601783527f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000602084015291821591828015615e8a575b615e8157808402938404928382148117156149c557615e6b576156109214614ccc565b634e487b7160e01b600052601260045260246000fd5b50505050600090565b508015615e4856fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a585dbb3f830c4325b9ffb1ad42c16ada76c518747b0fb7ee297b261fc6a0f29f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b0a2646970667358221220b1824291ddca810c4ed59151262dcc7c616392463cbbdba8d8d970154fa1a96a64736f6c63430008130033";
|
|
17
|
+
static readonly bytecode = "0x6080806040523461001757615e2690816200001d8239f35b600080fdfe608080604052600436101561001357600080fd5b60009060e08235811c9182627e3dd2146140da5750816301ffc9a7146140695781630914888d14613ecb578163098c76f514613e8b5781630df9ef2c14613e4b578163141a7a6514613e2d5781631475995c14613dfc57816318c882a514613d035781631dbd1aa914613c865781631ededc9114613c4f57816321af45691461104557816324008a6214613c19578163243cdb5514613bf4578163248a9ca314613bc757816324a3d62214613172578163250d71e714613a625781632a6a606514613a245781632d70db781461392d5781632f2ff15d1461387f578163317b0b77146137df5781633278eb04146137b657816336085d46146136cf578163360f5a01146136a657816336568abe14613613578163391957d71461342f5781633bcf7ec1146133385781633bd38381146132975781633c94786f146132715781633f08c0931461322457816347bd11ad146132065781634a584432146131cd5781634ada90af1461319b5781634cab0f2d146131725781634e79238f146130ef5781634ede8e6a146130d15781634ef4c3e114612e7b57816351dff98914612e3d57816352d84d1e14612e12578163554994f214612de957816355ee1fe114612d695781635c77860514612d4d5781635ec88c7914612c995781635f5af1aa14612ae25781635f87769b14612a625781635fc7e71e14612894578163607ef6c11461278a57816369cf0c6f146126285781636d154ea5146125e95781636d35bf911461257e578163731f0c2b1461253f57816373a19dc5146122f65781637dc0d1d0146122cd578163840f82ac1461227457816384b9272014611f3657816387f7630314611f105781638e8f294b14611eb65781638ebf636414611db55781639010d07c14611d6f57816391d1485414611d23578163929fe9a114611cc957816397d0fbe5146117ab5781639cc7becf146117725781639d1b5a0a146117495781639d8ef7e61461171c578163a217fddf14611700578163a35140091461140d578163aa6fb5c0146113cd578163abfceffc14611355578163ac0b0bb71461132f578163b0772d0b146112a4578163b3030a6314611264578163b9412e3b146111fc578163bc1fc18a146111c1578163bdacb30314611181578163bdcdc2581461113b578163c29982381461106e578163c42e5b2b14611045578163c7108b431461101c578163c91033b014610ffb578163ca15c87314610fd1578163ce8b680514610fb3578163d02f735114610e3f578163d1eb167e14610e0b578163d33219b414610de2578163d547741f14610da4578163da3d454c146109bf57508063dce1544914610964578063dd1e75d2146107a1578063e4295d411461075d578063e63ab1e914610734578063e6653f3d1461070e578063e8755446146106f0578063e8762110146106d2578063eabe7d91146106b7578063ede4edd01461068b578063eebc3a99146105ef578063f794062e146105b0578063f8717d401461048e5763f96dae0a1461046357600080fd5b3461048b578060031936011261048b5760d1546040516001600160a01b039091168152602090f35b80fd5b503461048b5761049d366144f8565b848094939552602094606586526040852033600052865260ff604060002054168015610582575b6104cd90615650565b80151580610579575b6104df9061569b565b845b8181106104f2578686604051908152f35b806105016105749285876156d7565b6001600160a01b0390358161051f61051a85888c6156d7565b6156e7565b16895260ce8a52604089205561053961051a83868a6156d7565b167fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea8961056784888a6156d7565b35604051908152a2614c3d565b6104e1565b508082146104d6565b50600080516020615db18339815191528552606586526040808620336000908152908852205460ff166104c4565b503461048b57602036600319011261048b5760209060ff906040906001600160a01b036105db614192565b16815260cc84522054166040519015158152f35b503461048b57606036600319011261048b576020907fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c6004356024356106806044356106396145d8565b60ca549260cf549060d054918660ca558160cf558360d055604051968796879260a094919796959260c0850198855260208501526040840152606083015260808201520152565b0390a1604051908152f35b503461048b57602036600319011261048b5760206106af6106aa614192565b614df4565b604051908152f35b503461048b576106cf6106c93661442e565b91615c2d565b80f35b503461048b578060031936011261048b57602060d054604051908152f35b503461048b578060031936011261048b57602060c954604051908152f35b503461048b578060031936011261048b57602060ff60d55460a81c166040519015158152f35b503461048b578060031936011261048b576020604051600080516020615d918339815191528152f35b503461048b57602036600319011261048b5760043561077a6145d8565b670de0b6b3a7640000811061078f5760df5580f35b604051635012e14560e01b8152600490fd5b503461048b5760208060031936011261095f576004356001600160401b03811161095f573660238201121561095f578060040135906107df8261417b565b916107ed604051938461415a565b80835260248484019160051b8301019136831161095f576024859101915b838310610947575050505082915b8151831015610943576001600160a01b03806108358585614c4c565b5116855260cb8252604085209160405190818482829654948581520190895282892093895b81811061092a575050610870929350038461415a565b855b835181101561091657868360de54168461088c8488614c4c565b5116856108998a8a614c4c565b5116823b156109125760405163947f5b7760e01b81526001600160a01b039283166004820152911660248201529082908290604490829084905af18015610907576108ef575b50506108ea90614c3d565b610872565b6108f8906140f5565b6109035786386108df565b8680fd5b6040513d84823e3d90fd5b8380fd5b509390506109249150614c3d565b91610819565b855487168352600195860195889450928501920161085a565b8380f35b8190610952846141d4565b815201910190849061080b565b600080fd5b503461048b57604036600319011261048b5761097e614192565b6001600160a01b03908116825260cb602052604082208054602435939084101561048b57506020926109af916144b0565b9190546040519260031b1c168152f35b905034610da05760ff906109d23661442e565b9390925416610d8e576001600160a01b0390811680855260d76020908152604086205491929160ff16610d7c5782865260cc8152610a1f60ff604088205416610a19614c60565b90614c8d565b82865260cc815260016040872001938281169485600052825260ff6040600020541615610d3b575b508160db541660405163fc57d4df60e01b908181528560048201528381602481865afa908115610c20578991610d0e575b5015610cdb5784885260d98352604088205480610c2b575b50604051637f4e225760e11b81528381600481895afa908115610c20578991610bf3575b5015610b43575b50505060609260849160dc54166040519586948593634e79238f60e01b85526004850152602484015287604484015260648301525afa8015610907576106cf918391610b12575b50610b0b615bfb565b9015614c8d565b610b33915060603d8111610b3c575b610b2b818361415a565b81019061508a565b91505038610b02565b503d610b21565b829060246040518094819382528860048301525afa908115610be85786928892610bb5575b5050670de0b6b3a764000091610b7d91614966565b0460df548015159182610bab575b5050610b9957388080610abb565b604051630b92ac0b60e11b8152600490fd5b1090503880610b8b565b8193508092503d8311610be1575b610bcd818361415a565b8101031261095f5751849081610b7d610b68565b503d610bc3565b6040513d89823e3d90fd5b610c139150843d8611610c19575b610c0b818361415a565b8101906156fb565b38610ab4565b503d610c01565b6040513d8b823e3d90fd5b6040516308f7a6e360e31b815284816004818a5afa8015610cd05789908b90610c9f575b610c59925061498f565b1015610c655738610a90565b60405162461bcd60e51b8152600481018490526012602482015271189bdc9c9bddc818d85c081c995858da195960721b6044820152606490fd5b50508481813d8311610cc9575b610cb6818361415a565b8101031261095f5788610c599151610c4f565b503d610cac565b6040513d8c823e3d90fd5b60405162461bcd60e51b815260048101849052600b60248201526a383934b1b29032b93937b960a91b6044820152606490fd5b90508381813d8311610d34575b610d25818361415a565b8101031261095f575138610a78565b503d610d1b565b610d5090610d4a853314615cd9565b33614cb9565b5082865260cc815260016040872001846000528152610d7660ff60406000205416614dd7565b38610a47565b60405163095865a360e11b8152600490fd5b604051632bc2c01360e21b8152600490fd5b5080fd5b823461048b57604036600319011261048b576106cf600435610dc46141a8565b908084526065602052610ddd60016040862001546147d2565b6148dd565b823461048b578060031936011261048b5760dd546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b5760ff604060209282610e2d61426e565b16815260d48452205416604051908152f35b905034610da05760ff610e51366143df565b5050509190925416610d8e5760ff60d55460b81c16610fa15760018060a01b038092169081845260209260cc845260ff60408620541680610f8e575b610e9990610a19614c60565b6040518481600481635fe3b56760e01b978882525afa928315610f835785918794610f61575b50600483949560405194859384928352165afa8015610f565782918691610f29575b5016911603610eee575080f35b6064906040519062461bcd60e51b8252600482015260146024820152730c6dedae0e8e4ded8d8cae440dad2e6dac2e8c6d60631b6044820152fd5b610f499150853d8711610f4f575b610f41818361415a565b8101906159f5565b38610ee1565b503d610f37565b6040513d87823e3d90fd5b839450610f7c600491843d8611610f4f57610f41818361415a565b9450610ebf565b6040513d88823e3d90fd5b508181168552604085205460ff16610e8d565b6040516307f4077b60e11b8152600490fd5b823461048b578060031936011261048b57602060ca54604051908152f35b823461048b57602036600319011261048b5760406020916004358152609783522054604051908152f35b823461048b578060031936011261048b57602060ff60d35416604051908152f35b823461048b578060031936011261048b576020604051600080516020615db18339815191528152f35b823461048b578060031936011261048b5760d8546040516001600160a01b039091168152602090f35b823461048b5761107d366141e8565b80516110888161417b565b92611096604051948561415a565b8184526110a28261417b565b6020938585019391601f1901368537825b8281106110fb5750505060405193838594850191818652518092526040850193925b8281106110e457505050500390f35b8351855286955093810193928101926001016110d5565b929593949261113190611121336001600160a01b0361111a8487614c4c565b5116614cb9565b61112b8288614c4c565b52614c3d565b95929493956110b3565b905034610da05760ff61114d36614365565b9391929490505416610d8e5760ff60d55460b01c1661116f576106cf92615c2d565b60405163cd1fda9f60e01b8152600490fd5b823461048b57602036600319011261048b5761119b614192565b6111a36145d8565b60018060a01b03166001600160601b0360a01b60dd54161760dd5580f35b823461048b578060031936011261048b5760206040517f750fc7a006f78e0009a09aa4bf97546d802b8f6c9d27e623dd7cc78951321eaf8152f35b823461048b57602036600319011261048b5761124c61124661124160ff6040611260958261122861426e565b6112306150a5565b5016815260d46020522054166150e4565b6150f7565b5061516b565b6040519182916020835260208301906142c6565b0390f35b823461048b57602036600319011261048b5761127e614192565b6112866145d8565b60018060a01b03166001600160601b0360a01b60da54161760da5580f35b823461048b578060031936011261048b5760405160cd80548083529083526020808301937f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e92915b82821061130f57611260856113038189038261415a565b60405191829182614594565b83546001600160a01b0316865294850194600193840193909101906112ec565b823461048b578060031936011261048b57602060ff60d55460b81c166040519015158152f35b823461048b57602080600319360112610da0576001600160a01b03918261137a614192565b16815260cb82526040812092604051908193808654938481520195845280842093915b8383106113b45761126086611303818a038261415a565b845481168752958101956001948501949092019161139d565b823461048b57602036600319011261048b5760209060ff906040906001600160a01b036113f8614192565b16815260cc8452205460081c16604051908152f35b823461048b5761014036600319011261048b57611428614192565b6114306141a8565b6114386141be565b6001600160a01b039290606435848116919082900361095f576084359085821680920361095f57610124359186831680930361095f5787549360ff8560081c1615968780986116f3575b80156116dc575b156116805760ff198087166001178b558a968961166f575b508680526020998a92606584528160408a209a16998a600052845260406000205460ff16157fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c9a604060c09b60977fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e2298839861152796611637575b508280525220614abb565b50816001600160601b0360a01b97168760d154161760d155670de0b6b3a764000060d25516808660db54161760db55815190600082528b820152a18260da54161760da558160dc54161760dc557f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9604060a4358060c9558151908a825289820152a160c435918260ca5560e435908160cf5561010435928360d05560de54161760de556801158e460913d0000060df556040519288845287840152876040840152606083015286608083015260a0820152a1611601575080f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061ff0019835416835560405160018152a180f35b8380526065825284842086600052825260018560002091825416179055338584600080516020615d718339815191528180a43861151c565b61ffff19166101011787558b6114a1565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156114895750600160ff871614611489565b50600160ff871610611482565b823461048b578060031936011261048b57602090604051908152f35b823461048b57604036600319011261048b5760206106af61173b614192565b6117436141a8565b90615713565b823461048b578060031936011261048b5760d1546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b576020906040906001600160a01b0361179a614192565b16815260ce83522054604051908152f35b823461048b57604036600319011261048b576117c5614192565b604051637f4e225760e11b81529091602435916001600160a01b03841690602081600481855afa908115611b7a578391611caa575b50611c725760de546040516308f7a6e360e31b81526001600160a01b0390911690602081600481865afa908115611c6757908492918391611c2f575b5090604460209260405194859384926309d3fe0b60e41b84528a600485015260248401525af18015611b7a57611c04575b5080825260cc60205260408220549290602060018060a01b0360de5416916024604051809481936350e8542360e01b835260048301525afa908115611b7a578391611be5575b505b81151580611bd3575b15611bb95760018060a01b038116835260cb602052604083206040518082602082945493848152019087526020872092875b818110611b975750506118ff9250038261415a565b835b8151811080611b8e575b15611a0b57600460206001600160a01b036119268486614c4c565b511660405192838092637f4e225760e11b82525afa908115610f835786916119ec575b501561199257336001600160a01b03841614611992576001600160a01b036119718284614c4c565b5116855260cc60205260ff8660081c1660ff604087205460081c16146119a0575b61199b90614c3d565b611901565b926119c181886001600160a01b036119b88887614c4c565b51168633615a14565b90808210156119e05761199b916119d791614b40565b935b9050611992565b505061199b84936119d9565b611a05915060203d602011610c1957610c0b818361415a565b88611949565b50835b8151811080611b85575b15611b0f57600460206001600160a01b03611a338486614c4c565b511660405192838092637f4e225760e11b82525afa908115610f83578691611af0575b5015611a9f57336001600160a01b03841614611a9f576001600160a01b03611a7e8284614c4c565b5116855260cc60205260ff8660081c1660ff604087205460081c1603611aad575b611aa890614c3d565b611a0e565b92611ac581886001600160a01b036119b88887614c4c565b9080821015611ae457611aa891611adb91614b40565b935b9050611a9f565b5050611aa88493611add565b611b09915060203d602011610c1957610c0b818361415a565b88611a56565b505060de5460405163d99550c960e01b81526001600160a01b03878116600483015292831660248201529160209183916044918391165afa908115611b7a578391611b5b575b506118af565b611b74915060203d602011610f4f57610f41818361415a565b85611b55565b6040513d85823e3d90fd5b50831515611a18565b5083151561190b565b84546001600160a01b03168352600194850194869450602090930192016118ea565b50611bc15780f35b60405163518d5aa560e11b8152600490fd5b506001600160a01b03811615156118b8565b611bfe915060203d602011610f4f57610f41818361415a565b856118ad565b602090813d8311611c28575b611c1a818361415a565b8101031261095f5784611867565b503d611c10565b919250506020813d602011611c5f575b81611c4c6020938361415a565b8101031261095f57518391906044611836565b3d9150611c3f565b6040513d86823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21039ba903a37b5b2b760811b6044820152606490fd5b611cc3915060203d602011610c1957610c0b818361415a565b856117fa565b823461048b57604036600319011261048b57611ce3614192565b906001600160a01b039060019060409083611cfc6141a8565b16815260cc60205220019116600052602052602060ff604060002054166040519015158152f35b823461048b57604036600319011261048b576040611d3f6141a8565b9160043581526065602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b823461048b57604036600319011261048b57611d9c602091600435815260978352604060243591206144b0565b905460405160039290921b1c6001600160a01b03168152f35b823461048b576020908160031936011261048b57600080516020615dd183398151915260a0611de2614327565b8015611e59578380526065855260408420336000528552611e0a60ff60406000205416615617565b15159260d55460ff60b01b8560b01b169060ff60b01b19161760d55560405190815260608582015260086060820152672a3930b739b332b960c11b6080820152836040820152a1604051908152f35b838052606585526040842033600052855260ff604060002054168015611e88575b611e83906155d4565b611e0a565b50600080516020615d918339815191528452606585526040808520336000908152908752205460ff16611e7a565b823461048b57602036600319011261048b576060906040906001600160a01b03611ede614192565b16815260cc6020522060ff600282549201541660ff604051928181161515845260081c16602083015215156040820152f35b823461048b578060031936011261048b57602060ff60d55460b01c166040519015158152f35b823461048b57608036600319011261048b57611f50614192565b9060243560ff81169283820361095f576044359060643590611f706145d8565b60018060a01b03908181169485875260209760cc895260ff6040892054166121e6571561223d5786806040518a810190637f4e225760e11b825260048152611fb781614124565b519082865af13d15612238573d611fcd81614542565b90611fdb604051928361415a565b8152888a3d92013e5b8061222e575b156121f85785875260cc88526001604088209161ff0083549160081b169061ffff191617179055859060cd54915b8281106121c05750600160401b8210156121aa5761203f82600161205e940160cd55614463565b90919082549060031b9160018060a01b03809116831b921b1916179055565b6120a360405161206d81614124565b601c81527f626c6f636b206e756d6265722065786365656473203332206269747300000000888201526401000000004310614c8d565b60da5416803b156121a657848091604460405180948193633ace041560e11b835289600484015263ffffffff431660248401525af18015610f5657858793928692612188575b50507f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6837fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea957fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f82604051868152a183895260d982528060408a2055604051908152a283855260ce8252806040862055604051908152a2604051908152f35b909294935061219791506140f5565b610912579084908385886120e9565b8480fd5b634e487b7160e01b600052604160045260246000fd5b86846121cb83614463565b90549060031b1c16146121e6576121e190614c3d565b612018565b604051634d5eeb4960e01b8152600490fd5b60405162461bcd60e51b815260048101899052600e60248201526d31b7b73a3930b1ba1032b93937b960911b6044820152606490fd5b50813b1515611fea565b611fe4565b60405162461bcd60e51b815260048101899052600f60248201526e1a5b9d985b1a590819dc9bdd5c1259608a1b6044820152606490fd5b823461048b57602036600319011261048b5761228e614192565b6122966145d8565b6001600160a01b031680156122bb576001600160601b0360a01b60d154161760d15580f35b60405163e6c4247b60e01b8152600490fd5b823461048b578060031936011261048b5760db546040516001600160a01b039091168152602090f35b823461048b578160031936011261048b5761230f61426e565b6024356001600160401b03811161253b573660238201121561253b5761233f90369060248160040135910161455d565b906044356064359260843560a4359060c4359261235a6145d8565b60ff8096169586895260209960d48b528160408b20541660d3548110801590612525575b1561248b575060016040519161239383614108565b898352848d8401528860408401528a60608401528560808401528660a08401528760c084015282015260d354600160401b8110156124775760c096937f878e48ed20dc6724a982e6ed357e7ad8d32f3a8550cc2d946046e3a708545e7998969360d48e6124158f999661240f87600161244a990160d3556150f7565b906152cc565b8c6124238460d354166150e4565b99525260408d209616958660ff198254161790558c6040519282848094519384920161427e565b8101039020986040519586528b86015260408501526060840152608083015260a0820152a3604051908152f35b634e487b7160e01b8b52604160045260248bfd5b9780999391979261249b8a6150f7565b505416036124ed57926124e8989795926001959261240f98956040519a6124c18c614108565b8b528d8b015260408a01526060890152608088015260a087015260c08601528401526150f7565b6106af565b60405162461bcd60e51b8152600481018c9052601060248201526f0cee4deeae092c840dad2e6dac2e8c6d60831b6044820152606490fd5b508883612531836150f7565b505416141561237e565b8280fd5b823461048b57602036600319011261048b5760209060ff906040906001600160a01b0361256a614192565b16815260d684522054166040519015158152f35b823461048b5761258d366143df565b509192505061259e333b1515615cd9565b604051637f4e225760e11b815291602083600481335afa928315611c67576106cf936125cb575b50615d13565b6125e29060203d8111610c1957610c0b818361415a565b50846125c5565b823461048b57602036600319011261048b5760209060ff906040906001600160a01b03612614614192565b16815260d784522054166040519015158152f35b823461048b57608036600319011261048b5780612643614192565b6024356064356001600160401b03811161278557366023820112156127855761267690369060248160040135910161455d565b604051636f307dc360e01b81526001600160a01b039384169390602081600481885afa908115610f83578691612767575b5016803b156121a6576126f68592918392604051948580948193639fd5a6cf60e01b83523360048401528a6024840152896044840152604435606484015260a0608484015260a48301906142a1565b03925af1908115611c67578491612753575b5050303b1561274f57604051916397d0fbe560e01b835260048301526024820152818160448183305af180156109075761273f5750f35b612748906140f5565b61048b5780f35b5050fd5b61275c906140f5565b61274f578285612708565b61277f915060203d8111610f4f57610f41818361415a565b876126a7565b505050fd5b823461048b57612799366144f8565b848093929352602091606583526040862033600052835260ff604060002054168015612866575b6127c990615650565b8015158061285d575b6127db9061569b565b855b8181106127e8578680f35b806127f76128589285886156d7565b6001600160a01b0390358161281061051a85888d6156d7565b168a5260d9875260408a205561282a61051a83868b6156d7565b167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f68661056784888b6156d7565b6127dd565b508082146127d2565b50600080516020615db18339815191528652606583526040808720336000908152908552205460ff166127c0565b823461048b576128a3366143df565b939092915060018060a01b0380911680865260209260cc84528260ff60408920541615918215612a4e575b5050612a3c576040516395dd919360e01b815293821660048501819052928085602481855afa948515610be8578795612a0d575b50604051630c71782360e41b81528181600481865afa918215612a025788926129e5575b50501561294a57505050106129385780f35b60405163e46c155960e01b8152600490fd5b608460609260dc5416936040519485938492634e79238f60e01b84526004840152602483015260006044830152600060648301525afa908115611c675784916129c4575b50156129b2576129a9670de0b6b3a76400009160c954614966565b04106129385780f35b60405163095bf33360e01b8152600490fd5b6129dc915060603d8111610b3c57610b2b818361415a565b9150508461298e565b6129fb9250803d10610c1957610c0b818361415a565b8780612926565b6040513d8a823e3d90fd5b9080955081813d8311612a35575b612a25818361415a565b8101031261095f57519387612902565b503d612a1b565b6040516334b04fe360e11b8152600490fd5b16875250604086205460ff161582886128ce565b823461048b57606036600319011261048b57612a7c614192565b612a846145d8565b60da546001600160a01b0390811691839190833b1561253b57606490836040519586948593635f87769b60e01b8552166004840152602435602484015260443560448401525af1801561090757612ad9575080f35b6106cf906140f5565b823461048b576020908160031936011261048b57612afe614192565b612b066145d8565b6001600160a01b0390811680156122bb5781612bf17f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9360d5541692600080516020615d918339815191528087526065808952612b69600160408a2001546147d2565b81885280895260408820868952895260ff604089205416612c53575b81885260978952612b998660408a20614b4d565b50826001600160601b0360a01b60d554161760d555818852808952612bc4600160408a2001546147d2565b81885280895260408820838952895260ff60408920541615612c1c575b5086526097875260408620614abb565b5060d554604080516001600160a01b0394851681529290911690921660208201529081908101610680565b8188528852604080882083895289528720805460ff19166001179055338282600080516020615d718339815191528a80a488612be1565b8188528089526040808920878a528a528820805460ff191690553386837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8b80a4612b85565b823461048b57602036600319011261048b57612cb3614192565b60dc54604051634e79238f60e01b81526001600160a01b0392831660048201526024810184905260448101849052606481018490529160609183916084918391165afa80156109075782918391612d27575b5061126090604051938493846040919493926060820195825260208201520152565b90506112609250612d46915060603d8111610b3c57610b2b818361415a565b9092612d05565b823461048b57612d5c3661442e565b5061259e333b1515615cd9565b823461048b57602036600319011261048b576020907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e22612da7614192565b612daf6145d8565b60db80546001600160a01b039283166001600160a01b03198216811790925560408051939091168352602083019190915281908101610680565b823461048b578060031936011261048b5760dc546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b576004359060cd5482101561048b576020611d9c83614463565b823461048b57612e4c366143a6565b159250905081612e71575b50612e5f5780f35b604051631812515160e11b8152600490fd5b9050151582612e57565b905034610da05760ff612e8d3661442e565b919290935416610d8e5760018060a01b038092169182855260209360d6855260ff6040872054166130bf5783865260cc8552612ed260ff604088205416610a19614c60565b6040516361bfb47160e11b81529181166004830181905291608081602481885afa8015610be8578788928992613085575b50612f1090610b0b614dad565b85885260cc875260016040892001848952875260ff60408920541615918261307c575b5081613073575b50613025575b505081845260ce83526040842054159182159182612f9e575b50505015612f65575080f35b6064906040519062461bcd60e51b8252600482015260126024820152711cdd5c1c1b1e4818d85c081c995858da195960721b6044820152fd5b9192509082612fb2575b5050388080612f59565b6040516318160ddd60e01b81529192508382600481865afa8015610f56578590612ff6575b612fe1925061498f565b90835260ce8252604083205410153880612fa8565b508382813d831161301e575b61300c818361415a565b810103126121a657612fe19151612fd7565b503d613002565b833303613061576130369033614cb9565b5082855260cc845260016040862001908552835261305a60ff604086205416614dd7565b3880612f40565b60405163094d2b6d60e21b8152600490fd5b90501538612f3a565b15915038612f33565b9050612f1092506130ad915060803d81116130b8575b6130a5818361415a565b810190614d8b565b509290929190612f03565b503d61309b565b604051636be9245d60e11b8152600490fd5b823461048b578060031936011261048b57602060cf54604051908152f35b823461048b576060613100366143a6565b60dc54604051634e79238f60e01b81526001600160a01b03958616600482015293851660248501526044840192909252606483015290929183916084918391165afa80156109075782918391612d27575061126090604051938493846040919493926060820195825260208201520152565b823461048b578060031936011261048b5760d5546040516001600160a01b039091168152602090f35b823461048b578060031936011261048b5760ca5460cf5460d05460408051938452602084019290925290820152606090f35b823461048b57602036600319011261048b576020906040906001600160a01b036131f5614192565b16815260d983522054604051908152f35b823461048b578060031936011261048b57602060d254604051908152f35b823461048b57611260613242613239366143df565b93929092615881565b604080519687526020870195909552938501929092526060840152608083015260a082015290819060c0820190565b823461048b578060031936011261048b57602060ff60d55460a01c166040519015158152f35b823461048b5760206132a8366143a6565b60dc546040516354f2052160e11b81526001600160a01b03958616600482015293851660248501526044840192909252606483015290929183916084918391165afa908115610907578291613303575b602082604051908152f35b90506020813d8211613330575b8161331d6020938361415a565b81010312610da0576020915051826132f8565b3d9150613310565b823461048b57602090600080516020615dd183398151915260a060406133a861336036614336565b92839182156133da5787805260658952818820338952895261338760ff838a205416615617565b600180871b03169687815260d68952209060ff801983541691151516179055565b6040519384526060858501526004606085015263135a5b9d60e21b6080850152151592836040820152a1604051908152f35b87805260658952818820338952895260ff82892054168015613405575b613400906155d4565b613387565b50600080516020615d9183398151915288526065895281882033895289528188205460ff166133f7565b823461048b576020908160031936011261048b5761344b614192565b6134536145d8565b6001600160a01b038181169081156135dc577feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e29939491609761353f9260d8541693600080516020615db183398151915280895260658083526134bb600160408c2001546147d2565b818a5280835260408a20878b52835260ff60408b205416613596575b818a528383526134ea8760408c20614b4d565b50846001600160601b0360a01b60d854161760d855818a52808352613515600160408c2001546147d2565b818a5280835260408a20858b52835260ff60408b2054161561355f575b5088525260408620614abb565b50604080516001600160a01b03928316815292909116602083015290a180f35b818a5282526040808a20858b5283528920805460ff19166001179055338482600080516020615d718339815191528c80a489613532565b818a528083526040808b20888c5284528a20805460ff191690553387837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8d80a46134d7565b60405162461bcd60e51b815260048101869052600f60248201526e696e76616c6964206164647265737360881b6044820152606490fd5b823461048b57604036600319011261048b5761362d6141a8565b336001600160a01b03821603613649576106cf906004356148dd565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b823461048b578060031936011261048b5760da546040516001600160a01b039091168152602090f35b823461048b578060031936011261048b5760d3546136ec8161417b565b906136fa604051928361415a565b80825260d3835260209283830191817f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a6845b8383106137915750505050604051928484019085855251809152604084019460408260051b8601019392955b8287106137655785850386f35b909192938280613781600193603f198a820301865288516142c6565b9601920196019592919092613758565b6008886001926137a4859b9a989b61516b565b8152019201920191909693959661372c565b823461048b578060031936011261048b5760de546040516001600160a01b039091168152602090f35b823461048b57602036600319011261048b57600435906137fd6145d8565b8115613843577f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9604060209360c954908060c955825191825285820152a1604051908152f35b60405162461bcd60e51b815260206004820152601460248201527334b73b30b634b21031b637b9b2903330b1ba37b960611b6044820152606490fd5b823461048b57604036600319011261048b576138f160043560976138a16141a8565b91808552602090606582526138bc60016040882001546147d2565b8086526065825260408087206001600160a01b0390951680885294835286205460ff16156138f5575b85525260408320614abb565b5080f35b80865260658252604080872085885283528620805460ff19166001179055338482600080516020615d718339815191528980a46138e5565b823461048b576020908160031936011261048b57600080516020615dd183398151915260a061395a614327565b80156139cc578380526065855260408420338552855261398060ff604086205416615617565b15159260d55460ff60b81b8560b81b169060ff60b81b19161760d55560405190815260608582015260056060820152645365697a6560d81b6080820152836040820152a1604051908152f35b8380526065855260408420338552855260ff60408520541680156139f9575b6139f4906155d4565b613980565b50600080516020615d918339815191528452606585526040808520338652865284205460ff166139eb565b905034610da0576020366003190112610da057602090613a42614327565b613a4a6145d8565b15159060ff1981541660ff8316179055604051908152f35b823461048b576020908160031936011261048b57613a7e61426e565b613a866145d8565b60ff8060d35416908080613a9c611241856150e4565b50541693169283855260d486528160408620541691613abd611241856150e4565b50613ac7846150f7565b919091613bb3579181838a96947f3142b1d766c6799b48d5083bdb3ef6e5a2d93657c1a073fba6c4cf5a93f3d0be98969403613b3e575b505050865260d483526040862060ff199182825416179055613b1e6154fd565b84865260d4835260408620908154169055604051908152a2604051908152f35b82600782613bab958294541660ff19865416178555613b636001820160018701615425565b600281015460028601556003810154600386015560048101546004860155600581015460058601556006810154600686015501541691019060ff801983541691151516179055565b888080613afe565b634e487b7160e01b88526004889052602488fd5b823461048b57602036600319011261048b5760016040602092600435815260658452200154604051908152f35b823461048b57602036600319011261048b5761126061124c613c1461426e565b6155a8565b823461048b57613c2836614365565b5050506001600160a01b0316815260cc60205260408120546106cf9060ff16610a19614c60565b823461048b5760a036600319011261048b57613c69614192565b613c716141a8565b50613c7a6141be565b61259e333b1515615cd9565b823461048b578060031936011261048b57805b60d3549060ff918282161015613cd657613cd191613cb6826150f7565b505416835260d460205260408320805460ff19169055615597565b613c99565b8260ff8060d35416825b8183821610613ced578380f35b613cfe90613cf96154fd565b615597565b613ce0565b823461048b57602090600080516020615dd183398151915260a06040613d73613d2b36614336565b9283918215613da757878052606589528188203389528952613d5260ff838a205416615617565b600180871b03169687815260d78952209060ff801983541691151516179055565b6040519384526060858501526006606085015265426f72726f7760d01b6080850152151592836040820152a1604051908152f35b87805260658952818820338952895260ff82892054168015613dd2575b613dcd906155d4565b613d52565b50600080516020615d9183398151915288526065895281882033895289528188205460ff16613dc4565b823461048b57602036600319011261048b5761126061124c611246613e1f61426e565b613e276150a5565b506150f7565b823461048b578060031936011261048b57602060df54604051908152f35b823461048b57602036600319011261048b57613e65614192565b613e6d6145d8565b60018060a01b03166001600160601b0360a01b60de54161760de5580f35b823461048b57602036600319011261048b57613ea5614192565b613ead6145d8565b60018060a01b03166001600160601b0360a01b60dc54161760dc5580f35b823461048b57613eda366141e8565b613ee26145d8565b805191805b60cd548110156138f157613efa81614463565b90546001600160a01b0360039290921b1c811690835b868110613f2857505050613f2390614c3d565b613ee7565b81613f37828894959698614c4c565b51166040516370a0823160e01b8152816004820152602091602491838184818b5afa908115610c2057899161403c575b5015801590613fd8575b613f8c575b505050613f8290614c3d565b9492919094613f10565b613f969087614cb9565b613fa05780613f76565b9060126064926040519262461bcd60e51b8452600484015282015271185919151bd3585c9ad95d0819985a5b195960721b6044820152fd5b506040516305eff7ef60e21b815260048101829052838184818c8c5af1908115610c2057899161400b575b501515613f71565b90508381813d8311614035575b614022818361415a565b8101031261403157518b614003565b8880fd5b503d614018565b90508381813d8311614062575b614053818361415a565b8101031261403157518b613f67565b503d614049565b823461048b57602036600319011261048b5760043563ffffffff60e01b8116809103610da057602090635a05180f60e01b81149081156140af575b506040519015158152f35b637965db0b60e01b8114915081156140c9575b50826140a4565b6301ffc9a760e01b149050826140c2565b839034610da05781600319360112610da05780600160209252f35b6001600160401b0381116121aa57604052565b61010081019081106001600160401b038211176121aa57604052565b604081019081106001600160401b038211176121aa57604052565b608081019081106001600160401b038211176121aa57604052565b90601f801991011681019081106001600160401b038211176121aa57604052565b6001600160401b0381116121aa5760051b60200190565b600435906001600160a01b038216820361095f57565b602435906001600160a01b038216820361095f57565b604435906001600160a01b038216820361095f57565b35906001600160a01b038216820361095f57565b60208060031983011261095f57600435916001600160401b03831161095f578060238401121561095f5782600401356142208161417b565b9361422e604051958661415a565b81855260248486019260051b82010192831161095f57602401905b828210614257575050505090565b838091614263846141d4565b815201910190614249565b6004359060ff8216820361095f57565b60005b8381106142915750506000910152565b8181015183820152602001614281565b906020916142ba8151809281855285808601910161427e565b601f01601f1916010190565b9060ff825116815260e0806142ea60208501516101008060208701528501906142a1565b9360408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151151591015290565b60043590811515820361095f57565b604090600319011261095f576004356001600160a01b038116810361095f5790602435801515810361095f5790565b608090600319011261095f576001600160a01b03600435818116810361095f5791602435828116810361095f5791604435908116810361095f579060643590565b608090600319011261095f576001600160a01b0390600435828116810361095f5791602435908116810361095f57906044359060643590565b60a090600319011261095f576001600160a01b0390600435828116810361095f5791602435818116810361095f5791604435828116810361095f5791606435908116810361095f579060843590565b606090600319011261095f576001600160a01b0390600435828116810361095f5791602435908116810361095f579060443590565b60cd5481101561449a5760cd6000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0190600090565b634e487b7160e01b600052603260045260246000fd5b805482101561449a5760005260206000200190600090565b9181601f8401121561095f578235916001600160401b03831161095f576020808501948460051b01011161095f57565b604060031982011261095f576001600160401b039160043583811161095f5782614524916004016144c8565b9390939260243591821161095f5761453e916004016144c8565b9091565b6001600160401b0381116121aa57601f01601f191660200190565b92919261456982614542565b91614577604051938461415a565b82948184528183011161095f578281602093846000960137010152565b6020908160408183019282815285518094520193019160005b8281106145bb575050505090565b83516001600160a01b0316855293810193928101926001016145ad565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602090815260408083205490929060ff161561461a57505050565b614623336149ad565b90808451906146318261413f565b604282528482019260603685378251156147be57603084538251906001918210156147be5790607860218501536041915b8183116147505750505061470e57604861470a9386936146ee936146df985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526146b6815180928c60378901910161427e565b8401917001034b99036b4b9b9b4b733903937b6329607d1b60378401525180938684019061427e565b0103602881018752018561415a565b5192839262461bcd60e51b8452600484015260248301906142a1565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f811660108110156147aa576f181899199a1a9b1b9c1cb0b131b232b360811b901a614780858761499c565b5360041c92801561479657600019019190614662565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b60009080825260209060658252604092838120338252835260ff8482205416156147fc5750505050565b614805336149ad565b918451906148128261413f565b604282528482019260603685378251156147be57603084538251906001918210156147be5790607860218501536041915b8183116148975750505061470e57604861470a9386936146ee936146df985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526146b6815180928c60378901910161427e565b909192600f811660108110156147aa576f181899199a1a9b1b9c1cb0b131b232b360811b901a6148c7858761499c565b5360041c92801561479657600019019190614843565b90604061491b9260009080825260656020528282209360018060a01b03169384835260205260ff838320541661491e575b8152609760205220614b4d565b50565b808252606560205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a461490e565b8181029291811591840414171561497957565b634e487b7160e01b600052601160045260246000fd5b9190820180921161497957565b90815181101561449a570160200190565b60405190606082018281106001600160401b038211176121aa57604052602a825260208201604036823782511561449a5760309053815160019081101561449a57607860218401536029905b808211614a4d575050614a095790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015614aa6576f181899199a1a9b1b9c1cb0b131b232b360811b901a614a7c848661499c565b5360041c918015614a915760001901906149f9565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b91906001830160009082825280602052604082205415600014614b3a57845494600160401b861015614b265783614b16614aff886001604098999a018555846144b0565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b9190820391821161497957565b90600182019060009281845282602052604084205490811515600014614c365760001991808301818111614c2257825490848201918211614c0e57808203614bd9575b50505080548015614bc557820191614ba883836144b0565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b614bf9614be9614aff93866144b0565b90549060031b1c928392866144b0565b90558652846020526040862055388080614b90565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b60001981146149795760010190565b805182101561449a5760209160051b010190565b60405190614c6d82614124565b60118252701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6020830152565b15614c955750565b60405162461bcd60e51b81526020600482015290819061470a9060248301906142a1565b6001600160a01b03808216600090815260cc60205260408120805491949392600192614cea9060ff16610a19614c60565b841685520160205260408320805460ff8116614c365760ff1916600117905560cb60205260408320805490600160401b821015614d77578261203f83614d589360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a59897960181556144b0565b604080516001600160a01b03928316815292909116602083015290a190565b634e487b7160e01b85526041600452602485fd5b919082608091031261095f578151916020810151916060604083015192015190565b60405190614dba82614124565b600e82526d39b730b839b437ba1032b93937b960911b6020830152565b15614dde57565b634e487b7160e01b600052600160045260246000fd5b604080516361bfb47160e11b81523360048201526001600160a01b03838116939091608081602481885afa801561507f57600080928192615055575b50614e3d90610b0b614dad565b61501857614e4c903383615c2d565b8360005260209260cc845260019384826000200133600052815281600020805460ff81161561500b5760ff1916905560cb8152816000209482519081968791848254948581520191600052846000209060005b86868210614ff35750505050614eb79250038661415a565b845194859660005b888110614fc1575b505050614edb859660cb9394959610614dd7565b336000525280600020928354946000199586810190811161497957614f379183614f08614f1293896144b0565b93905492896144b0565b92909360031b1c169082549060031b9160018060a01b03809116831b921b1916179055565b8354938415614fab577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d95614fa3950191614f7283836144b0565b815460039190911b9290921b19909116905555516001600160a01b0390911681523360208201529081906040820190565b0390a1600090565b634e487b7160e01b600052603160045260246000fd5b8187614fcd8386614c4c565b511614614fe257614fdd90614c3d565b614ebf565b9650614edb915060cb905038614ec7565b83548b1685528b955090930192918101918101614e9f565b5050505050505050600090565b835162461bcd60e51b81526020600482015260166024820152756e6f6e7a65726f20626f72726f772062616c616e636560501b6044820152606490fd5b9050614e3d9250615074915060803d81116130b8576130a5818361415a565b509290929190614e30565b84513d6000823e3d90fd5b9081606091031261095f578051916040602083015192015190565b604051906150b282614108565b8160e0600091828152606060208201528260408201528260608201528260808201528260a08201528260c08201520152565b60ff6000199116019060ff821161497957565b60d35481101561449a5760d360005260031b7f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a60190600090565b90600182811c92168015615161575b602083101461514b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691615140565b9060405161517881614108565b809260ff815416825260018082016040519160009180549061519982615131565b808652918381169081156152445750600114615208575b50505060e092826151c760ff94600794038261415a565b6020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b90925060005260209182600020916000925b8284106152315750505082010182826151c76151b0565b805486850186015292840192810161521a565b60ff191660208088019190915292151560051b860190920193508592508491506151c790506151b0565b818110615279575050565b6000815560010161526e565b9190601f811161529457505050565b6152c0926000526020600020906020601f840160051c830193106152c2575b601f0160051c019061526e565b565b90915081906152b3565b9061540f5760ff82511660ff19825416178155600191828201602080830151948551916001600160401b0383116121aa576153118361530b8654615131565b86615285565b80601f841160011461539b575091808060e09593600797956152c09a600094615390575b50501b916000199060031b1c19161790555b60408101516002850155606081015160038501556080810151600485015560a0810151600585015560c081015160068501550151151591019060ff801983541691151516179055565b015192503880615335565b9193949596601f1984168660005283600020936000905b8282106153f85750509260e0959285926152c09a999660079996106153df575b505050811b019055615347565b015160001960f88460031b161c191690553880806153d2565b8088869782949787015181550196019401906153b2565b634e487b7160e01b600052600060045260246000fd5b908082146154f9576154378154615131565b906001600160401b0382116121aa5781906154568261530b8654615131565b600090601f831160011461548d57600092615482575b50508160011b916000199060031b1c1916179055565b01549050388061546c565b81526020808220858352818320935090601f1985169083905b8282106154e05750509084600195949392106154c7575b505050811b019055565b015460001960f88460031b161c191690553880806154bd565b84958192958501548155600180910196019401906154a6565b5050565b60d3548015614fab5760001901615513816150f7565b61540f576007600091828155826001820161552e8154615131565b8061555a575b50506002820155826003820155826004820155826005820155826006820155015560d355565b82601f8211600114615572575050555b823880615534565b9091808252615590601f60208420940160051c84016001850161526e565b555561556a565b60ff1660ff81146149795760010190565b60ff906155b36150a5565b501660005260d46020526155d161124660ff604060002054166150f7565b90565b156155db57565b60405162461bcd60e51b815260206004820152601460248201527337b7363c9030b236b4b71037b9103830bab9b2b960611b6044820152606490fd5b1561561e57565b60405162461bcd60e51b815260206004820152600a60248201526937b7363c9030b236b4b760b11b6044820152606490fd5b1561565757565b606460405162461bcd60e51b815260206004820152602060248201527f6f6e6c792061646d696e206f72206361707065722063616e20736574206361706044820152fd5b156156a257565b60405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606490fd5b919081101561449a5760051b0190565b356001600160a01b038116810361095f5790565b9081602091031261095f5751801515810361095f5790565b60018060a01b038091169060009082825260209060cc825260409460ff86852054161561587057169283835260cc825260ff85842054161561585f5780835260cc825260ff8584205460081c169380845260ff8685205460081c16928651928184600481637f4e225760e11b948582525afa938415615855578694615834575b508190600489518095819382525afa948515615829579461580a575b5050156157ea5782036157dc57156157cf576157ca906155a8565b015190565b606091506157ca906155a8565b5060a091506157ca906155a8565b9192505081036157ff576157ca6080916155a8565b6157ca60c0916155a8565b615821929450803d10610c1957610c0b818361415a565b9138806157af565b8751903d90823e3d90fd5b8291945061584e90823d8411610c1957610c0b818361415a565b9390615793565b88513d88823e3d90fd5b84516334b04fe360e11b8152600490fd5b85516334b04fe360e11b8152600490fd5b6001600160a01b03959491908616868216146159e1578560de5416916040519663629430f960e11b8852602088600481875afa9788156159a1576000986159ad575b5060db54604051635dfab59d60e11b815260048101939093526001600160a01b03938416602484015294831660448301529482166064820152939092169091166084830152608090829060a49082906000905af180156159a157600093849385938693615976575b508515801561596e575b61595e57615957670de0b6b3a764000061594f8488614966565b048096614b40565b9493929190565b6000955085945084939291508390565b508415615935565b925094509250615994915060803d81116130b8576130a5818361415a565b929491939092913861592b565b6040513d6000823e3d90fd5b90976020823d82116159d9575b816159c76020938361415a565b8101031261048b5750519660806158c3565b3d91506159ba565b506000945084938493508392508291508190565b9081602091031261095f57516001600160a01b038116810361095f5790565b60de5460408051631588aa8d60e11b815294959394926001600160a01b03926020919084168286600481845afa95861561507f57600096615bcc575b5060db548451635dfab59d60e11b8152600481019b909b526001600160a01b0389811660248d01528a811660448d015288811660648d01529086161660848b01528960a4815a608094600091f1958615615b8a576000998a97615ba4575b508915615b95578615615b955784169380808551936372cd916760e01b8552169889600485015216988960248401528a6044840152169485606483015286608483015260a4820152818160c4816000885af18015615b8a57615b55575b50907fa99c28e2353d54c85eddfc29c44a1c922aa0878a5934b0c7d9e75552d5e210189660c096959493928251968752860152840152856060840152608083015260a0820152a190565b9080969594939291813d8311615b83575b615b70818361415a565b8101031261095f57909192939438615b0b565b503d615b66565b83513d6000823e3d90fd5b50505050505050505050600090565b909650615bc091995060803d81116130b8576130a5818361415a565b50509890989538615aae565b90958382813d8311615bf4575b615be3818361415a565b8101031261048b5750519438615a50565b503d615bd9565b60405190615c0882614124565b6016825275696e73756666696369656e74206c697175696469747960501b6020830152565b6001600160a01b03908116600081815260cc602052604081205490959493919290615c5d9060ff16610a19614c60565b82865260cc602052806001604088200192169182875260205260ff60408720541615615cd1576060929160849160dc54166040519586948593634e79238f60e01b85526004850152602484015260448301528760648301525afa908115611b7a576152c0929391610b125750610b0b615bfb565b505050509050565b15615ce057565b60405162461bcd60e51b815260206004820152600b60248201526a37b7363c9031ba37b5b2b760a91b6044820152606490fd5b60de546001600160a01b031691823b1561095f5760405163947f5b7760e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af180156159a157615d675750565b6152c0906140f556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a585dbb3f830c4325b9ffb1ad42c16ada76c518747b0fb7ee297b261fc6a0f29f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b0a26469706673582212209e89d71b0948472d344baf8bac2a03b961932a1457d63639a640315fa28185b464736f6c63430008130033";
|
|
18
18
|
static readonly abi: readonly [{
|
|
19
|
+
readonly inputs: readonly [];
|
|
20
|
+
readonly name: "AddReservesOverflow";
|
|
21
|
+
readonly type: "error";
|
|
22
|
+
}, {
|
|
23
|
+
readonly inputs: readonly [];
|
|
24
|
+
readonly name: "BorrowAndDepositBackFailed";
|
|
25
|
+
readonly type: "error";
|
|
26
|
+
}, {
|
|
27
|
+
readonly inputs: readonly [];
|
|
28
|
+
readonly name: "BorrowMarketNotFresh";
|
|
29
|
+
readonly type: "error";
|
|
30
|
+
}, {
|
|
19
31
|
readonly inputs: readonly [];
|
|
20
32
|
readonly name: "BorrowMinimumNotReached";
|
|
21
33
|
readonly type: "error";
|
|
@@ -23,6 +35,14 @@ export declare class Comptroller__factory extends ContractFactory {
|
|
|
23
35
|
readonly inputs: readonly [];
|
|
24
36
|
readonly name: "BorrowPaused";
|
|
25
37
|
readonly type: "error";
|
|
38
|
+
}, {
|
|
39
|
+
readonly inputs: readonly [];
|
|
40
|
+
readonly name: "CantSweepUnderlying";
|
|
41
|
+
readonly type: "error";
|
|
42
|
+
}, {
|
|
43
|
+
readonly inputs: readonly [];
|
|
44
|
+
readonly name: "InsufficientCash";
|
|
45
|
+
readonly type: "error";
|
|
26
46
|
}, {
|
|
27
47
|
readonly inputs: readonly [];
|
|
28
48
|
readonly name: "InsufficientShortfall";
|
|
@@ -31,18 +51,78 @@ export declare class Comptroller__factory extends ContractFactory {
|
|
|
31
51
|
readonly inputs: readonly [];
|
|
32
52
|
readonly name: "InvalidAddress";
|
|
33
53
|
readonly type: "error";
|
|
54
|
+
}, {
|
|
55
|
+
readonly inputs: readonly [];
|
|
56
|
+
readonly name: "InvalidAmount";
|
|
57
|
+
readonly type: "error";
|
|
58
|
+
}, {
|
|
59
|
+
readonly inputs: readonly [];
|
|
60
|
+
readonly name: "InvalidComptroller";
|
|
61
|
+
readonly type: "error";
|
|
62
|
+
}, {
|
|
63
|
+
readonly inputs: readonly [];
|
|
64
|
+
readonly name: "InvalidDiscountRate";
|
|
65
|
+
readonly type: "error";
|
|
66
|
+
}, {
|
|
67
|
+
readonly inputs: readonly [];
|
|
68
|
+
readonly name: "InvalidExchangeRate";
|
|
69
|
+
readonly type: "error";
|
|
70
|
+
}, {
|
|
71
|
+
readonly inputs: readonly [];
|
|
72
|
+
readonly name: "InvalidInterestRateModel";
|
|
73
|
+
readonly type: "error";
|
|
34
74
|
}, {
|
|
35
75
|
readonly inputs: readonly [];
|
|
36
76
|
readonly name: "InvalidMinSuBorrowValue";
|
|
37
77
|
readonly type: "error";
|
|
78
|
+
}, {
|
|
79
|
+
readonly inputs: readonly [];
|
|
80
|
+
readonly name: "InvalidReduceAmount";
|
|
81
|
+
readonly type: "error";
|
|
82
|
+
}, {
|
|
83
|
+
readonly inputs: readonly [];
|
|
84
|
+
readonly name: "InvalidReserveFactor";
|
|
85
|
+
readonly type: "error";
|
|
86
|
+
}, {
|
|
87
|
+
readonly inputs: readonly [];
|
|
88
|
+
readonly name: "LiquidateBorrowMarketNotFresh";
|
|
89
|
+
readonly type: "error";
|
|
90
|
+
}, {
|
|
91
|
+
readonly inputs: readonly [];
|
|
92
|
+
readonly name: "LiquidateBorrow_LiquidatorIsBorrower";
|
|
93
|
+
readonly type: "error";
|
|
94
|
+
}, {
|
|
95
|
+
readonly inputs: readonly [];
|
|
96
|
+
readonly name: "LiquidateBorrow_RepayAmountIsMax";
|
|
97
|
+
readonly type: "error";
|
|
98
|
+
}, {
|
|
99
|
+
readonly inputs: readonly [];
|
|
100
|
+
readonly name: "LiquidateBorrow_RepayAmountIsZero";
|
|
101
|
+
readonly type: "error";
|
|
102
|
+
}, {
|
|
103
|
+
readonly inputs: readonly [];
|
|
104
|
+
readonly name: "LiquidateBorrow_SeizeTooMuch";
|
|
105
|
+
readonly type: "error";
|
|
38
106
|
}, {
|
|
39
107
|
readonly inputs: readonly [];
|
|
40
108
|
readonly name: "MarketAlreadyListed";
|
|
41
109
|
readonly type: "error";
|
|
110
|
+
}, {
|
|
111
|
+
readonly inputs: readonly [];
|
|
112
|
+
readonly name: "MarketCanOnlyInitializeOnce";
|
|
113
|
+
readonly type: "error";
|
|
114
|
+
}, {
|
|
115
|
+
readonly inputs: readonly [];
|
|
116
|
+
readonly name: "MarketNotFresh";
|
|
117
|
+
readonly type: "error";
|
|
42
118
|
}, {
|
|
43
119
|
readonly inputs: readonly [];
|
|
44
120
|
readonly name: "MarketNotListed";
|
|
45
121
|
readonly type: "error";
|
|
122
|
+
}, {
|
|
123
|
+
readonly inputs: readonly [];
|
|
124
|
+
readonly name: "MintMarketNotFresh";
|
|
125
|
+
readonly type: "error";
|
|
46
126
|
}, {
|
|
47
127
|
readonly inputs: readonly [];
|
|
48
128
|
readonly name: "MintPaused";
|
|
@@ -51,30 +131,102 @@ export declare class Comptroller__factory extends ContractFactory {
|
|
|
51
131
|
readonly inputs: readonly [];
|
|
52
132
|
readonly name: "NoRedemptionProvider";
|
|
53
133
|
readonly type: "error";
|
|
134
|
+
}, {
|
|
135
|
+
readonly inputs: readonly [];
|
|
136
|
+
readonly name: "NotCToken";
|
|
137
|
+
readonly type: "error";
|
|
138
|
+
}, {
|
|
139
|
+
readonly inputs: readonly [];
|
|
140
|
+
readonly name: "NotSuToken";
|
|
141
|
+
readonly type: "error";
|
|
54
142
|
}, {
|
|
55
143
|
readonly inputs: readonly [];
|
|
56
144
|
readonly name: "OneOfRedeemTokensAndRedeemAmountMustBeZero";
|
|
57
145
|
readonly type: "error";
|
|
146
|
+
}, {
|
|
147
|
+
readonly inputs: readonly [];
|
|
148
|
+
readonly name: "OnlyAdmin";
|
|
149
|
+
readonly type: "error";
|
|
150
|
+
}, {
|
|
151
|
+
readonly inputs: readonly [];
|
|
152
|
+
readonly name: "OnlyComptroller";
|
|
153
|
+
readonly type: "error";
|
|
154
|
+
}, {
|
|
155
|
+
readonly inputs: readonly [];
|
|
156
|
+
readonly name: "OnlyPendingAdmin";
|
|
157
|
+
readonly type: "error";
|
|
158
|
+
}, {
|
|
159
|
+
readonly inputs: readonly [];
|
|
160
|
+
readonly name: "PriceError";
|
|
161
|
+
readonly type: "error";
|
|
162
|
+
}, {
|
|
163
|
+
readonly inputs: readonly [];
|
|
164
|
+
readonly name: "ProtectedMint_OnlyAllowAssetsInTheSameGroup";
|
|
165
|
+
readonly type: "error";
|
|
58
166
|
}, {
|
|
59
167
|
readonly inputs: readonly [];
|
|
60
168
|
readonly name: "ProtocolIsPaused";
|
|
61
169
|
readonly type: "error";
|
|
170
|
+
}, {
|
|
171
|
+
readonly inputs: readonly [];
|
|
172
|
+
readonly name: "RedeemAndTransferMarketNotFresh";
|
|
173
|
+
readonly type: "error";
|
|
174
|
+
}, {
|
|
175
|
+
readonly inputs: readonly [];
|
|
176
|
+
readonly name: "RedeemAndTransfer_AmountIsZero";
|
|
177
|
+
readonly type: "error";
|
|
178
|
+
}, {
|
|
179
|
+
readonly inputs: readonly [];
|
|
180
|
+
readonly name: "RedeemMarketNotFresh";
|
|
181
|
+
readonly type: "error";
|
|
182
|
+
}, {
|
|
183
|
+
readonly inputs: readonly [];
|
|
184
|
+
readonly name: "ReduceReservesOverflow";
|
|
185
|
+
readonly type: "error";
|
|
186
|
+
}, {
|
|
187
|
+
readonly inputs: readonly [];
|
|
188
|
+
readonly name: "RepayBorrowMarketNotFresh";
|
|
189
|
+
readonly type: "error";
|
|
62
190
|
}, {
|
|
63
191
|
readonly inputs: readonly [];
|
|
64
192
|
readonly name: "SeizePaused";
|
|
65
193
|
readonly type: "error";
|
|
194
|
+
}, {
|
|
195
|
+
readonly inputs: readonly [];
|
|
196
|
+
readonly name: "Seize_LiquidatorIsBorrower";
|
|
197
|
+
readonly type: "error";
|
|
66
198
|
}, {
|
|
67
199
|
readonly inputs: readonly [];
|
|
68
200
|
readonly name: "SenderMustBeCToken";
|
|
69
201
|
readonly type: "error";
|
|
202
|
+
}, {
|
|
203
|
+
readonly inputs: readonly [];
|
|
204
|
+
readonly name: "TokenInOrAmountInMustBeZero";
|
|
205
|
+
readonly type: "error";
|
|
206
|
+
}, {
|
|
207
|
+
readonly inputs: readonly [];
|
|
208
|
+
readonly name: "TokenTransferInFailed";
|
|
209
|
+
readonly type: "error";
|
|
210
|
+
}, {
|
|
211
|
+
readonly inputs: readonly [];
|
|
212
|
+
readonly name: "TokenTransferOutFailed";
|
|
213
|
+
readonly type: "error";
|
|
70
214
|
}, {
|
|
71
215
|
readonly inputs: readonly [];
|
|
72
216
|
readonly name: "TooMuchRepay";
|
|
73
217
|
readonly type: "error";
|
|
218
|
+
}, {
|
|
219
|
+
readonly inputs: readonly [];
|
|
220
|
+
readonly name: "TransferNotAllowed";
|
|
221
|
+
readonly type: "error";
|
|
74
222
|
}, {
|
|
75
223
|
readonly inputs: readonly [];
|
|
76
224
|
readonly name: "TransferPaused";
|
|
77
225
|
readonly type: "error";
|
|
226
|
+
}, {
|
|
227
|
+
readonly inputs: readonly [];
|
|
228
|
+
readonly name: "UnderlyingBalanceError";
|
|
229
|
+
readonly type: "error";
|
|
78
230
|
}, {
|
|
79
231
|
readonly anonymous: false;
|
|
80
232
|
readonly inputs: readonly [{
|