0 txs
543 calls
constructor
constructor()
functions
allEarned
viewfunction allEarned(address _account) view returns (uint256[] pendingBonusRewards)
balanceOf
viewfunction balanceOf(address _account) view returns (uint256)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
duration
viewfunction duration() view returns (uint256)
earned
viewfunction earned(address _account, address _rewardToken) view returns (uint256)
getRewardLength
viewfunction getRewardLength() view returns (uint256)
getUserAmountTime
viewfunction getUserAmountTime(address _account) view returns (uint256)
isRewardQueuer
viewfunction isRewardQueuer(address) view returns (bool)
isRewardToken
viewfunction isRewardToken(address) view returns (bool)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable(address _rewardToken) view returns (uint256)
mastermagpie
viewfunction mastermagpie() view returns (address)
mgp_deprecated
viewfunction mgp_deprecated() view returns (address)
owner
viewfunction owner() view returns (address)
receipTokenDecimal
viewfunction receipTokenDecimal() view returns (uint256)
receiptToken
viewfunction receiptToken() view returns (address)
rewardPerToken
viewfunction rewardPerToken(address _rewardToken) view returns (uint256)
rewards
viewfunction rewards(address) view returns (uint256 periodFinish, uint256 rewardRate, uint256 lastUpdateTime, uint256 rewardPerTokenStored, uint256 queuedRewards)
rewardTokenInfos
viewfunction rewardTokenInfos() view returns (address[] bonusTokenAddresses, string[] bonusTokenSymbols)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
totalStaked
viewfunction totalStaked() view returns (uint256)
userAmountTime
viewfunction userAmountTime(address) view returns (uint256)
userLastTime
viewfunction userLastTime(address) view returns (uint256)
userRewards
viewfunction userRewards(address, address) view returns (uint256 userRewardPerTokenPaid, uint256 rewards)
vlToken
viewfunction vlToken() view returns (address)
__StreamRewarder_init
nonpayablefunction __StreamRewarder_init(address _mastermagpie, address _rewardQueuer, address _receiptToken, uint256 _duration)
__vlStreamRewarder_init
nonpayablefunction __vlStreamRewarder_init(address _mastermagpie, address _rewardQueuer, address _receiptToken, uint256 _duration)
donateRewards
nonpayablefunction donateRewards(address _rewardToken, uint256 _rewards)
getReward
nonpayablefunction getReward(address _account, address _receiver) returns (bool)
getRewards
nonpayablefunction getRewards(address _account, address _receiver, address[] _rewardTokens)
queueNewRewards
nonpayablefunction queueNewRewards(uint256 _rewards, address _rewardToken) returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
setDuration
nonpayablefunction setDuration(uint256 _duration)
setMastermagpie
nonpayablefunction setMastermagpie(address _mastermagpie)
setRewardQueuerStatus
nonpayablefunction setRewardQueuerStatus(address _rewardQueuer, bool status)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateFor
nonpayablefunction updateFor(address _account)
events
DurationUpdated
event DurationUpdated(uint256 oldDuration, uint256 newDuration)
Initialized
event Initialized(uint8 version)
MastermagpieUpdated
event MastermagpieUpdated(address oldMastermagpie, address newMastermagpie)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
QueuerStatusUpdated
event QueuerStatusUpdated(address rewardQueuer, bool status)
RewardPaid
event RewardPaid(address indexed _user, address indexed _receiver, uint256 _reward, address indexed _rewardToken)
RewardQueued
event RewardQueued(address rewardToken, uint256 rewardAmount)
RewardTokenAdded
event RewardTokenAdded(address indexed _rewardToken)
errors
InvalidToken
error InvalidToken()
OnlyMastermagpie
error OnlyMastermagpie()
OnlyRewardQueuer
error OnlyRewardQueuer()
ZeroAddress
error ZeroAddress()
creation bytecode
0x60806040523480156200001157600080fd5b50620000226200003860201b60201c565b620000326200003860201b60201c565b620001e3565b600060019054906101000a900460ff16156200008b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000829062000186565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff161015620000fd5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000f49190620001c6565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200016e602783620000ff565b91506200017b8262000110565b604082019050919050565b60006020820190508181036000830152620001a1816200015f565b9050919050565b600060ff82169050919050565b620001c081620001a8565b82525050565b6000602082019050620001dd6000830184620001b5565b92915050565b613c8c80620001f36000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80638da5cb5b11610125578063d47c3bf8116100ad578063f12297771161007c578063f1229777146106a3578063f12f0f39146106d3578063f2fde38b146106f1578063f6be71d11461070d578063f7160cb2146107295761021c565b8063d47c3bf81461061b578063e18b70291461064b578063ec78e83214610669578063f0ecc9a6146106875761021c565b8063a980356a116100f4578063a980356a14610550578063b1f7772214610581578063b5fd73f81461059f578063b65a7ea5146105cf578063c002ac79146105ff5761021c565b80638da5cb5b146104c85780638fcf4822146104e6578063918f86741461051657806397fee058146105345761021c565b8063638634ee116101a8578063715018a611610177578063715018a6146104225780637bb7bed11461042c578063817b1cd21461045c57806386b8ea201461047a5780638a544ae3146104aa5761021c565b8063638634ee1461037657806369795e93146103a65780636b091695146103c257806370a08231146103f25761021c565b8063211dc32d116101ef578063211dc32d146102bf57806326a8f843146102ef57806334a887bc1461030b57806345b507e31461032757806352146cdb146103465761021c565b80630700037d146102215780630970491e146102555780630e0a5968146102855780630fb5a6b4146102a1575b600080fd5b61023b6004803603810190610236919061294a565b610747565b60405161024c959493929190612990565b60405180910390f35b61026f600480360381019061026a919061294a565b61077d565b60405161027c91906129fe565b60405180910390f35b61029f600480360381019061029a919061294a565b61079d565b005b6102a96109dc565b6040516102b69190612a19565b60405180910390f35b6102d960048036038101906102d49190612a34565b6109e2565b6040516102e69190612a19565b60405180910390f35b61030960048036038101906103049190612aa0565b610aee565b005b61032560048036038101906103209190612b0c565b610b8a565b005b61032f610c81565b60405161033d929190612d5c565b60405180910390f35b610360600480360381019061035b919061294a565b610e85565b60405161036d9190612e51565b60405180910390f35b610390600480360381019061038b919061294a565b610f68565b60405161039d9190612a19565b60405180910390f35b6103c060048036038101906103bb9190612fbb565b610fbd565b005b6103dc60048036038101906103d79190612a34565b61109b565b6040516103e991906129fe565b60405180910390f35b61040c6004803603810190610407919061294a565b6111a8565b6040516104199190612a19565b60405180910390f35b61042a61124d565b005b6104466004803603810190610441919061302a565b611261565b6040516104539190613066565b60405180910390f35b6104646112a0565b6040516104719190612a19565b60405180910390f35b610494600480360381019061048f919061294a565b611338565b6040516104a19190612a19565b60405180910390f35b6104b2611458565b6040516104bf9190613066565b60405180910390f35b6104d061147e565b6040516104dd9190613066565b60405180910390f35b61050060048036038101906104fb9190613081565b6114a8565b60405161050d91906129fe565b60405180910390f35b61051e6115b0565b60405161052b9190612a19565b60405180910390f35b61054e6004803603810190610549919061294a565b6115b9565b005b61056a60048036038101906105659190612a34565b611666565b6040516105789291906130c1565b60405180910390f35b610589611697565b6040516105969190612a19565b60405180910390f35b6105b960048036038101906105b4919061294a565b61169d565b6040516105c691906129fe565b60405180910390f35b6105e960048036038101906105e4919061294a565b6116bd565b6040516105f69190612a19565b60405180910390f35b610619600480360381019061061491906130ea565b6116d5565b005b6106356004803603810190610630919061294a565b611864565b6040516106429190612a19565b60405180910390f35b61065361187c565b6040516106609190612a19565b60405180910390f35b610671611889565b60405161067e9190613066565b60405180910390f35b6106a1600480360381019061069c91906130ea565b6118af565b005b6106bd60048036038101906106b8919061294a565b611b6c565b6040516106ca9190612a19565b60405180910390f35b6106db611c73565b6040516106e891906131b0565b60405180910390f35b61070b6004803603810190610706919061294a565b611c99565b005b6107276004803603810190610722919061302a565b611d1c565b005b610731611d6f565b60405161073e9190613066565b60405180910390f35b606a6020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b606f6020528060005260406000206000915054906101000a900460ff1681565b60005b606780549050811015610948576000606782815481106107c3576107c26131cb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000606a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061083c82611b6c565b816003018190555061084d82610f68565b81600201819055506000606c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506108df85846109e2565b8160010181905550606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301548160000181905550505050808061094090613229565b9150506107a0565b5061095281611338565b606e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042606d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60685481565b600080606c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090508060200151606954600a610a9691906133a4565b64e8d4a51000610aa691906133ef565b8260000151610ab486611b6c565b610abe9190613431565b610ac7876111a8565b610ad191906133ef565b610adb9190613494565b610ae591906134c5565b91505092915050565b610af6611d95565b80606f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff0c0eb33e40ef0f685ca0beb327742e23068cc5519220964fe1d5ccfc2b638d48282604051610b7e9291906134f9565b60405180910390a15050565b606b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c0d576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c3a3330838573ffffffffffffffffffffffffffffffffffffffff16611e13909392919063ffffffff16565b610c448183611e9c565b7f66de3649755ba0fe643a161cef203044bdd37f1b2c8b778d821b25e8044a26678282604051610c75929190613522565b60405180910390a15050565b606080600060678054905090508067ffffffffffffffff811115610ca857610ca7612e78565b5b604051908082528060200260200182016040528015610cd65781602001602082028036833780820191505090505b5092508067ffffffffffffffff811115610cf357610cf2612e78565b5b604051908082528060200260200182016040528015610d2657816020015b6060815260200190600190039081610d115790505b50915060005b81811015610e7f5760678181548110610d4857610d476131cb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848281518110610d8657610d856131cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838181518110610dd357610dd26131cb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e25573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610e4e91906135f1565b838281518110610e6157610e606131cb565b5b60200260200101819052508080610e7790613229565b915050610d2c565b50509091565b6060600060678054905090508067ffffffffffffffff811115610eab57610eaa612e78565b5b604051908082528060200260200182016040528015610ed95781602001602082028036833780820191505090505b50915060005b81811015610f6157610f2f8460678381548110610eff57610efe6131cb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109e2565b838281518110610f4257610f416131cb565b5b6020026020010181815250508080610f5990613229565b915050610edf565b5050919050565b6000610fb642606a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611fe6565b9050919050565b606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611044576040517f917bd55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61104d8361079d565b60005b815181101561109557600082828151811061106e5761106d6131cb565b5b60200260200101519050611083858583611fff565b508061108e90613229565b9050611050565b50505050565b6000606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611124576040517f917bd55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61112d8361079d565b60005b60678054905081101561119d57600060678281548110611153576111526131cb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061118b858583611fff565b508061119690613229565b9050611130565b506001905092915050565b600060a260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166322607c61836040518263ffffffff1660e01b81526004016112059190613066565b602060405180830381865afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611246919061364f565b9050919050565b611255611d95565b61125f60006121bf565b565b6067818154811061127157600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060a260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568914126040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611333919061364f565b905090565b600080606d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361138f576000915050611453565b600061139a846111a8565b9050600081036113ed57606e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492505050611453565b8082426113fa9190613431565b61140491906133ef565b606e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461144e91906134c5565b925050505b919050565b606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661152d576040517f64af410500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61153682612285565b6115633330858573ffffffffffffffffffffffffffffffffffffffff16611e13909392919063ffffffff16565b61156d8383611e9c565b7f66de3649755ba0fe643a161cef203044bdd37f1b2c8b778d821b25e8044a2667828460405161159e929190613522565b60405180910390a16001905092915050565b64e8d4a5100081565b6115c1611d95565b6000606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3df81d2a777a6ee4d84af178ae94a5d7a97a9d2841858fe15826bfcbe366613c818360405161165a92919061367c565b60405180910390a15050565b606c602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60695481565b606b6020528060005260406000206000915054906101000a900460ff1681565b606d6020528060005260406000206000915090505481565b60008060019054906101000a900460ff161590508080156117065750600160008054906101000a900460ff1660ff16105b8061173357506117153061243e565b1580156117325750600160008054906101000a900460ff1660ff16145b5b611772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176990613728565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156117af576001600060016101000a81548160ff0219169083151502179055505b6117bb858585856118af565b6117c3612461565b8260a260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550801561185d5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516118549190613790565b60405180910390a15b5050505050565b606e6020528060005260406000206000915090505481565b6000606780549050905090565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060019054906101000a900460ff161590508080156118e05750600160008054906101000a900460ff1660ff16105b8061190d57506118ef3061243e565b15801561190c5750600160008054906101000a900460ff1660ff16145b5b61194c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194390613728565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611989576001600060016101000a81548160ff0219169083151502179055505b6119916124ba565b84606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001606f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afc91906137d7565b60ff16606981905550816068819055508015611b655760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051611b5c9190613790565b60405180910390a15b5050505050565b600080606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090506000611bf76112a0565b03611c09578060600151915050611c6e565b611c116112a0565b8160200151606954600a611c2591906133a4565b8360400151611c3387610f68565b611c3d9190613431565b611c4791906133ef565b611c5191906133ef565b611c5b9190613494565b8160600151611c6a91906134c5565b9150505b919050565b60a260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ca1611d95565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0790613876565b60405180910390fd5b611d19816121bf565b50565b611d24611d95565b60006068549050816068819055507ff899c6d536e6cda78c5f4dce43ca0e8c47167deb2875ea8b777f21cc85899b1f8183604051611d639291906130c1565b60405180910390a15050565b60a360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d9d612513565b73ffffffffffffffffffffffffffffffffffffffff16611dbb61147e565b73ffffffffffffffffffffffffffffffffffffffff1614611e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e08906138e2565b60405180910390fd5b565b611e96846323b872dd60e01b858585604051602401611e3493929190613902565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061251b565b50505050565b64e8d4a5100082611ead91906133ef565b91506000606a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000611efc6112a0565b03611f1f57828160040154611f1191906134c5565b816004018190555050611fe2565b611f2882611b6c565b8160030181905550806004015483611f4091906134c5565b92506000816004018190555080600001544210611f725760685483611f659190613494565b8160010181905550611fc1565b6000428260000154611f849190613431565b90506000826001015482611f9891906133ef565b90508085611fa691906134c5565b945060685485611fb69190613494565b836001018190555050505b42816002018190555060685442611fd891906134c5565b8160000181905550505b5050565b6000818310611ff55781611ff7565b825b905092915050565b6000606c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000606c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060008111156121b95761213c83828473ffffffffffffffffffffffffffffffffffffffff166125e29092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f7fe1dfb5fd2a01640e1b559e082ce63e369d4d61e01dc0caec9521e55a8d1e4f846040516121b09190612a19565b60405180910390a45b50505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122eb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661243b576067819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001606b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167ff3e4c2c64e71e6ba2eaab9a599bced62f9eb91d2cda610bf41aa8c80ff2cf82660405160405180910390a25b50565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff166124b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a7906139ab565b60405180910390fd5b6124b8612668565b565b600060019054906101000a900460ff16612509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612500906139ab565b60405180910390fd5b6125116126c1565b565b600033905090565b600061257d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166127229092919063ffffffff16565b90506000815111156125dd578080602001905181019061259d91906139e0565b6125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d390613a7f565b60405180910390fd5b5b505050565b6126638363a9059cbb60e01b8484604051602401612601929190613522565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061251b565b505050565b600060019054906101000a900460ff166126b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ae906139ab565b60405180910390fd5b6001607081905550565b600060019054906101000a900460ff16612710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612707906139ab565b60405180910390fd5b61272061271b612513565b6121bf565b565b6060612731848460008561273a565b90509392505050565b60608247101561277f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277690613b11565b60405180910390fd5b6127888561284e565b6127c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127be90613b7d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516127f09190613be4565b60006040518083038185875af1925050503d806000811461282d576040519150601f19603f3d011682016040523d82523d6000602084013e612832565b606091505b5091509150612842828286612871565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315612881578290506128d1565b6000835111156128945782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c89190613c34565b60405180910390fd5b9392505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612917826128ec565b9050919050565b6129278161290c565b811461293257600080fd5b50565b6000813590506129448161291e565b92915050565b6000602082840312156129605761295f6128e2565b5b600061296e84828501612935565b91505092915050565b6000819050919050565b61298a81612977565b82525050565b600060a0820190506129a56000830188612981565b6129b26020830187612981565b6129bf6040830186612981565b6129cc6060830185612981565b6129d96080830184612981565b9695505050505050565b60008115159050919050565b6129f8816129e3565b82525050565b6000602082019050612a1360008301846129ef565b92915050565b6000602082019050612a2e6000830184612981565b92915050565b60008060408385031215612a4b57612a4a6128e2565b5b6000612a5985828601612935565b9250506020612a6a85828601612935565b9150509250929050565b612a7d816129e3565b8114612a8857600080fd5b50565b600081359050612a9a81612a74565b92915050565b60008060408385031215612ab757612ab66128e2565b5b6000612ac585828601612935565b9250506020612ad685828601612a8b565b9150509250929050565b612ae981612977565b8114612af457600080fd5b50565b600081359050612b0681612ae0565b92915050565b60008060408385031215612b2357612b226128e2565b5b6000612b3185828601612935565b9250506020612b4285828601612af7565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b818161290c565b82525050565b6000612b938383612b78565b60208301905092915050565b6000602082019050919050565b6000612bb782612b4c565b612bc18185612b57565b9350612bcc83612b68565b8060005b83811015612bfd578151612be48882612b87565b9750612bef83612b9f565b925050600181019050612bd0565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c70578082015181840152602081019050612c55565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c9882612c36565b612ca28185612c41565b9350612cb2818560208601612c52565b612cbb81612c7c565b840191505092915050565b6000612cd28383612c8d565b905092915050565b6000602082019050919050565b6000612cf282612c0a565b612cfc8185612c15565b935083602082028501612d0e85612c26565b8060005b85811015612d4a5784840389528151612d2b8582612cc6565b9450612d3683612cda565b925060208a01995050600181019050612d12565b50829750879550505050505092915050565b60006040820190508181036000830152612d768185612bac565b90508181036020830152612d8a8184612ce7565b90509392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dc881612977565b82525050565b6000612dda8383612dbf565b60208301905092915050565b6000602082019050919050565b6000612dfe82612d93565b612e088185612d9e565b9350612e1383612daf565b8060005b83811015612e44578151612e2b8882612dce565b9750612e3683612de6565b925050600181019050612e17565b5085935050505092915050565b60006020820190508181036000830152612e6b8184612df3565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eb082612c7c565b810181811067ffffffffffffffff82111715612ecf57612ece612e78565b5b80604052505050565b6000612ee26128d8565b9050612eee8282612ea7565b919050565b600067ffffffffffffffff821115612f0e57612f0d612e78565b5b602082029050602081019050919050565b600080fd5b6000612f37612f3284612ef3565b612ed8565b90508083825260208201905060208402830185811115612f5a57612f59612f1f565b5b835b81811015612f835780612f6f8882612935565b845260208401935050602081019050612f5c565b5050509392505050565b600082601f830112612fa257612fa1612e73565b5b8135612fb2848260208601612f24565b91505092915050565b600080600060608486031215612fd457612fd36128e2565b5b6000612fe286828701612935565b9350506020612ff386828701612935565b925050604084013567ffffffffffffffff811115613014576130136128e7565b5b61302086828701612f8d565b9150509250925092565b6000602082840312156130405761303f6128e2565b5b600061304e84828501612af7565b91505092915050565b6130608161290c565b82525050565b600060208201905061307b6000830184613057565b92915050565b60008060408385031215613098576130976128e2565b5b60006130a685828601612af7565b92505060206130b785828601612935565b9150509250929050565b60006040820190506130d66000830185612981565b6130e36020830184612981565b9392505050565b60008060008060808587031215613104576131036128e2565b5b600061311287828801612935565b945050602061312387828801612935565b935050604061313487828801612935565b925050606061314587828801612af7565b91505092959194509250565b6000819050919050565b600061317661317161316c846128ec565b613151565b6128ec565b9050919050565b60006131888261315b565b9050919050565b600061319a8261317d565b9050919050565b6131aa8161318f565b82525050565b60006020820190506131c560008301846131a1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061323482612977565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613266576132656131fa565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156132c8578086048111156132a4576132a36131fa565b5b60018516156132b35780820291505b80810290506132c185613271565b9450613288565b94509492505050565b6000826132e1576001905061339d565b816132ef576000905061339d565b8160018114613305576002811461330f5761333e565b600191505061339d565b60ff841115613321576133206131fa565b5b8360020a915084821115613338576133376131fa565b5b5061339d565b5060208310610133831016604e8410600b84101617156133735782820a90508381111561336e5761336d6131fa565b5b61339d565b613380848484600161327e565b92509050818404811115613397576133966131fa565b5b81810290505b9392505050565b60006133af82612977565b91506133ba83612977565b92506133e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846132d1565b905092915050565b60006133fa82612977565b915061340583612977565b925082820261341381612977565b9150828204841483151761342a576134296131fa565b5b5092915050565b600061343c82612977565b915061344783612977565b925082820390508181111561345f5761345e6131fa565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061349f82612977565b91506134aa83612977565b9250826134ba576134b9613465565b5b828204905092915050565b60006134d082612977565b91506134db83612977565b92508282019050808211156134f3576134f26131fa565b5b92915050565b600060408201905061350e6000830185613057565b61351b60208301846129ef565b9392505050565b60006040820190506135376000830185613057565b6135446020830184612981565b9392505050565b600080fd5b600067ffffffffffffffff82111561356b5761356a612e78565b5b61357482612c7c565b9050602081019050919050565b600061359461358f84613550565b612ed8565b9050828152602081018484840111156135b0576135af61354b565b5b6135bb848285612c52565b509392505050565b600082601f8301126135d8576135d7612e73565b5b81516135e8848260208601613581565b91505092915050565b600060208284031215613607576136066128e2565b5b600082015167ffffffffffffffff811115613625576136246128e7565b5b613631848285016135c3565b91505092915050565b60008151905061364981612ae0565b92915050565b600060208284031215613665576136646128e2565b5b60006136738482850161363a565b91505092915050565b60006040820190506136916000830185613057565b61369e6020830184613057565b9392505050565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613712602e836136a5565b915061371d826136b6565b604082019050919050565b6000602082019050818103600083015261374181613705565b9050919050565b6000819050919050565b600060ff82169050919050565b600061377a61377561377084613748565b613151565b613752565b9050919050565b61378a8161375f565b82525050565b60006020820190506137a56000830184613781565b92915050565b6137b481613752565b81146137bf57600080fd5b50565b6000815190506137d1816137ab565b92915050565b6000602082840312156137ed576137ec6128e2565b5b60006137fb848285016137c2565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138606026836136a5565b915061386b82613804565b604082019050919050565b6000602082019050818103600083015261388f81613853565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138cc6020836136a5565b91506138d782613896565b602082019050919050565b600060208201905081810360008301526138fb816138bf565b9050919050565b60006060820190506139176000830186613057565b6139246020830185613057565b6139316040830184612981565b949350505050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613995602b836136a5565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b6000815190506139da81612a74565b92915050565b6000602082840312156139f6576139f56128e2565b5b6000613a04848285016139cb565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613a69602a836136a5565b9150613a7482613a0d565b604082019050919050565b60006020820190508181036000830152613a9881613a5c565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613afb6026836136a5565b9150613b0682613a9f565b604082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613b67601d836136a5565b9150613b7282613b31565b602082019050919050565b60006020820190508181036000830152613b9681613b5a565b9050919050565b600081519050919050565b600081905092915050565b6000613bbe82613b9d565b613bc88185613ba8565b9350613bd8818560208601612c52565b80840191505092915050565b6000613bf08284613bb3565b915081905092915050565b6000613c0682612c36565b613c1081856136a5565b9350613c20818560208601612c52565b613c2981612c7c565b840191505092915050565b60006020820190508181036000830152613c4e8184613bfb565b90509291505056fea2646970667358221220bcb4bbf85e34954f62d3c137b92250e15431970b8df0dc41ee5e072d14304bd264736f6c63430008130033