Contract 0x4AB95DbC6b9a5a6CCC12c4411e00Aaa0462efd00 1
Contract Overview
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x838ad542b22ba6f3c67f3c3b6bab18ac51add48b The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
TifRewards
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2021-09-13 */ //SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/ownership/Ownable.sol pragma solidity ^0.8.7; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(owner, address(0)); owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract StakedTokenWrapper { uint256 public totalSupply; address public feeAddress; uint256 public depositFee; mapping(address => uint256) private _balances; IERC20 public stakedToken; event Staked(address indexed user, uint256 amount, uint256 depositFee); event Withdrawn(address indexed user, uint256 amount); function balanceOf(address account) public view returns (uint256) { return _balances[account]; } string constant _transferErrorMessage = "staked token transfer failed"; function stakeFor(address forWhom, uint128 amount) public payable virtual { IERC20 st = stakedToken; if(st == IERC20(address(0))) { //eth unchecked { uint256 feeAmt = msg.value * depositFee / 10000; require(msg.value > feeAmt, "underflow exception"); uint256 depositedAmt = msg.value - feeAmt; totalSupply += depositedAmt; _balances[forWhom] += depositedAmt; if (feeAmt > 0) { (bool success, ) = feeAddress.call{value: feeAmt}(""); require(success, "eth transfer failed"); } } } else { require(msg.value == 0, "non-zero eth"); require(amount > 0, "Cannot stake 0"); require(st.transferFrom(msg.sender, address(this), amount), _transferErrorMessage); unchecked { uint256 feeAmt = amount * depositFee / 10000; require(amount > feeAmt, "underflow exception"); uint256 depositedAmt = amount - feeAmt; totalSupply += depositedAmt; _balances[forWhom] += depositedAmt; if (feeAmt > 0) { st.transfer(feeAddress, feeAmt); } } } emit Staked(forWhom, amount, depositFee); } function withdraw(uint128 amount) public virtual { require(amount <= _balances[msg.sender], "withdraw: balance is lower"); unchecked { _balances[msg.sender] -= amount; totalSupply = totalSupply-amount; } IERC20 st = stakedToken; if(st == IERC20(address(0))) { //eth (bool success, ) = msg.sender.call{value: amount}(""); require(success, "eth transfer failure"); } else { require(stakedToken.transfer(msg.sender, amount), _transferErrorMessage); } emit Withdrawn(msg.sender, amount); } } contract TifRewards is StakedTokenWrapper, Ownable { IERC20 public rewardToken; uint256 public rewardRate; uint64 public periodFinish; uint64 public lastUpdateTime; uint128 public rewardPerTokenStored; struct UserRewards { uint128 userRewardPerTokenPaid; uint128 rewards; } mapping(address => UserRewards) public userRewards; event RewardAdded(uint256 reward); event RewardPaid(address indexed user, uint256 reward); constructor(IERC20 _rewardToken, IERC20 _stakedToken, address _feeAddress, uint256 _depositFee) { rewardToken = _rewardToken; stakedToken = _stakedToken; feeAddress = _feeAddress; depositFee = _depositFee; } modifier updateReward(address account) { uint128 _rewardPerTokenStored = rewardPerToken(); lastUpdateTime = lastTimeRewardApplicable(); rewardPerTokenStored = _rewardPerTokenStored; userRewards[account].rewards = earned(account); userRewards[account].userRewardPerTokenPaid = _rewardPerTokenStored; _; } function lastTimeRewardApplicable() public view returns (uint64) { uint64 blockTimestamp = uint64(block.timestamp); return blockTimestamp < periodFinish ? blockTimestamp : periodFinish; } function rewardPerToken() public view returns (uint128) { uint256 totalStakedSupply = totalSupply; if (totalStakedSupply == 0) { return rewardPerTokenStored; } unchecked { uint256 rewardDuration = lastTimeRewardApplicable()-lastUpdateTime; return uint128(rewardPerTokenStored + rewardDuration*rewardRate*1e18/totalStakedSupply); } } function earned(address account) public view returns (uint128) { unchecked { return uint128(balanceOf(account)*(rewardPerToken()-userRewards[account].userRewardPerTokenPaid)/1e18 + userRewards[account].rewards); } } function stake(uint128 amount) external payable { stakeFor(msg.sender, amount); } function stakeFor(address forWhom, uint128 amount) public payable override updateReward(forWhom) { super.stakeFor(forWhom, amount); } function withdraw(uint128 amount) public override updateReward(msg.sender) { super.withdraw(amount); } function exit() external { getReward(); withdraw(uint128(balanceOf(msg.sender))); } function getReward() public updateReward(msg.sender) { uint256 reward = earned(msg.sender); if (reward > 0) { userRewards[msg.sender].rewards = 0; require(rewardToken.transfer(msg.sender, reward), "reward transfer failed"); emit RewardPaid(msg.sender, reward); } } function setRewardParams(uint128 reward, uint64 duration) external onlyOwner { unchecked { require(reward > 0); rewardPerTokenStored = rewardPerToken(); uint64 blockTimestamp = uint64(block.timestamp); uint256 maxRewardSupply = rewardToken.balanceOf(address(this)); if(rewardToken == stakedToken) maxRewardSupply -= totalSupply; uint256 leftover = 0; if (blockTimestamp >= periodFinish) { rewardRate = reward/duration; } else { uint256 remaining = periodFinish-blockTimestamp; leftover = remaining*rewardRate; rewardRate = (reward+leftover)/duration; } require(reward+leftover <= maxRewardSupply, "not enough tokens"); lastUpdateTime = blockTimestamp; periodFinish = blockTimestamp+duration; emit RewardAdded(reward); } } function withdrawReward() external onlyOwner { uint256 rewardSupply = rewardToken.balanceOf(address(this)); //ensure funds staked by users can't be transferred out if(rewardToken == stakedToken) rewardSupply -= totalSupply; require(rewardToken.transfer(msg.sender, rewardSupply)); rewardRate = 0; periodFinish = uint64(block.timestamp); } function setFeeAddress(address _feeAddress) external onlyOwner { feeAddress = _feeAddress; } function setFeePercent(uint256 _depositFee) external onlyOwner { require(_depositFee <= 5000, "deposit fee must be smaller than 50%"); depositFee = _depositFee; } }
[{"inputs":[{"internalType":"contract IERC20","name":"_rewardToken","type":"address"},{"internalType":"contract IERC20","name":"_stakedToken","type":"address"},{"internalType":"address","name":"_feeAddress","type":"address"},{"internalType":"uint256","name":"_depositFee","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"depositFee","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositFee","type":"uint256"}],"name":"setFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"reward","type":"uint128"},{"internalType":"uint64","name":"duration","type":"uint64"}],"name":"setRewardParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"stake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"forWhom","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"stakeFor","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"stakedToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewards","outputs":[{"internalType":"uint128","name":"userRewardPerTokenPaid","type":"uint128"},{"internalType":"uint128","name":"rewards","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawReward","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x6080604052600436106101805760003560e01c80638705fcd4116100d1578063cc7a262e1161008a578063e9fad8ee11610064578063e9fad8ee14610498578063ebe2b12b146104ad578063f2fde38b146104cd578063f7c618c1146104ed57600080fd5b8063cc7a262e1461043c578063cd3daf9d1461045c578063df136d651461047157600080fd5b80638705fcd41461038d57806388fe2be8146103ad57806389ee4bde146103c05780638da5cb5b146103e0578063c885bc5814610400578063c8f33c911461041557600080fd5b806367a527931161013e578063715018a611610118578063715018a6146103155780637b0a47ee1461032a5780637ce3489b1461034057806380faa57d1461036057600080fd5b806367a52793146102b657806370458d85146102cc57806370a08231146102df57600080fd5b80628cc2621461018557806302387a7b146101c25780630660f1e8146101e457806318160ddd146102455780633d18b91214610269578063412753581461027e575b600080fd5b34801561019157600080fd5b506101a56101a036600461166a565b61050d565b6040516001600160801b0390911681526020015b60405180910390f35b3480156101ce57600080fd5b506101e26101dd3660046116e1565b61058a565b005b3480156101f057600080fd5b506102256101ff36600461166a565b6009602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101b9565b34801561025157600080fd5b5061025b60005481565b6040519081526020016101b9565b34801561027557600080fd5b506101e2610629565b34801561028a57600080fd5b5060015461029e906001600160a01b031681565b6040516001600160a01b0390911681526020016101b9565b3480156102c257600080fd5b5061025b60025481565b6101e26102da36600461168c565b6107fb565b3480156102eb57600080fd5b5061025b6102fa36600461166a565b6001600160a01b031660009081526003602052604090205490565b34801561032157600080fd5b506101e261089c565b34801561033657600080fd5b5061025b60075481565b34801561034c57600080fd5b506101e261035b36600461173f565b610910565b34801561036c57600080fd5b5061037561099d565b6040516001600160401b0390911681526020016101b9565b34801561039957600080fd5b506101e26103a836600461166a565b6109d1565b6101e26103bb3660046116e1565b610a1d565b3480156103cc57600080fd5b506101e26103db3660046116fc565b610a2a565b3480156103ec57600080fd5b5060055461029e906001600160a01b031681565b34801561040c57600080fd5b506101e2610c86565b34801561042157600080fd5b5060085461037590600160401b90046001600160401b031681565b34801561044857600080fd5b5060045461029e906001600160a01b031681565b34801561046857600080fd5b506101a5610e09565b34801561047d57600080fd5b506008546101a590600160801b90046001600160801b031681565b3480156104a457600080fd5b506101e2610e90565b3480156104b957600080fd5b50600854610375906001600160401b031681565b3480156104d957600080fd5b506101e26104e836600461166a565b610eb3565b3480156104f957600080fd5b5060065461029e906001600160a01b031681565b6001600160a01b0381166000908152600960205260408120546001600160801b03600160801b8204811691670de0b6b3a7640000911661054b610e09565b036001600160801b0316610574856001600160a01b031660009081526003602052604090205490565b028161058257610582611820565b040192915050565b336000610595610e09565b905061059f61099d565b600880546001600160801b03808516600160801b026001600160401b03948516600160401b029190911693909116929092179190911790556105e08261050d565b6001600160a01b03831660009081526009602052604090206001600160801b038381169216600160801b026001600160801b03191691909117905561062483610ee6565b505050565b336000610634610e09565b905061063e61099d565b600880546001600160801b03808516600160801b026001600160401b03948516600160401b0291909116939091169290921791909117905561067f8261050d565b6001600160a01b03831660009081526009602052604081206001600160801b038481169316600160801b026001600160801b031916929092179091556106c43361050d565b6001600160801b03169050801561062457336000818152600960205260409081902080546001600160801b03169055600654905163a9059cbb60e01b81526004810192909252602482018390526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077691906116bf565b6107c05760405162461bcd60e51b81526020600482015260166024820152751c995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064015b60405180910390fd5b60405181815233907fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486906020015b60405180910390a2505050565b816000610806610e09565b905061081061099d565b600880546001600160801b03808516600160801b026001600160401b03948516600160401b029190911693909116929092179190911790556108518261050d565b6001600160a01b03831660009081526009602052604090206001600160801b038381169216600160801b026001600160801b0319169190911790556108968484611149565b50505050565b6005546001600160a01b031633146108c65760405162461bcd60e51b81526004016107b7906117c6565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461093a5760405162461bcd60e51b81526004016107b7906117c6565b6113888111156109985760405162461bcd60e51b8152602060048201526024808201527f6465706f73697420666565206d75737420626520736d616c6c6572207468616e6044820152632035302560e01b60648201526084016107b7565b600255565b60085460009042906001600160401b03908116908216106109c9576008546001600160401b03166109cb565b805b91505090565b6005546001600160a01b031633146109fb5760405162461bcd60e51b81526004016107b7906117c6565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610a2733826107fb565b50565b6005546001600160a01b03163314610a545760405162461bcd60e51b81526004016107b7906117c6565b6000826001600160801b031611610a6a57600080fd5b610a72610e09565b600880546001600160801b03928316600160801b0292169190911790556006546040516370a0823160e01b815230600482015242916000916001600160a01b03909116906370a082319060240160206040518083038186803b158015610ad757600080fd5b505afa158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0f9190611758565b6004546006549192506001600160a01b0391821691161415610b315760005490035b6008546000906001600160401b0390811690841610610b7d57836001600160401b0316856001600160801b031681610b6b57610b6b611820565b046001600160801b0316600755610bb9565b506008546007546001600160401b0391821684900382169081029185166001600160801b038716830181610bb357610bb3611820565b04600755505b8181866001600160801b0316011115610c085760405162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b60448201526064016107b7565b600880546001600160801b031916600160401b6001600160401b038087169190910267ffffffffffffffff191691909117858701919091161790556040516001600160801b03861681527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a15050505050565b6005546001600160a01b03163314610cb05760405162461bcd60e51b81526004016107b7906117c6565b6006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c9190611758565b6004546006549192506001600160a01b0391821691161415610d5857600054610d5590826117fb565b90505b60065460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc91906116bf565b610de557600080fd5b5060006007556008805467ffffffffffffffff1916426001600160401b0316179055565b6000805480610e2a575050600854600160801b90046001600160801b031690565b600854600090600160401b90046001600160401b0316610e4861099d565b036001600160401b03169050816007548202670de0b6b3a76400000281610e7157610e71611820565b6008546001600160801b03600160801b90910416919004019392505050565b610e98610629565b33600090815260036020526040902054610eb19061058a565b565b6005546001600160a01b03163314610edd5760405162461bcd60e51b81526004016107b7906117c6565b610a2781611576565b336000908152600360205260409020546001600160801b0382161115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f77697468647261773a2062616c616e6365206973206c6f77657200000000000060448201526064016107b7565b33600090815260036020526040812080546001600160801b0384169081900390915581540390556004546001600160a01b0316806110245760405160009033906001600160801b038516908381818185875af1925050503d8060008114610fd1576040519150601f19603f3d011682016040523d82523d6000602084013e610fd6565b606091505b505090508061101e5760405162461bcd60e51b8152602060048201526014602482015273657468207472616e73666572206661696c75726560601b60448201526064016107b7565b50611107565b6004805460405163a9059cbb60e01b815233928101929092526001600160801b03841660248301526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561107957600080fd5b505af115801561108d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b191906116bf565b6040518060400160405280601c81526020017f7374616b656420746f6b656e207472616e73666572206661696c656400000000815250906111055760405162461bcd60e51b81526004016107b79190611771565b505b6040516001600160801b038316815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a25050565b6004546001600160a01b03168061128a57600061271060025434028161117157611171611820565b0490508034116111b95760405162461bcd60e51b81526020600482015260136024820152723ab73232b9333637bb9032bc31b2b83a34b7b760691b60448201526064016107b7565b600080543483900390810182556001600160a01b0386168252600360205260409091208054820190558115611283576001546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611235576040519150601f19603f3d011682016040523d82523d6000602084013e61123a565b606091505b50509050806112815760405162461bcd60e51b8152602060048201526013602482015272195d1a081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016107b7565b505b5050611528565b34156112c75760405162461bcd60e51b815260206004820152600c60248201526b0dcdedc5af4cae4de40cae8d60a31b60448201526064016107b7565b6000826001600160801b0316116113115760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016107b7565b6040516323b872dd60e01b81523360048201523060248201526001600160801b03831660448201526001600160a01b038216906323b872dd90606401602060405180830381600087803b15801561136757600080fd5b505af115801561137b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139f91906116bf565b6040518060400160405280601c81526020017f7374616b656420746f6b656e207472616e73666572206661696c656400000000815250906113f35760405162461bcd60e51b81526004016107b79190611771565b506000612710600254846001600160801b0316028161141457611414611820565b04905080836001600160801b0316116114655760405162461bcd60e51b81526020600482015260136024820152723ab73232b9333637bb9032bc31b2b83a34b7b760691b60448201526064016107b7565b600080546001600160801b03851683900390810182556001600160a01b03861682526003602052604090912080548201905581156115255760015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb90604401602060405180830381600087803b1580156114eb57600080fd5b505af11580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906116bf565b505b50505b600254604080516001600160801b038516815260208101929092526001600160a01b038516917f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9091016107ee565b6001600160a01b0381166115db5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107b7565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461164e57600080fd5b919050565b80356001600160801b038116811461164e57600080fd5b60006020828403121561167c57600080fd5b61168582611637565b9392505050565b6000806040838503121561169f57600080fd5b6116a883611637565b91506116b660208401611653565b90509250929050565b6000602082840312156116d157600080fd5b8151801515811461168557600080fd5b6000602082840312156116f357600080fd5b61168582611653565b6000806040838503121561170f57600080fd5b61171883611653565b915060208301356001600160401b038116811461173457600080fd5b809150509250929050565b60006020828403121561175157600080fd5b5035919050565b60006020828403121561176a57600080fd5b5051919050565b600060208083528351808285015260005b8181101561179e57858101830151858201604001528201611782565b818111156117b0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008282101561181b57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052601260045260246000fdfea26469706673582212204173727a9123058841be079bac64b931a388de3c73d3804cbe70dfbdfd4ddc1c64736f6c63430008070033
Deployed ByteCode Sourcemap
5302:4597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7069:252;;;;;;;;;;-1:-1:-1;7069:252:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;8431:47:1;;;8413:66;;8401:2;8386:18;7069:252:0;;;;;;;;7587:116;;;;;;;;;;-1:-1:-1;7587:116:0;;;;;:::i;:::-;;:::i;:::-;;5634:50;;;;;;;;;;-1:-1:-1;5634:50:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;5634:50:0;;;;-1:-1:-1;;;5634:50:0;;;;;;;;;-1:-1:-1;;;;;8958:15:1;;;8940:34;;9010:15;;;;9005:2;8990:18;;8983:43;8860:18;5634:50:0;8713:319:1;2708:26:0;;;;;;;;;;;;;;;;;;;9477:25:1;;;9465:2;9450:18;2708:26:0;9331:177:1;7825:335:0;;;;;;;;;;;;;:::i;2741:25::-;;;;;;;;;;-1:-1:-1;2741:25:0;;;;-1:-1:-1;;;;;2741:25:0;;;;;;-1:-1:-1;;;;;2425:32:1;;;2407:51;;2395:2;2380:18;2741:25:0;2261:203:1;2773:25:0;;;;;;;;;;;;;;;;7432:147;;;;;;:::i;:::-;;:::i;3036:110::-;;;;;;;;;;-1:-1:-1;3036:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;3120:18:0;3093:7;3120:18;;;:9;:18;;;;;;;3036:110;1248:138;;;;;;;;;;;;;:::i;5392:25::-;;;;;;;;;;;;;;;;9711:185;;;;;;;;;;-1:-1:-1;9711:185:0;;;;;:::i;:::-;;:::i;6422:210::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9675:31:1;;;9657:50;;9645:2;9630:18;6422:210:0;9513:200:1;9597:106:0;;;;;;;;;;-1:-1:-1;9597:106:0;;;;;:::i;:::-;;:::i;7329:95::-;;;;;;:::i;:::-;;:::i;8168:999::-;;;;;;;;;;-1:-1:-1;8168:999:0;;;;;:::i;:::-;;:::i;516:20::-;;;;;;;;;;-1:-1:-1;516:20:0;;;;-1:-1:-1;;;;;516:20:0;;;9175:414;;;;;;;;;;;;;:::i;5457:28::-;;;;;;;;;;-1:-1:-1;5457:28:0;;;;-1:-1:-1;;;5457:28:0;;-1:-1:-1;;;;;5457:28:0;;;2859:25;;;;;;;;;;-1:-1:-1;2859:25:0;;;;-1:-1:-1;;;;;2859:25:0;;;6640:421;;;;;;;;;;;;;:::i;5492:35::-;;;;;;;;;;-1:-1:-1;5492:35:0;;;;-1:-1:-1;;;5492:35:0;;-1:-1:-1;;;;;5492:35:0;;;7711:106;;;;;;;;;;;;;:::i;5424:26::-;;;;;;;;;;-1:-1:-1;5424:26:0;;;;-1:-1:-1;;;;;5424:26:0;;;1541:109;;;;;;;;;;-1:-1:-1;1541:109:0;;;;;:::i;:::-;;:::i;5360:25::-;;;;;;;;;;-1:-1:-1;5360:25:0;;;;-1:-1:-1;;;;;5360:25:0;;;7069:252;-1:-1:-1;;;;;7273:20:0;;7123:7;7273:20;;;:11;:20;;;;;:28;-1:-1:-1;;;;;;;;7273:28:0;;;;;7266:4;;7221:43;7204:16;:14;:16::i;:::-;:60;-1:-1:-1;;;;;7184:81:0;:18;7194:7;-1:-1:-1;;;;;3120:18:0;3093:7;3120:18;;;:9;:18;;;;;;;3036:110;7184:18;:81;:86;;;;;:::i;:::-;;:117;;7069:252;-1:-1:-1;;7069:252:0:o;7587:116::-;7650:10;6102:29;6134:16;:14;:16::i;:::-;6102:48;;6178:26;:24;:26::i;:::-;6161:14;:43;;-1:-1:-1;;;;;6215:44:0;;;-1:-1:-1;;;6215:44:0;-1:-1:-1;;;;;6161:43:0;;;-1:-1:-1;;;6161:43:0;6215:44;;;;;;;;;;;;;;;;;;6301:15;6308:7;6301:6;:15::i;:::-;-1:-1:-1;;;;;6270:20:0;;;;;;:11;:20;;;;;-1:-1:-1;;;;;6327:67:0;;;6270:46;;-1:-1:-1;;;6270:46:0;-1:-1:-1;;;;;;6327:67:0;;;;;;;7673:22:::1;7688:6:::0;7673:14:::1;:22::i;:::-;6091:323:::0;7587:116;;:::o;7825:335::-;7866:10;6102:29;6134:16;:14;:16::i;:::-;6102:48;;6178:26;:24;:26::i;:::-;6161:14;:43;;-1:-1:-1;;;;;6215:44:0;;;-1:-1:-1;;;6215:44:0;-1:-1:-1;;;;;6161:43:0;;;-1:-1:-1;;;6161:43:0;6215:44;;;;;;;;;;;;;;;;;;6301:15;6308:7;6301:6;:15::i;:::-;-1:-1:-1;;;;;6270:20:0;;;;;;:11;:20;;;;;-1:-1:-1;;;;;6327:67:0;;;6270:46;;-1:-1:-1;;;6270:46:0;-1:-1:-1;;;;;;6327:67:0;;;;;;;;7906:18:::1;7913:10;7906:6;:18::i;:::-;-1:-1:-1::0;;;;;7889:35:0::1;::::0;-1:-1:-1;7939:10:0;;7935:218:::1;;7978:10;8000:1;7966:23:::0;;;:11:::1;:23;::::0;;;;;;:35;;-1:-1:-1;;;;;7966:35:0::1;::::0;;8024:11:::1;::::0;:40;;-1:-1:-1;;;8024:40:0;;::::1;::::0;::::1;3384:51:1::0;;;;3451:18;;;3444:34;;;-1:-1:-1;;;;;8024:11:0::1;::::0;:20:::1;::::0;3357:18:1;;8024:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8016:75;;;::::0;-1:-1:-1;;;8016:75:0;;5606:2:1;8016:75:0::1;::::0;::::1;5588:21:1::0;5645:2;5625:18;;;5618:30;-1:-1:-1;;;5664:18:1;;;5657:52;5726:18;;8016:75:0::1;;;;;;;;;8111:30;::::0;9477:25:1;;;8122:10:0::1;::::0;8111:30:::1;::::0;9465:2:1;9450:18;8111:30:0::1;;;;;;;;7878:282;6091:323:::0;7825:335;:::o;7432:147::-;7520:7;6102:29;6134:16;:14;:16::i;:::-;6102:48;;6178:26;:24;:26::i;:::-;6161:14;:43;;-1:-1:-1;;;;;6215:44:0;;;-1:-1:-1;;;6215:44:0;-1:-1:-1;;;;;6161:43:0;;;-1:-1:-1;;;6161:43:0;6215:44;;;;;;;;;;;;;;;;;;6301:15;6308:7;6301:6;:15::i;:::-;-1:-1:-1;;;;;6270:20:0;;;;;;:11;:20;;;;;-1:-1:-1;;;;;6327:67:0;;;6270:46;;-1:-1:-1;;;6270:46:0;-1:-1:-1;;;;;;6327:67:0;;;;;;;7540:31:::1;7555:7:::0;7564:6;7540:14:::1;:31::i;:::-;6091:323:::0;7432:147;;;:::o;1248:138::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;1331:5:::1;::::0;1310:39:::1;::::0;1346:1:::1;::::0;-1:-1:-1;;;;;1331:5:0::1;::::0;1310:39:::1;::::0;1346:1;;1310:39:::1;1360:5;:18:::0;;-1:-1:-1;;;;;;1360:18:0::1;::::0;;1248:138::o;9711:185::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;9808:4:::1;9793:11;:19;;9785:68;;;::::0;-1:-1:-1;;;9785:68:0;;8064:2:1;9785:68:0::1;::::0;::::1;8046:21:1::0;8103:2;8083:18;;;8076:30;8142:34;8122:18;;;8115:62;-1:-1:-1;;;8193:18:1;;;8186:34;8237:19;;9785:68:0::1;7862:400:1::0;9785:68:0::1;9864:10;:24:::0;9711:185::o;6422:210::-;6580:12;;6479:6;;6529:15;;-1:-1:-1;;;;;6580:12:0;;;6563:29;;;;:61;;6612:12;;-1:-1:-1;;;;;6612:12:0;6563:61;;;6595:14;6563:61;6556:68;;;6422:210;:::o;9597:106::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;9671:10:::1;:24:::0;;-1:-1:-1;;;;;;9671:24:0::1;-1:-1:-1::0;;;;;9671:24:0;;;::::1;::::0;;;::::1;::::0;;9597:106::o;7329:95::-;7388:28;7397:10;7409:6;7388:8;:28::i;:::-;7329:95;:::o;8168:999::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;8298:1:::1;8289:6;-1:-1:-1::0;;;;;8289:10:0::1;;8281:19;;;::::0;::::1;;8338:16;:14;:16::i;:::-;8315:20;:39:::0;;-1:-1:-1;;;;;8315:39:0;;::::1;-1:-1:-1::0;;;8315:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;8457:11:::1;::::0;:36:::1;::::0;-1:-1:-1;;;8457:36:0;;8487:4:::1;8457:36;::::0;::::1;2407:51:1::0;8400:15:0::1;::::0;-1:-1:-1;;;;;;;8457:11:0;;::::1;::::0;:21:::1;::::0;2380:18:1;;8457:36:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8526:11;::::0;8511::::1;::::0;8431:62;;-1:-1:-1;;;;;;8511:11:0;;::::1;8526::::0;::::1;8511:26;8508:78;;;8575:11;::::0;8556:30;::::1;8508:78;8658:12;::::0;8601:16:::1;::::0;-1:-1:-1;;;;;8658:12:0;;::::1;8640:30:::0;;::::1;;8636:295;;8711:8;-1:-1:-1::0;;;;;8704:15:0::1;:6;-1:-1:-1::0;;;;;8704:15:0::1;;;;;;:::i;:::-;;-1:-1:-1::0;;;;;8691:28:0::1;:10;:28:::0;8636:295:::1;;;-1:-1:-1::0;8780:12:0::1;::::0;8847:10:::1;::::0;-1:-1:-1;;;;;8780:12:0;;::::1;:27:::0;;::::1;8760:47:::0;::::1;8837:20:::0;;::::1;::::0;8889:26;::::1;-1:-1:-1::0;;;;;8890:15:0;::::1;::::0;::::1;8889:26:::0;::::1;;;;:::i;:::-;;8876:10;:39:::0;-1:-1:-1;8636:295:0::1;8973:15;8961:8;8954:6;-1:-1:-1::0;;;;;8954:15:0::1;;:34;;8946:64;;;::::0;-1:-1:-1;;;8946:64:0;;7009:2:1;8946:64:0::1;::::0;::::1;6991:21:1::0;7048:2;7028:18;;;7021:30;-1:-1:-1;;;7067:18:1;;;7060:47;7124:18;;8946:64:0::1;6807:341:1::0;8946:64:0::1;9025:14;:31:::0;;-1:-1:-1;;;;;;9071:38:0;-1:-1:-1;;;;;;;;9025:31:0;;::::1;::::0;;;::::1;-1:-1:-1::0;;9071:38:0;;;;;9086:23;;::::1;9071:38:::0;;;::::1;;::::0;;9129:19:::1;::::0;-1:-1:-1;;;;;8431:47:1;;8413:66;;9129:19:0::1;::::0;8401:2:1;8386:18;9129:19:0::1;;;;;;;8256:904;;;8168:999:::0;;:::o;9175:414::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;9254:11:::1;::::0;:36:::1;::::0;-1:-1:-1;;;9254:36:0;;9284:4:::1;9254:36;::::0;::::1;2407:51:1::0;9231:20:0::1;::::0;-1:-1:-1;;;;;9254:11:0::1;::::0;:21:::1;::::0;2380:18:1;;9254:36:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9384:11;::::0;9369::::1;::::0;9231:59;;-1:-1:-1;;;;;;9369:11:0;;::::1;9384::::0;::::1;9369:26;9366:75;;;9430:11;::::0;9414:27:::1;::::0;;::::1;:::i;:::-;;;9366:75;9460:11;::::0;:46:::1;::::0;-1:-1:-1;;;9460:46:0;;9481:10:::1;9460:46;::::0;::::1;3384:51:1::0;3451:18;;;3444:34;;;-1:-1:-1;;;;;9460:11:0;;::::1;::::0;:20:::1;::::0;3357:18:1;;9460:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9452:55;;;::::0;::::1;;-1:-1:-1::0;9531:1:0::1;9518:10;:14:::0;9543:12:::1;:38:::0;;-1:-1:-1;;9543:38:0::1;9565:15;-1:-1:-1::0;;;;;9543:38:0::1;;::::0;;9175:414::o;6640:421::-;6687:7;6735:11;;6761:22;6757:82;;-1:-1:-1;;6807:20:0;;-1:-1:-1;;;6807:20:0;;-1:-1:-1;;;;;6807:20:0;;6640:421::o;6757:82::-;6926:14;;6874:22;;-1:-1:-1;;;6926:14:0;;-1:-1:-1;;;;;6926:14:0;6899:26;:24;:26::i;:::-;:41;-1:-1:-1;;;;;6874:66:0;;;7024:17;7008:10;;6993:14;:25;7019:4;6993:30;:48;;;;;:::i;:::-;6970:20;;-1:-1:-1;;;;;;;;6970:20:0;;;;6993:48;;;6970:71;;6640:421;-1:-1:-1;;;6640:421:0:o;7711:106::-;7747:11;:9;:11::i;:::-;7796:10;3093:7;3120:18;;;:9;:18;;;;;;7769:40;;7587:116;:::i;7769:40::-;7711:106::o;1541:109::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;1614:28:::1;1633:8;1614:18;:28::i;4659:636::-:0;4747:10;4737:21;;;;:9;:21;;;;;;-1:-1:-1;;;;;4727:31:0;;;;4719:70;;;;-1:-1:-1;;;4719:70:0;;6305:2:1;4719:70:0;;;6287:21:1;6344:2;6324:18;;;6317:30;6383:28;6363:18;;;6356:56;6429:18;;4719:70:0;6103:350:1;4719:70:0;4835:10;4825:21;;;;:9;:21;;;;;:31;;-1:-1:-1;;;;;4825:31:0;;;;;;;;;4885:11;;:18;4871:32;;4937:11;;-1:-1:-1;;;;;4937:11:0;4962:24;4959:284;;5028:34;;5010:12;;5028:10;;-1:-1:-1;;;;;5028:34:0;;;5010:12;5028:34;5010:12;5028:34;;:10;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5009:53;;;5085:7;5077:40;;;;-1:-1:-1;;;5077:40:0;;6660:2:1;5077:40:0;;;6642:21:1;6699:2;6679:18;;;6672:30;-1:-1:-1;;;6718:18:1;;;6711:50;6778:18;;5077:40:0;6458:344:1;5077:40:0;4988:141;4959:284;;;5167:11;;;:40;;-1:-1:-1;;;5167:40:0;;5188:10;5167:40;;;3064:51:1;;;;-1:-1:-1;;;;;3151:47:1;;3131:18;;;3124:75;-1:-1:-1;;;;;5167:11:0;;:20;;3037:18:1;;5167:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5209:21;;;;;;;;;;;;;;;;;5159:72;;;;;-1:-1:-1;;;5159:72:0;;;;;;;;:::i;:::-;;4959:284;5258:29;;-1:-1:-1;;;;;8431:47:1;;8413:66;;5268:10:0;;5258:29;;8401:2:1;8386:18;5258:29:0;;;;;;;4708:587;4659:636;:::o;3237:1414::-;3334:11;;-1:-1:-1;;;;;3334:11:0;3359:24;3356:1237;;3435:14;3477:5;3464:10;;3452:9;:22;:30;;;;;:::i;:::-;;3435:47;;3521:6;3509:9;:18;3501:50;;;;-1:-1:-1;;;3501:50:0;;7355:2:1;3501:50:0;;;7337:21:1;7394:2;7374:18;;;7367:30;-1:-1:-1;;;7413:18:1;;;7406:49;7472:18;;3501:50:0;7153:343:1;3501:50:0;3570:20;3630:27;;3593:9;:18;;;3630:27;;;;;-1:-1:-1;;;;;3676:18:0;;;;:9;:18;;;;;;:34;;;;;;3733:10;;3729:174;;3787:10;;:34;;3769:12;;-1:-1:-1;;;;;3787:10:0;;3810:6;;3769:12;3787:34;3769:12;3787:34;3810:6;3787:10;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:53;;;3852:7;3844:39;;;;-1:-1:-1;;;3844:39:0;;5957:2:1;3844:39:0;;;5939:21:1;5996:2;5976:18;;;5969:30;-1:-1:-1;;;6015:18:1;;;6008:49;6074:18;;3844:39:0;5755:343:1;3844:39:0;3745:158;3729:174;3406:512;;3356:1237;;;3967:9;:14;3959:39;;;;-1:-1:-1;;;3959:39:0;;5265:2:1;3959:39:0;;;5247:21:1;5304:2;5284:18;;;5277:30;-1:-1:-1;;;5323:18:1;;;5316:42;5375:18;;3959:39:0;5063:336:1;3959:39:0;4030:1;4021:6;-1:-1:-1;;;;;4021:10:0;;4013:37;;;;-1:-1:-1;;;4013:37:0;;4922:2:1;4013:37:0;;;4904:21:1;4961:2;4941:18;;;4934:30;-1:-1:-1;;;4980:18:1;;;4973:44;5034:18;;4013:37:0;4720:338:1;4013:37:0;4073:50;;-1:-1:-1;;;4073:50:0;;4089:10;4073:50;;;2709:34:1;4109:4:0;2759:18:1;;;2752:43;-1:-1:-1;;;;;2831:47:1;;2811:18;;;2804:75;-1:-1:-1;;;;;4073:15:0;;;;;2644:18:1;;4073:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4125:21;;;;;;;;;;;;;;;;;4065:82;;;;;-1:-1:-1;;;4065:82:0;;;;;;;;:::i;:::-;;4192:14;4231:5;4218:10;;4209:6;-1:-1:-1;;;;;4209:19:0;;:27;;;;;:::i;:::-;;4192:44;;4272:6;4263;-1:-1:-1;;;;;4263:15:0;;4255:47;;;;-1:-1:-1;;;4255:47:0;;7355:2:1;4255:47:0;;;7337:21:1;7394:2;7374:18;;;7367:30;-1:-1:-1;;;7413:18:1;;;7406:49;7472:18;;4255:47:0;7153:343:1;4255:47:0;4321:20;4378:27;;-1:-1:-1;;;;;4344:15:0;;;;;4378:27;;;;;-1:-1:-1;;;;;4424:18:0;;;;:9;:18;;;;;;:34;;;;;;4481:10;;4477:90;;4528:10;;4516:31;;-1:-1:-1;;;4516:31:0;;-1:-1:-1;;;;;4528:10:0;;;4516:31;;;3384:51:1;3451:18;;;3444:34;;;4516:11:0;;;;;;3357:18:1;;4516:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4477:90;4162:420;;3356:1237;4632:10;;4608:35;;;-1:-1:-1;;;;;9229:47:1;;9211:66;;9308:2;9293:18;;9286:34;;;;-1:-1:-1;;;;;4608:35:0;;;;;9184:18:1;4608:35:0;9037:289:1;1756:227:0;-1:-1:-1;;;;;1830:22:0;;1822:73;;;;-1:-1:-1;;;1822:73:0;;4515:2:1;1822:73:0;;;4497:21:1;4554:2;4534:18;;;4527:30;4593:34;4573:18;;;4566:62;-1:-1:-1;;;4644:18:1;;;4637:36;4690:19;;1822:73:0;4313:402:1;1822:73:0;1932:5;;1911:37;;-1:-1:-1;;;;;1911:37:0;;;;1932:5;;1911:37;;1932:5;;1911:37;1959:5;:16;;-1:-1:-1;;;;;;1959:16:0;-1:-1:-1;;;;;1959:16:0;;;;;;;;;;1756:227::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:188::-;260:20;;-1:-1:-1;;;;;309:46:1;;299:57;;289:85;;370:1;367;360:12;385:186;444:6;497:2;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;536:29;555:9;536:29;:::i;:::-;526:39;385:186;-1:-1:-1;;;385:186:1:o;576:260::-;644:6;652;705:2;693:9;684:7;680:23;676:32;673:52;;;721:1;718;711:12;673:52;744:29;763:9;744:29;:::i;:::-;734:39;;792:38;826:2;815:9;811:18;792:38;:::i;:::-;782:48;;576:260;;;;;:::o;841:277::-;908:6;961:2;949:9;940:7;936:23;932:32;929:52;;;977:1;974;967:12;929:52;1009:9;1003:16;1062:5;1055:13;1048:21;1041:5;1038:32;1028:60;;1084:1;1081;1074:12;1123:186;1182:6;1235:2;1223:9;1214:7;1210:23;1206:32;1203:52;;;1251:1;1248;1241:12;1203:52;1274:29;1293:9;1274:29;:::i;1314:358::-;1381:6;1389;1442:2;1430:9;1421:7;1417:23;1413:32;1410:52;;;1458:1;1455;1448:12;1410:52;1481:29;1500:9;1481:29;:::i;:::-;1471:39;;1560:2;1549:9;1545:18;1532:32;-1:-1:-1;;;;;1597:5:1;1593:30;1586:5;1583:41;1573:69;;1638:1;1635;1628:12;1573:69;1661:5;1651:15;;;1314:358;;;;;:::o;1677:180::-;1736:6;1789:2;1777:9;1768:7;1764:23;1760:32;1757:52;;;1805:1;1802;1795:12;1757:52;-1:-1:-1;1828:23:1;;1677:180;-1:-1:-1;1677:180:1:o;1862:184::-;1932:6;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;-1:-1:-1;2024:16:1;;1862:184;-1:-1:-1;1862:184:1:o;3711:597::-;3823:4;3852:2;3881;3870:9;3863:21;3913:6;3907:13;3956:6;3951:2;3940:9;3936:18;3929:34;3981:1;3991:140;4005:6;4002:1;3999:13;3991:140;;;4100:14;;;4096:23;;4090:30;4066:17;;;4085:2;4062:26;4055:66;4020:10;;3991:140;;;4149:6;4146:1;4143:13;4140:91;;;4219:1;4214:2;4205:6;4194:9;4190:22;4186:31;4179:42;4140:91;-1:-1:-1;4292:2:1;4271:15;-1:-1:-1;;4267:29:1;4252:45;;;;4299:2;4248:54;;3711:597;-1:-1:-1;;;3711:597:1:o;7501:356::-;7703:2;7685:21;;;7722:18;;;7715:30;7781:34;7776:2;7761:18;;7754:62;7848:2;7833:18;;7501:356::o;9718:222::-;9758:4;9786:1;9783;9780:8;9777:131;;;9830:10;9825:3;9821:20;9818:1;9811:31;9865:4;9862:1;9855:15;9893:4;9890:1;9883:15;9777:131;-1:-1:-1;9925:9:1;;9718:222::o;9945:127::-;10006:10;10001:3;9997:20;9994:1;9987:31;10037:4;10034:1;10027:15;10061:4;10058:1;10051:15
Metadata Hash
4173727a9123058841be079bac64b931a388de3c73d3804cbe70dfbdfd4ddc1c
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.