1 tx
0 calls
constructor
constructor(address tokenAddress)
functions
claimable
viewfunction claimable(address) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
extraOptions
viewfunction extraOptions() view returns (bytes)
FUNDER_ROLE
viewfunction FUNDER_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TOKEN
viewfunction TOKEN() view returns (address)
totalClaimable
viewfunction totalClaimable() view returns (uint256)
addClaimable
nonpayablefunction addClaimable(address[] recipients, uint256[] amounts)
addFunder
nonpayablefunction addFunder(address account)
fullClaim
payablefunction fullClaim(uint32 clainId) payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
partialClaim
payablefunction partialClaim(uint256 amount, uint32 clainId) payable
removeFunder
nonpayablefunction removeFunder(address account)
renounceRole
nonpayablefunction renounceRole(bytes32, address)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setExtraOptions
nonpayablefunction setExtraOptions(bytes newExtraOptions)
withdrawExcessTokens
nonpayablefunction withdrawExcessTokens(uint256 amount, address to)
events
AddClaimable
event AddClaimable(address[] recipients, uint256[] amounts)
FullClaim
event FullClaim(address indexed claimant, uint256 amount)
PartialClaim
event PartialClaim(address indexed claimant, uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
WithdrawExcess
event WithdrawExcess(address indexed admin, address indexed to, uint256 amount)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
CannotRenounceRole
error CannotRenounceRole()
CannotRevokeRoleFromSelf
error CannotRevokeRoleFromSelf()
CannotWithdrawMoreThanExcess
error CannotWithdrawMoreThanExcess()
MismatchedArrayLengths
error MismatchedArrayLengths()
MustClaimMoreThan0Tokens
error MustClaimMoreThan0Tokens()
NoClaimableTokens
error NoClaimableTokens()
NotEnoughClaimableTokens
error NotEnoughClaimableTokens()
NotEnoughTokens
error NotEnoughTokens()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnnecessaryFee
error UnnecessaryFee()
creation bytecode
0x60a06040526040518060400160405280601681526020017e03010011010000000000000000000000000000ea600000000000000000000081525060049081610047919061048a565b5034801561005457600080fd5b50604051612c5c380380612c5c833981810160405281019061007691906105d1565b600180819055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100c46000801b336100cb60201b60201c565b50506105fe565b60006100dd83836101c860201b60201c565b6101bd57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061015a61023260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101c2565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806102bb57607f821691505b6020821081036102ce576102cd610274565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026103367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102f9565b61034086836102f9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061038761038261037d84610358565b610362565b610358565b9050919050565b6000819050919050565b6103a18361036c565b6103b56103ad8261038e565b848454610306565b825550505050565b600090565b6103ca6103bd565b6103d5818484610398565b505050565b5b818110156103f9576103ee6000826103c2565b6001810190506103db565b5050565b601f82111561043e5761040f816102d4565b610418846102e9565b81016020851015610427578190505b61043b610433856102e9565b8301826103da565b50505b505050565b600082821c905092915050565b600061046160001984600802610443565b1980831691505092915050565b600061047a8383610450565b9150826002028217905092915050565b6104938261023a565b67ffffffffffffffff8111156104ac576104ab610245565b5b6104b682546102a3565b6104c18282856103fd565b600060209050601f8311600181146104f457600084156104e2578287015190505b6104ec858261046e565b865550610554565b601f198416610502866102d4565b60005b8281101561052a57848901518255600182019150602085019450602081019050610505565b868310156105475784890151610543601f891682610450565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061058c82610561565b9050919050565b600061059e82610581565b9050919050565b6105ae81610593565b81146105b957600080fd5b50565b6000815190506105cb816105a5565b92915050565b6000602082840312156105e7576105e661055c565b5b60006105f5848285016105bc565b91505092915050565b60805161262061063c600039600081816104ef015281816105dc0152818161077e01528181610b0601528181611170015261134f01526126206000f3fe6080604052600436106101145760003560e01c806382bfefc8116100a0578063a00642ca11610064578063a00642ca146103a0578063a217fddf146103cb578063cfd2afa9146103f6578063d547741f14610412578063dcd18dd41461043b57610114565b806382bfefc8146102ca578063853b1422146102f55780638f26c84a1461031e57806391d148541461033a5780639bdd80131461037757610114565b80632f2ff15d116100e75780632f2ff15d146101e557806334aedecd1461020e57806336568abe14610239578063402914f5146102625780634838ed191461029f57610114565b806301ffc9a71461011957806314969456146101565780631bbe9d8c1461017f578063248a9ca3146101a8575b600080fd5b34801561012557600080fd5b50610140600480360381019061013b919061165a565b610464565b60405161014d91906116a2565b60405180910390f35b34801561016257600080fd5b5061017d60048036038101906101789190611751565b6104de565b005b34801561018b57600080fd5b506101a660048036038101906101a19190611791565b61068c565b005b3480156101b457600080fd5b506101cf60048036038101906101ca91906117f4565b6106c7565b6040516101dc9190611830565b60405180910390f35b3480156101f157600080fd5b5061020c6004803603810190610207919061184b565b6106e6565b005b34801561021a57600080fd5b50610223610708565b6040516102309190611830565b60405180910390f35b34801561024557600080fd5b50610260600480360381019061025b919061184b565b61072c565b005b34801561026e57600080fd5b5061028960048036038101906102849190611791565b61075e565b604051610296919061189a565b60405180910390f35b3480156102ab57600080fd5b506102b4610776565b6040516102c1919061189a565b60405180910390f35b3480156102d657600080fd5b506102df61077c565b6040516102ec9190611914565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190611994565b6107a0565b005b61033860048036038101906103339190611a1d565b6107c4565b005b34801561034657600080fd5b50610361600480360381019061035c919061184b565b610952565b60405161036e91906116a2565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190611b09565b6109bc565b005b3480156103ac57600080fd5b506103b5610c47565b6040516103c29190611c1a565b60405180910390f35b3480156103d757600080fd5b506103e0610cd5565b6040516103ed9190611830565b60405180910390f35b610410600480360381019061040b9190611c3c565b610cdc565b005b34801561041e57600080fd5b506104396004803603810190610434919061184b565b610e25565b005b34801561044757600080fd5b50610462600480360381019061045d9190611791565b610eb3565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104d757506104d682610eee565b5b9050919050565b6000801b6104eb81610f58565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105469190611c78565b602060405180830381865afa158015610563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105879190611ca8565b90506000600354826105999190611d04565b9050808511156105d5576040517f4e41ec9100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61062084867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f6c9092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167faa82bd036a52619abcf98d93faf9ffd11ffeee3807f3ffc822da9a2deda85ff38760405161067d919061189a565b60405180910390a35050505050565b6000801b61069981610f58565b6106c37f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb836106e6565b5050565b6000806000838152602001908152602001600020600101549050919050565b6106ef826106c7565b6106f881610f58565b6107028383610feb565b50505050565b7f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb81565b6040517fe15fb00e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026020528060005260406000206000915090505481565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000801b6107ad81610f58565b8282600491826107be929190611f74565b50505050565b6107cc6110dc565b60008211610806576040517ff197674c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610884576040517f4f1d426300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82816108909190611d04565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600360008282546108e59190611d04565b925050819055506108f7338484611122565b3373ffffffffffffffffffffffffffffffffffffffff167f5bf4ffbba2c193e74d733f69408011d333232e84b98a68ecb638621dab65fff58460405161093d919061189a565b60405180910390a25061094e6113f8565b5050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b7f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb6109e681610f58565b828290508585905014610a25576040517f568efce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008086869050905060005b81811015610b0157858582818110610a4c57610a4b612044565b5b9050602002013583610a5e9190612073565b9250858582818110610a7357610a72612044565b5b90506020020135600260008a8a85818110610a9157610a90612044565b5b9050602002016020810190610aa69190611791565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610aef9190612073565b92505081905550806001019050610a31565b5060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b5d9190611c78565b602060405180830381865afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190611ca8565b905082600354610bae9190612073565b811015610be7576040517f22bbb43c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260036000828254610bf99190612073565b925050819055507fed4298693a403d0499f53dd6f72a142dc97480d68681e1ad52d329f53d4f81bf88888888604051610c3594939291906121e5565b60405180910390a15050505050505050565b60048054610c5490611da1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8090611da1565b8015610ccd5780601f10610ca257610100808354040283529160200191610ccd565b820191906000526020600020905b815481529060010190602001808311610cb057829003601f168201915b505050505081565b6000801b81565b610ce46110dc565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610d62576040517fb8d485a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060036000828254610db99190611d04565b92505081905550610dcb338284611122565b3373ffffffffffffffffffffffffffffffffffffffff167f810b977535d525522ce93aae94d554692f9ccff8a835d1e2fa03eb4f1283634882604051610e11919061189a565b60405180910390a250610e226113f8565b50565b610e2e826106c7565b610e3781610f58565b610e3f611401565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea3576040517f4f3b7c2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ead8383611409565b50505050565b6000801b610ec081610f58565b610eea7f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb83610e25565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610f6981610f64611401565b6114fb565b50565b610fe6838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401610f9f929190612220565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061154c565b505050565b6000610ff78383610952565b6110d157600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061106e611401565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506110d6565b600090505b92915050565b600260015403611118576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b468163ffffffff16036111b95760003414611169576040517fff7418a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111b483837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f6c9092919063ffffffff16565b6113f3565b60006040518060e001604052808363ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1660001b81526020018481526020018481526020016004805461120a90611da1565b80601f016020809104026020016040519081016040528092919081815260200182805461123690611da1565b80156112835780601f1061125857610100808354040283529160200191611283565b820191906000526020600020905b81548152906001019060200180831161126657829003601f168201915b50505050508152602001600067ffffffffffffffff8111156112a8576112a7611d43565b5b6040519080825280601f01601f1916602001820160405280156112da5781602001600182028036833780820191505090505b508152602001600067ffffffffffffffff8111156112fb576112fa611d43565b5b6040519080825280601f01601f19166020018201604052801561132d5781602001600182028036833780820191505090505b50815250905060006040518060400160405280348152602001600081525090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c7c7f5b3348484896040518563ffffffff1660e01b81526004016113ab93929190612399565b60c06040518083038185885af11580156113c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113ee9190612581565b505050505b505050565b60018081905550565b600033905090565b60006114158383610952565b156114f057600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061148d611401565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a4600190506114f5565b600090505b92915050565b6115058282610952565b6115485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161153f9291906125c1565b60405180910390fd5b5050565b600080602060008451602086016000885af18061156f576040513d6000823e3d81fd5b3d92506000519150506000821461158a5760018114156115a6565b60008473ffffffffffffffffffffffffffffffffffffffff163b145b156115e857836040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016115df9190611c78565b60405180910390fd5b50505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61163781611602565b811461164257600080fd5b50565b6000813590506116548161162e565b92915050565b6000602082840312156116705761166f6115f8565b5b600061167e84828501611645565b91505092915050565b60008115159050919050565b61169c81611687565b82525050565b60006020820190506116b76000830184611693565b92915050565b6000819050919050565b6116d0816116bd565b81146116db57600080fd5b50565b6000813590506116ed816116c7565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061171e826116f3565b9050919050565b61172e81611713565b811461173957600080fd5b50565b60008135905061174b81611725565b92915050565b60008060408385031215611768576117676115f8565b5b6000611776858286016116de565b92505060206117878582860161173c565b9150509250929050565b6000602082840312156117a7576117a66115f8565b5b60006117b58482850161173c565b91505092915050565b6000819050919050565b6117d1816117be565b81146117dc57600080fd5b50565b6000813590506117ee816117c8565b92915050565b60006020828403121561180a576118096115f8565b5b6000611818848285016117df565b91505092915050565b61182a816117be565b82525050565b60006020820190506118456000830184611821565b92915050565b60008060408385031215611862576118616115f8565b5b6000611870858286016117df565b92505060206118818582860161173c565b9150509250929050565b611894816116bd565b82525050565b60006020820190506118af600083018461188b565b92915050565b6000819050919050565b60006118da6118d56118d0846116f3565b6118b5565b6116f3565b9050919050565b60006118ec826118bf565b9050919050565b60006118fe826118e1565b9050919050565b61190e816118f3565b82525050565b60006020820190506119296000830184611905565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119545761195361192f565b5b8235905067ffffffffffffffff81111561197157611970611934565b5b60208301915083600182028301111561198d5761198c611939565b5b9250929050565b600080602083850312156119ab576119aa6115f8565b5b600083013567ffffffffffffffff8111156119c9576119c86115fd565b5b6119d58582860161193e565b92509250509250929050565b600063ffffffff82169050919050565b6119fa816119e1565b8114611a0557600080fd5b50565b600081359050611a17816119f1565b92915050565b60008060408385031215611a3457611a336115f8565b5b6000611a42858286016116de565b9250506020611a5385828601611a08565b9150509250929050565b60008083601f840112611a7357611a7261192f565b5b8235905067ffffffffffffffff811115611a9057611a8f611934565b5b602083019150836020820283011115611aac57611aab611939565b5b9250929050565b60008083601f840112611ac957611ac861192f565b5b8235905067ffffffffffffffff811115611ae657611ae5611934565b5b602083019150836020820283011115611b0257611b01611939565b5b9250929050565b60008060008060408587031215611b2357611b226115f8565b5b600085013567ffffffffffffffff811115611b4157611b406115fd565b5b611b4d87828801611a5d565b9450945050602085013567ffffffffffffffff811115611b7057611b6f6115fd565b5b611b7c87828801611ab3565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015611bc4578082015181840152602081019050611ba9565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bec82611b8a565b611bf68185611b95565b9350611c06818560208601611ba6565b611c0f81611bd0565b840191505092915050565b60006020820190508181036000830152611c348184611be1565b905092915050565b600060208284031215611c5257611c516115f8565b5b6000611c6084828501611a08565b91505092915050565b611c7281611713565b82525050565b6000602082019050611c8d6000830184611c69565b92915050565b600081519050611ca2816116c7565b92915050565b600060208284031215611cbe57611cbd6115f8565b5b6000611ccc84828501611c93565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d0f826116bd565b9150611d1a836116bd565b9250828203905081811115611d3257611d31611cd5565b5b92915050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611db957607f821691505b602082108103611dcc57611dcb611d72565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611e347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611df7565b611e3e8683611df7565b95508019841693508086168417925050509392505050565b6000611e71611e6c611e67846116bd565b6118b5565b6116bd565b9050919050565b6000819050919050565b611e8b83611e56565b611e9f611e9782611e78565b848454611e04565b825550505050565b600090565b611eb4611ea7565b611ebf818484611e82565b505050565b5b81811015611ee357611ed8600082611eac565b600181019050611ec5565b5050565b601f821115611f2857611ef981611dd2565b611f0284611de7565b81016020851015611f11578190505b611f25611f1d85611de7565b830182611ec4565b50505b505050565b600082821c905092915050565b6000611f4b60001984600802611f2d565b1980831691505092915050565b6000611f648383611f3a565b9150826002028217905092915050565b611f7e8383611d38565b67ffffffffffffffff811115611f9757611f96611d43565b5b611fa18254611da1565b611fac828285611ee7565b6000601f831160018114611fdb5760008415611fc9578287013590505b611fd38582611f58565b86555061203b565b601f198416611fe986611dd2565b60005b8281101561201157848901358255600182019150602085019450602081019050611fec565b8683101561202e578489013561202a601f891682611f3a565b8355505b6001600288020188555050505b50505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061207e826116bd565b9150612089836116bd565b92508282019050808211156120a1576120a0611cd5565b5b92915050565b600082825260208201905092915050565b6000819050919050565b6120cb81611713565b82525050565b60006120dd83836120c2565b60208301905092915050565b60006120f8602084018461173c565b905092915050565b6000602082019050919050565b600061211983856120a7565b9350612124826120b8565b8060005b8581101561215d5761213a82846120e9565b61214488826120d1565b975061214f83612100565b925050600181019050612128565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b82818337505050565b6000612195838561216a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156121c8576121c761217b565b5b6020830292506121d9838584612180565b82840190509392505050565b6000604082019050818103600083015261220081868861210d565b90508181036020830152612215818486612189565b905095945050505050565b60006040820190506122356000830185611c69565b612242602083018461188b565b9392505050565b612252816119e1565b82525050565b612261816117be565b82525050565b612270816116bd565b82525050565b600082825260208201905092915050565b600061229282611b8a565b61229c8185612276565b93506122ac818560208601611ba6565b6122b581611bd0565b840191505092915050565b600060e0830160008301516122d86000860182612249565b5060208301516122eb6020860182612258565b5060408301516122fe6040860182612267565b5060608301516123116060860182612267565b50608083015184820360808601526123298282612287565b91505060a083015184820360a08601526123438282612287565b91505060c083015184820360c086015261235d8282612287565b9150508091505092915050565b6040820160008201516123806000850182612267565b5060208201516123936020850182612267565b50505050565b600060808201905081810360008301526123b381866122c0565b90506123c2602083018561236a565b6123cf6060830184611c69565b949350505050565b600080fd5b6123e582611bd0565b810181811067ffffffffffffffff8211171561240457612403611d43565b5b80604052505050565b60006124176115ee565b905061242382826123dc565b919050565b600081519050612437816117c8565b92915050565b600067ffffffffffffffff82169050919050565b61245a8161243d565b811461246557600080fd5b50565b60008151905061247781612451565b92915050565b600060408284031215612493576124926123d7565b5b61249d604061240d565b905060006124ad84828501611c93565b60008301525060206124c184828501611c93565b60208301525092915050565b6000608082840312156124e3576124e26123d7565b5b6124ed606061240d565b905060006124fd84828501612428565b600083015250602061251184828501612468565b60208301525060406125258482850161247d565b60408301525092915050565b600060408284031215612547576125466123d7565b5b612551604061240d565b9050600061256184828501611c93565b600083015250602061257584828501611c93565b60208301525092915050565b60008060c08385031215612598576125976115f8565b5b60006125a6858286016124cd565b92505060806125b785828601612531565b9150509250929050565b60006040820190506125d66000830185611c69565b6125e36020830184611821565b939250505056fea26469706673582212209050085ceefd34aafc76d117af103df4264da2de3f633d0cc9e946e98265448a64736f6c634300081c003300000000000000000000000030c7235866872213f68cb1f08c37cb9eccb93452