UNPKG

test-contracts-sovryn

Version:

Smart contracts for the Sovryn protocol and external integrations.

533 lines (532 loc) 39.1 kB
{ "_format": "hh-sol-artifact-1", "contractName": "SVR", "sourceName": "contracts/governance/Vesting/SVR.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_SOV", "type": "address" }, { "internalType": "address", "name": "_staking", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "constant": true, "inputs": [], "name": "SOV", "outputs": [ { "internalType": "contract IERC20_", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint96", "name": "_amount", "type": "uint96" } ], "name": "burn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint96", "name": "_amount", "type": "uint96" } ], "name": "mint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" }, { "internalType": "uint96", "name": "_amount", "type": "uint96" } ], "name": "mintWithApproval", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "receiveApproval", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "staking", "outputs": [ { "internalType": "contract IStaking", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523480156200001157600080fd5b5060405162001cd438038062001cd4833981810160405260408110156200003757600080fd5b508051602091820151604080518082018252601b81527f536f7672796e2056657374696e672052657761726420546f6b656e0000000000818601908152825180840190935260038084526229ab2960e91b968401969096528151949593949193601292620000a6929062000225565b508151620000bc90600490602085019062000225565b506005805460ff191660ff929092169190911790555060009050620000e062000220565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b03821662000192576040805162461bcd60e51b815260206004820152601860248201527f5356523a3a534f56206164647265737320696e76616c69640000000000000000604482015290519081900360640190fd5b6001600160a01b038116620001ee576040805162461bcd60e51b815260206004820152601c60248201527f5356523a3a7374616b696e67206164647265737320696e76616c696400000000604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055620002c7565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026857805160ff191683800117855562000298565b8280016001018555821562000298579182015b82811115620002985782518255916020019190600101906200027b565b50620002a6929150620002aa565b5090565b6200022291905b80821115620002a65760008155600101620002b1565b6119fd80620002d76000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d7146103cf578063a9059cbb146103fb578063dd62ed3e14610427578063ef4f059214610455578063f2fde38b1461048a5761012c565b806370a08231146103025780638da5cb5b146103285780638f32d59b146103305780638f4ffcb11461033857806395d89b41146103c75761012c565b8063313ce567116100f4578063313ce5671461026257806339509351146102805780633b331cf9146102ac5780634cf088d9146102d45780635f7c7af1146102dc5761012c565b806306fdde031461013157806308dcb360146101ae578063095ea7b3146101d257806318160ddd1461021257806323b872dd1461022c575b600080fd5b6101396104b0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b6610546565b604080516001600160a01b039092168252519081900360200190f35b6101fe600480360360408110156101e857600080fd5b506001600160a01b038135169060200135610555565b604080519115158252519081900360200190f35b61021a610572565b60408051918252519081900360200190f35b6101fe6004803603606081101561024257600080fd5b506001600160a01b03813581169160208101359091169060400135610578565b61026a610605565b6040805160ff9092168252519081900360200190f35b6101fe6004803603604081101561029657600080fd5b506001600160a01b03813516906020013561060e565b6102d2600480360360208110156102c257600080fd5b50356001600160601b0316610662565b005b6101b66108e5565b6102d2600480360360208110156102f257600080fd5b50356001600160601b03166108f4565b61021a6004803603602081101561031857600080fd5b50356001600160a01b0316610901565b6101b661091c565b6101fe610930565b6102d26004803603608081101561034e57600080fd5b6001600160a01b03823581169260208101359260408201359092169181019060808101606082013564010000000081111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460018302840111640100000000831117156103bc57600080fd5b50909250905061095b565b610139610c2d565b6101fe600480360360408110156103e557600080fd5b506001600160a01b038135169060200135610c8e565b6101fe6004803603604081101561041157600080fd5b506001600160a01b038135169060200135610cfc565b61021a6004803603604081101561043d57600080fd5b506001600160a01b0381358116916020013516610d10565b6102d26004803603604081101561046b57600080fd5b5080356001600160a01b031690602001356001600160601b0316610d3b565b6102d2600480360360208110156104a057600080fd5b50356001600160a01b0316610d8c565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561053c5780601f106105115761010080835404028352916020019161053c565b820191906000526020600020905b81548152906001019060200180831161051f57829003601f168201915b5050505050905090565b6006546001600160a01b031681565b6000610569610562610ddd565b8484610de1565b50600192915050565b60025490565b6000610585848484610ecd565b6105fb84610591610ddd565b6105f685604051806060016040528060288152602001611912602891396001600160a01b038a166000908152600160205260408120906105cf610ddd565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61102916565b610de1565b5060019392505050565b60055460ff1690565b600061056961061b610ddd565b846105f6856001600061062c610ddd565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6110c016565b6000816001600160601b0316116106c0576040805162461bcd60e51b815260206004820152601a60248201527f5356523a3a206275726e3a20616d6f756e7420696e76616c6964000000000000604482015290519081900360640190fd5b6106d333826001600160601b0316611121565b6000600e6001600160601b0383160490506001600160601b03811615610781576006546040805163a9059cbb60e01b81523360048201526001600160601b038416602482015290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505090819003905b6006546007546040805163095ea7b360e01b81526001600160a01b0392831660048201526001600160601b03861660248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156107e257600080fd5b505af11580156107f6573d6000803e3d6000fd5b505050506040513d602081101561080c57600080fd5b505060075460408051632597f50f60e11b81526001600160601b03851660048201526224ea00602482018190526301dfe20060448301526064820152336084820181905260a482015290516001600160a01b0390921691634b2fea1e9160c48082019260009290919082900301818387803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b5050604080516001600160601b038616815290513393507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592509081900360200190a25050565b6007546001600160a01b031681565b6108fe338261121d565b50565b6001600160a01b031660009081526020819052604090205490565b60055461010090046001600160a01b031690565b60055460009061010090046001600160a01b031661094c610ddd565b6001600160a01b031614905090565b61096361137a565b6001600160a01b0316336001600160a01b0316146109b7576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b336001600160a01b03841614610a03576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b60006060610a0f611389565b90506000610a5285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113e192505050565b905060005b8251811015610aa057828181518110610a6c57fe5b60200260200101516001600160e01b031916826001600160e01b0319161415610a985760019350610aa0565b600101610a57565b5082610aeb576040805162461bcd60e51b81526020600482015260156024820152741b595d1a1bd9081a5cc81b9bdd08185b1b1bddd959605a1b604482015290519081900360640190fd5b60405160006020820181815290918291829189918991603c018383808284378083019250505093505050506040516020818303038152906040528060200190516060811015610b3957600080fd5b50602081015160409091015190925090506001600160a01b03808316908b1614610b9c576040805162461bcd60e51b815260206004820152600f60248201526e0e6cadcc8cae440dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b888114610be2576040805162461bcd60e51b815260206004820152600f60248201526e0c2dadeeadce840dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b610c2187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113e892505050565b50505050505050505050565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561053c5780601f106105115761010080835404028352916020019161053c565b6000610569610c9b610ddd565b846105f6856040518060600160405280602581526020016119a46025913960016000610cc5610ddd565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61102916565b6000610569610d09610ddd565b8484610ecd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b333014610d7e576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b610d88828261121d565b5050565b610d94610930565b610dd4576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6108fe81611556565b3390565b6001600160a01b038316610e265760405162461bcd60e51b81526004018080602001828103825260248152602001806119806024913960400191505060405180910390fd5b6001600160a01b038216610e6b5760405162461bcd60e51b81526004018080602001828103825260228152602001806118ca6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610f125760405162461bcd60e51b815260040180806020018281038252602581526020018061195b6025913960400191505060405180910390fd5b6001600160a01b038216610f575760405162461bcd60e51b815260040180806020018281038252602381526020018061182f6023913960400191505060405180910390fd5b610f9a816040518060600160405280602681526020016118ec602691396001600160a01b038616600090815260208190526040902054919063ffffffff61102916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610fcf908263ffffffff6110c016565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156110b85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561107d578181015183820152602001611065565b50505050905090810190601f1680156110aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561111a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166111665760405162461bcd60e51b815260040180806020018281038252602181526020018061193a6021913960400191505060405180910390fd5b6111a981604051806060016040528060228152602001611852602291396001600160a01b038516600090815260208190526040902054919063ffffffff61102916565b6001600160a01b0383166000908152602081905260409020556002546111d5908263ffffffff61160216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000816001600160601b03161161127b576040805162461bcd60e51b815260206004820152601960248201527f5356523a3a6d696e743a20616d6f756e7420696e76616c696400000000000000604482015290519081900360640190fd5b600654604080516323b872dd60e01b81526001600160a01b0385811660048301523060248301526001600160601b0385166044830152915160009392909216916323b872dd9160648082019260209290919082900301818787803b1580156112e257600080fd5b505af11580156112f6573d6000803e3d6000fd5b505050506040513d602081101561130c57600080fd5b505190508061131a57600080fd5b61132d83836001600160601b0316611644565b604080516001600160601b038416815290516001600160a01b038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a2505050565b6006546001600160a01b031690565b6040805160018082528183019092526060918291906020808301908038833901905050905063ef4f059260e01b816000815181106113c357fe5b6001600160e01b031990921660209283029190910190910152905090565b6020015190565b60006060306001600160a01b0316836040518082805190602001908083835b602083106114265780518252601f199092019160209182019101611407565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611488576040519150601f19603f3d011682016040523d82523d6000602084013e61148d565b606091505b5091509150816115515760448151116114d75760405162461bcd60e51b81526004018080602001828103825260308152602001806118746030913960400191505060405180910390fd5b61150a6040518060400160405280601181526020017003932b1b2b4bb32a0b8383937bb30b61d1607d1b81525082611734565b60405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561107d578181015183820152602001611065565b505050565b6001600160a01b03811661159b5760405162461bcd60e51b81526004018080602001828103825260268152602001806118a46026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600061111a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611029565b6001600160a01b03821661169f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6002546116b2908263ffffffff6110c016565b6002556001600160a01b0382166000908152602081905260409020546116de908263ffffffff6110c016565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6060808390506060839050606060448251845101036040519080825280601f01601f191660200182016040528015611773576020820181803883390190505b509050806000805b85518110156117cc5785818151811061179057fe5b602001015160f81c60f81b8383806001019450815181106117ad57fe5b60200101906001600160f81b031916908160001a90535060010161177b565b5060445b8451811015611821578481815181106117e557fe5b602001015160f81c60f81b83838060010194508151811061180257fe5b60200101906001600160f81b031916908160001a9053506001016117d0565b509097965050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636572656365697665417070726f76616c3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158200fbad2c0cf0e89c5a65e0478e728869f519cdbe3ac27caef9ac5c74e7bbbd86364736f6c63430005110032", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d7146103cf578063a9059cbb146103fb578063dd62ed3e14610427578063ef4f059214610455578063f2fde38b1461048a5761012c565b806370a08231146103025780638da5cb5b146103285780638f32d59b146103305780638f4ffcb11461033857806395d89b41146103c75761012c565b8063313ce567116100f4578063313ce5671461026257806339509351146102805780633b331cf9146102ac5780634cf088d9146102d45780635f7c7af1146102dc5761012c565b806306fdde031461013157806308dcb360146101ae578063095ea7b3146101d257806318160ddd1461021257806323b872dd1461022c575b600080fd5b6101396104b0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b6610546565b604080516001600160a01b039092168252519081900360200190f35b6101fe600480360360408110156101e857600080fd5b506001600160a01b038135169060200135610555565b604080519115158252519081900360200190f35b61021a610572565b60408051918252519081900360200190f35b6101fe6004803603606081101561024257600080fd5b506001600160a01b03813581169160208101359091169060400135610578565b61026a610605565b6040805160ff9092168252519081900360200190f35b6101fe6004803603604081101561029657600080fd5b506001600160a01b03813516906020013561060e565b6102d2600480360360208110156102c257600080fd5b50356001600160601b0316610662565b005b6101b66108e5565b6102d2600480360360208110156102f257600080fd5b50356001600160601b03166108f4565b61021a6004803603602081101561031857600080fd5b50356001600160a01b0316610901565b6101b661091c565b6101fe610930565b6102d26004803603608081101561034e57600080fd5b6001600160a01b03823581169260208101359260408201359092169181019060808101606082013564010000000081111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460018302840111640100000000831117156103bc57600080fd5b50909250905061095b565b610139610c2d565b6101fe600480360360408110156103e557600080fd5b506001600160a01b038135169060200135610c8e565b6101fe6004803603604081101561041157600080fd5b506001600160a01b038135169060200135610cfc565b61021a6004803603604081101561043d57600080fd5b506001600160a01b0381358116916020013516610d10565b6102d26004803603604081101561046b57600080fd5b5080356001600160a01b031690602001356001600160601b0316610d3b565b6102d2600480360360208110156104a057600080fd5b50356001600160a01b0316610d8c565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561053c5780601f106105115761010080835404028352916020019161053c565b820191906000526020600020905b81548152906001019060200180831161051f57829003601f168201915b5050505050905090565b6006546001600160a01b031681565b6000610569610562610ddd565b8484610de1565b50600192915050565b60025490565b6000610585848484610ecd565b6105fb84610591610ddd565b6105f685604051806060016040528060288152602001611912602891396001600160a01b038a166000908152600160205260408120906105cf610ddd565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61102916565b610de1565b5060019392505050565b60055460ff1690565b600061056961061b610ddd565b846105f6856001600061062c610ddd565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6110c016565b6000816001600160601b0316116106c0576040805162461bcd60e51b815260206004820152601a60248201527f5356523a3a206275726e3a20616d6f756e7420696e76616c6964000000000000604482015290519081900360640190fd5b6106d333826001600160601b0316611121565b6000600e6001600160601b0383160490506001600160601b03811615610781576006546040805163a9059cbb60e01b81523360048201526001600160601b038416602482015290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505090819003905b6006546007546040805163095ea7b360e01b81526001600160a01b0392831660048201526001600160601b03861660248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156107e257600080fd5b505af11580156107f6573d6000803e3d6000fd5b505050506040513d602081101561080c57600080fd5b505060075460408051632597f50f60e11b81526001600160601b03851660048201526224ea00602482018190526301dfe20060448301526064820152336084820181905260a482015290516001600160a01b0390921691634b2fea1e9160c48082019260009290919082900301818387803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b5050604080516001600160601b038616815290513393507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592509081900360200190a25050565b6007546001600160a01b031681565b6108fe338261121d565b50565b6001600160a01b031660009081526020819052604090205490565b60055461010090046001600160a01b031690565b60055460009061010090046001600160a01b031661094c610ddd565b6001600160a01b031614905090565b61096361137a565b6001600160a01b0316336001600160a01b0316146109b7576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b336001600160a01b03841614610a03576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b60006060610a0f611389565b90506000610a5285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113e192505050565b905060005b8251811015610aa057828181518110610a6c57fe5b60200260200101516001600160e01b031916826001600160e01b0319161415610a985760019350610aa0565b600101610a57565b5082610aeb576040805162461bcd60e51b81526020600482015260156024820152741b595d1a1bd9081a5cc81b9bdd08185b1b1bddd959605a1b604482015290519081900360640190fd5b60405160006020820181815290918291829189918991603c018383808284378083019250505093505050506040516020818303038152906040528060200190516060811015610b3957600080fd5b50602081015160409091015190925090506001600160a01b03808316908b1614610b9c576040805162461bcd60e51b815260206004820152600f60248201526e0e6cadcc8cae440dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b888114610be2576040805162461bcd60e51b815260206004820152600f60248201526e0c2dadeeadce840dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b610c2187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113e892505050565b50505050505050505050565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561053c5780601f106105115761010080835404028352916020019161053c565b6000610569610c9b610ddd565b846105f6856040518060600160405280602581526020016119a46025913960016000610cc5610ddd565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61102916565b6000610569610d09610ddd565b8484610ecd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b333014610d7e576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b610d88828261121d565b5050565b610d94610930565b610dd4576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6108fe81611556565b3390565b6001600160a01b038316610e265760405162461bcd60e51b81526004018080602001828103825260248152602001806119806024913960400191505060405180910390fd5b6001600160a01b038216610e6b5760405162461bcd60e51b81526004018080602001828103825260228152602001806118ca6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610f125760405162461bcd60e51b815260040180806020018281038252602581526020018061195b6025913960400191505060405180910390fd5b6001600160a01b038216610f575760405162461bcd60e51b815260040180806020018281038252602381526020018061182f6023913960400191505060405180910390fd5b610f9a816040518060600160405280602681526020016118ec602691396001600160a01b038616600090815260208190526040902054919063ffffffff61102916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610fcf908263ffffffff6110c016565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156110b85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561107d578181015183820152602001611065565b50505050905090810190601f1680156110aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561111a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166111665760405162461bcd60e51b815260040180806020018281038252602181526020018061193a6021913960400191505060405180910390fd5b6111a981604051806060016040528060228152602001611852602291396001600160a01b038516600090815260208190526040902054919063ffffffff61102916565b6001600160a01b0383166000908152602081905260409020556002546111d5908263ffffffff61160216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000816001600160601b03161161127b576040805162461bcd60e51b815260206004820152601960248201527f5356523a3a6d696e743a20616d6f756e7420696e76616c696400000000000000604482015290519081900360640190fd5b600654604080516323b872dd60e01b81526001600160a01b0385811660048301523060248301526001600160601b0385166044830152915160009392909216916323b872dd9160648082019260209290919082900301818787803b1580156112e257600080fd5b505af11580156112f6573d6000803e3d6000fd5b505050506040513d602081101561130c57600080fd5b505190508061131a57600080fd5b61132d83836001600160601b0316611644565b604080516001600160601b038416815290516001600160a01b038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a2505050565b6006546001600160a01b031690565b6040805160018082528183019092526060918291906020808301908038833901905050905063ef4f059260e01b816000815181106113c357fe5b6001600160e01b031990921660209283029190910190910152905090565b6020015190565b60006060306001600160a01b0316836040518082805190602001908083835b602083106114265780518252601f199092019160209182019101611407565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611488576040519150601f19603f3d011682016040523d82523d6000602084013e61148d565b606091505b5091509150816115515760448151116114d75760405162461bcd60e51b81526004018080602001828103825260308152602001806118746030913960400191505060405180910390fd5b61150a6040518060400160405280601181526020017003932b1b2b4bb32a0b8383937bb30b61d1607d1b81525082611734565b60405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561107d578181015183820152602001611065565b505050565b6001600160a01b03811661159b5760405162461bcd60e51b81526004018080602001828103825260268152602001806118a46026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600061111a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611029565b6001600160a01b03821661169f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6002546116b2908263ffffffff6110c016565b6002556001600160a01b0382166000908152602081905260409020546116de908263ffffffff6110c016565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6060808390506060839050606060448251845101036040519080825280601f01601f191660200182016040528015611773576020820181803883390190505b509050806000805b85518110156117cc5785818151811061179057fe5b602001015160f81c60f81b8383806001019450815181106117ad57fe5b60200101906001600160f81b031916908160001a90535060010161177b565b5060445b8451811015611821578481815181106117e557fe5b602001015160f81c60f81b83838060010194508151811061180257fe5b60200101906001600160f81b031916908160001a9053506001016117d0565b509097965050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636572656365697665417070726f76616c3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158200fbad2c0cf0e89c5a65e0478e728869f519cdbe3ac27caef9ac5c74e7bbbd86364736f6c63430005110032", "linkReferences": {}, "deployedLinkReferences": {} }