[ { "inputs": [ { "internalType": "address", "name": "_emissionsToken", "type": "address" }, { "internalType": "address", "name": "_artProxy", "type": "address" }, { "internalType": "address", "name": "_voter", "type": "address" }, { "internalType": "address", "name": "msig", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Delegate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "DelegateForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "provider", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "locktime", "type": "uint256" }, { "indexed": false, "internalType": "enum VotingEscrow.DepositType", "name": "deposit_type", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "ts", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "prevSupply", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "supply", "type": "uint256" } ], "name": "Supply", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "provider", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ts", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAXTIME", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "abstain", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_approved", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "artProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "attach", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "attachments", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_block", "type": "uint256" } ], "name": "balanceOfAtNFT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "balanceOfNFT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_t", "type": "uint256" } ], "name": "balanceOfNFTAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blockNumber", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkpoint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "uint256", "name": "_lockDuration", "type": "uint256" } ], "name": "createLock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "uint256", "name": "_lockDuration", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "createLockFor", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operator", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "depositFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "detach", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "emissionsToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "epoch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getLastUserSlope", "outputs": [ { "internalType": "int128", "name": "", "type": "int128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "idToDelegate", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "increaseAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_lockDuration", "type": "uint256" } ], "name": "increaseUnlockTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "isApprovedOrOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operator", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "isDelegate", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "locked", "outputs": [ { "internalType": "int128", "name": "amount", "type": "int128" }, { "internalType": "uint256", "name": "end", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "locked__end", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_from", "type": "uint256" }, { "internalType": "uint256", "name": "_to", "type": "uint256" } ], "name": "merge", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ownershipChange", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "pointHistory", "outputs": [ { "internalType": "int128", "name": "bias", "type": "int128" }, { "internalType": "int128", "name": "slope", "type": "int128" }, { "internalType": "uint256", "name": "ts", "type": "uint256" }, { "internalType": "uint256", "name": "blk", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "resetDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operator", "type": "address" }, { "internalType": "bool", "name": "_approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operator", "type": "address" }, { "internalType": "bool", "name": "_approved", "type": "bool" } ], "name": "setDelegateForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_team", "type": "address" } ], "name": "setTeam", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "slopeChanges", "outputs": [ { "internalType": "int128", "name": "", "type": "int128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "supply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "_interfaceID", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "team", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_tokenIndex", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_block", "type": "uint256" } ], "name": "totalSupplyAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "t", "type": "uint256" } ], "name": "totalSupplyAtT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "userPointEpoch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "userPointHistory", "outputs": [ { "internalType": "int128", "name": "bias", "type": "int128" }, { "internalType": "int128", "name": "slope", "type": "int128" }, { "internalType": "uint256", "name": "ts", "type": "uint256" }, { "internalType": "uint256", "name": "blk", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_idx", "type": "uint256" } ], "name": "userPointHistoryTs", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "voted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "voter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "voting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60e034620001dc57601f620044d738819003918201601f1916830191906001600160401b03831184841017620001e1578160809285926040958652833981010312620001dc576200005082620001f7565b916200005f60208201620001f7565b906200007b606062000073858401620001f7565b9201620001f7565b60809490945260a0526000805462010000600160b01b03191660109490941b62010000600160b01b031693909317835560c052818052600160208181528284204360028083019190915542918401919091556301ffc9a760e01b85529052818320805460ff1990811683179091556380ac58cd60e01b84528284208054821683179055635b5e139f60e01b84528284208054821683179055600354925193919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef823083838180a430908280a460055416176005556142ca90816200020d8239608051818181610a3301528181610bea015281816120f201528181612b6f01528181612d6b01528181612ed40152612fe4015260a051818181610ea6015281816112c00152818161167201528181611ad301528181611fcf0152818161203b015281816126eb01526130d0015260c051818181610f480152611a180152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001dc5756fe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146103f2578063026e402b146103ed578063047fc9aa146103e857806305ae4f8c146103e357806306fdde0314610343578063081812fc146103de578063095cf5c6146103d9578063095ea7b3146103d45780630d6a2033146103cf5780630ec84dda146103ca57806317d70f7c146103c557806318160ddd146103c05780631e077945146103bb57806320606b70146103b6578063210ca05d146103b157806323857d51146103ac57806323b872dd146103a75780632e1a7d4d146103a25780632f745c591461039d578063313ce5671461039857806342842e0e14610393578063430c20811461038e57806344acb42a1461038957806346c96aac1461038457806354fd4d501461037f5780635594a0451461037a5780635633e0a61461037557806357e871e7146103705780636352211e1461036b57806370a08231146103665780637116c60c1461036157806385f2aef21461035c5780638ad4c447146103575780638c2c9baf146103525780638fbb38ff1461034d578063900cf0cf1461034857806395d89b4114610343578063981b24d01461033e578063986b7d8a146103395780639d507b8b14610334578063a22cb4651461032f578063b2383e551461032a578063b45a3c0e14610325578063b52c05fe14610320578063b88d4fde1461031b578063c1f0fb9f14610316578063c2c4c5c114610311578063c87b56dd1461030c578063ccc41a1114610307578063d1c2babb14610302578063e0514aba146102fd578063e58f5947146102f8578063e7e242d4146102f3578063e985e9c5146102ee578063ec32e6df146102e9578063ee00ef3a146102e4578063f487f26c146102df578063f52a36f7146102da578063f8a05763146102d5578063f8e3bf3c146102d0578063fbd3a29d146102cb5763fd4a77f1146102c657600080fd5b612020565b611fb1565b611f1c565b611eed565b611ebe565b611e31565b611e12565b611da6565b611d44565b611d26565b611cfa565b611cd9565b611ab1565b611a7c565b611959565b6116b3565b611657565b6115ce565b61157e565b611546565b6114b4565b61140a565b611317565b6112a2565b611154565b61068c565b611136565b611105565b6110e4565b611083565b611059565b61103b565b611001565b610fcc565b610fb1565b610f6c565b610f28565b610eca565b610e86565b610e18565b610dba565b610d80565b610d64565b610d1c565b610ad1565b610ab8565b610a57565b610a13565b6109d8565b6109ba565b61099e565b610980565b6108e1565b6108b5565b61079e565b610723565b6106ee565b610548565b610525565b610495565b610426565b7fffffffff0000000000000000000000000000000000000000000000000000000081160361042157565b600080fd5b3461042157602036600319011261042157600435610443816103f7565b63ffffffff60e01b166000526002602052602060ff604060002054166040519015158152f35b600435906001600160a01b038216820361042157565b602435906001600160a01b038216820361042157565b34610421576040366003190112610421576104ae610469565b60243560009181835260066020526001600160a01b0380604085205416916104d783331461207f565b83855260136020526040852080546001600160a01b0319166001600160a01b03831617905516907f510b11bb3f3c799b11307c01ab7db0d335683ef5b2da98f7697de744f465eacc8480a480f35b346104215760003660031901126104215760206105406120d7565b604051908152f35b3461042157604036600319011261042157600435600052600e602052602060016105786024356040600020610deb565b500154604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176105b557604052565b610583565b6080810190811067ffffffffffffffff8211176105b557604052565b90601f8019910116810190811067ffffffffffffffff8211176105b557604052565b6040519061060582610599565b565b60405190610605826105ba565b67ffffffffffffffff81116105b557601f01601f191660200190565b60005b8381106106435750506000910152565b8181015183820152602001610633565b9060209161066c81518092818552858086019101610630565b601f01601f1916010190565b906020610689928181520190610653565b90565b34610421576000366003190112610421576106ea6040516106ac81610599565b600681527f76655048415200000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610653565b0390f35b3461042157602036600319011261042157600435600052600860205260206001600160a01b0360406000205416604051908152f35b346104215760203660031901126104215761073c610469565b6000908154906001600160a01b038260101c16330361079a5775ffffffffffffffffffffffffffffffffffffffff00007fffffffffffffffffffff0000000000000000000000000000000000000000ffff9160101b16911617815580f35b8280fd5b34610421576040366003190112610421576107b7610469565b60243560009181835260066020526001600160a01b03806040852054169081156108b157808316928284146108ad5761084f61087e92610801876000526006602052604060002090565b5416331460ff61084033610828886001600160a01b03166000526009602052604060002090565b906001600160a01b0316600052602052604060002090565b541681156108a5575b5061215d565b610863856000526008602052604060002090565b906001600160a01b03166001600160a01b0319825416179055565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258480a480f35b905038610849565b8580fd5b8480fd5b346104215760203660031901126104215760043560005260116020526020604060002054604051908152f35b3461042157604036600319011261042157600435602435600554600160ff8216036104215760029060ff191617600555600091808352600f60205260408320916040519161092e83610599565b8460018554600f0b95868652015460208501908152831561097c5761095a610962926109679713612185565b5142106121d1565b612a5a565b610979600160ff196005541617600555565b80f35b5080fd5b34610421576000366003190112610421576020600354604051908152f35b34610421576000366003190112610421576020610540426123db565b34610421576020366003190112610421576109d6600435612243565b005b346104215760003660031901126104215760206040517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8668152f35b346104215760003660031901126104215760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042157602036600319011261042157600435600052600a6020526020604060002054604051908152f35b6060906003190112610421576001600160a01b0390600435828116810361042157916024359081168103610421579060443590565b34610421576109d6610ac936610a83565b9033926130a5565b34610421576020806003193601126104215760043590600554600160ff8216036104215760ff1916600217600555610b11610b0c83336131e7565b612282565b610b25826000526011602052604060002090565b541580610cec575b610b369061229f565b610b52610b4d83600052600f602052604060002090565b612164565b610b6182820151421015612311565b610b75610b6f8251600f0b90565b600f0b90565b610b7d6105f8565b93610ba56000958681528686820152610ba083600052600f602052604060002090565b61235d565b610bc8610bb06120d7565b93610bb96105f8565b90878252878783015283613363565b60405163a9059cbb60e01b8152336004820152602481018390528481604481897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610ce757610c627f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca9493610c8c9360008051602061429e833981519152988a92610cba575b5050612282565b610c6b816138e0565b60405191829133954291846040919493926060820195825260208201520152565b0390a2610c976120d7565b60408051928352602083019190915290a1610979600160ff196005541617600555565b610cd99250803d10610ce0575b610cd181836105d6565b81019061238f565b3880610c5b565b503d610cc7565b6120cb565b50610b36610d15610d11610d0a856000526012602052604060002090565b5460ff1690565b1590565b9050610b2d565b34610421576040366003190112610421576001600160a01b03610d3d610469565b16600052600b60205260406000206024356000526020526020604060002054604051908152f35b3461042157600036600319011261042157602060405160128152f35b3461042157610d8e36610a83565b60405191602083019383851067ffffffffffffffff8611176105b5576109d694604052600084526126bd565b34610421576040366003190112610421576020610de1610dd8610469565b602435906131e7565b6040519015158152f35b90633b9aca00811015610e02576003020190600090565b634e487b7160e01b600052603260045260246000fd5b3461042157604036600319011261042157602435600435600052600e602052604060002090633b9aca0081101561042157610e5291610deb565b508054600182015460029092015460408051600f84810b8252608094851d900b602082015290810193909352606083015290f35b346104215760003660031901126104215760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610421576000366003190112610421576106ea604051610eea81610599565b600581527f312e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610653565b346104215760003660031901126104215760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042157602036600319011261042157600435600052600d6020526020610fa1604060002054600e83526040600020610deb565b505460801d60405190600f0b8152f35b34610421576000366003190112610421576020604051438152f35b3461042157602036600319011261042157600435600052600660205260206001600160a01b0360406000205416604051908152f35b34610421576020366003190112610421576001600160a01b03611022610469565b1660005260076020526020604060002054604051908152f35b346104215760203660031901126104215760206105406004356123db565b346104215760003660031901126104215760206001600160a01b0360005460101c16604051908152f35b34610421576020366003190112610421576004356000526001602052604060002080546106ea600260018401549301546040519383859460801d90600f0b85909493926060926080830196600f0b8352600f0b602083015260408201520152565b34610421576040366003190112610421576020610540602435600435613b6e565b34610421576020366003190112610421576004356000526012602052602060ff604060002054166040519015158152f35b34610421576000366003190112610421576020600454604051908152f35b34610421576020366003190112610421576106ea6111fc60043561117a43821115612282565b6111f660045461118a8184613d44565b926111a76111a2856000526001602052604060002090565b6123a4565b93600092811015611256576111a26111c16111d192612491565b6000526001602052604060002090565b6060850190815160608201938451820361120c575b50505050505b60408301516124c0565b90613a67565b6040519081529081906020820190565b61124c955091611236604061122861123c946112469796612421565b92015160408a015190612421565b9061245e565b9251905190612421565b90612471565b38808080806111e6565b50606084019081519043820361126f575b5050506111ec565b61129a93506112846112469261129292612421565b611236604088015142612421565b915143612421565b388080611267565b34610421576020366003190112610421576004356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016330361042157600081815260116020526040812054909160001982019182116113125782526011602052604082205580f35b6123fc565b346104215760403660031901126104215760055460043560001960ff8316016104215760026113ee9260ff191617600555611355610b0c82336131e7565b80600052600f60205260406000209060016040519261137384610599565b8054600f0b8452015490602083019182526113d56113a76113a2611399602435426124c0565b62093a80900490565b61242e565b926113b4428251116124cd565b6113cd60006113c48751600f0b90565b600f0b13612519565b518311612565565b6113e96113e14261249f565b8311156125b1565b612c04565b6109d6600160ff196005541617600555565b8015150361042157565b3461042157604036600319011261042157611423610469565b60243561142f81611400565b611484816114736001600160a01b0385169461144d33871415612282565b3360005260096020526040600020906001600160a01b0316600052602052604060002090565b9060ff801983541691151516179055565b60405190151581527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b346104215760403660031901126104215760055460043560243560001960ff8416016104215760026113ee9360ff1916176005556114f5610b0c83336131e7565b81600052600f60205260406000209161154160016040519461151686610599565b8054600f0b8652015460208501908152611531841515612282565b61095a60008651600f0b13612185565b612cd3565b3461042157602036600319011261042157600435600052600f60205260408060002060018154600f0b91015482519182526020820152f35b3461042157604036600319011261042157600554600160ff8216036104215760ff1990811660021760055560209060016115bd33602435600435613dd1565b916005541617600555604051908152f35b34610421576080366003190112610421576115e7610469565b6115ef61047f565b6064359167ffffffffffffffff831161042157366023840112156104215782600401359161161c83610614565b9261162a60405194856105d6565b80845236602482870101116104215760208160009260246109d698018388013785010152604435916126bd565b34610421576020366003190112610421576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163303610421576004356000908152601260205260409020805460ff19169055005b346104215760008060031936011261195657604051906116d282610599565b808252806020809301528060206040516116eb81610599565b82815201526116f8613263565b50611701613263565b506004549161170e610607565b908282528260208301524260408301526060914360608201529184611937575b6040830191825192859284421161190b575b96939061175462093a80839594950461242e565b9787985b60ff8a10611778575b88610979896117738a6111c181600455565b6132d6565b61178289916124b0565b93888783964281116000146118ca5750610b6f966117e06117d96117f6946117d46117cc6117ef966117c6429e8f925b86019b6117c08d51600f0b90565b93612421565b90613288565b9151600f0b90565b61329f565b600f0b8d52565b8351600f0b612a22565b612a22565b600f0b8252565b81611805610b6f8b51600f0b90565b126118c2575b8161181a610b6f8351600f0b90565b126118ba575b505082948383526118648289019761185d89516118576118496118438a80612421565b8b61245e565b670de0b6b3a7640000900490565b906124c0565b8952612491565b9942850361188b575050505050505061097992936117739143905290849338808080611761565b600191929394959697506118ad896117738d6000526001602052604060002090565b0198959291909493611758565b528738611820565b81895261180b565b96506117ef906117e06117d96117f6946117d46117cc8c6117c6610b6f6119056118fe846000526010602052604060002090565b54600f0b90565b986117b2565b9250611931611926611921606088015143612421565b612446565b611246835142612421565b92611740565b91506119506111a2856000526001602052604060002090565b9161172e565b80fd5b346104215760203660031901126104215760043560006001600160a01b036119a78161199f611992866000526006602052604060002090565b546001600160a01b031690565b1615156128ec565b6119be610b4d84600052600f602052604060002090565b906119c94285613edc565b6119dc610b6f60208501519451600f0b90565b94611a146040519687958694859463dd9ec14960e01b8652600486019094939260609260808301968352602083015260408201520152565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa8015610ce7576106ea91600091611a59575b5060405191829182610678565b611a7691503d806000833e611a6e81836105d6565b810190612938565b38611a4c565b3461042157602036600319011261042157600435600052601360205260206001600160a01b0360406000205416604051908152f35b3461042157604036600319011261042157600435602435906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691604051635b2fa89360e11b93848252602091828180611b1b88600483019190602083019252565b0381855afa908115610ce757600091611cbc575b50159485611c66575b5050611b466109d694612997565b611b5a836000526011602052604060002090565b541580611c41575b611b6b9061229f565b611b778284141561215d565b611b89611b8484336131e7565b61215d565b611b96611b8483336131e7565b611bad610b4d84600052600f602052604060002090565b91611c34611bc8610b4d83600052600f602052604060002090565b94611c2f611bda610b6f8751600f0b90565b8686015188870151919691808210611c395750965b611c18611bfa6105f8565b60008152600084820152610ba086600052600f602052604060002090565b6000611c226105f8565b9281845283015283613363565b6138e0565b612de0565b905096611bef565b50611b6b611c5f610d11610d0a866000526012602052604060002090565b9050611b62565b6040519081526004810184905294508190859060249082905afa938415610ce7576109d694611b4691600091611c9f575b501594611b38565b611cb69150833d8511610ce057610cd181836105d6565b38611c97565b611cd39150833d8511610ce057610cd181836105d6565b38611b2f565b34610421576040366003190112610421576020610540602435600435613edc565b3461042157602036600319011261042157600435600052600d6020526020604060002054604051908152f35b346104215760203660031901126104215760206105406004356129e3565b3461042157604036600319011261042157602060ff611d9a611d64610469565b6001600160a01b03611d7461047f565b9116600052600984526040600020906001600160a01b0316600052602052604060002090565b54166040519015158152f35b34610421576060366003190112610421576044356001600160a01b038116810361042157600554600160ff821603610421576001611df86106ea93600260ff1980951617600555602435600435613dd1565b916005541617600555604051918291829190602083019252565b34610421576000366003190112610421576020604051630784ce008152f35b34610421576040366003190112610421576020611e4c610469565b6024356000526006825260ff611ea26001600160a01b03928360406000205416936013865280604060002054169082161493600052601485526040600020906001600160a01b0316600052602052604060002090565b54168115611eb6575b506040519015158152f35b905038611eab565b346104215760203660031901126104215760043560005260106020526020604060002054600f0b604051908152f35b3461042157602036600319011261042157600435600052600f6020526020600160406000200154604051908152f35b3461042157604036600319011261042157611f35610469565b602435611f4181611400565b6001600160a01b038216913383146104215781611473611f81923360005260146020526040600020906001600160a01b0316600052602052604060002090565b60405190151581527f58781eab4a0743ab1c285a238be846a235f06cdb5b968030573a635e5f8c92fa60203392a3005b34610421576020366003190112610421576004356001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163303610421576000908082526011602052604082205490600182018092116113125782526011602052604082205580f35b34610421576020366003190112610421576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163303610421576004356000908152601260205260409020805460ff19166001179055005b1561208657565b60405162461bcd60e51b815260206004820152600660248201527f216f776e657200000000000000000000000000000000000000000000000000006044820152606490fd5b6040513d6000823e3d90fd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610ce75760009161212e575090565b90506020813d602011612155575b81612149602093836105d6565b81010312610421575190565b3d915061213c565b1561042157565b9060405161217181610599565b6020600182948054600f0b84520154910152565b1561218c57565b60405162461bcd60e51b815260206004820152601660248201527f4e6f206578697374696e67206c6f636b20666f756e64000000000000000000006044820152606490fd5b156121d857565b60405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742061646420746f20616e2065787069726564206c6f636b2e205760448201527f69746864726177000000000000000000000000000000000000000000000000006064820152608490fd5b8060005260066020526122656001600160a01b0360406000205416331461207f565b600052601360205260406000206001600160a01b03198154169055565b1561228957565b634e487b7160e01b600052600160045260246000fd5b156122a657565b60405162461bcd60e51b815260206004820152602b60248201527f41545441434845442c20726573657420766f74657320616e6420756e626f6f7360448201527f74206c69717569646974790000000000000000000000000000000000000000006064820152608490fd5b1561231857565b60405162461bcd60e51b815260206004820152600860248201527f21455850495245440000000000000000000000000000000000000000000000006044820152606490fd5b9060206001916123888151600f0b85906001600160801b0319825416906001600160801b0316179055565b0151910155565b90816020910312610421575161068981611400565b906040516123b1816105ba565b606060028294805480600f0b855260801d600f0b6020850152600181015460408501520154910152565b6106899060045460005260016020526123f760406000206123a4565b613a67565b634e487b7160e01b600052601160045260246000fd5b60001981019190821161131257565b9190820391821161131257565b9062093a809182810292818404149015171561131257565b90670de0b6b3a7640000918083029283040361131257565b8181029291811591840414171561131257565b811561247b570490565b634e487b7160e01b600052601260045260246000fd5b906001820180921161131257565b90630784ce00820180921161131257565b9062093a80820180921161131257565b9190820180921161131257565b156124d457565b60405162461bcd60e51b815260206004820152600c60248201527f4c6f636b206578706972656400000000000000000000000000000000000000006044820152606490fd5b1561252057565b60405162461bcd60e51b815260206004820152601160248201527f4e6f7468696e67206973206c6f636b65640000000000000000000000000000006044820152606490fd5b1561256c57565b60405162461bcd60e51b815260206004820152601f60248201527f43616e206f6e6c7920696e637265617365206c6f636b206475726174696f6e006044820152606490fd5b156125b857565b60405162461bcd60e51b815260206004820152601e60248201527f566f74696e67206c6f636b2063616e2062652034207965617273206d617800006044820152606490fd5b1561260457565b60405162461bcd60e51b815260206004820152600560248201527f5354414c450000000000000000000000000000000000000000000000000000006044820152606490fd5b908160209103126104215751610689816103f7565b909261068994936080936001600160a01b03809216845216602083015260408201528160608201520190610653565b3d156126b8573d9061269e82610614565b916126ac60405193846105d6565b82523d6000602084013e565b606090565b604051635b2fa89360e11b815260048101849052602095949193919291906001600160a01b039087816024817f000000000000000000000000000000000000000000000000000000000000000086165afa8015610ce757612727916000916128cf575b50156125fd565b612733338385886130a5565b823b612743575b50505050509050565b9161276c939160008894604051809781968295630a85bd0160e11b9b8c8552336004860161265e565b0393165af1600091816128a0575b506127fe578361278861268d565b805191826127fb5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608490fd5b01fd5b9192507fffffffff00000000000000000000000000000000000000000000000000000000909116036128355780388080808061273a565b60405162461bcd60e51b815260206004820152602660248201527f4552433732313a2045524337323152656365697665722072656a65637465642060448201527f746f6b656e7300000000000000000000000000000000000000000000000000006064820152608490fd5b6128c1919250853d87116128c8575b6128b981836105d6565b810190612649565b903861277a565b503d6128af565b6128e69150893d8b11610ce057610cd181836105d6565b38612720565b156128f357565b60405162461bcd60e51b815260206004820152601b60248201527f517565727920666f72206e6f6e6578697374656e7420746f6b656e00000000006044820152606490fd5b6020818303126104215780519067ffffffffffffffff8211610421570181601f8201121561042157805161296b81610614565b9261297960405194856105d6565b81845260208284010111610421576106899160208085019101610630565b1561299e57565b60405162461bcd60e51b815260206004820152600760248201527f21414354495645000000000000000000000000000000000000000000000000006044820152606490fd5b80600052600a6020526040600020544314612a0357610689904290613edc565b50600090565b60405190612a1682610599565b60006020838281520152565b90600f0b90600f0b01906f7fffffffffffffffffffffffffffffff1982126f7fffffffffffffffffffffffffffffff83131761131257565b612a626120d7565b91612acd612a6e612a09565b94612a7a8151600f0b90565b95612a936020830197885160208401528290600f0b9052565b612aaf612aa885600f0b6117ea8551600f0b90565b600f0b8352565b612ac782610ba087600052600f602052604060002090565b84613363565b80151580612bfc575b612b45575b60008051602061427e833981519152612b2760008051602061429e8339815191529551936040519182913395429184606091949392608082019582526020820152600060408201520152565b0390a3612b326120d7565b60408051928352602083019190915290a1565b6040516323b872dd60e01b81523360048201523060248201526044810182905260208160648160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610ce75760008051602061429e83398151915295612bd4612b279260008051602061427e83398151915294600091612bdd575b50612282565b95505050612adb565b612bf6915060203d602011610ce057610cd181836105d6565b38612bce565b506001612ad6565b919091612c0f6120d7565b91612c18612a09565b815191602081019283516020840152600f0b82528051600f0b916f7fffffffffffffffffffffffffffffff1983126f7fffffffffffffffffffffffffffffff8413176113125760008051602061429e83398151915296612c9393835280612ccb575b50612ac782610ba087600052600f602052604060002090565b5190604051908152600060208201526003604082015242606082015260008051602061427e83398151915260803392a3612b326120d7565b845238612c7a565b612cdb6120d7565b91612ce7612a6e612a09565b80151580612dd8575b612d41575b60008051602061427e833981519152612b2760008051602061429e8339815191529551936040519182913395429184606091949392608082019582526020820152600260408201520152565b6040516323b872dd60e01b81523360048201523060248201526044810182905260208160648160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610ce75760008051602061429e83398151915295612dcf612b279260008051602061427e83398151915294600091612bdd5750612282565b95505050612cf5565b506001612cf0565b90929192612e50612def6120d7565b93612df8612a09565b8151600f0b96612e166020840198895160208501528390600f0b9052565b612e32612e2b86600f0b6117ea8651600f0b90565b600f0b8452565b80612f495750612ac782610ba087600052600f602052604060002090565b80151580612f41575b612eaa575b60008051602061427e833981519152612b2760008051602061429e8339815191529551936040519182913395429184606091949392608082019582526020820152600460408201520152565b6040516323b872dd60e01b81523360048201523060248201526044810182905260208160648160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610ce75760008051602061429e83398151915295612f38612b279260008051602061427e83398151915294600091612bdd5750612282565b95505050612e5e565b506000612e59565b875238612c7a565b90929192612f60612def6120d7565b80151580613051575b612fba575b60008051602061427e833981519152612b2760008051602061429e8339815191529551936040519182913395429184606091949392608082019582526020820152600160408201520152565b6040516323b872dd60e01b81523360048201523060248201526044810182905260208160648160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610ce75760008051602061429e83398151915295613048612b279260008051602061427e83398151915294600091612bdd5750612282565b95505050612f6e565b506001612f69565b1561306057565b60405162461bcd60e51b815260206004820152600860248201527f61747461636865640000000000000000000000000000000000000000000000006044820152606490fd5b604051635b2fa89360e11b815260048101849052929390926001600160a01b039290916020836024817f000000000000000000000000000000000000000000000000000000000000000088165afa928315610ce75786613140926131168796611b84946000916131ce5750156125fd565b61312a826000526011602052604060002090565b5415806131a9575b61313b90613059565b6131e7565b61314a8585613ff4565b613155600354612243565b61315f8585614044565b613169858261419d565b4361317e86600052600a602052604060002090565b551691167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b5061313b6131c7610d11610d0a856000526012602052604060002090565b9050613132565b6128e6915060203d602011610ce057610cd181836105d6565b9060005260066020526001600160a01b039060ff61324183604060002054169284811680851495600860205260406000205416149360005260096020526040600020906001600160a01b0316600052602052604060002090565b541690821561325b575b508115613256575090565b905090565b91503861324b565b60405190613270826105ba565b60006060838281528260208201528260408201520152565b90600f0b90600f0b029081600f0b91820361131257565b600f91820b910b03906f7fffffffffffffffffffffffffffffff1982126f7fffffffffffffffffffffffffffffff83131761131257565b9060606002916133018151600f0b85906001600160801b0319825416906001600160801b0316179055565b602081015184546001600160801b031660809190911b6fffffffffffffffffffffffffffffffff1916178455604081015160018501550151910155565b919061334d57610605916132d6565b634e487b7160e01b600052600060045260246000fd5b61336b613263565b90613374613263565b9260008060045492841515806137a2575b61338d610607565b94600086526020956000878201524260408201526060904360608201529082613783575b6040820180519160009183421161375c575b8a906133d862093a808698969594950461242e565b966000975b60ff8910613622575b505050905061341a94508291508c8c8761340261177396600455565b613579575b5050506000526001602052604060002090565b613429575b5050505050505050565b6134b3976134ad9685808094019542875111613521575b50505001918251904282116134c0575b50505050506134a861347561346f83600052600d602052604060002090565b54612491565b918261348b82600052600d602052604060002090565b55426040860152436060860152600052600e602052604060002090565b610deb565b9061333e565b388080808080808061341f565b51106134ce575b8080613450565b6134eb6134fd916134e561351995890151600f0b90565b9061329f565b91516000526010602052604060002090565b906001600160801b0319825416906001600160801b0316179055565b3880806134c7565b61353461353a9261355b940151600f0b90565b90612a22565b83830151865114613563575b6134fd86516000526010602052604060002090565b388281613440565b613574906134e5858c0151600f0b90565b613546565b6135c96135d3916134e56117cc856135c26135bb6135ac6135a08b6135da9b0151600f0b90565b878c0151600f0b6134e5565b998d01996117ea8b51600f0b90565b600f0b8952565b51600f0b90565b8651600f0b612a22565b600f0b8552565b60006135ea610b6f8351600f0b90565b12613618575b506000613601610b6f8551600f0b90565b1261360f575b888c8c613407565b60008352613607565b60009052386135f0565b61362b906124b0565b6000904281111561372c57506117ef613676916117e061366f61366542985b8d01966117c6610b6f61365e8a51600f0b90565b928c612421565b8c51600f0b61329f565b600f0b8b52565b6000613686610b6f8951600f0b90565b12613723575b600061369c610b6f8351600f0b90565b12613719575b5081938282528c6136c58289019761185d89516118576118496118438a80612421565b984285036136ea575050505050505061341a92611773914390529038898180806133e6565b6001919293949596975061370c896117738c6000526001602052604060002090565b01979590929194936133dd565b60009052386136a2565b6000875261368c565b9361367691506117ef906117e061366f6136656137566118fe8a6000526010602052604060002090565b9361364a565b915061377d613772611921606087015143612421565b611246845142612421565b916133c3565b905061379c6111a2836000526001602052604060002090565b906133b1565b6020820180514210806138ca575b613891575b8989602082019642885111908161387a575b5061382a575b50506137e76118fe82516000526010602052604060002090565b945190816137f7575b5050613385565b5191935090810361380d575082915b38806137f0565b6118fe613824916000526010602052604060002090565b91613806565b61385e61386c916135c260206138546138476138739751600f0b90565b630784ce0090600f0b0590565b600f0b9201918252565b6117c6610b6f428a51612421565b600f0b8a52565b89896137cd565b905061388a610b6f8451600f0b90565b13386137c7565b6138c56135bb6138b76138a86138478751600f0b90565b600f0b60208c019081526135c2565b6117c6610b6f428651612421565b6137b5565b50846138da610b6f8551600f0b90565b136137b0565b6138ea81336131e7565b156139fc576001600160a01b038061390c836000526006602052604060002090565b54166000918383526006602052806040842054169081156139f857339061393d866000526006602052604060002090565b54161460ff61396333610828856001600160a01b03166000526009602052604060002090565b541681156139f0575b501561079a5782849161399c61398c846000526008602052604060002090565b6001600160a01b03198154169055565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a46139ca8333614044565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4565b90503861396c565b8380fd5b60405162461bcd60e51b815260206004820152602f60248201527f5468652063616c6c6572206973206e6f7420746865206f776e65722c206e6f7260448201527f20676976656e20617070726f76616c00000000000000000000000000000000006064820152608490fd5b9060408201613a7d6113a2825162093a80900490565b906000915b60ff8310613aca575b50505050613ab5613ab5826000613aa9610b6f6106899651600f0b90565b12613ac15751600f0b90565b6001600160801b031690565b600081526135c2565b613ad3906124b0565b6000929084811115613b50575083925b6020860190613b1b613b14613b0a613afc8551600f0b90565b6117c6610b6f89518b612421565b8951600f0b61329f565b600f0b8852565b858514613b495781613b38613b3f926117ea6001969551600f0b90565b600f0b9052565b8383520191613a82565b5050613a8b565b9250613b696118fe846000526010602052604060002090565b613ae3565b613b7a43831115612282565b600090613b9181600052600d602052604060002090565b546000905b60808210613cd4575b50506117ef613c65613bcf613bc9613c6f96956134a86135c296600052600e602052604060002090565b506123a4565b9360045490613bde8282613d44565b613bf56111a2826000526001602052604060002090565b92811015613cb0576111a26111c1613c0c92612491565b90613c336040613c256060850151606087015190612421565b930151604085015190612421565b905b60408401519383613c87575b505050506117c6610b6f613c596020880151600f0b90565b92604088015190612421565b8351600f0b61329f565b6000600f82900b12612a03576001600160801b031690565b61185792611236613ca79695936060613ca294015190612421565b612471565b38808080613c41565b50613cbf606083015143612421565b90613cce604084015142612421565b90613c35565b909281811015613d3e57613cf9613cf3613cee84846124c0565b612491565b60011c90565b90856002613d15846134a888600052600e602052604060002090565b50015411613d2a5750600190935b0190613b96565b939150613d38600191612412565b91613d23565b92613b9f565b60009182915b60808310613d59575b50505090565b90919282811015613dbc57828101808211611312576001808201809211611312571c90826002613d93846000526001602052604060002090565b015411613da85750600190935b019190613d4a565b939250613db6600191612412565b92613da0565b92613d53565b60001981146113125760010190565b904201908142116113125762093a808092048281029281840414901517156113125780156104215742821115613e585761068991613e19613e114261249f565b8211156125b1565b613e2c613e27600354613dc2565b600355565b613e396003548095614233565b50613e51610b4d85600052600f602052604060002090565b9184612f51565b60405162461bcd60e51b815260206004820152602660248201527f43616e206f6e6c79206c6f636b20756e74696c2074696d6520696e207468652060448201527f66757475726500000000000000000000000000000000000000000000000000006064820152608490fd5b8181039291600013801582851316918412161761131257565b6000818152600d6020526040812054909181613ef9575050905090565b829183905b6101008210613f86575b505091613f61612aa8613f57613f36613bc961068998966134a8610b6f99600052600e602052604060002090565b946117c6610b6f613f4b6020890151600f0b90565b92604089015190613ec3565b8451600f0b61329f565b80613f6d8351600f0b90565b600f0b12613f7e575b5051600f0b90565b815238613f76565b909281811015613fee578181019081811161131257600191828101809111611312578790831c92613fc5846134a888600052600e602052604060002090565b50015411613fda5750600190935b0190613efe565b939150613fe8600191612412565b91613fd3565b92613f08565b9080600052600660205261401b6001600160a01b0392838060406000205416911614612282565b60005260086020526040600020908154908116614036575050565b6001600160a01b0319169055565b600082815260066020526001600160a01b0361406b81604084205416918416809214612282565b838252600660205261408a604083206001600160a01b03198154169055565b81526007602052604081205460001981019081116113125783826140bb61412296600052600c602052604060002090565b5483810361413057506140f7614108936140e8876001600160a01b0316600052600b602052604060002090565b90600052602052604060002090565b55600052600c602052604060002090565b556001600160a01b03166000526007602052604060002090565b61412c8154612412565b9055565b836140f79161417f61415c614108976140e88b6001600160a01b0316600052600b602052604060002090565b54806140f7846140e88d6001600160a01b0316600052600b602052604060002090565b556140e8876001600160a01b0316600052600b602052604060002090565b61422991600081815260209060068252600c6001600160a01b03926040936141ca81868620541615612282565b8584526006825284842080546001600160a01b0319166001600160a01b03891617905586168352600781528383205494600b82528484208685528252808585205583525220556001600160a01b03166000526007602052604060002090565b61412c8154612491565b614252826001600160a01b0383169261424d841515612282565b61419d565b60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a460019056feff04ccafc360e16b67d682d17bd9503c4c6b9a131f6be6325762dc9ffc7de6245e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5ca164736f6c6343000816000a000000000000000000000000aaab9d12a30504559b0c5a9a5977fee4a6081c6b000000000000000000000000aaacf9e4ebaa3f530161477cc49fe4be4dfc4633000000000000000000000000aaaf3d9cdd3602d117c67d80eec37a160c8d9869000000000000000000000000244a4a90e148ec318a85f8c138a274e16ffe3032