test-contracts-sovryn
Version:
Smart contracts for the Sovryn protocol and external integrations.
447 lines (446 loc) • 36.5 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "VestingLogicMockup",
"sourceName": "contracts/mockup/VestingLogicMockup.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "loanPoolToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint32",
"name": "maxCheckpoints",
"type": "uint32"
}
],
"name": "DividendsCollected",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newStakingContract",
"type": "address"
}
],
"name": "MigratedToNewStakingContract",
"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": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "TokensStaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "TokensWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "VotesDelegated",
"type": "event"
},
{
"constant": true,
"inputs": [],
"name": "SOV",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "cliff",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_loanPoolToken",
"type": "address"
},
{
"internalType": "uint32",
"name": "_maxCheckpoints",
"type": "uint32"
},
{
"internalType": "address",
"name": "_receiver",
"type": "address"
}
],
"name": "collectDividends",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_delegatee",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "duration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "endDate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "feeSharingProxy",
"outputs": [
{
"internalType": "contract IFeeSharingProxy",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "governanceWithdrawTokens",
"outputs": [],
"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": [],
"name": "migrateToNewStakingContract",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"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": false,
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "stakeTokens",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "stakeTokensWithApproval",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "staking",
"outputs": [
{
"internalType": "contract Staking",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "startDate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "tokenOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "withdrawTokens",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b611a16806100796000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80636a26b57f116100ad5780638f32d59b116100715780638f32d59b1461020a5780638f4ffcb11461021f578063a3e6761014610232578063c24a0f8b1461023a578063f2fde38b1461024257610121565b80636a26b57f146101b45780637547c7a3146101bc57806378f24bc6146101cf57806381e45268146101e25780638da5cb5b146101f557610121565b806349df728c116100f457806349df728c146101695780634cf088d91461017e5780635419675f146101865780635c19a95c1461018e57806362dc2f35146101a157610121565b806308dcb360146101265780630b97bc86146101445780630fb5a6b41461015957806313d033c014610161575b600080fd5b61012e610255565b60405161013b91906117d3565b60405180910390f35b61014c610264565b60405161013b9190611872565b61014c61026a565b61014c610270565b61017c61017736600461123e565b610276565b005b61012e6102c5565b61017c6102d4565b61017c61019c36600461123e565b610455565b61017c6101af36600461133a565b61056d565b61012e61067a565b61017c6101ca3660046113e8565b610689565b61017c6101dd36600461123e565b610693565b61017c6101f0366004611282565b6106c8565b6101fd6106f5565b60405161013b9190611709565b610212610704565b60405161013b91906117c5565b61017c61022d3660046112bc565b610728565b6101fd61091c565b61014c61092b565b61017c61025036600461123e565b610931565b6001546001600160a01b031681565b60075481565b60065481565b60055481565b6003546001600160a01b03163314806102925750610292610704565b6102b75760405162461bcd60e51b81526004016102ae90611832565b60405180910390fd5b6102c281600061095e565b50565b6002546001600160a01b031681565b6003546001600160a01b03163314806102f057506102f0610704565b61030c5760405162461bcd60e51b81526004016102ae90611832565b600260009054906101000a90046001600160a01b03166001600160a01b0316635419675f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561035c57600080fd5b505af1158015610370573d6000803e3d6000fd5b50505050600260009054906101000a90046001600160a01b03166001600160a01b031663ae81dfe46040518163ffffffff1660e01b815260040160206040518083038186803b1580156103c257600080fd5b505afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103fa9190810190611264565b600280546001600160a01b0319166001600160a01b03928316179081905560405133927f9613f431247983a83a2b3667aa63a5174194ac89328dfadc69be44409521b3c19261044b92911690611709565b60405180910390a2565b6003546001600160a01b0316331461047f5760405162461bcd60e51b81526004016102ae90611832565b6001600160a01b0381166104a55760405162461bcd60e51b81526004016102ae90611842565b600554600754015b6008548110156105285760025460405163026e402b60e01b81526001600160a01b039091169063026e402b906104e99085908590600401611767565b600060405180830381600087803b15801561050357600080fd5b505af1158015610517573d6000803e3d6000fd5b505050506224ea00810190506104ad565b50336001600160a01b03167f734a802cc194e2139bfcc08e10336f24dfa14fd2c5ab70268d8706c055867066826040516105629190611709565b60405180910390a250565b6003546001600160a01b03163314806105895750610589610704565b6105a55760405162461bcd60e51b81526004016102ae90611832565b6001600160a01b0381166105cb5760405162461bcd60e51b81526004016102ae90611852565b6004805460405163a965b3a960e01b81526001600160a01b039091169163a965b3a9916105fe918791879187910161179d565b600060405180830381600087803b15801561061857600080fd5b505af115801561062c573d6000803e3d6000fd5b50505050336001600160a01b03167f5fa0b381cb4bdbc7063d1e5c78b90a634a6d6a12d6cb6fabe450fd4b8d1eab0184838560405161066d9392919061173f565b60405180910390a2505050565b6004546001600160a01b031681565b6102c23382610bfd565b6002546001600160a01b031633146106bd5760405162461bcd60e51b81526004016102ae90611832565b6102c281600161095e565b3330146106e75760405162461bcd60e51b81526004016102ae90611832565b6106f18282610bfd565b5050565b6000546001600160a01b031690565b600080546001600160a01b0316610719610edf565b6001600160a01b031614905090565b610730610ee3565b6001600160a01b0316336001600160a01b0316146107605760405162461bcd60e51b81526004016102ae90611832565b336001600160a01b038416146107885760405162461bcd60e51b81526004016102ae90611832565b60006060610794610ef2565b905060006107d785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f4a92505050565b905060005b8251811015610825578281815181106107f157fe5b60200260200101516001600160e01b031916826001600160e01b031916141561081d5760019350610825565b6001016107dc565b50826108435760405162461bcd60e51b81526004016102ae90611812565b600080600060201b878760405160200161085f939291906116d0565b60405160208183030381529060405280602001905161088191908101906113a5565b9093509150506001600160a01b03808316908b16146108b25760405162461bcd60e51b81526004016102ae90611822565b8881146108d15760405162461bcd60e51b81526004016102ae90611862565b61091087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f5192505050565b50505050505050505050565b6003546001600160a01b031681565b60085481565b610939610704565b6109555760405162461bcd60e51b81526004016102ae90611832565b6102c28161102b565b6001600160a01b0382166109845760405162461bcd60e51b81526004016102ae90611852565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316639929e8866040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d557600080fd5b505afa1580156109e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0d9190810190611387565b80610a155750825b15610a235750600854610a26565b50425b600554600754015b818111610bb5576002546040516367bdb42560e11b81526001600160a01b039091169063cf7b684a90610a6d9030908590600019430190600401611782565b60206040518083038186803b158015610a8557600080fd5b505afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610abd9190810190611424565b92506bffffffffffffffffffffffff831615610bab578315610b4457600254604051634005b26560e11b81526001600160a01b039091169063800b64ca90610b0d90869085908a906004016118da565b600060405180830381600087803b158015610b2757600080fd5b505af1158015610b3b573d6000803e3d6000fd5b50505050610bab565b6002546040516336adb29160e21b81526001600160a01b039091169063dab6ca4490610b7890869085908a906004016118da565b600060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050505b6224ea0001610a2e565b50336001600160a01b03167f351b2b7a8b3659a02c6c87ac06e00099a1e5979171161a69eab5d057deb838ec85604051610bef9190611709565b60405180910390a250505050565b600754610c88576002546040516372ec979560e01b81526001600160a01b03909116906372ec979590610c34904290600401611872565b60206040518083038186803b158015610c4c57600080fd5b505afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c849190810190611406565b6007555b6002546006546040516372ec979560e01b81526001600160a01b03909216916372ec979591610cbe914290910190600401611872565b60206040518083038186803b158015610cd657600080fd5b505afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d0e9190810190611406565b6008556001546040516323b872dd60e01b81526000916001600160a01b0316906323b872dd90610d4690869030908790600401611717565b602060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d989190810190611387565b905080610da457600080fd5b60015460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610dda929116908690600401611767565b602060405180830381600087803b158015610df457600080fd5b505af1158015610e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e2c9190810190611387565b50600254600554600654600354604051632597f50f60e11b81526001600160a01b0394851694634b2fea1e94610e74948994919390926224ea00923092911690600401611880565b600060405180830381600087803b158015610e8e57600080fd5b505af1158015610ea2573d6000803e3d6000fd5b50505050826001600160a01b03167fb539ca1e5c8d398ddf1c41c30166f33404941683be4683319b57669a93dad4ef8360405161066d9190611872565b3390565b6001546001600160a01b031690565b604080516001808252818301909252606091829190602080830190803883390190505090506381e4526860e01b81600081518110610f2c57fe5b6001600160e01b031990921660209283029190910190910152905090565b6020015190565b60006060306001600160a01b031683604051610f6d91906116f6565b6000604051808303816000865af19150503d8060008114610faa576040519150601f19603f3d011682016040523d82523d6000602084013e610faf565b606091505b509150915081611026576044815111610fda5760405162461bcd60e51b81526004016102ae906117f2565b61100d6040518060400160405280601181526020017003932b1b2b4bb32a0b8383937bb30b61d1607d1b815250826110ac565b60405162461bcd60e51b81526004016102ae91906117e1565b505050565b6001600160a01b0381166110515760405162461bcd60e51b81526004016102ae90611802565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060808390506060839050606060448251845101036040519080825280601f01601f1916602001820160405280156110eb576020820181803883390190505b509050806000805b85518110156111445785818151811061110857fe5b602001015160f81c60f81b83838060010194508151811061112557fe5b60200101906001600160f81b031916908160001a9053506001016110f3565b5060445b84518110156111995784818151811061115d57fe5b602001015160f81c60f81b83838060010194508151811061117a57fe5b60200101906001600160f81b031916908160001a905350600101611148565b50909450505050505b92915050565b80356111a28161199b565b80516111a28161199b565b80516111a2816119af565b80516111a2816119b8565b60008083601f8401126111e657600080fd5b50813567ffffffffffffffff8111156111fe57600080fd5b60208301915083600182028301111561121657600080fd5b9250929050565b80356111a2816119b8565b80356111a2816119c1565b80516111a2816119ca565b60006020828403121561125057600080fd5b600061125c84846111a8565b949350505050565b60006020828403121561127657600080fd5b600061125c84846111b3565b6000806040838503121561129557600080fd5b60006112a185856111a8565b92505060206112b28582860161121d565b9150509250929050565b6000806000806000608086880312156112d457600080fd5b60006112e088886111a8565b95505060206112f18882890161121d565b9450506040611302888289016111a8565b935050606086013567ffffffffffffffff81111561131f57600080fd5b61132b888289016111d4565b92509250509295509295909350565b60008060006060848603121561134f57600080fd5b600061135b86866111a8565b935050602061136c86828701611228565b925050604061137d868287016111a8565b9150509250925092565b60006020828403121561139957600080fd5b600061125c84846111be565b6000806000606084860312156113ba57600080fd5b60006113c686866111c9565b93505060206113d7868287016111b3565b925050604061137d868287016111c9565b6000602082840312156113fa57600080fd5b600061125c848461121d565b60006020828403121561141857600080fd5b600061125c84846111c9565b60006020828403121561143657600080fd5b600061125c8484611233565b61144b81611907565b82525050565b61144b81611912565b61144b61146682611917565b611921565b600061147783856118f9565b9350611484838584611955565b50500190565b6000611495826118f5565b61149f81856118f9565b93506114af818560208601611961565b9290920192915050565b61144b8161194a565b60006114cd826118f5565b6114d781856118fe565b93506114e7818560208601611961565b6114f081611991565b9093019392505050565b60006115076030836118fe565b7f72656365697665417070726f76616c3a205472616e73616374696f6e2065786581526f31baba34b7b7103932bb32b93a32b21760811b602082015260400192915050565b60006115596026836118fe565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b60006115a16015836118fe565b741b595d1a1bd9081a5cc81b9bdd08185b1b1bddd959605a1b815260200192915050565b60006115d2600f836118fe565b6e0e6cadcc8cae440dad2e6dac2e8c6d608b1b815260200192915050565b60006115fd600c836118fe565b6b1d5b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006116256019836118fe565b7f64656c656761746565206164647265737320696e76616c696400000000000000815260200192915050565b600061165e6018836118fe565b7f7265636569766572206164647265737320696e76616c69640000000000000000815260200192915050565b6000611697600f836118fe565b6e0c2dadeeadce840dad2e6dac2e8c6d608b1b815260200192915050565b61144b81611921565b61144b81611930565b61144b81611939565b60006116dc828661145a565b601c820191506116ed82848661146b565b95945050505050565b6000611702828461148a565b9392505050565b602081016111a28284611442565b606081016117258286611442565b6117326020830185611442565b61125c60408301846116b5565b6060810161174d8286611442565b61175a6020830185611442565b61125c60408301846116be565b604081016117758285611442565b61170260208301846116b5565b606081016117908286611442565b61173260208301856116b5565b606081016117ab8286611442565b6117b860208301856116be565b61125c6040830184611442565b602081016111a28284611451565b602081016111a282846114b9565b6020808252810161170281846114c2565b602080825281016111a2816114fa565b602080825281016111a28161154c565b602080825281016111a281611594565b602080825281016111a2816115c5565b602080825281016111a2816115f0565b602080825281016111a281611618565b602080825281016111a281611651565b602080825281016111a28161168a565b602081016111a282846116b5565b60c0810161188e82896116b5565b61189b60208301886116b5565b6118a860408301876116b5565b6118b560608301866116b5565b6118c26080830185611442565b6118cf60a0830184611442565b979650505050505050565b606081016118e882866116c7565b6117b860208301856116b5565b5190565b919050565b90815260200190565b60006111a282611924565b151590565b63ffffffff191690565b90565b6001600160a01b031690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b60006111a282611907565b82818337506000910152565b60005b8381101561197c578181015183820152602001611964565b8381111561198b576000848401525b50505050565b601f01601f191690565b6119a481611907565b81146102c257600080fd5b6119a481611912565b6119a481611921565b6119a481611930565b6119a48161193956fea365627a7a7231582061b07e0234ac578a8105777d24b9c1f3d872e7883d13ac507b8e4f773e5098a86c6578706572696d656e74616cf564736f6c63430005110040",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c80636a26b57f116100ad5780638f32d59b116100715780638f32d59b1461020a5780638f4ffcb11461021f578063a3e6761014610232578063c24a0f8b1461023a578063f2fde38b1461024257610121565b80636a26b57f146101b45780637547c7a3146101bc57806378f24bc6146101cf57806381e45268146101e25780638da5cb5b146101f557610121565b806349df728c116100f457806349df728c146101695780634cf088d91461017e5780635419675f146101865780635c19a95c1461018e57806362dc2f35146101a157610121565b806308dcb360146101265780630b97bc86146101445780630fb5a6b41461015957806313d033c014610161575b600080fd5b61012e610255565b60405161013b91906117d3565b60405180910390f35b61014c610264565b60405161013b9190611872565b61014c61026a565b61014c610270565b61017c61017736600461123e565b610276565b005b61012e6102c5565b61017c6102d4565b61017c61019c36600461123e565b610455565b61017c6101af36600461133a565b61056d565b61012e61067a565b61017c6101ca3660046113e8565b610689565b61017c6101dd36600461123e565b610693565b61017c6101f0366004611282565b6106c8565b6101fd6106f5565b60405161013b9190611709565b610212610704565b60405161013b91906117c5565b61017c61022d3660046112bc565b610728565b6101fd61091c565b61014c61092b565b61017c61025036600461123e565b610931565b6001546001600160a01b031681565b60075481565b60065481565b60055481565b6003546001600160a01b03163314806102925750610292610704565b6102b75760405162461bcd60e51b81526004016102ae90611832565b60405180910390fd5b6102c281600061095e565b50565b6002546001600160a01b031681565b6003546001600160a01b03163314806102f057506102f0610704565b61030c5760405162461bcd60e51b81526004016102ae90611832565b600260009054906101000a90046001600160a01b03166001600160a01b0316635419675f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561035c57600080fd5b505af1158015610370573d6000803e3d6000fd5b50505050600260009054906101000a90046001600160a01b03166001600160a01b031663ae81dfe46040518163ffffffff1660e01b815260040160206040518083038186803b1580156103c257600080fd5b505afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103fa9190810190611264565b600280546001600160a01b0319166001600160a01b03928316179081905560405133927f9613f431247983a83a2b3667aa63a5174194ac89328dfadc69be44409521b3c19261044b92911690611709565b60405180910390a2565b6003546001600160a01b0316331461047f5760405162461bcd60e51b81526004016102ae90611832565b6001600160a01b0381166104a55760405162461bcd60e51b81526004016102ae90611842565b600554600754015b6008548110156105285760025460405163026e402b60e01b81526001600160a01b039091169063026e402b906104e99085908590600401611767565b600060405180830381600087803b15801561050357600080fd5b505af1158015610517573d6000803e3d6000fd5b505050506224ea00810190506104ad565b50336001600160a01b03167f734a802cc194e2139bfcc08e10336f24dfa14fd2c5ab70268d8706c055867066826040516105629190611709565b60405180910390a250565b6003546001600160a01b03163314806105895750610589610704565b6105a55760405162461bcd60e51b81526004016102ae90611832565b6001600160a01b0381166105cb5760405162461bcd60e51b81526004016102ae90611852565b6004805460405163a965b3a960e01b81526001600160a01b039091169163a965b3a9916105fe918791879187910161179d565b600060405180830381600087803b15801561061857600080fd5b505af115801561062c573d6000803e3d6000fd5b50505050336001600160a01b03167f5fa0b381cb4bdbc7063d1e5c78b90a634a6d6a12d6cb6fabe450fd4b8d1eab0184838560405161066d9392919061173f565b60405180910390a2505050565b6004546001600160a01b031681565b6102c23382610bfd565b6002546001600160a01b031633146106bd5760405162461bcd60e51b81526004016102ae90611832565b6102c281600161095e565b3330146106e75760405162461bcd60e51b81526004016102ae90611832565b6106f18282610bfd565b5050565b6000546001600160a01b031690565b600080546001600160a01b0316610719610edf565b6001600160a01b031614905090565b610730610ee3565b6001600160a01b0316336001600160a01b0316146107605760405162461bcd60e51b81526004016102ae90611832565b336001600160a01b038416146107885760405162461bcd60e51b81526004016102ae90611832565b60006060610794610ef2565b905060006107d785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f4a92505050565b905060005b8251811015610825578281815181106107f157fe5b60200260200101516001600160e01b031916826001600160e01b031916141561081d5760019350610825565b6001016107dc565b50826108435760405162461bcd60e51b81526004016102ae90611812565b600080600060201b878760405160200161085f939291906116d0565b60405160208183030381529060405280602001905161088191908101906113a5565b9093509150506001600160a01b03808316908b16146108b25760405162461bcd60e51b81526004016102ae90611822565b8881146108d15760405162461bcd60e51b81526004016102ae90611862565b61091087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f5192505050565b50505050505050505050565b6003546001600160a01b031681565b60085481565b610939610704565b6109555760405162461bcd60e51b81526004016102ae90611832565b6102c28161102b565b6001600160a01b0382166109845760405162461bcd60e51b81526004016102ae90611852565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316639929e8866040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d557600080fd5b505afa1580156109e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0d9190810190611387565b80610a155750825b15610a235750600854610a26565b50425b600554600754015b818111610bb5576002546040516367bdb42560e11b81526001600160a01b039091169063cf7b684a90610a6d9030908590600019430190600401611782565b60206040518083038186803b158015610a8557600080fd5b505afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610abd9190810190611424565b92506bffffffffffffffffffffffff831615610bab578315610b4457600254604051634005b26560e11b81526001600160a01b039091169063800b64ca90610b0d90869085908a906004016118da565b600060405180830381600087803b158015610b2757600080fd5b505af1158015610b3b573d6000803e3d6000fd5b50505050610bab565b6002546040516336adb29160e21b81526001600160a01b039091169063dab6ca4490610b7890869085908a906004016118da565b600060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050505b6224ea0001610a2e565b50336001600160a01b03167f351b2b7a8b3659a02c6c87ac06e00099a1e5979171161a69eab5d057deb838ec85604051610bef9190611709565b60405180910390a250505050565b600754610c88576002546040516372ec979560e01b81526001600160a01b03909116906372ec979590610c34904290600401611872565b60206040518083038186803b158015610c4c57600080fd5b505afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c849190810190611406565b6007555b6002546006546040516372ec979560e01b81526001600160a01b03909216916372ec979591610cbe914290910190600401611872565b60206040518083038186803b158015610cd657600080fd5b505afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d0e9190810190611406565b6008556001546040516323b872dd60e01b81526000916001600160a01b0316906323b872dd90610d4690869030908790600401611717565b602060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d989190810190611387565b905080610da457600080fd5b60015460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610dda929116908690600401611767565b602060405180830381600087803b158015610df457600080fd5b505af1158015610e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e2c9190810190611387565b50600254600554600654600354604051632597f50f60e11b81526001600160a01b0394851694634b2fea1e94610e74948994919390926224ea00923092911690600401611880565b600060405180830381600087803b158015610e8e57600080fd5b505af1158015610ea2573d6000803e3d6000fd5b50505050826001600160a01b03167fb539ca1e5c8d398ddf1c41c30166f33404941683be4683319b57669a93dad4ef8360405161066d9190611872565b3390565b6001546001600160a01b031690565b604080516001808252818301909252606091829190602080830190803883390190505090506381e4526860e01b81600081518110610f2c57fe5b6001600160e01b031990921660209283029190910190910152905090565b6020015190565b60006060306001600160a01b031683604051610f6d91906116f6565b6000604051808303816000865af19150503d8060008114610faa576040519150601f19603f3d011682016040523d82523d6000602084013e610faf565b606091505b509150915081611026576044815111610fda5760405162461bcd60e51b81526004016102ae906117f2565b61100d6040518060400160405280601181526020017003932b1b2b4bb32a0b8383937bb30b61d1607d1b815250826110ac565b60405162461bcd60e51b81526004016102ae91906117e1565b505050565b6001600160a01b0381166110515760405162461bcd60e51b81526004016102ae90611802565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060808390506060839050606060448251845101036040519080825280601f01601f1916602001820160405280156110eb576020820181803883390190505b509050806000805b85518110156111445785818151811061110857fe5b602001015160f81c60f81b83838060010194508151811061112557fe5b60200101906001600160f81b031916908160001a9053506001016110f3565b5060445b84518110156111995784818151811061115d57fe5b602001015160f81c60f81b83838060010194508151811061117a57fe5b60200101906001600160f81b031916908160001a905350600101611148565b50909450505050505b92915050565b80356111a28161199b565b80516111a28161199b565b80516111a2816119af565b80516111a2816119b8565b60008083601f8401126111e657600080fd5b50813567ffffffffffffffff8111156111fe57600080fd5b60208301915083600182028301111561121657600080fd5b9250929050565b80356111a2816119b8565b80356111a2816119c1565b80516111a2816119ca565b60006020828403121561125057600080fd5b600061125c84846111a8565b949350505050565b60006020828403121561127657600080fd5b600061125c84846111b3565b6000806040838503121561129557600080fd5b60006112a185856111a8565b92505060206112b28582860161121d565b9150509250929050565b6000806000806000608086880312156112d457600080fd5b60006112e088886111a8565b95505060206112f18882890161121d565b9450506040611302888289016111a8565b935050606086013567ffffffffffffffff81111561131f57600080fd5b61132b888289016111d4565b92509250509295509295909350565b60008060006060848603121561134f57600080fd5b600061135b86866111a8565b935050602061136c86828701611228565b925050604061137d868287016111a8565b9150509250925092565b60006020828403121561139957600080fd5b600061125c84846111be565b6000806000606084860312156113ba57600080fd5b60006113c686866111c9565b93505060206113d7868287016111b3565b925050604061137d868287016111c9565b6000602082840312156113fa57600080fd5b600061125c848461121d565b60006020828403121561141857600080fd5b600061125c84846111c9565b60006020828403121561143657600080fd5b600061125c8484611233565b61144b81611907565b82525050565b61144b81611912565b61144b61146682611917565b611921565b600061147783856118f9565b9350611484838584611955565b50500190565b6000611495826118f5565b61149f81856118f9565b93506114af818560208601611961565b9290920192915050565b61144b8161194a565b60006114cd826118f5565b6114d781856118fe565b93506114e7818560208601611961565b6114f081611991565b9093019392505050565b60006115076030836118fe565b7f72656365697665417070726f76616c3a205472616e73616374696f6e2065786581526f31baba34b7b7103932bb32b93a32b21760811b602082015260400192915050565b60006115596026836118fe565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b60006115a16015836118fe565b741b595d1a1bd9081a5cc81b9bdd08185b1b1bddd959605a1b815260200192915050565b60006115d2600f836118fe565b6e0e6cadcc8cae440dad2e6dac2e8c6d608b1b815260200192915050565b60006115fd600c836118fe565b6b1d5b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006116256019836118fe565b7f64656c656761746565206164647265737320696e76616c696400000000000000815260200192915050565b600061165e6018836118fe565b7f7265636569766572206164647265737320696e76616c69640000000000000000815260200192915050565b6000611697600f836118fe565b6e0c2dadeeadce840dad2e6dac2e8c6d608b1b815260200192915050565b61144b81611921565b61144b81611930565b61144b81611939565b60006116dc828661145a565b601c820191506116ed82848661146b565b95945050505050565b6000611702828461148a565b9392505050565b602081016111a28284611442565b606081016117258286611442565b6117326020830185611442565b61125c60408301846116b5565b6060810161174d8286611442565b61175a6020830185611442565b61125c60408301846116be565b604081016117758285611442565b61170260208301846116b5565b606081016117908286611442565b61173260208301856116b5565b606081016117ab8286611442565b6117b860208301856116be565b61125c6040830184611442565b602081016111a28284611451565b602081016111a282846114b9565b6020808252810161170281846114c2565b602080825281016111a2816114fa565b602080825281016111a28161154c565b602080825281016111a281611594565b602080825281016111a2816115c5565b602080825281016111a2816115f0565b602080825281016111a281611618565b602080825281016111a281611651565b602080825281016111a28161168a565b602081016111a282846116b5565b60c0810161188e82896116b5565b61189b60208301886116b5565b6118a860408301876116b5565b6118b560608301866116b5565b6118c26080830185611442565b6118cf60a0830184611442565b979650505050505050565b606081016118e882866116c7565b6117b860208301856116b5565b5190565b919050565b90815260200190565b60006111a282611924565b151590565b63ffffffff191690565b90565b6001600160a01b031690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b60006111a282611907565b82818337506000910152565b60005b8381101561197c578181015183820152602001611964565b8381111561198b576000848401525b50505050565b601f01601f191690565b6119a481611907565b81146102c257600080fd5b6119a481611912565b6119a481611921565b6119a481611930565b6119a48161193956fea365627a7a7231582061b07e0234ac578a8105777d24b9c1f3d872e7883d13ac507b8e4f773e5098a86c6578706572696d656e74616cf564736f6c63430005110040",
"linkReferences": {},
"deployedLinkReferences": {}
}