ETH Price: $1,875.11 (-0.16%)
 

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-09 1:28:334 days ago1741483713IN
0x0165E89F...C3F44D93E
0.003 ETH(Pending)(Pending)
Claim Tokens219636402025-03-03 3:22:1110 days ago1740972131IN
0x0165E89F...C3F44D93E
0 ETH0.000108571.27111937
Claim Tokens219409312025-02-27 23:22:1113 days ago1740698531IN
0x0165E89F...C3F44D93E
0 ETH0.000094261.1035688
Claim Tokens219386532025-02-27 15:45:2313 days ago1740671123IN
0x0165E89F...C3F44D93E
0 ETH0.000167631.96256731
Claim Tokens218379522025-02-13 13:47:2327 days ago1739454443IN
0x0165E89F...C3F44D93E
0 ETH0.000167481.96078511
Claim Tokens217785852025-02-05 6:44:4735 days ago1738737887IN
0x0165E89F...C3F44D93E
0 ETH0.000182752.13955971
Claim Tokens217702082025-02-04 2:37:4737 days ago1738636667IN
0x0165E89F...C3F44D93E
0 ETH0.000323953.79270842
Claim Tokens217156882025-01-27 11:53:3544 days ago1737978815IN
0x0165E89F...C3F44D93E
0 ETH0.000439345.14360018
Claim Tokens217096802025-01-26 15:47:1145 days ago1737906431IN
0x0165E89F...C3F44D93E
0 ETH0.000710238.31495771
Claim Tokens216958332025-01-24 17:23:4747 days ago1737739427IN
0x0165E89F...C3F44D93E
0 ETH0.0012465514.59391963
Claim Tokens216551682025-01-19 1:10:4753 days ago1737249047IN
0x0165E89F...C3F44D93E
0 ETH0.0014165816.58454893
Claim Tokens216545252025-01-18 23:01:3553 days ago1737241295IN
0x0165E89F...C3F44D93E
0 ETH0.000827529.68813823
Claim Tokens216471792025-01-17 22:24:1154 days ago1737152651IN
0x0165E89F...C3F44D93E
0 ETH0.0008772210.2700305
Claim Tokens216258972025-01-14 23:06:3557 days ago1736895995IN
0x0165E89F...C3F44D93E
0 ETH0.000338313.96082262
Claim Tokens216226892025-01-14 12:20:5957 days ago1736857259IN
0x0165E89F...C3F44D93E
0 ETH0.00074458.71628001
Claim Tokens215801132025-01-08 13:40:1163 days ago1736343611IN
0x0165E89F...C3F44D93E
0 ETH0.0010252812.00342692
Claim Tokens215743372025-01-07 18:18:4764 days ago1736273927IN
0x0165E89F...C3F44D93E
0 ETH0.0009315910.90654397
Claim Tokens215383062025-01-02 17:33:1169 days ago1735839191IN
0x0165E89F...C3F44D93E
0 ETH0.0012601414.75299824
Claim Tokens214659032024-12-23 14:52:5979 days ago1734965579IN
0x0165E89F...C3F44D93E
0 ETH0.0022055825.82169685
Claim Tokens214464272024-12-20 21:29:5982 days ago1734730199IN
0x0165E89F...C3F44D93E
0 ETH0.0010937212.80473417
Claim Tokens214158512024-12-16 15:03:1186 days ago1734361391IN
0x0165E89F...C3F44D93E
0 ETH0.0021556525.23715088
Claim Tokens213718062024-12-10 11:28:2392 days ago1733830103IN
0x0165E89F...C3F44D93E
0 ETH0.0012892415.09375616
Claim Tokens213420922024-12-06 7:54:2396 days ago1733471663IN
0x0165E89F...C3F44D93E
0 ETH0.0011879713.90810766
Claim Tokens213220712024-12-03 12:47:1199 days ago1733230031IN
0x0165E89F...C3F44D93E
0 ETH0.0018416521.56098525
Claim Tokens213157772024-12-02 15:40:11100 days ago1733154011IN
0x0165E89F...C3F44D93E
0 ETH0.0029464234.49504057
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer*219636402025-03-03 3:22:1110 days ago1740972131
0x0165E89F...C3F44D93E
0 ETH
Transfer*219409312025-02-27 23:22:1113 days ago1740698531
0x0165E89F...C3F44D93E
0 ETH
Transfer*219386532025-02-27 15:45:2313 days ago1740671123
0x0165E89F...C3F44D93E
0 ETH
Transfer*218379522025-02-13 13:47:2327 days ago1739454443
0x0165E89F...C3F44D93E
0 ETH
Transfer*217785852025-02-05 6:44:4735 days ago1738737887
0x0165E89F...C3F44D93E
0 ETH
Transfer*217702082025-02-04 2:37:4737 days ago1738636667
0x0165E89F...C3F44D93E
0 ETH
Transfer*217156882025-01-27 11:53:3544 days ago1737978815
0x0165E89F...C3F44D93E
0 ETH
Transfer*217096802025-01-26 15:47:1145 days ago1737906431
0x0165E89F...C3F44D93E
0 ETH
Transfer*216958332025-01-24 17:23:4747 days ago1737739427
0x0165E89F...C3F44D93E
0 ETH
Transfer*216551682025-01-19 1:10:4753 days ago1737249047
0x0165E89F...C3F44D93E
0 ETH
Transfer*216545252025-01-18 23:01:3553 days ago1737241295
0x0165E89F...C3F44D93E
0 ETH
Transfer*216471792025-01-17 22:24:1154 days ago1737152651
0x0165E89F...C3F44D93E
0 ETH
Transfer*216258972025-01-14 23:06:3557 days ago1736895995
0x0165E89F...C3F44D93E
0 ETH
Transfer*216226892025-01-14 12:20:5957 days ago1736857259
0x0165E89F...C3F44D93E
0 ETH
Transfer*215801132025-01-08 13:40:1163 days ago1736343611
0x0165E89F...C3F44D93E
0 ETH
Transfer*215743372025-01-07 18:18:4764 days ago1736273927
0x0165E89F...C3F44D93E
0 ETH
Transfer*215383062025-01-02 17:33:1169 days ago1735839191
0x0165E89F...C3F44D93E
0 ETH
Transfer*214659032024-12-23 14:52:5979 days ago1734965579
0x0165E89F...C3F44D93E
0 ETH
Transfer*214464272024-12-20 21:29:5982 days ago1734730199
0x0165E89F...C3F44D93E
0 ETH
Transfer*214158512024-12-16 15:03:1186 days ago1734361391
0x0165E89F...C3F44D93E
0 ETH
Transfer*213718062024-12-10 11:28:2392 days ago1733830103
0x0165E89F...C3F44D93E
0 ETH
Transfer*213420922024-12-06 7:54:2396 days ago1733471663
0x0165E89F...C3F44D93E
0 ETH
Transfer*213220712024-12-03 12:47:1199 days ago1733230031
0x0165E89F...C3F44D93E
0 ETH
Transfer*213157772024-12-02 15:40:11100 days ago1733154011
0x0165E89F...C3F44D93E
0 ETH
Transfer*213142152024-12-02 10:25:11100 days ago1733135111
0x0165E89F...C3F44D93E
0 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  ]

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.