0 txs
0 calls
constructor
constructor(address _history, uint256 _nextStreamId, address forwarder)
functions
acceptToken
viewfunction acceptToken(address) view returns (bool)
balanceOf
viewfunction balanceOf(uint256 streamId, address who) view returns (uint256 balance)
bank
viewfunction bank() view returns (address)
contractFeeBalance
viewfunction contractFeeBalance() view returns (uint256)
daiTokenAddress
viewfunction daiTokenAddress() view returns (address)
feeCharge
viewfunction feeCharge(uint256 deposit) view returns (uint256)
feeRate
viewfunction feeRate() view returns (uint256)
getStream
viewfunction getStream(uint256 id) view returns (tuple stream)
getTrustedForwarder
viewfunction getTrustedForwarder() view returns (address forwarder)
history
viewfunction history() view returns (address)
Ierc20permitdai
viewfunction Ierc20permitdai() view returns (address)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
nextStreamId
viewfunction nextStreamId() view returns (uint256)
numberOfFeeWithdraws
viewfunction numberOfFeeWithdraws() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
versionRecipient
viewfunction versionRecipient() view returns (string)
withdraws
viewfunction withdraws(uint256) view returns (uint256 amount, uint256 time, address who)
addTokenForStream
nonpayablefunction addTokenForStream(address _token)
cancelStream
nonpayablefunction cancelStream(uint256 streamId) returns (bool)
changeFeeRate
nonpayablefunction changeFeeRate(uint256 _newFeeRate)
createStream
nonpayablefunction createStream(tuple streamDetails, tuple sig, string title)
pause
nonpayablefunction pause()
removeToken
nonpayablefunction removeToken(address _token)
renounceOwnership
nonpayablefunction renounceOwnership()
setBank
nonpayablefunction setBank(address _newBank)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
withdrawFeeForHolders
nonpayablefunction withdrawFeeForHolders(uint256 amount, address reciver) returns (bool)
withdrawFromStream
nonpayablefunction withdrawFromStream(uint256 streamId, uint256 amount) returns (bool)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
withdrawFee
event withdrawFee(uint256 amount, address indexed reciver)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60806040526040518060400160405280600581526020017f332e302e30000000000000000000000000000000000000000000000000000000815250600490816200004a919062000630565b50738f3cf7ad23cd3cadbd9735aff958023239c6a063600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600b55348015620000b257600080fd5b506040516200552d3803806200552d8339818101604052810190620000d89190620007b2565b620000f8620000ec6200021260201b60201c565b6200025460201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200016a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000161906200086f565b60405180910390fd5b60008203620001b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001a790620008e1565b60405180910390fd5b82600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160038190555062000209816200031a60201b60201c565b50505062000903565b6000601460003690501015801562000237575062000236336200035d60201b60201c565b5b156200024d57601436033560601c905062000251565b3390505b90565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200043857607f821691505b6020821081036200044e576200044d620003f0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000479565b620004c4868362000479565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005116200050b6200050584620004dc565b620004e6565b620004dc565b9050919050565b6000819050919050565b6200052d83620004f0565b620005456200053c8262000518565b84845462000486565b825550505050565b600090565b6200055c6200054d565b6200056981848462000522565b505050565b5b8181101562000591576200058560008262000552565b6001810190506200056f565b5050565b601f821115620005e057620005aa8162000454565b620005b58462000469565b81016020851015620005c5578190505b620005dd620005d48562000469565b8301826200056e565b50505b505050565b600082821c905092915050565b60006200060560001984600802620005e5565b1980831691505092915050565b6000620006208383620005f2565b9150826002028217905092915050565b6200063b82620003b6565b67ffffffffffffffff811115620006575762000656620003c1565b5b6200066382546200041f565b6200067082828562000595565b600060209050601f831160018114620006a8576000841562000693578287015190505b6200069f858262000612565b8655506200070f565b601f198416620006b88662000454565b60005b82811015620006e257848901518255600182019150602085019450602081019050620006bb565b86831015620007025784890151620006fe601f891682620005f2565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000749826200071c565b9050919050565b6200075b816200073c565b81146200076757600080fd5b50565b6000815190506200077b8162000750565b92915050565b6200078c81620004dc565b81146200079857600080fd5b50565b600081519050620007ac8162000781565b92915050565b600080600060608486031215620007ce57620007cd62000717565b5b6000620007de868287016200076a565b9350506020620007f1868287016200079b565b925050604062000804868287016200076a565b9150509250925092565b600082825260208201905092915050565b7f7a65726f20616464726573730000000000000000000000000000000000000000600082015250565b600062000857600c836200080e565b915062000864826200081f565b602082019050919050565b600060208201905081810360008301526200088a8162000848565b9050919050565b7f53747265616d206964206973207a65726f000000000000000000000000000000600082015250565b6000620008c96011836200080e565b9150620008d68262000891565b602082019050919050565b60006020820190508181036000830152620008fc81620008ba565b9050919050565b614c1a80620009136000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637a9b2c6c116101045780638da5cb5b116100a2578063b160f9cc11610071578063b160f9cc14610549578063ce1b815f14610567578063ea88ba9714610585578063f2fde38b146105a3576101da565b80638da5cb5b146104d3578063978bbdb9146104f157806398daac831461050f578063affca9321461052d576101da565b806386d067ff116100de57806386d067ff1461043b578063873ed48c14610457578063894e9a0d146104735780638cd3f064146104a3576101da565b80637a9b2c6c146103d15780637c5b3648146104015780638456cb5914610431576101da565b8063486ff0cd1161017c5780635fa7b5841161014b5780635fa7b5841461035d5780636db9241b14610379578063715018a6146103a957806376cdb03b146103b3576101da565b8063486ff0cd146102bf57806355466c37146102dd578063572b6c051461030f5780635c975abb1461033f576101da565b806328f7c3bf116101b857806328f7c3bf146102495780632eaee35e146102675780633656eec2146102855780633f4ba83a146102b5576101da565b80630322bdef146101df578063090d23b91461020f5780631e99d5691461022b575b600080fd5b6101f960048036038101906101f4919061307e565b6105bf565b60405161020691906130d9565b60405180910390f35b610229600480360381019061022491906130f4565b6107f1565b005b61023361083d565b6040516102409190613130565b60405180910390f35b610251610843565b60405161025e9190613130565b60405180910390f35b61026f610849565b60405161027c919061315a565b60405180910390f35b61029f600480360381019061029a919061307e565b61086f565b6040516102ac9190613130565b60405180910390f35b6102bd610b19565b005b6102c7610bc3565b6040516102d49190613205565b60405180910390f35b6102f760048036038101906102f29190613227565b610c51565b60405161030693929190613254565b60405180910390f35b610329600480360381019061032491906130f4565b610c9b565b60405161033691906130d9565b60405180910390f35b610347610cf4565b60405161035491906130d9565b60405180910390f35b610377600480360381019061037291906130f4565b610d0b565b005b610393600480360381019061038e9190613227565b610dc4565b6040516103a091906130d9565b60405180910390f35b6103b1610fa0565b005b6103bb610fb4565b6040516103c8919061315a565b60405180910390f35b6103eb60048036038101906103e6919061328b565b610fda565b6040516103f891906130d9565b60405180910390f35b61041b60048036038101906104169190613227565b611445565b6040516104289190613130565b60405180910390f35b610439611469565b005b61045560048036038101906104509190613444565b611513565b005b610471600480360381019061046c91906130f4565b611f9e565b005b61048d60048036038101906104889190613227565b612097565b60405161049a9190613529565b60405180910390f35b6104bd60048036038101906104b891906130f4565b6120fd565b6040516104ca91906130d9565b60405180910390f35b6104db61211d565b6040516104e8919061315a565b60405180910390f35b6104f9612147565b6040516105069190613130565b60405180910390f35b61051761214d565b60405161052491906135a3565b60405180910390f35b61054760048036038101906105429190613227565b612173565b005b6105516121cc565b60405161055e9190613130565b60405180910390f35b61056f6121d2565b60405161057c919061315a565b60405180910390f35b61058d6121fb565b60405161059a91906135df565b60405180910390f35b6105bd60048036038101906105b891906130f4565b612221565b005b60006105c96122a4565b6002548311156105d857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361061157600080fd5b6000831161061e57600080fd5b600c6000815461062d90613629565b9190508190555060405180606001604052808481526020014281526020018373ffffffffffffffffffffffffffffffffffffffff16815250600d6000600c548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050826002546106e69190613671565b60028190555060008273ffffffffffffffffffffffffffffffffffffffff1684604051610712906136d6565b60006040518083038185875af1925050503d806000811461074f576040519150601f19603f3d011682016040523d82523d6000602084013e610754565b606091505b5050905080610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90613737565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f9c74a3eff454be4704451c89978de3c7c598994b70e83bccafa27632a4b80547856040516107de9190613130565b60405180910390a2600191505092915050565b6107f96122a4565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b600c5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000826007600082815260200190815260200160002060030160009054906101000a900460ff166108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc906137a3565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75866040518263ffffffff1660e01b81526004016109329190613130565b600060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109789190613a5a565b90506000600760008781526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff16151515158152505090506109dd612f71565b60006109e888612322565b905082604001518360000151826109ff9190613aa3565b610a099190613ae5565b826000018181525050826020015184600001511115610a5d5782602001518460000151610a369190613671565b82602001818152505081602001518260000151610a539190613671565b8260000181815250505b83610100015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610aa5578160000151955050505050610b12565b8360c0015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610b095781600001518360200151610af09190613671565b8260400181815250508160400151955050505050610b12565b60009550505050505b5092915050565b610b216122a4565b610b29610cf4565b610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f90613b65565b60405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610bac6124ac565b604051610bb9919061315a565b60405180910390a1565b60048054610bd090613bb4565b80601f0160208091040260200160405190810160405280929190818152602001828054610bfc90613bb4565b8015610c495780601f10610c1e57610100808354040283529160200191610c49565b820191906000526020600020905b815481529060010190602001808311610c2c57829003601f168201915b505050505081565b600d6020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600160149054906101000a900460ff16905090565b610d136122a4565b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d6957600080fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000816007600082815260200190815260200160002060030160009054906101000a900460ff16610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906137a3565b60405180910390fd5b826000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75836040518263ffffffff1660e01b8152600401610e889190613130565b600060405180830381865afa158015610ea5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ece9190613a5a565b90508060c0015173ffffffffffffffffffffffffffffffffffffffff16610ef36124ac565b73ffffffffffffffffffffffffffffffffffffffff161480610f4c575080610100015173ffffffffffffffffffffffffffffffffffffffff16610f346124ac565b73ffffffffffffffffffffffffffffffffffffffff16145b610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290613c57565b60405180910390fd5b610f94856124e3565b60019350505050919050565b610fa86122a4565b610fb26000612921565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000826007600082815260200190815260200160002060030160009054906101000a900460ff16611040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611037906137a3565b60405180910390fd5b836000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75836040518263ffffffff1660e01b815260040161109e9190613130565b600060405180830381865afa1580156110bb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110e49190613a5a565b905080610100015173ffffffffffffffffffffffffffffffffffffffff1661110a6124ac565b73ffffffffffffffffffffffffffffffffffffffff1614611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790613cc3565b60405180910390fd5b600085036111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90613d2f565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75886040518263ffffffff1660e01b81526004016112009190613130565b600060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906112469190613a5a565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb4da144896040518263ffffffff1660e01b81526004016112a59190613130565b602060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190613d4f565b905042826020015167ffffffffffffffff161115611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090613dc8565b60405180910390fd5b600061134a8984610100015161086f565b90508781101561138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690613e5a565b60405180910390fd5b600083610100015190506113a58a8a83866129e7565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638afaa8878b8b6040518363ffffffff1660e01b8152600401611402929190613e7a565b600060405180830381600087803b15801561141c57600080fd5b505af1158015611430573d6000803e3d6000fd5b50505050600197505050505050505092915050565b6000612710600b54836114589190613aa3565b6114629190613ed2565b9050919050565b6114716122a4565b611479610cf4565b156114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090613f4f565b60405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114fc6124ac565b604051611509919061315a565b60405180910390a1565b61151b610cf4565b1561155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290613f4f565b60405180910390fd5b600061156a8460200135611445565b9050662386f26fc10000846020013510156115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190613fbb565b60405180910390fd5b80600254016002819055506115cd6124ac565b73ffffffffffffffffffffffffffffffffffffffff168460600160208101906115f691906130f4565b73ffffffffffffffffffffffffffffffffffffffff161461164c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164390614027565b60405180910390fd5b6009600085600001602081019061166391906130f4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190614093565b60405180910390fd5b60048460e00160208101906116ff91906140c8565b60ff1610611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990614141565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1684604001602081019061176d91906130f4565b73ffffffffffffffffffffffffffffffffffffffff16036117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba906141ad565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168460400160208101906117ed91906130f4565b73ffffffffffffffffffffffffffffffffffffffff1603611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a90614219565b60405180910390fd5b61184b6124ac565b73ffffffffffffffffffffffffffffffffffffffff1684604001602081019061187491906130f4565b73ffffffffffffffffffffffffffffffffffffffff16036118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c190614285565b60405180910390fd5b6000846020013503611911576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611908906142f1565b60405180910390fd5b428460800160006003811061192957611928614311565b5b60200201602081019061193c9190614355565b67ffffffffffffffff161015611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e906143ce565b60405180910390fd5b8360800160006003811061199e5761199d614311565b5b6020020160208101906119b19190614355565b67ffffffffffffffff16846080016001600381106119d2576119d1614311565b5b6020020160208101906119e59190614355565b67ffffffffffffffff1611611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a269061443a565b60405180910390fd5b600084608001600260038110611a4857611a47614311565b5b602002016020810190611a5b9190614355565b67ffffffffffffffff161480611ad7575083608001600060038110611a8357611a82614311565b5b602002016020810190611a969190614355565b67ffffffffffffffff1684608001600260038110611ab757611ab6614311565b5b602002016020810190611aca9190614355565b67ffffffffffffffff1611155b611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d906144a6565b60405180910390fd5b6000846000016020810190611b2b91906130f4565b9050846000016020810190611b4091906130f4565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611d5d57846000016020810190611ba791906130f4565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ecebe00611c2f6124ac565b6040518263ffffffff1660e01b8152600401611c4b919061315a565b602060405180830381865afa158015611c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8c91906144c6565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638fcbaf0c611cd46124ac565b3084600f42611ce39190613ae5565b60018b6000016020810190611cf891906140c8565b8c602001358d604001356040518963ffffffff1660e01b8152600401611d2598979695949392919061451b565b600060405180830381600087803b158015611d3f57600080fd5b505af1158015611d53573d6000803e3d6000fd5b5050505050611d62565b600080fd5b611d93333087602001358473ffffffffffffffffffffffffffffffffffffffff16612b8c909392919063ffffffff16565b611de233600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848473ffffffffffffffffffffffffffffffffffffffff16612b8c909392919063ffffffff16565b611dea612f92565b85608001600060038110611e0157611e00614311565b5b602002016020810190611e149190614355565b86608001600160038110611e2b57611e2a614311565b5b602002016020810190611e3e9190614355565b0367ffffffffffffffff16816000018181525050806000015186602001351015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e94906145e5565b60405180910390fd5b60008082600001518860200135611eb49190614605565b03611ec25760009050611ed9565b81600001518760200135611ed69190614605565b90505b81600001518760200135611eed9190613ed2565b8260200181815250506000600354905060405180608001604052808460200151815260200189602001358152602001838152602001600115158152506007600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550905050600160035401600381905550611f94818988612c0e565b5050505050505050565b611fa66122a4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fdf57600080fd5b60001515600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461203c57600080fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61209f612fac565b600760008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1615151515815250509050919050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61217b6122a4565b6107d0600b5411156121c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b990614682565b60405180910390fd5b80600b8190555050565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6122296122a4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228f90614714565b60405180910390fd5b6122a181612921565b50565b6122ac6124ac565b73ffffffffffffffffffffffffffffffffffffffff166122ca61211d565b73ffffffffffffffffffffffffffffffffffffffff1614612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231790614780565b60405180910390fd5b565b6000816007600082815260200190815260200160002060030160009054906101000a900460ff16612388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237f906137a3565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75856040518263ffffffff1660e01b81526004016123e59190613130565b600060405180830381865afa158015612402573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061242b9190613a5a565b9050806020015167ffffffffffffffff16421161244c5760009250506124a6565b806040015167ffffffffffffffff1642101561248457806020015167ffffffffffffffff164261247c9190613671565b9250506124a6565b8060200151816040015161249891906147a0565b67ffffffffffffffff169250505b50919050565b600060146000369050101580156124c857506124c733610c9b565b5b156124dc57601436033560601c90506124e0565b3390505b90565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75836040518263ffffffff1660e01b81526004016125409190613130565b600060405180830381865afa15801561255d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125869190613a5a565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb4da144846040518263ffffffff1660e01b81526004016125e59190613130565b602060405180830381865afa158015612602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126269190613d4f565b905042826060015167ffffffffffffffff161115612679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267090614828565b60405180910390fd5b42826040015167ffffffffffffffff1610156126ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c190614894565b60405180910390fd5b8160c0015173ffffffffffffffffffffffffffffffffffffffff166126ed6124ac565b73ffffffffffffffffffffffffffffffffffffffff161480156127195750600182610140015160ff1614155b801561272e5750600382610140015160ff1614155b1561273857600080fd5b81610100015173ffffffffffffffffffffffffffffffffffffffff1661275c6124ac565b73ffffffffffffffffffffffffffffffffffffffff161480156127885750600282610140015160ff1614155b801561279d5750600382610140015160ff1614155b156127a757600080fd5b6000819050600081905060006127c1868660c0015161086f565b905060006127d48787610100015161086f565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303e65e6f88836040518363ffffffff1660e01b8152600401612833929190613e7a565b600060405180830381600087803b15801561284d57600080fd5b505af1158015612861573d6000803e3d6000fd5b5050505060076000888152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff02191690555050600081146128e0576128df866101000151828573ffffffffffffffffffffffffffffffffffffffff16612ca49092919063ffffffff16565b5b60008214612918576129178660c00151838573ffffffffffffffffffffffffffffffffffffffff16612ca49092919063ffffffff16565b5b50505050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600760008681526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff161515151581525050905060006007600087815260200190815260200160002060020154905084818360200151612a6e9190613ae5565b612a789190613671565b6007600088815260200190815260200160002060010181905550600060076000888152602001908152602001600020600201819055506000600760008881526020019081526020016000206001015403612b0f5760076000878152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff021916905550505b6000839050612b51856611c37937e0800088612b2b9190613671565b8373ffffffffffffffffffffffffffffffffffffffff16612ca49092919063ffffffff16565b612b83306611c37937e080008373ffffffffffffffffffffffffffffffffffffffff16612ca49092919063ffffffff16565b50505050505050565b612c08848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612bc1939291906148b4565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d23565b50505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639556b1c28484846040518463ffffffff1660e01b8152600401612c6d93929190614acf565b600060405180830381600087803b158015612c8757600080fd5b505af1158015612c9b573d6000803e3d6000fd5b50505050505050565b612d1e838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401612cd7929190614b0f565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d23565b505050565b6000612d4e828473ffffffffffffffffffffffffffffffffffffffff16612dba90919063ffffffff16565b90506000815114158015612d73575080806020019051810190612d719190614b64565b155b15612db557826040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401612dac919061315a565b60405180910390fd5b505050565b6060612dc883836000612dd0565b905092915050565b606081471015612e1757306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401612e0e919061315a565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051612e409190614bcd565b60006040518083038185875af1925050503d8060008114612e7d576040519150601f19603f3d011682016040523d82523d6000602084013e612e82565b606091505b5091509150612e92868383612e9d565b925050509392505050565b606082612eb257612ead82612f2c565b612f24565b60008251148015612eda575060008473ffffffffffffffffffffffffffffffffffffffff163b145b15612f1c57836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401612f13919061315a565b60405180910390fd5b819050612f25565b5b9392505050565b600081511115612f3f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180606001604052806000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b60405180608001604052806000815260200160008152602001600081526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612ffd81612fea565b811461300857600080fd5b50565b60008135905061301a81612ff4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061304b82613020565b9050919050565b61305b81613040565b811461306657600080fd5b50565b60008135905061307881613052565b92915050565b6000806040838503121561309557613094612fe0565b5b60006130a38582860161300b565b92505060206130b485828601613069565b9150509250929050565b60008115159050919050565b6130d3816130be565b82525050565b60006020820190506130ee60008301846130ca565b92915050565b60006020828403121561310a57613109612fe0565b5b600061311884828501613069565b91505092915050565b61312a81612fea565b82525050565b60006020820190506131456000830184613121565b92915050565b61315481613040565b82525050565b600060208201905061316f600083018461314b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131af578082015181840152602081019050613194565b60008484015250505050565b6000601f19601f8301169050919050565b60006131d782613175565b6131e18185613180565b93506131f1818560208601613191565b6131fa816131bb565b840191505092915050565b6000602082019050818103600083015261321f81846131cc565b905092915050565b60006020828403121561323d5761323c612fe0565b5b600061324b8482850161300b565b91505092915050565b60006060820190506132696000830186613121565b6132766020830185613121565b613283604083018461314b565b949350505050565b600080604083850312156132a2576132a1612fe0565b5b60006132b08582860161300b565b92505060206132c18582860161300b565b9150509250929050565b600080fd5b600061010082840312156132e7576132e66132cb565b5b81905092915050565b600060608284031215613306576133056132cb565b5b81905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613351826131bb565b810181811067ffffffffffffffff821117156133705761336f613319565b5b80604052505050565b6000613383612fd6565b905061338f8282613348565b919050565b600067ffffffffffffffff8211156133af576133ae613319565b5b6133b8826131bb565b9050602081019050919050565b82818337600083830152505050565b60006133e76133e284613394565b613379565b90508281526020810184848401111561340357613402613314565b5b61340e8482856133c5565b509392505050565b600082601f83011261342b5761342a61330f565b5b813561343b8482602086016133d4565b91505092915050565b6000806000610180848603121561345e5761345d612fe0565b5b600061346c868287016132d0565b93505061010061347e868287016132f0565b92505061016084013567ffffffffffffffff8111156134a05761349f612fe5565b5b6134ac86828701613416565b9150509250925092565b6134bf81612fea565b82525050565b6134ce816130be565b82525050565b6080820160008201516134ea60008501826134b6565b5060208201516134fd60208501826134b6565b50604082015161351060408501826134b6565b50606082015161352360608501826134c5565b50505050565b600060808201905061353e60008301846134d4565b92915050565b6000819050919050565b600061356961356461355f84613020565b613544565b613020565b9050919050565b600061357b8261354e565b9050919050565b600061358d82613570565b9050919050565b61359d81613582565b82525050565b60006020820190506135b86000830184613594565b92915050565b60006135c982613570565b9050919050565b6135d9816135be565b82525050565b60006020820190506135f460008301846135d0565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363482612fea565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613666576136656135fa565b5b600182019050919050565b600061367c82612fea565b915061368783612fea565b925082820390508181111561369f5761369e6135fa565b5b92915050565b600081905092915050565b50565b60006136c06000836136a5565b91506136cb826136b0565b600082019050919050565b60006136e1826136b3565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000613721601483613180565b915061372c826136eb565b602082019050919050565b6000602082019050818103600083015261375081613714565b9050919050565b7f73747265616d20646f6573206e6f742065786973740000000000000000000000600082015250565b600061378d601583613180565b915061379882613757565b602082019050919050565b600060208201905081810360008301526137bc81613780565b9050919050565b600080fd5b600080fd5b6000815190506137dc81612ff4565b92915050565b600067ffffffffffffffff82169050919050565b6137ff816137e2565b811461380a57600080fd5b50565b60008151905061381c816137f6565b92915050565b60008151905061383181613052565b92915050565b600063ffffffff82169050919050565b61385081613837565b811461385b57600080fd5b50565b60008151905061386d81613847565b92915050565b600060ff82169050919050565b61388981613873565b811461389457600080fd5b50565b6000815190506138a681613880565b92915050565b60006138bf6138ba84613394565b613379565b9050828152602081018484840111156138db576138da613314565b5b6138e6848285613191565b509392505050565b600082601f8301126139035761390261330f565b5b81516139138482602086016138ac565b91505092915050565b60006101808284031215613933576139326137c3565b5b61393e610180613379565b9050600061394e848285016137cd565b60008301525060206139628482850161380d565b60208301525060406139768482850161380d565b604083015250606061398a8482850161380d565b606083015250608061399e8482850161380d565b60808301525060a06139b2848285016137cd565b60a08301525060c06139c684828501613822565b60c08301525060e06139da8482850161385e565b60e0830152506101006139ef84828501613822565b61010083015250610120613a0584828501613897565b61012083015250610140613a1b84828501613897565b6101408301525061016082015167ffffffffffffffff811115613a4157613a406137c8565b5b613a4d848285016138ee565b6101608301525092915050565b600060208284031215613a7057613a6f612fe0565b5b600082015167ffffffffffffffff811115613a8e57613a8d612fe5565b5b613a9a8482850161391c565b91505092915050565b6000613aae82612fea565b9150613ab983612fea565b9250828202613ac781612fea565b91508282048414831517613ade57613add6135fa565b5b5092915050565b6000613af082612fea565b9150613afb83612fea565b9250828201905080821115613b1357613b126135fa565b5b92915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613b4f601483613180565b9150613b5a82613b19565b602082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bcc57607f821691505b602082108103613bdf57613bde613b85565b5b50919050565b7f63616c6c6572206973206e6f74207468652073656e6465722f7265636970696560008201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c41602283613180565b9150613c4c82613be5565b604082019050919050565b60006020820190508181036000830152613c7081613c34565b9050919050565b7f63616c6c6572206973206e6f742074686520726563697069656e740000000000600082015250565b6000613cad601b83613180565b9150613cb882613c77565b602082019050919050565b60006020820190508181036000830152613cdc81613ca0565b9050919050565b7f616d6f756e74206973207a65726f000000000000000000000000000000000000600082015250565b6000613d19600e83613180565b9150613d2482613ce3565b602082019050919050565b60006020820190508181036000830152613d4881613d0c565b9050919050565b600060208284031215613d6557613d64612fe0565b5b6000613d7384828501613822565b91505092915050565b7f73747265616d206e6f7420737461727465640000000000000000000000000000600082015250565b6000613db2601283613180565b9150613dbd82613d7c565b602082019050919050565b60006020820190508181036000830152613de181613da5565b9050919050565b7f616d6f756e7420657863656564732074686520617661696c61626c652062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613e44602483613180565b9150613e4f82613de8565b604082019050919050565b60006020820190508181036000830152613e7381613e37565b9050919050565b6000604082019050613e8f6000830185613121565b613e9c6020830184613121565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613edd82612fea565b9150613ee883612fea565b925082613ef857613ef7613ea3565b5b828204905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613f39601083613180565b9150613f4482613f03565b602082019050919050565b60006020820190508181036000830152613f6881613f2c565b9050919050565b7f57726f6e67206465706f73697400000000000000000000000000000000000000600082015250565b6000613fa5600d83613180565b9150613fb082613f6f565b602082019050919050565b60006020820190508181036000830152613fd481613f98565b9050919050565b7f57726f6e672073656e6465720000000000000000000000000000000000000000600082015250565b6000614011600c83613180565b915061401c82613fdb565b602082019050919050565b6000602082019050818103600083015261404081614004565b9050919050565b7f57726f6e6720746f6b656e000000000000000000000000000000000000000000600082015250565b600061407d600b83613180565b915061408882614047565b602082019050919050565b600060208201905081810360008301526140ac81614070565b9050919050565b6000813590506140c281613880565b92915050565b6000602082840312156140de576140dd612fe0565b5b60006140ec848285016140b3565b91505092915050565b7f496e76616c696420696e70757400000000000000000000000000000000000000600082015250565b600061412b600d83613180565b9150614136826140f5565b602082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f73747265616d20746f20746865207a65726f2061646472657373000000000000600082015250565b6000614197601a83613180565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f73747265616d20746f2074686520636f6e747261637420697473656c66000000600082015250565b6000614203601d83613180565b915061420e826141cd565b602082019050919050565b60006020820190508181036000830152614232816141f6565b9050919050565b7f73747265616d20746f207468652063616c6c6572000000000000000000000000600082015250565b600061426f601483613180565b915061427a82614239565b602082019050919050565b6000602082019050818103600083015261429e81614262565b9050919050565b7f6465706f736974206973207a65726f0000000000000000000000000000000000600082015250565b60006142db600f83613180565b91506142e6826142a5565b602082019050919050565b6000602082019050818103600083015261430a816142ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008135905061434f816137f6565b92915050565b60006020828403121561436b5761436a612fe0565b5b600061437984828501614340565b91505092915050565b7f737461727454696d65206265666f726520626c6f636b2e74696d657374616d70600082015250565b60006143b8602083613180565b91506143c382614382565b602082019050919050565b600060208201905081810360008301526143e7816143ab565b9050919050565b7f496e76616c69642073746f702f73746172742074696d65000000000000000000600082015250565b6000614424601783613180565b915061442f826143ee565b602082019050919050565b6000602082019050818103600083015261445381614417565b9050919050565b7f496e76616c696420626c6f636b54696d65000000000000000000000000000000600082015250565b6000614490601183613180565b915061449b8261445a565b602082019050919050565b600060208201905081810360008301526144bf81614483565b9050919050565b6000602082840312156144dc576144db612fe0565b5b60006144ea848285016137cd565b91505092915050565b6144fc81613873565b82525050565b6000819050919050565b61451581614502565b82525050565b600061010082019050614531600083018b61314b565b61453e602083018a61314b565b61454b6040830189613121565b6145586060830188613121565b61456560808301876130ca565b61457260a08301866144f3565b61457f60c083018561450c565b61458c60e083018461450c565b9998505050505050505050565b7f6465706f73697420736d616c6c6572207468616e2074696d652064656c746100600082015250565b60006145cf601f83613180565b91506145da82614599565b602082019050919050565b600060208201905081810360008301526145fe816145c2565b9050919050565b600061461082612fea565b915061461b83612fea565b92508261462b5761462a613ea3565b5b828206905092915050565b7f4665655261746520746f6f206c61726765000000000000000000000000000000600082015250565b600061466c601183613180565b915061467782614636565b602082019050919050565b6000602082019050818103600083015261469b8161465f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006146fe602683613180565b9150614709826146a2565b604082019050919050565b6000602082019050818103600083015261472d816146f1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061476a602083613180565b915061477582614734565b602082019050919050565b600060208201905081810360008301526147998161475d565b9050919050565b60006147ab826137e2565b91506147b6836137e2565b9250828203905067ffffffffffffffff8111156147d6576147d56135fa565b5b92915050565b7f73747265616d20626c6f636b6564000000000000000000000000000000000000600082015250565b6000614812600e83613180565b915061481d826147dc565b602082019050919050565b6000602082019050818103600083015261484181614805565b9050919050565b7f73747265616d2066696e69736865640000000000000000000000000000000000600082015250565b600061487e600f83613180565b915061488982614848565b602082019050919050565b600060208201905081810360008301526148ad81614871565b9050919050565b60006060820190506148c9600083018661314b565b6148d6602083018561314b565b6148e36040830184613121565b949350505050565b60006148fa6020840184613069565b905092915050565b61490b81613040565b82525050565b6000614920602084018461300b565b905092915050565b600082905092915050565b600060039050919050565b600081905092915050565b6000819050919050565b61495c816137e2565b82525050565b600061496e8383614953565b60208301905092915050565b60006149896020840184614340565b905092915050565b6000602082019050919050565b6149a781614933565b6149b1818461493e565b92506149bc82614949565b8060005b838110156149f5576149d2828461497a565b6149dc8782614962565b96506149e783614991565b9250506001810190506149c0565b505050505050565b6000614a0c60208401846140b3565b905092915050565b614a1d81613873565b82525050565b6101008201614a3560008301836148eb565b614a426000850182614902565b50614a506020830183614911565b614a5d60208501826134b6565b50614a6b60408301836148eb565b614a786040850182614902565b50614a8660608301836148eb565b614a936060850182614902565b50614aa16080830183614928565b614aae608085018261499e565b50614abc60e08301836149fd565b614ac960e0850182614a14565b50505050565b600061014082019050614ae56000830186613121565b614af26020830185614a23565b818103610120830152614b0581846131cc565b9050949350505050565b6000604082019050614b24600083018561314b565b614b316020830184613121565b9392505050565b614b41816130be565b8114614b4c57600080fd5b50565b600081519050614b5e81614b38565b92915050565b600060208284031215614b7a57614b79612fe0565b5b6000614b8884828501614b4f565b91505092915050565b600081519050919050565b6000614ba782614b91565b614bb181856136a5565b9350614bc1818560208601613191565b80840191505092915050565b6000614bd98284614b9c565b91508190509291505056fea2646970667358221220452928569d7a46ef1e9e3a8404c2279ea3736db068b917eb72a2a40bf41f792764736f6c63430008110033000000000000000000000000c107ab6ebc7024a1e6123a5ab0d48d6af8a0e4c10000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b2b5841dbef766d4b521221732f9b618fcf34a87