UNPKG

@vechain/vebetterdao-contracts

Version:

Vebetter DAO smart contracts, including their addresses, ABIs, and interfaces.

1,005 lines (1,004 loc) 48.3 kB
{ "_format": "hh-sol-artifact-1", "contractName": "TimelockControllerUpgradeable", "sourceName": "@openzeppelin/contracts-upgradeable/governance/TimelockControllerUpgradeable.sol", "abi": [ { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "delay", "type": "uint256" }, { "internalType": "uint256", "name": "minDelay", "type": "uint256" } ], "name": "TimelockInsufficientDelay", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "targets", "type": "uint256" }, { "internalType": "uint256", "name": "payloads", "type": "uint256" }, { "internalType": "uint256", "name": "values", "type": "uint256" } ], "name": "TimelockInvalidOperationLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" } ], "name": "TimelockUnauthorizedCaller", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "predecessorId", "type": "bytes32" } ], "name": "TimelockUnexecutedPredecessor", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "operationId", "type": "bytes32" }, { "internalType": "bytes32", "name": "expectedStates", "type": "bytes32" } ], "name": "TimelockUnexpectedOperationState", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "CallExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "CallSalt", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "bytes32", "name": "predecessor", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "delay", "type": "uint256" } ], "name": "CallScheduled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "Cancelled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldDuration", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newDuration", "type": "uint256" } ], "name": "MinDelayChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "inputs": [], "name": "CANCELLER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EXECUTOR_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROPOSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "cancel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "payload", "type": "bytes" }, { "internalType": "bytes32", "name": "predecessor", "type": "bytes32" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "execute", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "payloads", "type": "bytes[]" }, { "internalType": "bytes32", "name": "predecessor", "type": "bytes32" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "executeBatch", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "getMinDelay", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "getOperationState", "outputs": [ { "internalType": "enum TimelockControllerUpgradeable.OperationState", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "getTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "bytes32", "name": "predecessor", "type": "bytes32" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "hashOperation", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "payloads", "type": "bytes[]" }, { "internalType": "bytes32", "name": "predecessor", "type": "bytes32" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "hashOperationBatch", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "isOperation", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "isOperationDone", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "isOperationPending", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "isOperationReady", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "bytes32", "name": "predecessor", "type": "bytes32" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256", "name": "delay", "type": "uint256" } ], "name": "schedule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "payloads", "type": "bytes[]" }, { "internalType": "bytes32", "name": "predecessor", "type": "bytes32" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256", "name": "delay", "type": "uint256" } ], "name": "scheduleBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newDelay", "type": "uint256" } ], "name": "updateDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x608060405234801561001057600080fd5b50611a74806100206000396000f3fe60806040526004361061014b5760003560e01c806301d5062a1461015757806301ffc9a71461017957806307bd0265146101ae578063134008d3146101de57806313bc9f20146101f1578063150b7a0214610211578063248a9ca3146102555780632ab0f529146102755780632f2ff15d1461029557806331d50750146102b557806336568abe146102d5578063584b153e146102f557806364d62353146103155780637958004c146103355780638065657f146103625780638f2a0bb0146103825780638f61f4f5146103a257806391d14854146103c4578063a217fddf146103e4578063b08e51c0146103f9578063b1c5f4271461041b578063bc197c811461043b578063c4d252f514610467578063d45c443514610487578063d547741f146104a7578063e38335e5146104c7578063f23a6e61146104da578063f27a0c921461050657600080fd5b3661015257005b600080fd5b34801561016357600080fd5b506101776101723660046110f6565b61051b565b005b34801561018557600080fd5b5061019961019436600461116a565b6105bb565b60405190151581526020015b60405180910390f35b3480156101ba57600080fd5b506101d06000805160206119bf83398151915281565b6040519081526020016101a5565b6101776101ec366004611194565b6105cc565b3480156101fd57600080fd5b5061019961020c3660046111ff565b61065d565b34801561021d57600080fd5b5061023c61022c3660046112cd565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101a5565b34801561026157600080fd5b506101d06102703660046111ff565b610683565b34801561028157600080fd5b506101996102903660046111ff565b6106a3565b3480156102a157600080fd5b506101776102b0366004611334565b6106ac565b3480156102c157600080fd5b506101996102d03660046111ff565b6106ce565b3480156102e157600080fd5b506101776102f0366004611334565b6106f3565b34801561030157600080fd5b506101996103103660046111ff565b61072b565b34801561032157600080fd5b506101776103303660046111ff565b610771565b34801561034157600080fd5b506103556103503660046111ff565b6107f2565b6040516101a59190611376565b34801561036e57600080fd5b506101d061037d366004611194565b61083c565b34801561038e57600080fd5b5061017761039d3660046113e2565b61087b565b3480156103ae57600080fd5b506101d060008051602061199f83398151915281565b3480156103d057600080fd5b506101996103df366004611334565b6109d0565b3480156103f057600080fd5b506101d0600081565b34801561040557600080fd5b506101d06000805160206119ff83398151915281565b34801561042757600080fd5b506101d0610436366004611493565b610a06565b34801561044757600080fd5b5061023c6104563660046115ba565b63bc197c8160e01b95945050505050565b34801561047357600080fd5b506101776104823660046111ff565b610a4b565b34801561049357600080fd5b506101d06104a23660046111ff565b610aea565b3480156104b357600080fd5b506101776104c2366004611334565b610b07565b6101776104d5366004611493565b610b23565b3480156104e657600080fd5b5061023c6104f5366004611663565b63f23a6e6160e01b95945050505050565b34801561051257600080fd5b506101d0610c81565b60008051602061199f83398151915261053381610c96565b600061054389898989898961083c565b905061054f8184610ca3565b6000816000805160206119df8339815191528b8b8b8b8b8a604051610579969594939291906116f0565b60405180910390a383156105b05780600080516020611a1f833981519152856040516105a791815260200190565b60405180910390a25b505050505050505050565b60006105c682610d36565b92915050565b6000805160206119bf8339815191526105e68160006109d0565b6105f4576105f48133610d5b565b600061060488888888888861083c565b90506106108185610d98565b61061c88888888610de6565b60008160008051602061197f8339815191528a8a8a8a604051610642949392919061172d565b60405180910390a361065381610e5e565b5050505050505050565b600060025b61066b836107f2565b600381111561067c5761067c611360565b1492915050565b60008061068e610e94565b60009384526020525050604090206001015490565b60006003610662565b6106b582610683565b6106be81610c96565b6106c88383610eb8565b50505050565b6000806106da836107f2565b60038111156106eb576106eb611360565b141592915050565b6001600160a01b038116331461071c5760405163334bd91960e11b815260040160405180910390fd5b6107268282610f59565b505050565b600080610737836107f2565b9050600181600381111561074d5761074d611360565b148061076a5750600281600381111561076857610768611360565b145b9392505050565b600061077b610fd1565b9050333081146107ae5760405163e2850c5960e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d58260010154846040516107e392919061175f565b60405180910390a15060010155565b6000806107fe83610aea565b9050806000036108115750600092915050565b600181036108225750600392915050565b428111156108335750600192915050565b50600292915050565b6000868686868686604051602001610859969594939291906116f0565b6040516020818303038152906040528051906020012090509695505050505050565b60008051602061199f83398151915261089381610c96565b88871415806108a25750888514155b156108c9576040516001624fcdef60e01b031981526107a5908a9087908a9060040161176d565b60006108db8b8b8b8b8b8b8b8b610a06565b90506108e78184610ca3565b60005b8a8110156109935780826000805160206119df8339815191528e8e8581811061091557610915611783565b905060200201602081019061092a9190611799565b8d8d8681811061093c5761093c611783565b905060200201358c8c8781811061095557610955611783565b905060200281019061096791906117b4565b8c8b60405161097b969594939291906116f0565b60405180910390a361098c81611810565b90506108ea565b5083156109c35780600080516020611a1f833981519152856040516109ba91815260200190565b60405180910390a25b5050505050505050505050565b6000806109db610e94565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b60008888888888888888604051602001610a279897969594939291906118ba565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206119ff833981519152610a6381610c96565b6000610a6d610fd1565b9050610a788361072b565b610aad5782610a876002610ff5565b610a916001610ff5565b17604051635ead8eb560e01b81526004016107a592919061175f565b6000838152602082905260408082208290555184917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a2505050565b600080610af5610fd1565b60009384526020525050604090205490565b610b1082610683565b610b1981610c96565b6106c88383610f59565b6000805160206119bf833981519152610b3d8160006109d0565b610b4b57610b4b8133610d5b565b8786141580610b5a5750878414155b15610b81576040516001624fcdef60e01b031981526107a59089908690899060040161176d565b6000610b938a8a8a8a8a8a8a8a610a06565b9050610b9f8185610d98565b60005b89811015610c6b5760008b8b83818110610bbe57610bbe611783565b9050602002016020810190610bd39190611799565b905060008a8a84818110610be957610be9611783565b9050602002013590503660008a8a86818110610c0757610c07611783565b9050602002810190610c1991906117b4565b91509150610c2984848484610de6565b848660008051602061197f83398151915286868686604051610c4e949392919061172d565b60405180910390a35050505080610c6490611810565b9050610ba2565b50610c7581610e5e565b50505050505050505050565b600080610c8c610fd1565b6001015492915050565b610ca08133610d5b565b50565b6000610cad610fd1565b9050610cb8836106ce565b15610ce35782610cc86000610ff5565b604051635ead8eb560e01b81526004016107a592919061175f565b6000610ced610c81565b905080831015610d14578281604051635433660960e01b81526004016107a592919061175f565b610d1e834261195b565b60009485526020929092525060409092209190915550565b60006001600160e01b03198216630271189760e51b14806105c657506105c682611018565b610d6582826109d0565b610d945760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016107a5565b5050565b610da18261065d565b610db05781610cc86002610ff5565b8015801590610dc55750610dc3816106a3565b155b15610d945760405163121534c360e31b8152600481018290526024016107a5565b600080856001600160a01b0316858585604051610e0492919061196e565b60006040518083038185875af1925050503d8060008114610e41576040519150601f19603f3d011682016040523d82523d6000602084013e610e46565b606091505b5091509150610e55828261104d565b50505050505050565b6000610e68610fd1565b9050610e738261065d565b610e825781610cc86002610ff5565b60009182526020526040902060019055565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b600080610ec3610e94565b9050610ecf84846109d0565b610f4f576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610f053390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506105c6565b60009150506105c6565b600080610f64610e94565b9050610f7084846109d0565b15610f4f576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506105c6565b7f9a37c2aa9d186a0969ff8a8267bf4e07e864c2f2768f5040949e28a624fb360090565b600081600381111561100957611009611360565b600160ff919091161b92915050565b60006001600160e01b03198216637965db0b60e01b14806105c657506301ffc9a760e01b6001600160e01b03198316146105c6565b6060826110625761105d82611069565b6105c6565b50806105c6565b8051156110795780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146110a957600080fd5b919050565b60008083601f8401126110c057600080fd5b5081356001600160401b038111156110d757600080fd5b6020830191508360208285010111156110ef57600080fd5b9250929050565b600080600080600080600060c0888a03121561111157600080fd5b61111a88611092565b96506020880135955060408801356001600160401b0381111561113c57600080fd5b6111488a828b016110ae565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561117c57600080fd5b81356001600160e01b03198116811461076a57600080fd5b60008060008060008060a087890312156111ad57600080fd5b6111b687611092565b95506020870135945060408701356001600160401b038111156111d857600080fd5b6111e489828a016110ae565b979a9699509760608101359660809091013595509350505050565b60006020828403121561121157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561125657611256611218565b604052919050565b600082601f83011261126f57600080fd5b81356001600160401b0381111561128857611288611218565b61129b601f8201601f191660200161122e565b8181528460208386010111156112b057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156112e357600080fd5b6112ec85611092565b93506112fa60208601611092565b92506040850135915060608501356001600160401b0381111561131c57600080fd5b6113288782880161125e565b91505092959194509250565b6000806040838503121561134757600080fd5b8235915061135760208401611092565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016004831061139857634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f8401126113b057600080fd5b5081356001600160401b038111156113c757600080fd5b6020830191508360208260051b85010111156110ef57600080fd5b600080600080600080600080600060c08a8c03121561140057600080fd5b89356001600160401b038082111561141757600080fd5b6114238d838e0161139e565b909b50995060208c013591508082111561143c57600080fd5b6114488d838e0161139e565b909950975060408c013591508082111561146157600080fd5b5061146e8c828d0161139e565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b0312156114af57600080fd5b88356001600160401b03808211156114c657600080fd5b6114d28c838d0161139e565b909a50985060208b01359150808211156114eb57600080fd5b6114f78c838d0161139e565b909850965060408b013591508082111561151057600080fd5b5061151d8b828c0161139e565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261154c57600080fd5b813560206001600160401b0382111561156757611567611218565b8160051b61157682820161122e565b928352848101820192828101908785111561159057600080fd5b83870192505b848310156115af57823582529183019190830190611596565b979650505050505050565b600080600080600060a086880312156115d257600080fd5b6115db86611092565b94506115e960208701611092565b935060408601356001600160401b038082111561160557600080fd5b61161189838a0161153b565b9450606088013591508082111561162757600080fd5b61163389838a0161153b565b9350608088013591508082111561164957600080fd5b506116568882890161125e565b9150509295509295909350565b600080600080600060a0868803121561167b57600080fd5b61168486611092565b945061169260208701611092565b9350604086013592506060860135915060808601356001600160401b038111156116bb57600080fd5b6116568882890161125e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a06040820152600061171860a0830186886116c7565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006117556060830184866116c7565b9695505050505050565b918252602082015260400190565b9283526020830191909152604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ab57600080fd5b61076a82611092565b6000808335601e198436030181126117cb57600080fd5b8301803591506001600160401b038211156117e557600080fd5b6020019150368190038213156110ef57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611822576118226117fa565b5060010190565b81835260006020808501808196508560051b810191508460005b878110156118ad5782840389528135601e1988360301811261186457600080fd5b870185810190356001600160401b0381111561187f57600080fd5b80360382131561188e57600080fd5b6118998682846116c7565b9a87019a9550505090840190600101611843565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b8110156118fb576001600160a01b036118e684611092565b168252602092830192909101906001016118cd565b5083810360208501528881526001600160fb1b0389111561191b57600080fd5b8860051b9150818a602083013701828103602090810160408501526119439082018789611829565b60608401959095525050608001529695505050505050565b808201808211156105c6576105c66117fa565b818382376000910190815291905056fec2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e634cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dcafd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78320fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387a26469706673582212205b4b496e7ac29da5ad5320999946925d04b59ac3a36c8fc092c0a1451f92798d64736f6c63430008140033", "deployedBytecode": "0x60806040526004361061014b5760003560e01c806301d5062a1461015757806301ffc9a71461017957806307bd0265146101ae578063134008d3146101de57806313bc9f20146101f1578063150b7a0214610211578063248a9ca3146102555780632ab0f529146102755780632f2ff15d1461029557806331d50750146102b557806336568abe146102d5578063584b153e146102f557806364d62353146103155780637958004c146103355780638065657f146103625780638f2a0bb0146103825780638f61f4f5146103a257806391d14854146103c4578063a217fddf146103e4578063b08e51c0146103f9578063b1c5f4271461041b578063bc197c811461043b578063c4d252f514610467578063d45c443514610487578063d547741f146104a7578063e38335e5146104c7578063f23a6e61146104da578063f27a0c921461050657600080fd5b3661015257005b600080fd5b34801561016357600080fd5b506101776101723660046110f6565b61051b565b005b34801561018557600080fd5b5061019961019436600461116a565b6105bb565b60405190151581526020015b60405180910390f35b3480156101ba57600080fd5b506101d06000805160206119bf83398151915281565b6040519081526020016101a5565b6101776101ec366004611194565b6105cc565b3480156101fd57600080fd5b5061019961020c3660046111ff565b61065d565b34801561021d57600080fd5b5061023c61022c3660046112cd565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101a5565b34801561026157600080fd5b506101d06102703660046111ff565b610683565b34801561028157600080fd5b506101996102903660046111ff565b6106a3565b3480156102a157600080fd5b506101776102b0366004611334565b6106ac565b3480156102c157600080fd5b506101996102d03660046111ff565b6106ce565b3480156102e157600080fd5b506101776102f0366004611334565b6106f3565b34801561030157600080fd5b506101996103103660046111ff565b61072b565b34801561032157600080fd5b506101776103303660046111ff565b610771565b34801561034157600080fd5b506103556103503660046111ff565b6107f2565b6040516101a59190611376565b34801561036e57600080fd5b506101d061037d366004611194565b61083c565b34801561038e57600080fd5b5061017761039d3660046113e2565b61087b565b3480156103ae57600080fd5b506101d060008051602061199f83398151915281565b3480156103d057600080fd5b506101996103df366004611334565b6109d0565b3480156103f057600080fd5b506101d0600081565b34801561040557600080fd5b506101d06000805160206119ff83398151915281565b34801561042757600080fd5b506101d0610436366004611493565b610a06565b34801561044757600080fd5b5061023c6104563660046115ba565b63bc197c8160e01b95945050505050565b34801561047357600080fd5b506101776104823660046111ff565b610a4b565b34801561049357600080fd5b506101d06104a23660046111ff565b610aea565b3480156104b357600080fd5b506101776104c2366004611334565b610b07565b6101776104d5366004611493565b610b23565b3480156104e657600080fd5b5061023c6104f5366004611663565b63f23a6e6160e01b95945050505050565b34801561051257600080fd5b506101d0610c81565b60008051602061199f83398151915261053381610c96565b600061054389898989898961083c565b905061054f8184610ca3565b6000816000805160206119df8339815191528b8b8b8b8b8a604051610579969594939291906116f0565b60405180910390a383156105b05780600080516020611a1f833981519152856040516105a791815260200190565b60405180910390a25b505050505050505050565b60006105c682610d36565b92915050565b6000805160206119bf8339815191526105e68160006109d0565b6105f4576105f48133610d5b565b600061060488888888888861083c565b90506106108185610d98565b61061c88888888610de6565b60008160008051602061197f8339815191528a8a8a8a604051610642949392919061172d565b60405180910390a361065381610e5e565b5050505050505050565b600060025b61066b836107f2565b600381111561067c5761067c611360565b1492915050565b60008061068e610e94565b60009384526020525050604090206001015490565b60006003610662565b6106b582610683565b6106be81610c96565b6106c88383610eb8565b50505050565b6000806106da836107f2565b60038111156106eb576106eb611360565b141592915050565b6001600160a01b038116331461071c5760405163334bd91960e11b815260040160405180910390fd5b6107268282610f59565b505050565b600080610737836107f2565b9050600181600381111561074d5761074d611360565b148061076a5750600281600381111561076857610768611360565b145b9392505050565b600061077b610fd1565b9050333081146107ae5760405163e2850c5960e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d58260010154846040516107e392919061175f565b60405180910390a15060010155565b6000806107fe83610aea565b9050806000036108115750600092915050565b600181036108225750600392915050565b428111156108335750600192915050565b50600292915050565b6000868686868686604051602001610859969594939291906116f0565b6040516020818303038152906040528051906020012090509695505050505050565b60008051602061199f83398151915261089381610c96565b88871415806108a25750888514155b156108c9576040516001624fcdef60e01b031981526107a5908a9087908a9060040161176d565b60006108db8b8b8b8b8b8b8b8b610a06565b90506108e78184610ca3565b60005b8a8110156109935780826000805160206119df8339815191528e8e8581811061091557610915611783565b905060200201602081019061092a9190611799565b8d8d8681811061093c5761093c611783565b905060200201358c8c8781811061095557610955611783565b905060200281019061096791906117b4565b8c8b60405161097b969594939291906116f0565b60405180910390a361098c81611810565b90506108ea565b5083156109c35780600080516020611a1f833981519152856040516109ba91815260200190565b60405180910390a25b5050505050505050505050565b6000806109db610e94565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b60008888888888888888604051602001610a279897969594939291906118ba565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206119ff833981519152610a6381610c96565b6000610a6d610fd1565b9050610a788361072b565b610aad5782610a876002610ff5565b610a916001610ff5565b17604051635ead8eb560e01b81526004016107a592919061175f565b6000838152602082905260408082208290555184917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a2505050565b600080610af5610fd1565b60009384526020525050604090205490565b610b1082610683565b610b1981610c96565b6106c88383610f59565b6000805160206119bf833981519152610b3d8160006109d0565b610b4b57610b4b8133610d5b565b8786141580610b5a5750878414155b15610b81576040516001624fcdef60e01b031981526107a59089908690899060040161176d565b6000610b938a8a8a8a8a8a8a8a610a06565b9050610b9f8185610d98565b60005b89811015610c6b5760008b8b83818110610bbe57610bbe611783565b9050602002016020810190610bd39190611799565b905060008a8a84818110610be957610be9611783565b9050602002013590503660008a8a86818110610c0757610c07611783565b9050602002810190610c1991906117b4565b91509150610c2984848484610de6565b848660008051602061197f83398151915286868686604051610c4e949392919061172d565b60405180910390a35050505080610c6490611810565b9050610ba2565b50610c7581610e5e565b50505050505050505050565b600080610c8c610fd1565b6001015492915050565b610ca08133610d5b565b50565b6000610cad610fd1565b9050610cb8836106ce565b15610ce35782610cc86000610ff5565b604051635ead8eb560e01b81526004016107a592919061175f565b6000610ced610c81565b905080831015610d14578281604051635433660960e01b81526004016107a592919061175f565b610d1e834261195b565b60009485526020929092525060409092209190915550565b60006001600160e01b03198216630271189760e51b14806105c657506105c682611018565b610d6582826109d0565b610d945760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016107a5565b5050565b610da18261065d565b610db05781610cc86002610ff5565b8015801590610dc55750610dc3816106a3565b155b15610d945760405163121534c360e31b8152600481018290526024016107a5565b600080856001600160a01b0316858585604051610e0492919061196e565b60006040518083038185875af1925050503d8060008114610e41576040519150601f19603f3d011682016040523d82523d6000602084013e610e46565b606091505b5091509150610e55828261104d565b50505050505050565b6000610e68610fd1565b9050610e738261065d565b610e825781610cc86002610ff5565b60009182526020526040902060019055565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b600080610ec3610e94565b9050610ecf84846109d0565b610f4f576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610f053390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506105c6565b60009150506105c6565b600080610f64610e94565b9050610f7084846109d0565b15610f4f576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506105c6565b7f9a37c2aa9d186a0969ff8a8267bf4e07e864c2f2768f5040949e28a624fb360090565b600081600381111561100957611009611360565b600160ff919091161b92915050565b60006001600160e01b03198216637965db0b60e01b14806105c657506301ffc9a760e01b6001600160e01b03198316146105c6565b6060826110625761105d82611069565b6105c6565b50806105c6565b8051156110795780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146110a957600080fd5b919050565b60008083601f8401126110c057600080fd5b5081356001600160401b038111156110d757600080fd5b6020830191508360208285010111156110ef57600080fd5b9250929050565b600080600080600080600060c0888a03121561111157600080fd5b61111a88611092565b96506020880135955060408801356001600160401b0381111561113c57600080fd5b6111488a828b016110ae565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561117c57600080fd5b81356001600160e01b03198116811461076a57600080fd5b60008060008060008060a087890312156111ad57600080fd5b6111b687611092565b95506020870135945060408701356001600160401b038111156111d857600080fd5b6111e489828a016110ae565b979a9699509760608101359660809091013595509350505050565b60006020828403121561121157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561125657611256611218565b604052919050565b600082601f83011261126f57600080fd5b81356001600160401b0381111561128857611288611218565b61129b601f8201601f191660200161122e565b8181528460208386010111156112b057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156112e357600080fd5b6112ec85611092565b93506112fa60208601611092565b92506040850135915060608501356001600160401b0381111561131c57600080fd5b6113288782880161125e565b91505092959194509250565b6000806040838503121561134757600080fd5b8235915061135760208401611092565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016004831061139857634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f8401126113b057600080fd5b5081356001600160401b038111156113c757600080fd5b6020830191508360208260051b85010111156110ef57600080fd5b600080600080600080600080600060c08a8c03121561140057600080fd5b89356001600160401b038082111561141757600080fd5b6114238d838e0161139e565b909b50995060208c013591508082111561143c57600080fd5b6114488d838e0161139e565b909950975060408c013591508082111561146157600080fd5b5061146e8c828d0161139e565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b0312156114af57600080fd5b88356001600160401b03808211156114c657600080fd5b6114d28c838d0161139e565b909a50985060208b01359150808211156114eb57600080fd5b6114f78c838d0161139e565b909850965060408b013591508082111561151057600080fd5b5061151d8b828c0161139e565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261154c57600080fd5b813560206001600160401b0382111561156757611567611218565b8160051b61157682820161122e565b928352848101820192828101908785111561159057600080fd5b83870192505b848310156115af57823582529183019190830190611596565b979650505050505050565b600080600080600060a086880312156115d257600080fd5b6115db86611092565b94506115e960208701611092565b935060408601356001600160401b038082111561160557600080fd5b61161189838a0161153b565b9450606088013591508082111561162757600080fd5b61163389838a0161153b565b9350608088013591508082111561164957600080fd5b506116568882890161125e565b9150509295509295909350565b600080600080600060a0868803121561167b57600080fd5b61168486611092565b945061169260208701611092565b9350604086013592506060860135915060808601356001600160401b038111156116bb57600080fd5b6116568882890161125e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a06040820152600061171860a0830186886116c7565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006117556060830184866116c7565b9695505050505050565b918252602082015260400190565b9283526020830191909152604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ab57600080fd5b61076a82611092565b6000808335601e198436030181126117cb57600080fd5b8301803591506001600160401b038211156117e557600080fd5b6020019150368190038213156110ef57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611822576118226117fa565b5060010190565b81835260006020808501808196508560051b810191508460005b878110156118ad5782840389528135601e1988360301811261186457600080fd5b870185810190356001600160401b0381111561187f57600080fd5b80360382131561188e57600080fd5b6118998682846116c7565b9a87019a9550505090840190600101611843565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b8110156118fb576001600160a01b036118e684611092565b168252602092830192909101906001016118cd565b5083810360208501528881526001600160fb1b0389111561191b57600080fd5b8860051b9150818a602083013701828103602090810160408501526119439082018789611829565b60608401959095525050608001529695505050505050565b808201808211156105c6576105c66117fa565b818382376000910190815291905056fec2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e634cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dcafd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78320fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387a26469706673582212205b4b496e7ac29da5ad5320999946925d04b59ac3a36c8fc092c0a1451f92798d64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }