More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 431 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 18525852 | 417 days ago | IN | 0 ETH | 0.00592263 | ||||
Unstake | 18525849 | 417 days ago | IN | 0 ETH | 0.00583081 | ||||
Claim | 18525845 | 417 days ago | IN | 0 ETH | 0.00330542 | ||||
Unstake | 18297143 | 449 days ago | IN | 0 ETH | 0.00141603 | ||||
Claim | 18228796 | 458 days ago | IN | 0 ETH | 0.00297649 | ||||
Unstake | 17175432 | 606 days ago | IN | 0 ETH | 0.02129826 | ||||
Claim | 17165111 | 608 days ago | IN | 0 ETH | 0.00858465 | ||||
Claim | 17149038 | 610 days ago | IN | 0 ETH | 0.00484565 | ||||
Unstake | 17142405 | 611 days ago | IN | 0 ETH | 0.00734773 | ||||
Claim | 17142395 | 611 days ago | IN | 0 ETH | 0.00450895 | ||||
Unstake | 17140677 | 611 days ago | IN | 0 ETH | 0.00913052 | ||||
Unstake | 17139071 | 611 days ago | IN | 0 ETH | 0.00846252 | ||||
Unstake | 17134078 | 612 days ago | IN | 0 ETH | 0.00927619 | ||||
Claim | 17134066 | 612 days ago | IN | 0 ETH | 0.00477315 | ||||
Unstake | 17132168 | 612 days ago | IN | 0 ETH | 0.01161861 | ||||
Claim | 17132143 | 612 days ago | IN | 0 ETH | 0.0083449 | ||||
Claim | 17124156 | 613 days ago | IN | 0 ETH | 0.00589262 | ||||
Claim | 17124142 | 613 days ago | IN | 0 ETH | 0.00687317 | ||||
Unstake All | 17119746 | 614 days ago | IN | 0 ETH | 0.00080174 | ||||
Unstake | 17103940 | 616 days ago | IN | 0 ETH | 0.00941894 | ||||
Claim | 17103898 | 616 days ago | IN | 0 ETH | 0.00471014 | ||||
Claim | 17103865 | 616 days ago | IN | 0 ETH | 0.00465276 | ||||
Claim | 17103854 | 616 days ago | IN | 0 ETH | 0.00468254 | ||||
Unstake | 17103850 | 616 days ago | IN | 0 ETH | 0.00852827 | ||||
Claim | 17103847 | 616 days ago | IN | 0 ETH | 0.00505948 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SRI
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-13 */ // SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, 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); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } contract SRI is Auth { struct StakeState { uint256 stakedAmount; uint32 since; uint32 lastUpdate; } // Staking token and fee receivers. address public stakingToken; address constant public DEAD = address(0xdead); address public devFeeReceiver; address public lpFeeReceiver; // APR% with 2 decimals. uint256 public aprNumerator = 3600; uint256 constant public aprDenominator = 10000; // Fees in % with 2 decimals. uint256 public burnFeeNumerator = 300; uint256 constant public burnFeeDenominator = 10000; uint256 public devFeeNumerator = 50; uint256 constant public devFeeDenominator = 10000; uint256 public lpFeeNumerator = 50; uint256 constant public lpFeeDenominator = 10000; // Staking status. uint256 public totalStakedTokens; mapping (address => StakeState) internal stakerDetails; event TokenStaked(address indexed user, uint256 amount); event TokenUnstaked(address indexed user, uint256 amount, uint256 reward); event RewardClaimed(address indexed user, uint256 reward); event Compounded(address indexed user, uint256 amount); constructor(address tokenToStake, address devFee, address lpAddress) Auth(msg.sender) { stakingToken = tokenToStake; devFeeReceiver = devFee; lpFeeReceiver = lpAddress; } function stake(uint256 amount) external { require(amount > 0, "Amount needs to be bigger than 0"); StakeState storage user = stakerDetails[msg.sender]; uint32 ts = uint32(block.timestamp); // New staking if (user.since == 0) { user.since = ts; } else { compoundFor(msg.sender); } user.lastUpdate = ts; user.stakedAmount += amount; totalStakedTokens += amount; IERC20(stakingToken).transferFrom(msg.sender, address(this), amount); emit TokenStaked(msg.sender, amount); } function unstake(uint256 amount) public { require(amount > 0, "Amount needs to be bigger than 0"); unstakeFor(msg.sender, amount); } function unstakeAll() external { StakeState storage user = stakerDetails[msg.sender]; require(user.since > 0, "You are not staking."); require(user.stakedAmount > 0, "You are not staking."); uint256 toUnstake = user.stakedAmount; require(toUnstake > 0, "You are not staking."); unstakeFor(msg.sender, toUnstake); } function unstakeFor(address staker, uint256 amount) internal { StakeState storage user = stakerDetails[staker]; require(user.stakedAmount >= amount, "Not enough tokens staked."); // Unstaking automatically gives the pending reward. uint256 pending = pendingReward(staker); uint256 total = amount + pending; uint256 burnFee = executeBurnFee(total); uint256 devFee = executeDevFee(total); uint256 lpFee = executeLPFee(total); uint256 toReceive = total - burnFee - devFee - lpFee; user.stakedAmount -= amount; totalStakedTokens -= amount; user.lastUpdate = uint32(block.timestamp); IERC20(stakingToken).transfer(staker, toReceive); emit TokenUnstaked(staker, toReceive, pending); } function executeBurnFee(uint256 amount) internal returns (uint256) { return executeFee(amount, burnFeeNumerator, burnFeeDenominator, DEAD); } function executeDevFee(uint256 amount) internal returns (uint256) { return executeFee(amount, devFeeNumerator, devFeeDenominator, devFeeReceiver); } function executeLPFee(uint256 amount) internal returns (uint256) { return executeFee(amount, lpFeeNumerator, lpFeeDenominator, lpFeeReceiver); } function executeFee(uint256 amount, uint256 numerator, uint256 denominator, address receiver) internal returns (uint256) { uint256 fee = calcFee(amount, numerator, denominator); if (fee > 0) { IERC20(stakingToken).transfer(receiver, fee); return fee; } return 0; } function calcFee(uint256 amount, uint256 num, uint256 den) public pure returns (uint256) { if (amount == 0) { return 0; } if (num == 0 || den == 0) { return 0; } return amount * num / den; } function claim() external { StakeState storage user = stakerDetails[msg.sender]; require(user.since > 0, "You are not staking."); uint256 pending = pendingReward(msg.sender); if (pending > 0) { IERC20(stakingToken).transfer(msg.sender, pending); user.lastUpdate = uint32(block.timestamp); emit RewardClaimed(msg.sender, pending); } } function compound() external { compoundFor(msg.sender); } function compoundFor(address staker) internal { StakeState storage user = stakerDetails[staker]; uint256 pending = pendingReward(staker); if (pending > 0) { user.lastUpdate = uint32(block.timestamp); user.stakedAmount += pending; totalStakedTokens += pending; emit Compounded(staker, pending); } } function getPendingReward() external view returns (uint256) { return pendingReward(msg.sender); } /** * @dev Check the current unclaimed pending reward for a user. */ function pendingReward(address staker) public view returns (uint256) { StakeState storage user = stakerDetails[staker]; // Check if the user ever staked. if (user.since == 0) { return 0; } // Should not happen but block.timestamp is not 100% secure. if (block.timestamp <= user.lastUpdate) { return 0; } uint256 deltaTime = block.timestamp - user.lastUpdate; uint256 annualReward = user.stakedAmount * aprNumerator / aprDenominator; return annualReward * deltaTime / 365 days; } /** * @dev Get the APR values, returns a numerator to divide by a denominator to get the decimal value of the percentage. * Example: 20% can be 2000 / 10000, which is 0.2, the decimal representation of 20%. * @notice APY = (1 + APR / n) ** n - 1; * Where n is the compounding rate (times of compounding in a year) * This is better calculated on a frontend, as Solidity does not do floating point arithmetic. */ function getAPR() external view returns (uint256 numerator, uint256 denominator) { return (aprNumerator, aprDenominator); } /** * @dev Gets an approximated APR percentage rounded to no decimals. */ function getAPRRoundedPercentage() external view returns (uint256) { return 100 * aprNumerator / aprDenominator; } /** * @dev Gets an approximated APR percentage rounded to specified decimals. */ function getAPRPercentage(uint256 desiredDecimals) external view returns (uint256 percentage, uint256 decimals) { uint256 factor = 10 ** desiredDecimals; uint256 integerPercent = 100 * factor * aprNumerator / aprDenominator; return (integerPercent / factor, integerPercent % factor); } function setDevFeeReceiver(address receiver) external authorized { devFeeReceiver = receiver; } function setLPAddress(address lp) external authorized { lpFeeReceiver = lp; } /** * @dev Sets the unstake burn fee. It is then divided by 10000, so for 1% fee you would set it to 100. */ function setBurnFeeNumerator(uint256 numerator) external authorized { require(numerator + lpFeeNumerator + devFeeNumerator < 3333, "Total fee has to be lower than 33.33%."); burnFeeNumerator = numerator; } function setDevFeeNumerator(uint256 numerator) external authorized { require(numerator + lpFeeNumerator + burnFeeNumerator < 3333, "Total fee has to be lower than 33.33%."); devFeeNumerator = numerator; } function setLPFeeNumerator(uint256 numerator) external authorized { require(numerator + burnFeeNumerator + devFeeNumerator < 3333, "Total fee has to be lower than 33.33%."); lpFeeNumerator = numerator; } function getStake(address staker) external view returns (StakeState memory) { return stakerDetails[staker]; } function availableRewardTokens() external view returns (uint256) { uint256 tokens = IERC20(stakingToken).balanceOf(address(this)); if (tokens <= totalStakedTokens) { return 0; } return tokens - totalStakedTokens; } function setStakingToken(address newToken) external authorized { require(totalStakedTokens == 0, "Cannot change staking token while people are still staking."); stakingToken = newToken; } function forceUnstakeAll(address staker) external authorized { StakeState storage user = stakerDetails[staker]; require(user.since > 0, "User is not staking."); require(user.stakedAmount > 0, "User is not staking."); uint256 toUnstake = user.stakedAmount; require(toUnstake > 0, "User is not staking."); unstakeFor(staker, toUnstake); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"tokenToStake","type":"address"},{"internalType":"address","name":"devFee","type":"address"},{"internalType":"address","name":"lpAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Compounded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenStaked","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":"reward","type":"uint256"}],"name":"TokenUnstaked","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aprDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aprNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"availableRewardTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"num","type":"uint256"},{"internalType":"uint256","name":"den","type":"uint256"}],"name":"calcFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"forceUnstakeAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAPR","outputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"desiredDecimals","type":"uint256"}],"name":"getAPRPercentage","outputs":[{"internalType":"uint256","name":"percentage","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAPRRoundedPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getStake","outputs":[{"components":[{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint32","name":"since","type":"uint32"},{"internalType":"uint32","name":"lastUpdate","type":"uint32"}],"internalType":"struct SRI.StakeState","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"}],"name":"setBurnFeeNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"}],"name":"setDevFeeNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"setDevFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"}],"name":"setLPAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"}],"name":"setLPFeeNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newToken","type":"address"}],"name":"setStakingToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakeAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052610e1060055561012c600655603260075560326008553480156200002757600080fd5b5060405162002c2338038062002c2383398181016040528101906200004d9190620001c9565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000278565b600081519050620001c3816200025e565b92915050565b600080600060608486031215620001e557620001e462000259565b5b6000620001f586828701620001b2565b93505060206200020886828701620001b2565b92505060406200021b86828701620001b2565b9150509250925092565b6000620002328262000239565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002698162000225565b81146200027557600080fd5b50565b61299b80620002886000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637a76646011610130578063b6a5d7de116100b8578063f0b37c041161007c578063f0b37c0414610623578063f2fde38b1461063f578063f40f0f521461065b578063f69e20461461068b578063fe9fbb801461069557610232565b8063b6a5d7de1461058e578063c18f4831146105aa578063c89d5b8b146105c8578063d76a144a146105e7578063dab84ee71461060557610232565b8063a0e59acd116100ff578063a0e59acd146104e9578063a694fc3a14610507578063adbdc5f714610523578063ae6bc9ee14610554578063aff25f301461057057610232565b80637a7664601461045f5780638176bc5f1461048f5780638498cc01146104ad5780639f94e272146104cb57610232565b806335322f37116101be57806356e1c40d1161018257806356e1c40d146103cd5780635a23248d146103eb57806372f702f3146104095780637537e161146104275780637a351a1d1461044357610232565b806335322f37146103615780633ae732591461036b5780633c47034e1461038957806347c30155146103a55780634e71d92d146103c357610232565b80631e9b12ef116102055780631e9b12ef146102c15780631f7d419c146102dd57806327b3e663146102f95780632e17de78146103155780632f54bf6e1461033157610232565b806303fd2a451461023757806304998e2d1461025557806309d2d0bc1461028557806315a361d2146102a3575b600080fd5b61023f6106c5565b60405161024c919061218d565b60405180910390f35b61026f600480360381019061026a9190611f86565b6106cb565b60405161027c9190612359565b60405180910390f35b61028d61071c565b60405161029a919061218d565b60405180910390f35b6102ab610742565b6040516102b89190612359565b60405180910390f35b6102db60048036038101906102d69190611ea5565b610748565b005b6102f760048036038101906102f29190611f2c565b610819565b005b610313600480360381019061030e9190611f2c565b6108c9565b005b61032f600480360381019061032a9190611f2c565b610979565b005b61034b60048036038101906103469190611ea5565b6109c9565b6040516103589190612223565b60405180910390f35b610369610a22565b005b610373610b63565b6040516103809190612359565b60405180910390f35b6103a3600480360381019061039e9190611ea5565b610b69565b005b6103ad610bf5565b6040516103ba9190612359565b60405180910390f35b6103cb610bfb565b005b6103d5610dd7565b6040516103e29190612359565b60405180910390f35b6103f3610ddd565b6040516104009190612359565b60405180910390f35b610411610ded565b60405161041e919061218d565b60405180910390f35b610441600480360381019061043c9190611ea5565b610e13565b005b61045d60048036038101906104589190611ea5565b610f9d565b005b61047960048036038101906104749190611ea5565b611029565b604051610486919061233e565b60405180910390f35b6104976110d8565b6040516104a49190612359565b60405180910390f35b6104b56110de565b6040516104c29190612359565b60405180910390f35b6104d3611101565b6040516104e09190612359565b60405180910390f35b6104f16111d9565b6040516104fe9190612359565b60405180910390f35b610521600480360381019061051c9190611f2c565b6111df565b005b61053d60048036038101906105389190611f2c565b61141b565b60405161054b929190612374565b60405180910390f35b61056e60048036038101906105699190611f2c565b61147d565b005b61057861152d565b6040516105859190612359565b60405180910390f35b6105a860048036038101906105a39190611ea5565b611533565b005b6105b26115d5565b6040516105bf9190612359565b60405180910390f35b6105d06115db565b6040516105de929190612374565b60405180910390f35b6105ef6115ec565b6040516105fc9190612359565b60405180910390f35b61060d6115f2565b60405161061a919061218d565b60405180910390f35b61063d60048036038101906106389190611ea5565b611618565b005b61065960048036038101906106549190611ed2565b6116bb565b005b61067560048036038101906106709190611ea5565b6117d4565b6040516106829190612359565b60405180910390f35b6106936118e3565b005b6106af60048036038101906106aa9190611ea5565b6118ee565b6040516106bc9190612223565b60405180910390f35b61dead81565b6000808414156106de5760009050610715565b60008314806106ed5750600082145b156106fb5760009050610715565b81838561070891906125a6565b6107129190612404565b90505b9392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b610751336118ee565b610790576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107879061231e565b60405180910390fd5b6000600954146107d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cc906122be565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610822336118ee565b610861576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108589061231e565b60405180910390fd5b610d056007546006548361087591906123ae565b61087f91906123ae565b106108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b69061225e565b60405180910390fd5b8060088190555050565b6108d2336118ee565b610911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109089061231e565b60405180910390fd5b610d056007546008548361092591906123ae565b61092f91906123ae565b1061096f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109669061225e565b60405180910390fd5b8060068190555050565b600081116109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906122fe565b60405180910390fd5b6109c63382611944565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1611610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab99061227e565b60405180910390fd5b6000816000015411610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b009061227e565b60405180910390fd5b60008160000154905060008111610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c9061227e565b60405180910390fd5b610b5f3382611944565b5050565b60095481565b610b72336118ee565b610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba89061231e565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1611610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c929061227e565b60405180910390fd5b6000610ca6336117d4565b90506000811115610dd357600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d0e9291906121fa565b602060405180830381600087803b158015610d2857600080fd5b505af1158015610d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d609190611eff565b50428260010160046101000a81548163ffffffff021916908363ffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f724182604051610dca9190612359565b60405180910390a25b5050565b60065481565b6000610de8336117d4565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e1c336118ee565b610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e529061231e565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1611610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef29061223e565b60405180910390fd5b6000816000015411610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f399061223e565b60405180910390fd5b60008160000154905060008111610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f859061223e565b60405180910390fd5b610f988382611944565b505050565b610fa6336118ee565b610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc9061231e565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611031611e0f565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60075481565b600061271060055460646110f291906125a6565b6110fc9190612404565b905090565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115f919061218d565b60206040518083038186803b15801561117757600080fd5b505afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190611f59565b905060095481116111c45760009150506111d6565b600954816111d29190612600565b9150505b90565b61271081565b60008111611222576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611219906122fe565b60405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600042905060008260010160009054906101000a900463ffffffff1663ffffffff1614156112b557808260010160006101000a81548163ffffffff021916908363ffffffff1602179055506112bf565b6112be33611b9a565b5b808260010160046101000a81548163ffffffff021916908363ffffffff160217905550828260000160008282546112f691906123ae565b92505081905550826009600082825461130f91906123ae565b92505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611375939291906121c3565b602060405180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c79190611eff565b503373ffffffffffffffffffffffffffffffffffffffff167f1fdab8a8457aaf782e4b6217d6ffa6f5006eda7e50922dd092b2e1524275d7748460405161140e9190612359565b60405180910390a2505050565b600080600083600a61142d9190612488565b9050600061271060055483606461144491906125a6565b61144e91906125a6565b6114589190612404565b905081816114669190612404565b828261147291906126d4565b935093505050915091565b611486336118ee565b6114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc9061231e565b60405180910390fd5b610d05600654600854836114d991906123ae565b6114e391906123ae565b10611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a9061225e565b60405180910390fd5b8060078190555050565b60055481565b61153c336109c9565b61157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906122de565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61271081565b600080600554612710915091509091565b61271081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611621336109c9565b611660576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611657906122de565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116c4336109c9565b611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906122de565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516117c991906121a8565b60405180910390a150565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1614156118455760009150506118de565b8060010160049054906101000a900463ffffffff1663ffffffff1642116118705760009150506118de565b60008160010160049054906101000a900463ffffffff1663ffffffff16426118989190612600565b9050600061271060055484600001546118b191906125a6565b6118bb9190612404565b90506301e1338082826118ce91906125a6565b6118d89190612404565b93505050505b919050565b6118ec33611b9a565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816000015410156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c59061229e565b60405180910390fd5b60006119d9846117d4565b9050600081846119e991906123ae565b905060006119f682611c9e565b90506000611a0383611cb9565b90506000611a1084611cf4565b9050600081838587611a229190612600565b611a2c9190612600565b611a369190612600565b905087876000016000828254611a4c9190612600565b925050819055508760096000828254611a659190612600565b92505081905550428760010160046101000a81548163ffffffff021916908363ffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a836040518363ffffffff1660e01b8152600401611aec9291906121fa565b602060405180830381600087803b158015611b0657600080fd5b505af1158015611b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3e9190611eff565b508873ffffffffffffffffffffffffffffffffffffffff167f563fc70fca9d440d883299c76a721644d5aca7c45df98aeb5292c4cb823579bf8288604051611b87929190612374565b60405180910390a2505050505050505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000611be8836117d4565b90506000811115611c9957428260010160046101000a81548163ffffffff021916908363ffffffff16021790555080826000016000828254611c2a91906123ae565b925050819055508060096000828254611c4391906123ae565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167fc16de066392da7e40ceccb739c331fc48a2e76bf147449613c48023d960eec3282604051611c909190612359565b60405180910390a25b505050565b6000611cb28260065461271061dead611d2f565b9050919050565b6000611ced82600754612710600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d2f565b9050919050565b6000611d2882600854612710600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d2f565b9050919050565b600080611d3d8686866106cb565b90506000811115611e0157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611da59291906121fa565b602060405180830381600087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df79190611eff565b5080915050611e07565b60009150505b949350505050565b604051806060016040528060008152602001600063ffffffff168152602001600063ffffffff1681525090565b600081359050611e4b81612909565b92915050565b600081359050611e6081612920565b92915050565b600081519050611e7581612937565b92915050565b600081359050611e8a8161294e565b92915050565b600081519050611e9f8161294e565b92915050565b600060208284031215611ebb57611eba612763565b5b6000611ec984828501611e3c565b91505092915050565b600060208284031215611ee857611ee7612763565b5b6000611ef684828501611e51565b91505092915050565b600060208284031215611f1557611f14612763565b5b6000611f2384828501611e66565b91505092915050565b600060208284031215611f4257611f41612763565b5b6000611f5084828501611e7b565b91505092915050565b600060208284031215611f6f57611f6e612763565b5b6000611f7d84828501611e90565b91505092915050565b600080600060608486031215611f9f57611f9e612763565b5b6000611fad86828701611e7b565b9350506020611fbe86828701611e7b565b9250506040611fcf86828701611e7b565b9150509250925092565b611fe28161269e565b82525050565b611ff181612634565b82525050565b61200081612658565b82525050565b600061201360148361239d565b915061201e82612775565b602082019050919050565b600061203660268361239d565b91506120418261279e565b604082019050919050565b600061205960148361239d565b9150612064826127ed565b602082019050919050565b600061207c60198361239d565b915061208782612816565b602082019050919050565b600061209f603b8361239d565b91506120aa8261283f565b604082019050919050565b60006120c260068361239d565b91506120cd8261288e565b602082019050919050565b60006120e560208361239d565b91506120f0826128b7565b602082019050919050565b6000612108600b8361239d565b9150612113826128e0565b602082019050919050565b6060820160008201516121346000850182612160565b506020820151612147602085018261217e565b50604082015161215a604085018261217e565b50505050565b61216981612684565b82525050565b61217881612684565b82525050565b6121878161268e565b82525050565b60006020820190506121a26000830184611fe8565b92915050565b60006020820190506121bd6000830184611fd9565b92915050565b60006060820190506121d86000830186611fe8565b6121e56020830185611fe8565b6121f2604083018461216f565b949350505050565b600060408201905061220f6000830185611fe8565b61221c602083018461216f565b9392505050565b60006020820190506122386000830184611ff7565b92915050565b6000602082019050818103600083015261225781612006565b9050919050565b6000602082019050818103600083015261227781612029565b9050919050565b600060208201905081810360008301526122978161204c565b9050919050565b600060208201905081810360008301526122b78161206f565b9050919050565b600060208201905081810360008301526122d781612092565b9050919050565b600060208201905081810360008301526122f7816120b5565b9050919050565b60006020820190508181036000830152612317816120d8565b9050919050565b60006020820190508181036000830152612337816120fb565b9050919050565b6000606082019050612353600083018461211e565b92915050565b600060208201905061236e600083018461216f565b92915050565b6000604082019050612389600083018561216f565b612396602083018461216f565b9392505050565b600082825260208201905092915050565b60006123b982612684565b91506123c483612684565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123f9576123f8612705565b5b828201905092915050565b600061240f82612684565b915061241a83612684565b92508261242a57612429612734565b5b828204905092915050565b6000808291508390505b600185111561247f5780860481111561245b5761245a612705565b5b600185161561246a5780820291505b808102905061247885612768565b945061243f565b94509492505050565b600061249382612684565b915061249e83612684565b92506124cb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124d3565b905092915050565b6000826124e3576001905061259f565b816124f1576000905061259f565b8160018114612507576002811461251157612540565b600191505061259f565b60ff84111561252357612522612705565b5b8360020a91508482111561253a57612539612705565b5b5061259f565b5060208310610133831016604e8410600b84101617156125755782820a9050838111156125705761256f612705565b5b61259f565b6125828484846001612435565b9250905081840481111561259957612598612705565b5b81810290505b9392505050565b60006125b182612684565b91506125bc83612684565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125f5576125f4612705565b5b828202905092915050565b600061260b82612684565b915061261683612684565b92508282101561262957612628612705565b5b828203905092915050565b600061263f82612664565b9050919050565b600061265182612664565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b60006126a9826126b0565b9050919050565b60006126bb826126c2565b9050919050565b60006126cd82612664565b9050919050565b60006126df82612684565b91506126ea83612684565b9250826126fa576126f9612734565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b7f55736572206973206e6f74207374616b696e672e000000000000000000000000600082015250565b7f546f74616c206665652068617320746f206265206c6f776572207468616e203360008201527f332e3333252e0000000000000000000000000000000000000000000000000000602082015250565b7f596f7520617265206e6f74207374616b696e672e000000000000000000000000600082015250565b7f4e6f7420656e6f75676820746f6b656e73207374616b65642e00000000000000600082015250565b7f43616e6e6f74206368616e6765207374616b696e6720746f6b656e207768696c60008201527f652070656f706c6520617265207374696c6c207374616b696e672e0000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f416d6f756e74206e6565647320746f20626520626967676572207468616e2030600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61291281612634565b811461291d57600080fd5b50565b61292981612646565b811461293457600080fd5b50565b61294081612658565b811461294b57600080fd5b50565b61295781612684565b811461296257600080fd5b5056fea264697066735822122019efa4a1d61689aaa59eba0f8baa401ba957dcd1a16654987f8b090dce3ce4a964736f6c63430008070033000000000000000000000000d55231b619ec464347d7b6eb12cc7ae19fbbf37d00000000000000000000000043c2b1adde05ec23b9bcbd4f10a7d5d9c111e6a100000000000000000000000043c2b1adde05ec23b9bcbd4f10a7d5d9c111e6a1
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102325760003560e01c80637a76646011610130578063b6a5d7de116100b8578063f0b37c041161007c578063f0b37c0414610623578063f2fde38b1461063f578063f40f0f521461065b578063f69e20461461068b578063fe9fbb801461069557610232565b8063b6a5d7de1461058e578063c18f4831146105aa578063c89d5b8b146105c8578063d76a144a146105e7578063dab84ee71461060557610232565b8063a0e59acd116100ff578063a0e59acd146104e9578063a694fc3a14610507578063adbdc5f714610523578063ae6bc9ee14610554578063aff25f301461057057610232565b80637a7664601461045f5780638176bc5f1461048f5780638498cc01146104ad5780639f94e272146104cb57610232565b806335322f37116101be57806356e1c40d1161018257806356e1c40d146103cd5780635a23248d146103eb57806372f702f3146104095780637537e161146104275780637a351a1d1461044357610232565b806335322f37146103615780633ae732591461036b5780633c47034e1461038957806347c30155146103a55780634e71d92d146103c357610232565b80631e9b12ef116102055780631e9b12ef146102c15780631f7d419c146102dd57806327b3e663146102f95780632e17de78146103155780632f54bf6e1461033157610232565b806303fd2a451461023757806304998e2d1461025557806309d2d0bc1461028557806315a361d2146102a3575b600080fd5b61023f6106c5565b60405161024c919061218d565b60405180910390f35b61026f600480360381019061026a9190611f86565b6106cb565b60405161027c9190612359565b60405180910390f35b61028d61071c565b60405161029a919061218d565b60405180910390f35b6102ab610742565b6040516102b89190612359565b60405180910390f35b6102db60048036038101906102d69190611ea5565b610748565b005b6102f760048036038101906102f29190611f2c565b610819565b005b610313600480360381019061030e9190611f2c565b6108c9565b005b61032f600480360381019061032a9190611f2c565b610979565b005b61034b60048036038101906103469190611ea5565b6109c9565b6040516103589190612223565b60405180910390f35b610369610a22565b005b610373610b63565b6040516103809190612359565b60405180910390f35b6103a3600480360381019061039e9190611ea5565b610b69565b005b6103ad610bf5565b6040516103ba9190612359565b60405180910390f35b6103cb610bfb565b005b6103d5610dd7565b6040516103e29190612359565b60405180910390f35b6103f3610ddd565b6040516104009190612359565b60405180910390f35b610411610ded565b60405161041e919061218d565b60405180910390f35b610441600480360381019061043c9190611ea5565b610e13565b005b61045d60048036038101906104589190611ea5565b610f9d565b005b61047960048036038101906104749190611ea5565b611029565b604051610486919061233e565b60405180910390f35b6104976110d8565b6040516104a49190612359565b60405180910390f35b6104b56110de565b6040516104c29190612359565b60405180910390f35b6104d3611101565b6040516104e09190612359565b60405180910390f35b6104f16111d9565b6040516104fe9190612359565b60405180910390f35b610521600480360381019061051c9190611f2c565b6111df565b005b61053d60048036038101906105389190611f2c565b61141b565b60405161054b929190612374565b60405180910390f35b61056e60048036038101906105699190611f2c565b61147d565b005b61057861152d565b6040516105859190612359565b60405180910390f35b6105a860048036038101906105a39190611ea5565b611533565b005b6105b26115d5565b6040516105bf9190612359565b60405180910390f35b6105d06115db565b6040516105de929190612374565b60405180910390f35b6105ef6115ec565b6040516105fc9190612359565b60405180910390f35b61060d6115f2565b60405161061a919061218d565b60405180910390f35b61063d60048036038101906106389190611ea5565b611618565b005b61065960048036038101906106549190611ed2565b6116bb565b005b61067560048036038101906106709190611ea5565b6117d4565b6040516106829190612359565b60405180910390f35b6106936118e3565b005b6106af60048036038101906106aa9190611ea5565b6118ee565b6040516106bc9190612223565b60405180910390f35b61dead81565b6000808414156106de5760009050610715565b60008314806106ed5750600082145b156106fb5760009050610715565b81838561070891906125a6565b6107129190612404565b90505b9392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b610751336118ee565b610790576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107879061231e565b60405180910390fd5b6000600954146107d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cc906122be565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610822336118ee565b610861576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108589061231e565b60405180910390fd5b610d056007546006548361087591906123ae565b61087f91906123ae565b106108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b69061225e565b60405180910390fd5b8060088190555050565b6108d2336118ee565b610911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109089061231e565b60405180910390fd5b610d056007546008548361092591906123ae565b61092f91906123ae565b1061096f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109669061225e565b60405180910390fd5b8060068190555050565b600081116109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906122fe565b60405180910390fd5b6109c63382611944565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1611610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab99061227e565b60405180910390fd5b6000816000015411610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b009061227e565b60405180910390fd5b60008160000154905060008111610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c9061227e565b60405180910390fd5b610b5f3382611944565b5050565b60095481565b610b72336118ee565b610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba89061231e565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1611610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c929061227e565b60405180910390fd5b6000610ca6336117d4565b90506000811115610dd357600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d0e9291906121fa565b602060405180830381600087803b158015610d2857600080fd5b505af1158015610d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d609190611eff565b50428260010160046101000a81548163ffffffff021916908363ffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f724182604051610dca9190612359565b60405180910390a25b5050565b60065481565b6000610de8336117d4565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e1c336118ee565b610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e529061231e565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1611610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef29061223e565b60405180910390fd5b6000816000015411610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f399061223e565b60405180910390fd5b60008160000154905060008111610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f859061223e565b60405180910390fd5b610f988382611944565b505050565b610fa6336118ee565b610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc9061231e565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611031611e0f565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60075481565b600061271060055460646110f291906125a6565b6110fc9190612404565b905090565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115f919061218d565b60206040518083038186803b15801561117757600080fd5b505afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190611f59565b905060095481116111c45760009150506111d6565b600954816111d29190612600565b9150505b90565b61271081565b60008111611222576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611219906122fe565b60405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600042905060008260010160009054906101000a900463ffffffff1663ffffffff1614156112b557808260010160006101000a81548163ffffffff021916908363ffffffff1602179055506112bf565b6112be33611b9a565b5b808260010160046101000a81548163ffffffff021916908363ffffffff160217905550828260000160008282546112f691906123ae565b92505081905550826009600082825461130f91906123ae565b92505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611375939291906121c3565b602060405180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c79190611eff565b503373ffffffffffffffffffffffffffffffffffffffff167f1fdab8a8457aaf782e4b6217d6ffa6f5006eda7e50922dd092b2e1524275d7748460405161140e9190612359565b60405180910390a2505050565b600080600083600a61142d9190612488565b9050600061271060055483606461144491906125a6565b61144e91906125a6565b6114589190612404565b905081816114669190612404565b828261147291906126d4565b935093505050915091565b611486336118ee565b6114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc9061231e565b60405180910390fd5b610d05600654600854836114d991906123ae565b6114e391906123ae565b10611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a9061225e565b60405180910390fd5b8060078190555050565b60055481565b61153c336109c9565b61157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906122de565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61271081565b600080600554612710915091509091565b61271081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611621336109c9565b611660576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611657906122de565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116c4336109c9565b611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906122de565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516117c991906121a8565b60405180910390a150565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900463ffffffff1663ffffffff1614156118455760009150506118de565b8060010160049054906101000a900463ffffffff1663ffffffff1642116118705760009150506118de565b60008160010160049054906101000a900463ffffffff1663ffffffff16426118989190612600565b9050600061271060055484600001546118b191906125a6565b6118bb9190612404565b90506301e1338082826118ce91906125a6565b6118d89190612404565b93505050505b919050565b6118ec33611b9a565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816000015410156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c59061229e565b60405180910390fd5b60006119d9846117d4565b9050600081846119e991906123ae565b905060006119f682611c9e565b90506000611a0383611cb9565b90506000611a1084611cf4565b9050600081838587611a229190612600565b611a2c9190612600565b611a369190612600565b905087876000016000828254611a4c9190612600565b925050819055508760096000828254611a659190612600565b92505081905550428760010160046101000a81548163ffffffff021916908363ffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a836040518363ffffffff1660e01b8152600401611aec9291906121fa565b602060405180830381600087803b158015611b0657600080fd5b505af1158015611b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3e9190611eff565b508873ffffffffffffffffffffffffffffffffffffffff167f563fc70fca9d440d883299c76a721644d5aca7c45df98aeb5292c4cb823579bf8288604051611b87929190612374565b60405180910390a2505050505050505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000611be8836117d4565b90506000811115611c9957428260010160046101000a81548163ffffffff021916908363ffffffff16021790555080826000016000828254611c2a91906123ae565b925050819055508060096000828254611c4391906123ae565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167fc16de066392da7e40ceccb739c331fc48a2e76bf147449613c48023d960eec3282604051611c909190612359565b60405180910390a25b505050565b6000611cb28260065461271061dead611d2f565b9050919050565b6000611ced82600754612710600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d2f565b9050919050565b6000611d2882600854612710600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d2f565b9050919050565b600080611d3d8686866106cb565b90506000811115611e0157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611da59291906121fa565b602060405180830381600087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df79190611eff565b5080915050611e07565b60009150505b949350505050565b604051806060016040528060008152602001600063ffffffff168152602001600063ffffffff1681525090565b600081359050611e4b81612909565b92915050565b600081359050611e6081612920565b92915050565b600081519050611e7581612937565b92915050565b600081359050611e8a8161294e565b92915050565b600081519050611e9f8161294e565b92915050565b600060208284031215611ebb57611eba612763565b5b6000611ec984828501611e3c565b91505092915050565b600060208284031215611ee857611ee7612763565b5b6000611ef684828501611e51565b91505092915050565b600060208284031215611f1557611f14612763565b5b6000611f2384828501611e66565b91505092915050565b600060208284031215611f4257611f41612763565b5b6000611f5084828501611e7b565b91505092915050565b600060208284031215611f6f57611f6e612763565b5b6000611f7d84828501611e90565b91505092915050565b600080600060608486031215611f9f57611f9e612763565b5b6000611fad86828701611e7b565b9350506020611fbe86828701611e7b565b9250506040611fcf86828701611e7b565b9150509250925092565b611fe28161269e565b82525050565b611ff181612634565b82525050565b61200081612658565b82525050565b600061201360148361239d565b915061201e82612775565b602082019050919050565b600061203660268361239d565b91506120418261279e565b604082019050919050565b600061205960148361239d565b9150612064826127ed565b602082019050919050565b600061207c60198361239d565b915061208782612816565b602082019050919050565b600061209f603b8361239d565b91506120aa8261283f565b604082019050919050565b60006120c260068361239d565b91506120cd8261288e565b602082019050919050565b60006120e560208361239d565b91506120f0826128b7565b602082019050919050565b6000612108600b8361239d565b9150612113826128e0565b602082019050919050565b6060820160008201516121346000850182612160565b506020820151612147602085018261217e565b50604082015161215a604085018261217e565b50505050565b61216981612684565b82525050565b61217881612684565b82525050565b6121878161268e565b82525050565b60006020820190506121a26000830184611fe8565b92915050565b60006020820190506121bd6000830184611fd9565b92915050565b60006060820190506121d86000830186611fe8565b6121e56020830185611fe8565b6121f2604083018461216f565b949350505050565b600060408201905061220f6000830185611fe8565b61221c602083018461216f565b9392505050565b60006020820190506122386000830184611ff7565b92915050565b6000602082019050818103600083015261225781612006565b9050919050565b6000602082019050818103600083015261227781612029565b9050919050565b600060208201905081810360008301526122978161204c565b9050919050565b600060208201905081810360008301526122b78161206f565b9050919050565b600060208201905081810360008301526122d781612092565b9050919050565b600060208201905081810360008301526122f7816120b5565b9050919050565b60006020820190508181036000830152612317816120d8565b9050919050565b60006020820190508181036000830152612337816120fb565b9050919050565b6000606082019050612353600083018461211e565b92915050565b600060208201905061236e600083018461216f565b92915050565b6000604082019050612389600083018561216f565b612396602083018461216f565b9392505050565b600082825260208201905092915050565b60006123b982612684565b91506123c483612684565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123f9576123f8612705565b5b828201905092915050565b600061240f82612684565b915061241a83612684565b92508261242a57612429612734565b5b828204905092915050565b6000808291508390505b600185111561247f5780860481111561245b5761245a612705565b5b600185161561246a5780820291505b808102905061247885612768565b945061243f565b94509492505050565b600061249382612684565b915061249e83612684565b92506124cb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124d3565b905092915050565b6000826124e3576001905061259f565b816124f1576000905061259f565b8160018114612507576002811461251157612540565b600191505061259f565b60ff84111561252357612522612705565b5b8360020a91508482111561253a57612539612705565b5b5061259f565b5060208310610133831016604e8410600b84101617156125755782820a9050838111156125705761256f612705565b5b61259f565b6125828484846001612435565b9250905081840481111561259957612598612705565b5b81810290505b9392505050565b60006125b182612684565b91506125bc83612684565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125f5576125f4612705565b5b828202905092915050565b600061260b82612684565b915061261683612684565b92508282101561262957612628612705565b5b828203905092915050565b600061263f82612664565b9050919050565b600061265182612664565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b60006126a9826126b0565b9050919050565b60006126bb826126c2565b9050919050565b60006126cd82612664565b9050919050565b60006126df82612684565b91506126ea83612684565b9250826126fa576126f9612734565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b7f55736572206973206e6f74207374616b696e672e000000000000000000000000600082015250565b7f546f74616c206665652068617320746f206265206c6f776572207468616e203360008201527f332e3333252e0000000000000000000000000000000000000000000000000000602082015250565b7f596f7520617265206e6f74207374616b696e672e000000000000000000000000600082015250565b7f4e6f7420656e6f75676820746f6b656e73207374616b65642e00000000000000600082015250565b7f43616e6e6f74206368616e6765207374616b696e6720746f6b656e207768696c60008201527f652070656f706c6520617265207374696c6c207374616b696e672e0000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f416d6f756e74206e6565647320746f20626520626967676572207468616e2030600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61291281612634565b811461291d57600080fd5b50565b61292981612646565b811461293457600080fd5b50565b61294081612658565b811461294b57600080fd5b50565b61295781612684565b811461296257600080fd5b5056fea264697066735822122019efa4a1d61689aaa59eba0f8baa401ba957dcd1a16654987f8b090dce3ce4a964736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d55231b619ec464347d7b6eb12cc7ae19fbbf37d00000000000000000000000043c2b1adde05ec23b9bcbd4f10a7d5d9c111e6a100000000000000000000000043c2b1adde05ec23b9bcbd4f10a7d5d9c111e6a1
-----Decoded View---------------
Arg [0] : tokenToStake (address): 0xd55231b619Ec464347d7b6eB12Cc7AE19fBbf37D
Arg [1] : devFee (address): 0x43C2B1aDdE05Ec23b9BCBD4F10A7d5d9C111e6A1
Arg [2] : lpAddress (address): 0x43C2B1aDdE05Ec23b9BCBD4F10A7d5d9C111e6A1
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d55231b619ec464347d7b6eb12cc7ae19fbbf37d
Arg [1] : 00000000000000000000000043c2b1adde05ec23b9bcbd4f10a7d5d9c111e6a1
Arg [2] : 00000000000000000000000043c2b1adde05ec23b9bcbd4f10a7d5d9c111e6a1
Deployed Bytecode Sourcemap
1843:8526:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5631:217;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2114:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2211:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9810:195;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9238:211;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8803:213;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3658:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1387:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3803:334;;;:::i;:::-;;2591:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8494:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2480:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5853:364;;;:::i;:::-;;2293:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6623:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2000:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10010:356;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8599:82;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9454:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2388:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7980:119;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9573:232;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2427:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3130:523;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8193:296;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9021:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2173:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1180:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2334:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7765:128;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2518:48;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2081:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1282:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1613:173;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6807:522;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6222:62;;;:::i;:::-;;1498:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:46;2070:6;2031:46;:::o;5631:217::-;5711:7;5739:1;5729:6;:11;5725:37;;;5755:1;5748:8;;;;5725:37;5777:1;5770:3;:8;:20;;;;5789:1;5782:3;:8;5770:20;5766:46;;;5805:1;5798:8;;;;5766:46;5840:3;5834;5825:6;:12;;;;:::i;:::-;:18;;;;:::i;:::-;5818:25;;5631:217;;;;;;:::o;2114:28::-;;;;;;;;;;;;;:::o;2211:46::-;2252:5;2211:46;:::o;9810:195::-;1121:24;1134:10;1121:12;:24::i;:::-;1113:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9907:1:::1;9886:17;;:22;9878:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;9992:8;9977:12;;:23;;;;;;;;;;;;;;;;;;9810:195:::0;:::o;9238:211::-;1121:24;1134:10;1121:12;:24::i;:::-;1113:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9366:4:::1;9348:15;;9329:16;;9317:9;:28;;;;:::i;:::-;:46;;;;:::i;:::-;:53;9309:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;9435:9;9418:14;:26;;;;9238:211:::0;:::o;8803:213::-;1121:24;1134:10;1121:12;:24::i;:::-;1113:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8931:4:::1;8913:15;;8896:14;;8884:9;:26;;;;:::i;:::-;:44;;;;:::i;:::-;:51;8876:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;9002:9;8983:16;:28;;;;8803:213:::0;:::o;3658:140::-;3720:1;3711:6;:10;3703:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;3763:30;3774:10;3786:6;3763:10;:30::i;:::-;3658:140;:::o;1387:103::-;1442:4;1477:5;;;;;;;;;;;1466:16;;:7;:16;;;1459:23;;1387:103;;;:::o;3803:334::-;3839:23;3865:13;:25;3879:10;3865:25;;;;;;;;;;;;;;;3839:51;;3916:1;3903:4;:10;;;;;;;;;;;;:14;;;3895:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;3975:1;3955:4;:17;;;:21;3947:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4006:17;4026:4;:17;;;4006:37;;4068:1;4056:9;:13;4048:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4099:33;4110:10;4122:9;4099:10;:33::i;:::-;3834:303;;3803:334::o;2591:32::-;;;;:::o;8494:100::-;1121:24;1134:10;1121:12;:24::i;:::-;1113:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8581:8:::1;8564:14;;:25;;;;;;;;;;;;;;;;;;8494:100:::0;:::o;2480:34::-;;;;:::o;5853:364::-;5884:23;5910:13;:25;5924:10;5910:25;;;;;;;;;;;;;;;5884:51;;5961:1;5948:4;:10;;;;;;;;;;;;:14;;;5940:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5992:15;6010:25;6024:10;6010:13;:25::i;:::-;5992:43;;6054:1;6044:7;:11;6040:173;;;6070:12;;;;;;;;;;;6063:29;;;6093:10;6105:7;6063:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6144:15;6119:4;:15;;;:41;;;;;;;;;;;;;;;;;;6187:10;6173:34;;;6199:7;6173:34;;;;;;:::i;:::-;;;;;;;;6040:173;5879:338;;5853:364::o;2293:37::-;;;;:::o;6623:102::-;6674:7;6695:25;6709:10;6695:13;:25::i;:::-;6688:32;;6623:102;:::o;2000:27::-;;;;;;;;;;;;;:::o;10010:356::-;1121:24;1134:10;1121:12;:24::i;:::-;1113:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10076:23:::1;10102:13;:21;10116:6;10102:21;;;;;;;;;;;;;;;10076:47;;10149:1;10136:4;:10;;;;;;;;;;;;:14;;;10128:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10208:1;10188:4;:17;;;:21;10180:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10239:17;10259:4;:17;;;10239:37;;10301:1;10289:9;:13;10281:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10332:29;10343:6;10351:9;10332:10;:29::i;:::-;10071:295;;10010:356:::0;:::o;8599:82::-;1121:24;1134:10;1121:12;:24::i;:::-;1113:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8674:2:::1;8658:13;;:18;;;;;;;;;;;;;;;;;;8599:82:::0;:::o;9454:114::-;9511:17;;:::i;:::-;9542:13;:21;9556:6;9542:21;;;;;;;;;;;;;;;9535:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9454:114;;;:::o;2388:35::-;;;;:::o;7980:119::-;8038:7;2252:5;8065:12;;8059:3;:18;;;;:::i;:::-;:35;;;;:::i;:::-;8052:42;;7980:119;:::o;9573:232::-;9629:7;9643:14;9667:12;;;;;;;;;;;9660:30;;;9699:4;9660:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9643:62;;9724:17;;9714:6;:27;9710:53;;9756:1;9749:8;;;;;9710:53;9783:17;;9774:6;:26;;;;:::i;:::-;9767:33;;;9573:232;;:::o;2427:49::-;2471:5;2427:49;:::o;3130:523::-;3192:1;3183:6;:10;3175:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;3237:23;3263:13;:25;3277:10;3263:25;;;;;;;;;;;;;;;3237:51;;3293:9;3312:15;3293:35;;3371:1;3357:4;:10;;;;;;;;;;;;:15;;;3353:89;;;3393:2;3380:4;:10;;;:15;;;;;;;;;;;;;;;;;;3353:89;;;3413:23;3425:10;3413:11;:23::i;:::-;3353:89;3464:2;3446:4;:15;;;:20;;;;;;;;;;;;;;;;;;3492:6;3471:4;:17;;;:27;;;;;;;:::i;:::-;;;;;;;;3524:6;3503:17;;:27;;;;;;;:::i;:::-;;;;;;;;3544:12;;;;;;;;;;;3537:33;;;3571:10;3591:4;3598:6;3537:68;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3629:10;3617:31;;;3641:6;3617:31;;;;;;:::i;:::-;;;;;;;;3170:483;;3130:523;:::o;8193:296::-;8267:18;8287:16;8310:14;8333:15;8327:2;:21;;;;:::i;:::-;8310:38;;8353:22;2252:5;8393:12;;8384:6;8378:3;:12;;;;:::i;:::-;:27;;;;:::i;:::-;:44;;;;:::i;:::-;8353:69;;8452:6;8435:14;:23;;;;:::i;:::-;8477:6;8460:14;:23;;;;:::i;:::-;8427:57;;;;;;8193:296;;;:::o;9021:212::-;1121:24;1134:10;1121:12;:24::i;:::-;1113:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9149:4:::1;9130:16;;9113:14;;9101:9;:26;;;;:::i;:::-;:45;;;;:::i;:::-;:52;9093:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;9219:9;9201:15;:27;;;;9021:212:::0;:::o;2173:34::-;;;;:::o;1180:94::-;1031:19;1039:10;1031:7;:19::i;:::-;1023:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1262:4:::1;1240:14:::0;:19:::1;1255:3;1240:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;1180:94:::0;:::o;2334:50::-;2379:5;2334:50;:::o;7765:128::-;7806:17;7825:19;7859:12;;2252:5;7851:37;;;;7765:128;;:::o;2518:48::-;2561:5;2518:48;:::o;2081:29::-;;;;;;;;;;;;;:::o;1282:97::-;1031:19;1039:10;1031:7;:19::i;:::-;1023:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1366:5:::1;1344:14;:19;1359:3;1344:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1282:97:::0;:::o;1613:173::-;1031:19;1039:10;1031:7;:19::i;:::-;1023:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1697:3:::1;1689:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;1733:4;1711:14:::0;:19:::1;1726:3;1711:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;1753:25;1774:3;1753:25;;;;;;:::i;:::-;;;;;;;;1613:173:::0;:::o;6807:522::-;6867:7;6881:23;6907:13;:21;6921:6;6907:21;;;;;;;;;;;;;;;6881:47;;6988:1;6974:4;:10;;;;;;;;;;;;:15;;;6970:41;;;7004:1;6997:8;;;;;6970:41;7104:4;:15;;;;;;;;;;;;7085:34;;:15;:34;7081:60;;7134:1;7127:8;;;;;7081:60;7147:17;7185:4;:15;;;;;;;;;;;;7167:33;;:15;:33;;;;:::i;:::-;7147:53;;7205:20;2252:5;7248:12;;7228:4;:17;;;:32;;;;:::i;:::-;:49;;;;:::i;:::-;7205:72;;7316:8;7304:9;7289:12;:24;;;;:::i;:::-;:35;;;;:::i;:::-;7282:42;;;;;6807:522;;;;:::o;6222:62::-;6256:23;6268:10;6256:11;:23::i;:::-;6222:62::o;1498:107::-;1554:4;1578:14;:19;1593:3;1578:19;;;;;;;;;;;;;;;;;;;;;;;;;1571:26;;1498:107;;;:::o;4142:728::-;4208:23;4234:13;:21;4248:6;4234:21;;;;;;;;;;;;;;;4208:47;;4289:6;4268:4;:17;;;:27;;4260:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4388:15;4406:21;4420:6;4406:13;:21::i;:::-;4388:39;;4432:13;4457:7;4448:6;:16;;;;:::i;:::-;4432:32;;4469:15;4487:21;4502:5;4487:14;:21::i;:::-;4469:39;;4513:14;4530:20;4544:5;4530:13;:20::i;:::-;4513:37;;4555:13;4571:19;4584:5;4571:12;:19::i;:::-;4555:35;;4595:17;4642:5;4633:6;4623:7;4615:5;:15;;;;:::i;:::-;:24;;;;:::i;:::-;:32;;;;:::i;:::-;4595:52;;4673:6;4652:4;:17;;;:27;;;;;;;:::i;:::-;;;;;;;;4705:6;4684:17;;:27;;;;;;;:::i;:::-;;;;;;;;4741:15;4716:4;:15;;;:41;;;;;;;;;;;;;;;;;;4771:12;;;;;;;;;;;4764:29;;;4794:6;4802:9;4764:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4838:6;4824:41;;;4846:9;4857:7;4824:41;;;;;;;:::i;:::-;;;;;;;;4203:667;;;;;;;4142:728;;:::o;6289:329::-;6340:23;6366:13;:21;6380:6;6366:21;;;;;;;;;;;;;;;6340:47;;6392:15;6410:21;6424:6;6410:13;:21::i;:::-;6392:39;;6450:1;6440:7;:11;6436:178;;;6484:15;6459:4;:15;;;:41;;;;;;;;;;;;;;;;;;6527:7;6506:4;:17;;;:28;;;;;;;:::i;:::-;;;;;;;;6561:7;6540:17;;:28;;;;;;;:::i;:::-;;;;;;;;6592:6;6581:27;;;6600:7;6581:27;;;;;;:::i;:::-;;;;;;;;6436:178;6335:283;;6289:329;:::o;4875:146::-;4933:7;4954:62;4965:6;4973:16;;2379:5;2070:6;4954:10;:62::i;:::-;4947:69;;4875:146;;;:::o;5026:153::-;5083:7;5104:70;5115:6;5123:15;;2471:5;5159:14;;;;;;;;;;;5104:10;:70::i;:::-;5097:77;;5026:153;;;:::o;5184:149::-;5240:7;5261:67;5272:6;5280:14;;2561:5;5314:13;;;;;;;;;;;5261:10;:67::i;:::-;5254:74;;5184:149;;;:::o;5338:288::-;5450:7;5464:11;5478:39;5486:6;5494:9;5505:11;5478:7;:39::i;:::-;5464:53;;5532:1;5526:3;:7;5522:85;;;5548:12;;;;;;;;;;;5541:29;;;5571:8;5581:3;5541:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5598:3;5591:10;;;;;5522:85;5620:1;5613:8;;;5338:288;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:137::-;367:5;398:6;392:13;383:22;;414:30;438:5;414:30;:::i;:::-;313:137;;;;:::o;456:139::-;502:5;540:6;527:20;518:29;;556:33;583:5;556:33;:::i;:::-;456:139;;;;:::o;601:143::-;658:5;689:6;683:13;674:22;;705:33;732:5;705:33;:::i;:::-;601:143;;;;:::o;750:329::-;809:6;858:2;846:9;837:7;833:23;829:32;826:119;;;864:79;;:::i;:::-;826:119;984:1;1009:53;1054:7;1045:6;1034:9;1030:22;1009:53;:::i;:::-;999:63;;955:117;750:329;;;;:::o;1085:345::-;1152:6;1201:2;1189:9;1180:7;1176:23;1172:32;1169:119;;;1207:79;;:::i;:::-;1169:119;1327:1;1352:61;1405:7;1396:6;1385:9;1381:22;1352:61;:::i;:::-;1342:71;;1298:125;1085:345;;;;:::o;1436:::-;1503:6;1552:2;1540:9;1531:7;1527:23;1523:32;1520:119;;;1558:79;;:::i;:::-;1520:119;1678:1;1703:61;1756:7;1747:6;1736:9;1732:22;1703:61;:::i;:::-;1693:71;;1649:125;1436:345;;;;:::o;1787:329::-;1846:6;1895:2;1883:9;1874:7;1870:23;1866:32;1863:119;;;1901:79;;:::i;:::-;1863:119;2021:1;2046:53;2091:7;2082:6;2071:9;2067:22;2046:53;:::i;:::-;2036:63;;1992:117;1787:329;;;;:::o;2122:351::-;2192:6;2241:2;2229:9;2220:7;2216:23;2212:32;2209:119;;;2247:79;;:::i;:::-;2209:119;2367:1;2392:64;2448:7;2439:6;2428:9;2424:22;2392:64;:::i;:::-;2382:74;;2338:128;2122:351;;;;:::o;2479:619::-;2556:6;2564;2572;2621:2;2609:9;2600:7;2596:23;2592:32;2589:119;;;2627:79;;:::i;:::-;2589:119;2747:1;2772:53;2817:7;2808:6;2797:9;2793:22;2772:53;:::i;:::-;2762:63;;2718:117;2874:2;2900:53;2945:7;2936:6;2925:9;2921:22;2900:53;:::i;:::-;2890:63;;2845:118;3002:2;3028:53;3073:7;3064:6;3053:9;3049:22;3028:53;:::i;:::-;3018:63;;2973:118;2479:619;;;;;:::o;3104:147::-;3199:45;3238:5;3199:45;:::i;:::-;3194:3;3187:58;3104:147;;:::o;3257:118::-;3344:24;3362:5;3344:24;:::i;:::-;3339:3;3332:37;3257:118;;:::o;3381:109::-;3462:21;3477:5;3462:21;:::i;:::-;3457:3;3450:34;3381:109;;:::o;3496:366::-;3638:3;3659:67;3723:2;3718:3;3659:67;:::i;:::-;3652:74;;3735:93;3824:3;3735:93;:::i;:::-;3853:2;3848:3;3844:12;3837:19;;3496:366;;;:::o;3868:::-;4010:3;4031:67;4095:2;4090:3;4031:67;:::i;:::-;4024:74;;4107:93;4196:3;4107:93;:::i;:::-;4225:2;4220:3;4216:12;4209:19;;3868:366;;;:::o;4240:::-;4382:3;4403:67;4467:2;4462:3;4403:67;:::i;:::-;4396:74;;4479:93;4568:3;4479:93;:::i;:::-;4597:2;4592:3;4588:12;4581:19;;4240:366;;;:::o;4612:::-;4754:3;4775:67;4839:2;4834:3;4775:67;:::i;:::-;4768:74;;4851:93;4940:3;4851:93;:::i;:::-;4969:2;4964:3;4960:12;4953:19;;4612:366;;;:::o;4984:::-;5126:3;5147:67;5211:2;5206:3;5147:67;:::i;:::-;5140:74;;5223:93;5312:3;5223:93;:::i;:::-;5341:2;5336:3;5332:12;5325:19;;4984:366;;;:::o;5356:365::-;5498:3;5519:66;5583:1;5578:3;5519:66;:::i;:::-;5512:73;;5594:93;5683:3;5594:93;:::i;:::-;5712:2;5707:3;5703:12;5696:19;;5356:365;;;:::o;5727:366::-;5869:3;5890:67;5954:2;5949:3;5890:67;:::i;:::-;5883:74;;5966:93;6055:3;5966:93;:::i;:::-;6084:2;6079:3;6075:12;6068:19;;5727:366;;;:::o;6099:::-;6241:3;6262:67;6326:2;6321:3;6262:67;:::i;:::-;6255:74;;6338:93;6427:3;6338:93;:::i;:::-;6456:2;6451:3;6447:12;6440:19;;6099:366;;;:::o;6525:696::-;6676:4;6671:3;6667:14;6771:4;6764:5;6760:16;6754:23;6790:63;6847:4;6842:3;6838:14;6824:12;6790:63;:::i;:::-;6691:172;6946:4;6939:5;6935:16;6929:23;6965:61;7020:4;7015:3;7011:14;6997:12;6965:61;:::i;:::-;6873:163;7124:4;7117:5;7113:16;7107:23;7143:61;7198:4;7193:3;7189:14;7175:12;7143:61;:::i;:::-;7046:168;6645:576;6525:696;;:::o;7227:108::-;7304:24;7322:5;7304:24;:::i;:::-;7299:3;7292:37;7227:108;;:::o;7341:118::-;7428:24;7446:5;7428:24;:::i;:::-;7423:3;7416:37;7341:118;;:::o;7465:105::-;7540:23;7557:5;7540:23;:::i;:::-;7535:3;7528:36;7465:105;;:::o;7576:222::-;7669:4;7707:2;7696:9;7692:18;7684:26;;7720:71;7788:1;7777:9;7773:17;7764:6;7720:71;:::i;:::-;7576:222;;;;:::o;7804:238::-;7905:4;7943:2;7932:9;7928:18;7920:26;;7956:79;8032:1;8021:9;8017:17;8008:6;7956:79;:::i;:::-;7804:238;;;;:::o;8048:442::-;8197:4;8235:2;8224:9;8220:18;8212:26;;8248:71;8316:1;8305:9;8301:17;8292:6;8248:71;:::i;:::-;8329:72;8397:2;8386:9;8382:18;8373:6;8329:72;:::i;:::-;8411;8479:2;8468:9;8464:18;8455:6;8411:72;:::i;:::-;8048:442;;;;;;:::o;8496:332::-;8617:4;8655:2;8644:9;8640:18;8632:26;;8668:71;8736:1;8725:9;8721:17;8712:6;8668:71;:::i;:::-;8749:72;8817:2;8806:9;8802:18;8793:6;8749:72;:::i;:::-;8496:332;;;;;:::o;8834:210::-;8921:4;8959:2;8948:9;8944:18;8936:26;;8972:65;9034:1;9023:9;9019:17;9010:6;8972:65;:::i;:::-;8834:210;;;;:::o;9050:419::-;9216:4;9254:2;9243:9;9239:18;9231:26;;9303:9;9297:4;9293:20;9289:1;9278:9;9274:17;9267:47;9331:131;9457:4;9331:131;:::i;:::-;9323:139;;9050:419;;;:::o;9475:::-;9641:4;9679:2;9668:9;9664:18;9656:26;;9728:9;9722:4;9718:20;9714:1;9703:9;9699:17;9692:47;9756:131;9882:4;9756:131;:::i;:::-;9748:139;;9475:419;;;:::o;9900:::-;10066:4;10104:2;10093:9;10089:18;10081:26;;10153:9;10147:4;10143:20;10139:1;10128:9;10124:17;10117:47;10181:131;10307:4;10181:131;:::i;:::-;10173:139;;9900:419;;;:::o;10325:::-;10491:4;10529:2;10518:9;10514:18;10506:26;;10578:9;10572:4;10568:20;10564:1;10553:9;10549:17;10542:47;10606:131;10732:4;10606:131;:::i;:::-;10598:139;;10325:419;;;:::o;10750:::-;10916:4;10954:2;10943:9;10939:18;10931:26;;11003:9;10997:4;10993:20;10989:1;10978:9;10974:17;10967:47;11031:131;11157:4;11031:131;:::i;:::-;11023:139;;10750:419;;;:::o;11175:::-;11341:4;11379:2;11368:9;11364:18;11356:26;;11428:9;11422:4;11418:20;11414:1;11403:9;11399:17;11392:47;11456:131;11582:4;11456:131;:::i;:::-;11448:139;;11175:419;;;:::o;11600:::-;11766:4;11804:2;11793:9;11789:18;11781:26;;11853:9;11847:4;11843:20;11839:1;11828:9;11824:17;11817:47;11881:131;12007:4;11881:131;:::i;:::-;11873:139;;11600:419;;;:::o;12025:::-;12191:4;12229:2;12218:9;12214:18;12206:26;;12278:9;12272:4;12268:20;12264:1;12253:9;12249:17;12242:47;12306:131;12432:4;12306:131;:::i;:::-;12298:139;;12025:419;;;:::o;12450:330::-;12597:4;12635:2;12624:9;12620:18;12612:26;;12648:125;12770:1;12759:9;12755:17;12746:6;12648:125;:::i;:::-;12450:330;;;;:::o;12786:222::-;12879:4;12917:2;12906:9;12902:18;12894:26;;12930:71;12998:1;12987:9;12983:17;12974:6;12930:71;:::i;:::-;12786:222;;;;:::o;13014:332::-;13135:4;13173:2;13162:9;13158:18;13150:26;;13186:71;13254:1;13243:9;13239:17;13230:6;13186:71;:::i;:::-;13267:72;13335:2;13324:9;13320:18;13311:6;13267:72;:::i;:::-;13014:332;;;;;:::o;13433:169::-;13517:11;13551:6;13546:3;13539:19;13591:4;13586:3;13582:14;13567:29;;13433:169;;;;:::o;13608:305::-;13648:3;13667:20;13685:1;13667:20;:::i;:::-;13662:25;;13701:20;13719:1;13701:20;:::i;:::-;13696:25;;13855:1;13787:66;13783:74;13780:1;13777:81;13774:107;;;13861:18;;:::i;:::-;13774:107;13905:1;13902;13898:9;13891:16;;13608:305;;;;:::o;13919:185::-;13959:1;13976:20;13994:1;13976:20;:::i;:::-;13971:25;;14010:20;14028:1;14010:20;:::i;:::-;14005:25;;14049:1;14039:35;;14054:18;;:::i;:::-;14039:35;14096:1;14093;14089:9;14084:14;;13919:185;;;;:::o;14110:848::-;14171:5;14178:4;14202:6;14193:15;;14226:5;14217:14;;14240:712;14261:1;14251:8;14248:15;14240:712;;;14356:4;14351:3;14347:14;14341:4;14338:24;14335:50;;;14365:18;;:::i;:::-;14335:50;14415:1;14405:8;14401:16;14398:451;;;14830:4;14823:5;14819:16;14810:25;;14398:451;14880:4;14874;14870:15;14862:23;;14910:32;14933:8;14910:32;:::i;:::-;14898:44;;14240:712;;;14110:848;;;;;;;:::o;14964:285::-;15024:5;15048:23;15066:4;15048:23;:::i;:::-;15040:31;;15092:27;15110:8;15092:27;:::i;:::-;15080:39;;15138:104;15175:66;15165:8;15159:4;15138:104;:::i;:::-;15129:113;;14964:285;;;;:::o;15255:1073::-;15309:5;15500:8;15490:40;;15521:1;15512:10;;15523:5;;15490:40;15549:4;15539:36;;15566:1;15557:10;;15568:5;;15539:36;15635:4;15683:1;15678:27;;;;15719:1;15714:191;;;;15628:277;;15678:27;15696:1;15687:10;;15698:5;;;15714:191;15759:3;15749:8;15746:17;15743:43;;;15766:18;;:::i;:::-;15743:43;15815:8;15812:1;15808:16;15799:25;;15850:3;15843:5;15840:14;15837:40;;;15857:18;;:::i;:::-;15837:40;15890:5;;;15628:277;;16014:2;16004:8;16001:16;15995:3;15989:4;15986:13;15982:36;15964:2;15954:8;15951:16;15946:2;15940:4;15937:12;15933:35;15917:111;15914:246;;;16070:8;16064:4;16060:19;16051:28;;16105:3;16098:5;16095:14;16092:40;;;16112:18;;:::i;:::-;16092:40;16145:5;;15914:246;16185:42;16223:3;16213:8;16207:4;16204:1;16185:42;:::i;:::-;16170:57;;;;16259:4;16254:3;16250:14;16243:5;16240:25;16237:51;;;16268:18;;:::i;:::-;16237:51;16317:4;16310:5;16306:16;16297:25;;15255:1073;;;;;;:::o;16334:348::-;16374:7;16397:20;16415:1;16397:20;:::i;:::-;16392:25;;16431:20;16449:1;16431:20;:::i;:::-;16426:25;;16619:1;16551:66;16547:74;16544:1;16541:81;16536:1;16529:9;16522:17;16518:105;16515:131;;;16626:18;;:::i;:::-;16515:131;16674:1;16671;16667:9;16656:20;;16334:348;;;;:::o;16688:191::-;16728:4;16748:20;16766:1;16748:20;:::i;:::-;16743:25;;16782:20;16800:1;16782:20;:::i;:::-;16777:25;;16821:1;16818;16815:8;16812:34;;;16826:18;;:::i;:::-;16812:34;16871:1;16868;16864:9;16856:17;;16688:191;;;;:::o;16885:96::-;16922:7;16951:24;16969:5;16951:24;:::i;:::-;16940:35;;16885:96;;;:::o;16987:104::-;17032:7;17061:24;17079:5;17061:24;:::i;:::-;17050:35;;16987:104;;;:::o;17097:90::-;17131:7;17174:5;17167:13;17160:21;17149:32;;17097:90;;;:::o;17193:126::-;17230:7;17270:42;17263:5;17259:54;17248:65;;17193:126;;;:::o;17325:77::-;17362:7;17391:5;17380:16;;17325:77;;;:::o;17408:93::-;17444:7;17484:10;17477:5;17473:22;17462:33;;17408:93;;;:::o;17507:134::-;17565:9;17598:37;17629:5;17598:37;:::i;:::-;17585:50;;17507:134;;;:::o;17647:126::-;17697:9;17730:37;17761:5;17730:37;:::i;:::-;17717:50;;17647:126;;;:::o;17779:113::-;17829:9;17862:24;17880:5;17862:24;:::i;:::-;17849:37;;17779:113;;;:::o;17898:176::-;17930:1;17947:20;17965:1;17947:20;:::i;:::-;17942:25;;17981:20;17999:1;17981:20;:::i;:::-;17976:25;;18020:1;18010:35;;18025:18;;:::i;:::-;18010:35;18066:1;18063;18059:9;18054:14;;17898:176;;;;:::o;18080:180::-;18128:77;18125:1;18118:88;18225:4;18222:1;18215:15;18249:4;18246:1;18239:15;18266:180;18314:77;18311:1;18304:88;18411:4;18408:1;18401:15;18435:4;18432:1;18425:15;18575:117;18684:1;18681;18674:12;18698:102;18740:8;18787:5;18784:1;18780:13;18759:34;;18698:102;;;:::o;18806:170::-;18946:22;18942:1;18934:6;18930:14;18923:46;18806:170;:::o;18982:225::-;19122:34;19118:1;19110:6;19106:14;19099:58;19191:8;19186:2;19178:6;19174:15;19167:33;18982:225;:::o;19213:170::-;19353:22;19349:1;19341:6;19337:14;19330:46;19213:170;:::o;19389:175::-;19529:27;19525:1;19517:6;19513:14;19506:51;19389:175;:::o;19570:246::-;19710:34;19706:1;19698:6;19694:14;19687:58;19779:29;19774:2;19766:6;19762:15;19755:54;19570:246;:::o;19822:156::-;19962:8;19958:1;19950:6;19946:14;19939:32;19822:156;:::o;19984:182::-;20124:34;20120:1;20112:6;20108:14;20101:58;19984:182;:::o;20172:161::-;20312:13;20308:1;20300:6;20296:14;20289:37;20172:161;:::o;20339:122::-;20412:24;20430:5;20412:24;:::i;:::-;20405:5;20402:35;20392:63;;20451:1;20448;20441:12;20392:63;20339:122;:::o;20467:138::-;20548:32;20574:5;20548:32;:::i;:::-;20541:5;20538:43;20528:71;;20595:1;20592;20585:12;20528:71;20467:138;:::o;20611:116::-;20681:21;20696:5;20681:21;:::i;:::-;20674:5;20671:32;20661:60;;20717:1;20714;20707:12;20661:60;20611:116;:::o;20733:122::-;20806:24;20824:5;20806:24;:::i;:::-;20799:5;20796:35;20786:63;;20845:1;20842;20835:12;20786:63;20733:122;:::o
Swarm Source
ipfs://19efa4a1d61689aaa59eba0f8baa401ba957dcd1a16654987f8b090dce3ce4a9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.