ETH Price: $3,930.22 (+5.95%)

Contract

0xA86819a469128d24c0066276A0162665399A3A08
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw156572882022-10-02 1:51:47795 days ago1664675507IN
0xA86819a4...5399A3A08
0 ETH0.000506965.52883153
Stake148118402022-05-20 15:16:16929 days ago1653059776IN
0xA86819a4...5399A3A08
0 ETH0.0034444830.94276866
Withdraw148118332022-05-20 15:15:19929 days ago1653059719IN
0xA86819a4...5399A3A08
0 ETH0.0033429136.45691944
Withdraw147259572022-05-06 21:41:41943 days ago1651873301IN
0xA86819a4...5399A3A08
0 ETH0.0029490232.16118799
Add Reward146090072022-04-18 11:47:20962 days ago1650282440IN
0xA86819a4...5399A3A08
0 ETH0.0018530628.99082372
Stake145341262022-04-06 19:19:50973 days ago1649272790IN
0xA86819a4...5399A3A08
0 ETH0.0064630658.0407521
Withdraw144564602022-03-25 16:17:30985 days ago1648225050IN
0xA86819a4...5399A3A08
0 ETH0.00939589102.46902741
Stake143750032022-03-12 23:46:46998 days ago1647128806IN
0xA86819a4...5399A3A08
0 ETH0.0034533931.02609213
Withdraw143749962022-03-12 23:46:02998 days ago1647128762IN
0xA86819a4...5399A3A08
0 ETH0.0034077937.16448547
Stake143410162022-03-07 17:16:191003 days ago1646673379IN
0xA86819a4...5399A3A08
0 ETH0.006996838.92690991
Withdraw142925052022-02-28 4:33:241011 days ago1646022804IN
0xA86819a4...5399A3A08
0 ETH0.0038537647.91160432
Stake142614522022-02-23 9:11:591016 days ago1645607519IN
0xA86819a4...5399A3A08
0 ETH0.0045331940.70977884
Withdraw142613302022-02-23 8:44:151016 days ago1645605855IN
0xA86819a4...5399A3A08
0 ETH0.0045285949.38759491
Stake140601072022-01-23 5:47:271047 days ago1642916847IN
0xA86819a4...5399A3A08
0 ETH0.010350992.95493644
Withdraw139542692022-01-06 21:21:381063 days ago1641504098IN
0xA86819a4...5399A3A08
0 ETH0.0076869103.04855926
Withdraw138760562021-12-25 18:45:371075 days ago1640457937IN
0xA86819a4...5399A3A08
0 ETH0.0054372872.8907226
Stake137508782021-12-06 7:11:301095 days ago1638774690IN
0xA86819a4...5399A3A08
0 ETH0.01374405123.42669976
Withdraw137508672021-12-06 7:08:151095 days ago1638774495IN
0xA86819a4...5399A3A08
0 ETH0.01107228120.75127947
Stake136682812021-11-23 2:41:431108 days ago1637635303IN
0xA86819a4...5399A3A08
0 ETH0.01829528157.57397181
Withdraw136229692021-11-15 22:33:061115 days ago1637015586IN
0xA86819a4...5399A3A08
0 ETH0.01200642130.93865615
Withdraw136034692021-11-12 20:35:221118 days ago1636749322IN
0xA86819a4...5399A3A08
0 ETH0.00808449180.69143022
Withdraw135466072021-11-03 22:39:241127 days ago1635979164IN
0xA86819a4...5399A3A08
0 ETH0.01432065156.17702348
Stake135392442021-11-02 18:55:551128 days ago1635879355IN
0xA86819a4...5399A3A08
0 ETH0.01673929150.32502174
Withdraw135175422021-10-30 8:58:421132 days ago1635584322IN
0xA86819a4...5399A3A08
0 ETH0.00938561125.82090416
Withdraw135166302021-10-30 5:26:191132 days ago1635571579IN
0xA86819a4...5399A3A08
0 ETH0.0102097111.34417935
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:
Rookie_v8

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-13
*/

pragma solidity 0.5.16;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

pragma solidity 0.5.16;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

pragma solidity 0.5.16;

contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor() internal {}

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode
        return msg.data;
    }
}

// File: @openzeppelin/contracts/ownership/Ownable.sol

pragma solidity 0.5.16;

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() internal {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

pragma solidity 0.5.16;

contract Rookie_v8 is Ownable {
    using SafeMath for uint256;

    /**
     *  @dev Structs to store user staking data.
     */
    struct Deposits {
        uint256 depositAmount;
        uint256 depositTime;
        uint256 endTime;
        uint64 userIndex;
        bool paid;
        bool eligible;
    }

    /**
     *  @dev Structs to store interest rate change.
     */
    struct Rates {
        uint64 newInterestRate;
        uint256 timeStamp;
    }

    mapping(address => Deposits) private deposits;
    mapping(uint64 => Rates) public rates;
    mapping(address => bool) private hasStaked;

    address public tokenAddress;
    uint256 public stakedBalance;
    uint256 public rewardBalance;
    uint256 public stakedTotal;
    uint256 public totalReward;
    uint64 public index;
    uint64 public rate;
    uint256 public lockDuration;
    uint256 public eligibilityAmount;
    string public name;

    IERC20 public ERC20Interface;

    /**
     *  @dev Emitted when user stakes 'stakedAmount' value of tokens
     */
    event Staked(
        address indexed token,
        address indexed staker_,
        uint256 stakedAmount_
    );

    /**
     *  @dev Emitted when user withdraws his stakings
     */
    event PaidOut(
        address indexed token,
        address indexed staker_,
        uint256 amount_,
        uint256 reward_
    );

    /**
     *   @param
     *   name_ name of the contract
     *   tokenAddress_ contract address of the token
     *   rate_ rate multiplied by 100
     *   lockduration_ duration in days
     */
    constructor(
        string memory name_,
        address tokenAddress_,
        uint64 rate_,
        uint256 lockDuration_
    ) public Ownable() {
        name = name_;
        require(tokenAddress_ != address(0), "Zero token address");
        tokenAddress = tokenAddress_;
        lockDuration = lockDuration_;
        require(rate_ != 0, "Zero interest rate");
        rate = rate_;
        rates[index] = Rates(rate, block.timestamp);
    }

    /**
     *  Requirements:
     *  `rate_` New effective interest rate multiplied by 100
     *  @dev to set interest rates
     */
    function setRate(uint64 rate_) external onlyOwner {
        require(rate_ != 0, "Zero interest rate");
        rate = rate_;
        index++;
        rates[index] = Rates(rate_, block.timestamp);
    }

    /**
     *  Requirements:
     *  `amount_` Eligibility amount to be set for Professional Tier unlocks
     *  @dev to set eligibility amount
     */
    function setEligibilityAmount(
        uint256 eligibilityAmount_ //external
    ) external onlyOwner {
        eligibilityAmount = eligibilityAmount_;
    }

    /**
     *  Requirements:
     *  `lockduration_' lock days
     *  @dev to set lock duration days
     */
    function changeLockDuration(uint256 lockduration_) external onlyOwner {
        lockDuration = lockduration_;
    }

    /**
     *  Requirements:
     *  `user_` User wallet address
     *  @dev to view eligibility status of user
     */
    function eligibility(address user_) external view returns (bool) {
        return deposits[user_].eligible;
    }

    /**
     *  Requirements:
     *  `rewardAmount` rewards to be added to the staking contract
     *  @dev to add rewards to the staking contract
     *  once the allowance is given to this contract for 'rewardAmount' by the user
     */
    function addReward(uint256 rewardAmount)
        external
        _hasAllowance(msg.sender, rewardAmount)
        returns (bool)
    {
        require(rewardAmount > 0, "Reward must be positive");
        address from = msg.sender;

        if (!_payMe(from, rewardAmount)) {
            return false;
        }

        totalReward = totalReward.add(rewardAmount);
        rewardBalance = rewardBalance.add(rewardAmount);
        return true;
    }

    /**
     *  Requirements:
     *  `user` User wallet address
     *  @dev returns user staking data
     */
    function userDeposits(address user)
        external
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            bool
        )
    {
        if (hasStaked[user]) {
            return (
                deposits[user].depositAmount,
                deposits[user].depositTime,
                deposits[user].endTime,
                deposits[user].userIndex,
                deposits[user].paid
            );
        }
    }

    /**
     *  Requirements:
     *  `amount` Amount to be staked
     /**
     *  @dev to stake 'amount' value of tokens 
     *  once the user has given allowance to the staking contract
     */
    function stake(uint256 amount)
        external
        _hasAllowance(msg.sender, amount)
        returns (bool)
    {
        require(amount > 0, "Can't stake 0 amount");
        address from = msg.sender;
        require(!hasStaked[from], "Already Staked");
        return (_stake(from, amount));
    }

    function _stake(address from, uint256 amount) private returns (bool) {
        if (!_payMe(from, amount)) {
            return false;
        }

        hasStaked[from] = true;
        bool stakerEligibility;
        if (amount >= eligibilityAmount) {
            stakerEligibility = true;
        }

        deposits[from] = Deposits(
            amount,
            block.timestamp,
            block.timestamp.add((lockDuration.mul(86400))), //lockDuration * 24 * 3600
            index,
            false,
            stakerEligibility
        );

        emit Staked(tokenAddress, from, amount);

        stakedBalance = stakedBalance.add(amount);
        stakedTotal = stakedTotal.add(amount);
        return true;
    }

    /**
     * @dev to withdraw user stakings after the lock period ends.
     */
    function withdraw() external returns (bool) {
        address from = msg.sender;
        require(hasStaked[from], "No stakes found for user");
        require(
            block.timestamp >= deposits[from].endTime,
            "Requesting before lock time"
        );
        require(!deposits[from].paid, "Already paid out");
        return (_withdraw(from));
    }

    function _withdraw(address from) private returns (bool) {
        uint256 payOut = _calculate(from);
        uint256 amount = deposits[from].depositAmount;
        uint256 reward = payOut.sub(amount);
        require(reward <= rewardBalance, "Not enough rewards");

        stakedBalance = stakedBalance.sub(amount);
        rewardBalance = rewardBalance.sub(reward);
        deposits[from].paid = true;
        hasStaked[from] = false;
        if (deposits[from].eligible) {
            deposits[from].eligible = false;
        }

        if (_payDirect(from, payOut)) {
            emit PaidOut(tokenAddress, from, amount, reward);
            return true;
        }
        return false;
    }

    function emergencyWithdraw() external returns (bool) {
        address from = msg.sender;
        require(hasStaked[from], "No stakes found for user");
        require(
            block.timestamp >= deposits[from].endTime,
            "Requesting before lock time"
        );
        require(!deposits[from].paid, "Already paid out");

        return (_emergencyWithdraw(from));
    }

    function _emergencyWithdraw(address from) private returns (bool) {
        uint256 amount = deposits[from].depositAmount;
        stakedBalance = stakedBalance.sub(amount);
        deposits[from].paid = true;
        hasStaked[from] = false; //Check-Effects-Interactions pattern
        if (deposits[from].eligible) {
            deposits[from].eligible = false;
        }

        bool principalPaid = _payDirect(from, amount);
        require(principalPaid, "Error paying");
        emit PaidOut(tokenAddress, from, amount, 0);

        return true;
    }

    /**
     *  Requirements:
     *  `from` User wallet address
     * @dev to calculate the rewards based on user staked 'amount'
     * 'userIndex' - the index of the interest rate at the time of user stake.
     * 'depositTime' - time of staking
     */
    function calculate(address from) external view returns (uint256) {
        return _calculate(from);
    }

    function _calculate(address from) private view returns (uint256) {
        if (!hasStaked[from]) return 0;
        (
            uint256 amount,
            uint256 depositTime,
            uint256 endTime,
            uint64 userIndex
        ) =
            (
                deposits[from].depositAmount,
                deposits[from].depositTime,
                deposits[from].endTime,
                deposits[from].userIndex
            );

        uint256 time;
        uint256 interest;
        uint256 _lockduration = endTime.sub(depositTime);
        for (uint64 i = userIndex; i < index; i++) {
            //loop runs till the latest index/interest rate change
            if (endTime < rates[i + 1].timeStamp) {
                //if the change occurs after the endTime loop breaks
                break;
            } else {
                time = rates[i + 1].timeStamp.sub(depositTime);
                interest = amount.mul(rates[i].newInterestRate).mul(time).div(
                    _lockduration.mul(10000)
                ); //replace with (_lockduration * 10000)
                amount += interest;
                depositTime = rates[i + 1].timeStamp;
                userIndex++;
            }
        }

        if (depositTime < endTime) {
            //final calculation for the remaining time period
            time = endTime.sub(depositTime);

            interest = time
                .mul(amount)
                .mul(rates[userIndex].newInterestRate)
                .div(_lockduration.mul(10000)); //replace with (lockduration * 10000)

            amount += interest;
        }

        return (amount);
    }

    function _payMe(address payer, uint256 amount) private returns (bool) {
        return _payTo(payer, address(this), amount);
    }

    function _payTo(
        address allower,
        address receiver,
        uint256 amount
    ) private _hasAllowance(allower, amount) returns (bool) {
        ERC20Interface = IERC20(tokenAddress);
        return ERC20Interface.transferFrom(allower, receiver, amount);
    }

    function _payDirect(address to, uint256 amount) private returns (bool) {
        ERC20Interface = IERC20(tokenAddress);
        return ERC20Interface.transfer(to, amount);
    }

    modifier _hasAllowance(address allower, uint256 amount) {
        // Make sure the allower has provided the right allowance.
        ERC20Interface = IERC20(tokenAddress);
        uint256 ourAllowance = ERC20Interface.allowance(allower, address(this));
        require(amount <= ourAllowance, "Make sure to add enough allowance");
        _;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"address","name":"tokenAddress_","type":"address"},{"internalType":"uint64","name":"rate_","type":"uint64"},{"internalType":"uint256","name":"lockDuration_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"staker_","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward_","type":"uint256"}],"name":"PaidOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"staker_","type":"address"},{"indexed":false,"internalType":"uint256","name":"stakedAmount_","type":"uint256"}],"name":"Staked","type":"event"},{"constant":true,"inputs":[],"name":"ERC20Interface","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"addReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"calculate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"lockduration_","type":"uint256"}],"name":"changeLockDuration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user_","type":"address"}],"name":"eligibility","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"eligibilityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"emergencyWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"index","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"name":"rates","outputs":[{"internalType":"uint64","name":"newInterestRate","type":"uint64"},{"internalType":"uint256","name":"timeStamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"eligibilityAmount_","type":"uint256"}],"name":"setEligibilityAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint64","name":"rate_","type":"uint64"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakedTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200359038038062003590833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919080519060200190929190505050620001296200044c60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a383600c9080519060200190620001fc92919062000454565b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620002a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20746f6b656e2061646472657373000000000000000000000000000081525060200191505060405180910390fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a8190555060008267ffffffffffffffff1614156200036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20696e7465726573742072617465000000000000000000000000000081525060200191505060405180910390fd5b81600960086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040518060400160405280600960089054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020014281525060026000600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550602082015181600101559050505050505062000503565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200049757805160ff1916838001178555620004c8565b82800160010185558215620004c8579182015b82811115620004c7578251825591602001919060010190620004aa565b5b509050620004d79190620004db565b5090565b6200050091905b80821115620004fc576000816000905550600101620004e2565b5090565b90565b61307d80620005136000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806363c36dec116100de5780638f32d59b11610097578063aa5c3ab411610071578063aa5c3ab4146106d1578063d66692a7146106ef578063db2e21bc1461070d578063f2fde38b1461072f5761018e565b80638f32d59b1461061f5780639d76ea5814610641578063a694fc3a1461068b5761018e565b806363c36dec146104ed578063715018a614610549578063715d94021461055357806374de4ec414610571578063750142e6146105b75780638da5cb5b146105d55761018e565b80632986c0e51161014b5780633ccfd60b116101255780633ccfd60b146104275780633e4134831461044957806350003ca6146104775780635b9f0016146104cf5761018e565b80632986c0e51461038b5780632c4e722e146103bd578063398327e6146103ef5761018e565b8063045544431461019357806306fdde03146101b15780630ba36dcd146102345780630f0a3d13146102ac5780631bbc4b831461031357806327a59fb81461035d575b600080fd5b61019b610773565b6040518082815260200191505060405180910390f35b6101b9610779565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f95780820151818401526020810190506101de565b50505050905090810190601f1680156102265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766004803603602081101561024a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610817565b60405180868152602001858152602001848152602001838152602001821515151581526020019550505050505060405180910390f35b6102e2600480360360208110156102c257600080fd5b81019080803567ffffffffffffffff169060200190929190505050610a07565b604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390f35b61031b610a3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103896004803603602081101561037357600080fd5b8101908080359060200190929190505050610a65565b005b610393610ae9565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6103c5610b03565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6104256004803603602081101561040557600080fd5b81019080803567ffffffffffffffff169060200190929190505050610b1d565b005b61042f610d23565b604051808215151515815260200191505060405180910390f35b6104756004803603602081101561045f57600080fd5b8101908080359060200190929190505050610f72565b005b6104b96004803603602081101561048d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff6565b6040518082815260200191505060405180910390f35b6104d7611008565b6040518082815260200191505060405180910390f35b61052f6004803603602081101561050357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100e565b604051808215151515815260200191505060405180910390f35b610551611067565b005b61055b6111a0565b6040518082815260200191505060405180910390f35b61059d6004803603602081101561058757600080fd5b81019080803590602001909291905050506111a6565b604051808215151515815260200191505060405180910390f35b6105bf61144f565b6040518082815260200191505060405180910390f35b6105dd611455565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062761147e565b604051808215151515815260200191505060405180910390f35b6106496114dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b7600480360360208110156106a157600080fd5b8101908080359060200190929190505050611502565b604051808215151515815260200191505060405180910390f35b6106d9611824565b6040518082815260200191505060405180910390f35b6106f761182a565b6040518082815260200191505060405180910390f35b610715611830565b604051808215151515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7f565b005b600a5481565b600c8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561080f5780601f106107e45761010080835404028352916020019161080f565b820191906000526020600020905b8154815290600101906020018083116107f257829003601f168201915b505050505081565b6000806000806000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109fd57600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff16600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff168167ffffffffffffffff169150945094509450945094506109fe565b5b91939590929450565b60026020528060005260406000206000915090508060000160009054906101000a900467ffffffffffffffff16908060010154905082565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a6d61147e565b610adf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b600960009054906101000a900467ffffffffffffffff1681565b600960089054906101000a900467ffffffffffffffff1681565b610b2561147e565b610b97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008167ffffffffffffffff161415610c18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20696e7465726573742072617465000000000000000000000000000081525060200191505060405180910390fd5b80600960086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506009600081819054906101000a900467ffffffffffffffff168092919060010191906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505060405180604001604052808267ffffffffffffffff1681526020014281525060026000600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506020820151816001015590505050565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610de8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154421015610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615610f63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b610f6c81611b05565b91505090565b610f7a61147e565b610fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b600061100182611e39565b9050919050565b60055481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff169050919050565b61106f61147e565b6110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156112e257600080fd5b505afa1580156112f6573d6000803e3d6000fd5b505050506040513d602081101561130c57600080fd5b8101908080519060200190929190505050905080821115611378576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600085116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f526577617264206d75737420626520706f73697469766500000000000000000081525060200191505060405180910390fd5b60003390506113fd8187612239565b61140b576000945050611447565b6114208660085461224e90919063ffffffff16565b60088190555061143b8660065461224e90919063ffffffff16565b60068190555060019450505b505050919050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c06122d6565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d602081101561166857600080fd5b81019080805190602001909291905050509050808211156116d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b6000851161174a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f43616e2774207374616b65203020616d6f756e7400000000000000000000000081525060200191505060405180910390fd5b6000339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f416c7265616479205374616b656400000000000000000000000000000000000081525060200191505060405180910390fd5b61181981876122de565b945050505050919050565b60065481565b60075481565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201544210156119ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615611a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b611a7981612572565b91505090565b611a8761147e565b611af9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b0281612854565b50565b600080611b1183611e39565b90506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000611b6f828461299890919063ffffffff16565b9050600654811115611be9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682072657761726473000000000000000000000000000081525060200191505060405180910390fd5b611bfe8260055461299890919063ffffffff16565b600581905550611c198160065461299890919063ffffffff16565b60068190555060018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615611d82576000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b611d8c8584612a21565b15611e2c578473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b8484604051808381526020018281526020019250505060405180910390a360019350505050611e34565b600093505050505b919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e955760009050612234565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1693509350935093506000806000611fdb868661299890919063ffffffff16565b905060008490505b600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff16101561217057600260006001830167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015486101561204f57612170565b61208f87600260006001850167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015461299890919063ffffffff16565b93506121246120a961271084612b7290919063ffffffff16565b61211686612108600260008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff168d612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b92508288019750600260006001830167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060010154965084806001019550508080600101915050611fe3565b50848610156122295761218c868661299890919063ffffffff16565b92506122216121a661271083612b7290919063ffffffff16565b612213600260008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff166122058b88612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b915081870196505b869750505050505050505b919050565b6000612246833084612c87565b905092915050565b6000808284019050838110156122cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b60006122ea8383612239565b6122f7576000905061256c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b54831061235f57600190505b6040518060c001604052808481526020014281526020016123a061239162015180600a54612b7290919063ffffffff16565b4261224e90919063ffffffff16565b8152602001600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001600015158152602001821515815250600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548160ff02191690831515021790555060a08201518160030160096101000a81548160ff0219169083151502179055509050508373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd7856040518082815260200191505060405180910390a36125458360055461224e90919063ffffffff16565b6005819055506125608360075461224e90919063ffffffff16565b60078190555060019150505b92915050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506125cf8160055461299890919063ffffffff16565b60058190555060018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615612738576000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b60006127448483612a21565b9050806127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4572726f7220706179696e67000000000000000000000000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b846000604051808381526020018281526020019250505060405180910390a3600192505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130026026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115612a10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b2f57600080fd5b505af1158015612b43573d6000803e3d6000fd5b505050506040513d6020811015612b5957600080fd5b8101908080519060200190929190505050905092915050565b600080831415612b855760009050612bf2565b6000828402905082848281612b9657fe5b0414612bed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130286021913960400191505060405180910390fd5b809150505b92915050565b6000808211612c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481612c7a57fe5b0490508091505092915050565b60008382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dc357600080fd5b505afa158015612dd7573d6000803e3d6000fd5b505050506040513d6020811015612ded57600080fd5b8101908080519060200190929190505050905080821115612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8888886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612f9957600080fd5b505af1158015612fad573d6000803e3d6000fd5b505050506040513d6020811015612fc357600080fd5b81019080805190602001909291905050509350505050939250505056fe4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820a3cfe244341305d1d3149a0cc534384e6d6d528b8612f4977d32d69a63f69c3764736f6c6343000510003200000000000000000000000000000000000000000000000000000000000000800000000000000000000000001de5e000c41c8d35b9f1f4985c23988f058310570000000000000000000000000000000000000000000000000000000000000073000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000006526f6f6b69650000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806363c36dec116100de5780638f32d59b11610097578063aa5c3ab411610071578063aa5c3ab4146106d1578063d66692a7146106ef578063db2e21bc1461070d578063f2fde38b1461072f5761018e565b80638f32d59b1461061f5780639d76ea5814610641578063a694fc3a1461068b5761018e565b806363c36dec146104ed578063715018a614610549578063715d94021461055357806374de4ec414610571578063750142e6146105b75780638da5cb5b146105d55761018e565b80632986c0e51161014b5780633ccfd60b116101255780633ccfd60b146104275780633e4134831461044957806350003ca6146104775780635b9f0016146104cf5761018e565b80632986c0e51461038b5780632c4e722e146103bd578063398327e6146103ef5761018e565b8063045544431461019357806306fdde03146101b15780630ba36dcd146102345780630f0a3d13146102ac5780631bbc4b831461031357806327a59fb81461035d575b600080fd5b61019b610773565b6040518082815260200191505060405180910390f35b6101b9610779565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f95780820151818401526020810190506101de565b50505050905090810190601f1680156102265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766004803603602081101561024a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610817565b60405180868152602001858152602001848152602001838152602001821515151581526020019550505050505060405180910390f35b6102e2600480360360208110156102c257600080fd5b81019080803567ffffffffffffffff169060200190929190505050610a07565b604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390f35b61031b610a3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103896004803603602081101561037357600080fd5b8101908080359060200190929190505050610a65565b005b610393610ae9565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6103c5610b03565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6104256004803603602081101561040557600080fd5b81019080803567ffffffffffffffff169060200190929190505050610b1d565b005b61042f610d23565b604051808215151515815260200191505060405180910390f35b6104756004803603602081101561045f57600080fd5b8101908080359060200190929190505050610f72565b005b6104b96004803603602081101561048d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff6565b6040518082815260200191505060405180910390f35b6104d7611008565b6040518082815260200191505060405180910390f35b61052f6004803603602081101561050357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100e565b604051808215151515815260200191505060405180910390f35b610551611067565b005b61055b6111a0565b6040518082815260200191505060405180910390f35b61059d6004803603602081101561058757600080fd5b81019080803590602001909291905050506111a6565b604051808215151515815260200191505060405180910390f35b6105bf61144f565b6040518082815260200191505060405180910390f35b6105dd611455565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062761147e565b604051808215151515815260200191505060405180910390f35b6106496114dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b7600480360360208110156106a157600080fd5b8101908080359060200190929190505050611502565b604051808215151515815260200191505060405180910390f35b6106d9611824565b6040518082815260200191505060405180910390f35b6106f761182a565b6040518082815260200191505060405180910390f35b610715611830565b604051808215151515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7f565b005b600a5481565b600c8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561080f5780601f106107e45761010080835404028352916020019161080f565b820191906000526020600020905b8154815290600101906020018083116107f257829003601f168201915b505050505081565b6000806000806000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109fd57600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff16600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff168167ffffffffffffffff169150945094509450945094506109fe565b5b91939590929450565b60026020528060005260406000206000915090508060000160009054906101000a900467ffffffffffffffff16908060010154905082565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a6d61147e565b610adf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b600960009054906101000a900467ffffffffffffffff1681565b600960089054906101000a900467ffffffffffffffff1681565b610b2561147e565b610b97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008167ffffffffffffffff161415610c18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20696e7465726573742072617465000000000000000000000000000081525060200191505060405180910390fd5b80600960086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506009600081819054906101000a900467ffffffffffffffff168092919060010191906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505060405180604001604052808267ffffffffffffffff1681526020014281525060026000600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506020820151816001015590505050565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610de8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154421015610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615610f63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b610f6c81611b05565b91505090565b610f7a61147e565b610fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b600061100182611e39565b9050919050565b60055481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff169050919050565b61106f61147e565b6110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156112e257600080fd5b505afa1580156112f6573d6000803e3d6000fd5b505050506040513d602081101561130c57600080fd5b8101908080519060200190929190505050905080821115611378576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600085116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f526577617264206d75737420626520706f73697469766500000000000000000081525060200191505060405180910390fd5b60003390506113fd8187612239565b61140b576000945050611447565b6114208660085461224e90919063ffffffff16565b60088190555061143b8660065461224e90919063ffffffff16565b60068190555060019450505b505050919050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c06122d6565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d602081101561166857600080fd5b81019080805190602001909291905050509050808211156116d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b6000851161174a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f43616e2774207374616b65203020616d6f756e7400000000000000000000000081525060200191505060405180910390fd5b6000339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f416c7265616479205374616b656400000000000000000000000000000000000081525060200191505060405180910390fd5b61181981876122de565b945050505050919050565b60065481565b60075481565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201544210156119ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615611a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b611a7981612572565b91505090565b611a8761147e565b611af9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b0281612854565b50565b600080611b1183611e39565b90506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000611b6f828461299890919063ffffffff16565b9050600654811115611be9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682072657761726473000000000000000000000000000081525060200191505060405180910390fd5b611bfe8260055461299890919063ffffffff16565b600581905550611c198160065461299890919063ffffffff16565b60068190555060018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615611d82576000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b611d8c8584612a21565b15611e2c578473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b8484604051808381526020018281526020019250505060405180910390a360019350505050611e34565b600093505050505b919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e955760009050612234565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1693509350935093506000806000611fdb868661299890919063ffffffff16565b905060008490505b600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff16101561217057600260006001830167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015486101561204f57612170565b61208f87600260006001850167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015461299890919063ffffffff16565b93506121246120a961271084612b7290919063ffffffff16565b61211686612108600260008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff168d612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b92508288019750600260006001830167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060010154965084806001019550508080600101915050611fe3565b50848610156122295761218c868661299890919063ffffffff16565b92506122216121a661271083612b7290919063ffffffff16565b612213600260008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff166122058b88612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b915081870196505b869750505050505050505b919050565b6000612246833084612c87565b905092915050565b6000808284019050838110156122cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b60006122ea8383612239565b6122f7576000905061256c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b54831061235f57600190505b6040518060c001604052808481526020014281526020016123a061239162015180600a54612b7290919063ffffffff16565b4261224e90919063ffffffff16565b8152602001600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001600015158152602001821515815250600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548160ff02191690831515021790555060a08201518160030160096101000a81548160ff0219169083151502179055509050508373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd7856040518082815260200191505060405180910390a36125458360055461224e90919063ffffffff16565b6005819055506125608360075461224e90919063ffffffff16565b60078190555060019150505b92915050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506125cf8160055461299890919063ffffffff16565b60058190555060018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615612738576000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b60006127448483612a21565b9050806127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4572726f7220706179696e67000000000000000000000000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b846000604051808381526020018281526020019250505060405180910390a3600192505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130026026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115612a10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b2f57600080fd5b505af1158015612b43573d6000803e3d6000fd5b505050506040513d6020811015612b5957600080fd5b8101908080519060200190929190505050905092915050565b600080831415612b855760009050612bf2565b6000828402905082848281612b9657fe5b0414612bed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130286021913960400191505060405180910390fd5b809150505b92915050565b6000808211612c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481612c7a57fe5b0490508091505092915050565b60008382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dc357600080fd5b505afa158015612dd7573d6000803e3d6000fd5b505050506040513d6020811015612ded57600080fd5b8101908080519060200190929190505050905080821115612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8888886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612f9957600080fd5b505af1158015612fad573d6000803e3d6000fd5b505050506040513d6020811015612fc357600080fd5b81019080805190602001909291905050509350505050939250505056fe4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820a3cfe244341305d1d3149a0cc534384e6d6d528b8612f4977d32d69a63f69c3764736f6c63430005100032

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

00000000000000000000000000000000000000000000000000000000000000800000000000000000000000001de5e000c41c8d35b9f1f4985c23988f058310570000000000000000000000000000000000000000000000000000000000000073000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000006526f6f6b69650000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Rookie
Arg [1] : tokenAddress_ (address): 0x1DE5e000C41C8d35b9f1f4985C23988f05831057
Arg [2] : rate_ (uint64): 115
Arg [3] : lockDuration_ (uint256): 30

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000001de5e000c41c8d35b9f1f4985c23988f05831057
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000073
Arg [3] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 526f6f6b69650000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

4024:11148:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4024:11148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4884:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4957:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4957:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8138:511;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8138:511:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4568:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4568:37:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4984:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6927:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6927:117:0;;;;;;;;;;;;;;;;;:::i;:::-;;4833:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4859:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6269:206;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6269:206:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10027:375;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6642:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6642:161:0;;;;;;;;;;;;;;;;;:::i;:::-;;12380:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12380:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4697:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7179:115;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7179:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3459:140;;;:::i;:::-;;4918:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7549:464;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7549:464:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4800:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3156:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3357:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4663:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8862:313;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8862:313:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4732:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4767:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11133:395;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3607:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3607:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4884:27;;;;:::o;4957:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8138:511::-;8238:7;8260;8282;8304;8326:4;8362:9;:15;8372:4;8362:15;;;;;;;;;;;;;;;;;;;;;;;;;8358:284;;;8420:8;:14;8429:4;8420:14;;;;;;;;;;;;;;;:28;;;8467:8;:14;8476:4;8467:14;;;;;;;;;;;;;;;:26;;;8512:8;:14;8521:4;8512:14;;;;;;;;;;;;;;;:22;;;8553:8;:14;8562:4;8553:14;;;;;;;;;;;;;;;:24;;;;;;;;;;;;8596:8;:14;8605:4;8596:14;;;;;;;;;;;;;;;:19;;;;;;;;;;;;8394:236;;;;;;;;;;;;;;;;;8358:284;8138:511;;;;;;;;:::o;4568:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4984:28::-;;;;;;;;;;;;;:::o;6927:117::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7023:13;7008:12;:28;;;;6927:117;:::o;4833:19::-;;;;;;;;;;;;;:::o;4859:18::-;;;;;;;;;;;;;:::o;6269:206::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6347:1;6338:5;:10;;;;6330:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6389:5;6382:4;;:12;;;;;;;;;;;;;;;;;;6405:5;;:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6438:29;;;;;;;;6444:5;6438:29;;;;;;6451:15;6438:29;;;6423:5;:12;6429:5;;;;;;;;;;;6423:12;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6269:206;:::o;10027:375::-;10065:4;10082:12;10097:10;10082:25;;10126:9;:15;10136:4;10126:15;;;;;;;;;;;;;;;;;;;;;;;;;10118:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10222:8;:14;10231:4;10222:14;;;;;;;;;;;;;;;:22;;;10203:15;:41;;10181:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10319:8;:14;10328:4;10319:14;;;;;;;;;;;;;;;:19;;;;;;;;;;;;10318:20;10310:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10378:15;10388:4;10378:9;:15::i;:::-;10370:24;;;10027:375;:::o;6642:161::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6777:18;6757:17;:38;;;;6642:161;:::o;12380:107::-;12436:7;12463:16;12474:4;12463:10;:16::i;:::-;12456:23;;12380:107;;;:::o;4697:28::-;;;;:::o;7179:115::-;7238:4;7262:8;:15;7271:5;7262:15;;;;;;;;;;;;;;;:24;;;;;;;;;;;;7255:31;;7179:115;;;:::o;3459:140::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:1;3521:40;;3542:6;;;;;;;;;;;3521:40;;;;;;;;;;;;3589:1;3572:6;;:19;;;;;;;;;;;;;;;;;;3459:140::o;4918:32::-;;;;:::o;7549:464::-;7675:4;7631:10;7643:12;14975;;;;;;;;;;;14951:14;;:37;;;;;;;;;;;;;;;;;;14999:20;15022:14;;;;;;;;;;;:24;;;15047:7;15064:4;15022:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15022:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15022:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15022:48:0;;;;;;;;;;;;;;;;14999:71;;15099:12;15089:6;:22;;15081:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7720:1;7705:12;:16;7697:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7760:12;7775:10;7760:25;;7803:26;7810:4;7816:12;7803:6;:26::i;:::-;7798:72;;7853:5;7846:12;;;;;7798:72;7896:29;7912:12;7896:11;;:15;;:29;;;;:::i;:::-;7882:11;:43;;;;7952:31;7970:12;7952:13;;:17;;:31;;;;:::i;:::-;7936:13;:47;;;;8001:4;7994:11;;;15160:1;7549:464;;;;;;:::o;4800:26::-;;;;:::o;3156:79::-;3194:7;3221:6;;;;;;;;;;;3214:13;;3156:79;:::o;3357:94::-;3397:4;3437:6;;;;;;;;;;;3421:22;;:12;:10;:12::i;:::-;:22;;;3414:29;;3357:94;:::o;4663:27::-;;;;;;;;;;;;;:::o;8862:313::-;8972:4;8934:10;8946:6;14975:12;;;;;;;;;;;14951:14;;:37;;;;;;;;;;;;;;;;;;14999:20;15022:14;;;;;;;;;;;:24;;;15047:7;15064:4;15022:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15022:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15022:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15022:48:0;;;;;;;;;;;;;;;;14999:71;;15099:12;15089:6;:22;;15081:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9011:1;9002:6;:10;8994:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9048:12;9063:10;9048:25;;9093:9;:15;9103:4;9093:15;;;;;;;;;;;;;;;;;;;;;;;;;9092:16;9084:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9146:20;9153:4;9159:6;9146;:20::i;:::-;9138:29;;;8862:313;;;;;;:::o;4732:28::-;;;;:::o;4767:26::-;;;;:::o;11133:395::-;11180:4;11197:12;11212:10;11197:25;;11241:9;:15;11251:4;11241:15;;;;;;;;;;;;;;;;;;;;;;;;;11233:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11337:8;:14;11346:4;11337:14;;;;;;;;;;;;;;;:22;;;11318:15;:41;;11296:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11434:8;:14;11443:4;11434:14;;;;;;;;;;;;;;;:19;;;;;;;;;;;;11433:20;11425:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11495:24;11514:4;11495:18;:24::i;:::-;11487:33;;;11133:395;:::o;3607:109::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3680:28;3699:8;3680:18;:28::i;:::-;3607:109;:::o;10410:715::-;10460:4;10477:14;10494:16;10505:4;10494:10;:16::i;:::-;10477:33;;10521:14;10538:8;:14;10547:4;10538:14;;;;;;;;;;;;;;;:28;;;10521:45;;10577:14;10594:18;10605:6;10594;:10;;:18;;;;:::i;:::-;10577:35;;10641:13;;10631:6;:23;;10623:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10706:25;10724:6;10706:13;;:17;;:25;;;;:::i;:::-;10690:13;:41;;;;10758:25;10776:6;10758:13;;:17;;:25;;;;:::i;:::-;10742:13;:41;;;;10816:4;10794:8;:14;10803:4;10794:14;;;;;;;;;;;;;;;:19;;;:26;;;;;;;;;;;;;;;;;;10849:5;10831:9;:15;10841:4;10831:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10869:8;:14;10878:4;10869:14;;;;;;;;;;;;;;;:23;;;;;;;;;;;;10865:87;;;10935:5;10909:8;:14;10918:4;10909:14;;;;;;;;;;;;;;;:23;;;:31;;;;;;;;;;;;;;;;;;10865:87;10968:24;10979:4;10985:6;10968:10;:24::i;:::-;10964:131;;;11036:4;11014:43;;11022:12;;;;;;;;;;;11014:43;;;11042:6;11050;11014:43;;;;;;;;;;;;;;;;;;;;;;;;11079:4;11072:11;;;;;;;10964:131;11112:5;11105:12;;;;;10410:715;;;;:::o;12495:1694::-;12551:7;12576:9;:15;12586:4;12576:15;;;;;;;;;;;;;;;;;;;;;;;;;12571:30;;12600:1;12593:8;;;;12571:30;12627:14;12656:19;12690:15;12720:16;12782:8;:14;12791:4;12782:14;;;;;;;;;;;;;;;:28;;;12829:8;:14;12838:4;12829:14;;;;;;;;;;;;;;;:26;;;12874:8;:14;12883:4;12874:14;;;;;;;;;;;;;;;:22;;;12915:8;:14;12924:4;12915:14;;;;;;;;;;;;;;;:24;;;;;;;;;;;;12612:342;;;;;;;;12967:12;12990:16;13017:21;13041:24;13053:11;13041:7;:11;;:24;;;;:::i;:::-;13017:48;;13081:8;13092:9;13081:20;;13076:679;13107:5;;;;;;;;;;;13103:9;;:1;:9;;;13076:679;;;13216:5;:12;13226:1;13222;:5;13216:12;;;;;;;;;;;;;;;:22;;;13206:7;:32;13202:542;;;13329:5;;13202:542;13382:39;13409:11;13382:5;:12;13392:1;13388;:5;13382:12;;;;;;;;;;;;;;;:22;;;:26;;:39;;;;:::i;:::-;13375:46;;13451:116;13524:24;13542:5;13524:13;:17;;:24;;;;:::i;:::-;13451:46;13492:4;13451:36;13462:5;:8;13468:1;13462:8;;;;;;;;;;;;;;;:24;;;;;;;;;;;;13451:36;;:6;:10;;:36;;;;:::i;:::-;:40;;:46;;;;:::i;:::-;:50;;:116;;;;:::i;:::-;13440:127;;13635:8;13625:18;;;;13676:5;:12;13686:1;13682;:5;13676:12;;;;;;;;;;;;;;;:22;;;13662:36;;13717:11;;;;;;;13114:3;;;;;;;13076:679;;;;13785:7;13771:11;:21;13767:387;;;13879:24;13891:11;13879:7;:11;;:24;;;;:::i;:::-;13872:31;;13931:138;14044:24;14062:5;14044:13;:17;;:24;;;;:::i;:::-;13931:90;13988:5;:16;13994:9;13988:16;;;;;;;;;;;;;;;:32;;;;;;;;;;;;13931:90;;:34;13958:6;13931:4;:26;;:34;;;;:::i;:::-;:56;;:90;;;;:::i;:::-;:112;;:138;;;;:::i;:::-;13920:149;;14134:8;14124:18;;;;13767:387;14174:6;14166:15;;;;;;;;;12495:1694;;;;:::o;14197:132::-;14261:4;14285:36;14292:5;14307:4;14314:6;14285;:36::i;:::-;14278:43;;14197:132;;;;:::o;1101:181::-;1159:7;1179:9;1195:1;1191;:5;1179:17;;1220:1;1215;:6;;1207:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1273:1;1266:8;;;1101:181;;;;:::o;2478:98::-;2523:15;2558:10;2551:17;;2478:98;:::o;9183:751::-;9246:4;9268:20;9275:4;9281:6;9268;:20::i;:::-;9263:66;;9312:5;9305:12;;;;9263:66;9359:4;9341:9;:15;9351:4;9341:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;9374;9421:17;;9411:6;:27;9407:84;;9475:4;9455:24;;9407:84;9520:230;;;;;;;;9543:6;9520:230;;;;9564:15;9520:230;;;;9594:46;9615:23;9632:5;9615:12;;:16;;:23;;;;:::i;:::-;9594:15;:19;;:46;;;;:::i;:::-;9520:230;;;;9682:5;;;;;;;;;;;9520:230;;;;;;9702:5;9520:230;;;;;;9722:17;9520:230;;;;;9503:8;:14;9512:4;9503:14;;;;;;;;;;;;;;;:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9789:4;9768:34;;9775:12;;;;;;;;;;;9768:34;;;9795:6;9768:34;;;;;;;;;;;;;;;;;;9831:25;9849:6;9831:13;;:17;;:25;;;;:::i;:::-;9815:13;:41;;;;9881:23;9897:6;9881:11;;:15;;:23;;;;:::i;:::-;9867:11;:37;;;;9922:4;9915:11;;;9183:751;;;;;:::o;11536:571::-;11595:4;11612:14;11629:8;:14;11638:4;11629:14;;;;;;;;;;;;;;;:28;;;11612:45;;11684:25;11702:6;11684:13;;:17;;:25;;;;:::i;:::-;11668:13;:41;;;;11742:4;11720:8;:14;11729:4;11720:14;;;;;;;;;;;;;;;:19;;;:26;;;;;;;;;;;;;;;;;;11775:5;11757:9;:15;11767:4;11757:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11832:8;:14;11841:4;11832:14;;;;;;;;;;;;;;;:23;;;;;;;;;;;;11828:87;;;11898:5;11872:8;:14;11881:4;11872:14;;;;;;;;;;;;;;;:23;;;:31;;;;;;;;;;;;;;;;;;11828:87;11927:18;11948:24;11959:4;11965:6;11948:10;:24::i;:::-;11927:45;;11991:13;11983:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12059:4;12037:38;;12045:12;;;;;;;;;;;12037:38;;;12065:6;12073:1;12037:38;;;;;;;;;;;;;;;;;;;;;;;;12095:4;12088:11;;;;11536:571;;;:::o;3724:266::-;3832:1;3812:22;;:8;:22;;;;3790:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3945:8;3916:38;;3937:6;;;;;;;;;;;3916:38;;;;;;;;;;;;3974:8;3965:6;;:17;;;;;;;;;;;;;;;;;;3724:266;:::o;1290:184::-;1348:7;1381:1;1376;:6;;1368:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1428:9;1444:1;1440;:5;1428:17;;1465:1;1458:8;;;1290:184;;;;:::o;14628:180::-;14693:4;14734:12;;;;;;;;;;;14710:14;;:37;;;;;;;;;;;;;;;;;;14765:14;;;;;;;;;;;:23;;;14789:2;14793:6;14765:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14765:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14765:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14765:35:0;;;;;;;;;;;;;;;;14758:42;;14628:180;;;;:::o;1482:250::-;1540:7;1569:1;1564;:6;1560:47;;;1594:1;1587:8;;;;1560:47;1619:9;1635:1;1631;:5;1619:17;;1664:1;1659;1655;:5;;;;;;:10;1647:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1723:1;1716:8;;;1482:250;;;;;:::o;1740:331::-;1798:7;1897:1;1893;:5;1885:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1940:9;1956:1;1952;:5;;;;;;1940:17;;2062:1;2055:8;;;1740:331;;;;:::o;14337:283::-;14486:4;14460:7;14469:6;14975:12;;;;;;;;;;;14951:14;;:37;;;;;;;;;;;;;;;;;;14999:20;15022:14;;;;;;;;;;;:24;;;15047:7;15064:4;15022:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15022:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15022:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15022:48:0;;;;;;;;;;;;;;;;14999:71;;15099:12;15089:6;:22;;15081:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14527:12;;;;;;;;;;;14503:14;;:37;;;;;;;;;;;;;;;;;;14558:14;;;;;;;;;;;:27;;;14586:7;14595:8;14605:6;14558:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14558:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14558:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14558:54:0;;;;;;;;;;;;;;;;14551:61;;14337:283;;;;;;;;:::o

Swarm Source

bzzr://a3cfe244341305d1d3149a0cc534384e6d6d528b8612f4977d32d69a63f69c37

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

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.