ETH Price: $3,105.10 (+0.56%)

Contract

0xD83f623a0a77e09DfC586B831012118Bdf3B4141
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Complete With Dr...211810102024-11-13 19:58:235 days ago1731527903IN
LifeCrypto: Staking Contract
0 ETH0.0058782482.21787266
Withdraw All211810072024-11-13 19:57:475 days ago1731527867IN
LifeCrypto: Staking Contract
0 ETH0.0090084380.65788969
Complete With Dr...211799862024-11-13 16:32:475 days ago1731515567IN
LifeCrypto: Staking Contract
0 ETH0.0068042995.17023307
Withdraw All211799812024-11-13 16:31:475 days ago1731515507IN
LifeCrypto: Staking Contract
0 ETH0.0094240499.63361666
Withdraw All203027092024-07-14 5:39:47128 days ago1720935587IN
LifeCrypto: Staking Contract
0 ETH0.000261432.80325091
Deposit202454812024-07-06 5:48:11136 days ago1720244891IN
LifeCrypto: Staking Contract
0 ETH0.00020671.93618624
Deposit202311262024-07-04 5:41:35138 days ago1720071695IN
LifeCrypto: Staking Contract
0 ETH0.000260722.10500578
Complete With Dr...201562442024-06-23 18:41:35148 days ago1719168095IN
LifeCrypto: Staking Contract
0 ETH0.000375743.21276995
Complete With Dr...201072952024-06-16 22:20:47155 days ago1718576447IN
LifeCrypto: Staking Contract
0 ETH0.000471094.02796182
Complete With Dr...200414712024-06-07 17:34:23164 days ago1717781663IN
LifeCrypto: Staking Contract
0 ETH0.0017702315.14679482
Complete With Dr...200299362024-06-06 2:54:11166 days ago1717642451IN
LifeCrypto: Staking Contract
0 ETH0.000675839.43645509
Withdraw All200299212024-06-06 2:51:11166 days ago1717642271IN
LifeCrypto: Staking Contract
0 ETH0.0012394511.23082427
Complete With Dr...200284492024-06-05 21:55:11166 days ago1717624511IN
LifeCrypto: Staking Contract
0 ETH0.0034536929.50945588
Complete With Dr...200061392024-06-02 19:10:47169 days ago1717355447IN
LifeCrypto: Staking Contract
0 ETH0.000939898.03075054
Complete With Dr...200046762024-06-02 14:17:11170 days ago1717337831IN
LifeCrypto: Staking Contract
0 ETH0.00086612.09172836
Withdraw All200046532024-06-02 14:12:23170 days ago1717337543IN
LifeCrypto: Staking Contract
0 ETH0.0011745712.39077398
Deposit199162452024-05-21 5:38:23182 days ago1716269903IN
LifeCrypto: Staking Contract
0 ETH0.002140410.36217474
Complete With Dr...198722562024-05-15 2:01:11188 days ago1715738471IN
LifeCrypto: Staking Contract
0 ETH0.000473935.28486071
Complete With Dr...198722282024-05-15 1:55:35188 days ago1715738135IN
LifeCrypto: Staking Contract
0 ETH0.000516534.99757023
Complete With Dr...198510772024-05-12 2:50:59191 days ago1715482259IN
LifeCrypto: Staking Contract
0 ETH0.000630375.38610457
Extend Lockup197838332024-05-02 17:08:59200 days ago1714669739IN
LifeCrypto: Staking Contract
0 ETH0.0009266614.04121929
Withdraw All197838292024-05-02 17:08:11200 days ago1714669691IN
LifeCrypto: Staking Contract
0 ETH0.0015149813.56454247
Extend Lockup197836962024-05-02 16:41:35200 days ago1714668095IN
LifeCrypto: Staking Contract
0 ETH0.0014401212.56787349
Extend Lockup197836922024-05-02 16:40:47200 days ago1714668047IN
LifeCrypto: Staking Contract
0 ETH0.0007825911.85814574
Withdraw All197836892024-05-02 16:40:11200 days ago1714668011IN
LifeCrypto: Staking Contract
0 ETH0.0008911111.50012526
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LifeStake

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-01-26
*/

pragma solidity ^0.8.10;
 
// SPDX-License-Identifier: MIT
 
contract LifeStake {
    //constant
    uint256 public constant percentDivider = 1_000;
    uint256 public maxStake = 2_500_000_000;
    uint256 public minStake = 10_000;
    uint256 public totalStaked;
    uint256 public currentStaked;
    uint256 public TimeStep = 1 days;
    //address
    IERC20 public TOKEN;
    address payable public Admin;
    address payable public RewardAddress;
 
    // structures
    struct Stake {
        uint256 StakePercent;
        uint256 StakePeriod;
    }
    struct Staker {
        uint256 Amount;
        uint256 Claimed;
        uint256 Claimable;
        uint256 MaxClaimable;
        uint256 TokenPerDay;
        uint256 LastClaimTime;
        uint256 UnStakeTime;
        uint256 StakeTime;
    }
 
    Stake public StakeI;
    Stake public StakeII;
    Stake public StakeIII;
    // mapping & array
    mapping(address => Staker) private PlanI;
    mapping(address => Staker) private PlanII;
    mapping(address => Staker) private PlanIII;
 
    modifier onlyAdmin() {
        require(msg.sender == Admin, "Stake: Not an Admin");
        _;
    }
    modifier validDepositId(uint256 _depositId) {
        require(_depositId >= 1 && _depositId <= 3, "Invalid depositId");
        _;
    }
 
    constructor(address _TOKEN) {
        Admin = payable(msg.sender);
        RewardAddress = payable(msg.sender);
        TOKEN = IERC20(_TOKEN);
        StakeI.StakePercent = 25;
        StakeI.StakePeriod = 30 days;
 
        StakeII.StakePercent = 175;
        StakeII.StakePeriod = 180 days;
 
        StakeIII.StakePercent = 390;
        StakeIII.StakePeriod = 360 days;
 
        maxStake = maxStake * (10**TOKEN.decimals());
        minStake = minStake * (10**TOKEN.decimals());
    }
 
    receive() external payable {}
 
    // to buy  token during Stake time => for web3 use
    function deposit(uint256 _depositId, uint256 _amount)
        public
        validDepositId(_depositId)
    {
        require(currentStaked <= maxStake, "MaxStake limit reached");
        require(_amount >= minStake, "Deposit more than 10_000");
        TOKEN.transferFrom(msg.sender, address(this), _amount);
        totalStaked = totalStaked + (_amount);
        currentStaked = currentStaked + (_amount);
 
        if (_depositId == 1) {
            PlanI[msg.sender].Claimable = calcRewards(msg.sender, _depositId);
            PlanI[msg.sender].Amount = PlanI[msg.sender].Amount + (_amount);
            PlanI[msg.sender].TokenPerDay = (
                CalculatePerDay(
                    (((PlanI[msg.sender].Amount * (StakeI.StakePercent)) /
                        (percentDivider)) ) + calcRewards(msg.sender, _depositId),
                    StakeI.StakePeriod
                )
            );
            PlanI[msg.sender].MaxClaimable =
                ((PlanI[msg.sender].Amount * (StakeI.StakePercent)) /
                    (percentDivider)) +
                PlanI[msg.sender].Claimable;
 
            PlanI[msg.sender].LastClaimTime = block.timestamp;
 
            PlanI[msg.sender].StakeTime = block.timestamp;
            PlanI[msg.sender].UnStakeTime =
                block.timestamp +
                (StakeI.StakePeriod);
            PlanI[msg.sender].Claimed = 0; 
        } else if (_depositId == 2) {
            PlanII[msg.sender].Claimable = calcRewards(msg.sender, _depositId);
 
            PlanII[msg.sender].Amount = PlanII[msg.sender].Amount + (_amount);
            PlanII[msg.sender].TokenPerDay = (
                CalculatePerDay(
                    (((PlanII[msg.sender].Amount * (StakeII.StakePercent)) /
                        (percentDivider)) + calcRewards(msg.sender, _depositId)),
                    StakeII.StakePeriod
                )
            );
            PlanII[msg.sender].MaxClaimable =
                ((PlanII[msg.sender].Amount * (StakeII.StakePercent)) /
                    (percentDivider)) +
                PlanII[msg.sender].Claimable;
 
            PlanII[msg.sender].LastClaimTime = block.timestamp;
 
            PlanII[msg.sender].StakeTime = block.timestamp;
            PlanII[msg.sender].UnStakeTime =
                block.timestamp +
                (StakeII.StakePeriod);
            PlanII[msg.sender].Claimed = 0;
        } else if (_depositId == 3) {
            PlanIII[msg.sender].Claimable = calcRewards(msg.sender, _depositId);
            PlanIII[msg.sender].Amount = PlanIII[msg.sender].Amount + (_amount);
            PlanIII[msg.sender].TokenPerDay = (
                CalculatePerDay(
                    (((PlanIII[msg.sender].Amount * (StakeIII.StakePercent)) /
                        (percentDivider)) ) + calcRewards(msg.sender, _depositId),
                    StakeIII.StakePeriod
                )
            );
            PlanIII[msg.sender].MaxClaimable =
                ((PlanIII[msg.sender].Amount * (StakeIII.StakePercent)) /
                    (percentDivider)) +
                PlanIII[msg.sender].Claimable;
 
            PlanIII[msg.sender].LastClaimTime = block.timestamp;
 
            PlanIII[msg.sender].StakeTime = block.timestamp;
            PlanIII[msg.sender].UnStakeTime =
                block.timestamp +
                (StakeIII.StakePeriod);
            PlanIII[msg.sender].Claimed = 0;
        }
    }
    function extendLockup(uint256 _depositId)
        public
        validDepositId(_depositId)
    {
        require(currentStaked <= maxStake, "MaxStake limit reached");
        totalStaked = totalStaked + (calcRewards(msg.sender, _depositId));
 
        currentStaked = currentStaked + (calcRewards(msg.sender, _depositId));
        if(calcRewards(msg.sender, _depositId) > 0)
        {
            TOKEN.transferFrom(RewardAddress, address(this),calcRewards(msg.sender, _depositId) );
        }
        if (_depositId == 1) {
            require(PlanI[msg.sender].Amount > 0, "not staked1");
 
            PlanI[msg.sender].Amount = PlanI[msg.sender].Amount + (calcRewards(msg.sender, _depositId));
            PlanI[msg.sender].TokenPerDay = (
                CalculatePerDay(
                    ((PlanI[msg.sender].Amount * (StakeI.StakePercent)) /
                        (percentDivider)),
                    StakeI.StakePeriod
                )
            );
            PlanI[msg.sender].MaxClaimable =
                ((PlanI[msg.sender].Amount * (StakeI.StakePercent)) /
                    (percentDivider)) ;
 
            PlanI[msg.sender].LastClaimTime = block.timestamp;
 
            PlanI[msg.sender].StakeTime = block.timestamp;
            PlanI[msg.sender].UnStakeTime =
                block.timestamp +
                (StakeI.StakePeriod);
            PlanI[msg.sender].Claimable = 0;
            PlanI[msg.sender].Claimed = 0;
        } else if (_depositId == 2) {
            require(PlanII[msg.sender].Amount > 0, "not staked2");
 
            PlanII[msg.sender].Amount = PlanII[msg.sender].Amount + (calcRewards(msg.sender, _depositId));
            PlanII[msg.sender].TokenPerDay = (
                CalculatePerDay(
                    ((PlanII[msg.sender].Amount * (StakeII.StakePercent)) /
                        (percentDivider)),
                    StakeII.StakePeriod
                )
            );
            PlanII[msg.sender].MaxClaimable =
                ((PlanII[msg.sender].Amount * (StakeII.StakePercent)) /
                    (percentDivider)) ;
 
            PlanII[msg.sender].LastClaimTime = block.timestamp;
 
            PlanII[msg.sender].StakeTime = block.timestamp;
            PlanII[msg.sender].UnStakeTime =
                block.timestamp +
                (StakeII.StakePeriod);
            PlanII[msg.sender].Claimable = 0;
            PlanII[msg.sender].Claimed = 0;
        } else if (_depositId == 3) {
            require(PlanIII[msg.sender].Amount > 0, "not staked3");
            PlanIII[msg.sender].Claimable = 0;
            PlanIII[msg.sender].Amount = PlanIII[msg.sender].Amount + (calcRewards(msg.sender, _depositId));
            PlanIII[msg.sender].TokenPerDay = (
                CalculatePerDay(
                    ((PlanIII[msg.sender].Amount * (StakeIII.StakePercent)) /
                        (percentDivider)),
                    StakeIII.StakePeriod
                )
            );
            PlanIII[msg.sender].MaxClaimable =
                ((PlanIII[msg.sender].Amount * (StakeIII.StakePercent)) /
                    (percentDivider)) ;
 
            PlanIII[msg.sender].LastClaimTime = block.timestamp;
 
            PlanIII[msg.sender].StakeTime = block.timestamp;
            PlanIII[msg.sender].UnStakeTime =
                block.timestamp +
                (StakeIII.StakePeriod);
            PlanIII[msg.sender].Claimable = 0;
            PlanIII[msg.sender].Claimed = 0;
        }
    }
    function withdrawAll(uint256 _depositId)
        external
        validDepositId(_depositId)
    {
        require(calcRewards(msg.sender,_depositId) > 0,"no claimable amount available yet");
        _withdraw(msg.sender, _depositId);
    }
 
    function _withdraw(address _user, uint256 _depositId)
        internal
        validDepositId(_depositId)
    {
        if (_depositId == 1) {
            require(PlanI[_user].Claimed <= PlanI[_user].MaxClaimable,"no claimable amount available3");
            require(block.timestamp > PlanI[_user].LastClaimTime,"time not reached3");
 
 
            if (calcRewards(_user, _depositId) > 0) {
                TOKEN.transferFrom(RewardAddress, _user, calcRewards(_user, _depositId));
            }
            PlanI[_user].Claimed = PlanI[_user].Claimed + (calcRewards(_user, _depositId));
            PlanI[_user].LastClaimTime = block.timestamp;
            PlanI[_user].Claimable = 0;
        }
        if (_depositId == 2) {
            require(PlanII[_user].Claimed <= PlanII[_user].MaxClaimable,"no claimable amount available3");
            require(block.timestamp > PlanII[_user].LastClaimTime,"time not reached3");
 
 
            if (calcRewards(_user, _depositId) > 0) {
                TOKEN.transferFrom(RewardAddress, _user, calcRewards(_user, _depositId));
            }
            PlanII[_user].Claimed = PlanII[_user].Claimed + (calcRewards(_user, _depositId));
            PlanII[_user].LastClaimTime = block.timestamp;
            PlanII[_user].Claimable = 0;
        }
 
        if (_depositId == 3) {
            require(PlanIII[_user].Claimed <= PlanIII[_user].MaxClaimable,"no claimable amount available3");
            require(block.timestamp > PlanIII[_user].LastClaimTime,"time not reached3");
 
 
            if (calcRewards(_user, _depositId) > 0) {
                TOKEN.transferFrom(RewardAddress, _user, calcRewards(_user, _depositId));
            }
            PlanIII[_user].Claimed = PlanIII[_user].Claimed + (calcRewards(_user, _depositId));
            PlanIII[_user].LastClaimTime = block.timestamp;
            PlanIII[_user].Claimable = 0;
        }
        }
 
    function CompleteWithDraw(uint256 _depositId)
        external
        validDepositId(_depositId)
    {
        if (_depositId == 1) {
            require(
                PlanI[msg.sender].UnStakeTime < block.timestamp,
                "Time1 not reached"
            );
            TOKEN.transfer(msg.sender, PlanI[msg.sender].Amount);
            currentStaked = currentStaked - (PlanI[msg.sender].Amount);
            _withdraw(msg.sender, _depositId);
            delete PlanI[msg.sender];
        } else if (_depositId == 2) {
            require(
                PlanII[msg.sender].UnStakeTime < block.timestamp,
                "Time2 not reached"
            );
            TOKEN.transfer(msg.sender, PlanII[msg.sender].Amount);
            currentStaked = currentStaked - (PlanII[msg.sender].Amount);
            _withdraw(msg.sender, _depositId);
            delete PlanII[msg.sender];
        } else if (_depositId == 3) {
            require(
                PlanIII[msg.sender].UnStakeTime < block.timestamp,
                "Time3 not reached"
            );
            TOKEN.transfer(msg.sender, PlanIII[msg.sender].Amount);
            currentStaked = currentStaked - (PlanIII[msg.sender].Amount);
            _withdraw(msg.sender, _depositId);
            delete PlanIII[msg.sender];
        }
    }
 
    function calcRewards(address _sender, uint256 _depositId)
        public
        view
        validDepositId(_depositId)
        returns (uint256 amount)
    {
        if (_depositId == 1) {
            uint256 claimable = PlanI[_sender].TokenPerDay *
                ((block.timestamp - (PlanI[_sender].LastClaimTime)) /
                    (TimeStep));
            claimable = claimable + PlanI[_sender].Claimable;
            if (
                claimable >
                PlanI[_sender].MaxClaimable - (PlanI[_sender].Claimed)
            ) {
                claimable =
                    PlanI[_sender].MaxClaimable -
                    (PlanI[_sender].Claimed);
            }
            return (claimable);
        } else if (_depositId == 2) {
            uint256 claimable = PlanII[_sender].TokenPerDay *
                ((block.timestamp - (PlanII[_sender].LastClaimTime)) /
                    (TimeStep));
            claimable = claimable + PlanII[_sender].Claimable;
            if (
                claimable >
                PlanII[_sender].MaxClaimable - (PlanII[_sender].Claimed)
            ) {
                claimable =
                    PlanII[_sender].MaxClaimable -
                    (PlanII[_sender].Claimed);
            }
            return (claimable);
        } else if (_depositId == 3) {
            uint256 claimable = PlanIII[_sender].TokenPerDay *
                ((block.timestamp - (PlanIII[_sender].LastClaimTime)) /
                    (TimeStep));
            claimable = claimable + PlanIII[_sender].Claimable;
            if (
                claimable >
                PlanIII[_sender].MaxClaimable - (PlanIII[_sender].Claimed)
            ) {
                claimable =
                    PlanIII[_sender].MaxClaimable -
                    (PlanIII[_sender].Claimed);
            }
            return (claimable);
        }
    }
 
    function getCurrentBalance(uint256 _depositId, address _sender)
        public
        view
        returns (uint256 addressBalance)
    {
        if (_depositId == 1) {
            return (PlanI[_sender].Amount);
        } else if (_depositId == 2) {
            return (PlanII[_sender].Amount);
        } else if (_depositId == 3) {
            return (PlanIII[_sender].Amount);
        }
    }
 
    function depositDates(address _sender, uint256 _depositId)
        public
        view
        validDepositId(_depositId)
        returns (uint256 date)
    {
        if (_depositId == 1) {
            return (PlanI[_sender].StakeTime);
        } else if (_depositId == 2) {
            return (PlanII[_sender].StakeTime);
        } else if (_depositId == 3) {
            return (PlanIII[_sender].StakeTime);
        }
    }
 
    function isLockupPeriodExpired(address _user,uint256 _depositId)
        public
        view
        validDepositId(_depositId)
        returns (bool val)
    {
        if (_depositId == 1) {
            if (block.timestamp > PlanI[_user].UnStakeTime) {
                return true;
            } else {
                return false;
            }
        } else if (_depositId == 2) {
            if (block.timestamp > PlanII[_user].UnStakeTime) {
                return true;
            } else {
                return false;
            }
        } else if (_depositId == 3) {
            if (block.timestamp > PlanIII[_user].UnStakeTime) {
                return true;
            } else {
                return false;
            }
        }
    }
 
    // transfer Adminship
    function transferOwnership(address payable _newAdmin) external onlyAdmin {
        Admin = _newAdmin;
    }
    
    function withdrawStuckToken(address _token,uint256 _amount) external onlyAdmin {
        IERC20(_token).transfer(msg.sender,_amount);
    }
 
    function ChangeRewardAddress(address payable _newAddress) external onlyAdmin {
        RewardAddress = _newAddress;
    }
 
    function ChangePlan(
        uint256 _depositId,
        uint256 StakePercent,
        uint256 StakePeriod
    ) external onlyAdmin {
        if (_depositId == 1) {
            StakeI.StakePercent = StakePercent;
            StakeI.StakePeriod = StakePeriod;
        } else if (_depositId == 2) {
            StakeII.StakePercent = StakePercent;
            StakeII.StakePeriod = StakePeriod;
        } else if (_depositId == 3) {
            StakeIII.StakePercent = StakePercent;
            StakeIII.StakePeriod = StakePeriod;
        }
    }
 
    function ChangeMinStake(uint256 val) external onlyAdmin {
        minStake = val;
    }
 
    function ChangeMaxStake(uint256 val) external onlyAdmin {
        maxStake = val;
    }
 
    function userData(
        uint256[] memory _depositId,
        uint256[] memory _amount,
        address[] memory _user
    ) external onlyAdmin {
        require(
            _amount.length == _depositId.length &&
                _depositId.length == _user.length,
            "invalid number of arguments"
        );
        for (uint256 i; i < _depositId.length; i++) {
            totalStaked = totalStaked + (_amount[i]);
            currentStaked = currentStaked + (_amount[i]);
 
            if (_depositId[i] == 1) {
                PlanI[_user[i]].Claimable = calcRewards(
                    _user[i],
                    _depositId[i]
                );
                PlanI[_user[i]].TokenPerDay =
                    PlanI[_user[i]].TokenPerDay +
                    (
                        CalculatePerDay(
                            (_amount[i] * (StakeI.StakePercent)) /
                                (percentDivider),
                            StakeI.StakePeriod
                        )
                    );
                PlanI[_user[i]].MaxClaimable =
                    PlanI[_user[i]].MaxClaimable +
                    ((_amount[i] * (StakeI.StakePercent)) / (percentDivider));
                PlanI[_user[i]].LastClaimTime = block.timestamp;
                PlanI[_user[i]].StakeTime = block.timestamp;
                PlanI[_user[i]].UnStakeTime =
                    block.timestamp +
                    (StakeI.StakePeriod);
                PlanI[_user[i]].Amount = PlanI[_user[i]].Amount + (_amount[i]);
            } else if (_depositId[i] == 2) {
                PlanII[_user[i]].Claimable = calcRewards(
                    _user[i],
                    _depositId[i]
                );
                PlanII[_user[i]].TokenPerDay =
                    PlanII[_user[i]].TokenPerDay +
                    (
                        CalculatePerDay(
                            (_amount[i] * (StakeII.StakePercent)) /
                                (percentDivider),
                            StakeII.StakePeriod
                        )
                    );
                PlanII[_user[i]].MaxClaimable =
                    PlanII[_user[i]].MaxClaimable +
                    ((_amount[i] * (StakeII.StakePercent)) / (percentDivider));
                PlanII[_user[i]].LastClaimTime = block.timestamp;
                PlanII[_user[i]].StakeTime = block.timestamp;
                PlanII[_user[i]].UnStakeTime =
                    block.timestamp +
                    (StakeII.StakePeriod);
                PlanII[_user[i]].Amount =
                    PlanII[_user[i]].Amount +
                    (_amount[i]);
            } else if (_depositId[i] == 3) {
                PlanIII[_user[i]].Claimable = calcRewards(
                    _user[i],
                    _depositId[i]
                );
                PlanIII[_user[i]].TokenPerDay =
                    PlanIII[_user[i]].TokenPerDay +
                    (
                        CalculatePerDay(
                            (_amount[i] * (StakeIII.StakePercent)) /
                                (percentDivider),
                            StakeIII.StakePeriod
                        )
                    );
                PlanIII[_user[i]].MaxClaimable =
                    PlanIII[_user[i]].MaxClaimable +
                    ((_amount[i] * (StakeIII.StakePercent)) / (percentDivider));
                PlanIII[_user[i]].LastClaimTime = block.timestamp;
                PlanIII[_user[i]].StakeTime = block.timestamp;
                PlanIII[_user[i]].UnStakeTime =
                    block.timestamp +
                    (StakeIII.StakePeriod);
                PlanIII[_user[i]].Amount =
                    PlanIII[_user[i]].Amount +
                    (_amount[i]);
            }
        }
    }
 
    function getContractTokenBalance() public view returns (uint256) {
        return TOKEN.balanceOf(address(this));
    }
 
    function CalculatePerDay(uint256 amount, uint256 _VestingPeriod)
        internal
        view
        returns (uint256)
    {
        return (amount * (TimeStep)) / (_VestingPeriod);
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function decimals() external view returns (uint8);
 
    function symbol() external view returns (string memory);
 
    function name() external view returns (string memory);
 
    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 Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_TOKEN","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Admin","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"ChangeMaxStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"ChangeMinStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"},{"internalType":"uint256","name":"StakePercent","type":"uint256"},{"internalType":"uint256","name":"StakePeriod","type":"uint256"}],"name":"ChangePlan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newAddress","type":"address"}],"name":"ChangeRewardAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"CompleteWithDraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RewardAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StakeI","outputs":[{"internalType":"uint256","name":"StakePercent","type":"uint256"},{"internalType":"uint256","name":"StakePeriod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StakeII","outputs":[{"internalType":"uint256","name":"StakePercent","type":"uint256"},{"internalType":"uint256","name":"StakePeriod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StakeIII","outputs":[{"internalType":"uint256","name":"StakePercent","type":"uint256"},{"internalType":"uint256","name":"StakePeriod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TimeStep","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"calcRewards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"depositDates","outputs":[{"internalType":"uint256","name":"date","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"extendLockup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"}],"name":"getCurrentBalance","outputs":[{"internalType":"uint256","name":"addressBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"isLockupPeriodExpired","outputs":[{"internalType":"bool","name":"val","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newAdmin","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_depositId","type":"uint256[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"},{"internalType":"address[]","name":"_user","type":"address[]"}],"name":"userData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052639502f900600055612710600155620151806004553480156200002657600080fd5b50604051620033f0380380620033f08339810160408190526200004991620001be565b600680546001600160a01b031990811633908117909255600780548216909217909155600580546001600160a01b038416921682179055601960085562278d0060095560af600a5562ed4e00600b55610186600c556301da9c00600d556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015620000e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001089190620001f0565b6200011590600a6200032a565b6000546200012491906200033b565b6000556005546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa15801562000172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001989190620001f0565b620001a590600a6200032a565b600154620001b491906200033b565b600155506200035d565b600060208284031215620001d157600080fd5b81516001600160a01b0381168114620001e957600080fd5b9392505050565b6000602082840312156200020357600080fd5b815160ff81168114620001e957600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200026c57816000190482111562000250576200025062000215565b808516156200025e57918102915b93841c939080029062000230565b509250929050565b600082620002855750600162000324565b81620002945750600062000324565b8160018114620002ad5760028114620002b857620002d8565b600191505062000324565b60ff841115620002cc57620002cc62000215565b50506001821b62000324565b5060208310610133831016604e8410600b8410161715620002fd575081810a62000324565b6200030983836200022b565b806000190482111562000320576200032062000215565b0290505b92915050565b6000620001e960ff84168362000274565b600081600019048311821515161562000358576200035862000215565b500290565b613083806200036d6000396000f3fe6080604052600436106101bb5760003560e01c8063707bc4b2116100ec578063cd055bb71161008a578063ea1b28e011610064578063ea1b28e0146104d7578063f2fde38b146104ed578063fe6f1b051461050d578063ff1b636d1461052357600080fd5b8063cd055bb714610481578063ce8500df146104a1578063e2bbb158146104b757600080fd5b80638b53ccb3116100c65780638b53ccb314610401578063958e2d3114610421578063b08f205e14610441578063c5b57d8f1461046157600080fd5b8063707bc4b2146103b0578063817b1cd2146103cb57806382bfefc8146103e157600080fd5b8063375b3c0a1161015957806367a8083c1161013357806367a8083c1461032257806368efee2a14610342578063695464e9146103625780636bbfff001461037857600080fd5b8063375b3c0a146102cc5780635fd13a46146102e25780635ffd532d1461030257600080fd5b80632398175c116101955780632398175c1461023e5780632bdd00161461025957806330d66afa14610289578063317d9453146102a957600080fd5b806302f715ce146101c757806307aa56dd146101e95780630c506e961461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e2366004612bc8565b610543565b005b3480156101f557600080fd5b50600c54600d54610204919082565b604080519283526020830191909152015b60405180910390f35b34801561022a57600080fd5b506101e7610239366004612bf9565b610a60565b34801561024a57600080fd5b50600854600954610204919082565b34801561026557600080fd5b50610279610274366004612bf9565b610b00565b6040519015158152602001610215565b34801561029557600080fd5b506101e76102a4366004612c25565b610bdc565b3480156102b557600080fd5b506102be610c28565b604051908152602001610215565b3480156102d857600080fd5b506102be60015481565b3480156102ee57600080fd5b506101e76102fd366004612bc8565b610c9a565b34801561030e57600080fd5b506101e761031d366004612c42565b6110c2565b34801561032e57600080fd5b506101e761033d366004612bc8565b61112b565b34801561034e57600080fd5b506102be61035d366004612bf9565b61115a565b34801561036e57600080fd5b506102be60035481565b34801561038457600080fd5b50600754610398906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156103bc57600080fd5b50600a54600b54610204919082565b3480156103d757600080fd5b506102be60025481565b3480156103ed57600080fd5b50600554610398906001600160a01b031681565b34801561040d57600080fd5b506102be61041c366004612bf9565b611468565b34801561042d57600080fd5b506101e761043c366004612bc8565b61151d565b34801561044d57600080fd5b506102be61045c366004612c6e565b6115b9565b34801561046d57600080fd5b506101e761047c366004612d74565b611635565b34801561048d57600080fd5b506101e761049c366004612bc8565b6121b3565b3480156104ad57600080fd5b506102be60045481565b3480156104c357600080fd5b506101e76104d2366004612e5b565b6121e2565b3480156104e357600080fd5b506102be60005481565b3480156104f957600080fd5b506101e7610508366004612c25565b6126b9565b34801561051957600080fd5b506102be6103e881565b34801561052f57600080fd5b50600654610398906001600160a01b031681565b8060018110158015610556575060038111155b61057b5760405162461bcd60e51b815260040161057290612e7d565b60405180910390fd5b60005460035411156105c85760405162461bcd60e51b815260206004820152601660248201527513585e14dd185ad9481b1a5b5a5d081c995858da195960521b6044820152606401610572565b6105d2338361115a565b6002546105df9190612ebe565b6002556105ec338361115a565b6003546105f99190612ebe565b6003556000610608338461115a565b1115610695576005546007546001600160a01b03918216916323b872dd911630610632338761115a565b6040518463ffffffff1660e01b815260040161065093929190612ed6565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106939190612efa565b505b81600114156107d257336000908152600e60205260409020546106e85760405162461bcd60e51b815260206004820152600b60248201526a6e6f74207374616b65643160a81b6044820152606401610572565b6106f2338361115a565b336000908152600e602052604090205461070c9190612ebe565b336000908152600e60205260409020819055600854610744916103e89161073291612f1c565b61073c9190612f3b565b600954612705565b336000908152600e60205260409020600481019190915560085490546103e89161076d91612f1c565b6107779190612f3b565b336000908152600e602052604090206003810191909155426005820181905560079091018190556009546107aa91612ebe565b336000908152600e602052604081206006810192909255600282018190556001909101555050565b816002141561090f57336000908152600f60205260409020546108255760405162461bcd60e51b815260206004820152600b60248201526a3737ba1039ba30b5b2b21960a91b6044820152606401610572565b61082f338361115a565b336000908152600f60205260409020546108499190612ebe565b336000908152600f60205260409020819055600a54610881916103e89161086f91612f1c565b6108799190612f3b565b600b54612705565b336000908152600f602052604090206004810191909155600a5490546103e8916108aa91612f1c565b6108b49190612f3b565b336000908152600f60205260409020600381019190915542600582018190556007909101819055600b546108e791612ebe565b336000908152600f602052604081206006810192909255600282018190556001909101555050565b8160031415610a5c57336000908152601060205260409020546109625760405162461bcd60e51b815260206004820152600b60248201526a6e6f74207374616b65643360a81b6044820152606401610572565b3360008181526010602052604081206002015561097f908361115a565b336000908152601060205260409020546109999190612ebe565b336000908152601060205260409020819055600c546109d1916103e8916109bf91612f1c565b6109c99190612f3b565b600d54612705565b3360009081526010602052604090206004810191909155600c5490546103e8916109fa91612f1c565b610a049190612f3b565b336000908152601060205260409020600381019190915542600582018190556007909101819055600d54610a3791612ebe565b3360009081526010602052604081206006810192909255600282018190556001909101555b5050565b6006546001600160a01b03163314610a8a5760405162461bcd60e51b815260040161057290612f5d565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afb9190612efa565b505050565b60008160018110158015610b15575060038111155b610b315760405162461bcd60e51b815260040161057290612e7d565b8260011415610b6f576001600160a01b0384166000908152600e6020526040902060060154421115610b665760019150610bd5565b60009150610bd5565b8260021415610ba4576001600160a01b0384166000908152600f6020526040902060060154421115610b665760019150610bd5565b8260031415610bd5576001600160a01b038416600090815260106020526040902060060154421115610b6657600191505b5092915050565b6006546001600160a01b03163314610c065760405162461bcd60e51b815260040161057290612f5d565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c959190612f8a565b905090565b8060018110158015610cad575060038111155b610cc95760405162461bcd60e51b815260040161057290612e7d565b8160011415610e1c57336000908152600e60205260409020600601544211610d275760405162461bcd60e51b8152602060048201526011602482015270151a5b594c481b9bdd081c995858da1959607a1b6044820152606401610572565b600554336000818152600e60205260409081902054905163a9059cbb60e01b8152600481019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dad9190612efa565b50336000908152600e6020526040902054600354610dcb9190612fa3565b600355610dd83383612727565b336000908152600e60205260408120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600701555050565b8160021415610f6f57336000908152600f60205260409020600601544211610e7a5760405162461bcd60e51b8152602060048201526011602482015270151a5b594c881b9bdd081c995858da1959607a1b6044820152606401610572565b600554336000818152600f60205260409081902054905163a9059cbb60e01b8152600481019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190612efa565b50336000908152600f6020526040902054600354610f1e9190612fa3565b600355610f2b3383612727565b336000908152600f60205260408120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600701555050565b8160031415610a5c57336000908152601060205260409020600601544211610fcd5760405162461bcd60e51b8152602060048201526011602482015270151a5b594cc81b9bdd081c995858da1959607a1b6044820152606401610572565b600554336000818152601060205260409081902054905163a9059cbb60e01b8152600481019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303816000875af115801561102f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110539190612efa565b50336000908152601060205260409020546003546110719190612fa3565b60035561107e3383612727565b336000908152601060205260408120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600701555050565b6006546001600160a01b031633146110ec5760405162461bcd60e51b815260040161057290612f5d565b82600114156111015760089190915560095550565b826002141561111657600a91909155600b5550565b8260031415610afb57600c91909155600d5550565b6006546001600160a01b031633146111555760405162461bcd60e51b815260040161057290612f5d565b600055565b6000816001811015801561116f575060038111155b61118b5760405162461bcd60e51b815260040161057290612e7d565b8260011415611286576004546001600160a01b0385166000908152600e60205260408120600501549091906111c09042612fa3565b6111ca9190612f3b565b6001600160a01b0386166000908152600e60205260409020600401546111f09190612f1c565b6001600160a01b0386166000908152600e60205260409020600201549091506112199082612ebe565b6001600160a01b0386166000908152600e60205260409020600181015460039091015491925061124891612fa3565b81111561127f576001600160a01b0385166000908152600e60205260409020600181015460039091015461127c9190612fa3565b90505b9150610bd5565b8260021415611377576004546001600160a01b0385166000908152600f60205260408120600501549091906112bb9042612fa3565b6112c59190612f3b565b6001600160a01b0386166000908152600f60205260409020600401546112eb9190612f1c565b6001600160a01b0386166000908152600f60205260409020600201549091506113149082612ebe565b6001600160a01b0386166000908152600f60205260409020600181015460039091015491925061134391612fa3565b81111561127f576001600160a01b0385166000908152600f60205260409020600181015460039091015461127c9190612fa3565b8260031415610bd5576004546001600160a01b0385166000908152601060205260408120600501549091906113ac9042612fa3565b6113b69190612f3b565b6001600160a01b0386166000908152601060205260409020600401546113dc9190612f1c565b6001600160a01b0386166000908152601060205260409020600201549091506114059082612ebe565b6001600160a01b0386166000908152601060205260409020600181015460039091015491925061143491612fa3565b81111561127f576001600160a01b0385166000908152601060205260409020600181015460039091015461127c9190612fa3565b6000816001811015801561147d575060038111155b6114995760405162461bcd60e51b815260040161057290612e7d565b82600114156114c5576001600160a01b0384166000908152600e60205260409020600701549150610bd5565b82600214156114f1576001600160a01b0384166000908152600f60205260409020600701549150610bd5565b8260031415610bd5576001600160a01b0384166000908152601060205260409020600701549150610bd5565b8060018110158015611530575060038111155b61154c5760405162461bcd60e51b815260040161057290612e7d565b6000611558338461115a565b116115af5760405162461bcd60e51b815260206004820152602160248201527f6e6f20636c61696d61626c6520616d6f756e7420617661696c61626c652079656044820152601d60fa1b6064820152608401610572565b610a5c3383612727565b600082600114156115e357506001600160a01b0381166000908152600e602052604090205461162f565b826002141561160b57506001600160a01b0381166000908152600f602052604090205461162f565b826003141561162f57506001600160a01b0381166000908152601060205260409020545b92915050565b6006546001600160a01b0316331461165f5760405162461bcd60e51b815260040161057290612f5d565b82518251148015611671575080518351145b6116bd5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e756d626572206f6620617267756d656e747300000000006044820152606401610572565b60005b83518110156121ad578281815181106116db576116db612fba565b60200260200101516002546116f09190612ebe565b600255825183908290811061170757611707612fba565b602002602001015160035461171c9190612ebe565b600355835184908290811061173357611733612fba565b602002602001015160011415611ac85761177f82828151811061175857611758612fba565b602002602001015185838151811061177257611772612fba565b602002602001015161115a565b600e600084848151811061179557611795612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600201819055506117f46103e86008600001548584815181106117e2576117e2612fba565b60200260200101516107329190612f1c565b600e600084848151811061180a5761180a612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401546118409190612ebe565b600e600084848151811061185657611856612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401819055506103e86008600001548483815181106118a0576118a0612fba565b60200260200101516118b29190612f1c565b6118bc9190612f3b565b600e60008484815181106118d2576118d2612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600301546119089190612ebe565b600e600084848151811061191e5761191e612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206003018190555042600e600084848151811061196457611964612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206005018190555042600e60008484815181106119aa576119aa612fba565b6020908102919091018101516001600160a01b03168252810191909152604001600020600701556009546119de9042612ebe565b600e60008484815181106119f4576119f4612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060060181905550828181518110611a3557611a35612fba565b6020026020010151600e6000848481518110611a5357611a53612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154611a899190612ebe565b600e6000848481518110611a9f57611a9f612fba565b6020908102919091018101516001600160a01b031682528101919091526040016000205561219b565b838181518110611ada57611ada612fba565b602002602001015160021415611e1f57611aff82828151811061175857611758612fba565b600f6000848481518110611b1557611b15612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020181905550611b746103e8600a60000154858481518110611b6257611b62612fba565b602002602001015161086f9190612f1c565b600f6000848481518110611b8a57611b8a612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060040154611bc09190612ebe565b600f6000848481518110611bd657611bd6612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401819055506103e8600a60000154848381518110611c2057611c20612fba565b6020026020010151611c329190612f1c565b611c3c9190612f3b565b600f6000848481518110611c5257611c52612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030154611c889190612ebe565b600f6000848481518110611c9e57611c9e612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206003018190555042600f6000848481518110611ce457611ce4612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206005018190555042600f6000848481518110611d2a57611d2a612fba565b6020908102919091018101516001600160a01b0316825281019190915260400160002060070155600b54611d5e9042612ebe565b600f6000848481518110611d7457611d74612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060060181905550828181518110611db557611db5612fba565b6020026020010151600f6000848481518110611dd357611dd3612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154611e099190612ebe565b600f6000848481518110611a9f57611a9f612fba565b838181518110611e3157611e31612fba565b60200260200101516003141561219b57611e5682828151811061175857611758612fba565b60106000848481518110611e6c57611e6c612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020181905550611ecb6103e8600c60000154858481518110611eb957611eb9612fba565b60200260200101516109bf9190612f1c565b60106000848481518110611ee157611ee1612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060040154611f179190612ebe565b60106000848481518110611f2d57611f2d612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401819055506103e8600c60000154848381518110611f7757611f77612fba565b6020026020010151611f899190612f1c565b611f939190612f3b565b60106000848481518110611fa957611fa9612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030154611fdf9190612ebe565b60106000848481518110611ff557611ff5612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030181905550426010600084848151811061203b5761203b612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060050181905550426010600084848151811061208157612081612fba565b6020908102919091018101516001600160a01b0316825281019190915260400160002060070155600d546120b59042612ebe565b601060008484815181106120cb576120cb612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206006018190555082818151811061210c5761210c612fba565b60200260200101516010600084848151811061212a5761212a612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600001546121609190612ebe565b6010600084848151811061217657612176612fba565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b806121a581612fd0565b9150506116c0565b50505050565b6006546001600160a01b031633146121dd5760405162461bcd60e51b815260040161057290612f5d565b600155565b81600181101580156121f5575060038111155b6122115760405162461bcd60e51b815260040161057290612e7d565b600054600354111561225e5760405162461bcd60e51b815260206004820152601660248201527513585e14dd185ad9481b1a5b5a5d081c995858da195960521b6044820152606401610572565b6001548210156122b05760405162461bcd60e51b815260206004820152601860248201527f4465706f736974206d6f7265207468616e2031305f30303000000000000000006044820152606401610572565b6005546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906122e490339030908790600401612ed6565b6020604051808303816000875af1158015612303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123279190612efa565b50816002546123369190612ebe565b600255600354612347908390612ebe565b600355600183141561246f5761235d338461115a565b336000908152600e60205260409020600281019190915554612380908390612ebe565b336000818152600e60205260409020919091556123d5906123a1908561115a565b600854336000908152600e60205260409020546103e8916123c191612f1c565b6123cb9190612f3b565b61073c9190612ebe565b336000908152600e6020526040902060048101919091556002810154600854915490916103e8916124069190612f1c565b6124109190612f3b565b61241a9190612ebe565b336000908152600e6020526040902060038101919091554260058201819055600790910181905560095461244d91612ebe565b336000908152600e602052604081206006810192909255600190910155505050565b826002141561259457612482338461115a565b336000908152600f602052604090206002810191909155546124a5908390612ebe565b336000818152600f60205260409020919091556124fa906124c6908561115a565b600a54336000908152600f60205260409020546103e8916124e691612f1c565b6124f09190612f3b565b6108799190612ebe565b336000908152600f6020526040902060048101919091556002810154600a54915490916103e89161252b9190612f1c565b6125359190612f3b565b61253f9190612ebe565b336000908152600f60205260409020600381019190915542600582018190556007909101819055600b5461257291612ebe565b336000908152600f602052604081206006810192909255600190910155505050565b8260031415610afb576125a7338461115a565b3360009081526010602052604090206002810191909155546125ca908390612ebe565b3360008181526010602052604090209190915561261f906125eb908561115a565b600c54336000908152601060205260409020546103e89161260b91612f1c565b6126159190612f3b565b6109c99190612ebe565b33600090815260106020526040902060048101919091556002810154600c54915490916103e8916126509190612f1c565b61265a9190612f3b565b6126649190612ebe565b336000908152601060205260409020600381019190915542600582018190556007909101819055600d5461269791612ebe565b3360009081526010602052604081206006810192909255600190910155505050565b6006546001600160a01b031633146126e35760405162461bcd60e51b815260040161057290612f5d565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600081600454846127169190612f1c565b6127209190612f3b565b9392505050565b806001811015801561273a575060038111155b6127565760405162461bcd60e51b815260040161057290612e7d565b81600114156128d0576001600160a01b0383166000908152600e60205260409020600381015460019091015411156127a05760405162461bcd60e51b815260040161057290612feb565b6001600160a01b0383166000908152600e602052604090206005015442116127da5760405162461bcd60e51b815260040161057290613022565b60006127e6848461115a565b1115612873576005546007546001600160a01b03918216916323b872dd911685612810818761115a565b6040518463ffffffff1660e01b815260040161282e93929190612ed6565b6020604051808303816000875af115801561284d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128719190612efa565b505b61287d838361115a565b6001600160a01b0384166000908152600e60205260409020600101546128a39190612ebe565b6001600160a01b0384166000908152600e6020526040812060018101929092554260058301556002909101555b8160021415612a4a576001600160a01b0383166000908152600f602052604090206003810154600190910154111561291a5760405162461bcd60e51b815260040161057290612feb565b6001600160a01b0383166000908152600f602052604090206005015442116129545760405162461bcd60e51b815260040161057290613022565b6000612960848461115a565b11156129ed576005546007546001600160a01b03918216916323b872dd91168561298a818761115a565b6040518463ffffffff1660e01b81526004016129a893929190612ed6565b6020604051808303816000875af11580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb9190612efa565b505b6129f7838361115a565b6001600160a01b0384166000908152600f6020526040902060010154612a1d9190612ebe565b6001600160a01b0384166000908152600f6020526040812060018101929092554260058301556002909101555b8160031415610afb576001600160a01b038316600090815260106020526040902060038101546001909101541115612a945760405162461bcd60e51b815260040161057290612feb565b6001600160a01b0383166000908152601060205260409020600501544211612ace5760405162461bcd60e51b815260040161057290613022565b6000612ada848461115a565b1115612b67576005546007546001600160a01b03918216916323b872dd911685612b04818761115a565b6040518463ffffffff1660e01b8152600401612b2293929190612ed6565b6020604051808303816000875af1158015612b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b659190612efa565b505b612b71838361115a565b6001600160a01b038416600090815260106020526040902060010154612b979190612ebe565b6001600160a01b03841660009081526010602052604081206001810192909255426005830155600290910155505050565b600060208284031215612bda57600080fd5b5035919050565b6001600160a01b0381168114612bf657600080fd5b50565b60008060408385031215612c0c57600080fd5b8235612c1781612be1565b946020939093013593505050565b600060208284031215612c3757600080fd5b813561272081612be1565b600080600060608486031215612c5757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612c8157600080fd5b823591506020830135612c9381612be1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612cdd57612cdd612c9e565b604052919050565b600067ffffffffffffffff821115612cff57612cff612c9e565b5060051b60200190565b600082601f830112612d1a57600080fd5b81356020612d2f612d2a83612ce5565b612cb4565b82815260059290921b84018101918181019086841115612d4e57600080fd5b8286015b84811015612d695780358352918301918301612d52565b509695505050505050565b600080600060608486031215612d8957600080fd5b833567ffffffffffffffff80821115612da157600080fd5b612dad87838801612d09565b9450602091508186013581811115612dc457600080fd5b612dd088828901612d09565b945050604086013581811115612de557600080fd5b86019050601f81018713612df857600080fd5b8035612e06612d2a82612ce5565b81815260059190911b82018301908381019089831115612e2557600080fd5b928401925b82841015612e4c578335612e3d81612be1565b82529284019290840190612e2a565b80955050505050509250925092565b60008060408385031215612e6e57600080fd5b50508035926020909101359150565b602080825260119082015270125b9d985b1a590819195c1bdcda5d1259607a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612ed157612ed1612ea8565b500190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215612f0c57600080fd5b8151801515811461272057600080fd5b6000816000190483118215151615612f3657612f36612ea8565b500290565b600082612f5857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526013908201527229ba30b5b29d102737ba1030b71020b236b4b760691b604082015260600190565b600060208284031215612f9c57600080fd5b5051919050565b600082821015612fb557612fb5612ea8565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612fe457612fe4612ea8565b5060010190565b6020808252601e908201527f6e6f20636c61696d61626c6520616d6f756e7420617661696c61626c65330000604082015260600190565b60208082526011908201527074696d65206e6f7420726561636865643360781b60408201526060019056fea264697066735822122060a8d8e67a4a8b7d99992a415853d0aab55c7d3233901ffb177aee0f4b8ada0b64736f6c634300080a00330000000000000000000000006c936d4ae98e6d2172db18c16c4b601c99918ee6

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063707bc4b2116100ec578063cd055bb71161008a578063ea1b28e011610064578063ea1b28e0146104d7578063f2fde38b146104ed578063fe6f1b051461050d578063ff1b636d1461052357600080fd5b8063cd055bb714610481578063ce8500df146104a1578063e2bbb158146104b757600080fd5b80638b53ccb3116100c65780638b53ccb314610401578063958e2d3114610421578063b08f205e14610441578063c5b57d8f1461046157600080fd5b8063707bc4b2146103b0578063817b1cd2146103cb57806382bfefc8146103e157600080fd5b8063375b3c0a1161015957806367a8083c1161013357806367a8083c1461032257806368efee2a14610342578063695464e9146103625780636bbfff001461037857600080fd5b8063375b3c0a146102cc5780635fd13a46146102e25780635ffd532d1461030257600080fd5b80632398175c116101955780632398175c1461023e5780632bdd00161461025957806330d66afa14610289578063317d9453146102a957600080fd5b806302f715ce146101c757806307aa56dd146101e95780630c506e961461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e2366004612bc8565b610543565b005b3480156101f557600080fd5b50600c54600d54610204919082565b604080519283526020830191909152015b60405180910390f35b34801561022a57600080fd5b506101e7610239366004612bf9565b610a60565b34801561024a57600080fd5b50600854600954610204919082565b34801561026557600080fd5b50610279610274366004612bf9565b610b00565b6040519015158152602001610215565b34801561029557600080fd5b506101e76102a4366004612c25565b610bdc565b3480156102b557600080fd5b506102be610c28565b604051908152602001610215565b3480156102d857600080fd5b506102be60015481565b3480156102ee57600080fd5b506101e76102fd366004612bc8565b610c9a565b34801561030e57600080fd5b506101e761031d366004612c42565b6110c2565b34801561032e57600080fd5b506101e761033d366004612bc8565b61112b565b34801561034e57600080fd5b506102be61035d366004612bf9565b61115a565b34801561036e57600080fd5b506102be60035481565b34801561038457600080fd5b50600754610398906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156103bc57600080fd5b50600a54600b54610204919082565b3480156103d757600080fd5b506102be60025481565b3480156103ed57600080fd5b50600554610398906001600160a01b031681565b34801561040d57600080fd5b506102be61041c366004612bf9565b611468565b34801561042d57600080fd5b506101e761043c366004612bc8565b61151d565b34801561044d57600080fd5b506102be61045c366004612c6e565b6115b9565b34801561046d57600080fd5b506101e761047c366004612d74565b611635565b34801561048d57600080fd5b506101e761049c366004612bc8565b6121b3565b3480156104ad57600080fd5b506102be60045481565b3480156104c357600080fd5b506101e76104d2366004612e5b565b6121e2565b3480156104e357600080fd5b506102be60005481565b3480156104f957600080fd5b506101e7610508366004612c25565b6126b9565b34801561051957600080fd5b506102be6103e881565b34801561052f57600080fd5b50600654610398906001600160a01b031681565b8060018110158015610556575060038111155b61057b5760405162461bcd60e51b815260040161057290612e7d565b60405180910390fd5b60005460035411156105c85760405162461bcd60e51b815260206004820152601660248201527513585e14dd185ad9481b1a5b5a5d081c995858da195960521b6044820152606401610572565b6105d2338361115a565b6002546105df9190612ebe565b6002556105ec338361115a565b6003546105f99190612ebe565b6003556000610608338461115a565b1115610695576005546007546001600160a01b03918216916323b872dd911630610632338761115a565b6040518463ffffffff1660e01b815260040161065093929190612ed6565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106939190612efa565b505b81600114156107d257336000908152600e60205260409020546106e85760405162461bcd60e51b815260206004820152600b60248201526a6e6f74207374616b65643160a81b6044820152606401610572565b6106f2338361115a565b336000908152600e602052604090205461070c9190612ebe565b336000908152600e60205260409020819055600854610744916103e89161073291612f1c565b61073c9190612f3b565b600954612705565b336000908152600e60205260409020600481019190915560085490546103e89161076d91612f1c565b6107779190612f3b565b336000908152600e602052604090206003810191909155426005820181905560079091018190556009546107aa91612ebe565b336000908152600e602052604081206006810192909255600282018190556001909101555050565b816002141561090f57336000908152600f60205260409020546108255760405162461bcd60e51b815260206004820152600b60248201526a3737ba1039ba30b5b2b21960a91b6044820152606401610572565b61082f338361115a565b336000908152600f60205260409020546108499190612ebe565b336000908152600f60205260409020819055600a54610881916103e89161086f91612f1c565b6108799190612f3b565b600b54612705565b336000908152600f602052604090206004810191909155600a5490546103e8916108aa91612f1c565b6108b49190612f3b565b336000908152600f60205260409020600381019190915542600582018190556007909101819055600b546108e791612ebe565b336000908152600f602052604081206006810192909255600282018190556001909101555050565b8160031415610a5c57336000908152601060205260409020546109625760405162461bcd60e51b815260206004820152600b60248201526a6e6f74207374616b65643360a81b6044820152606401610572565b3360008181526010602052604081206002015561097f908361115a565b336000908152601060205260409020546109999190612ebe565b336000908152601060205260409020819055600c546109d1916103e8916109bf91612f1c565b6109c99190612f3b565b600d54612705565b3360009081526010602052604090206004810191909155600c5490546103e8916109fa91612f1c565b610a049190612f3b565b336000908152601060205260409020600381019190915542600582018190556007909101819055600d54610a3791612ebe565b3360009081526010602052604081206006810192909255600282018190556001909101555b5050565b6006546001600160a01b03163314610a8a5760405162461bcd60e51b815260040161057290612f5d565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afb9190612efa565b505050565b60008160018110158015610b15575060038111155b610b315760405162461bcd60e51b815260040161057290612e7d565b8260011415610b6f576001600160a01b0384166000908152600e6020526040902060060154421115610b665760019150610bd5565b60009150610bd5565b8260021415610ba4576001600160a01b0384166000908152600f6020526040902060060154421115610b665760019150610bd5565b8260031415610bd5576001600160a01b038416600090815260106020526040902060060154421115610b6657600191505b5092915050565b6006546001600160a01b03163314610c065760405162461bcd60e51b815260040161057290612f5d565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c959190612f8a565b905090565b8060018110158015610cad575060038111155b610cc95760405162461bcd60e51b815260040161057290612e7d565b8160011415610e1c57336000908152600e60205260409020600601544211610d275760405162461bcd60e51b8152602060048201526011602482015270151a5b594c481b9bdd081c995858da1959607a1b6044820152606401610572565b600554336000818152600e60205260409081902054905163a9059cbb60e01b8152600481019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dad9190612efa565b50336000908152600e6020526040902054600354610dcb9190612fa3565b600355610dd83383612727565b336000908152600e60205260408120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600701555050565b8160021415610f6f57336000908152600f60205260409020600601544211610e7a5760405162461bcd60e51b8152602060048201526011602482015270151a5b594c881b9bdd081c995858da1959607a1b6044820152606401610572565b600554336000818152600f60205260409081902054905163a9059cbb60e01b8152600481019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190612efa565b50336000908152600f6020526040902054600354610f1e9190612fa3565b600355610f2b3383612727565b336000908152600f60205260408120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600701555050565b8160031415610a5c57336000908152601060205260409020600601544211610fcd5760405162461bcd60e51b8152602060048201526011602482015270151a5b594cc81b9bdd081c995858da1959607a1b6044820152606401610572565b600554336000818152601060205260409081902054905163a9059cbb60e01b8152600481019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303816000875af115801561102f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110539190612efa565b50336000908152601060205260409020546003546110719190612fa3565b60035561107e3383612727565b336000908152601060205260408120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600701555050565b6006546001600160a01b031633146110ec5760405162461bcd60e51b815260040161057290612f5d565b82600114156111015760089190915560095550565b826002141561111657600a91909155600b5550565b8260031415610afb57600c91909155600d5550565b6006546001600160a01b031633146111555760405162461bcd60e51b815260040161057290612f5d565b600055565b6000816001811015801561116f575060038111155b61118b5760405162461bcd60e51b815260040161057290612e7d565b8260011415611286576004546001600160a01b0385166000908152600e60205260408120600501549091906111c09042612fa3565b6111ca9190612f3b565b6001600160a01b0386166000908152600e60205260409020600401546111f09190612f1c565b6001600160a01b0386166000908152600e60205260409020600201549091506112199082612ebe565b6001600160a01b0386166000908152600e60205260409020600181015460039091015491925061124891612fa3565b81111561127f576001600160a01b0385166000908152600e60205260409020600181015460039091015461127c9190612fa3565b90505b9150610bd5565b8260021415611377576004546001600160a01b0385166000908152600f60205260408120600501549091906112bb9042612fa3565b6112c59190612f3b565b6001600160a01b0386166000908152600f60205260409020600401546112eb9190612f1c565b6001600160a01b0386166000908152600f60205260409020600201549091506113149082612ebe565b6001600160a01b0386166000908152600f60205260409020600181015460039091015491925061134391612fa3565b81111561127f576001600160a01b0385166000908152600f60205260409020600181015460039091015461127c9190612fa3565b8260031415610bd5576004546001600160a01b0385166000908152601060205260408120600501549091906113ac9042612fa3565b6113b69190612f3b565b6001600160a01b0386166000908152601060205260409020600401546113dc9190612f1c565b6001600160a01b0386166000908152601060205260409020600201549091506114059082612ebe565b6001600160a01b0386166000908152601060205260409020600181015460039091015491925061143491612fa3565b81111561127f576001600160a01b0385166000908152601060205260409020600181015460039091015461127c9190612fa3565b6000816001811015801561147d575060038111155b6114995760405162461bcd60e51b815260040161057290612e7d565b82600114156114c5576001600160a01b0384166000908152600e60205260409020600701549150610bd5565b82600214156114f1576001600160a01b0384166000908152600f60205260409020600701549150610bd5565b8260031415610bd5576001600160a01b0384166000908152601060205260409020600701549150610bd5565b8060018110158015611530575060038111155b61154c5760405162461bcd60e51b815260040161057290612e7d565b6000611558338461115a565b116115af5760405162461bcd60e51b815260206004820152602160248201527f6e6f20636c61696d61626c6520616d6f756e7420617661696c61626c652079656044820152601d60fa1b6064820152608401610572565b610a5c3383612727565b600082600114156115e357506001600160a01b0381166000908152600e602052604090205461162f565b826002141561160b57506001600160a01b0381166000908152600f602052604090205461162f565b826003141561162f57506001600160a01b0381166000908152601060205260409020545b92915050565b6006546001600160a01b0316331461165f5760405162461bcd60e51b815260040161057290612f5d565b82518251148015611671575080518351145b6116bd5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e756d626572206f6620617267756d656e747300000000006044820152606401610572565b60005b83518110156121ad578281815181106116db576116db612fba565b60200260200101516002546116f09190612ebe565b600255825183908290811061170757611707612fba565b602002602001015160035461171c9190612ebe565b600355835184908290811061173357611733612fba565b602002602001015160011415611ac85761177f82828151811061175857611758612fba565b602002602001015185838151811061177257611772612fba565b602002602001015161115a565b600e600084848151811061179557611795612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600201819055506117f46103e86008600001548584815181106117e2576117e2612fba565b60200260200101516107329190612f1c565b600e600084848151811061180a5761180a612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401546118409190612ebe565b600e600084848151811061185657611856612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401819055506103e86008600001548483815181106118a0576118a0612fba565b60200260200101516118b29190612f1c565b6118bc9190612f3b565b600e60008484815181106118d2576118d2612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600301546119089190612ebe565b600e600084848151811061191e5761191e612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206003018190555042600e600084848151811061196457611964612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206005018190555042600e60008484815181106119aa576119aa612fba565b6020908102919091018101516001600160a01b03168252810191909152604001600020600701556009546119de9042612ebe565b600e60008484815181106119f4576119f4612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060060181905550828181518110611a3557611a35612fba565b6020026020010151600e6000848481518110611a5357611a53612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154611a899190612ebe565b600e6000848481518110611a9f57611a9f612fba565b6020908102919091018101516001600160a01b031682528101919091526040016000205561219b565b838181518110611ada57611ada612fba565b602002602001015160021415611e1f57611aff82828151811061175857611758612fba565b600f6000848481518110611b1557611b15612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020181905550611b746103e8600a60000154858481518110611b6257611b62612fba565b602002602001015161086f9190612f1c565b600f6000848481518110611b8a57611b8a612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060040154611bc09190612ebe565b600f6000848481518110611bd657611bd6612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401819055506103e8600a60000154848381518110611c2057611c20612fba565b6020026020010151611c329190612f1c565b611c3c9190612f3b565b600f6000848481518110611c5257611c52612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030154611c889190612ebe565b600f6000848481518110611c9e57611c9e612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206003018190555042600f6000848481518110611ce457611ce4612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206005018190555042600f6000848481518110611d2a57611d2a612fba565b6020908102919091018101516001600160a01b0316825281019190915260400160002060070155600b54611d5e9042612ebe565b600f6000848481518110611d7457611d74612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060060181905550828181518110611db557611db5612fba565b6020026020010151600f6000848481518110611dd357611dd3612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154611e099190612ebe565b600f6000848481518110611a9f57611a9f612fba565b838181518110611e3157611e31612fba565b60200260200101516003141561219b57611e5682828151811061175857611758612fba565b60106000848481518110611e6c57611e6c612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020181905550611ecb6103e8600c60000154858481518110611eb957611eb9612fba565b60200260200101516109bf9190612f1c565b60106000848481518110611ee157611ee1612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060040154611f179190612ebe565b60106000848481518110611f2d57611f2d612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600401819055506103e8600c60000154848381518110611f7757611f77612fba565b6020026020010151611f899190612f1c565b611f939190612f3b565b60106000848481518110611fa957611fa9612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030154611fdf9190612ebe565b60106000848481518110611ff557611ff5612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030181905550426010600084848151811061203b5761203b612fba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060050181905550426010600084848151811061208157612081612fba565b6020908102919091018101516001600160a01b0316825281019190915260400160002060070155600d546120b59042612ebe565b601060008484815181106120cb576120cb612fba565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206006018190555082818151811061210c5761210c612fba565b60200260200101516010600084848151811061212a5761212a612fba565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600001546121609190612ebe565b6010600084848151811061217657612176612fba565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b806121a581612fd0565b9150506116c0565b50505050565b6006546001600160a01b031633146121dd5760405162461bcd60e51b815260040161057290612f5d565b600155565b81600181101580156121f5575060038111155b6122115760405162461bcd60e51b815260040161057290612e7d565b600054600354111561225e5760405162461bcd60e51b815260206004820152601660248201527513585e14dd185ad9481b1a5b5a5d081c995858da195960521b6044820152606401610572565b6001548210156122b05760405162461bcd60e51b815260206004820152601860248201527f4465706f736974206d6f7265207468616e2031305f30303000000000000000006044820152606401610572565b6005546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906122e490339030908790600401612ed6565b6020604051808303816000875af1158015612303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123279190612efa565b50816002546123369190612ebe565b600255600354612347908390612ebe565b600355600183141561246f5761235d338461115a565b336000908152600e60205260409020600281019190915554612380908390612ebe565b336000818152600e60205260409020919091556123d5906123a1908561115a565b600854336000908152600e60205260409020546103e8916123c191612f1c565b6123cb9190612f3b565b61073c9190612ebe565b336000908152600e6020526040902060048101919091556002810154600854915490916103e8916124069190612f1c565b6124109190612f3b565b61241a9190612ebe565b336000908152600e6020526040902060038101919091554260058201819055600790910181905560095461244d91612ebe565b336000908152600e602052604081206006810192909255600190910155505050565b826002141561259457612482338461115a565b336000908152600f602052604090206002810191909155546124a5908390612ebe565b336000818152600f60205260409020919091556124fa906124c6908561115a565b600a54336000908152600f60205260409020546103e8916124e691612f1c565b6124f09190612f3b565b6108799190612ebe565b336000908152600f6020526040902060048101919091556002810154600a54915490916103e89161252b9190612f1c565b6125359190612f3b565b61253f9190612ebe565b336000908152600f60205260409020600381019190915542600582018190556007909101819055600b5461257291612ebe565b336000908152600f602052604081206006810192909255600190910155505050565b8260031415610afb576125a7338461115a565b3360009081526010602052604090206002810191909155546125ca908390612ebe565b3360008181526010602052604090209190915561261f906125eb908561115a565b600c54336000908152601060205260409020546103e89161260b91612f1c565b6126159190612f3b565b6109c99190612ebe565b33600090815260106020526040902060048101919091556002810154600c54915490916103e8916126509190612f1c565b61265a9190612f3b565b6126649190612ebe565b336000908152601060205260409020600381019190915542600582018190556007909101819055600d5461269791612ebe565b3360009081526010602052604081206006810192909255600190910155505050565b6006546001600160a01b031633146126e35760405162461bcd60e51b815260040161057290612f5d565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600081600454846127169190612f1c565b6127209190612f3b565b9392505050565b806001811015801561273a575060038111155b6127565760405162461bcd60e51b815260040161057290612e7d565b81600114156128d0576001600160a01b0383166000908152600e60205260409020600381015460019091015411156127a05760405162461bcd60e51b815260040161057290612feb565b6001600160a01b0383166000908152600e602052604090206005015442116127da5760405162461bcd60e51b815260040161057290613022565b60006127e6848461115a565b1115612873576005546007546001600160a01b03918216916323b872dd911685612810818761115a565b6040518463ffffffff1660e01b815260040161282e93929190612ed6565b6020604051808303816000875af115801561284d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128719190612efa565b505b61287d838361115a565b6001600160a01b0384166000908152600e60205260409020600101546128a39190612ebe565b6001600160a01b0384166000908152600e6020526040812060018101929092554260058301556002909101555b8160021415612a4a576001600160a01b0383166000908152600f602052604090206003810154600190910154111561291a5760405162461bcd60e51b815260040161057290612feb565b6001600160a01b0383166000908152600f602052604090206005015442116129545760405162461bcd60e51b815260040161057290613022565b6000612960848461115a565b11156129ed576005546007546001600160a01b03918216916323b872dd91168561298a818761115a565b6040518463ffffffff1660e01b81526004016129a893929190612ed6565b6020604051808303816000875af11580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb9190612efa565b505b6129f7838361115a565b6001600160a01b0384166000908152600f6020526040902060010154612a1d9190612ebe565b6001600160a01b0384166000908152600f6020526040812060018101929092554260058301556002909101555b8160031415610afb576001600160a01b038316600090815260106020526040902060038101546001909101541115612a945760405162461bcd60e51b815260040161057290612feb565b6001600160a01b0383166000908152601060205260409020600501544211612ace5760405162461bcd60e51b815260040161057290613022565b6000612ada848461115a565b1115612b67576005546007546001600160a01b03918216916323b872dd911685612b04818761115a565b6040518463ffffffff1660e01b8152600401612b2293929190612ed6565b6020604051808303816000875af1158015612b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b659190612efa565b505b612b71838361115a565b6001600160a01b038416600090815260106020526040902060010154612b979190612ebe565b6001600160a01b03841660009081526010602052604081206001810192909255426005830155600290910155505050565b600060208284031215612bda57600080fd5b5035919050565b6001600160a01b0381168114612bf657600080fd5b50565b60008060408385031215612c0c57600080fd5b8235612c1781612be1565b946020939093013593505050565b600060208284031215612c3757600080fd5b813561272081612be1565b600080600060608486031215612c5757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612c8157600080fd5b823591506020830135612c9381612be1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612cdd57612cdd612c9e565b604052919050565b600067ffffffffffffffff821115612cff57612cff612c9e565b5060051b60200190565b600082601f830112612d1a57600080fd5b81356020612d2f612d2a83612ce5565b612cb4565b82815260059290921b84018101918181019086841115612d4e57600080fd5b8286015b84811015612d695780358352918301918301612d52565b509695505050505050565b600080600060608486031215612d8957600080fd5b833567ffffffffffffffff80821115612da157600080fd5b612dad87838801612d09565b9450602091508186013581811115612dc457600080fd5b612dd088828901612d09565b945050604086013581811115612de557600080fd5b86019050601f81018713612df857600080fd5b8035612e06612d2a82612ce5565b81815260059190911b82018301908381019089831115612e2557600080fd5b928401925b82841015612e4c578335612e3d81612be1565b82529284019290840190612e2a565b80955050505050509250925092565b60008060408385031215612e6e57600080fd5b50508035926020909101359150565b602080825260119082015270125b9d985b1a590819195c1bdcda5d1259607a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612ed157612ed1612ea8565b500190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215612f0c57600080fd5b8151801515811461272057600080fd5b6000816000190483118215151615612f3657612f36612ea8565b500290565b600082612f5857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526013908201527229ba30b5b29d102737ba1030b71020b236b4b760691b604082015260600190565b600060208284031215612f9c57600080fd5b5051919050565b600082821015612fb557612fb5612ea8565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612fe457612fe4612ea8565b5060010190565b6020808252601e908201527f6e6f20636c61696d61626c6520616d6f756e7420617661696c61626c65330000604082015260600190565b60208082526011908201527074696d65206e6f7420726561636865643360781b60408201526060019056fea264697066735822122060a8d8e67a4a8b7d99992a415853d0aab55c7d3233901ffb177aee0f4b8ada0b64736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006c936d4ae98e6d2172db18c16c4b601c99918ee6

-----Decoded View---------------
Arg [0] : _TOKEN (address): 0x6c936D4AE98E6d2172dB18c16C4b601C99918EE6

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c936d4ae98e6d2172db18c16c4b601c99918ee6


Deployed Bytecode Sourcemap

65:21595:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5474:3570;;;;;;;;;;-1:-1:-1;5474:3570:0;;;;;:::i;:::-;;:::i;:::-;;895:21;;;;;;;;;;-1:-1:-1;895:21:0;;;;;;;;;;;;;373:25:1;;;429:2;414:18;;407:34;;;;346:18;895:21:0;;;;;;;;16358:141;;;;;;;;;;-1:-1:-1;16358:141:0;;;;;:::i;:::-;;:::i;842:19::-;;;;;;;;;;-1:-1:-1;842:19:0;;;;;;;;;15422:779;;;;;;;;;;-1:-1:-1;15422:779:0;;;;;:::i;:::-;;:::i;:::-;;;1073:14:1;;1066:22;1048:41;;1036:2;1021:18;15422:779:0;908:187:1;16508:123:0;;;;;;;;;;-1:-1:-1;16508:123:0;;;;;:::i;:::-;;:::i;21332:121::-;;;;;;;;;;;;;:::i;:::-;;;1506:25:1;;;1494:2;1479:18;21332:121:0;1360:177:1;206:32:0;;;;;;;;;;;;;;;;11254:1350;;;;;;;;;;-1:-1:-1;11254:1350:0;;;;;:::i;:::-;;:::i;16640:559::-;;;;;;;;;;-1:-1:-1;16640:559:0;;;;;:::i;:::-;;:::i;17306:89::-;;;;;;;;;;-1:-1:-1;17306:89:0;;;;;:::i;:::-;;:::i;12613:1936::-;;;;;;;;;;-1:-1:-1;12613:1936:0;;;;;:::i;:::-;;:::i;278:28::-;;;;;;;;;;;;;;;;428:36;;;;;;;;;;-1:-1:-1;428:36:0;;;;-1:-1:-1;;;;;428:36:0;;;;;;-1:-1:-1;;;;;2043:32:1;;;2025:51;;2013:2;1998:18;428:36:0;1863:219:1;868:20:0;;;;;;;;;;-1:-1:-1;868:20:0;;;;;;;;;245:26;;;;;;;;;;;;;;;;367:19;;;;;;;;;;-1:-1:-1;367:19:0;;;;-1:-1:-1;;;;;367:19:0;;;14975:438;;;;;;;;;;-1:-1:-1;14975:438:0;;;;;:::i;:::-;;:::i;9050:246::-;;;;;;;;;;-1:-1:-1;9050:246:0;;;;;:::i;:::-;;:::i;14558:408::-;;;;;;;;;;-1:-1:-1;14558:408:0;;;;;:::i;:::-;;:::i;17404:3919::-;;;;;;;;;;-1:-1:-1;17404:3919:0;;;;;:::i;:::-;;:::i;17208:89::-;;;;;;;;;;-1:-1:-1;17208:89:0;;;;;:::i;:::-;;:::i;313:32::-;;;;;;;;;;;;;;;;1958:3510;;;;;;;;;;-1:-1:-1;1958:3510:0;;;;;:::i;:::-;;:::i;160:39::-;;;;;;;;;;;;;;;;16237:109;;;;;;;;;;-1:-1:-1;16237:109:0;;;;;:::i;:::-;;:::i;107:46::-;;;;;;;;;;;;148:5;107:46;;393:28;;;;;;;;;;-1:-1:-1;393:28:0;;;;-1:-1:-1;;;;;393:28:0;;;5474:3570;5556:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;;;;;;;;;5609:8:::1;;5592:13;;:25;;5584:60;;;::::0;-1:-1:-1;;;5584:60:0;;6142:2:1;5584:60:0::1;::::0;::::1;6124:21:1::0;6181:2;6161:18;;;6154:30;-1:-1:-1;;;6200:18:1;;;6193:52;6262:18;;5584:60:0::1;5940:346:1::0;5584:60:0::1;5684:35;5696:10;5708;5684:11;:35::i;:::-;5669:11;;:51;;;;:::i;:::-;5655:11;:65:::0;5767:35:::1;5779:10;5791::::0;5767:11:::1;:35::i;:::-;5750:13;;:53;;;;:::i;:::-;5734:13;:69:::0;5855:1:::1;5817:35;5829:10;5841::::0;5817:11:::1;:35::i;:::-;:39;5814:165;;;5882:5;::::0;5901:13:::1;::::0;-1:-1:-1;;;;;5882:5:0;;::::1;::::0;:18:::1;::::0;5901:13:::1;5924:4;5930:35;5942:10;5954::::0;5930:11:::1;:35::i;:::-;5882:85;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5814:165;5993:10;6007:1;5993:15;5989:3048;;;6039:10;6060:1;6033:17:::0;;;:5:::1;:17;::::0;;;;:24;6025:52:::1;;;::::0;-1:-1:-1;;;6025:52:0;;7428:2:1;6025:52:0::1;::::0;::::1;7410:21:1::0;7467:2;7447:18;;;7440:30;-1:-1:-1;;;7486:18:1;;;7479:41;7537:18;;6025:52:0::1;7226:335:1::0;6025:52:0::1;6150:35;6162:10;6174;6150:11;:35::i;:::-;6128:10;6122:17;::::0;;;:5:::1;:17;::::0;;;;:24;:64:::1;::::0;;::::1;:::i;:::-;6101:10;6095:17;::::0;;;:5:::1;:17;::::0;;;;:91;;;6320:6:::1;:19:::0;6252:194:::1;::::0;148:5:::1;::::0;6292:48:::1;::::0;::::1;:::i;:::-;6291:94;;;;:::i;:::-;6409:18:::0;;6252:15:::1;:194::i;:::-;6207:10;6201:17;::::0;;;:5:::1;:17;::::0;;;;:29:::1;::::0;::::1;:260:::0;;;;6556:6:::1;:19:::0;6528:24;;148:5:::1;::::0;6528:48:::1;::::0;::::1;:::i;:::-;6527:90;;;;:::i;:::-;6482:10;6476:17;::::0;;;:5:::1;:17;::::0;;;;:30:::1;::::0;::::1;:142:::0;;;;6671:15:::1;6637:31;::::0;::::1;:49:::0;;;6704:27:::1;::::0;;::::1;:45:::0;;;6849:18;;6813:55:::1;::::0;::::1;:::i;:::-;6770:10;6764:17;::::0;;;:5:::1;:17;::::0;;;;:29:::1;::::0;::::1;:104:::0;;;;6883:27:::1;::::0;::::1;:31:::0;;;6929:25:::1;::::0;;::::1;:29:::0;5474:3570;;:::o;5989:3048::-:1;6980:10;6994:1;6980:15;6976:2061;;;7027:10;7048:1;7020:18:::0;;;:6:::1;:18;::::0;;;;:25;7012:53:::1;;;::::0;-1:-1:-1;;;7012:53:0;;8163:2:1;7012:53:0::1;::::0;::::1;8145:21:1::0;8202:2;8182:18;;;8175:30;-1:-1:-1;;;8221:18:1;;;8214:41;8272:18;;7012:53:0::1;7961:335:1::0;7012:53:0::1;7140:35;7152:10;7164;7140:11;:35::i;:::-;7118:10;7111:18;::::0;;;:6:::1;:18;::::0;;;;:25;:65:::1;::::0;;::::1;:::i;:::-;7090:10;7083:18;::::0;;;:6:::1;:18;::::0;;;;:93;;;7312:7:::1;:20:::0;7243:197:::1;::::0;148:5:::1;::::0;7283:50:::1;::::0;::::1;:::i;:::-;7282:96;;;;:::i;:::-;7402:19:::0;;7243:15:::1;:197::i;:::-;7198:10;7191:18;::::0;;;:6:::1;:18;::::0;;;;:30:::1;::::0;::::1;:264:::0;;;;7552:7:::1;:20:::0;7523:25;;148:5:::1;::::0;7523:50:::1;::::0;::::1;:::i;:::-;7522:92;;;;:::i;:::-;7477:10;7470:18;::::0;;;:6:::1;:18;::::0;;;;:31:::1;::::0;::::1;:145:::0;;;;7669:15:::1;7634:32;::::0;::::1;:50:::0;;;7702:28:::1;::::0;;::::1;:46:::0;;;7849:19;;7813:56:::1;::::0;::::1;:::i;:::-;7770:10;7763:18;::::0;;;:6:::1;:18;::::0;;;;:30:::1;::::0;::::1;:106:::0;;;;7884:28:::1;::::0;::::1;:32:::0;;;7931:26:::1;::::0;;::::1;:30:::0;5474:3570;;:::o;6976:2061::-:1;7983:10;7997:1;7983:15;7979:1058;;;8031:10;8052:1;8023:19:::0;;;:7:::1;:19;::::0;;;;:26;8015:54:::1;;;::::0;-1:-1:-1;;;8015:54:0;;8503:2:1;8015:54:0::1;::::0;::::1;8485:21:1::0;8542:2;8522:18;;;8515:30;-1:-1:-1;;;8561:18:1;;;8554:41;8612:18;;8015:54:0::1;8301:335:1::0;8015:54:0::1;8092:10;8116:1;8084:19:::0;;;:7:::1;:19;::::0;;;;:29:::1;;:33:::0;8191:35:::1;::::0;8215:10;8191:11:::1;:35::i;:::-;8169:10;8161:19;::::0;;;:7:::1;:19;::::0;;;;:26;:66:::1;::::0;;::::1;:::i;:::-;8140:10;8132:19;::::0;;;:7:::1;:19;::::0;;;;:95;;;8365:8:::1;:21:::0;8295:200:::1;::::0;148:5:::1;::::0;8335:52:::1;::::0;::::1;:::i;:::-;8334:98;;;;:::i;:::-;8456:20:::0;;8295:15:::1;:200::i;:::-;8250:10;8242:19;::::0;;;:7:::1;:19;::::0;;;;:31:::1;::::0;::::1;:268:::0;;;;8609:8:::1;:21:::0;8579:26;;148:5:::1;::::0;8579:52:::1;::::0;::::1;:::i;:::-;8578:94;;;;:::i;:::-;8533:10;8525:19;::::0;;;:7:::1;:19;::::0;;;;:32:::1;::::0;::::1;:148:::0;;;;8728:15:::1;8692:33;::::0;::::1;:51:::0;;;8761:29:::1;::::0;;::::1;:47:::0;;;8910:20;;8874:57:::1;::::0;::::1;:::i;:::-;8831:10;8823:19;::::0;;;:7:::1;:19;::::0;;;;:31:::1;::::0;::::1;:108:::0;;;;8946:29:::1;::::0;::::1;:33:::0;;;8994:27:::1;::::0;;::::1;:31:::0;7979:1058:::1;5474:3570:::0;;:::o;16358:141::-;1148:5;;-1:-1:-1;;;;;1148:5:0;1134:10;:19;1126:51;;;;-1:-1:-1;;;1126:51:0;;;;;;;:::i;:::-;16448:43:::1;::::0;-1:-1:-1;;;16448:43:0;;16472:10:::1;16448:43;::::0;::::1;9163:51:1::0;9230:18;;;9223:34;;;-1:-1:-1;;;;;16448:23:0;::::1;::::0;::::1;::::0;9136:18:1;;16448:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16358:141:::0;;:::o;15422:779::-;15571:8;15541:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;15601:10:::1;15615:1;15601:15;15597:597;;;-1:-1:-1::0;;;;;15655:12:0;::::1;;::::0;;;:5:::1;:12;::::0;;;;:24:::1;;::::0;15637:15:::1;:42;15633:147;;;15707:4;15700:11;;;;15633:147;15759:5;15752:12;;;;15597:597;15801:10;15815:1;15801:15;15797:397;;;-1:-1:-1::0;;;;;15855:13:0;::::1;;::::0;;;:6:::1;:13;::::0;;;;:25:::1;;::::0;15837:15:::1;:43;15833:148;;;15908:4;15901:11;;;;15797:397;16002:10;16016:1;16002:15;15998:196;;;-1:-1:-1::0;;;;;16056:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;:26:::1;;::::0;16038:15:::1;:44;16034:149;;;16110:4;16103:11;;16034:149;15422:779:::0;;;;;:::o;16508:123::-;1148:5;;-1:-1:-1;;;;;1148:5:0;1134:10;:19;1126:51;;;;-1:-1:-1;;;1126:51:0;;;;;;;:::i;:::-;16596:13:::1;:27:::0;;-1:-1:-1;;;;;;16596:27:0::1;-1:-1:-1::0;;;;;16596:27:0;;;::::1;::::0;;;::::1;::::0;;16508:123::o;21332:121::-;21415:5;;:30;;-1:-1:-1;;;21415:30:0;;21439:4;21415:30;;;2025:51:1;21388:7:0;;-1:-1:-1;;;;;21415:5:0;;:15;;1998:18:1;;21415:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21408:37;;21332:121;:::o;11254:1350::-;11342:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;11374:10:::1;11388:1;11374:15;11370:1227;;;11438:10;11432:17;::::0;;;:5:::1;:17;::::0;;;;:29:::1;;::::0;11464:15:::1;-1:-1:-1::0;11406:126:0::1;;;::::0;-1:-1:-1;;;11406:126:0;;9867:2:1;11406:126:0::1;::::0;::::1;9849:21:1::0;9906:2;9886:18;;;9879:30;-1:-1:-1;;;9925:18:1;;;9918:47;9982:18;;11406:126:0::1;9665:341:1::0;11406:126:0::1;11547:5;::::0;11562:10:::1;11547:5;11574:17:::0;;;:5:::1;:17;::::0;;;;;;:24;11547:52;;-1:-1:-1;;;11547:52:0;;::::1;::::0;::::1;9163:51:1::0;;;;9230:18;;;9223:34;-1:-1:-1;;;;;11547:5:0;;::::1;::::0;:14:::1;::::0;9136:18:1;;11547:52:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11653:10:0::1;11647:17;::::0;;;:5:::1;:17;::::0;;;;:24;11630:13:::1;::::0;:42:::1;::::0;11647:24;11630:42:::1;:::i;:::-;11614:13;:58:::0;11687:33:::1;11697:10;11709::::0;11687:9:::1;:33::i;:::-;11748:10;11742:17;::::0;;;:5:::1;:17;::::0;;;;11735:24;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;5474:3570;;:::o;11370:1227::-:1;11781:10;11795:1;11781:15;11777:820;;;11846:10;11839:18;::::0;;;:6:::1;:18;::::0;;;;:30:::1;;::::0;11872:15:::1;-1:-1:-1::0;11813:127:0::1;;;::::0;-1:-1:-1;;;11813:127:0;;10343:2:1;11813:127:0::1;::::0;::::1;10325:21:1::0;10382:2;10362:18;;;10355:30;-1:-1:-1;;;10401:18:1;;;10394:47;10458:18;;11813:127:0::1;10141:341:1::0;11813:127:0::1;11955:5;::::0;11970:10:::1;11955:5;11982:18:::0;;;:6:::1;:18;::::0;;;;;;:25;11955:53;;-1:-1:-1;;;11955:53:0;;::::1;::::0;::::1;9163:51:1::0;;;;9230:18;;;9223:34;-1:-1:-1;;;;;11955:5:0;;::::1;::::0;:14:::1;::::0;9136:18:1;;11955:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12063:10:0::1;12056:18;::::0;;;:6:::1;:18;::::0;;;;:25;12039:13:::1;::::0;:43:::1;::::0;12056:25;12039:43:::1;:::i;:::-;12023:13;:59:::0;12097:33:::1;12107:10;12119::::0;12097:9:::1;:33::i;:::-;12159:10;12152:18;::::0;;;:6:::1;:18;::::0;;;;12145:25;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;5474:3570;;:::o;11777:820::-:1;12192:10;12206:1;12192:15;12188:409;;;12258:10;12250:19;::::0;;;:7:::1;:19;::::0;;;;:31:::1;;::::0;12284:15:::1;-1:-1:-1::0;12224:128:0::1;;;::::0;-1:-1:-1;;;12224:128:0;;10689:2:1;12224:128:0::1;::::0;::::1;10671:21:1::0;10728:2;10708:18;;;10701:30;-1:-1:-1;;;10747:18:1;;;10740:47;10804:18;;12224:128:0::1;10487:341:1::0;12224:128:0::1;12367:5;::::0;12382:10:::1;12367:5;12394:19:::0;;;:7:::1;:19;::::0;;;;;;:26;12367:54;;-1:-1:-1;;;12367:54:0;;::::1;::::0;::::1;9163:51:1::0;;;;9230:18;;;9223:34;-1:-1:-1;;;;;12367:5:0;;::::1;::::0;:14:::1;::::0;9136:18:1;;12367:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12477:10:0::1;12469:19;::::0;;;:7:::1;:19;::::0;;;;:26;12452:13:::1;::::0;:44:::1;::::0;12469:26;12452:44:::1;:::i;:::-;12436:13;:60:::0;12511:33:::1;12521:10;12533::::0;12511:9:::1;:33::i;:::-;12574:10;12566:19;::::0;;;:7:::1;:19;::::0;;;;12559:26;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;11254:1350;;:::o;16640:559::-;1148:5;;-1:-1:-1;;;;;1148:5:0;1134:10;:19;1126:51;;;;-1:-1:-1;;;1126:51:0;;;;;;;:::i;:::-;16791:10:::1;16805:1;16791:15;16787:405;;;16823:6;:34:::0;;;;16872:18;:32;-1:-1:-1;16358:141:0:o;16787:405::-:1;16926:10;16940:1;16926:15;16922:270;;;16958:7;:35:::0;;;;17008:19;:33;-1:-1:-1;16358:141:0:o;16922:270::-:1;17063:10;17077:1;17063:15;17059:133;;;17095:8;:36:::0;;;;17146:20;:34;-1:-1:-1;16640:559:0:o;17306:89::-;1148:5;;-1:-1:-1;;;;;1148:5:0;1134:10;:19;1126:51;;;;-1:-1:-1;;;1126:51:0;;;;;;;:::i;:::-;17373:8:::1;:14:::0;17306:89::o;12613:1936::-;12755:14;12725:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;12791:10:::1;12805:1;12791:15;12787:1755;;;12965:8;::::0;-1:-1:-1;;;;;12910:14:0;::::1;12823:17;12910:14:::0;;;:5:::1;:14;::::0;;;;:28:::1;;::::0;12823:17;;12965:8;12891:48:::1;::::0;:15:::1;:48;:::i;:::-;12890:84;;;;:::i;:::-;-1:-1:-1::0;;;;;12843:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;:132:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;13014:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;:24:::1;;::::0;12823:152;;-1:-1:-1;13002:36:0::1;::::0;12823:152;13002:36:::1;:::i;:::-;-1:-1:-1::0;;;;;13135:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;:22:::1;::::0;::::1;::::0;13104:27:::1;::::0;;::::1;::::0;12990:48;;-1:-1:-1;13104:54:0::1;::::0;::::1;:::i;:::-;13075:9;:83;13053:264;;;-1:-1:-1::0;;;;;13278:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;:22:::1;::::0;::::1;::::0;13226:27:::1;::::0;;::::1;::::0;:75:::1;::::0;13278:22;13226:75:::1;:::i;:::-;13193:108;;13053:264;13339:9:::0;-1:-1:-1;13331:18:0::1;;12787:1755;13371:10;13385:1;13371:15;13367:1175;;;13547:8;::::0;-1:-1:-1;;;;;13491:15:0;::::1;13403:17;13491:15:::0;;;:6:::1;:15;::::0;;;;:29:::1;;::::0;13403:17;;13547:8;13472:49:::1;::::0;:15:::1;:49;:::i;:::-;13471:85;;;;:::i;:::-;-1:-1:-1::0;;;;;13423:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;:27:::1;;::::0;:134:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;13596:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;:25:::1;;::::0;13403:154;;-1:-1:-1;13584:37:0::1;::::0;13403:154;13584:37:::1;:::i;:::-;-1:-1:-1::0;;;;;13719:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23:::1;::::0;::::1;::::0;13687:28:::1;::::0;;::::1;::::0;13572:49;;-1:-1:-1;13687:56:0::1;::::0;::::1;:::i;:::-;13658:9;:85;13636:268;;;-1:-1:-1::0;;;;;13864:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23:::1;::::0;::::1;::::0;13811:28:::1;::::0;;::::1;::::0;:77:::1;::::0;13864:23;13811:77:::1;:::i;13367:1175::-;13958:10;13972:1;13958:15;13954:588;;;14136:8;::::0;-1:-1:-1;;;;;14079:16:0;::::1;13990:17;14079:16:::0;;;:7:::1;:16;::::0;;;;:30:::1;;::::0;13990:17;;14136:8;14060:50:::1;::::0;:15:::1;:50;:::i;:::-;14059:86;;;;:::i;:::-;-1:-1:-1::0;;;;;14010:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:28:::1;;::::0;:136:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;14185:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:26:::1;;::::0;13990:156;;-1:-1:-1;14173:38:0::1;::::0;13990:156;14173:38:::1;:::i;:::-;-1:-1:-1::0;;;;;14310:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:24:::1;::::0;::::1;::::0;14277:29:::1;::::0;;::::1;::::0;14161:50;;-1:-1:-1;14277:58:0::1;::::0;::::1;:::i;:::-;14248:9;:87;14226:272;;;-1:-1:-1::0;;;;;14457:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:24:::1;::::0;::::1;::::0;14403:29:::1;::::0;;::::1;::::0;:79:::1;::::0;14457:24;14403:79:::1;:::i;14975:438::-:0;15118:12;15088:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;15152:10:::1;15166:1;15152:15;15148:258;;;-1:-1:-1::0;;;;;15192:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;:24:::1;;::::0;;-1:-1:-1;15184:33:0::1;;15148:258;15239:10;15253:1;15239:15;15235:171;;;-1:-1:-1::0;;;;;15279:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;:25:::1;;::::0;;-1:-1:-1;15271:34:0::1;;15235:171;15327:10;15341:1;15327:15;15323:83;;;-1:-1:-1::0;;;;;15367:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:26:::1;;::::0;;-1:-1:-1;15359:35:0::1;;9050:246:::0;9133:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;9206:1:::1;9169:34;9181:10;9192;9169:11;:34::i;:::-;:38;9161:83;;;::::0;-1:-1:-1;;;9161:83:0;;11035:2:1;9161:83:0::1;::::0;::::1;11017:21:1::0;11074:2;11054:18;;;11047:30;11113:34;11093:18;;;11086:62;-1:-1:-1;;;11164:18:1;;;11157:31;11205:19;;9161:83:0::1;10833:397:1::0;9161:83:0::1;9255:33;9265:10;9277;9255:9;:33::i;14558:408::-:0;14670:22;14714:10;14728:1;14714:15;14710:249;;;-1:-1:-1;;;;;;14754:14:0;;;;;;:5;:14;;;;;:21;14746:30;;14710:249;14798:10;14812:1;14798:15;14794:165;;;-1:-1:-1;;;;;;14838:15:0;;;;;;:6;:15;;;;;:22;14830:31;;14794:165;14883:10;14897:1;14883:15;14879:80;;;-1:-1:-1;;;;;;14923:16:0;;;;;;:7;:16;;;;;:23;14879:80;14558:408;;;;:::o;17404:3919::-;1148:5;;-1:-1:-1;;;;;1148:5:0;1134:10;:19;1126:51;;;;-1:-1:-1;;;1126:51:0;;;;;;;:::i;:::-;17605:10:::1;:17;17587:7;:14;:35;:89;;;;;17664:5;:12;17643:10;:17;:33;17587:89;17565:166;;;::::0;-1:-1:-1;;;17565:166:0;;11437:2:1;17565:166:0::1;::::0;::::1;11419:21:1::0;11476:2;11456:18;;;11449:30;11515:29;11495:18;;;11488:57;11562:18;;17565:166:0::1;11235:351:1::0;17565:166:0::1;17747:9;17742:3574;17762:10;:17;17758:1;:21;17742:3574;;;17830:7;17838:1;17830:10;;;;;;;;:::i;:::-;;;;;;;17815:11;;:26;;;;:::i;:::-;17801:11;:40:::0;17889:10;;:7;;17897:1;;17889:10;::::1;;;;;:::i;:::-;;;;;;;17872:13;;:28;;;;:::i;:::-;17856:13;:44:::0;17922:13;;:10;;17933:1;;17922:13;::::1;;;;;:::i;:::-;;;;;;;17939:1;17922:18;17918:3387;;;17989:97;18023:5;18029:1;18023:8;;;;;;;;:::i;:::-;;;;;;;18054:10;18065:1;18054:13;;;;;;;;:::i;:::-;;;;;;;17989:11;:97::i;:::-;17961:5;:15;17967:5;17973:1;17967:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17961:15:0::1;-1:-1:-1::0;;;;;17961:15:0::1;;;;;;;;;;;;:25;;:125;;;;18234:210;148:5;18295:6;:19;;;18281:7;18289:1;18281:10;;;;;;;;:::i;:::-;;;;;;;:34;;;;:::i;18234:210::-;18156:5;:15;18162:5;18168:1;18162:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18156:15:0::1;-1:-1:-1::0;;;;;18156:15:0::1;;;;;;;;;;;;:27;;;:311;;;;:::i;:::-;18105:5;:15;18111:5;18117:1;18111:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18105:15:0::1;-1:-1:-1::0;;;;;18105:15:0::1;;;;;;;;;;;;:27;;:362;;;;148:5;18606:6;:19;;;18592:7;18600:1;18592:10;;;;;;;;:::i;:::-;;;;;;;:34;;;;:::i;:::-;18591:55;;;;:::i;:::-;18538:5;:15;18544:5;18550:1;18544:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18538:15:0::1;-1:-1:-1::0;;;;;18538:15:0::1;;;;;;;;;;;;:28;;;:109;;;;:::i;:::-;18486:5;:15;18492:5;18498:1;18492:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18486:15:0::1;-1:-1:-1::0;;;;;18486:15:0::1;;;;;;;;;;;;:28;;:161;;;;18698:15;18666:5;:15;18672:5;18678:1;18672:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18666:15:0::1;-1:-1:-1::0;;;;;18666:15:0::1;;;;;;;;;;;;:29;;:47;;;;18760:15;18732:5;:15;18738:5;18744:1;18738:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18732:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18732:15:0;:25:::1;;:43:::0;18885:18;;18845:59:::1;::::0;:15:::1;:59;:::i;:::-;18794:5;:15;18800:5;18806:1;18800:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18794:15:0::1;-1:-1:-1::0;;;;;18794:15:0::1;;;;;;;;;;;;:27;;:110;;;;18974:7;18982:1;18974:10;;;;;;;;:::i;:::-;;;;;;;18948:5;:15;18954:5;18960:1;18954:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18948:15:0::1;-1:-1:-1::0;;;;;18948:15:0::1;;;;;;;;;;;;:22;;;:37;;;;:::i;:::-;18923:5;:15;18929:5;18935:1;18929:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18923:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18923:15:0;:62;17918:3387:::1;;;19011:10;19022:1;19011:13;;;;;;;;:::i;:::-;;;;;;;19028:1;19011:18;19007:2298;;;19079:97;19113:5;19119:1;19113:8;;;;;;;;:::i;19079:97::-;19050:6;:16;19057:5;19063:1;19057:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19050:16:0::1;-1:-1:-1::0;;;;;19050:16:0::1;;;;;;;;;;;;:26;;:126;;;;19326:212;148:5;19387:7;:20;;;19373:7;19381:1;19373:10;;;;;;;;:::i;:::-;;;;;;;:35;;;;:::i;19326:212::-;19247:6;:16;19254:5;19260:1;19254:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19247:16:0::1;-1:-1:-1::0;;;;;19247:16:0::1;;;;;;;;;;;;:28;;;:314;;;;:::i;:::-;19195:6;:16;19202:5;19208:1;19202:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19195:16:0::1;-1:-1:-1::0;;;;;19195:16:0::1;;;;;;;;;;;;:28;;:366;;;;148:5;19702:7;:20;;;19688:7;19696:1;19688:10;;;;;;;;:::i;:::-;;;;;;;:35;;;;:::i;:::-;19687:56;;;;:::i;:::-;19633:6;:16;19640:5;19646:1;19640:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19633:16:0::1;-1:-1:-1::0;;;;;19633:16:0::1;;;;;;;;;;;;:29;;;:111;;;;:::i;:::-;19580:6;:16;19587:5;19593:1;19587:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19580:16:0::1;-1:-1:-1::0;;;;;19580:16:0::1;;;;;;;;;;;;:29;;:164;;;;19796:15;19763:6;:16;19770:5;19776:1;19770:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19763:16:0::1;-1:-1:-1::0;;;;;19763:16:0::1;;;;;;;;;;;;:30;;:48;;;;19859:15;19830:6;:16;19837:5;19843:1;19837:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19830:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19830:16:0;:26:::1;;:44:::0;19985:19;;19945:60:::1;::::0;:15:::1;:60;:::i;:::-;19893:6;:16;19900:5;19906:1;19900:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19893:16:0::1;-1:-1:-1::0;;;;;19893:16:0::1;;;;;;;;;;;;:28;;:112;;;;20119:7;20127:1;20119:10;;;;;;;;:::i;:::-;;;;;;;20071:6;:16;20078:5;20084:1;20078:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;20071:16:0::1;-1:-1:-1::0;;;;;20071:16:0::1;;;;;;;;;;;;:23;;;:59;;;;:::i;:::-;20024:6;:16;20031:5;20037:1;20031:8;;;;;;;;:::i;19007:2298::-;20156:10;20167:1;20156:13;;;;;;;;:::i;:::-;;;;;;;20173:1;20156:18;20152:1153;;;20225:97;20259:5;20265:1;20259:8;;;;;;;;:::i;20225:97::-;20195:7;:17;20203:5;20209:1;20203:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;20195:17:0::1;-1:-1:-1::0;;;;;20195:17:0::1;;;;;;;;;;;;:27;;:127;;;;20474:214;148:5;20535:8;:21;;;20521:7;20529:1;20521:10;;;;;;;;:::i;:::-;;;;;;;:36;;;;:::i;20474:214::-;20394:7;:17;20402:5;20408:1;20402:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;20394:17:0::1;-1:-1:-1::0;;;;;20394:17:0::1;;;;;;;;;;;;:29;;;:317;;;;:::i;:::-;20341:7;:17;20349:5;20355:1;20349:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;20341:17:0::1;-1:-1:-1::0;;;;;20341:17:0::1;;;;;;;;;;;;:29;;:370;;;;148:5;20854:8;:21;;;20840:7;20848:1;20840:10;;;;;;;;:::i;:::-;;;;;;;:36;;;;:::i;:::-;20839:57;;;;:::i;:::-;20784:7;:17;20792:5;20798:1;20792:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;20784:17:0::1;-1:-1:-1::0;;;;;20784:17:0::1;;;;;;;;;;;;:30;;;:113;;;;:::i;:::-;20730:7;:17;20738:5;20744:1;20738:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;20730:17:0::1;-1:-1:-1::0;;;;;20730:17:0::1;;;;;;;;;;;;:30;;:167;;;;20950:15;20916:7;:17;20924:5;20930:1;20924:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;20916:17:0::1;-1:-1:-1::0;;;;;20916:17:0::1;;;;;;;;;;;;:31;;:49;;;;21014:15;20984:7;:17;20992:5;20998:1;20992:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20984:17:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20984:17:0;:27:::1;;:45:::0;21141:20;;21101:61:::1;::::0;:15:::1;:61;:::i;:::-;21048:7;:17;21056:5;21062:1;21056:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;21048:17:0::1;-1:-1:-1::0;;;;;21048:17:0::1;;;;;;;;;;;;:29;;:114;;;;21278:7;21286:1;21278:10;;;;;;;;:::i;:::-;;;;;;;21229:7;:17;21237:5;21243:1;21237:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;21229:17:0::1;-1:-1:-1::0;;;;;21229:17:0::1;;;;;;;;;;;;:24;;;:60;;;;:::i;:::-;21181:7;:17;21189:5;21195:1;21189:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21181:17:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21181:17:0;:108;20152:1153:::1;17781:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17742:3574;;;;17404:3919:::0;;;:::o;17208:89::-;1148:5;;-1:-1:-1;;;;;1148:5:0;1134:10;:19;1126:51;;;;-1:-1:-1;;;1126:51:0;;;;;;;:::i;:::-;17275:8:::1;:14:::0;17208:89::o;1958:3510::-;2052:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;2105:8:::1;;2088:13;;:25;;2080:60;;;::::0;-1:-1:-1;;;2080:60:0;;6142:2:1;2080:60:0::1;::::0;::::1;6124:21:1::0;6181:2;6161:18;;;6154:30;-1:-1:-1;;;6200:18:1;;;6193:52;6262:18;;2080:60:0::1;5940:346:1::0;2080:60:0::1;2170:8;;2159:7;:19;;2151:56;;;::::0;-1:-1:-1;;;2151:56:0;;12065:2:1;2151:56:0::1;::::0;::::1;12047:21:1::0;12104:2;12084:18;;;12077:30;12143:26;12123:18;;;12116:54;12187:18;;2151:56:0::1;11863:348:1::0;2151:56:0::1;2218:5;::::0;:54:::1;::::0;-1:-1:-1;;;2218:54:0;;-1:-1:-1;;;;;2218:5:0;;::::1;::::0;:18:::1;::::0;:54:::1;::::0;2237:10:::1;::::0;2257:4:::1;::::0;2264:7;;2218:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2312:7;2297:11;;:23;;;;:::i;:::-;2283:11;:37:::0;2347:13:::1;::::0;:25:::1;::::0;2364:7;;2347:25:::1;:::i;:::-;2331:13;:41:::0;2404:1:::1;2390:15:::0;::::1;2386:3075;;;2452:35;2464:10;2476;2452:11;:35::i;:::-;2428:10;2422:17;::::0;;;:5:::1;:17;::::0;;;;:27:::1;::::0;::::1;:65:::0;;;;2529:24;:36:::1;::::0;2557:7;;2529:36:::1;:::i;:::-;2508:10;2502:17;::::0;;;:5:::1;:17;::::0;;;;:63;;;;2631:235:::1;::::0;2771:35:::1;::::0;2795:10;2771:11:::1;:35::i;:::-;2700:6;:19:::0;2678:10:::1;2700:19;2672:17:::0;;;:5:::1;:17;::::0;;;;:24;148:5:::1;::::0;2672:48:::1;::::0;::::1;:::i;:::-;2671:94;;;;:::i;:::-;2669:137;;;;:::i;2631:235::-;2586:10;2580:17;::::0;;;:5:::1;:17;::::0;;;;:29:::1;::::0;::::1;:301:::0;;;;3058:27:::1;::::0;::::1;::::0;2976:6:::1;:19:::0;2948:24;;3058:27;;148:5:::1;::::0;2948:48:::1;::::0;2976:19;2948:48:::1;:::i;:::-;2947:90;;;;:::i;:::-;2946:139;;;;:::i;:::-;2902:10;2896:17;::::0;;;:5:::1;:17;::::0;;;;:30:::1;::::0;::::1;:189:::0;;;;3137:15:::1;3103:31;::::0;::::1;:49:::0;;;3170:27:::1;::::0;;::::1;:45:::0;;;3315:18;;3279:55:::1;::::0;::::1;:::i;:::-;3236:10;3230:17;::::0;;;:5:::1;:17;::::0;;;;:29:::1;::::0;::::1;:104:::0;;;;3349:25:::1;::::0;;::::1;:29:::0;16448:43:::1;16358:141:::0;;:::o;2386:3075::-:1;3401:10;3415:1;3401:15;3397:2064;;;3464:35;3476:10;3488;3464:11;:35::i;:::-;3440:10;3433:18;::::0;;;:6:::1;:18;::::0;;;;:28:::1;::::0;::::1;:66:::0;;;;3545:25;:37:::1;::::0;3574:7;;3545:37:::1;:::i;:::-;3524:10;3517:18;::::0;;;:6:::1;:18;::::0;;;;:65;;;;3649:237:::1;::::0;3789:35:::1;::::0;3813:10;3789:11:::1;:35::i;:::-;3719:7;:20:::0;3697:10:::1;3719:20;3690:18:::0;;;:6:::1;:18;::::0;;;;:25;148:5:::1;::::0;3690:50:::1;::::0;::::1;:::i;:::-;3689:96;;;;:::i;:::-;3688:136;;;;:::i;3649:237::-;3604:10;3597:18;::::0;;;:6:::1;:18;::::0;;;;:30:::1;::::0;::::1;:304:::0;;;;4081:28:::1;::::0;::::1;::::0;3998:7:::1;:20:::0;3969:25;;4081:28;;148:5:::1;::::0;3969:50:::1;::::0;3998:20;3969:50:::1;:::i;:::-;3968:92;;;;:::i;:::-;3967:142;;;;:::i;:::-;3923:10;3916:18;::::0;;;:6:::1;:18;::::0;;;;:31:::1;::::0;::::1;:193:::0;;;;4162:15:::1;4127:32;::::0;::::1;:50:::0;;;4195:28:::1;::::0;;::::1;:46:::0;;;4342:19;;4306:56:::1;::::0;::::1;:::i;:::-;4263:10;4256:18;::::0;;;:6:::1;:18;::::0;;;;:30:::1;::::0;::::1;:106:::0;;;;4377:26:::1;::::0;;::::1;:30:::0;16448:43:::1;16358:141:::0;;:::o;3397:2064::-:1;4429:10;4443:1;4429:15;4425:1036;;;4493:35;4505:10;4517;4493:11;:35::i;:::-;4469:10;4461:19;::::0;;;:7:::1;:19;::::0;;;;:29:::1;::::0;::::1;:67:::0;;;;4572:26;:38:::1;::::0;4602:7;;4572:38:::1;:::i;:::-;4551:10;4543:19;::::0;;;:7:::1;:19;::::0;;;;:67;;;;4678:241:::1;::::0;4822:35:::1;::::0;4846:10;4822:11:::1;:35::i;:::-;4749:8;:21:::0;4727:10:::1;4749:21;4719:19:::0;;;:7:::1;:19;::::0;;;;:26;148:5:::1;::::0;4719:52:::1;::::0;::::1;:::i;:::-;4718:98;;;;:::i;:::-;4716:141;;;;:::i;4678:241::-;4633:10;4625:19;::::0;;;:7:::1;:19;::::0;;;;:31:::1;::::0;::::1;:309:::0;;;;5117:29:::1;::::0;::::1;::::0;5033:8:::1;:21:::0;5003:26;;5117:29;;148:5:::1;::::0;5003:52:::1;::::0;5033:21;5003:52:::1;:::i;:::-;5002:94;;;;:::i;:::-;5001:145;;;;:::i;:::-;4957:10;4949:19;::::0;;;:7:::1;:19;::::0;;;;:32:::1;::::0;::::1;:197:::0;;;;5200:15:::1;5164:33;::::0;::::1;:51:::0;;;5233:29:::1;::::0;;::::1;:47:::0;;;5382:20;;5346:57:::1;::::0;::::1;:::i;:::-;5303:10;5295:19;::::0;;;:7:::1;:19;::::0;;;;:31:::1;::::0;::::1;:108:::0;;;;5418:27:::1;::::0;;::::1;:31:::0;1958:3510;;;:::o;16237:109::-;1148:5;;-1:-1:-1;;;;;1148:5:0;1134:10;:19;1126:51;;;;-1:-1:-1;;;1126:51:0;;;;;;;:::i;:::-;16321:5:::1;:17:::0;;-1:-1:-1;;;;;;16321:17:0::1;-1:-1:-1::0;;;;;16321:17:0;;;::::1;::::0;;;::::1;::::0;;16237:109::o;21462:195::-;21577:7;21634:14;21620:8;;21610:6;:19;;;;:::i;:::-;21609:40;;;;:::i;:::-;21602:47;21462:195;-1:-1:-1;;;21462:195:0:o;9305:1940::-;9401:10;1280:1;1266:10;:15;;:34;;;;;1299:1;1285:10;:15;;1266:34;1258:64;;;;-1:-1:-1;;;1258:64:0;;;;;;;:::i;:::-;9433:10:::1;9447:1;9433:15;9429:587;;;-1:-1:-1::0;;;;;9497:12:0;::::1;;::::0;;;:5:::1;:12;::::0;;;;:25:::1;::::0;::::1;::::0;9473:20:::1;::::0;;::::1;::::0;:49:::1;;9465:91;;;;-1:-1:-1::0;;;9465:91:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9597:12:0;::::1;;::::0;;;:5:::1;:12;::::0;;;;:26:::1;;::::0;9579:15:::1;:44;9571:73;;;;-1:-1:-1::0;;;9571:73:0::1;;;;;;;:::i;:::-;9702:1;9669:30;9681:5;9688:10;9669:11;:30::i;:::-;:34;9665:147;;;9724:5;::::0;9743:13:::1;::::0;-1:-1:-1;;;;;9724:5:0;;::::1;::::0;:18:::1;::::0;9743:13:::1;9758:5:::0;9765:30:::1;9758:5:::0;9784:10;9765:11:::1;:30::i;:::-;9724:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9665:147;9873:30;9885:5;9892:10;9873:11;:30::i;:::-;-1:-1:-1::0;;;;;9849:12:0;::::1;;::::0;;;:5:::1;:12;::::0;;;;:20:::1;;::::0;:55:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;9826:12:0;::::1;;::::0;;;:5:::1;:12;::::0;;;;:20:::1;::::0;::::1;:78:::0;;;;9948:15:::1;9919:26;::::0;::::1;:44:::0;9978:22:::1;::::0;;::::1;:26:::0;9429:587:::1;10030:10;10044:1;10030:15;10026:594;;;-1:-1:-1::0;;;;;10095:13:0;::::1;;::::0;;;:6:::1;:13;::::0;;;;:26:::1;::::0;::::1;::::0;10070:21:::1;::::0;;::::1;::::0;:51:::1;;10062:93;;;;-1:-1:-1::0;;;10062:93:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10196:13:0;::::1;;::::0;;;:6:::1;:13;::::0;;;;:27:::1;;::::0;10178:15:::1;:45;10170:74;;;;-1:-1:-1::0;;;10170:74:0::1;;;;;;;:::i;:::-;10302:1;10269:30;10281:5;10288:10;10269:11;:30::i;:::-;:34;10265:147;;;10324:5;::::0;10343:13:::1;::::0;-1:-1:-1;;;;;10324:5:0;;::::1;::::0;:18:::1;::::0;10343:13:::1;10358:5:::0;10365:30:::1;10358:5:::0;10384:10;10365:11:::1;:30::i;:::-;10324:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10265:147;10475:30;10487:5;10494:10;10475:11;:30::i;:::-;-1:-1:-1::0;;;;;10450:13:0;::::1;;::::0;;;:6:::1;:13;::::0;;;;:21:::1;;::::0;:56:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;10426:13:0;::::1;;::::0;;;:6:::1;:13;::::0;;;;:21:::1;::::0;::::1;:80:::0;;;;10551:15:::1;10521:27;::::0;::::1;:45:::0;10581:23:::1;::::0;;::::1;:27:::0;10026:594:::1;10637:10;10651:1;10637:15;10633:601;;;-1:-1:-1::0;;;;;10703:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;:27:::1;::::0;::::1;::::0;10677:22:::1;::::0;;::::1;::::0;:53:::1;;10669:95;;;;-1:-1:-1::0;;;10669:95:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10805:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;:28:::1;;::::0;10787:15:::1;:46;10779:75;;;;-1:-1:-1::0;;;10779:75:0::1;;;;;;;:::i;:::-;10912:1;10879:30;10891:5;10898:10;10879:11;:30::i;:::-;:34;10875:147;;;10934:5;::::0;10953:13:::1;::::0;-1:-1:-1;;;;;10934:5:0;;::::1;::::0;:18:::1;::::0;10953:13:::1;10968:5:::0;10975:30:::1;10968:5:::0;10994:10;10975:11:::1;:30::i;:::-;10934:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10875:147;11087:30;11099:5;11106:10;11087:11;:30::i;:::-;-1:-1:-1::0;;;;;11061:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;:22:::1;;::::0;:57:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;11036:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;:22:::1;::::0;::::1;:82:::0;;;;11164:15:::1;11133:28;::::0;::::1;:46:::0;11194:24:::1;::::0;;::::1;:28:::0;9305:1940;;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;452:131::-;-1:-1:-1;;;;;527:31:1;;517:42;;507:70;;573:1;570;563:12;507:70;452:131;:::o;588:315::-;656:6;664;717:2;705:9;696:7;692:23;688:32;685:52;;;733:1;730;723:12;685:52;772:9;759:23;791:31;816:5;791:31;:::i;:::-;841:5;893:2;878:18;;;;865:32;;-1:-1:-1;;;588:315:1:o;1100:255::-;1167:6;1220:2;1208:9;1199:7;1195:23;1191:32;1188:52;;;1236:1;1233;1226:12;1188:52;1275:9;1262:23;1294:31;1319:5;1294:31;:::i;1542:316::-;1619:6;1627;1635;1688:2;1676:9;1667:7;1663:23;1659:32;1656:52;;;1704:1;1701;1694:12;1656:52;-1:-1:-1;;1727:23:1;;;1797:2;1782:18;;1769:32;;-1:-1:-1;1848:2:1;1833:18;;;1820:32;;1542:316;-1:-1:-1;1542:316:1:o;2310:315::-;2378:6;2386;2439:2;2427:9;2418:7;2414:23;2410:32;2407:52;;;2455:1;2452;2445:12;2407:52;2491:9;2478:23;2468:33;;2551:2;2540:9;2536:18;2523:32;2564:31;2589:5;2564:31;:::i;:::-;2614:5;2604:15;;;2310:315;;;;;:::o;2630:127::-;2691:10;2686:3;2682:20;2679:1;2672:31;2722:4;2719:1;2712:15;2746:4;2743:1;2736:15;2762:275;2833:2;2827:9;2898:2;2879:13;;-1:-1:-1;;2875:27:1;2863:40;;2933:18;2918:34;;2954:22;;;2915:62;2912:88;;;2980:18;;:::i;:::-;3016:2;3009:22;2762:275;;-1:-1:-1;2762:275:1:o;3042:183::-;3102:4;3135:18;3127:6;3124:30;3121:56;;;3157:18;;:::i;:::-;-1:-1:-1;3202:1:1;3198:14;3214:4;3194:25;;3042:183::o;3230:662::-;3284:5;3337:3;3330:4;3322:6;3318:17;3314:27;3304:55;;3355:1;3352;3345:12;3304:55;3391:6;3378:20;3417:4;3441:60;3457:43;3497:2;3457:43;:::i;:::-;3441:60;:::i;:::-;3535:15;;;3621:1;3617:10;;;;3605:23;;3601:32;;;3566:12;;;;3645:15;;;3642:35;;;3673:1;3670;3663:12;3642:35;3709:2;3701:6;3697:15;3721:142;3737:6;3732:3;3729:15;3721:142;;;3803:17;;3791:30;;3841:12;;;;3754;;3721:142;;;-1:-1:-1;3881:5:1;3230:662;-1:-1:-1;;;;;;3230:662:1:o;3897:1439::-;4049:6;4057;4065;4118:2;4106:9;4097:7;4093:23;4089:32;4086:52;;;4134:1;4131;4124:12;4086:52;4174:9;4161:23;4203:18;4244:2;4236:6;4233:14;4230:34;;;4260:1;4257;4250:12;4230:34;4283:61;4336:7;4327:6;4316:9;4312:22;4283:61;:::i;:::-;4273:71;;4363:2;4353:12;;4418:2;4407:9;4403:18;4390:32;4447:2;4437:8;4434:16;4431:36;;;4463:1;4460;4453:12;4431:36;4486:63;4541:7;4530:8;4519:9;4515:24;4486:63;:::i;:::-;4476:73;;;4602:2;4591:9;4587:18;4574:32;4631:2;4621:8;4618:16;4615:36;;;4647:1;4644;4637:12;4615:36;4670:24;;;-1:-1:-1;4725:4:1;4717:13;;4713:27;-1:-1:-1;4703:55:1;;4754:1;4751;4744:12;4703:55;4790:2;4777:16;4813:60;4829:43;4869:2;4829:43;:::i;4813:60::-;4907:15;;;4989:1;4985:10;;;;4977:19;;4973:28;;;4938:12;;;;5013:19;;;5010:39;;;5045:1;5042;5035:12;5010:39;5069:11;;;;5089:217;5105:6;5100:3;5097:15;5089:217;;;5185:3;5172:17;5202:31;5227:5;5202:31;:::i;:::-;5246:18;;5122:12;;;;5284;;;;5089:217;;;5325:5;5315:15;;;;;;;3897:1439;;;;;:::o;5341:248::-;5409:6;5417;5470:2;5458:9;5449:7;5445:23;5441:32;5438:52;;;5486:1;5483;5476:12;5438:52;-1:-1:-1;;5509:23:1;;;5579:2;5564:18;;;5551:32;;-1:-1:-1;5341:248:1:o;5594:341::-;5796:2;5778:21;;;5835:2;5815:18;;;5808:30;-1:-1:-1;;;5869:2:1;5854:18;;5847:47;5926:2;5911:18;;5594:341::o;6291:127::-;6352:10;6347:3;6343:20;6340:1;6333:31;6383:4;6380:1;6373:15;6407:4;6404:1;6397:15;6423:128;6463:3;6494:1;6490:6;6487:1;6484:13;6481:39;;;6500:18;;:::i;:::-;-1:-1:-1;6536:9:1;;6423:128::o;6556:383::-;-1:-1:-1;;;;;6822:15:1;;;6804:34;;6874:15;;;;6869:2;6854:18;;6847:43;6921:2;6906:18;;6899:34;;;;6754:2;6739:18;;6556:383::o;6944:277::-;7011:6;7064:2;7052:9;7043:7;7039:23;7035:32;7032:52;;;7080:1;7077;7070:12;7032:52;7112:9;7106:16;7165:5;7158:13;7151:21;7144:5;7141:32;7131:60;;7187:1;7184;7177:12;7566:168;7606:7;7672:1;7668;7664:6;7660:14;7657:1;7654:21;7649:1;7642:9;7635:17;7631:45;7628:71;;;7679:18;;:::i;:::-;-1:-1:-1;7719:9:1;;7566:168::o;7739:217::-;7779:1;7805;7795:132;;7849:10;7844:3;7840:20;7837:1;7830:31;7884:4;7881:1;7874:15;7912:4;7909:1;7902:15;7795:132;-1:-1:-1;7941:9:1;;7739:217::o;8641:343::-;8843:2;8825:21;;;8882:2;8862:18;;;8855:30;-1:-1:-1;;;8916:2:1;8901:18;;8894:49;8975:2;8960:18;;8641:343::o;9476:184::-;9546:6;9599:2;9587:9;9578:7;9574:23;9570:32;9567:52;;;9615:1;9612;9605:12;9567:52;-1:-1:-1;9638:16:1;;9476:184;-1:-1:-1;9476:184:1:o;10011:125::-;10051:4;10079:1;10076;10073:8;10070:34;;;10084:18;;:::i;:::-;-1:-1:-1;10121:9:1;;10011:125::o;11591:127::-;11652:10;11647:3;11643:20;11640:1;11633:31;11683:4;11680:1;11673:15;11707:4;11704:1;11697:15;11723:135;11762:3;-1:-1:-1;;11783:17:1;;11780:43;;;11803:18;;:::i;:::-;-1:-1:-1;11850:1:1;11839:13;;11723:135::o;12596:354::-;12798:2;12780:21;;;12837:2;12817:18;;;12810:30;12876:32;12871:2;12856:18;;12849:60;12941:2;12926:18;;12596:354::o;12955:341::-;13157:2;13139:21;;;13196:2;13176:18;;;13169:30;-1:-1:-1;;;13230:2:1;13215:18;;13208:47;13287:2;13272:18;;12955:341::o

Swarm Source

ipfs://60a8d8e67a4a8b7d99992a415853d0aab55c7d3233901ffb177aee0f4b8ada0b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

This is the official staking contract for LIFE-ERC20 tokens.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.