0 txs
0 calls
constructor
constructor(address _history, uint256 _streamId)
functions
balanceOf
viewfunction balanceOf(uint256 streamId, address who) view returns (uint256 balance)
bank
viewfunction bank() view returns (address)
contractFeeBalance
viewfunction contractFeeBalance() view returns (uint256)
feeCharge
viewfunction feeCharge(uint256 deposit) view returns (uint256)
feeRate
viewfunction feeRate() view returns (uint256)
forwarder
viewfunction forwarder() view returns (address)
getStream
viewfunction getStream(uint256 id) view returns (tuple stream)
getTrustedForwarder
viewfunction getTrustedForwarder() view returns (address forwarder)
history
viewfunction history() view returns (address)
Ierc20permitusdc
viewfunction Ierc20permitusdc() view returns (address)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
minDeposit
viewfunction minDeposit() view returns (uint256)
nextStreamId
viewfunction nextStreamId() view returns (uint256)
numberOfFeeWithdraws
viewfunction numberOfFeeWithdraws() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
token
viewfunction token() view returns (address)
usdcTokenAddress
viewfunction usdcTokenAddress() view returns (address)
versionRecipient
viewfunction versionRecipient() view returns (string)
withDrawFee
viewfunction withDrawFee() view returns (uint256)
withdraws
viewfunction withdraws(uint256) view returns (uint256 amount, uint256 time, address who)
cancelStream
nonpayablefunction cancelStream(uint256 streamId) returns (bool)
changeFeeRate
nonpayablefunction changeFeeRate(uint256 _newFeeRate)
createStream
nonpayablefunction createStream(tuple streamDetails, string title)
pause
nonpayablefunction pause()
permitUSDC
nonpayablefunction permitUSDC(tuple sig)
renounceOwnership
nonpayablefunction renounceOwnership()
setBank
nonpayablefunction setBank(address _newBank)
setMinDeposit
nonpayablefunction setMinDeposit(uint256 _min)
setWithdrawFee
nonpayablefunction setWithdrawFee(uint256 _withDrawFee)
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
0x60806040526040518060400160405280600581526020017f332e302e30000000000000000000000000000000000000000000000000000000815250600490816200004a919062000710565b5073b2b5841dbef766d4b521221732f9b618fcf34a87600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733c499c542cef5e3811e1192ce70d8cc03d5c3359600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600c556064600d556103e8600e55348015620001b757600080fd5b5060405162005007380380620050078339818101604052810190620001dd919062000892565b620001fd620001f1620002f260201b60201c565b6200033460201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200026f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000266906200093a565b60405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002e3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620003fa60201b60201c565b8060038190555050506200095c565b6000601460003690501015801562000317575062000316336200043d60201b60201c565b5b156200032d57601436033560601c905062000331565b3390505b90565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051857607f821691505b6020821081036200052e576200052d620004d0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000559565b620005a4868362000559565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005f1620005eb620005e584620005bc565b620005c6565b620005bc565b9050919050565b6000819050919050565b6200060d83620005d0565b620006256200061c82620005f8565b84845462000566565b825550505050565b600090565b6200063c6200062d565b6200064981848462000602565b505050565b5b8181101562000671576200066560008262000632565b6001810190506200064f565b5050565b601f821115620006c0576200068a8162000534565b620006958462000549565b81016020851015620006a5578190505b620006bd620006b48562000549565b8301826200064e565b50505b505050565b600082821c905092915050565b6000620006e560001984600802620006c5565b1980831691505092915050565b6000620007008383620006d2565b9150826002028217905092915050565b6200071b8262000496565b67ffffffffffffffff811115620007375762000736620004a1565b5b620007438254620004ff565b6200075082828562000675565b600060209050601f83116001811462000788576000841562000773578287015190505b6200077f8582620006f2565b865550620007ef565b601f198416620007988662000534565b60005b82811015620007c2578489015182556001820191506020850194506020810190506200079b565b86831015620007e25784890151620007de601f891682620006d2565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082982620007fc565b9050919050565b6200083b816200081c565b81146200084757600080fd5b50565b6000815190506200085b8162000830565b92915050565b6200086c81620005bc565b81146200087857600080fd5b50565b6000815190506200088c8162000861565b92915050565b60008060408385031215620008ac57620008ab620007f7565b5b6000620008bc858286016200084a565b9250506020620008cf858286016200087b565b9150509250929050565b600082825260208201905092915050565b7f7a65726f20616464726573730000000000000000000000000000000000000000600082015250565b600062000922600c83620008d9565b91506200092f82620008ea565b602082019050919050565b60006020820190508181036000830152620009558162000913565b9050919050565b61469b806200096c6000396000f3fe608060405234801561001057600080fd5b50600436106102055760003560e01c80637c5b36481161011a57806398daac83116100ad578063ce1b815f1161007c578063ce1b815f146105ba578063eea5bf4b146105d8578063f2fde38b146105f6578063f645d4f914610612578063fc0c546a1461063057610205565b806398daac8314610546578063affca93214610564578063b160f9cc14610580578063b6ac642a1461059e57610205565b8063894e9a0d116100e9578063894e9a0d146104be5780638da5cb5b146104ee5780638fcc9cfb1461050c578063978bbdb91461052857610205565b80637c5b36481461044c57806380b148291461047c5780638456cb591461049857806388936029146104a257610205565b8063486ff0cd1161019d5780636db9241b1161016c5780636db9241b146103a6578063715018a6146103d657806376cdb03b146103e057806377b53ece146103fe5780637a9b2c6c1461041c57610205565b8063486ff0cd1461030857806355466c3714610326578063572b6c05146103585780635c975abb1461038857610205565b806328f7c3bf116101d957806328f7c3bf146102925780633656eec2146102b05780633f4ba83a146102e057806341b3d185146102ea57610205565b8062b98a431461020a5780630322bdef14610228578063090d23b9146102585780631e99d56914610274575b600080fd5b61021261064e565b60405161021f9190612bfe565b60405180910390f35b610242600480360381019061023d9190612ca1565b610674565b60405161024f9190612cfc565b60405180910390f35b610272600480360381019061026d9190612d17565b610846565b005b61027c610892565b6040516102899190612d53565b60405180910390f35b61029a610898565b6040516102a79190612d53565b60405180910390f35b6102ca60048036038101906102c59190612ca1565b61089e565b6040516102d79190612d53565b60405180910390f35b6102e8610b48565b005b6102f2610bf2565b6040516102ff9190612d53565b60405180910390f35b610310610bf8565b60405161031d9190612dfe565b60405180910390f35b610340600480360381019061033b9190612e20565b610c86565b60405161034f93929190612e5c565b60405180910390f35b610372600480360381019061036d9190612d17565b610cd0565b60405161037f9190612cfc565b60405180910390f35b610390610d29565b60405161039d9190612cfc565b60405180910390f35b6103c060048036038101906103bb9190612e20565b610d40565b6040516103cd9190612cfc565b60405180910390f35b6103de610f1c565b005b6103e8610f30565b6040516103f59190612e93565b60405180910390f35b610406610f56565b6040516104139190612e93565b60405180910390f35b61043660048036038101906104319190612eae565b610f7c565b6040516104439190612cfc565b60405180910390f35b61046660048036038101906104619190612e20565b611345565b6040516104739190612d53565b60405180910390f35b61049660048036038101906104919190612f12565b611369565b005b6104a0611491565b005b6104bc60048036038101906104b7919061324e565b61153b565b005b6104d860048036038101906104d39190612e20565b611bd1565b6040516104e5919061331f565b60405180910390f35b6104f6611c37565b6040516105039190612e93565b60405180910390f35b61052660048036038101906105219190612e20565b611c61565b005b610530611c73565b60405161053d9190612d53565b60405180910390f35b61054e611c79565b60405161055b919061335b565b60405180910390f35b61057e60048036038101906105799190612e20565b611c9f565b005b610588611cf8565b6040516105959190612d53565b60405180910390f35b6105b860048036038101906105b39190612e20565b611cfe565b005b6105c2611d10565b6040516105cf9190612e93565b60405180910390f35b6105e0611d39565b6040516105ed9190612d53565b60405180910390f35b610610600480360381019061060b9190612d17565b611d3f565b005b61061a611dc2565b6040516106279190612e93565b60405180910390f35b610638611de8565b6040516106459190613397565b60405180910390f35b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061067e611e0e565b60025483111561068d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c657600080fd5b600083116106d357600080fd5b600f600081546106e2906133e1565b9190508190555060405180606001604052808481526020014281526020018373ffffffffffffffffffffffffffffffffffffffff1681525060106000600f548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508260025461079b9190613429565b6002819055506107ee8284600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e8c9092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167f9c74a3eff454be4704451c89978de3c7c598994b70e83bccafa27632a4b80547846040516108349190612d53565b60405180910390a26001905092915050565b61084e611e0e565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b600f5481565b6000826007600082815260200190815260200160002060030160009054906101000a900460ff16610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb906134a9565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75866040518263ffffffff1660e01b81526004016109619190612d53565b600060405180830381865afa15801561097e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109a79190613707565b90506000600760008781526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1615151515815250509050610a0c612b1a565b6000610a1788611f0b565b90508260400151836000015182610a2e9190613750565b610a389190613792565b826000018181525050826020015184600001511115610a8c5782602001518460000151610a659190613429565b82602001818152505081602001518260000151610a829190613429565b8260000181815250505b83610100015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610ad4578160000151955050505050610b41565b8360c0015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610b385781600001518360200151610b1f9190613429565b8260400181815250508160400151955050505050610b41565b60009550505050505b5092915050565b610b50611e0e565b610b58610d29565b610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e90613812565b60405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610bdb612095565b604051610be89190612e93565b60405180910390a1565b600c5481565b60048054610c0590613861565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3190613861565b8015610c7e5780601f10610c5357610100808354040283529160200191610c7e565b820191906000526020600020905b815481529060010190602001808311610c6157829003601f168201915b505050505081565b60106020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600160149054906101000a900460ff16905090565b6000816007600082815260200190815260200160002060030160009054906101000a900460ff16610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d906134a9565b60405180910390fd5b826000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75836040518263ffffffff1660e01b8152600401610e049190612d53565b600060405180830381865afa158015610e21573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610e4a9190613707565b90508060c0015173ffffffffffffffffffffffffffffffffffffffff16610e6f612095565b73ffffffffffffffffffffffffffffffffffffffff161480610ec8575080610100015173ffffffffffffffffffffffffffffffffffffffff16610eb0612095565b73ffffffffffffffffffffffffffffffffffffffff16145b610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90613904565b60405180910390fd5b610f10856120cc565b60019350505050919050565b610f24611e0e565b610f2e60006124a1565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000826007600082815260200190815260200160002060030160009054906101000a900460ff16610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd9906134a9565b60405180910390fd5b836000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75836040518263ffffffff1660e01b81526004016110409190612d53565b600060405180830381865afa15801561105d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110869190613707565b905080610100015173ffffffffffffffffffffffffffffffffffffffff166110ac612095565b73ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613970565b60405180910390fd5b60008503611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906139dc565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75886040518263ffffffff1660e01b81526004016111a29190612d53565b600060405180830381865afa1580156111bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906111e89190613707565b905042816020015167ffffffffffffffff16111561123b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123290613a48565b60405180910390fd5b600061124c8883610100015161089e565b905086811015611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128890613ada565b60405180910390fd5b600082610100015190506112a6898983612567565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638afaa8878a8a6040518363ffffffff1660e01b8152600401611303929190613afa565b600060405180830381600087803b15801561131d57600080fd5b505af1158015611331573d6000803e3d6000fd5b505050506001965050505050505092915050565b6000612710600d54836113589190613750565b6113629190613b52565b9050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d505accf611412612095565b30846080013585606001358660000160208101906114309190613b83565b876020013588604001356040518863ffffffff1660e01b815260040161145c9796959493929190613bd8565b600060405180830381600087803b15801561147657600080fd5b505af115801561148a573d6000803e3d6000fd5b5050505050565b611499611e0e565b6114a1610d29565b156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890613c93565b60405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611524612095565b6040516115319190612e93565b60405180910390a1565b611543610d29565b15611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a90613c93565b60405180910390fd5b6115908260400151612761565b611598612095565b73ffffffffffffffffffffffffffffffffffffffff16826060015173ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090613cff565b60405180910390fd5b600c5482602001511015611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990613d6b565b60405180910390fd5b60006116618360200151611345565b9050806002540160028190555060048360a0015160ff16106116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90613dd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff160361172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290613e43565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff160361179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490613eaf565b60405180910390fd5b6117a5612095565b73ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1603611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d90613f1b565b60405180910390fd5b600083602001510361185d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185490613f87565b60405180910390fd5b6000836080015160006003811061187757611876613fa7565b5b602002015167ffffffffffffffff16036118c8574283608001516000600381106118a4576118a3613fa7565b5b602002019067ffffffffffffffff16908167ffffffffffffffff168152505061193c565b4267ffffffffffffffff1683608001516000600381106118eb576118ea613fa7565b5b602002015167ffffffffffffffff16101561193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290614022565b60405180910390fd5b5b826080015160006003811061195457611953613fa7565b5b602002015167ffffffffffffffff16836080015160016003811061197b5761197a613fa7565b5b602002015167ffffffffffffffff16116119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c19061408e565b60405180910390fd5b611a246119d5612095565b308560200151600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127b4909392919063ffffffff16565b611a9c611a2f612095565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127b4909392919063ffffffff16565b611aa4612b3b565b8360800151600060038110611abc57611abb613fa7565b5b60200201518460800151600160038110611ad957611ad8613fa7565b5b60200201510367ffffffffffffffff16816000018181525050600081600001518560200151611b0891906140ae565b905081600001518560200151611b1e9190613b52565b8260200181815250506000600354905060405180608001604052808460200151815260200187602001518152602001838152602001600115158152506007600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555090505060036000815460010191905081905550611bc9818787612836565b505050505050565b611bd9612b55565b600760008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1615151515815250509050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611c69611e0e565b80600c8190555050565b600d5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ca7611e0e565b6107d0600d541115611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce59061412b565b60405180910390fd5b80600d8190555050565b60025481565b611d06611e0e565b80600e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b611d47611e0e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad906141bd565b60405180910390fd5b611dbf816124a1565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e16612095565b73ffffffffffffffffffffffffffffffffffffffff16611e34611c37565b73ffffffffffffffffffffffffffffffffffffffff1614611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8190614229565b60405180910390fd5b565b611f06838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611ebf929190614249565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128cc565b505050565b6000816007600082815260200190815260200160002060030160009054906101000a900460ff16611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f68906134a9565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75856040518263ffffffff1660e01b8152600401611fce9190612d53565b600060405180830381865afa158015611feb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906120149190613707565b9050806020015167ffffffffffffffff16421161203557600092505061208f565b806040015167ffffffffffffffff1642101561206d57806020015167ffffffffffffffff16426120659190613429565b92505061208f565b806020015181604001516120819190614272565b67ffffffffffffffff169250505b50919050565b600060146000369050101580156120b157506120b033610cd0565b5b156120c557601436033560601c90506120c9565b3390505b90565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd0ddc75836040518263ffffffff1660e01b81526004016121299190612d53565b600060405180830381865afa158015612146573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061216f9190613707565b905042816060015167ffffffffffffffff1611156121c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b9906142fa565b60405180910390fd5b42816040015167ffffffffffffffff161015612213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220a90614366565b60405180910390fd5b8060c0015173ffffffffffffffffffffffffffffffffffffffff16612236612095565b73ffffffffffffffffffffffffffffffffffffffff161480156122625750600181610140015160ff1614155b80156122775750600381610140015160ff1614155b1561228157600080fd5b80610100015173ffffffffffffffffffffffffffffffffffffffff166122a5612095565b73ffffffffffffffffffffffffffffffffffffffff161480156122d15750600281610140015160ff1614155b80156122e65750600381610140015160ff1614155b156122f057600080fd5b6000612300838360c0015161089e565b905060006123138484610100015161089e565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303e65e6f85836040518363ffffffff1660e01b8152600401612372929190613afa565b600060405180830381600087803b15801561238c57600080fd5b505af11580156123a0573d6000803e3d6000fd5b5050505060076000858152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff02191690555050600081146124415761244083610100015182600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e8c9092919063ffffffff16565b5b6000821461249b5761249a8360c0015183600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e8c9092919063ffffffff16565b5b50505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600760008581526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1615151515815250509050600060076000868152602001908152602001600020600201549050838183602001516125ee9190613792565b6125f89190613429565b600760008781526020019081526020016000206001018190555060006007600087815260200190815260200160002060020181905550600060076000878152602001908152602001600020600101540361268f5760076000868152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff021916905550505b6126e983600e54866126a19190613429565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e8c9092919063ffffffff16565b61275a600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e54600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e8c9092919063ffffffff16565b5050505050565b6000813b905060008163ffffffff16146127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a7906143d2565b60405180910390fd5b5050565b612830848573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016127e9939291906143f2565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128cc565b50505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639556b1c28484846040518463ffffffff1660e01b81526004016128959392919061456e565b600060405180830381600087803b1580156128af57600080fd5b505af11580156128c3573d6000803e3d6000fd5b50505050505050565b60006128f7828473ffffffffffffffffffffffffffffffffffffffff1661296390919063ffffffff16565b9050600081511415801561291c57508080602001905181019061291a91906145da565b155b1561295e57826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016129559190612e93565b60405180910390fd5b505050565b606061297183836000612979565b905092915050565b6060814710156129c057306040517fcd7860590000000000000000000000000000000000000000000000000000000081526004016129b79190612e93565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516129e9919061464e565b60006040518083038185875af1925050503d8060008114612a26576040519150601f19603f3d011682016040523d82523d6000602084013e612a2b565b606091505b5091509150612a3b868383612a46565b925050509392505050565b606082612a5b57612a5682612ad5565b612acd565b60008251148015612a83575060008473ffffffffffffffffffffffffffffffffffffffff163b145b15612ac557836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401612abc9190612e93565b60405180910390fd5b819050612ace565b5b9392505050565b600081511115612ae85780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180606001604052806000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b60405180608001604052806000815260200160008152602001600081526020016000151581525090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612bc4612bbf612bba84612b7f565b612b9f565b612b7f565b9050919050565b6000612bd682612ba9565b9050919050565b6000612be882612bcb565b9050919050565b612bf881612bdd565b82525050565b6000602082019050612c136000830184612bef565b92915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612c4081612c2d565b8114612c4b57600080fd5b50565b600081359050612c5d81612c37565b92915050565b6000612c6e82612b7f565b9050919050565b612c7e81612c63565b8114612c8957600080fd5b50565b600081359050612c9b81612c75565b92915050565b60008060408385031215612cb857612cb7612c23565b5b6000612cc685828601612c4e565b9250506020612cd785828601612c8c565b9150509250929050565b60008115159050919050565b612cf681612ce1565b82525050565b6000602082019050612d116000830184612ced565b92915050565b600060208284031215612d2d57612d2c612c23565b5b6000612d3b84828501612c8c565b91505092915050565b612d4d81612c2d565b82525050565b6000602082019050612d686000830184612d44565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612da8578082015181840152602081019050612d8d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612dd082612d6e565b612dda8185612d79565b9350612dea818560208601612d8a565b612df381612db4565b840191505092915050565b60006020820190508181036000830152612e188184612dc5565b905092915050565b600060208284031215612e3657612e35612c23565b5b6000612e4484828501612c4e565b91505092915050565b612e5681612c63565b82525050565b6000606082019050612e716000830186612d44565b612e7e6020830185612d44565b612e8b6040830184612e4d565b949350505050565b6000602082019050612ea86000830184612e4d565b92915050565b60008060408385031215612ec557612ec4612c23565b5b6000612ed385828601612c4e565b9250506020612ee485828601612c4e565b9150509250929050565b600080fd5b600060a08284031215612f0957612f08612eee565b5b81905092915050565b600060a08284031215612f2857612f27612c23565b5b6000612f3684828501612ef3565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f7c82612db4565b810181811067ffffffffffffffff82111715612f9b57612f9a612f44565b5b80604052505050565b6000612fae612c19565b9050612fba8282612f73565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115612fe457612fe3612f44565b5b602082029050919050565b600080fd5b600067ffffffffffffffff82169050919050565b61301181612ff4565b811461301c57600080fd5b50565b60008135905061302e81613008565b92915050565b600061304761304284612fc9565b612fa4565b9050806020840283018581111561306157613060612fef565b5b835b8181101561308a5780613076888261301f565b845260208401935050602081019050613063565b5050509392505050565b600082601f8301126130a9576130a8612fc4565b5b60036130b6848285613034565b91505092915050565b600060ff82169050919050565b6130d5816130bf565b81146130e057600080fd5b50565b6000813590506130f2816130cc565b92915050565b6000610100828403121561310f5761310e612f3f565b5b61311960c0612fa4565b9050600061312984828501612c8c565b600083015250602061313d84828501612c4e565b602083015250604061315184828501612c8c565b604083015250606061316584828501612c8c565b606083015250608061317984828501613094565b60808301525060e061318d848285016130e3565b60a08301525092915050565b600080fd5b600067ffffffffffffffff8211156131b9576131b8612f44565b5b6131c282612db4565b9050602081019050919050565b82818337600083830152505050565b60006131f16131ec8461319e565b612fa4565b90508281526020810184848401111561320d5761320c613199565b5b6132188482856131cf565b509392505050565b600082601f83011261323557613234612fc4565b5b81356132458482602086016131de565b91505092915050565b600080610120838503121561326657613265612c23565b5b6000613274858286016130f8565b92505061010083013567ffffffffffffffff81111561329657613295612c28565b5b6132a285828601613220565b9150509250929050565b6132b581612c2d565b82525050565b6132c481612ce1565b82525050565b6080820160008201516132e060008501826132ac565b5060208201516132f360208501826132ac565b50604082015161330660408501826132ac565b50606082015161331960608501826132bb565b50505050565b600060808201905061333460008301846132ca565b92915050565b600061334582612bcb565b9050919050565b6133558161333a565b82525050565b6000602082019050613370600083018461334c565b92915050565b600061338182612bcb565b9050919050565b61339181613376565b82525050565b60006020820190506133ac6000830184613388565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133ec82612c2d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361341e5761341d6133b2565b5b600182019050919050565b600061343482612c2d565b915061343f83612c2d565b9250828203905081811115613457576134566133b2565b5b92915050565b7f73747265616d20646f6573206e6f742065786973740000000000000000000000600082015250565b6000613493601583612d79565b915061349e8261345d565b602082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b6000815190506134d881612c37565b92915050565b6000815190506134ed81613008565b92915050565b60008151905061350281612c75565b92915050565b600063ffffffff82169050919050565b61352181613508565b811461352c57600080fd5b50565b60008151905061353e81613518565b92915050565b600081519050613553816130cc565b92915050565b600061356c6135678461319e565b612fa4565b90508281526020810184848401111561358857613587613199565b5b613593848285612d8a565b509392505050565b600082601f8301126135b0576135af612fc4565b5b81516135c0848260208601613559565b91505092915050565b600061018082840312156135e0576135df612f3f565b5b6135eb610180612fa4565b905060006135fb848285016134c9565b600083015250602061360f848285016134de565b6020830152506040613623848285016134de565b6040830152506060613637848285016134de565b606083015250608061364b848285016134de565b60808301525060a061365f848285016134c9565b60a08301525060c0613673848285016134f3565b60c08301525060e06136878482850161352f565b60e08301525061010061369c848285016134f3565b610100830152506101206136b284828501613544565b610120830152506101406136c884828501613544565b6101408301525061016082015167ffffffffffffffff8111156136ee576136ed612fbf565b5b6136fa8482850161359b565b6101608301525092915050565b60006020828403121561371d5761371c612c23565b5b600082015167ffffffffffffffff81111561373b5761373a612c28565b5b613747848285016135c9565b91505092915050565b600061375b82612c2d565b915061376683612c2d565b925082820261377481612c2d565b9150828204841483151761378b5761378a6133b2565b5b5092915050565b600061379d82612c2d565b91506137a883612c2d565b92508282019050808211156137c0576137bf6133b2565b5b92915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137fc601483612d79565b9150613807826137c6565b602082019050919050565b6000602082019050818103600083015261382b816137ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061387957607f821691505b60208210810361388c5761388b613832565b5b50919050565b7f63616c6c6572206973206e6f74207468652073656e6465722f7265636970696560008201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b60006138ee602283612d79565b91506138f982613892565b604082019050919050565b6000602082019050818103600083015261391d816138e1565b9050919050565b7f63616c6c6572206973206e6f742074686520726563697069656e740000000000600082015250565b600061395a601b83612d79565b915061396582613924565b602082019050919050565b600060208201905081810360008301526139898161394d565b9050919050565b7f616d6f756e74206973207a65726f000000000000000000000000000000000000600082015250565b60006139c6600e83612d79565b91506139d182613990565b602082019050919050565b600060208201905081810360008301526139f5816139b9565b9050919050565b7f73747265616d206e6f7420737461727465640000000000000000000000000000600082015250565b6000613a32601283612d79565b9150613a3d826139fc565b602082019050919050565b60006020820190508181036000830152613a6181613a25565b9050919050565b7f616d6f756e7420657863656564732074686520617661696c61626c652062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613ac4602483612d79565b9150613acf82613a68565b604082019050919050565b60006020820190508181036000830152613af381613ab7565b9050919050565b6000604082019050613b0f6000830185612d44565b613b1c6020830184612d44565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b5d82612c2d565b9150613b6883612c2d565b925082613b7857613b77613b23565b5b828204905092915050565b600060208284031215613b9957613b98612c23565b5b6000613ba7848285016130e3565b91505092915050565b613bb9816130bf565b82525050565b6000819050919050565b613bd281613bbf565b82525050565b600060e082019050613bed600083018a612e4d565b613bfa6020830189612e4d565b613c076040830188612d44565b613c146060830187612d44565b613c216080830186613bb0565b613c2e60a0830185613bc9565b613c3b60c0830184613bc9565b98975050505050505050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613c7d601083612d79565b9150613c8882613c47565b602082019050919050565b60006020820190508181036000830152613cac81613c70565b9050919050565b7f57726f6e672073656e6465720000000000000000000000000000000000000000600082015250565b6000613ce9600c83612d79565b9150613cf482613cb3565b602082019050919050565b60006020820190508181036000830152613d1881613cdc565b9050919050565b7f546f206c6974746c65206465706f736974000000000000000000000000000000600082015250565b6000613d55601183612d79565b9150613d6082613d1f565b602082019050919050565b60006020820190508181036000830152613d8481613d48565b9050919050565b7f496e76616c696420696e70757400000000000000000000000000000000000000600082015250565b6000613dc1600d83612d79565b9150613dcc82613d8b565b602082019050919050565b60006020820190508181036000830152613df081613db4565b9050919050565b7f53747265616d20746f20746865207a65726f2061646472657373000000000000600082015250565b6000613e2d601a83612d79565b9150613e3882613df7565b602082019050919050565b60006020820190508181036000830152613e5c81613e20565b9050919050565b7f53747265616d20746f2074686520636f6e747261637420697473656c66000000600082015250565b6000613e99601d83612d79565b9150613ea482613e63565b602082019050919050565b60006020820190508181036000830152613ec881613e8c565b9050919050565b7f53747265616d20746f207468652063616c6c6572000000000000000000000000600082015250565b6000613f05601483612d79565b9150613f1082613ecf565b602082019050919050565b60006020820190508181036000830152613f3481613ef8565b9050919050565b7f4465706f736974206973207a65726f0000000000000000000000000000000000600082015250565b6000613f71600f83612d79565b9150613f7c82613f3b565b602082019050919050565b60006020820190508181036000830152613fa081613f64565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f737461727454696d65206265666f726520626c6f636b2e74696d657374616d70600082015250565b600061400c602083612d79565b915061401782613fd6565b602082019050919050565b6000602082019050818103600083015261403b81613fff565b9050919050565b7f496e76616c69642073746f702f73746172742074696d65000000000000000000600082015250565b6000614078601783612d79565b915061408382614042565b602082019050919050565b600060208201905081810360008301526140a78161406b565b9050919050565b60006140b982612c2d565b91506140c483612c2d565b9250826140d4576140d3613b23565b5b828206905092915050565b7f4665655261746520746f6f206c61726765000000000000000000000000000000600082015250565b6000614115601183612d79565b9150614120826140df565b602082019050919050565b6000602082019050818103600083015261414481614108565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006141a7602683612d79565b91506141b28261414b565b604082019050919050565b600060208201905081810360008301526141d68161419a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614213602083612d79565b915061421e826141dd565b602082019050919050565b6000602082019050818103600083015261424281614206565b9050919050565b600060408201905061425e6000830185612e4d565b61426b6020830184612d44565b9392505050565b600061427d82612ff4565b915061428883612ff4565b9250828203905067ffffffffffffffff8111156142a8576142a76133b2565b5b92915050565b7f73747265616d20626c6f636b6564000000000000000000000000000000000000600082015250565b60006142e4600e83612d79565b91506142ef826142ae565b602082019050919050565b60006020820190508181036000830152614313816142d7565b9050919050565b7f73747265616d2066696e69736865640000000000000000000000000000000000600082015250565b6000614350600f83612d79565b915061435b8261431a565b602082019050919050565b6000602082019050818103600083015261437f81614343565b9050919050565b7f4e6f20636f6e7472616374730000000000000000000000000000000000000000600082015250565b60006143bc600c83612d79565b91506143c782614386565b602082019050919050565b600060208201905081810360008301526143eb816143af565b9050919050565b60006060820190506144076000830186612e4d565b6144146020830185612e4d565b6144216040830184612d44565b949350505050565b61443281612c63565b82525050565b600060039050919050565b600081905092915050565b6000819050919050565b61446181612ff4565b82525050565b60006144738383614458565b60208301905092915050565b6000602082019050919050565b61449581614438565b61449f8184614443565b92506144aa8261444e565b8060005b838110156144db5781516144c28782614467565b96506144cd8361447f565b9250506001810190506144ae565b505050505050565b6144ec816130bf565b82525050565b610100820160008201516145096000850182614429565b50602082015161451c60208501826132ac565b50604082015161452f6040850182614429565b5060608201516145426060850182614429565b506080820151614555608085018261448c565b5060a082015161456860e08501826144e3565b50505050565b6000610140820190506145846000830186612d44565b61459160208301856144f2565b8181036101208301526145a48184612dc5565b9050949350505050565b6145b781612ce1565b81146145c257600080fd5b50565b6000815190506145d4816145ae565b92915050565b6000602082840312156145f0576145ef612c23565b5b60006145fe848285016145c5565b91505092915050565b600081519050919050565b600081905092915050565b600061462882614607565b6146328185614612565b9350614642818560208601612d8a565b80840191505092915050565b600061465a828461461d565b91508190509291505056fea264697066735822122088c82dc3d237b0fcf639dcb48fba398aaf4607316182a30510097eadd71ec5d364736f6c63430008110033000000000000000000000000de90006d73593650d8c7b9b16afd04e0bc2d813b0000000000000000000000000000000000000000000000000000000000000001