Files
DLE/backend/artifacts/contracts/GovernorContract.sol/GovernorContract.json

1656 lines
101 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "GovernorContract",
"sourceName": "contracts/GovernorContract.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "contract IVotes",
"name": "_token",
"type": "address"
},
{
"internalType": "contract TimelockController",
"name": "_timelock",
"type": "address"
},
{
"internalType": "uint48",
"name": "_votingDelay",
"type": "uint48"
},
{
"internalType": "uint32",
"name": "_votingPeriod",
"type": "uint32"
},
{
"internalType": "uint256",
"name": "_proposalThreshold",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_quorumPercentage",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "CheckpointUnorderedInsertion",
"type": "error"
},
{
"inputs": [],
"name": "FailedCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "GovernorAlreadyCastVote",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "GovernorAlreadyQueuedProposal",
"type": "error"
},
{
"inputs": [],
"name": "GovernorDisabledDeposit",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "proposer",
"type": "address"
},
{
"internalType": "uint256",
"name": "votes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "GovernorInsufficientProposerVotes",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "targets",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "calldatas",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "values",
"type": "uint256"
}
],
"name": "GovernorInvalidProposalLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "quorumNumerator",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "quorumDenominator",
"type": "uint256"
}
],
"name": "GovernorInvalidQuorumFraction",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "GovernorInvalidSignature",
"type": "error"
},
{
"inputs": [],
"name": "GovernorInvalidVoteParams",
"type": "error"
},
{
"inputs": [],
"name": "GovernorInvalidVoteType",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "votingPeriod",
"type": "uint256"
}
],
"name": "GovernorInvalidVotingPeriod",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "GovernorNonexistentProposal",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "GovernorNotQueuedProposal",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyExecutor",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{
"inputs": [],
"name": "GovernorQueueNotImplemented",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "proposer",
"type": "address"
}
],
"name": "GovernorRestrictedProposer",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "enum IGovernor.ProposalState",
"name": "current",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "expectedStates",
"type": "bytes32"
}
],
"name": "GovernorUnexpectedProposalState",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "currentNonce",
"type": "uint256"
}
],
"name": "InvalidAccountNonce",
"type": "error"
},
{
"inputs": [],
"name": "InvalidShortString",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "bits",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "SafeCastOverflowedUintDowncast",
"type": "error"
},
{
"inputs": [
{
"internalType": "string",
"name": "str",
"type": "string"
}
],
"name": "StringTooLong",
"type": "error"
},
{
"anonymous": false,
"inputs": [],
"name": "EIP712DomainChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "ProposalCanceled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "proposer",
"type": "address"
},
{
"indexed": false,
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"indexed": false,
"internalType": "string[]",
"name": "signatures",
"type": "string[]"
},
{
"indexed": false,
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"indexed": false,
"internalType": "uint256",
"name": "voteStart",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "voteEnd",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "description",
"type": "string"
}
],
"name": "ProposalCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "ProposalExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "etaSeconds",
"type": "uint256"
}
],
"name": "ProposalQueued",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldProposalThreshold",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newProposalThreshold",
"type": "uint256"
}
],
"name": "ProposalThresholdSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldQuorumNumerator",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newQuorumNumerator",
"type": "uint256"
}
],
"name": "QuorumNumeratorUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "oldTimelock",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newTimelock",
"type": "address"
}
],
"name": "TimelockChange",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint8",
"name": "support",
"type": "uint8"
},
{
"indexed": false,
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "VoteCast",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint8",
"name": "support",
"type": "uint8"
},
{
"indexed": false,
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes",
"name": "params",
"type": "bytes"
}
],
"name": "VoteCastWithParams",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldVotingDelay",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newVotingDelay",
"type": "uint256"
}
],
"name": "VotingDelaySet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldVotingPeriod",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newVotingPeriod",
"type": "uint256"
}
],
"name": "VotingPeriodSet",
"type": "event"
},
{
"inputs": [],
"name": "BALLOT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "CLOCK_MODE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "COUNTING_MODE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "EXTENDED_BALLOT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "cancel",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "support",
"type": "uint8"
}
],
"name": "castVote",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "support",
"type": "uint8"
},
{
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "castVoteBySig",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "support",
"type": "uint8"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "castVoteWithReason",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "support",
"type": "uint8"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
},
{
"internalType": "bytes",
"name": "params",
"type": "bytes"
}
],
"name": "castVoteWithReasonAndParams",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "support",
"type": "uint8"
},
{
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
},
{
"internalType": "bytes",
"name": "params",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "castVoteWithReasonAndParamsBySig",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "clock",
"outputs": [
{
"internalType": "uint48",
"name": "",
"type": "uint48"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "eip712Domain",
"outputs": [
{
"internalType": "bytes1",
"name": "fields",
"type": "bytes1"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "version",
"type": "string"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifyingContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256[]",
"name": "extensions",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "execute",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "params",
"type": "bytes"
}
],
"name": "getVotesWithParams",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasVoted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "hashProposal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "proposalDeadline",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "proposalEta",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "proposalNeedsQueuing",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "proposalProposer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "proposalSnapshot",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proposalThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "proposalVotes",
"outputs": [
{
"internalType": "uint256",
"name": "againstVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "forVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "abstainVotes",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "string",
"name": "description",
"type": "string"
}
],
"name": "propose",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "queue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "quorum",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "quorumDenominator",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "quorumNumerator",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "quorumNumerator",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "relay",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newProposalThreshold",
"type": "uint256"
}
],
"name": "setProposalThreshold",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint48",
"name": "newVotingDelay",
"type": "uint48"
}
],
"name": "setVotingDelay",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "newVotingPeriod",
"type": "uint32"
}
],
"name": "setVotingPeriod",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "state",
"outputs": [
{
"internalType": "enum IGovernor.ProposalState",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timelock",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "token",
"outputs": [
{
"internalType": "contract IERC5805",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newQuorumNumerator",
"type": "uint256"
}
],
"name": "updateQuorumNumerator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract TimelockController",
"name": "newTimelock",
"type": "address"
}
],
"name": "updateTimelock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votingDelay",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votingPeriod",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x61018060405234620000b7576200002362000019620001c1565b9094919362000295565b604051613bf8908162000cf08239608051816127a0015260a05181612855015260c0518161276a015260e051816127ef01526101005181612815015261012051816113a6015261014051816113d201526101605181818161162801528181611aa901528181611bdd01528181611c7d015281816123cb01528181612498015281816125a1015281816132c001526133950152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117620000ee57604052565b620000bc565b60c081019081106001600160401b03821117620000ee57604052565b601f909101601f19168101906001600160401b03821190821017620000ee57604052565b604051906200014382620000d2565b565b6001600160401b038111620000ee57601f01601f191660200190565b60005b838110620001755750506000910152565b818101518382015260200162000164565b51906001600160a01b0382168203620000b757565b519065ffffffffffff82168203620000b757565b519063ffffffff82168203620000b757565b620049288038038060405192620001d9828562000110565b8339810160e082820312620000b75781516001600160401b038111620000b757820181601f82011215620000b7578051620002148162000145565b9262000224604051948562000110565b81845260208284010111620000b75762000245916020808501910162000161565b620002536020830162000186565b92620002626040840162000186565b9262000271606082016200019b565b926200028060808301620001af565b9260c060a08401519301519196959493929190565b94620003726200038b956200036c62000378949662000366620001439b604051620002c081620000d2565b6001815260208101603160f81b8152620002da83620008b0565b61012052620002e982620009be565b6101405282516020840120918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526200035681620000f4565b5190206080523060c052620004db565b620005ce565b6200061c565b620006a0565b6001600160a01b03166101605262000728565b620006d9565b90600182811c92168015620003c3575b6020831014620003ad57565b634e487b7160e01b600052602260045260246000fd5b91607f1691620003a1565b601f8111620003db575050565b6000906003825260208220906020601f850160051c830194106200041c575b601f0160051c01915b8281106200041057505050565b81815560010162000403565b9092508290620003fa565b601f811162000434575050565b60009081805260208220906020601f850160051c8301941062000474575b601f0160051c01915b8281106200046857505050565b8181556001016200045b565b909250829062000452565b90601f82116200048d575050565b60019160009083825260208220906020601f850160051c83019410620004d0575b601f0160051c01915b828110620004c55750505050565b8181558301620004b7565b9092508290620004ae565b80519091906001600160401b038111620000ee5762000507816200050160035462000391565b620003ce565b602080601f83116001146200054657508192936000926200053a575b50508160011b916000199060031b1c191617600355565b01519050388062000523565b6003600052601f198316949091907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b878210620005b55750508360019596106200059b575b505050811b01600355565b015160001960f88460031b161c1916905538808062000590565b806001859682949686015181550195019301906200057a565b6008547fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93604080519365ffffffffffff9081851686521693846020820152a165ffffffffffff191617600855565b63ffffffff80821691821562000687577f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828604069ffffffff00000000000093600854958251918760301c1682526020820152a160301b169069ffffffff000000000000191617600855565b60405163f1cfbf0560e01b815260006004820152602490fd5b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc0546191a1600755565b600b547f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401604060018060a01b038094169381519084168152846020820152a16001600160a01b03191617600b55565b9060648211620007dc57600a5460009290806200079557506000805160206200490883398151915291925060005b6200077662000764620007fc565b6200076f8462000b21565b9062000bf3565b5050604080516001600160d01b039290921682526020820192909252a1565b600019908082810111620007c857602085600a600080516020620049088339815191529697522001015460301c62000756565b634e487b7160e01b85526011600452602485fd5b60405163243e544560e01b81526004810183905260646024820152604490fd5b610160516040516324776b7d60e21b815290602090829060049082906001600160a01b03165afa600091816200086a575b5062000867575065ffffffffffff8043116200084857431690565b6040516306dfcc6560e41b815260306004820152436024820152604490fd5b90565b90916020823d8211620008a7575b81620008876020938362000110565b81010312620008a457506200089c906200019b565b90386200082d565b80fd5b3d915062000878565b908151602090818110600014620008cf57505090620008679062000ab2565b6001600160401b038111620000ee57600091620008f882620008f2855462000391565b62000427565b80601f83116001146200093757508293948293926200092b575b50508160011b916000199060031b1c191617905560ff90565b01519050388062000912565b60008052601f198316957f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563929185905b888210620009a5575050836001959697106200098b575b505050811b01905560ff90565b015160001960f88460031b161c191690553880806200097e565b8060018596829496860151815501950193019062000967565b908151602090818110600014620009dd57505090620008679062000ab2565b6001600160401b038111620000ee5760019162000a068262000a00855462000391565b6200047f565b80601f831160011462000a4557508192939460009262000a39575b5050600019600383901b1c191690821b17905560ff90565b01519050388062000a21565b6001600052601f198316959091907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b88821062000a9a57505083859697106200098b57505050811b01905560ff90565b80878596829496860151815501950193019062000a79565b601f81511162000ae057602081519101516020821062000ad0571790565b6000198260200360031b1b161790565b6044604051809263305a27a960e01b82526020600483015262000b13815180928160248601526020868601910162000161565b601f01601f19168101030190fd5b6001600160d01b039081811162000b36571690565b604490604051906306dfcc6560e41b825260d060048301526024820152fd5b60001981019190821162000b6557565b634e487b7160e01b600052601160045260246000fd5b600a549068010000000000000000821015620000ee576001820180600a5582101562000bdd57600a60005280516020919091015160301b65ffffffffffff191665ffffffffffff9190911617600080516020620048e883398151915290910155565b634e487b7160e01b600052603260045260246000fd5b600a54919291801562000cc05762000c0f62000c289162000b55565b600a600052600080516020620048e88339815191520190565b9081549165ffffffffffff9081841691831680831162000cae5786920362000c705762000c6992509065ffffffffffff82549181199060301b169116179055565b60301c9190565b505062000ca89062000c9362000c8562000134565b65ffffffffffff9092168252565b6001600160d01b038516602082015262000b7b565b62000c69565b604051632520601d60e01b8152600490fd5b5062000ce99062000cd462000c8562000134565b6001600160d01b038416602082015262000b7b565b6000919056fe60806040526004361015610023575b361561001957600080fd5b610021611cac565b005b60003560e01c806301ffc9a71461032357806302a251a31461031e57806306f3f9e61461031957806306fdde0314610314578063143489d01461030f578063150b7a021461030a578063160cbed7146103055780632656227d146103005780632d63f693146102fb5780632fe3e261146102f65780633932abb1146102f15780633e4f49e6146102ec57806343859632146102e7578063452115d6146102e25780634bf5d7e9146102dd578063544ffc9c146102d857806354fd4d50146102d357806356781388146102ce5780635b8d0e0d146102c95780635f398a14146102c457806360c4247f146102bf57806379051887146102ba5780637b3c71d3146102b55780637d5e81e2146102b05780637ecebe00146102ab57806384b0196e146102a65780638ff262e3146102a157806391ddadf41461029c57806397c3d334146102975780639a802a6d14610292578063a7713a701461028d578063a890c91014610288578063a9a9529414610283578063ab58fb8e1461027e578063b58131b014610279578063bc197c8114610274578063c01f9e371461026f578063c28bc2fa1461026a578063c59057e414610265578063d33219b414610260578063dd4e2ba51461025b578063deaaa7cc14610256578063e540d01d14610251578063eb9019d41461024c578063ece40cc114610247578063f23a6e6114610242578063f8ce560a1461023d5763fc0c546a0361000e57611c67565b611bad565b611b42565b611aed565b611a4d565b6119a4565b611969565b61190b565b6118e2565b6118c6565b61185a565b61183c565b61179c565b61177e565b611747565b61172b565b6116b7565b61168b565b6115ba565b61159e565b611573565b611457565b61138d565b61131c565b611283565b61122e565b6111bb565b61118d565b61111e565b611096565b611019565b610fc7565b610f7a565b610f4a565b610e8c565b610e33565b610e06565b610dae565b610d73565b610d3c565b610bd4565b61098a565b61074e565b6105d1565b6104ec565b6103c8565b6103a1565b346103915760203660031901126103915760043563ffffffff60e01b8116809103610391576020906332a2ad4360e11b8114908115610380575b811561036f575b506040519015158152f35b6301ffc9a760e01b14905038610364565b630271189760e51b8114915061035d565b600080fd5b600091031261039157565b3461039157600036600319011261039157602063ffffffff60085460301c16604051908152f35b34610391576020366003190112610391576004356103e461214f565b60648111610471576001600160d01b0390816103fe612d34565b166104076123b6565b92808311610451577f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b46339979361043d91841690612e00565b5050604080519182526020820192909252a1005b6040516306dfcc6560e41b815260d0600482015260248101849052604490fd5b6044906040519063243e544560e01b8252600482015260646024820152fd5b60005b8381106104a35750506000910152565b8181015183820152602001610493565b906020916104cc81518092818552858086019101610490565b601f01601f1916010190565b9060206104e99281815201906104b3565b90565b34610391576000806003193601126105ce57604051908060035461050f81611cc0565b808552916001918083169081156105a45750600114610549575b61054585610539818703826106b1565b604051918291826104d8565b0390f35b9250600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061058c57505050810160200161053982610545610529565b80546020858701810191909152909301928101610571565b8695506105459693506020925061053994915060ff191682840152151560051b8201019293610529565b80fd5b34610391576020366003190112610391576004356000526004602052602060018060a01b0360406000205416604051908152f35b6001600160a01b0381160361039157565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161063f57604052565b610616565b604081019081106001600160401b0382111761063f57604052565b602081019081106001600160401b0382111761063f57604052565b60c081019081106001600160401b0382111761063f57604052565b61010081019081106001600160401b0382111761063f57604052565b90601f801991011681019081106001600160401b0382111761063f57604052565b604051906106df82610644565b565b6001600160401b03811161063f57601f01601f191660200190565b929192610708826106e1565b9161071660405193846106b1565b829481845281830111610391578281602093846000960137010152565b9080601f83011215610391578160206104e9933591016106fc565b346103915760803660031901126103915761076a600435610605565b610775602435610605565b6064356001600160401b03811161039157610794903690600401610733565b50600b546001600160a01b031630036107b957604051630a85bd0160e11b8152602090f35b604051637485328f60e11b8152600490fd5b6001600160401b03811161063f5760051b60200190565b81601f82011215610391578035916107f9836107cb565b9261080760405194856106b1565b808452602092838086019260051b820101928311610391578301905b828210610831575050505090565b838091833561083f81610605565b815201910190610823565b81601f8201121561039157803591610861836107cb565b9261086f60405194856106b1565b808452602092838086019260051b820101928311610391578301905b828210610899575050505090565b8135815290830190830161088b565b9080601f83011215610391578135906108c0826107cb565b926108ce60405194856106b1565b828452602092838086019160051b8301019280841161039157848301915b8483106108fc5750505050505090565b82356001600160401b03811161039157869161091d84848094890101610733565b8152019201916108ec565b6080600319820112610391576001600160401b03916004358381116103915782610954916004016107e2565b92602435818111610391578361096c9160040161084a565b9260443591821161039157610983916004016108a8565b9060643590565b346103915761099836610928565b6109a6818385879697611d9f565b926109b084612200565b50600b546109ce906001600160a01b03165b6001600160a01b031690565b9260409586519363793d064960e11b855260209081866004818a5afa958615610b8357600096610bb5575b506bffffffffffffffffffffffff193060601b161895818951809263b1c5f42760e01b82528180610a308c8a8a8d60048601613a83565b03915afa918215610b8357600092610b88575b5050610a5987600052600c602052604060002090565b55600b54610a6f906001600160a01b03166109c2565b90813b156103915760008094610a9b878b51998a97889687956308f2a0bb60e41b875260048701613ac9565b03925af1908115610b8357610abf92610aba92610b6a575b50426122b2565b612bb7565b65ffffffffffff811615610b5957917f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892610b4884610b2a610545966001610b10886000526004602052604060002090565b019065ffffffffffff1665ffffffffffff19825416179055565b835185815265ffffffffffff90911660208201529081906040820190565b0390a1519081529081906020820190565b8251634844252360e11b8152600490fd5b80610b77610b7d9261062c565b80610396565b38610ab3565b6123aa565b610ba79250803d10610bae575b610b9f81836106b1565b810190612561565b3880610a43565b503d610b95565b610bcd919650823d8411610bae57610b9f81836106b1565b94386109f9565b610bdd36610928565b610beb818385879597611d9f565b92610bf584612252565b50610c20610c0d856000526004602052604060002090565b805460ff60f01b1916600160f01b179055565b600b546001600160a01b03939084163003610cd2575b94610c4692916105459686613b17565b600b543091166001600160a01b0316141580610cad575b610c9e575b6040518181527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90602090a16040519081529081906020820190565b610ca86000600555565b610c62565b50610ccd610cc96005546001600160801b0381169060801c1490565b1590565b610c5d565b9290939160005b8451811015610d3257610d0e9030610d046109c2610cf7848a611e75565b516001600160a01b031690565b14610d1357611e50565b610cd9565b610d2d610d20828a611e75565b5160208151910120612f3a565b611e50565b5091939092610c36565b34610391576020366003190112610391576004356000526004602052602065ffffffffffff60406000205460a01c16604051908152f35b346103915760003660031901126103915760206040517f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a8118152f35b3461039157600036600319011261039157602065ffffffffffff60085416604051908152f35b634e487b7160e01b600052602160045260246000fd5b60081115610df457565b610dd4565b906008821015610df45752565b34610391576020366003190112610391576020610e24600435613044565b610e316040518092610df9565bf35b3461039157604036600319011261039157602060ff610e80602435610e5781610605565b6004356000526009845260036040600020019060018060a01b0316600052602052604060002090565b54166040519015158152f35b3461039157610e9a36610928565b90610ea9828285879697611d9f565b610eb281613044565b6008811015610df45760018060ff83161b1615610f1d57506000908152600460205260409020546001600160a01b03163303610f055761054593610ef593613942565b6040519081529081906020820190565b60405163233d98e360e01b8152336004820152602490fd5b90610f41606492604051926331b75e4d60e01b845260048401526024830190610df9565b60016044820152fd5b3461039157600036600319011261039157610545610f66612482565b6040519182916020835260208301906104b3565b346103915760203660031901126103915760043560005260096020526040600020805461054560026001840154930154604051938493846040919493926060820195825260208201520152565b3461039157600036600319011261039157610545604051610fe781610644565b60018152603160f81b60208201526040519182916020835260208301906104b3565b6024359060ff8216820361039157565b34610391576040366003190112610391576020611061611037611009565b6040516110438161065f565b60008152604051916110548361065f565b6000835233600435612000565b604051908152f35b9181601f84011215610391578235916001600160401b038311610391576020838186019501011161039157565b346103915760c0366003190112610391576110af611009565b604435906110bc82610605565b6001600160401b0390606435828111610391576110dd903690600401611069565b608435848111610391576110f5903690600401610733565b9160a4359485116103915761054595611115610ef5963690600401610733565b94600435611e8e565b3461039157608036600319011261039157611137611009565b6001600160401b039060443582811161039157611158903690600401611069565b9091606435938411610391576111836110619361117b6020963690600401610733565b9336916106fc565b9033600435612000565b346103915760203660031901126103915760206110616004356125fc565b65ffffffffffff81160361039157565b34610391576020366003190112610391576004356111d8816111ab565b6111e061214f565b6008547fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93604080519365ffffffffffff9081851686521693846020820152a165ffffffffffff191617600855005b3461039157606036600319011261039157611247611009565b6044356001600160401b0381116103915760209161127661126f611061933690600401611069565b36916106fc565b604051916110548361065f565b34610391576080366003190112610391576001600160401b03600435818111610391576112b49036906004016107e2565b90602435818111610391576112cd90369060040161084a565b91604435828111610391576112e69036906004016108a8565b60643592831161039157366023840112156103915761054593611316610ef59436906024816004013591016106fc565b9261331c565b346103915760203660031901126103915760043561133981610605565b60018060a01b031660005260026020526020604060002054604051908152f35b90815180825260208080930193019160005b828110611379575050505090565b83518552938101939281019260010161136b565b34610391576000366003190112610391576114286113ca7f000000000000000000000000000000000000000000000000000000000000000061287b565b6105456113f67f0000000000000000000000000000000000000000000000000000000000000000612972565b611436604051916114068361065f565b60008352604051958695600f60f81b875260e0602088015260e08701906104b3565b9085820360408701526104b3565b90466060850152306080850152600060a085015283820360c0850152611359565b3461039157608036600319011261039157600435611473611009565b906044359161148183610605565b6064356001600160401b03811161039157610cc96114a6611533923690600401610733565b6001600160a01b038616600090815260026020526040902080546001810190915561152d9060405160208101917ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d7835288604083015260ff8816606083015260018060a01b038a16608083015260a082015260a081526115258161067a565b519020612741565b86612a34565b61154e5790610ef59161054593611548611cfa565b92611f84565b6040516394ab6c0760e01b81526001600160a01b0384166004820152602490fd5b0390fd5b3461039157600036600319011261039157602061158e6123b6565b65ffffffffffff60405191168152f35b3461039157600036600319011261039157602060405160648152f35b34610391576060366003190112610391576004356115d781610605565b6044356001600160401b038111610391576044916115fb6020923690600401610733565b50604051630748d63560e31b81526001600160a01b039182166004820152602480359082015292839182907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610b83576105459160009161166d575b506040519081529081906020820190565b611685915060203d8111610bae57610b9f81836106b1565b3861165c565b346103915760003660031901126103915760206001600160d01b036116ae612d34565b16604051908152f35b34610391576020366003190112610391576004356116d481610605565b6116dc61214f565b600b547f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401604060018060a01b038094169381519084168152846020820152a16001600160a01b03191617600b55005b3461039157602036600319011261039157602060405160018152f35b34610391576020366003190112610391576004356000526004602052602065ffffffffffff60016040600020015416604051908152f35b34610391576000366003190112610391576020600754604051908152f35b346103915760a0366003190112610391576117b8600435610605565b6117c3602435610605565b6001600160401b03604435818111610391576117e390369060040161084a565b50606435818111610391576117fc90369060040161084a565b5060843590811161039157611815903690600401610733565b506105456118216121c3565b6040516001600160e01b031990911681529081906020820190565b34610391576020366003190112610391576020611061600435611e19565b60603660031901126103915760043561187281610605565b604435906001600160401b0382116103915760008091611899610021943690600401611069565b906118a261214f565b81604051928392833781018481520391602435905af16118c061211f565b90612718565b346103915760206110616118d936610928565b92919091611d9f565b3461039157600036600319011261039157600b546040516001600160a01b039091168152602090f35b346103915760003660031901126103915761054560405161192b81610644565b602081527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e60208201526040519182916020835260208301906104b3565b346103915760003660031901126103915760206040517ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d78152f35b346103915760203660031901126103915760043563ffffffff80821691828103610391576119d061214f565b8215611a34577f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828604069ffffffff00000000000093600854958251918760301c1682526020820152a160301b169069ffffffff000000000000191617600855600080f35b60405163f1cfbf0560e01b815260006004820152602490fd5b346103915760403660031901126103915760446020600435611a6e81610605565b6000604051611a7c8161065f565b52604051630748d63560e31b81526001600160a01b039182166004820152602480359082015292839182907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610b83576105459160009161166d57506040519081529081906020820190565b3461039157602036600319011261039157600435611b0961214f565b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc0546191a1600755005b346103915760a036600319011261039157611b5e600435610605565b611b69602435610605565b6084356001600160401b03811161039157611b88903690600401610733565b50600b546001600160a01b031630036107b95760405163f23a6e6160e01b8152602090f35b3461039157602036600319011261039157604051632394e7a360e21b8152600480359082018190526020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610b835761054592606492611c3192600092611c43575b50611c2b906125fc565b90613019565b04604051918291829190602083019252565b611c2b919250611c609060203d8111610bae57610b9f81836106b1565b9190611c21565b34610391576000366003190112610391576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600b546001600160a01b031630036107b957565b90600182811c92168015611cf0575b6020831014611cda57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ccf565b60405190611d078261065f565b60008252565b90815180825260208080930193019160005b828110611d2d575050505090565b83516001600160a01b031685529381019392810192600101611d1f565b90815180825260208092019182818360051b85019501936000915b848310611d755750505050505090565b9091929394958480611d8f83856001950387528a516104b3565b9801930193019194939290611d65565b9290611deb92611dfd92604051948592611ddb611dc8602086019960808b5260a0870190611d0d565b601f199687878303016040880152611359565b9085858303016060860152611d4a565b906080830152039081018352826106b1565b51902090565b634e487b7160e01b600052601160045260246000fd5b600052600460205260406000205465ffffffffffff908163ffffffff8260d01c169160a01c1601818111611e4b571690565b611e03565b6000198114611e4b5760010190565b634e487b7160e01b600052603260045260246000fd5b8051821015611e895760209160051b010190565b611e5f565b939092919695610cc9611f4891611f428a611ec48160018060a01b03166000526002602052604060002080549060018201905590565b611ecf36888a6106fc565b602081519101208b5160208d0120906040519260208401947f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a81186528d604086015260ff8d16606086015260018060a01b0316608085015260a084015260c083015260e082015260e0815261152581610695565b8a612a34565b611f63576104e9959691611f5d9136916106fc565b92612000565b6040516394ab6c0760e01b81526001600160a01b0388166004820152602490fd5b916104e9939160405193611f978561065f565b60008552612000565b93909260ff611fcc936104e997958752166020860152604085015260a0606085015260a08401906104b3565b9160808184039101526104b3565b909260ff6080936104e996958452166020830152604082015281606082015201906104b3565b92919061200c84613044565b6008811015610df4576002600160ff83161b16156120f1575083600052600460205261206861206061205a61204f604060002065ffffffffffff905460a01c1690565b65ffffffffffff1690565b83612570565b8383876122bf565b948051156000146120b557506120af7fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4938660405194859460018060a01b03169785611fda565b0390a290565b6120af907fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb8712948760405195869560018060a01b03169886611fa0565b6040516331b75e4d60e01b815260048101869052606491612116906024830190610df9565b60026044820152fd5b3d1561214a573d90612130826106e1565b9161213e60405193846106b1565b82523d6000602084013e565b606090565b600b546001600160a01b03163381036121ab57300361216a57565b612173366106e1565b61218060405191826106b1565b368152602081019036600083376000602036830101525190205b806121a3612f95565b0361219a5750565b6040516347096e4760e01b8152336004820152602490fd5b600b546001600160a01b031630036107b95763bc197c8160e01b90565b6040906121fc6000939594606083019683526020830190610df9565b0152565b61220981613044565b906008821015610df4576010600160ff84161b1615612226575090565b612249606492604051926331b75e4d60e01b845260048401526024830190610df9565b60106044820152fd5b61225b81613044565b906008821015610df4576030600160ff84161b1615612278575090565b61229b606492604051926331b75e4d60e01b845260048401526024830190610df9565b60306044820152fd5b9060018201809211611e4b57565b91908201809211611e4b57565b6122d6909291926000526009602052604060002090565b91600383016123016122fa83839060018060a01b0316600052602052604060002090565b5460ff1690565b6123895761232760ff9392612334929060018060a01b0316600052602052604060002090565b805460ff19166001179055565b168061234b57506123468282546122b2565b905590565b6001810361236257506001016123468282546122b2565b600203612377576002016123468282546122b2565b6040516303599be160e11b8152600490fd5b6040516371c6af4960e01b81526001600160a01b0383166004820152602490fd5b6040513d6000823e3d90fd5b6040516324776b7d60e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa6000918161240d575b506104e957506104e943612bb7565b90916020823d8211612441575b81612427602093836106b1565b810103126105ce57505161243a816111ab565b90386123fe565b3d915061241a565b6040519061245682610644565b601d82527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020830152565b604051634bf5d7e960e01b8152600080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa909182826124da575b50506104e957506104e9612449565b909192503d8082843e6124ed81846106b1565b820191602081840312612559578051906001600160401b03821161255d570182601f8201121561255957805191612523836106e1565b9361253160405195866106b1565b838552602084840101116105ce5750906125519160208085019101610490565b9038806124cb565b5080fd5b8280fd5b90816020910312610391575190565b604051630748d63560e31b81526001600160a01b0391821660048201526024810192909252602090829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610b83576000916125d5575090565b6104e9915060203d8111610bae57610b9f81836106b1565b600019810191908211611e4b57565b600a546000198101818111611e4b57811115611e8957600a6000527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a78101549165ffffffffffff9281848216111561270e575061265890612bb7565b60009082600581116126b8575b506126709350612ed1565b80612685575060005b6001600160d01b031690565b6126ac6126946126b3926125ed565b600a600052600080516020613ba38339815191520190565b5460301c90565b612679565b90926126c382612c09565b8203918211611e4b5761267094600a84528083600080516020613ba3833981519152015416908516106000146126fc5750915b38612665565b929150612708906122a4565b906126f6565b9250505060301c90565b9091906106df575080511561272f57805190602001fd5b60405163d6bda27560e01b8152600490fd5b60429061274c612767565b906040519161190160f01b8352600283015260228201522090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612852575b156127c2577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611dfd8161067a565b507f00000000000000000000000000000000000000000000000000000000000000004614612799565b60ff81146128b95760ff811690601f82116128a7576040519161289d83610644565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b506040516000818154916128cc83611cc0565b8083529260019081811690811561295057506001146128f3575b506104e9925003826106b1565b600080805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061293557506104e99350508101602001386128e6565b8193509081602092548385890101520191019091849261291c565b9050602092506104e994915060ff191682840152151560051b820101386128e6565b60ff81146129945760ff811690601f82116128a7576040519161289d83610644565b506040516000816001918254926129aa84611cc0565b8084529381811690811561295057506001146129cd57506104e9925003826106b1565b600081815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b848310612a0f57506104e99350508101602001386128e6565b819350908160209254838589010152019101909184926129f6565b60041115610df457565b9091813b612a6f57612a469192612af7565b50612a5081612a2a565b159182612a5c57505090565b6001600160a01b03918216911614919050565b6000918291604051612ab381612aa56020820194630b135d3f60e11b998a875260248401526040604484015260648301906104b3565b03601f1981018352826106b1565b51915afa90612ac061211f565b82612ae9575b82612ad057505090565b612ae591925060208082518301019101612561565b1490565b915060208251101591612ac6565b8151919060418303612b2857612b2192506020820151906060604084015193015160001a90612b33565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bab57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15610b835780516001600160a01b03811615612ba257918190565b50809160019190565b50505060009160039190565b65ffffffffffff90818111612bca571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8115612bf3570490565b634e487b7160e01b600052601260045260246000fd5b60018111156104e957600181600160801b811015612d22575b612cca612cc0612cb6612cac612ca2612c98612cd697600488600160401b612cd19a1015612d15575b640100000000811015612d08575b62010000811015612cfb575b610100811015612cef575b6010811015612ce3575b1015612cdb575b60030260011c612c91818b612be9565b0160011c90565b612c91818a612be9565b612c918189612be9565b612c918188612be9565b612c918187612be9565b612c918186612be9565b8093612be9565b821190565b900390565b60011b612c81565b811c9160021b91612c7a565b60081c91811b91612c70565b60101c9160081b91612c65565b60201c9160101b91612c59565b60401c9160201b91612c4b565b50600160401b9050608082901c612c22565b600a5460009080612d46575050600090565b80600019810111611e4b57600a7fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a79252015460301c90565b600a5490600160401b82101561063f576001820180600a55821015611e89576106df91600a600052600080516020613ba38339815191520190612dde65ffffffffffff825116839065ffffffffffff1665ffffffffffff19825416179055565b60200151815465ffffffffffff1660309190911b65ffffffffffff1916179055565b600a549192918015612ea757612694612e18916125ed565b9081549165ffffffffffff90818416918316808311612e9557869203612e5d57612e5692509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050612e9090612e7c612e6e6106d2565b65ffffffffffff9092168252565b6001600160d01b0385166020820152612d7e565b612e56565b604051632520601d60e01b8152600490fd5b50612ecb90612eb7612e6e6106d2565b6001600160d01b0384166020820152612d7e565b60009190565b905b828110612edf57505090565b90918082169080831860011c8201809211611e4b57600a60005265ffffffffffff8083600080516020613ba383398151915201541690851610600014612f285750915b90612ed3565b929150612f34906122a4565b90612f22565b6005548060801c9160018301926001600160801b0380931683851614612f82576000526006602052604060002055600554916001600160801b03199060801b16911617600555565b634e487b7160005260416020526024601cfd5b600554906001600160801b038083169260801c8314612fda57826000526006602052600160406000209360008554955501166001600160801b03196005541617600555565b634e487b7160005260316020526024601cfd5b908160011b9180830460021490151715611e4b57565b908160041b9180830460101490151715611e4b57565b81810292918115918404141715611e4b57565b90816020910312610391575180151581036103915790565b61304d81613156565b9061305782610dea565b60058203613152576130749150600052600c602052604060002090565b54600b5461308a906001600160a01b03166109c2565b604051632c258a9f60e11b81526004810183905260209291908381602481855afa908115610b8357600091613135575b50156130c857505050600590565b604051632ab0f52960e01b815260048101929092528290829060249082905afa918215610b8357600092613108575b50501561310357600790565b600290565b6131279250803d1061312e575b61311f81836106b1565b81019061302c565b38806130f7565b503d613115565b61314c9150843d861161312e5761311f81836106b1565b386130ba565b5090565b61316a816000526004602052604060002090565b5460ff8160f01c166132735760f81c61326d576131a661204f613197836000526004602052604060002090565b5460a01c65ffffffffffff1690565b8015613254576131b761204f6123b6565b8091101561324d576131c882611e19565b106131d35750600190565b6131df610cc98261327a565b8015613228575b156131f15750600390565b61204f600161320d61321a936000526004602052604060002090565b015465ffffffffffff1690565b61322357600490565b600590565b50613248610cc98260005260096020526040600020600181015490541090565b6131e6565b5050600090565b604051636ad0607560e01b815260048101839052602490fd5b50600290565b5050600790565b60005260096020526040600020600460205265ffffffffffff60406000205460a01c1660405190632394e7a360e21b825280600483015260208260248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa918215610b83576133179260649261330592600092611c435750611c2b906125fc565b049160026001820154910154906122b2565b101590565b919392909361332b8233613708565b15613421576007549485613347575b6104e99495503393613551565b65ffffffffffff6000198161335a6123b6565b160190808211611e4b5760006040516133728161065f565b52604051630748d63560e31b8152336004820152911660248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b8357600091613403575b508681106133dc575061333a565b604051636121770b60e11b8152336004820152602481019190915260448101879052606490fd5b61341b915060203d8111610bae57610b9f81836106b1565b386133ce565b60405163d9b3955760e01b8152336004820152602490fd5b90613443826107cb565b61345060405191826106b1565b8281528092613461601f19916107cb565b019060005b82811061347257505050565b806060602080938501015201613466565b95926134b6906134c4939b9a9899969592885260209b60018060a01b03168c8901526101208060408a0152880190611d0d565b908682036060880152611359565b9784890360808601528251808a52818a019180808360051b8d01019501926000905b8382106135235750505050506104e99697509061350a9184820360a0860152611d4a565b9360c083015260e08201526101008184039101526104b3565b909192939583806135428f93600194601f199082030186528a516104b3565b980192019201909392916134e6565b91949390929461356986516020880120828686611d9f565b9583518551908181148015906136fd575b80156136f5575b6136cc57505065ffffffffffff94856135a76131978a6000526004602052604060002090565b166136a5577f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0956136a09363ffffffff6135f06135e26123b6565b6008549480861691166122b2565b9260301c1661367e61360c8c6000526004602052604060002090565b80546001600160a01b0319166001600160a01b038a1617815561365561363186612bb7565b825465ffffffffffff60a01b191660a09190911b65ffffffffffff60a01b16178255565b61365e83613912565b815463ffffffff60d01b191660d09190911b63ffffffff60d01b16179055565b61369261368b8951613439565b91846122b2565b936040519889988d8a613483565b0390a1565b876136af81613044565b6040516331b75e4d60e01b815291829161156f91600484016121e0565b8351604051630447b05d60e41b8152600481019290925260248201526044810191909152606490fd5b508015613581565b50835181141561357a565b908051603481106137555760131981830101516001600160b01b03191669dc8f8d908f908c9a8dc360b01b01613755576137479160291982019061375d565b9015918215612a5c57505090565b505050600190565b91908251821180156137e6575b6137bd57613777816122a4565b8211806137c8575b61378a901515612fed565b60280180602811611e4b57818303838111611e4b57036137bd576137ad926137ef565b90916001600160a01b0390911690565b505050600090600090565b50828101602001516001600160f01b03191661060f60f31b1461377f565b5081811161376a565b9290926137fb846122a4565b831180613882575b61380e901515612fed565b936000948101809111611e4b579192905b81831061382f5750505060019190565b9092919360ff61385061384b6020888601015160ff60f81b1690565b6138a0565b1690600f8211613876579061386761386e92613003565b0194611e50565b91929061381f565b50600094508493505050565b50808401602001516001600160f01b03191661060f60f31b14613803565b60f81c602f811180613908575b156138bc57602f190160ff1690565b60608111806138fe575b156138d5576056190160ff1690565b60408111806138f4575b156138ee576036190160ff1690565b5060ff90565b50604781106138df565b50606781106138c6565b50603a81106138ad565b63ffffffff90818111613923571690565b604490604051906306dfcc6560e41b8252602060048301526024820152fd5b9061394e939291611d9f565b61395781613044565b6008811015610df457603b600160ff83161b1615613a56575061399c613987826000526004602052604060002090565b80546001600160f81b0316600160f81b179055565b6040518181527f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90602090a16139dc81600052600c602052604060002090565b54806139e6575090565b600b546139fb906001600160a01b03166109c2565b803b156103915760405163c4d252f560e01b815260048101929092526000908290602490829084905af18015610b8357613a43575b506000818152600c602052604081205590565b80610b77613a509261062c565b38613a30565b90613a7a606492604051926331b75e4d60e01b845260048401526024830190610df9565b603b6044820152fd5b949392613aaf608093613aa1613abd9460a08a5260a08a0190611d0d565b9088820360208a0152611359565b908682036040880152611d4a565b93600060608201520152565b9192613af860a094613aea613b06949998979960c0875260c0870190611d0d565b908582036020870152611359565b908382036040850152611d4a565b946000606083015260808201520152565b9290939160018060a01b03600b541690813b1561039157600093613b666040519788958694859463e38335e560e01b86526bffffffffffffffffffffffff193060601b16189260048601613a83565b039134905af1908115610b8357600092613b9092613b93575b50600052600c602052604060002090565b55565b613b9c9061062c565b38613b7f56fec65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8a26469706673582212209cd843d7b6bf58a291c7a54344516120370d1b69b661023415f02507a921372f64736f6c63430008140033c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997",
"deployedBytecode": "0x60806040526004361015610023575b361561001957600080fd5b610021611cac565b005b60003560e01c806301ffc9a71461032357806302a251a31461031e57806306f3f9e61461031957806306fdde0314610314578063143489d01461030f578063150b7a021461030a578063160cbed7146103055780632656227d146103005780632d63f693146102fb5780632fe3e261146102f65780633932abb1146102f15780633e4f49e6146102ec57806343859632146102e7578063452115d6146102e25780634bf5d7e9146102dd578063544ffc9c146102d857806354fd4d50146102d357806356781388146102ce5780635b8d0e0d146102c95780635f398a14146102c457806360c4247f146102bf57806379051887146102ba5780637b3c71d3146102b55780637d5e81e2146102b05780637ecebe00146102ab57806384b0196e146102a65780638ff262e3146102a157806391ddadf41461029c57806397c3d334146102975780639a802a6d14610292578063a7713a701461028d578063a890c91014610288578063a9a9529414610283578063ab58fb8e1461027e578063b58131b014610279578063bc197c8114610274578063c01f9e371461026f578063c28bc2fa1461026a578063c59057e414610265578063d33219b414610260578063dd4e2ba51461025b578063deaaa7cc14610256578063e540d01d14610251578063eb9019d41461024c578063ece40cc114610247578063f23a6e6114610242578063f8ce560a1461023d5763fc0c546a0361000e57611c67565b611bad565b611b42565b611aed565b611a4d565b6119a4565b611969565b61190b565b6118e2565b6118c6565b61185a565b61183c565b61179c565b61177e565b611747565b61172b565b6116b7565b61168b565b6115ba565b61159e565b611573565b611457565b61138d565b61131c565b611283565b61122e565b6111bb565b61118d565b61111e565b611096565b611019565b610fc7565b610f7a565b610f4a565b610e8c565b610e33565b610e06565b610dae565b610d73565b610d3c565b610bd4565b61098a565b61074e565b6105d1565b6104ec565b6103c8565b6103a1565b346103915760203660031901126103915760043563ffffffff60e01b8116809103610391576020906332a2ad4360e11b8114908115610380575b811561036f575b506040519015158152f35b6301ffc9a760e01b14905038610364565b630271189760e51b8114915061035d565b600080fd5b600091031261039157565b3461039157600036600319011261039157602063ffffffff60085460301c16604051908152f35b34610391576020366003190112610391576004356103e461214f565b60648111610471576001600160d01b0390816103fe612d34565b166104076123b6565b92808311610451577f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b46339979361043d91841690612e00565b5050604080519182526020820192909252a1005b6040516306dfcc6560e41b815260d0600482015260248101849052604490fd5b6044906040519063243e544560e01b8252600482015260646024820152fd5b60005b8381106104a35750506000910152565b8181015183820152602001610493565b906020916104cc81518092818552858086019101610490565b601f01601f1916010190565b9060206104e99281815201906104b3565b90565b34610391576000806003193601126105ce57604051908060035461050f81611cc0565b808552916001918083169081156105a45750600114610549575b61054585610539818703826106b1565b604051918291826104d8565b0390f35b9250600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061058c57505050810160200161053982610545610529565b80546020858701810191909152909301928101610571565b8695506105459693506020925061053994915060ff191682840152151560051b8201019293610529565b80fd5b34610391576020366003190112610391576004356000526004602052602060018060a01b0360406000205416604051908152f35b6001600160a01b0381160361039157565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161063f57604052565b610616565b604081019081106001600160401b0382111761063f57604052565b602081019081106001600160401b0382111761063f57604052565b60c081019081106001600160401b0382111761063f57604052565b61010081019081106001600160401b0382111761063f57604052565b90601f801991011681019081106001600160401b0382111761063f57604052565b604051906106df82610644565b565b6001600160401b03811161063f57601f01601f191660200190565b929192610708826106e1565b9161071660405193846106b1565b829481845281830111610391578281602093846000960137010152565b9080601f83011215610391578160206104e9933591016106fc565b346103915760803660031901126103915761076a600435610605565b610775602435610605565b6064356001600160401b03811161039157610794903690600401610733565b50600b546001600160a01b031630036107b957604051630a85bd0160e11b8152602090f35b604051637485328f60e11b8152600490fd5b6001600160401b03811161063f5760051b60200190565b81601f82011215610391578035916107f9836107cb565b9261080760405194856106b1565b808452602092838086019260051b820101928311610391578301905b828210610831575050505090565b838091833561083f81610605565b815201910190610823565b81601f8201121561039157803591610861836107cb565b9261086f60405194856106b1565b808452602092838086019260051b820101928311610391578301905b828210610899575050505090565b8135815290830190830161088b565b9080601f83011215610391578135906108c0826107cb565b926108ce60405194856106b1565b828452602092838086019160051b8301019280841161039157848301915b8483106108fc5750505050505090565b82356001600160401b03811161039157869161091d84848094890101610733565b8152019201916108ec565b6080600319820112610391576001600160401b03916004358381116103915782610954916004016107e2565b92602435818111610391578361096c9160040161084a565b9260443591821161039157610983916004016108a8565b9060643590565b346103915761099836610928565b6109a6818385879697611d9f565b926109b084612200565b50600b546109ce906001600160a01b03165b6001600160a01b031690565b9260409586519363793d064960e11b855260209081866004818a5afa958615610b8357600096610bb5575b506bffffffffffffffffffffffff193060601b161895818951809263b1c5f42760e01b82528180610a308c8a8a8d60048601613a83565b03915afa918215610b8357600092610b88575b5050610a5987600052600c602052604060002090565b55600b54610a6f906001600160a01b03166109c2565b90813b156103915760008094610a9b878b51998a97889687956308f2a0bb60e41b875260048701613ac9565b03925af1908115610b8357610abf92610aba92610b6a575b50426122b2565b612bb7565b65ffffffffffff811615610b5957917f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892610b4884610b2a610545966001610b10886000526004602052604060002090565b019065ffffffffffff1665ffffffffffff19825416179055565b835185815265ffffffffffff90911660208201529081906040820190565b0390a1519081529081906020820190565b8251634844252360e11b8152600490fd5b80610b77610b7d9261062c565b80610396565b38610ab3565b6123aa565b610ba79250803d10610bae575b610b9f81836106b1565b810190612561565b3880610a43565b503d610b95565b610bcd919650823d8411610bae57610b9f81836106b1565b94386109f9565b610bdd36610928565b610beb818385879597611d9f565b92610bf584612252565b50610c20610c0d856000526004602052604060002090565b805460ff60f01b1916600160f01b179055565b600b546001600160a01b03939084163003610cd2575b94610c4692916105459686613b17565b600b543091166001600160a01b0316141580610cad575b610c9e575b6040518181527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90602090a16040519081529081906020820190565b610ca86000600555565b610c62565b50610ccd610cc96005546001600160801b0381169060801c1490565b1590565b610c5d565b9290939160005b8451811015610d3257610d0e9030610d046109c2610cf7848a611e75565b516001600160a01b031690565b14610d1357611e50565b610cd9565b610d2d610d20828a611e75565b5160208151910120612f3a565b611e50565b5091939092610c36565b34610391576020366003190112610391576004356000526004602052602065ffffffffffff60406000205460a01c16604051908152f35b346103915760003660031901126103915760206040517f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a8118152f35b3461039157600036600319011261039157602065ffffffffffff60085416604051908152f35b634e487b7160e01b600052602160045260246000fd5b60081115610df457565b610dd4565b906008821015610df45752565b34610391576020366003190112610391576020610e24600435613044565b610e316040518092610df9565bf35b3461039157604036600319011261039157602060ff610e80602435610e5781610605565b6004356000526009845260036040600020019060018060a01b0316600052602052604060002090565b54166040519015158152f35b3461039157610e9a36610928565b90610ea9828285879697611d9f565b610eb281613044565b6008811015610df45760018060ff83161b1615610f1d57506000908152600460205260409020546001600160a01b03163303610f055761054593610ef593613942565b6040519081529081906020820190565b60405163233d98e360e01b8152336004820152602490fd5b90610f41606492604051926331b75e4d60e01b845260048401526024830190610df9565b60016044820152fd5b3461039157600036600319011261039157610545610f66612482565b6040519182916020835260208301906104b3565b346103915760203660031901126103915760043560005260096020526040600020805461054560026001840154930154604051938493846040919493926060820195825260208201520152565b3461039157600036600319011261039157610545604051610fe781610644565b60018152603160f81b60208201526040519182916020835260208301906104b3565b6024359060ff8216820361039157565b34610391576040366003190112610391576020611061611037611009565b6040516110438161065f565b60008152604051916110548361065f565b6000835233600435612000565b604051908152f35b9181601f84011215610391578235916001600160401b038311610391576020838186019501011161039157565b346103915760c0366003190112610391576110af611009565b604435906110bc82610605565b6001600160401b0390606435828111610391576110dd903690600401611069565b608435848111610391576110f5903690600401610733565b9160a4359485116103915761054595611115610ef5963690600401610733565b94600435611e8e565b3461039157608036600319011261039157611137611009565b6001600160401b039060443582811161039157611158903690600401611069565b9091606435938411610391576111836110619361117b6020963690600401610733565b9336916106fc565b9033600435612000565b346103915760203660031901126103915760206110616004356125fc565b65ffffffffffff81160361039157565b34610391576020366003190112610391576004356111d8816111ab565b6111e061214f565b6008547fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93604080519365ffffffffffff9081851686521693846020820152a165ffffffffffff191617600855005b3461039157606036600319011261039157611247611009565b6044356001600160401b0381116103915760209161127661126f611061933690600401611069565b36916106fc565b604051916110548361065f565b34610391576080366003190112610391576001600160401b03600435818111610391576112b49036906004016107e2565b90602435818111610391576112cd90369060040161084a565b91604435828111610391576112e69036906004016108a8565b60643592831161039157366023840112156103915761054593611316610ef59436906024816004013591016106fc565b9261331c565b346103915760203660031901126103915760043561133981610605565b60018060a01b031660005260026020526020604060002054604051908152f35b90815180825260208080930193019160005b828110611379575050505090565b83518552938101939281019260010161136b565b34610391576000366003190112610391576114286113ca7f000000000000000000000000000000000000000000000000000000000000000061287b565b6105456113f67f0000000000000000000000000000000000000000000000000000000000000000612972565b611436604051916114068361065f565b60008352604051958695600f60f81b875260e0602088015260e08701906104b3565b9085820360408701526104b3565b90466060850152306080850152600060a085015283820360c0850152611359565b3461039157608036600319011261039157600435611473611009565b906044359161148183610605565b6064356001600160401b03811161039157610cc96114a6611533923690600401610733565b6001600160a01b038616600090815260026020526040902080546001810190915561152d9060405160208101917ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d7835288604083015260ff8816606083015260018060a01b038a16608083015260a082015260a081526115258161067a565b519020612741565b86612a34565b61154e5790610ef59161054593611548611cfa565b92611f84565b6040516394ab6c0760e01b81526001600160a01b0384166004820152602490fd5b0390fd5b3461039157600036600319011261039157602061158e6123b6565b65ffffffffffff60405191168152f35b3461039157600036600319011261039157602060405160648152f35b34610391576060366003190112610391576004356115d781610605565b6044356001600160401b038111610391576044916115fb6020923690600401610733565b50604051630748d63560e31b81526001600160a01b039182166004820152602480359082015292839182907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610b83576105459160009161166d575b506040519081529081906020820190565b611685915060203d8111610bae57610b9f81836106b1565b3861165c565b346103915760003660031901126103915760206001600160d01b036116ae612d34565b16604051908152f35b34610391576020366003190112610391576004356116d481610605565b6116dc61214f565b600b547f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401604060018060a01b038094169381519084168152846020820152a16001600160a01b03191617600b55005b3461039157602036600319011261039157602060405160018152f35b34610391576020366003190112610391576004356000526004602052602065ffffffffffff60016040600020015416604051908152f35b34610391576000366003190112610391576020600754604051908152f35b346103915760a0366003190112610391576117b8600435610605565b6117c3602435610605565b6001600160401b03604435818111610391576117e390369060040161084a565b50606435818111610391576117fc90369060040161084a565b5060843590811161039157611815903690600401610733565b506105456118216121c3565b6040516001600160e01b031990911681529081906020820190565b34610391576020366003190112610391576020611061600435611e19565b60603660031901126103915760043561187281610605565b604435906001600160401b0382116103915760008091611899610021943690600401611069565b906118a261214f565b81604051928392833781018481520391602435905af16118c061211f565b90612718565b346103915760206110616118d936610928565b92919091611d9f565b3461039157600036600319011261039157600b546040516001600160a01b039091168152602090f35b346103915760003660031901126103915761054560405161192b81610644565b602081527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e60208201526040519182916020835260208301906104b3565b346103915760003660031901126103915760206040517ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d78152f35b346103915760203660031901126103915760043563ffffffff80821691828103610391576119d061214f565b8215611a34577f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828604069ffffffff00000000000093600854958251918760301c1682526020820152a160301b169069ffffffff000000000000191617600855600080f35b60405163f1cfbf0560e01b815260006004820152602490fd5b346103915760403660031901126103915760446020600435611a6e81610605565b6000604051611a7c8161065f565b52604051630748d63560e31b81526001600160a01b039182166004820152602480359082015292839182907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610b83576105459160009161166d57506040519081529081906020820190565b3461039157602036600319011261039157600435611b0961214f565b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc0546191a1600755005b346103915760a036600319011261039157611b5e600435610605565b611b69602435610605565b6084356001600160401b03811161039157611b88903690600401610733565b50600b546001600160a01b031630036107b95760405163f23a6e6160e01b8152602090f35b3461039157602036600319011261039157604051632394e7a360e21b8152600480359082018190526020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610b835761054592606492611c3192600092611c43575b50611c2b906125fc565b90613019565b04604051918291829190602083019252565b611c2b919250611c609060203d8111610bae57610b9f81836106b1565b9190611c21565b34610391576000366003190112610391576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600b546001600160a01b031630036107b957565b90600182811c92168015611cf0575b6020831014611cda57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ccf565b60405190611d078261065f565b60008252565b90815180825260208080930193019160005b828110611d2d575050505090565b83516001600160a01b031685529381019392810192600101611d1f565b90815180825260208092019182818360051b85019501936000915b848310611d755750505050505090565b9091929394958480611d8f83856001950387528a516104b3565b9801930193019194939290611d65565b9290611deb92611dfd92604051948592611ddb611dc8602086019960808b5260a0870190611d0d565b601f199687878303016040880152611359565b9085858303016060860152611d4a565b906080830152039081018352826106b1565b51902090565b634e487b7160e01b600052601160045260246000fd5b600052600460205260406000205465ffffffffffff908163ffffffff8260d01c169160a01c1601818111611e4b571690565b611e03565b6000198114611e4b5760010190565b634e487b7160e01b600052603260045260246000fd5b8051821015611e895760209160051b010190565b611e5f565b939092919695610cc9611f4891611f428a611ec48160018060a01b03166000526002602052604060002080549060018201905590565b611ecf36888a6106fc565b602081519101208b5160208d0120906040519260208401947f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a81186528d604086015260ff8d16606086015260018060a01b0316608085015260a084015260c083015260e082015260e0815261152581610695565b8a612a34565b611f63576104e9959691611f5d9136916106fc565b92612000565b6040516394ab6c0760e01b81526001600160a01b0388166004820152602490fd5b916104e9939160405193611f978561065f565b60008552612000565b93909260ff611fcc936104e997958752166020860152604085015260a0606085015260a08401906104b3565b9160808184039101526104b3565b909260ff6080936104e996958452166020830152604082015281606082015201906104b3565b92919061200c84613044565b6008811015610df4576002600160ff83161b16156120f1575083600052600460205261206861206061205a61204f604060002065ffffffffffff905460a01c1690565b65ffffffffffff1690565b83612570565b8383876122bf565b948051156000146120b557506120af7fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4938660405194859460018060a01b03169785611fda565b0390a290565b6120af907fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb8712948760405195869560018060a01b03169886611fa0565b6040516331b75e4d60e01b815260048101869052606491612116906024830190610df9565b60026044820152fd5b3d1561214a573d90612130826106e1565b9161213e60405193846106b1565b82523d6000602084013e565b606090565b600b546001600160a01b03163381036121ab57300361216a57565b612173366106e1565b61218060405191826106b1565b368152602081019036600083376000602036830101525190205b806121a3612f95565b0361219a5750565b6040516347096e4760e01b8152336004820152602490fd5b600b546001600160a01b031630036107b95763bc197c8160e01b90565b6040906121fc6000939594606083019683526020830190610df9565b0152565b61220981613044565b906008821015610df4576010600160ff84161b1615612226575090565b612249606492604051926331b75e4d60e01b845260048401526024830190610df9565b60106044820152fd5b61225b81613044565b906008821015610df4576030600160ff84161b1615612278575090565b61229b606492604051926331b75e4d60e01b845260048401526024830190610df9565b60306044820152fd5b9060018201809211611e4b57565b91908201809211611e4b57565b6122d6909291926000526009602052604060002090565b91600383016123016122fa83839060018060a01b0316600052602052604060002090565b5460ff1690565b6123895761232760ff9392612334929060018060a01b0316600052602052604060002090565b805460ff19166001179055565b168061234b57506123468282546122b2565b905590565b6001810361236257506001016123468282546122b2565b600203612377576002016123468282546122b2565b6040516303599be160e11b8152600490fd5b6040516371c6af4960e01b81526001600160a01b0383166004820152602490fd5b6040513d6000823e3d90fd5b6040516324776b7d60e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa6000918161240d575b506104e957506104e943612bb7565b90916020823d8211612441575b81612427602093836106b1565b810103126105ce57505161243a816111ab565b90386123fe565b3d915061241a565b6040519061245682610644565b601d82527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020830152565b604051634bf5d7e960e01b8152600080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa909182826124da575b50506104e957506104e9612449565b909192503d8082843e6124ed81846106b1565b820191602081840312612559578051906001600160401b03821161255d570182601f8201121561255957805191612523836106e1565b9361253160405195866106b1565b838552602084840101116105ce5750906125519160208085019101610490565b9038806124cb565b5080fd5b8280fd5b90816020910312610391575190565b604051630748d63560e31b81526001600160a01b0391821660048201526024810192909252602090829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610b83576000916125d5575090565b6104e9915060203d8111610bae57610b9f81836106b1565b600019810191908211611e4b57565b600a546000198101818111611e4b57811115611e8957600a6000527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a78101549165ffffffffffff9281848216111561270e575061265890612bb7565b60009082600581116126b8575b506126709350612ed1565b80612685575060005b6001600160d01b031690565b6126ac6126946126b3926125ed565b600a600052600080516020613ba38339815191520190565b5460301c90565b612679565b90926126c382612c09565b8203918211611e4b5761267094600a84528083600080516020613ba3833981519152015416908516106000146126fc5750915b38612665565b929150612708906122a4565b906126f6565b9250505060301c90565b9091906106df575080511561272f57805190602001fd5b60405163d6bda27560e01b8152600490fd5b60429061274c612767565b906040519161190160f01b8352600283015260228201522090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612852575b156127c2577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611dfd8161067a565b507f00000000000000000000000000000000000000000000000000000000000000004614612799565b60ff81146128b95760ff811690601f82116128a7576040519161289d83610644565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b506040516000818154916128cc83611cc0565b8083529260019081811690811561295057506001146128f3575b506104e9925003826106b1565b600080805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061293557506104e99350508101602001386128e6565b8193509081602092548385890101520191019091849261291c565b9050602092506104e994915060ff191682840152151560051b820101386128e6565b60ff81146129945760ff811690601f82116128a7576040519161289d83610644565b506040516000816001918254926129aa84611cc0565b8084529381811690811561295057506001146129cd57506104e9925003826106b1565b600081815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b848310612a0f57506104e99350508101602001386128e6565b819350908160209254838589010152019101909184926129f6565b60041115610df457565b9091813b612a6f57612a469192612af7565b50612a5081612a2a565b159182612a5c57505090565b6001600160a01b03918216911614919050565b6000918291604051612ab381612aa56020820194630b135d3f60e11b998a875260248401526040604484015260648301906104b3565b03601f1981018352826106b1565b51915afa90612ac061211f565b82612ae9575b82612ad057505090565b612ae591925060208082518301019101612561565b1490565b915060208251101591612ac6565b8151919060418303612b2857612b2192506020820151906060604084015193015160001a90612b33565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bab57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15610b835780516001600160a01b03811615612ba257918190565b50809160019190565b50505060009160039190565b65ffffffffffff90818111612bca571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8115612bf3570490565b634e487b7160e01b600052601260045260246000fd5b60018111156104e957600181600160801b811015612d22575b612cca612cc0612cb6612cac612ca2612c98612cd697600488600160401b612cd19a1015612d15575b640100000000811015612d08575b62010000811015612cfb575b610100811015612cef575b6010811015612ce3575b1015612cdb575b60030260011c612c91818b612be9565b0160011c90565b612c91818a612be9565b612c918189612be9565b612c918188612be9565b612c918187612be9565b612c918186612be9565b8093612be9565b821190565b900390565b60011b612c81565b811c9160021b91612c7a565b60081c91811b91612c70565b60101c9160081b91612c65565b60201c9160101b91612c59565b60401c9160201b91612c4b565b50600160401b9050608082901c612c22565b600a5460009080612d46575050600090565b80600019810111611e4b57600a7fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a79252015460301c90565b600a5490600160401b82101561063f576001820180600a55821015611e89576106df91600a600052600080516020613ba38339815191520190612dde65ffffffffffff825116839065ffffffffffff1665ffffffffffff19825416179055565b60200151815465ffffffffffff1660309190911b65ffffffffffff1916179055565b600a549192918015612ea757612694612e18916125ed565b9081549165ffffffffffff90818416918316808311612e9557869203612e5d57612e5692509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050612e9090612e7c612e6e6106d2565b65ffffffffffff9092168252565b6001600160d01b0385166020820152612d7e565b612e56565b604051632520601d60e01b8152600490fd5b50612ecb90612eb7612e6e6106d2565b6001600160d01b0384166020820152612d7e565b60009190565b905b828110612edf57505090565b90918082169080831860011c8201809211611e4b57600a60005265ffffffffffff8083600080516020613ba383398151915201541690851610600014612f285750915b90612ed3565b929150612f34906122a4565b90612f22565b6005548060801c9160018301926001600160801b0380931683851614612f82576000526006602052604060002055600554916001600160801b03199060801b16911617600555565b634e487b7160005260416020526024601cfd5b600554906001600160801b038083169260801c8314612fda57826000526006602052600160406000209360008554955501166001600160801b03196005541617600555565b634e487b7160005260316020526024601cfd5b908160011b9180830460021490151715611e4b57565b908160041b9180830460101490151715611e4b57565b81810292918115918404141715611e4b57565b90816020910312610391575180151581036103915790565b61304d81613156565b9061305782610dea565b60058203613152576130749150600052600c602052604060002090565b54600b5461308a906001600160a01b03166109c2565b604051632c258a9f60e11b81526004810183905260209291908381602481855afa908115610b8357600091613135575b50156130c857505050600590565b604051632ab0f52960e01b815260048101929092528290829060249082905afa918215610b8357600092613108575b50501561310357600790565b600290565b6131279250803d1061312e575b61311f81836106b1565b81019061302c565b38806130f7565b503d613115565b61314c9150843d861161312e5761311f81836106b1565b386130ba565b5090565b61316a816000526004602052604060002090565b5460ff8160f01c166132735760f81c61326d576131a661204f613197836000526004602052604060002090565b5460a01c65ffffffffffff1690565b8015613254576131b761204f6123b6565b8091101561324d576131c882611e19565b106131d35750600190565b6131df610cc98261327a565b8015613228575b156131f15750600390565b61204f600161320d61321a936000526004602052604060002090565b015465ffffffffffff1690565b61322357600490565b600590565b50613248610cc98260005260096020526040600020600181015490541090565b6131e6565b5050600090565b604051636ad0607560e01b815260048101839052602490fd5b50600290565b5050600790565b60005260096020526040600020600460205265ffffffffffff60406000205460a01c1660405190632394e7a360e21b825280600483015260208260248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa918215610b83576133179260649261330592600092611c435750611c2b906125fc565b049160026001820154910154906122b2565b101590565b919392909361332b8233613708565b15613421576007549485613347575b6104e99495503393613551565b65ffffffffffff6000198161335a6123b6565b160190808211611e4b5760006040516133728161065f565b52604051630748d63560e31b8152336004820152911660248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b8357600091613403575b508681106133dc575061333a565b604051636121770b60e11b8152336004820152602481019190915260448101879052606490fd5b61341b915060203d8111610bae57610b9f81836106b1565b386133ce565b60405163d9b3955760e01b8152336004820152602490fd5b90613443826107cb565b61345060405191826106b1565b8281528092613461601f19916107cb565b019060005b82811061347257505050565b806060602080938501015201613466565b95926134b6906134c4939b9a9899969592885260209b60018060a01b03168c8901526101208060408a0152880190611d0d565b908682036060880152611359565b9784890360808601528251808a52818a019180808360051b8d01019501926000905b8382106135235750505050506104e99697509061350a9184820360a0860152611d4a565b9360c083015260e08201526101008184039101526104b3565b909192939583806135428f93600194601f199082030186528a516104b3565b980192019201909392916134e6565b91949390929461356986516020880120828686611d9f565b9583518551908181148015906136fd575b80156136f5575b6136cc57505065ffffffffffff94856135a76131978a6000526004602052604060002090565b166136a5577f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0956136a09363ffffffff6135f06135e26123b6565b6008549480861691166122b2565b9260301c1661367e61360c8c6000526004602052604060002090565b80546001600160a01b0319166001600160a01b038a1617815561365561363186612bb7565b825465ffffffffffff60a01b191660a09190911b65ffffffffffff60a01b16178255565b61365e83613912565b815463ffffffff60d01b191660d09190911b63ffffffff60d01b16179055565b61369261368b8951613439565b91846122b2565b936040519889988d8a613483565b0390a1565b876136af81613044565b6040516331b75e4d60e01b815291829161156f91600484016121e0565b8351604051630447b05d60e41b8152600481019290925260248201526044810191909152606490fd5b508015613581565b50835181141561357a565b908051603481106137555760131981830101516001600160b01b03191669dc8f8d908f908c9a8dc360b01b01613755576137479160291982019061375d565b9015918215612a5c57505090565b505050600190565b91908251821180156137e6575b6137bd57613777816122a4565b8211806137c8575b61378a901515612fed565b60280180602811611e4b57818303838111611e4b57036137bd576137ad926137ef565b90916001600160a01b0390911690565b505050600090600090565b50828101602001516001600160f01b03191661060f60f31b1461377f565b5081811161376a565b9290926137fb846122a4565b831180613882575b61380e901515612fed565b936000948101809111611e4b579192905b81831061382f5750505060019190565b9092919360ff61385061384b6020888601015160ff60f81b1690565b6138a0565b1690600f8211613876579061386761386e92613003565b0194611e50565b91929061381f565b50600094508493505050565b50808401602001516001600160f01b03191661060f60f31b14613803565b60f81c602f811180613908575b156138bc57602f190160ff1690565b60608111806138fe575b156138d5576056190160ff1690565b60408111806138f4575b156138ee576036190160ff1690565b5060ff90565b50604781106138df565b50606781106138c6565b50603a81106138ad565b63ffffffff90818111613923571690565b604490604051906306dfcc6560e41b8252602060048301526024820152fd5b9061394e939291611d9f565b61395781613044565b6008811015610df457603b600160ff83161b1615613a56575061399c613987826000526004602052604060002090565b80546001600160f81b0316600160f81b179055565b6040518181527f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90602090a16139dc81600052600c602052604060002090565b54806139e6575090565b600b546139fb906001600160a01b03166109c2565b803b156103915760405163c4d252f560e01b815260048101929092526000908290602490829084905af18015610b8357613a43575b506000818152600c602052604081205590565b80610b77613a509261062c565b38613a30565b90613a7a606492604051926331b75e4d60e01b845260048401526024830190610df9565b603b6044820152fd5b949392613aaf608093613aa1613abd9460a08a5260a08a0190611d0d565b9088820360208a0152611359565b908682036040880152611d4a565b93600060608201520152565b9192613af860a094613aea613b06949998979960c0875260c0870190611d0d565b908582036020870152611359565b908382036040850152611d4a565b946000606083015260808201520152565b9290939160018060a01b03600b541690813b1561039157600093613b666040519788958694859463e38335e560e01b86526bffffffffffffffffffffffff193060601b16189260048601613a83565b039134905af1908115610b8357600092613b9092613b93575b50600052600c602052604060002090565b55565b613b9c9061062c565b38613b7f56fec65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8a26469706673582212209cd843d7b6bf58a291c7a54344516120370d1b69b661023415f02507a921372f64736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}