ETH Price: $1,581.87 (-0.08%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x3cf1de883f8733cedbc40b26e6f30331254cd5d0af29039f6592de5cab92426e Buy Token(pending)2025-03-23 1:22:3726 days ago1742692957IN
0x0165E89F...C3F44D93E
0.003 ETH(Pending)(Pending)
Claim Tokens222716892025-04-15 3:25:593 days ago1744687559IN
0x0165E89F...C3F44D93E
0 ETH0.000014440.50715156
Claim Tokens222716852025-04-15 3:25:113 days ago1744687511IN
0x0165E89F...C3F44D93E
0 ETH0.000036690.42959575
Claim Tokens222480272025-04-11 20:15:476 days ago1744402547IN
0x0165E89F...C3F44D93E
0 ETH0.000128281.50184598
Claim Tokens221108272025-03-23 16:35:4725 days ago1742747747IN
0x0165E89F...C3F44D93E
0 ETH0.000072010.84315749
Claim Tokens219636402025-03-03 3:22:1146 days ago1740972131IN
0x0165E89F...C3F44D93E
0 ETH0.000108571.27111937
Claim Tokens219409312025-02-27 23:22:1149 days ago1740698531IN
0x0165E89F...C3F44D93E
0 ETH0.000094261.1035688
Claim Tokens219386532025-02-27 15:45:2350 days ago1740671123IN
0x0165E89F...C3F44D93E
0 ETH0.000167631.96256731
Claim Tokens218379522025-02-13 13:47:2364 days ago1739454443IN
0x0165E89F...C3F44D93E
0 ETH0.000167481.96078511
Claim Tokens217785852025-02-05 6:44:4772 days ago1738737887IN
0x0165E89F...C3F44D93E
0 ETH0.000182752.13955971
Claim Tokens217702082025-02-04 2:37:4773 days ago1738636667IN
0x0165E89F...C3F44D93E
0 ETH0.000323953.79270842
Claim Tokens217156882025-01-27 11:53:3581 days ago1737978815IN
0x0165E89F...C3F44D93E
0 ETH0.000439345.14360018
Claim Tokens217096802025-01-26 15:47:1182 days ago1737906431IN
0x0165E89F...C3F44D93E
0 ETH0.000710238.31495771
Claim Tokens216958332025-01-24 17:23:4783 days ago1737739427IN
0x0165E89F...C3F44D93E
0 ETH0.0012465514.59391963
Claim Tokens216551682025-01-19 1:10:4789 days ago1737249047IN
0x0165E89F...C3F44D93E
0 ETH0.0014165816.58454893
Claim Tokens216545252025-01-18 23:01:3589 days ago1737241295IN
0x0165E89F...C3F44D93E
0 ETH0.000827529.68813823
Claim Tokens216471792025-01-17 22:24:1190 days ago1737152651IN
0x0165E89F...C3F44D93E
0 ETH0.0008772210.2700305
Claim Tokens216258972025-01-14 23:06:3593 days ago1736895995IN
0x0165E89F...C3F44D93E
0 ETH0.000338313.96082262
Claim Tokens216226892025-01-14 12:20:5994 days ago1736857259IN
0x0165E89F...C3F44D93E
0 ETH0.00074458.71628001
Claim Tokens215801132025-01-08 13:40:11100 days ago1736343611IN
0x0165E89F...C3F44D93E
0 ETH0.0010252812.00342692
Claim Tokens215743372025-01-07 18:18:47100 days ago1736273927IN
0x0165E89F...C3F44D93E
0 ETH0.0009315910.90654397
Claim Tokens215383062025-01-02 17:33:11105 days ago1735839191IN
0x0165E89F...C3F44D93E
0 ETH0.0012601414.75299824
Claim Tokens214659032024-12-23 14:52:59116 days ago1734965579IN
0x0165E89F...C3F44D93E
0 ETH0.0022055825.82169685
Claim Tokens214464272024-12-20 21:29:59118 days ago1734730199IN
0x0165E89F...C3F44D93E
0 ETH0.0010937212.80473417
Claim Tokens214158512024-12-16 15:03:11123 days ago1734361391IN
0x0165E89F...C3F44D93E
0 ETH0.0021556525.23715088
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer202327372024-07-04 11:05:23288 days ago1720091123
0x0165E89F...C3F44D93E
0.001 ETH
Transfer202320522024-07-04 8:47:35288 days ago1720082855
0x0165E89F...C3F44D93E
0.034 ETH
Transfer202318612024-07-04 8:09:23288 days ago1720080563
0x0165E89F...C3F44D93E
0.024 ETH
Transfer202315432024-07-04 7:05:11288 days ago1720076711
0x0165E89F...C3F44D93E
0.005 ETH
Transfer202314622024-07-04 6:48:59288 days ago1720075739
0x0165E89F...C3F44D93E
0.008 ETH
Transfer202313392024-07-04 6:24:23288 days ago1720074263
0x0165E89F...C3F44D93E
0.0327 ETH
Transfer202302612024-07-04 2:47:35288 days ago1720061255
0x0165E89F...C3F44D93E
0.01 ETH
Transfer202298412024-07-04 1:23:11288 days ago1720056191
0x0165E89F...C3F44D93E
0.14 ETH
Transfer202293472024-07-03 23:44:11288 days ago1720050251
0x0165E89F...C3F44D93E
0.008 ETH
Transfer202288072024-07-03 21:55:47288 days ago1720043747
0x0165E89F...C3F44D93E
0.73 ETH
Transfer202286602024-07-03 21:25:59288 days ago1720041959
0x0165E89F...C3F44D93E
0.02 ETH
Transfer202274972024-07-03 17:32:59288 days ago1720027979
0x0165E89F...C3F44D93E
0.15 ETH
Transfer202268142024-07-03 15:15:47289 days ago1720019747
0x0165E89F...C3F44D93E
0.002 ETH
Transfer202263252024-07-03 13:37:35289 days ago1720013855
0x0165E89F...C3F44D93E
0.91 ETH
Transfer202258942024-07-03 12:10:35289 days ago1720008635
0x0165E89F...C3F44D93E
0.1 ETH
Transfer202251002024-07-03 9:30:35289 days ago1719999035
0x0165E89F...C3F44D93E
0.034 ETH
Transfer202249532024-07-03 9:00:47289 days ago1719997247
0x0165E89F...C3F44D93E
0.1 ETH
Transfer202239572024-07-03 5:40:59289 days ago1719985259
0x0165E89F...C3F44D93E
0.1 ETH
Transfer202237282024-07-03 4:54:59289 days ago1719982499
0x0165E89F...C3F44D93E
0.00393457 ETH
Transfer202229052024-07-03 2:09:23289 days ago1719972563
0x0165E89F...C3F44D93E
0.060843 ETH
Transfer202226132024-07-03 1:10:23289 days ago1719969023
0x0165E89F...C3F44D93E
0.113 ETH
Transfer202225972024-07-03 1:07:11289 days ago1719968831
0x0165E89F...C3F44D93E
0.2 ETH
Transfer202213762024-07-02 21:01:11289 days ago1719954071
0x0165E89F...C3F44D93E
0.05 ETH
Transfer202212802024-07-02 20:41:59289 days ago1719952919
0x0165E89F...C3F44D93E
0.025 ETH
Transfer202212772024-07-02 20:41:23289 days ago1719952883
0x0165E89F...C3F44D93E
0.03 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x04A2C10E...Ae3Edb3c5
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Presale

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-27
*/

/**
 *Submitted for verification at Etherscan.io on 2024-02-24
*/

//SPDX-License-Identifier: MIT Licensed
pragma solidity ^0.8.17;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor(address _newOwner) {
        _transferOwnership(_newOwner);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

    function approve(address spender, uint256 value) external;

    function transfer(address to, uint256 value) external;

    function transferFrom(address from, address to, uint256 value) external;

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

interface AggregatorV3Interface {
    function decimals() external view returns (uint8);

    function description() external view returns (string memory);

    function version() external view returns (uint256);

    function getRoundData(
        uint80 _roundId
    )
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );

    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

contract Presale is Ownable {
    IERC20 public mainToken;
    IERC20 public USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7);

    AggregatorV3Interface public priceFeed;

    struct Phase {
        uint256 tokensToSell;
        uint256 totalSoldTokens;
        uint256 tokenPerUsdPrice;
    }
    mapping(uint256 => Phase) public phases;

    uint256 public totalStages;
    uint256 public currentStage;
    uint256 public totalUsers;
    uint256 public soldToken;
    uint256 public amountRaised;
    uint256 public amountRaisedUSDT;
    address payable public fundReceiver;
    uint256 tokenDecimals;
    uint256[] tokensToSell;
    uint256[] tokenPerUsdPrice;

    bool public presaleStatus;
    bool public isPresaleEnded;

    address[] public UsersAddresses;

    mapping(address => bool) public oldBuyer;
    struct User {
        uint256 native_balance;
        uint256 usdt_balance;
        uint256 token_balance;
        uint256 claimed_tokens;
    }

    mapping(address => User) public users;

    struct Transaction {
        uint256 trxAt;
        uint256 presaleId;
        uint256 buyAmount;
        uint256 tokenAmount;
        bool isEther;
    }

    struct TopBuyer {
        address userAddress;
        uint256 tokenAmount;
    }
    TopBuyer[3] public topBuyersData;
    Transaction[] public transactionsHistory;

    event BuyToken(address indexed _user, uint256 indexed _amount);
    event ClaimToken(address indexed _user, uint256 indexed _amount);
    event UpdatePrice(uint256 _oldPrice, uint256 _newPrice);

    constructor(IERC20 _token, address _fundReceiver) Ownable(msg.sender) {
        mainToken = _token;
        fundReceiver = payable(_fundReceiver);
        priceFeed = AggregatorV3Interface(
            0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
        );
        tokenDecimals = mainToken.decimals();
        tokensToSell = [
            250_000_000 * 10 ** tokenDecimals,
            250_000_000 * 10 ** tokenDecimals,
            250_000_000 * 10 ** tokenDecimals,
            250_000_000 * 10 ** tokenDecimals,
            250_000_000 * 10 ** tokenDecimals,
            250_000_000 * 10 ** tokenDecimals
        ];
        tokenPerUsdPrice = [
            2500 * (10 ** tokenDecimals),
            2000 * (10 ** tokenDecimals),
            1666 * (10 ** tokenDecimals),
            1428 * (10 ** tokenDecimals),
            1250 * (10 ** tokenDecimals),
            1111 * (10 ** tokenDecimals)
        ];
        for (uint256 i = 0; i < tokensToSell.length; i++) {
            phases[i].tokensToSell = tokensToSell[i];
            phases[i].tokenPerUsdPrice = tokenPerUsdPrice[i];
        }
        totalStages = tokensToSell.length;
    }

    // to get real time price of BNB
    function getLatestPrice() public view returns (uint256) {
        (, int256 price, , , ) = priceFeed.latestRoundData();
        return uint256(price);
    }

    // to buy token during preSale time with BNB => for web3 use

    function buyToken() public payable {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!oldBuyer[msg.sender]) {
            totalUsers += 1;
            UsersAddresses.push(msg.sender);
        }
        fundReceiver.transfer(msg.value);

        uint256 numberOfTokens;
        numberOfTokens = nativeToToken(msg.value, currentStage);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + (numberOfTokens);
        amountRaised = amountRaised + BnbToUsd(msg.value);

        users[msg.sender].native_balance =
            users[msg.sender].native_balance +
            (msg.value);
        users[msg.sender].token_balance =
            users[msg.sender].token_balance +
            (numberOfTokens);
        phases[currentStage].totalSoldTokens += numberOfTokens;
        oldBuyer[msg.sender] = true;

        updateTopBuyerData(msg.sender, users[msg.sender].token_balance);
        updateTransactionHistory(currentStage, msg.value, numberOfTokens, true);
    }

    // to buy token during preSale time with USDT => for web3 use
    function buyTokenUSDT(uint256 amount) public {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!oldBuyer[msg.sender]) {
            totalUsers += 1;
            UsersAddresses.push(msg.sender);
        }
        USDT.transferFrom(msg.sender, fundReceiver, amount);

        uint256 numberOfTokens;
        numberOfTokens = usdtToToken(amount, currentStage);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + numberOfTokens;
        amountRaisedUSDT = amountRaisedUSDT + amount;

        users[msg.sender].usdt_balance += amount;

        users[msg.sender].token_balance =
            users[msg.sender].token_balance +
            numberOfTokens;
        phases[currentStage].totalSoldTokens += numberOfTokens;
        oldBuyer[msg.sender] = true;

        updateTopBuyerData(msg.sender, users[msg.sender].token_balance);
        updateTransactionHistory(currentStage, amount, numberOfTokens, false);
    }

    function updateTopBuyerData(address _user, uint256 _tokenAmount) internal {
        // Check if the user is already in the top buyers
        for (uint256 i = 0; i < topBuyersData.length; i++) {
            if (_user == topBuyersData[i].userAddress) {
                topBuyersData[i].tokenAmount = _tokenAmount;
                return;
            }
        }

        for (uint256 i = 0; i < topBuyersData.length; i++) {
            if (_tokenAmount > topBuyersData[i].tokenAmount) {
                for (uint256 j = topBuyersData.length - 1; j > i; j--) {
                    topBuyersData[j] = topBuyersData[j - 1];
                }

                topBuyersData[i] = TopBuyer(_user, _tokenAmount);
                break;
            }
        }
    }

    function updateTransactionHistory(
        uint256 _presaleId,
        uint256 _buyAmount,
        uint256 _noOfTokens,
        bool _isEthTrx
    ) internal {
        Transaction memory newTransaction = Transaction(
            block.timestamp,
            _presaleId,
            _buyAmount,
            _noOfTokens,
            _isEthTrx
        );
        transactionsHistory.push(newTransaction);
        if (transactionsHistory.length > 20) {
            for (uint256 i = 0; i < transactionsHistory.length - 1; i++) {
                transactionsHistory[i] = transactionsHistory[i + 1];
            }
            transactionsHistory.pop();
        }
    }

    function claimTokens() external {
        require(isPresaleEnded, "Presale has not ended yet");
        User storage user = users[msg.sender];
        require(user.token_balance > 0, "No tokens purchased");
        uint256 claimableTokens = user.token_balance - user.claimed_tokens;
        require(claimableTokens > 0, "No tokens to claim");
        user.claimed_tokens += claimableTokens;
        mainToken.transfer(msg.sender, claimableTokens);
        emit ClaimToken(msg.sender, claimableTokens);
    }

    function getPhaseDetail(
        uint256 phaseInd
    )
        external
        view
        returns (uint256 tokenToSell, uint256 soldTokens, uint256 priceUsd)
    {
        Phase memory phase = phases[phaseInd];
        return (
            phase.tokensToSell,
            phase.totalSoldTokens,
            phase.tokenPerUsdPrice
        );
    }

    function setPresaleStatus(bool _status) external onlyOwner {
        presaleStatus = _status;
    }

    function endPresale() external onlyOwner {
        isPresaleEnded = true;
    }

    // to check number of token for given BNB
    function nativeToToken(
        uint256 _amount,
        uint256 phaseId
    ) public view returns (uint256) {
        uint256 bnbToUsd = (_amount * (getLatestPrice())) / (1 ether);
        uint256 numberOfTokens = (bnbToUsd * phases[phaseId].tokenPerUsdPrice) /
            (1e8);
        return numberOfTokens;
    }

    // BNB to USD
    function BnbToUsd(uint256 _amount) public view returns (uint256) {
        uint256 bnbToUsd = (_amount * (getLatestPrice())) / (1e8);
        return bnbToUsd;
    }

    // to check number of token for given usdt
    function usdtToToken(
        uint256 _amount,
        uint256 phaseId
    ) public view returns (uint256) {
        uint256 numberOfTokens = (_amount * phases[phaseId].tokenPerUsdPrice) /
            (10 ** USDT.decimals());
        return numberOfTokens;
    }

    function updateInfos(
        uint256 _sold,
        uint256 _raised,
        uint256 _raisedInUsdt
    ) external onlyOwner {
        soldToken = _sold;
        amountRaised = _raised;
        amountRaisedUSDT = _raisedInUsdt;
    }

    // change tokens
    function updateToken(address _token) external onlyOwner {
        mainToken = IERC20(_token);
    }

    function whitelistEthAddresses(
        address[] memory _addresses,
        uint256[] memory _tokenAmount
    ) external onlyOwner {
        require(
            _addresses.length == _tokenAmount.length,
            "Addresses and amounts must be equal"
        );

        for (uint256 i = 0; i < _addresses.length; i++) {
            users[_addresses[i]].token_balance += _tokenAmount[i];
        }
    }

    //change tokens for buy
    function updateStableTokens(IERC20 _USDT) external onlyOwner {
        USDT = IERC20(_USDT);
    }

    // to withdraw funds for liquidity
    function initiateTransfer(uint256 _value) external onlyOwner {
        fundReceiver.transfer(_value);
    }

    function totalUsersCount() external view returns (uint256) {
        return UsersAddresses.length;
    }

    // to withdraw funds for liquidity
    function changeFundReciever(address _addr) external onlyOwner {
        fundReceiver = payable(_addr);
    }

    // to withdraw funds for liquidity
    function updatePriceFeed(
        AggregatorV3Interface _priceFeed
    ) external onlyOwner {
        priceFeed = _priceFeed;
    }

    // funtion is used to change the stage of presale
    function setCurrentPhase(uint256 _stageNum) public onlyOwner {
        currentStage = _stageNum;
    }

    // to withdraw out tokens
    function transferStuckTokens(
        IERC20 token,
        uint256 _value
    ) external onlyOwner {
        token.transfer(msg.sender, _value);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"address","name":"_fundReceiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BuyToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_oldPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"UpdatePrice","type":"event"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BnbToUsd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"UsersAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaisedUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyTokenUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"changeFundReciever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseInd","type":"uint256"}],"name":"getPhaseDetail","outputs":[{"internalType":"uint256","name":"tokenToSell","type":"uint256"},{"internalType":"uint256","name":"soldTokens","type":"uint256"},{"internalType":"uint256","name":"priceUsd","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"initiateTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isPresaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"nativeToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oldBuyer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phases","outputs":[{"internalType":"uint256","name":"tokensToSell","type":"uint256"},{"internalType":"uint256","name":"totalSoldTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPerUsdPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stageNum","type":"uint256"}],"name":"setCurrentPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"topBuyersData","outputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUsersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactionsHistory","outputs":[{"internalType":"uint256","name":"trxAt","type":"uint256"},{"internalType":"uint256","name":"presaleId","type":"uint256"},{"internalType":"uint256","name":"buyAmount","type":"uint256"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"bool","name":"isEther","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sold","type":"uint256"},{"internalType":"uint256","name":"_raised","type":"uint256"},{"internalType":"uint256","name":"_raisedInUsdt","type":"uint256"}],"name":"updateInfos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract AggregatorV3Interface","name":"_priceFeed","type":"address"}],"name":"updatePriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_USDT","type":"address"}],"name":"updateStableTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"updateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"usdtToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"native_balance","type":"uint256"},{"internalType":"uint256","name":"usdt_balance","type":"uint256"},{"internalType":"uint256","name":"token_balance","type":"uint256"},{"internalType":"uint256","name":"claimed_tokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_tokenAmount","type":"uint256[]"}],"name":"whitelistEthAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x6080604052600436106102465760003560e01c80638895283f11610139578063c54e44eb116100b6578063dec11f6e1161007a578063dec11f6e14610843578063e00e061214610880578063e9238daf146108bd578063f2fde38b146108fa578063f86a352914610923578063fb4aa0a11461094e57610246565b8063c54e44eb1461074a578063c63368be14610775578063cb33365d1461079e578063d0e64b48146107db578063db203b7f1461081857610246565b8063a4821719116100fd578063a482171914610681578063a87430ba1461068b578063acfb2355146106cb578063b5e75e1c146106f6578063bff1f9e11461071f57610246565b80638895283f146105c25780638da5cb5b146105eb5780638e15f4731461061657806395877f7814610641578063a43be57b1461066a57610246565b80635bf5d54c116101c7578063741bef1a1161018b578063741bef1a146104ef5780637ad3def21461051a5780637b3e5e7b146105435780637d3e1ee41461056e5780637decf27f1461059757610246565b80635bf5d54c146104305780635cc8ca461461045b57806361a31e00146104845780636769d1f9146104ad578063715018a6146104d857610246565b80633fc15f151161020e5780633fc15f151461035c578063400e5fbf14610387578063405fb944146103c557806348c54b9d146103f057806353a29ad21461040757610246565b806322035d561461024b5780632d2fbfd4146102745780632e37eef6146102b357806330013a32146102f25780633cfb952014610333575b600080fd5b34801561025757600080fd5b50610272600480360381019061026d9190612bd8565b610979565b005b34801561028057600080fd5b5061029b60048036038101906102969190612c50565b610aea565b6040516102aa93929190612c8c565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d59190612c50565b610b4b565b6040516102e993929190612c8c565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612c50565b610b75565b60405161032a959493929190612cde565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612d6f565b610bc8565b005b34801561036857600080fd5b50610371610cb5565b60405161037e9190612e0e565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190612c50565b610cdb565b6040516103bc929190612e38565b60405180910390f35b3480156103d157600080fd5b506103da610d25565b6040516103e79190612e61565b60405180910390f35b3480156103fc57600080fd5b50610405610d2b565b005b34801561041357600080fd5b5061042e60048036038101906104299190612e7c565b610f51565b005b34801561043c57600080fd5b50610445611011565b6040516104529190612e61565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190612ea9565b611017565b005b34801561049057600080fd5b506104ab60048036038101906104a69190612c50565b6110ad565b005b3480156104b957600080fd5b506104c2611195565b6040516104cf9190612e61565b60405180910390f35b3480156104e457600080fd5b506104ed61119b565b005b3480156104fb57600080fd5b50610504611223565b6040516105119190612f1d565b60405180910390f35b34801561052657600080fd5b50610541600480360381019061053c9190612e7c565b611249565b005b34801561054f57600080fd5b50610558611309565b6040516105659190612e61565b60405180910390f35b34801561057a57600080fd5b5061059560048036038101906105909190612c50565b61130f565b005b3480156105a357600080fd5b506105ac611395565b6040516105b99190612f38565b60405180910390f35b3480156105ce57600080fd5b506105e960048036038101906105e49190612f7f565b6113a8565b005b3480156105f757600080fd5b50610600611441565b60405161060d9190612fac565b60405180910390f35b34801561062257600080fd5b5061062b61146a565b6040516106389190612e61565b60405180910390f35b34801561064d57600080fd5b5061066860048036038101906106639190613005565b61150b565b005b34801561067657600080fd5b5061067f6115cb565b005b610689611664565b005b34801561069757600080fd5b506106b260048036038101906106ad9190612e7c565b611b06565b6040516106c29493929190613032565b60405180910390f35b3480156106d757600080fd5b506106e0611b36565b6040516106ed9190612f38565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190612c50565b611b49565b005b34801561072b57600080fd5b50610734611ff3565b6040516107419190612e61565b60405180910390f35b34801561075657600080fd5b5061075f611ff9565b60405161076c9190612e0e565b60405180910390f35b34801561078157600080fd5b5061079c60048036038101906107979190613077565b61201f565b005b3480156107aa57600080fd5b506107c560048036038101906107c091906130a4565b6120df565b6040516107d29190612e61565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd9190612c50565b61214a565b60405161080f9190612e61565b60405180910390f35b34801561082457600080fd5b5061082d61217a565b60405161083a9190612e61565b60405180910390f35b34801561084f57600080fd5b5061086a60048036038101906108659190612e7c565b612187565b6040516108779190612f38565b60405180910390f35b34801561088c57600080fd5b506108a760048036038101906108a29190612c50565b6121a7565b6040516108b49190612fac565b60405180910390f35b3480156108c957600080fd5b506108e460048036038101906108df91906130a4565b6121e6565b6040516108f19190612e61565b60405180910390f35b34801561090657600080fd5b50610921600480360381019061091c9190612e7c565b6122be565b005b34801561092f57600080fd5b506109386123b5565b6040516109459190612e61565b60405180910390f35b34801561095a57600080fd5b506109636123bb565b6040516109709190613105565b60405180910390f35b6109816123e1565b73ffffffffffffffffffffffffffffffffffffffff1661099f611441565b73ffffffffffffffffffffffffffffffffffffffff16146109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec9061317d565b60405180910390fd5b8051825114610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a309061320f565b60405180910390fd5b60005b8251811015610ae557818181518110610a5857610a5761322f565b5b602002602001015160126000858481518110610a7757610a7661322f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254610acb919061328d565b925050819055508080610add906132c1565b915050610a3c565b505050565b6000806000806004600086815260200190815260200160002060405180606001604052908160008201548152602001600182015481526020016002820154815250509050806000015181602001518260400151935093509350509193909250565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60198181548110610b8557600080fd5b90600052602060002090600502016000915090508060000154908060010154908060020154908060030154908060040160009054906101000a900460ff16905085565b610bd06123e1565b73ffffffffffffffffffffffffffffffffffffffff16610bee611441565b73ffffffffffffffffffffffffffffffffffffffff1614610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b9061317d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c7f929190612e38565b600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60138160038110610ceb57600080fd5b600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b600a5481565b600f60019054906101000a900460ff16610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190613355565b60405180910390fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906133c1565b60405180910390fd5b600081600301548260020154610e1a91906133e1565b905060008111610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5690613461565b60405180910390fd5b80826003016000828254610e73919061328d565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610ed7929190612e38565b600060405180830381600087803b158015610ef157600080fd5b505af1158015610f05573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b610f596123e1565b73ffffffffffffffffffffffffffffffffffffffff16610f77611441565b73ffffffffffffffffffffffffffffffffffffffff1614610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc49061317d565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b61101f6123e1565b73ffffffffffffffffffffffffffffffffffffffff1661103d611441565b73ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108a9061317d565b60405180910390fd5b826008819055508160098190555080600a81905550505050565b6110b56123e1565b73ffffffffffffffffffffffffffffffffffffffff166110d3611441565b73ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111209061317d565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611191573d6000803e3d6000fd5b5050565b60085481565b6111a36123e1565b73ffffffffffffffffffffffffffffffffffffffff166111c1611441565b73ffffffffffffffffffffffffffffffffffffffff1614611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e9061317d565b60405180910390fd5b61122160006123e9565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112516123e1565b73ffffffffffffffffffffffffffffffffffffffff1661126f611441565b73ffffffffffffffffffffffffffffffffffffffff16146112c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bc9061317d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6113176123e1565b73ffffffffffffffffffffffffffffffffffffffff16611335611441565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113829061317d565b60405180910390fd5b8060068190555050565b600f60019054906101000a900460ff1681565b6113b06123e1565b73ffffffffffffffffffffffffffffffffffffffff166113ce611441565b73ffffffffffffffffffffffffffffffffffffffff1614611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141b9061317d565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156114da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fe919061350e565b5050509150508091505090565b6115136123e1565b73ffffffffffffffffffffffffffffffffffffffff16611531611441565b73ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e9061317d565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115d36123e1565b73ffffffffffffffffffffffffffffffffffffffff166115f1611441565b73ffffffffffffffffffffffffffffffffffffffff1614611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e9061317d565b60405180910390fd5b6001600f60016101000a81548160ff021916908315150217905550565b600f60019054906101000a900460ff16156116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab906135d5565b60405180910390fd5b600f60009054906101000a900460ff16611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90613667565b60405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117d257600160076000828254611767919061328d565b925050819055506010339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561183a573d6000803e3d6000fd5b506000611849346006546120df565b9050600460006006548152602001908152602001600020600001548160046000600654815260200190815260200160002060010154611888919061328d565b11156118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c0906136d3565b60405180910390fd5b806008546118d7919061328d565b6008819055506118e63461214a565b6009546118f3919061328d565b60098190555034601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611947919061328d565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546119db919061328d565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206001016000828254611a49919061328d565b925050819055506001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611af433601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546124ad565b611b0360065434836001612724565b50565b60126020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600f60009054906101000a900460ff1681565b600f60019054906101000a900460ff1615611b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b90906135d5565b60405180910390fd5b600f60009054906101000a900460ff16611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf90613667565b60405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cb757600160076000828254611c4c919061328d565b925050819055506010339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611d3893929190613714565b600060405180830381600087803b158015611d5257600080fd5b505af1158015611d66573d6000803e3d6000fd5b505050506000611d78826006546121e6565b9050600460006006548152602001908152602001600020600001548160046000600654815260200190815260200160002060010154611db7919061328d565b1115611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def906136d3565b60405180910390fd5b80600854611e06919061328d565b60088190555081600a54611e1a919061328d565b600a8190555081601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611e72919061328d565b9250508190555080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611ec7919061328d565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206001016000828254611f35919061328d565b925050819055506001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611fe033601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546124ad565b611fef60065483836000612724565b5050565b60075481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120276123e1565b73ffffffffffffffffffffffffffffffffffffffff16612045611441565b73ffffffffffffffffffffffffffffffffffffffff161461209b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120929061317d565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080670de0b6b3a76400006120f361146a565b856120fe919061374b565b61210891906137bc565b905060006305f5e100600460008681526020019081526020016000206002015483612133919061374b565b61213d91906137bc565b9050809250505092915050565b6000806305f5e10061215a61146a565b84612165919061374b565b61216f91906137bc565b905080915050919050565b6000601080549050905090565b60116020528060005260406000206000915054906101000a900460ff1681565b601081815481106121b757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227a9190613826565b600a6122869190613986565b6004600085815260200190815260200160002060020154856122a8919061374b565b6122b291906137bc565b90508091505092915050565b6122c66123e1565b73ffffffffffffffffffffffffffffffffffffffff166122e4611441565b73ffffffffffffffffffffffffffffffffffffffff161461233a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123319061317d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a090613a43565b60405180910390fd5b6123b2816123e9565b50565b60055481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005b600381101561256057601381600381106124cd576124cc61322f565b5b6002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361254d57816013826003811061253c5761253b61322f565b5b600202016001018190555050612720565b8080612558906132c1565b9150506124b0565b5060005b600381101561271e57601381600381106125815761258061322f565b5b600202016001015482111561270b576000600160036125a091906133e1565b90505b8181111561266e5760136001826125ba91906133e1565b600381106125cb576125ca61322f565b5b60020201601382600381106125e3576125e261322f565b5b600202016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155905050808061266690613a63565b9150506125a3565b5060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250601382600381106126ae576126ad61322f565b5b6002020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015590505061271e565b8080612716906132c1565b915050612564565b505b5050565b60006040518060a00160405280428152602001868152602001858152602001848152602001831515815250905060198190806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555050506014601980549050111561290d5760005b60016019805490506127ea91906133e1565b8110156128ac576019600182612800919061328d565b815481106128115761281061322f565b5b9060005260206000209060050201601982815481106128335761283261322f565b5b9060005260206000209060050201600082015481600001556001820154816001015560028201548160020155600382015481600301556004820160009054906101000a900460ff168160040160006101000a81548160ff02191690831515021790555090505080806128a4906132c1565b9150506127d8565b5060198054806128bf576128be613a8c565b5b60019003818190600052602060002090600502016000808201600090556001820160009055600282016000905560038201600090556004820160006101000a81549060ff0219169055505090555b5050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129768261292d565b810181811067ffffffffffffffff821117156129955761299461293e565b5b80604052505050565b60006129a8612914565b90506129b4828261296d565b919050565b600067ffffffffffffffff8211156129d4576129d361293e565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a15826129ea565b9050919050565b612a2581612a0a565b8114612a3057600080fd5b50565b600081359050612a4281612a1c565b92915050565b6000612a5b612a56846129b9565b61299e565b90508083825260208201905060208402830185811115612a7e57612a7d6129e5565b5b835b81811015612aa75780612a938882612a33565b845260208401935050602081019050612a80565b5050509392505050565b600082601f830112612ac657612ac5612928565b5b8135612ad6848260208601612a48565b91505092915050565b600067ffffffffffffffff821115612afa57612af961293e565b5b602082029050602081019050919050565b6000819050919050565b612b1e81612b0b565b8114612b2957600080fd5b50565b600081359050612b3b81612b15565b92915050565b6000612b54612b4f84612adf565b61299e565b90508083825260208201905060208402830185811115612b7757612b766129e5565b5b835b81811015612ba05780612b8c8882612b2c565b845260208401935050602081019050612b79565b5050509392505050565b600082601f830112612bbf57612bbe612928565b5b8135612bcf848260208601612b41565b91505092915050565b60008060408385031215612bef57612bee61291e565b5b600083013567ffffffffffffffff811115612c0d57612c0c612923565b5b612c1985828601612ab1565b925050602083013567ffffffffffffffff811115612c3a57612c39612923565b5b612c4685828601612baa565b9150509250929050565b600060208284031215612c6657612c6561291e565b5b6000612c7484828501612b2c565b91505092915050565b612c8681612b0b565b82525050565b6000606082019050612ca16000830186612c7d565b612cae6020830185612c7d565b612cbb6040830184612c7d565b949350505050565b60008115159050919050565b612cd881612cc3565b82525050565b600060a082019050612cf36000830188612c7d565b612d006020830187612c7d565b612d0d6040830186612c7d565b612d1a6060830185612c7d565b612d276080830184612ccf565b9695505050505050565b6000612d3c82612a0a565b9050919050565b612d4c81612d31565b8114612d5757600080fd5b50565b600081359050612d6981612d43565b92915050565b60008060408385031215612d8657612d8561291e565b5b6000612d9485828601612d5a565b9250506020612da585828601612b2c565b9150509250929050565b6000819050919050565b6000612dd4612dcf612dca846129ea565b612daf565b6129ea565b9050919050565b6000612de682612db9565b9050919050565b6000612df882612ddb565b9050919050565b612e0881612ded565b82525050565b6000602082019050612e236000830184612dff565b92915050565b612e3281612a0a565b82525050565b6000604082019050612e4d6000830185612e29565b612e5a6020830184612c7d565b9392505050565b6000602082019050612e766000830184612c7d565b92915050565b600060208284031215612e9257612e9161291e565b5b6000612ea084828501612a33565b91505092915050565b600080600060608486031215612ec257612ec161291e565b5b6000612ed086828701612b2c565b9350506020612ee186828701612b2c565b9250506040612ef286828701612b2c565b9150509250925092565b6000612f0782612ddb565b9050919050565b612f1781612efc565b82525050565b6000602082019050612f326000830184612f0e565b92915050565b6000602082019050612f4d6000830184612ccf565b92915050565b612f5c81612cc3565b8114612f6757600080fd5b50565b600081359050612f7981612f53565b92915050565b600060208284031215612f9557612f9461291e565b5b6000612fa384828501612f6a565b91505092915050565b6000602082019050612fc16000830184612e29565b92915050565b6000612fd282612a0a565b9050919050565b612fe281612fc7565b8114612fed57600080fd5b50565b600081359050612fff81612fd9565b92915050565b60006020828403121561301b5761301a61291e565b5b600061302984828501612ff0565b91505092915050565b60006080820190506130476000830187612c7d565b6130546020830186612c7d565b6130616040830185612c7d565b61306e6060830184612c7d565b95945050505050565b60006020828403121561308d5761308c61291e565b5b600061309b84828501612d5a565b91505092915050565b600080604083850312156130bb576130ba61291e565b5b60006130c985828601612b2c565b92505060206130da85828601612b2c565b9150509250929050565b60006130ef826129ea565b9050919050565b6130ff816130e4565b82525050565b600060208201905061311a60008301846130f6565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613167602083613120565b915061317282613131565b602082019050919050565b600060208201905081810360008301526131968161315a565b9050919050565b7f41646472657373657320616e6420616d6f756e7473206d75737420626520657160008201527f75616c0000000000000000000000000000000000000000000000000000000000602082015250565b60006131f9602383613120565b91506132048261319d565b604082019050919050565b60006020820190508181036000830152613228816131ec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061329882612b0b565b91506132a383612b0b565b92508282019050808211156132bb576132ba61325e565b5b92915050565b60006132cc82612b0b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132fe576132fd61325e565b5b600182019050919050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b600061333f601983613120565b915061334a82613309565b602082019050919050565b6000602082019050818103600083015261336e81613332565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b60006133ab601383613120565b91506133b682613375565b602082019050919050565b600060208201905081810360008301526133da8161339e565b9050919050565b60006133ec82612b0b565b91506133f783612b0b565b925082820390508181111561340f5761340e61325e565b5b92915050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b600061344b601283613120565b915061345682613415565b602082019050919050565b6000602082019050818103600083015261347a8161343e565b9050919050565b600069ffffffffffffffffffff82169050919050565b6134a081613481565b81146134ab57600080fd5b50565b6000815190506134bd81613497565b92915050565b6000819050919050565b6134d6816134c3565b81146134e157600080fd5b50565b6000815190506134f3816134cd565b92915050565b60008151905061350881612b15565b92915050565b600080600080600060a0868803121561352a5761352961291e565b5b6000613538888289016134ae565b9550506020613549888289016134e4565b945050604061355a888289016134f9565b935050606061356b888289016134f9565b925050608061357c888289016134ae565b9150509295509295909350565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b60006135bf600e83613120565b91506135ca82613589565b602082019050919050565b600060208201905081810360008301526135ee816135b2565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000613651602483613120565b915061365c826135f5565b604082019050919050565b6000602082019050818103600083015261368081613644565b9050919050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b60006136bd601383613120565b91506136c882613687565b602082019050919050565b600060208201905081810360008301526136ec816136b0565b9050919050565b60006136fe82612ddb565b9050919050565b61370e816136f3565b82525050565b60006060820190506137296000830186612e29565b6137366020830185613705565b6137436040830184612c7d565b949350505050565b600061375682612b0b565b915061376183612b0b565b925082820261376f81612b0b565b915082820484148315176137865761378561325e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137c782612b0b565b91506137d283612b0b565b9250826137e2576137e161378d565b5b828204905092915050565b600060ff82169050919050565b613803816137ed565b811461380e57600080fd5b50565b600081519050613820816137fa565b92915050565b60006020828403121561383c5761383b61291e565b5b600061384a84828501613811565b91505092915050565b60008160011c9050919050565b6000808291508390505b60018511156138aa578086048111156138865761388561325e565b5b60018516156138955780820291505b80810290506138a385613853565b945061386a565b94509492505050565b6000826138c3576001905061397f565b816138d1576000905061397f565b81600181146138e757600281146138f157613920565b600191505061397f565b60ff8411156139035761390261325e565b5b8360020a91508482111561391a5761391961325e565b5b5061397f565b5060208310610133831016604e8410600b84101617156139555782820a9050838111156139505761394f61325e565b5b61397f565b6139628484846001613860565b925090508184048111156139795761397861325e565b5b81810290505b9392505050565b600061399182612b0b565b915061399c836137ed565b92506139c97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846138b3565b905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a2d602683613120565b9150613a38826139d1565b604082019050919050565b60006020820190508181036000830152613a5c81613a20565b9050919050565b6000613a6e82612b0b565b915060008203613a8157613a8061325e565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122055d066d1554332a8be80b22038862eedaed8919174f6acbfd45387628e0cfb9b64736f6c63430008120033

Deployed Bytecode Sourcemap

3617:10949:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13033:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11184:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3936:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4974:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;14407:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3652:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4935:32;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4148:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10660:516;;;;;;;;;;;;;:::i;:::-;;13908:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4017:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12653:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13637:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4083:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1137:103;;;;;;;;;;;;;:::i;:::-;;3762:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12924:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4114:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14264:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4352:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11555:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;829:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6445:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14066:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11664:81;;;;;;;;;;;;;:::i;:::-;;6680:1238;;;:::i;:::-;;4631:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4320:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7993:1186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4051:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3682:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13489:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11800:326;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12153:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13754:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4427:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12376:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1395:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3984:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4186:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13033:419;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13222:12:::1;:19;13201:10;:17;:40;13179:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;13322:9;13317:128;13341:10;:17;13337:1;:21;13317:128;;;13418:12;13431:1;13418:15;;;;;;;;:::i;:::-;;;;;;;;13380:5;:20;13386:10;13397:1;13386:13;;;;;;;;:::i;:::-;;;;;;;;13380:20;;;;;;;;;;;;;;;:34;;;:53;;;;;;;:::i;:::-;;;;;;;;13360:3;;;;;:::i;:::-;;;;13317:128;;;;13033:419:::0;;:::o;11184:363::-;11292:19;11313:18;11333:16;11367:18;11388:6;:16;11395:8;11388:16;;;;;;;;;;;11367:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11437:5;:18;;;11470:5;:21;;;11506:5;:22;;;11415:124;;;;;;;11184:363;;;;;:::o;3936:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4974:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14407:156::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14521:5:::1;:14;;;14536:10;14548:6;14521:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14407:156:::0;;:::o;3652:23::-;;;;;;;;;;;;;:::o;4935:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4148:31::-;;;;:::o;10660:516::-;10711:14;;;;;;;;;;;10703:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:17;10786:5;:17;10792:10;10786:17;;;;;;;;;;;;;;;10766:37;;10843:1;10822:4;:18;;;:22;10814:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10879:23;10926:4;:19;;;10905:4;:18;;;:40;;;;:::i;:::-;10879:66;;10982:1;10964:15;:19;10956:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11040:15;11017:4;:19;;;:38;;;;;;;:::i;:::-;;;;;;;;11066:9;;;;;;;;;;;:18;;;11085:10;11097:15;11066:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11152:15;11140:10;11129:39;;;;;;;;;;;;10692:484;;10660:516::o;13908:110::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14004:5:::1;13981:12;;:29;;;;;;;;;;;;;;;;;;13908:110:::0;:::o;4017:27::-;;;;:::o;12653:241::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12805:5:::1;12793:9;:17;;;;12836:7;12821:12;:22;;;;12873:13;12854:16;:32;;;;12653:241:::0;;;:::o;13637:109::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13709:12:::1;;;;;;;;;;;:21;;:29;13731:6;13709:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13637:109:::0;:::o;4083:24::-;;;;:::o;1137:103::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1202:30:::1;1229:1;1202:18;:30::i;:::-;1137:103::o:0;3762:38::-;;;;;;;;;;;;;:::o;12924:101::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13010:6:::1;12991:9;;:26;;;;;;;;;;;;;;;;;;12924:101:::0;:::o;4114:27::-;;;;:::o;14264:104::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14351:9:::1;14336:12;:24;;;;14264:104:::0;:::o;4352:26::-;;;;;;;;;;;;;:::o;11555:101::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11641:7:::1;11625:13;;:23;;;;;;;;;;;;;;;;;;11555:101:::0;:::o;829:87::-;875:7;902:6;;;;;;;;;;;895:13;;829:87;:::o;6445:159::-;6492:7;6515:12;6537:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6512:52;;;;;;6590:5;6575:21;;;6445:159;:::o;14066:135::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14183:10:::1;14171:9;;:22;;;;;;;;;;;;;;;;;;14066:135:::0;:::o;11664:81::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11733:4:::1;11716:14;;:21;;;;;;;;;;;;;;;;;;11664:81::o:0;6680:1238::-;6735:14;;;;;;;;;;;6734:15;6726:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6787:13;;;;;;;;;;;6779:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6857:8;:20;6866:10;6857:20;;;;;;;;;;;;;;;;;;;;;;;;;6852:115;;6908:1;6894:10;;:15;;;;;;;:::i;:::-;;;;;;;;6924:14;6944:10;6924:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6852:115;6977:12;;;;;;;;;;;:21;;:32;6999:9;6977:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7022:22;7072:38;7086:9;7097:12;;7072:13;:38::i;:::-;7055:55;;7217:6;:20;7224:12;;7217:20;;;;;;;;;;;:33;;;7182:14;7143:6;:20;7150:12;;7143:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;7121:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;7333:14;7320:9;;:28;;;;:::i;:::-;7308:9;:40;;;;7389:19;7398:9;7389:8;:19::i;:::-;7374:12;;:34;;;;:::i;:::-;7359:12;:49;;;;7518:9;7469:5;:17;7475:10;7469:17;;;;;;;;;;;;;;;:32;;;:59;;;;:::i;:::-;7421:5;:17;7427:10;7421:17;;;;;;;;;;;;;;;:32;;:107;;;;7634:14;7586:5;:17;7592:10;7586:17;;;;;;;;;;;;;;;:31;;;:63;;;;:::i;:::-;7539:5;:17;7545:10;7539:17;;;;;;;;;;;;;;;:31;;:110;;;;7700:14;7660:6;:20;7667:12;;7660:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;7748:4;7725:8;:20;7734:10;7725:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7765:63;7784:10;7796:5;:17;7802:10;7796:17;;;;;;;;;;;;;;;:31;;;7765:18;:63::i;:::-;7839:71;7864:12;;7878:9;7889:14;7905:4;7839:24;:71::i;:::-;6715:1203;6680:1238::o;4631:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4320:25::-;;;;;;;;;;;;;:::o;7993:1186::-;8058:14;;;;;;;;;;;8057:15;8049:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8110:13;;;;;;;;;;;8102:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8180:8;:20;8189:10;8180:20;;;;;;;;;;;;;;;;;;;;;;;;;8175:115;;8231:1;8217:10;;:15;;;;;;;:::i;:::-;;;;;;;;8247:14;8267:10;8247:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8175:115;8300:4;;;;;;;;;;;:17;;;8318:10;8330:12;;;;;;;;;;;8344:6;8300:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8364:22;8414:33;8426:6;8434:12;;8414:11;:33::i;:::-;8397:50;;8554:6;:20;8561:12;;8554:20;;;;;;;;;;;:33;;;8519:14;8480:6;:20;8487:12;;8480:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;8458:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8669:14;8657:9;;:26;;;;:::i;:::-;8645:9;:38;;;;8732:6;8713:16;;:25;;;;:::i;:::-;8694:16;:44;;;;8785:6;8751:5;:17;8757:10;8751:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;8898:14;8851:5;:17;8857:10;8851:17;;;;;;;;;;;;;;;:31;;;:61;;;;:::i;:::-;8804:5;:17;8810:10;8804:17;;;;;;;;;;;;;;;:31;;:108;;;;8963:14;8923:6;:20;8930:12;;8923:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;9011:4;8988:8;:20;8997:10;8988:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;9028:63;9047:10;9059:5;:17;9065:10;9059:17;;;;;;;;;;;;;;;:31;;;9028:18;:63::i;:::-;9102:69;9127:12;;9141:6;9149:14;9165:5;9102:24;:69::i;:::-;8038:1141;7993:1186;:::o;4051:25::-;;;;:::o;3682:71::-;;;;;;;;;;;;;:::o;13489:100::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13575:5:::1;13561:4;;:20;;;;;;;;;;;;;;;;;;13489:100:::0;:::o;11800:326::-;11903:7;11923:16;11976:7;11954:16;:14;:16::i;:::-;11943:7;:28;;;;:::i;:::-;11942:42;;;;:::i;:::-;11923:61;;11995:22;12082:3;12032:6;:15;12039:7;12032:15;;;;;;;;;;;:32;;;12021:8;:43;;;;:::i;:::-;12020:66;;;;:::i;:::-;11995:91;;12104:14;12097:21;;;;11800:326;;;;:::o;12153:167::-;12209:7;12229:16;12282:3;12260:16;:14;:16::i;:::-;12249:7;:28;;;;:::i;:::-;12248:38;;;;:::i;:::-;12229:57;;12304:8;12297:15;;;12153:167;;;:::o;13754:106::-;13804:7;13831:14;:21;;;;13824:28;;13754:106;:::o;4427:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;4387:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12376:269::-;12477:7;12497:22;12589:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12583:2;:21;;;;:::i;:::-;12533:6;:15;12540:7;12533:15;;;;;;;;;;;:32;;;12523:7;:42;;;;:::i;:::-;12522:83;;;;:::i;:::-;12497:108;;12623:14;12616:21;;;12376:269;;;;:::o;1395:238::-;1060:12;:10;:12::i;:::-;1049:23;;:7;:5;:7::i;:::-;:23;;;1041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1518:1:::1;1498:22;;:8;:22;;::::0;1476:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:28;1616:8;1597:18;:28::i;:::-;1395:238:::0;:::o;3984:26::-;;;;:::o;4186:35::-;;;;;;;;;;;;;:::o;173:98::-;226:7;253:10;246:17;;173:98;:::o;1793:191::-;1867:16;1886:6;;;;;;;;;;;1867:25;;1912:8;1903:6;;:17;;;;;;;;;;;;;;;;;;1967:8;1936:40;;1957:8;1936:40;;;;;;;;;;;;1856:128;1793:191;:::o;9187:776::-;9336:9;9331:223;9355:20;9351:1;:24;9331:223;;;9410:13;9424:1;9410:16;;;;;;;:::i;:::-;;;;;:28;;;;;;;;;;;;9401:37;;:5;:37;;;9397:146;;9490:12;9459:13;9473:1;9459:16;;;;;;;:::i;:::-;;;;;:28;;:43;;;;9521:7;;;9397:146;9377:3;;;;;:::i;:::-;;;;9331:223;;;;9571:9;9566:390;9590:20;9586:1;:24;9566:390;;;9651:13;9665:1;9651:16;;;;;;;:::i;:::-;;;;;:28;;;9636:12;:43;9632:313;;;9705:9;9740:1;9717:20;:24;;;;:::i;:::-;9705:36;;9700:137;9747:1;9743;:5;9700:137;;;9797:13;9815:1;9811;:5;;;;:::i;:::-;9797:20;;;;;;;:::i;:::-;;;;;9778:13;9792:1;9778:16;;;;;;;:::i;:::-;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9750:3;;;;;:::i;:::-;;;;9700:137;;;;9876:29;;;;;;;;9885:5;9876:29;;;;;;9892:12;9876:29;;;9857:13;9871:1;9857:16;;;;;;;:::i;:::-;;;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9924:5;;9632:313;9612:3;;;;;:::i;:::-;;;;9566:390;;;;9187:776;;;:::o;9971:681::-;10145:33;10181:152;;;;;;;;10207:15;10181:152;;;;10237:10;10181:152;;;;10262:10;10181:152;;;;10287:11;10181:152;;;;10313:9;10181:152;;;;;10145:188;;10344:19;10369:14;10344:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10428:2;10399:19;:26;;;;:31;10395:250;;;10452:9;10447:147;10500:1;10471:19;:26;;;;:30;;;;:::i;:::-;10467:1;:34;10447:147;;;10552:19;10576:1;10572;:5;;;;:::i;:::-;10552:26;;;;;;;;:::i;:::-;;;;;;;;;;;;10527:19;10547:1;10527:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10503:3;;;;;:::i;:::-;;;;10447:147;;;;10608:19;:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10395:250;10134:518;9971:681;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:311::-;3323:4;3413:18;3405:6;3402:30;3399:56;;;3435:18;;:::i;:::-;3399:56;3485:4;3477:6;3473:17;3465:25;;3545:4;3539;3535:15;3527:23;;3246:311;;;:::o;3563:77::-;3600:7;3629:5;3618:16;;3563:77;;;:::o;3646:122::-;3719:24;3737:5;3719:24;:::i;:::-;3712:5;3709:35;3699:63;;3758:1;3755;3748:12;3699:63;3646:122;:::o;3774:139::-;3820:5;3858:6;3845:20;3836:29;;3874:33;3901:5;3874:33;:::i;:::-;3774:139;;;;:::o;3936:710::-;4032:5;4057:81;4073:64;4130:6;4073:64;:::i;:::-;4057:81;:::i;:::-;4048:90;;4158:5;4187:6;4180:5;4173:21;4221:4;4214:5;4210:16;4203:23;;4274:4;4266:6;4262:17;4254:6;4250:30;4303:3;4295:6;4292:15;4289:122;;;4322:79;;:::i;:::-;4289:122;4437:6;4420:220;4454:6;4449:3;4446:15;4420:220;;;4529:3;4558:37;4591:3;4579:10;4558:37;:::i;:::-;4553:3;4546:50;4625:4;4620:3;4616:14;4609:21;;4496:144;4480:4;4475:3;4471:14;4464:21;;4420:220;;;4424:21;4038:608;;3936:710;;;;;:::o;4669:370::-;4740:5;4789:3;4782:4;4774:6;4770:17;4766:27;4756:122;;4797:79;;:::i;:::-;4756:122;4914:6;4901:20;4939:94;5029:3;5021:6;5014:4;5006:6;5002:17;4939:94;:::i;:::-;4930:103;;4746:293;4669:370;;;;:::o;5045:894::-;5163:6;5171;5220:2;5208:9;5199:7;5195:23;5191:32;5188:119;;;5226:79;;:::i;:::-;5188:119;5374:1;5363:9;5359:17;5346:31;5404:18;5396:6;5393:30;5390:117;;;5426:79;;:::i;:::-;5390:117;5531:78;5601:7;5592:6;5581:9;5577:22;5531:78;:::i;:::-;5521:88;;5317:302;5686:2;5675:9;5671:18;5658:32;5717:18;5709:6;5706:30;5703:117;;;5739:79;;:::i;:::-;5703:117;5844:78;5914:7;5905:6;5894:9;5890:22;5844:78;:::i;:::-;5834:88;;5629:303;5045:894;;;;;:::o;5945:329::-;6004:6;6053:2;6041:9;6032:7;6028:23;6024:32;6021:119;;;6059:79;;:::i;:::-;6021:119;6179:1;6204:53;6249:7;6240:6;6229:9;6225:22;6204:53;:::i;:::-;6194:63;;6150:117;5945:329;;;;:::o;6280:118::-;6367:24;6385:5;6367:24;:::i;:::-;6362:3;6355:37;6280:118;;:::o;6404:442::-;6553:4;6591:2;6580:9;6576:18;6568:26;;6604:71;6672:1;6661:9;6657:17;6648:6;6604:71;:::i;:::-;6685:72;6753:2;6742:9;6738:18;6729:6;6685:72;:::i;:::-;6767;6835:2;6824:9;6820:18;6811:6;6767:72;:::i;:::-;6404:442;;;;;;:::o;6852:90::-;6886:7;6929:5;6922:13;6915:21;6904:32;;6852:90;;;:::o;6948:109::-;7029:21;7044:5;7029:21;:::i;:::-;7024:3;7017:34;6948:109;;:::o;7063:652::-;7262:4;7300:3;7289:9;7285:19;7277:27;;7314:71;7382:1;7371:9;7367:17;7358:6;7314:71;:::i;:::-;7395:72;7463:2;7452:9;7448:18;7439:6;7395:72;:::i;:::-;7477;7545:2;7534:9;7530:18;7521:6;7477:72;:::i;:::-;7559;7627:2;7616:9;7612:18;7603:6;7559:72;:::i;:::-;7641:67;7703:3;7692:9;7688:19;7679:6;7641:67;:::i;:::-;7063:652;;;;;;;;:::o;7721:110::-;7772:7;7801:24;7819:5;7801:24;:::i;:::-;7790:35;;7721:110;;;:::o;7837:150::-;7924:38;7956:5;7924:38;:::i;:::-;7917:5;7914:49;7904:77;;7977:1;7974;7967:12;7904:77;7837:150;:::o;7993:167::-;8053:5;8091:6;8078:20;8069:29;;8107:47;8148:5;8107:47;:::i;:::-;7993:167;;;;:::o;8166:502::-;8248:6;8256;8305:2;8293:9;8284:7;8280:23;8276:32;8273:119;;;8311:79;;:::i;:::-;8273:119;8431:1;8456:67;8515:7;8506:6;8495:9;8491:22;8456:67;:::i;:::-;8446:77;;8402:131;8572:2;8598:53;8643:7;8634:6;8623:9;8619:22;8598:53;:::i;:::-;8588:63;;8543:118;8166:502;;;;;:::o;8674:60::-;8702:3;8723:5;8716:12;;8674:60;;;:::o;8740:142::-;8790:9;8823:53;8841:34;8850:24;8868:5;8850:24;:::i;:::-;8841:34;:::i;:::-;8823:53;:::i;:::-;8810:66;;8740:142;;;:::o;8888:126::-;8938:9;8971:37;9002:5;8971:37;:::i;:::-;8958:50;;8888:126;;;:::o;9020:140::-;9084:9;9117:37;9148:5;9117:37;:::i;:::-;9104:50;;9020:140;;;:::o;9166:159::-;9267:51;9312:5;9267:51;:::i;:::-;9262:3;9255:64;9166:159;;:::o;9331:250::-;9438:4;9476:2;9465:9;9461:18;9453:26;;9489:85;9571:1;9560:9;9556:17;9547:6;9489:85;:::i;:::-;9331:250;;;;:::o;9587:118::-;9674:24;9692:5;9674:24;:::i;:::-;9669:3;9662:37;9587:118;;:::o;9711:332::-;9832:4;9870:2;9859:9;9855:18;9847:26;;9883:71;9951:1;9940:9;9936:17;9927:6;9883:71;:::i;:::-;9964:72;10032:2;10021:9;10017:18;10008:6;9964:72;:::i;:::-;9711:332;;;;;:::o;10049:222::-;10142:4;10180:2;10169:9;10165:18;10157:26;;10193:71;10261:1;10250:9;10246:17;10237:6;10193:71;:::i;:::-;10049:222;;;;:::o;10277:329::-;10336:6;10385:2;10373:9;10364:7;10360:23;10356:32;10353:119;;;10391:79;;:::i;:::-;10353:119;10511:1;10536:53;10581:7;10572:6;10561:9;10557:22;10536:53;:::i;:::-;10526:63;;10482:117;10277:329;;;;:::o;10612:619::-;10689:6;10697;10705;10754:2;10742:9;10733:7;10729:23;10725:32;10722:119;;;10760:79;;:::i;:::-;10722:119;10880:1;10905:53;10950:7;10941:6;10930:9;10926:22;10905:53;:::i;:::-;10895:63;;10851:117;11007:2;11033:53;11078:7;11069:6;11058:9;11054:22;11033:53;:::i;:::-;11023:63;;10978:118;11135:2;11161:53;11206:7;11197:6;11186:9;11182:22;11161:53;:::i;:::-;11151:63;;11106:118;10612:619;;;;;:::o;11237:155::-;11316:9;11349:37;11380:5;11349:37;:::i;:::-;11336:50;;11237:155;;;:::o;11398:189::-;11514:66;11574:5;11514:66;:::i;:::-;11509:3;11502:79;11398:189;;:::o;11593:280::-;11715:4;11753:2;11742:9;11738:18;11730:26;;11766:100;11863:1;11852:9;11848:17;11839:6;11766:100;:::i;:::-;11593:280;;;;:::o;11879:210::-;11966:4;12004:2;11993:9;11989:18;11981:26;;12017:65;12079:1;12068:9;12064:17;12055:6;12017:65;:::i;:::-;11879:210;;;;:::o;12095:116::-;12165:21;12180:5;12165:21;:::i;:::-;12158:5;12155:32;12145:60;;12201:1;12198;12191:12;12145:60;12095:116;:::o;12217:133::-;12260:5;12298:6;12285:20;12276:29;;12314:30;12338:5;12314:30;:::i;:::-;12217:133;;;;:::o;12356:323::-;12412:6;12461:2;12449:9;12440:7;12436:23;12432:32;12429:119;;;12467:79;;:::i;:::-;12429:119;12587:1;12612:50;12654:7;12645:6;12634:9;12630:22;12612:50;:::i;:::-;12602:60;;12558:114;12356:323;;;;:::o;12685:222::-;12778:4;12816:2;12805:9;12801:18;12793:26;;12829:71;12897:1;12886:9;12882:17;12873:6;12829:71;:::i;:::-;12685:222;;;;:::o;12913:125::-;12979:7;13008:24;13026:5;13008:24;:::i;:::-;12997:35;;12913:125;;;:::o;13044:180::-;13146:53;13193:5;13146:53;:::i;:::-;13139:5;13136:64;13126:92;;13214:1;13211;13204:12;13126:92;13044:180;:::o;13230:197::-;13305:5;13343:6;13330:20;13321:29;;13359:62;13415:5;13359:62;:::i;:::-;13230:197;;;;:::o;13433:387::-;13521:6;13570:2;13558:9;13549:7;13545:23;13541:32;13538:119;;;13576:79;;:::i;:::-;13538:119;13696:1;13721:82;13795:7;13786:6;13775:9;13771:22;13721:82;:::i;:::-;13711:92;;13667:146;13433:387;;;;:::o;13826:553::-;14003:4;14041:3;14030:9;14026:19;14018:27;;14055:71;14123:1;14112:9;14108:17;14099:6;14055:71;:::i;:::-;14136:72;14204:2;14193:9;14189:18;14180:6;14136:72;:::i;:::-;14218;14286:2;14275:9;14271:18;14262:6;14218:72;:::i;:::-;14300;14368:2;14357:9;14353:18;14344:6;14300:72;:::i;:::-;13826:553;;;;;;;:::o;14385:357::-;14458:6;14507:2;14495:9;14486:7;14482:23;14478:32;14475:119;;;14513:79;;:::i;:::-;14475:119;14633:1;14658:67;14717:7;14708:6;14697:9;14693:22;14658:67;:::i;:::-;14648:77;;14604:131;14385:357;;;;:::o;14748:474::-;14816:6;14824;14873:2;14861:9;14852:7;14848:23;14844:32;14841:119;;;14879:79;;:::i;:::-;14841:119;14999:1;15024:53;15069:7;15060:6;15049:9;15045:22;15024:53;:::i;:::-;15014:63;;14970:117;15126:2;15152:53;15197:7;15188:6;15177:9;15173:22;15152:53;:::i;:::-;15142:63;;15097:118;14748:474;;;;;:::o;15228:104::-;15273:7;15302:24;15320:5;15302:24;:::i;:::-;15291:35;;15228:104;;;:::o;15338:142::-;15441:32;15467:5;15441:32;:::i;:::-;15436:3;15429:45;15338:142;;:::o;15486:254::-;15595:4;15633:2;15622:9;15618:18;15610:26;;15646:87;15730:1;15719:9;15715:17;15706:6;15646:87;:::i;:::-;15486:254;;;;:::o;15746:169::-;15830:11;15864:6;15859:3;15852:19;15904:4;15899:3;15895:14;15880:29;;15746:169;;;;:::o;15921:182::-;16061:34;16057:1;16049:6;16045:14;16038:58;15921:182;:::o;16109:366::-;16251:3;16272:67;16336:2;16331:3;16272:67;:::i;:::-;16265:74;;16348:93;16437:3;16348:93;:::i;:::-;16466:2;16461:3;16457:12;16450:19;;16109:366;;;:::o;16481:419::-;16647:4;16685:2;16674:9;16670:18;16662:26;;16734:9;16728:4;16724:20;16720:1;16709:9;16705:17;16698:47;16762:131;16888:4;16762:131;:::i;:::-;16754:139;;16481:419;;;:::o;16906:222::-;17046:34;17042:1;17034:6;17030:14;17023:58;17115:5;17110:2;17102:6;17098:15;17091:30;16906:222;:::o;17134:366::-;17276:3;17297:67;17361:2;17356:3;17297:67;:::i;:::-;17290:74;;17373:93;17462:3;17373:93;:::i;:::-;17491:2;17486:3;17482:12;17475:19;;17134:366;;;:::o;17506:419::-;17672:4;17710:2;17699:9;17695:18;17687:26;;17759:9;17753:4;17749:20;17745:1;17734:9;17730:17;17723:47;17787:131;17913:4;17787:131;:::i;:::-;17779:139;;17506:419;;;:::o;17931:180::-;17979:77;17976:1;17969:88;18076:4;18073:1;18066:15;18100:4;18097:1;18090:15;18117:180;18165:77;18162:1;18155:88;18262:4;18259:1;18252:15;18286:4;18283:1;18276:15;18303:191;18343:3;18362:20;18380:1;18362:20;:::i;:::-;18357:25;;18396:20;18414:1;18396:20;:::i;:::-;18391:25;;18439:1;18436;18432:9;18425:16;;18460:3;18457:1;18454:10;18451:36;;;18467:18;;:::i;:::-;18451:36;18303:191;;;;:::o;18500:233::-;18539:3;18562:24;18580:5;18562:24;:::i;:::-;18553:33;;18608:66;18601:5;18598:77;18595:103;;18678:18;;:::i;:::-;18595:103;18725:1;18718:5;18714:13;18707:20;;18500:233;;;:::o;18739:175::-;18879:27;18875:1;18867:6;18863:14;18856:51;18739:175;:::o;18920:366::-;19062:3;19083:67;19147:2;19142:3;19083:67;:::i;:::-;19076:74;;19159:93;19248:3;19159:93;:::i;:::-;19277:2;19272:3;19268:12;19261:19;;18920:366;;;:::o;19292:419::-;19458:4;19496:2;19485:9;19481:18;19473:26;;19545:9;19539:4;19535:20;19531:1;19520:9;19516:17;19509:47;19573:131;19699:4;19573:131;:::i;:::-;19565:139;;19292:419;;;:::o;19717:169::-;19857:21;19853:1;19845:6;19841:14;19834:45;19717:169;:::o;19892:366::-;20034:3;20055:67;20119:2;20114:3;20055:67;:::i;:::-;20048:74;;20131:93;20220:3;20131:93;:::i;:::-;20249:2;20244:3;20240:12;20233:19;;19892:366;;;:::o;20264:419::-;20430:4;20468:2;20457:9;20453:18;20445:26;;20517:9;20511:4;20507:20;20503:1;20492:9;20488:17;20481:47;20545:131;20671:4;20545:131;:::i;:::-;20537:139;;20264:419;;;:::o;20689:194::-;20729:4;20749:20;20767:1;20749:20;:::i;:::-;20744:25;;20783:20;20801:1;20783:20;:::i;:::-;20778:25;;20827:1;20824;20820:9;20812:17;;20851:1;20845:4;20842:11;20839:37;;;20856:18;;:::i;:::-;20839:37;20689:194;;;;:::o;20889:168::-;21029:20;21025:1;21017:6;21013:14;21006:44;20889:168;:::o;21063:366::-;21205:3;21226:67;21290:2;21285:3;21226:67;:::i;:::-;21219:74;;21302:93;21391:3;21302:93;:::i;:::-;21420:2;21415:3;21411:12;21404:19;;21063:366;;;:::o;21435:419::-;21601:4;21639:2;21628:9;21624:18;21616:26;;21688:9;21682:4;21678:20;21674:1;21663:9;21659:17;21652:47;21716:131;21842:4;21716:131;:::i;:::-;21708:139;;21435:419;;;:::o;21860:105::-;21896:7;21936:22;21929:5;21925:34;21914:45;;21860:105;;;:::o;21971:120::-;22043:23;22060:5;22043:23;:::i;:::-;22036:5;22033:34;22023:62;;22081:1;22078;22071:12;22023:62;21971:120;:::o;22097:141::-;22153:5;22184:6;22178:13;22169:22;;22200:32;22226:5;22200:32;:::i;:::-;22097:141;;;;:::o;22244:76::-;22280:7;22309:5;22298:16;;22244:76;;;:::o;22326:120::-;22398:23;22415:5;22398:23;:::i;:::-;22391:5;22388:34;22378:62;;22436:1;22433;22426:12;22378:62;22326:120;:::o;22452:141::-;22508:5;22539:6;22533:13;22524:22;;22555:32;22581:5;22555:32;:::i;:::-;22452:141;;;;:::o;22599:143::-;22656:5;22687:6;22681:13;22672:22;;22703:33;22730:5;22703:33;:::i;:::-;22599:143;;;;:::o;22748:971::-;22851:6;22859;22867;22875;22883;22932:3;22920:9;22911:7;22907:23;22903:33;22900:120;;;22939:79;;:::i;:::-;22900:120;23059:1;23084:63;23139:7;23130:6;23119:9;23115:22;23084:63;:::i;:::-;23074:73;;23030:127;23196:2;23222:63;23277:7;23268:6;23257:9;23253:22;23222:63;:::i;:::-;23212:73;;23167:128;23334:2;23360:64;23416:7;23407:6;23396:9;23392:22;23360:64;:::i;:::-;23350:74;;23305:129;23473:2;23499:64;23555:7;23546:6;23535:9;23531:22;23499:64;:::i;:::-;23489:74;;23444:129;23612:3;23639:63;23694:7;23685:6;23674:9;23670:22;23639:63;:::i;:::-;23629:73;;23583:129;22748:971;;;;;;;;:::o;23725:164::-;23865:16;23861:1;23853:6;23849:14;23842:40;23725:164;:::o;23895:366::-;24037:3;24058:67;24122:2;24117:3;24058:67;:::i;:::-;24051:74;;24134:93;24223:3;24134:93;:::i;:::-;24252:2;24247:3;24243:12;24236:19;;23895:366;;;:::o;24267:419::-;24433:4;24471:2;24460:9;24456:18;24448:26;;24520:9;24514:4;24510:20;24506:1;24495:9;24491:17;24484:47;24548:131;24674:4;24548:131;:::i;:::-;24540:139;;24267:419;;;:::o;24692:223::-;24832:34;24828:1;24820:6;24816:14;24809:58;24901:6;24896:2;24888:6;24884:15;24877:31;24692:223;:::o;24921:366::-;25063:3;25084:67;25148:2;25143:3;25084:67;:::i;:::-;25077:74;;25160:93;25249:3;25160:93;:::i;:::-;25278:2;25273:3;25269:12;25262:19;;24921:366;;;:::o;25293:419::-;25459:4;25497:2;25486:9;25482:18;25474:26;;25546:9;25540:4;25536:20;25532:1;25521:9;25517:17;25510:47;25574:131;25700:4;25574:131;:::i;:::-;25566:139;;25293:419;;;:::o;25718:169::-;25858:21;25854:1;25846:6;25842:14;25835:45;25718:169;:::o;25893:366::-;26035:3;26056:67;26120:2;26115:3;26056:67;:::i;:::-;26049:74;;26132:93;26221:3;26132:93;:::i;:::-;26250:2;26245:3;26241:12;26234:19;;25893:366;;;:::o;26265:419::-;26431:4;26469:2;26458:9;26454:18;26446:26;;26518:9;26512:4;26508:20;26504:1;26493:9;26489:17;26482:47;26546:131;26672:4;26546:131;:::i;:::-;26538:139;;26265:419;;;:::o;26690:134::-;26748:9;26781:37;26812:5;26781:37;:::i;:::-;26768:50;;26690:134;;;:::o;26830:147::-;26925:45;26964:5;26925:45;:::i;:::-;26920:3;26913:58;26830:147;;:::o;26983:458::-;27140:4;27178:2;27167:9;27163:18;27155:26;;27191:71;27259:1;27248:9;27244:17;27235:6;27191:71;:::i;:::-;27272:80;27348:2;27337:9;27333:18;27324:6;27272:80;:::i;:::-;27362:72;27430:2;27419:9;27415:18;27406:6;27362:72;:::i;:::-;26983:458;;;;;;:::o;27447:410::-;27487:7;27510:20;27528:1;27510:20;:::i;:::-;27505:25;;27544:20;27562:1;27544:20;:::i;:::-;27539:25;;27599:1;27596;27592:9;27621:30;27639:11;27621:30;:::i;:::-;27610:41;;27800:1;27791:7;27787:15;27784:1;27781:22;27761:1;27754:9;27734:83;27711:139;;27830:18;;:::i;:::-;27711:139;27495:362;27447:410;;;;:::o;27863:180::-;27911:77;27908:1;27901:88;28008:4;28005:1;27998:15;28032:4;28029:1;28022:15;28049:185;28089:1;28106:20;28124:1;28106:20;:::i;:::-;28101:25;;28140:20;28158:1;28140:20;:::i;:::-;28135:25;;28179:1;28169:35;;28184:18;;:::i;:::-;28169:35;28226:1;28223;28219:9;28214:14;;28049:185;;;;:::o;28240:86::-;28275:7;28315:4;28308:5;28304:16;28293:27;;28240:86;;;:::o;28332:118::-;28403:22;28419:5;28403:22;:::i;:::-;28396:5;28393:33;28383:61;;28440:1;28437;28430:12;28383:61;28332:118;:::o;28456:139::-;28511:5;28542:6;28536:13;28527:22;;28558:31;28583:5;28558:31;:::i;:::-;28456:139;;;;:::o;28601:347::-;28669:6;28718:2;28706:9;28697:7;28693:23;28689:32;28686:119;;;28724:79;;:::i;:::-;28686:119;28844:1;28869:62;28923:7;28914:6;28903:9;28899:22;28869:62;:::i;:::-;28859:72;;28815:126;28601:347;;;;:::o;28954:102::-;28996:8;29043:5;29040:1;29036:13;29015:34;;28954:102;;;:::o;29062:848::-;29123:5;29130:4;29154:6;29145:15;;29178:5;29169:14;;29192:712;29213:1;29203:8;29200:15;29192:712;;;29308:4;29303:3;29299:14;29293:4;29290:24;29287:50;;;29317:18;;:::i;:::-;29287:50;29367:1;29357:8;29353:16;29350:451;;;29782:4;29775:5;29771:16;29762:25;;29350:451;29832:4;29826;29822:15;29814:23;;29862:32;29885:8;29862:32;:::i;:::-;29850:44;;29192:712;;;29062:848;;;;;;;:::o;29916:1073::-;29970:5;30161:8;30151:40;;30182:1;30173:10;;30184:5;;30151:40;30210:4;30200:36;;30227:1;30218:10;;30229:5;;30200:36;30296:4;30344:1;30339:27;;;;30380:1;30375:191;;;;30289:277;;30339:27;30357:1;30348:10;;30359:5;;;30375:191;30420:3;30410:8;30407:17;30404:43;;;30427:18;;:::i;:::-;30404:43;30476:8;30473:1;30469:16;30460:25;;30511:3;30504:5;30501:14;30498:40;;;30518:18;;:::i;:::-;30498:40;30551:5;;;30289:277;;30675:2;30665:8;30662:16;30656:3;30650:4;30647:13;30643:36;30625:2;30615:8;30612:16;30607:2;30601:4;30598:12;30594:35;30578:111;30575:246;;;30731:8;30725:4;30721:19;30712:28;;30766:3;30759:5;30756:14;30753:40;;;30773:18;;:::i;:::-;30753:40;30806:5;;30575:246;30846:42;30884:3;30874:8;30868:4;30865:1;30846:42;:::i;:::-;30831:57;;;;30920:4;30915:3;30911:14;30904:5;30901:25;30898:51;;;30929:18;;:::i;:::-;30898:51;30978:4;30971:5;30967:16;30958:25;;29916:1073;;;;;;:::o;30995:281::-;31053:5;31077:23;31095:4;31077:23;:::i;:::-;31069:31;;31121:25;31137:8;31121:25;:::i;:::-;31109:37;;31165:104;31202:66;31192:8;31186:4;31165:104;:::i;:::-;31156:113;;30995:281;;;;:::o;31282:225::-;31422:34;31418:1;31410:6;31406:14;31399:58;31491:8;31486:2;31478:6;31474:15;31467:33;31282:225;:::o;31513:366::-;31655:3;31676:67;31740:2;31735:3;31676:67;:::i;:::-;31669:74;;31752:93;31841:3;31752:93;:::i;:::-;31870:2;31865:3;31861:12;31854:19;;31513:366;;;:::o;31885:419::-;32051:4;32089:2;32078:9;32074:18;32066:26;;32138:9;32132:4;32128:20;32124:1;32113:9;32109:17;32102:47;32166:131;32292:4;32166:131;:::i;:::-;32158:139;;31885:419;;;:::o;32310:171::-;32349:3;32372:24;32390:5;32372:24;:::i;:::-;32363:33;;32418:4;32411:5;32408:15;32405:41;;32426:18;;:::i;:::-;32405:41;32473:1;32466:5;32462:13;32455:20;;32310:171;;;:::o;32487:180::-;32535:77;32532:1;32525:88;32632:4;32629:1;32622:15;32656:4;32653:1;32646:15

Swarm Source

ipfs://55d066d1554332a8be80b22038862eedaed8919174f6acbfd45387628e0cfb9b

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  ]
[ 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.