ETH Price: $3,335.24 (-0.75%)

Contract

0x5cc0103c10b74D2865f778Da3321e629e44B9f6D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0xfd0b469946afd63856a3aa6cdbe7a2fbb6a4ed00ab9c0dd28e4768902a78f16b Transfer(pending)2024-12-15 1:21:5213 days ago1734225712IN
0x5cc0103c...9e44B9f6D
0.0013633 ETH(Pending)(Pending)
Buy Token Card214976662024-12-28 1:26:231 hr ago1735349183IN
0x5cc0103c...9e44B9f6D
0.0131 ETH0.000671396.16911044
Buy Token214976012024-12-28 1:13:231 hr ago1735348403IN
0x5cc0103c...9e44B9f6D
0.01 ETH0.000416664.06415719
Buy Token214972692024-12-28 0:06:472 hrs ago1735344407IN
0x5cc0103c...9e44B9f6D
0.005 ETH0.000951364.60681653
Buy Token Card214964182024-12-27 21:15:115 hrs ago1735334111IN
0x5cc0103c...9e44B9f6D
0.57 ETH0.000808017.42451946
Buy Token214960212024-12-27 19:55:236 hrs ago1735329323IN
0x5cc0103c...9e44B9f6D
0.09 ETH0.000812377.92393477
Buy Token214955512024-12-27 18:20:478 hrs ago1735323647IN
0x5cc0103c...9e44B9f6D
0.0135 ETH0.000737317.19175287
Buy Token214954632024-12-27 18:03:118 hrs ago1735322591IN
0x5cc0103c...9e44B9f6D
0.091 ETH0.001730498.37961465
Buy Token214950902024-12-27 16:48:239 hrs ago1735318103IN
0x5cc0103c...9e44B9f6D
0.02 ETH0.000732027.140184
Buy Token214950702024-12-27 16:44:239 hrs ago1735317863IN
0x5cc0103c...9e44B9f6D
0.065 ETH0.001379488.96805538
Buy Token214950612024-12-27 16:42:359 hrs ago1735317755IN
0x5cc0103c...9e44B9f6D
0 ETH0.0013194110.01738266
Buy Token214949542024-12-27 16:20:5910 hrs ago1735316459IN
0x5cc0103c...9e44B9f6D
0.01 ETH0.001579957.65062511
Buy Token214944832024-12-27 14:46:2311 hrs ago1735310783IN
0x5cc0103c...9e44B9f6D
0.05 ETH0.0021282510.30568534
Buy Token214919222024-12-27 6:11:2320 hrs ago1735279883IN
0x5cc0103c...9e44B9f6D
0 ETH0.000412935.22556423
Buy Token214919192024-12-27 6:10:3520 hrs ago1735279835IN
0x5cc0103c...9e44B9f6D
0 ETH0.00038524.87467809
Buy Token214919122024-12-27 6:09:1120 hrs ago1735279751IN
0x5cc0103c...9e44B9f6D
0 ETH0.000381324.82553356
Buy Token214917712024-12-27 5:40:3520 hrs ago1735278035IN
0x5cc0103c...9e44B9f6D
0.025 ETH0.000907574.39476463
Buy Token214899232024-12-26 23:28:2327 hrs ago1735255703IN
0x5cc0103c...9e44B9f6D
0.018 ETH0.001071455.18832172
Buy Token214880932024-12-26 17:20:2333 hrs ago1735233623IN
0x5cc0103c...9e44B9f6D
0.06 ETH0.002012939.74726299
Buy Token214878732024-12-26 16:36:1133 hrs ago1735230971IN
0x5cc0103c...9e44B9f6D
0.03 ETH0.0023943411.5941771
Buy Token214874252024-12-26 15:06:2335 hrs ago1735225583IN
0x5cc0103c...9e44B9f6D
4 ETH0.001993779.65446946
Buy Token USDC214870482024-12-26 13:50:3536 hrs ago1735221035IN
0x5cc0103c...9e44B9f6D
0 ETH0.001501136.70965363
Update Presale214869462024-12-26 13:30:1136 hrs ago1735219811IN
0x5cc0103c...9e44B9f6D
0 ETH0.00021457.29930377
Buy Token214868502024-12-26 13:10:5937 hrs ago1735218659IN
0x5cc0103c...9e44B9f6D
0.028 ETH0.001542347.46850669
Buy Token214821912024-12-25 21:32:112 days ago1735162331IN
0x5cc0103c...9e44B9f6D
0.036237 ETH0.000972714.71020822
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
214976662024-12-28 1:26:231 hr ago1735349183
0x5cc0103c...9e44B9f6D
0.0131 ETH
214976012024-12-28 1:13:231 hr ago1735348403
0x5cc0103c...9e44B9f6D
0.01 ETH
214972692024-12-28 0:06:472 hrs ago1735344407
0x5cc0103c...9e44B9f6D
0.005 ETH
214964182024-12-27 21:15:115 hrs ago1735334111
0x5cc0103c...9e44B9f6D
0.57 ETH
214960212024-12-27 19:55:236 hrs ago1735329323
0x5cc0103c...9e44B9f6D
0.09 ETH
214955512024-12-27 18:20:478 hrs ago1735323647
0x5cc0103c...9e44B9f6D
0.0135 ETH
214954632024-12-27 18:03:118 hrs ago1735322591
0x5cc0103c...9e44B9f6D
0.091 ETH
214950902024-12-27 16:48:239 hrs ago1735318103
0x5cc0103c...9e44B9f6D
0.02 ETH
214950702024-12-27 16:44:239 hrs ago1735317863
0x5cc0103c...9e44B9f6D
0.065 ETH
214949542024-12-27 16:20:5910 hrs ago1735316459
0x5cc0103c...9e44B9f6D
0.01 ETH
214944832024-12-27 14:46:2311 hrs ago1735310783
0x5cc0103c...9e44B9f6D
0.05 ETH
214917712024-12-27 5:40:3520 hrs ago1735278035
0x5cc0103c...9e44B9f6D
0.025 ETH
214899232024-12-26 23:28:2327 hrs ago1735255703
0x5cc0103c...9e44B9f6D
0.018 ETH
214880932024-12-26 17:20:2333 hrs ago1735233623
0x5cc0103c...9e44B9f6D
0.06 ETH
214878732024-12-26 16:36:1133 hrs ago1735230971
0x5cc0103c...9e44B9f6D
0.03 ETH
214874252024-12-26 15:06:2335 hrs ago1735225583
0x5cc0103c...9e44B9f6D
4 ETH
214868502024-12-26 13:10:5937 hrs ago1735218659
0x5cc0103c...9e44B9f6D
0.028 ETH
214821912024-12-25 21:32:112 days ago1735162331
0x5cc0103c...9e44B9f6D
0.036237 ETH
214819802024-12-25 20:49:472 days ago1735159787
0x5cc0103c...9e44B9f6D
0.01658 ETH
214794562024-12-25 12:21:472 days ago1735129307
0x5cc0103c...9e44B9f6D
0.12 ETH
214781222024-12-25 7:53:472 days ago1735113227
0x5cc0103c...9e44B9f6D
0.00343538 ETH
214754692024-12-24 23:00:233 days ago1735081223
0x5cc0103c...9e44B9f6D
0.05 ETH
214747852024-12-24 20:42:473 days ago1735072967
0x5cc0103c...9e44B9f6D
0.00025189 ETH
214747532024-12-24 20:36:113 days ago1735072571
0x5cc0103c...9e44B9f6D
0.015 ETH
214740382024-12-24 18:12:353 days ago1735063955
0x5cc0103c...9e44B9f6D
0.019 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

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-06-01
*/

//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() {
        _transferOwnership(_msgSender());
    }

    /**
     * @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 {
    event Transfer(address indexed from, address indexed to, uint256 value);

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

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    function decimals() external view returns (uint8);
}

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);
    IERC20 public USDC = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);

    uint256 public tokensToSell;
    uint256[] public tokenPerUsdPrice;
    uint256 public totalStages;
    uint8 public tokenDecimals;


    AggregatorV3Interface public priceFeed;

    struct Phase {
        uint256 tokenPerUsdPrice;
    }

    uint256 public currentStage;
    uint256 public cardboughtAmount;
    uint256 public totalUsers;
    uint256 public soldToken;
    uint256 public amountRaised;
    uint256 public amountRaisedUSDT;
    uint256 public amountRaisedUSDC;
    uint256 public totalRaised;
    uint256 public uniqueBuyers;
    address payable public fundReceiver;

    bool public presaleStatus;
    bool public isPresaleEnded;

    address[] public UsersAddresses;
    struct User {
        uint256 native_balance;
        uint256 usdt_balance;
        uint256 usdc_balance;
        uint256 claimedAmount;
        uint256 claimAbleAmount;
        uint256 purchasedToken;
    }
    mapping(address => User) public users;
    mapping(uint256 => Phase) public phases;
    mapping(address => bool) public isExist;

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

    constructor(IERC20 _token, address _fundReceiver) {
        mainToken = _token;
        fundReceiver = payable(_fundReceiver);
        priceFeed = AggregatorV3Interface(
            0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
        );
        tokenDecimals = mainToken.decimals();
        tokensToSell = 6_800_000_000 * 10**tokenDecimals;
        tokenPerUsdPrice = [
            68027 * 10**(tokenDecimals-2),
            61728 * 10**(tokenDecimals - 2),
            56818 * 10**(tokenDecimals - 2),
            52356 * 10**(tokenDecimals - 2),
            48544 * 10**(tokenDecimals - 2),
            45249 * 10**(tokenDecimals - 2),
            42553 * 10**(tokenDecimals - 2),
            400 * 10**(tokenDecimals),
            37736 * 10**(tokenDecimals - 2),
            22676 * 10**(tokenDecimals - 2)
        ];
        for (uint256 i = 0; i < tokenPerUsdPrice.length; i++) {
            phases[i].tokenPerUsdPrice = tokenPerUsdPrice[i];
        }
        totalStages = tokenPerUsdPrice.length;
    }

    // update a presale
    function updatePresale(uint256 _phaseId, uint256 _tokenPerUsdPrice)
        public
        onlyOwner
    {
        phases[_phaseId].tokenPerUsdPrice = _tokenPerUsdPrice;
    }

    // to get real time price of BNB
    function getLatestPrice() public view returns (uint256) {
        (, int256 price, , , ) = priceFeed.latestRoundData();
        price = (price * (10**10));
        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 (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
            UsersAddresses.push(msg.sender);
        }
        fundReceiver.transfer(msg.value);

        uint256 usdAmount = (msg.value * (getLatestPrice()) * (1e6)) / (1e18 * 1e18);
        uint256 numberOfTokens;
        numberOfTokens = nativeToToken(msg.value, currentStage);
        require(
            soldToken + numberOfTokens <= tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + (numberOfTokens);
        amountRaised = amountRaised + msg.value;
        totalRaised += usdAmount;

        users[msg.sender].native_balance = users[msg.sender].native_balance + (msg.value);
        users[msg.sender].claimAbleAmount = users[msg.sender].claimAbleAmount +numberOfTokens;
        users[msg.sender].purchasedToken += numberOfTokens;
    }

    // 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 (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
            UsersAddresses.push(msg.sender);
        }
        USDT.transferFrom(msg.sender, fundReceiver, amount);

        uint256 numberOfTokens;
        numberOfTokens = usdtToToken(amount, currentStage);
        require(
            soldToken + numberOfTokens <= tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + numberOfTokens;
        amountRaisedUSDT = amountRaisedUSDT + amount;
        totalRaised += amount;

        users[msg.sender].usdt_balance += amount;
        users[msg.sender].claimAbleAmount = users[msg.sender].claimAbleAmount +numberOfTokens;
    
        users[msg.sender].purchasedToken += numberOfTokens;
    }

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

        uint256 numberOfTokens;
        numberOfTokens = usdtToToken(amount, currentStage);
        require(
            soldToken + numberOfTokens <= tokensToSell,
            "Phase Limit Reached"
        );

        soldToken = soldToken + numberOfTokens;
        amountRaisedUSDC = amountRaisedUSDC + amount;
        totalRaised += amount;

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

        users[msg.sender].claimAbleAmount = users[msg.sender].claimAbleAmount +numberOfTokens;

        users[msg.sender].purchasedToken += numberOfTokens;
    }

    function buyTokenCard(
        address _user,
        uint256 _tokenAmount
    ) public payable {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!isExist[_user]) {
            isExist[_user] = true;
            uniqueBuyers++;
            UsersAddresses.push(_user);
        }
        fundReceiver.transfer(msg.value);
        uint256 usdAmount = (msg.value * (getLatestPrice())* 1e6) / (1e18 * 1e18);

        uint256 numberOfTokens;
        numberOfTokens = nativeToToken(msg.value, currentStage);
        require(
            soldToken + numberOfTokens <= tokensToSell,
            "Phase Limit Reached"
        );

        soldToken = soldToken + (numberOfTokens);
        amountRaised = amountRaised + msg.value;
        totalRaised += usdAmount;

        users[_user].native_balance = users[_user].native_balance + (msg.value);
        users[_user].claimAbleAmount =
            users[_user].claimAbleAmount +
            numberOfTokens;
        cardboughtAmount += _tokenAmount;
        users[_user].purchasedToken += numberOfTokens;
    }

    function claimTokens() external {
        require(isPresaleEnded, "Presale has not ended yet");
        require(isExist[msg.sender], "User don't exist");
        User storage user = users[msg.sender];
        uint256 claimAmount = user.claimAbleAmount;
        require(claimAmount > 0, "No tokens to claim");
        user.claimedAmount += claimAmount;
        mainToken.transfer(msg.sender, claimAmount);
        user.claimAbleAmount = 0;
        emit ClaimToken(msg.sender, claimAmount);
    }

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

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

    function endPresale() external onlyOwner {
        require(!isPresaleEnded, "Already ended");
        isPresaleEnded = true;
    }

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

    //  function ethToTokens(uint256 _id, uint256 amount)
    //     public
    //     view
    //     returns (uint256 _tokens)
    // {
    //     uint256 usdAmount = amount * getLatestPrice() * USDT_MULTIPLIER / (ETH_MULTIPLIER * ETH_MULTIPLIER);
    //     _tokens = usdtToTokens(_id, usdAmount);
    // }

    // to check number of token for given usdt
    function usdtToToken(uint256 _amount, uint256 phaseId)
        public
        view
        returns (uint256)
    {
        uint256 numberOfTokens = (_amount * phases[phaseId].tokenPerUsdPrice) /
            (1e6);
        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 whitelistAddresses(
        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]].claimAbleAmount += _tokenAmount[i];
        }
    }

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

    // 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 setCurrentStage(uint256 _stageNum) public onlyOwner {
        currentStage = _stageNum;
    }

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

Contract Security Audit

Contract ABI

[{"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":false,"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":[],"name":"USDC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"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":"amountRaisedUSDC","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":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"buyTokenCard","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyTokenUSDC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyTokenUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cardboughtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"priceUsd","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"initiateTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phases","outputs":[{"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":"setCurrentStage","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":[],"name":"tokenDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenPerUsdPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRaised","outputs":[{"internalType":"uint256","name":"","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":"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":"transferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniqueBuyers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"_phaseId","type":"uint256"},{"internalType":"uint256","name":"_tokenPerUsdPrice","type":"uint256"}],"name":"updatePresale","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"},{"internalType":"contract IERC20","name":"_USDC","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":"usdc_balance","type":"uint256"},{"internalType":"uint256","name":"claimedAmount","type":"uint256"},{"internalType":"uint256","name":"claimAbleAmount","type":"uint256"},{"internalType":"uint256","name":"purchasedToken","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_tokenAmount","type":"uint256[]"}],"name":"whitelistAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000bb57600080fd5b5060405162004bfd38038062004bfd8339818101604052810190620000e19190620007b0565b62000101620000f5620005c460201b60201c565b620005cc60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f4ec3df9cbd43714fe2740f5e3616155c5b8419600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026c919062000835565b600760006101000a81548160ff021916908360ff160217905550600760009054906101000a900460ff16600a620002a49190620009f4565b6401954fc400620002b6919062000a45565b6004819055506040518061014001604052806002600760009054906101000a900460ff16620002e6919062000a90565b600a620002f49190620009f4565b620109bb62000304919062000a45565b81526020016002600760009054906101000a900460ff1662000327919062000a90565b600a620003359190620009f4565b61f12062000344919062000a45565b81526020016002600760009054906101000a900460ff1662000367919062000a90565b600a620003759190620009f4565b61ddf262000384919062000a45565b81526020016002600760009054906101000a900460ff16620003a7919062000a90565b600a620003b59190620009f4565b61cc84620003c4919062000a45565b81526020016002600760009054906101000a900460ff16620003e7919062000a90565b600a620003f59190620009f4565b61bda062000404919062000a45565b81526020016002600760009054906101000a900460ff1662000427919062000a90565b600a620004359190620009f4565b61b0c162000444919062000a45565b81526020016002600760009054906101000a900460ff1662000467919062000a90565b600a620004759190620009f4565b61a63962000484919062000a45565b8152602001600760009054906101000a900460ff16600a620004a79190620009f4565b610190620004b6919062000a45565b81526020016002600760009054906101000a900460ff16620004d9919062000a90565b600a620004e79190620009f4565b619368620004f6919062000a45565b81526020016002600760009054906101000a900460ff1662000519919062000a90565b600a620005279190620009f4565b61589462000536919062000a45565b815250600590600a6200054b92919062000690565b5060005b600580549050811015620005af576005818154811062000574576200057362000acc565b5b906000526020600020015460146000838152602001908152602001600020600001819055508080620005a69062000afb565b9150506200054f565b50600580549050600681905550505062000b48565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054828255906000526020600020908101928215620006cf579160200282015b82811115620006ce578251825591602001919060010190620006b1565b5b509050620006de9190620006e2565b5090565b5b80821115620006fd576000816000905550600101620006e3565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007338262000706565b9050919050565b6000620007478262000726565b9050919050565b62000759816200073a565b81146200076557600080fd5b50565b60008151905062000779816200074e565b92915050565b6200078a8162000726565b81146200079657600080fd5b50565b600081519050620007aa816200077f565b92915050565b60008060408385031215620007ca57620007c962000701565b5b6000620007da8582860162000768565b9250506020620007ed8582860162000799565b9150509250929050565b600060ff82169050919050565b6200080f81620007f7565b81146200081b57600080fd5b50565b6000815190506200082f8162000804565b92915050565b6000602082840312156200084e576200084d62000701565b5b60006200085e848285016200081e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008f557808604811115620008cd57620008cc62000867565b5b6001851615620008dd5780820291505b8081029050620008ed8562000896565b9450620008ad565b94509492505050565b600082620009105760019050620009e3565b81620009205760009050620009e3565b816001811462000939576002811462000944576200097a565b6001915050620009e3565b60ff84111562000959576200095862000867565b5b8360020a91508482111562000973576200097262000867565b5b50620009e3565b5060208310610133831016604e8410600b8410161715620009b45782820a905083811115620009ae57620009ad62000867565b5b620009e3565b620009c38484846001620008a3565b92509050818404811115620009dd57620009dc62000867565b5b81810290505b9392505050565b6000819050919050565b600062000a0182620009ea565b915062000a0e83620007f7565b925062000a3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008fe565b905092915050565b600062000a5282620009ea565b915062000a5f83620009ea565b925082820262000a6f81620009ea565b9150828204841483151762000a895762000a8862000867565b5b5092915050565b600062000a9d82620007f7565b915062000aaa83620007f7565b9250828203905060ff81111562000ac65762000ac562000867565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600062000b0882620009ea565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000b3d5762000b3c62000867565b5b600182019050919050565b6140a58062000b586000396000f3fe6080604052600436106102ad5760003560e01c806383ced17011610175578063bec3fa17116100dc578063d495a63111610095578063e9238daf1161006f578063e9238daf14610a3e578063f2fde38b14610a7b578063f86a352914610aa4578063fb4aa0a114610acf576102ad565b8063d495a631146109ba578063db203b7f146109d6578063e00e061214610a01576102ad565b8063bec3fa17146108a8578063bff1f9e1146108d1578063c54e44eb146108fc578063c5c4744c14610927578063cb33365d14610952578063cc0ea0a91461098f576102ad565b8063a43be57b1161012e578063a43be57b146107c6578063a4821719146107dd578063a87430ba146107e7578063aa1c3aa514610829578063acfb235514610854578063b5e75e1c1461087f576102ad565b806383ced170146106b65780638895283f146106f357806389a302711461071c5780638da5cb5b146107475780638e15f4731461077257806395877f781461079d576102ad565b806348c54b9d1161021957806370f58c97116101d257806370f58c97146105cc578063715018a6146105f5578063741bef1a1461060c5780637ad3def2146106375780637b3e5e7b146106605780637decf27f1461068b576102ad565b806348c54b9d146104e457806353a29ad2146104fb5780635bf5d54c146105245780635cc8ca461461054f57806361a31e00146105785780636769d1f9146105a1576102ad565b80633b97e8561161026b5780633b97e856146103e65780633d956691146104115780633fa23bb31461043c5780633fc15f1514610465578063405fb9441461049057806342caa840146104bb576102ad565b806213eb4b146102b25780631626bf01146102ef5780632d2fbfd41461031a5780632e37eef614610357578063317d71a51461039457806338c67b73146103bd575b600080fd5b3480156102be57600080fd5b506102d960048036038101906102d4919061303f565b610afa565b6040516102e69190613087565b60405180910390f35b3480156102fb57600080fd5b50610304610b1a565b60405161031191906130bb565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190613102565b610b20565b60405161034e91906130bb565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190613102565b610b5a565b60405161038b91906130bb565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190613102565b610b78565b005b3480156103c957600080fd5b506103e460048036038101906103df9190613102565b610fee565b005b3480156103f257600080fd5b506103fb611074565b604051610408919061314b565b60405180910390f35b34801561041d57600080fd5b50610426611087565b60405161043391906130bb565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190613166565b61108d565b005b34801561047157600080fd5b5061047a611128565b6040516104879190613205565b60405180910390f35b34801561049c57600080fd5b506104a561114e565b6040516104b291906130bb565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd919061325e565b611154565b005b3480156104f057600080fd5b506104f9611256565b005b34801561050757600080fd5b50610522600480360381019061051d919061303f565b6114c2565b005b34801561053057600080fd5b50610539611582565b60405161054691906130bb565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061329e565b611588565b005b34801561058457600080fd5b5061059f600480360381019061059a9190613102565b61161e565b005b3480156105ad57600080fd5b506105b6611706565b6040516105c391906130bb565b60405180910390f35b3480156105d857600080fd5b506105f360048036038101906105ee919061350d565b61170c565b005b34801561060157600080fd5b5061060a61187d565b005b34801561061857600080fd5b50610621611905565b60405161062e91906135a6565b60405180910390f35b34801561064357600080fd5b5061065e6004803603810190610659919061303f565b61192b565b005b34801561066c57600080fd5b506106756119eb565b60405161068291906130bb565b60405180910390f35b34801561069757600080fd5b506106a06119f1565b6040516106ad9190613087565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d89190613102565b611a04565b6040516106ea91906130bb565b60405180910390f35b3480156106ff57600080fd5b5061071a600480360381019061071591906135ed565b611a28565b005b34801561072857600080fd5b50610731611ac1565b60405161073e9190613205565b60405180910390f35b34801561075357600080fd5b5061075c611ae7565b6040516107699190613629565b60405180910390f35b34801561077e57600080fd5b50610787611b10565b60405161079491906130bb565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf9190613682565b611bc4565b005b3480156107d257600080fd5b506107db611c84565b005b6107e5611d6d565b005b3480156107f357600080fd5b5061080e6004803603810190610809919061303f565b612201565b604051610820969594939291906136af565b60405180910390f35b34801561083557600080fd5b5061083e61223d565b60405161084b91906130bb565b60405180910390f35b34801561086057600080fd5b50610869612243565b6040516108769190613087565b60405180910390f35b34801561088b57600080fd5b506108a660048036038101906108a19190613102565b612256565b005b3480156108b457600080fd5b506108cf60048036038101906108ca9190613710565b6126cc565b005b3480156108dd57600080fd5b506108e66127ed565b6040516108f391906130bb565b60405180910390f35b34801561090857600080fd5b506109116127f3565b60405161091e9190613205565b60405180910390f35b34801561093357600080fd5b5061093c612819565b60405161094991906130bb565b60405180910390f35b34801561095e57600080fd5b5061097960048036038101906109749190613166565b61281f565b60405161098691906130bb565b60405180910390f35b34801561099b57600080fd5b506109a461289e565b6040516109b191906130bb565b60405180910390f35b6109d460048036038101906109cf9190613750565b6128a4565b005b3480156109e257600080fd5b506109eb612d53565b6040516109f891906130bb565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a239190613102565b612d60565b604051610a359190613629565b60405180910390f35b348015610a4a57600080fd5b50610a656004803603810190610a609190613166565b612d9f565b604051610a7291906130bb565b60405180910390f35b348015610a8757600080fd5b50610aa26004803603810190610a9d919061303f565b612dde565b005b348015610ab057600080fd5b50610ab9612ed5565b604051610ac691906130bb565b60405180910390f35b348015610adb57600080fd5b50610ae4612edb565b604051610af191906137b1565b60405180910390f35b60156020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6000806014600084815260200190815260200160002060405180602001604052908160008201548152505090508060000151915050919050565b60146020528060005260406000206000915090508060000154905081565b601160159054906101000a900460ff1615610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf90613829565b60405180910390fd5b601160149054906101000a900460ff16610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e906138bb565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d3c576001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060106000815480929190610cd39061390a565b91905055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610dbd93929190613973565b6020604051808303816000875af1158015610ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0091906139bf565b506000610e0f82600854612d9f565b905060045481600b54610e2291906139ec565b1115610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a90613a6c565b60405180910390fd5b80600b54610e7191906139ec565b600b8190555081600e54610e8591906139ec565b600e8190555081600f6000828254610e9d91906139ec565b9250508190555081601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254610ef691906139ec565b9250508190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154610f4b91906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254610fe391906139ec565b925050819055505050565b610ff6612f01565b73ffffffffffffffffffffffffffffffffffffffff16611014611ae7565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106190613ad8565b60405180910390fd5b8060088190555050565b600760009054906101000a900460ff1681565b60045481565b611095612f01565b73ffffffffffffffffffffffffffffffffffffffff166110b3611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090613ad8565b60405180910390fd5b8060146000848152602001908152602001600020600001819055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b61115c612f01565b73ffffffffffffffffffffffffffffffffffffffff1661117a611ae7565b73ffffffffffffffffffffffffffffffffffffffff16146111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c790613ad8565b60405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160159054906101000a900460ff166112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90613b44565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890613bb0565b60405180910390fd5b6000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600401549050600081116113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790613c1c565b60405180910390fd5b808260030160008282546113d491906139ec565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611438929190613c3c565b6020604051808303816000875af1158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b91906139bf565b5060008260040181905550807f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c574336040516114b69190613629565b60405180910390a25050565b6114ca612f01565b73ffffffffffffffffffffffffffffffffffffffff166114e8611ae7565b73ffffffffffffffffffffffffffffffffffffffff161461153e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153590613ad8565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b611590612f01565b73ffffffffffffffffffffffffffffffffffffffff166115ae611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90613ad8565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b611626612f01565b73ffffffffffffffffffffffffffffffffffffffff16611644611ae7565b73ffffffffffffffffffffffffffffffffffffffff161461169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190613ad8565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611702573d6000803e3d6000fd5b5050565b600b5481565b611714612f01565b73ffffffffffffffffffffffffffffffffffffffff16611732611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f90613ad8565b60405180910390fd5b80518251146117cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c390613cd7565b60405180910390fd5b60005b8251811015611878578181815181106117eb576117ea613cf7565b5b60200260200101516013600085848151811061180a57611809613cf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825461185e91906139ec565b9250508190555080806118709061390a565b9150506117cf565b505050565b611885612f01565b73ffffffffffffffffffffffffffffffffffffffff166118a3611ae7565b73ffffffffffffffffffffffffffffffffffffffff16146118f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f090613ad8565b60405180910390fd5b6119036000612f09565b565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611933612f01565b73ffffffffffffffffffffffffffffffffffffffff16611951611ae7565b73ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613ad8565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b601160159054906101000a900460ff1681565b60058181548110611a1457600080fd5b906000526020600020016000915090505481565b611a30612f01565b73ffffffffffffffffffffffffffffffffffffffff16611a4e611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90613ad8565b60405180910390fd5b80601160146101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190613db3565b5050509150506402540be40081611bbb9190613e2e565b90508091505090565b611bcc612f01565b73ffffffffffffffffffffffffffffffffffffffff16611bea611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3790613ad8565b60405180910390fd5b80600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c8c612f01565b73ffffffffffffffffffffffffffffffffffffffff16611caa611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613ad8565b60405180910390fd5b601160159054906101000a900460ff1615611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4790613ef2565b60405180910390fd5b6001601160156101000a81548160ff021916908315150217905550565b601160159054906101000a900460ff1615611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db490613829565b60405180910390fd5b601160149054906101000a900460ff16611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e03906138bb565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f31576001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060106000815480929190611ec89061390a565b91905055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611f99573d6000803e3d6000fd5b5060006ec097ce7bc90715b34b9f1000000000620f4240611fb8611b10565b34611fc39190613f12565b611fcd9190613f12565b611fd79190613f83565b90506000611fe73460085461281f565b905060045481600b54611ffa91906139ec565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613a6c565b60405180910390fd5b80600b5461204991906139ec565b600b8190555034600c5461205d91906139ec565b600c8190555081600f600082825461207591906139ec565b9250508190555034601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546120ca91906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461215e91906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008282546121f691906139ec565b925050819055505050565b60136020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b60105481565b601160149054906101000a900460ff1681565b601160159054906101000a900460ff16156122a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229d90613829565b60405180910390fd5b601160149054906101000a900460ff166122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec906138bb565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661241a576001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601060008154809291906123b19061390a565b91905055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161249b93929190613973565b6020604051808303816000875af11580156124ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124de91906139bf565b5060006124ed82600854612d9f565b905060045481600b5461250091906139ec565b1115612541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253890613a6c565b60405180910390fd5b80600b5461254f91906139ec565b600b8190555081600d5461256391906139ec565b600d8190555081600f600082825461257b91906139ec565b9250508190555081601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546125d491906139ec565b9250508190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461262991906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008282546126c191906139ec565b925050819055505050565b6126d4612f01565b73ffffffffffffffffffffffffffffffffffffffff166126f2611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613ad8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016127a5929190613fb4565b6020604051808303816000875af11580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e891906139bf565b505050565b600a5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b6000806ec097ce7bc90715b34b9f1000000000620f424061283e611b10565b866128499190613f12565b6128539190613f12565b61285d9190613f83565b90506000620f42406014600086815260200190815260200160002060000154836128879190613f12565b6128919190613f83565b9050809250505092915050565b60095481565b601160159054906101000a900460ff16156128f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128eb90613829565b60405180910390fd5b601160149054906101000a900460ff16612943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293a906138bb565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a68576001601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601060008154809291906129ff9061390a565b91905055506012829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015612ad0573d6000803e3d6000fd5b5060006ec097ce7bc90715b34b9f1000000000620f4240612aef611b10565b34612afa9190613f12565b612b049190613f12565b612b0e9190613f83565b90506000612b1e3460085461281f565b905060045481600b54612b3191906139ec565b1115612b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6990613a6c565b60405180910390fd5b80600b54612b8091906139ec565b600b8190555034600c54612b9491906139ec565b600c8190555081600f6000828254612bac91906139ec565b9250508190555034601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612c0191906139ec565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612c9591906139ec565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055508260096000828254612ced91906139ec565b9250508190555080601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254612d4691906139ec565b9250508190555050505050565b6000601280549050905090565b60128181548110612d7057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080620f4240601460008581526020019081526020016000206000015485612dc89190613f12565b612dd29190613f83565b90508091505092915050565b612de6612f01565b73ffffffffffffffffffffffffffffffffffffffff16612e04611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614612e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5190613ad8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec09061404f565b60405180910390fd5b612ed281612f09565b50565b60065481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061300c82612fe1565b9050919050565b61301c81613001565b811461302757600080fd5b50565b60008135905061303981613013565b92915050565b60006020828403121561305557613054612fd7565b5b60006130638482850161302a565b91505092915050565b60008115159050919050565b6130818161306c565b82525050565b600060208201905061309c6000830184613078565b92915050565b6000819050919050565b6130b5816130a2565b82525050565b60006020820190506130d060008301846130ac565b92915050565b6130df816130a2565b81146130ea57600080fd5b50565b6000813590506130fc816130d6565b92915050565b60006020828403121561311857613117612fd7565b5b6000613126848285016130ed565b91505092915050565b600060ff82169050919050565b6131458161312f565b82525050565b6000602082019050613160600083018461313c565b92915050565b6000806040838503121561317d5761317c612fd7565b5b600061318b858286016130ed565b925050602061319c858286016130ed565b9150509250929050565b6000819050919050565b60006131cb6131c66131c184612fe1565b6131a6565b612fe1565b9050919050565b60006131dd826131b0565b9050919050565b60006131ef826131d2565b9050919050565b6131ff816131e4565b82525050565b600060208201905061321a60008301846131f6565b92915050565b600061322b82613001565b9050919050565b61323b81613220565b811461324657600080fd5b50565b60008135905061325881613232565b92915050565b6000806040838503121561327557613274612fd7565b5b600061328385828601613249565b925050602061329485828601613249565b9150509250929050565b6000806000606084860312156132b7576132b6612fd7565b5b60006132c5868287016130ed565b93505060206132d6868287016130ed565b92505060406132e7868287016130ed565b9150509250925092565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61333f826132f6565b810181811067ffffffffffffffff8211171561335e5761335d613307565b5b80604052505050565b6000613371612fcd565b905061337d8282613336565b919050565b600067ffffffffffffffff82111561339d5761339c613307565b5b602082029050602081019050919050565b600080fd5b60006133c66133c184613382565b613367565b905080838252602082019050602084028301858111156133e9576133e86133ae565b5b835b8181101561341257806133fe888261302a565b8452602084019350506020810190506133eb565b5050509392505050565b600082601f830112613431576134306132f1565b5b81356134418482602086016133b3565b91505092915050565b600067ffffffffffffffff82111561346557613464613307565b5b602082029050602081019050919050565b60006134896134848461344a565b613367565b905080838252602082019050602084028301858111156134ac576134ab6133ae565b5b835b818110156134d557806134c188826130ed565b8452602084019350506020810190506134ae565b5050509392505050565b600082601f8301126134f4576134f36132f1565b5b8135613504848260208601613476565b91505092915050565b6000806040838503121561352457613523612fd7565b5b600083013567ffffffffffffffff81111561354257613541612fdc565b5b61354e8582860161341c565b925050602083013567ffffffffffffffff81111561356f5761356e612fdc565b5b61357b858286016134df565b9150509250929050565b6000613590826131d2565b9050919050565b6135a081613585565b82525050565b60006020820190506135bb6000830184613597565b92915050565b6135ca8161306c565b81146135d557600080fd5b50565b6000813590506135e7816135c1565b92915050565b60006020828403121561360357613602612fd7565b5b6000613611848285016135d8565b91505092915050565b61362381613001565b82525050565b600060208201905061363e600083018461361a565b92915050565b600061364f82613001565b9050919050565b61365f81613644565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b60006020828403121561369857613697612fd7565b5b60006136a68482850161366d565b91505092915050565b600060c0820190506136c460008301896130ac565b6136d160208301886130ac565b6136de60408301876130ac565b6136eb60608301866130ac565b6136f860808301856130ac565b61370560a08301846130ac565b979650505050505050565b6000806040838503121561372757613726612fd7565b5b600061373585828601613249565b9250506020613746858286016130ed565b9150509250929050565b6000806040838503121561376757613766612fd7565b5b60006137758582860161302a565b9250506020613786858286016130ed565b9150509250929050565b600061379b82612fe1565b9050919050565b6137ab81613790565b82525050565b60006020820190506137c660008301846137a2565b92915050565b600082825260208201905092915050565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000613813600e836137cc565b915061381e826137dd565b602082019050919050565b6000602082019050818103600083015261384281613806565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b60006138a56024836137cc565b91506138b082613849565b604082019050919050565b600060208201905081810360008301526138d481613898565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613915826130a2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613947576139466138db565b5b600182019050919050565b600061395d826131d2565b9050919050565b61396d81613952565b82525050565b6000606082019050613988600083018661361a565b6139956020830185613964565b6139a260408301846130ac565b949350505050565b6000815190506139b9816135c1565b92915050565b6000602082840312156139d5576139d4612fd7565b5b60006139e3848285016139aa565b91505092915050565b60006139f7826130a2565b9150613a02836130a2565b9250828201905080821115613a1a57613a196138db565b5b92915050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000613a566013836137cc565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ac26020836137cc565b9150613acd82613a8c565b602082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b6000613b2e6019836137cc565b9150613b3982613af8565b602082019050919050565b60006020820190508181036000830152613b5d81613b21565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b6000613b9a6010836137cc565b9150613ba582613b64565b602082019050919050565b60006020820190508181036000830152613bc981613b8d565b9050919050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000613c066012836137cc565b9150613c1182613bd0565b602082019050919050565b60006020820190508181036000830152613c3581613bf9565b9050919050565b6000604082019050613c51600083018561361a565b613c5e60208301846130ac565b9392505050565b7f41646472657373657320616e6420616d6f756e7473206d75737420626520657160008201527f75616c0000000000000000000000000000000000000000000000000000000000602082015250565b6000613cc16023836137cc565b9150613ccc82613c65565b604082019050919050565b60006020820190508181036000830152613cf081613cb4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600069ffffffffffffffffffff82169050919050565b613d4581613d26565b8114613d5057600080fd5b50565b600081519050613d6281613d3c565b92915050565b6000819050919050565b613d7b81613d68565b8114613d8657600080fd5b50565b600081519050613d9881613d72565b92915050565b600081519050613dad816130d6565b92915050565b600080600080600060a08688031215613dcf57613dce612fd7565b5b6000613ddd88828901613d53565b9550506020613dee88828901613d89565b9450506040613dff88828901613d9e565b9350506060613e1088828901613d9e565b9250506080613e2188828901613d53565b9150509295509295909350565b6000613e3982613d68565b9150613e4483613d68565b9250828202613e5281613d68565b91507f80000000000000000000000000000000000000000000000000000000000000008414600084121615613e8a57613e896138db565b5b8282058414831517613e9f57613e9e6138db565b5b5092915050565b7f416c726561647920656e64656400000000000000000000000000000000000000600082015250565b6000613edc600d836137cc565b9150613ee782613ea6565b602082019050919050565b60006020820190508181036000830152613f0b81613ecf565b9050919050565b6000613f1d826130a2565b9150613f28836130a2565b9250828202613f36816130a2565b91508282048414831517613f4d57613f4c6138db565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f8e826130a2565b9150613f99836130a2565b925082613fa957613fa8613f54565b5b828204905092915050565b6000604082019050613fc96000830185613964565b613fd660208301846130ac565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140396026836137cc565b915061404482613fdd565b604082019050919050565b600060208201905081810360008301526140688161402c565b905091905056fea2646970667358221220e6c5ed60bdbdb31ba9dd5301cab6400077ae30c9b56bb048834c11b27c7810c864736f6c63430008120033000000000000000000000000110429d46bb2e1e731f390e74e045f86e524ff24000000000000000000000000d0aaf1a475c1927812832c51896fee248d3c0202

Deployed Bytecode

0x6080604052600436106102ad5760003560e01c806383ced17011610175578063bec3fa17116100dc578063d495a63111610095578063e9238daf1161006f578063e9238daf14610a3e578063f2fde38b14610a7b578063f86a352914610aa4578063fb4aa0a114610acf576102ad565b8063d495a631146109ba578063db203b7f146109d6578063e00e061214610a01576102ad565b8063bec3fa17146108a8578063bff1f9e1146108d1578063c54e44eb146108fc578063c5c4744c14610927578063cb33365d14610952578063cc0ea0a91461098f576102ad565b8063a43be57b1161012e578063a43be57b146107c6578063a4821719146107dd578063a87430ba146107e7578063aa1c3aa514610829578063acfb235514610854578063b5e75e1c1461087f576102ad565b806383ced170146106b65780638895283f146106f357806389a302711461071c5780638da5cb5b146107475780638e15f4731461077257806395877f781461079d576102ad565b806348c54b9d1161021957806370f58c97116101d257806370f58c97146105cc578063715018a6146105f5578063741bef1a1461060c5780637ad3def2146106375780637b3e5e7b146106605780637decf27f1461068b576102ad565b806348c54b9d146104e457806353a29ad2146104fb5780635bf5d54c146105245780635cc8ca461461054f57806361a31e00146105785780636769d1f9146105a1576102ad565b80633b97e8561161026b5780633b97e856146103e65780633d956691146104115780633fa23bb31461043c5780633fc15f1514610465578063405fb9441461049057806342caa840146104bb576102ad565b806213eb4b146102b25780631626bf01146102ef5780632d2fbfd41461031a5780632e37eef614610357578063317d71a51461039457806338c67b73146103bd575b600080fd5b3480156102be57600080fd5b506102d960048036038101906102d4919061303f565b610afa565b6040516102e69190613087565b60405180910390f35b3480156102fb57600080fd5b50610304610b1a565b60405161031191906130bb565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190613102565b610b20565b60405161034e91906130bb565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190613102565b610b5a565b60405161038b91906130bb565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190613102565b610b78565b005b3480156103c957600080fd5b506103e460048036038101906103df9190613102565b610fee565b005b3480156103f257600080fd5b506103fb611074565b604051610408919061314b565b60405180910390f35b34801561041d57600080fd5b50610426611087565b60405161043391906130bb565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190613166565b61108d565b005b34801561047157600080fd5b5061047a611128565b6040516104879190613205565b60405180910390f35b34801561049c57600080fd5b506104a561114e565b6040516104b291906130bb565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd919061325e565b611154565b005b3480156104f057600080fd5b506104f9611256565b005b34801561050757600080fd5b50610522600480360381019061051d919061303f565b6114c2565b005b34801561053057600080fd5b50610539611582565b60405161054691906130bb565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061329e565b611588565b005b34801561058457600080fd5b5061059f600480360381019061059a9190613102565b61161e565b005b3480156105ad57600080fd5b506105b6611706565b6040516105c391906130bb565b60405180910390f35b3480156105d857600080fd5b506105f360048036038101906105ee919061350d565b61170c565b005b34801561060157600080fd5b5061060a61187d565b005b34801561061857600080fd5b50610621611905565b60405161062e91906135a6565b60405180910390f35b34801561064357600080fd5b5061065e6004803603810190610659919061303f565b61192b565b005b34801561066c57600080fd5b506106756119eb565b60405161068291906130bb565b60405180910390f35b34801561069757600080fd5b506106a06119f1565b6040516106ad9190613087565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d89190613102565b611a04565b6040516106ea91906130bb565b60405180910390f35b3480156106ff57600080fd5b5061071a600480360381019061071591906135ed565b611a28565b005b34801561072857600080fd5b50610731611ac1565b60405161073e9190613205565b60405180910390f35b34801561075357600080fd5b5061075c611ae7565b6040516107699190613629565b60405180910390f35b34801561077e57600080fd5b50610787611b10565b60405161079491906130bb565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf9190613682565b611bc4565b005b3480156107d257600080fd5b506107db611c84565b005b6107e5611d6d565b005b3480156107f357600080fd5b5061080e6004803603810190610809919061303f565b612201565b604051610820969594939291906136af565b60405180910390f35b34801561083557600080fd5b5061083e61223d565b60405161084b91906130bb565b60405180910390f35b34801561086057600080fd5b50610869612243565b6040516108769190613087565b60405180910390f35b34801561088b57600080fd5b506108a660048036038101906108a19190613102565b612256565b005b3480156108b457600080fd5b506108cf60048036038101906108ca9190613710565b6126cc565b005b3480156108dd57600080fd5b506108e66127ed565b6040516108f391906130bb565b60405180910390f35b34801561090857600080fd5b506109116127f3565b60405161091e9190613205565b60405180910390f35b34801561093357600080fd5b5061093c612819565b60405161094991906130bb565b60405180910390f35b34801561095e57600080fd5b5061097960048036038101906109749190613166565b61281f565b60405161098691906130bb565b60405180910390f35b34801561099b57600080fd5b506109a461289e565b6040516109b191906130bb565b60405180910390f35b6109d460048036038101906109cf9190613750565b6128a4565b005b3480156109e257600080fd5b506109eb612d53565b6040516109f891906130bb565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a239190613102565b612d60565b604051610a359190613629565b60405180910390f35b348015610a4a57600080fd5b50610a656004803603810190610a609190613166565b612d9f565b604051610a7291906130bb565b60405180910390f35b348015610a8757600080fd5b50610aa26004803603810190610a9d919061303f565b612dde565b005b348015610ab057600080fd5b50610ab9612ed5565b604051610ac691906130bb565b60405180910390f35b348015610adb57600080fd5b50610ae4612edb565b604051610af191906137b1565b60405180910390f35b60156020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6000806014600084815260200190815260200160002060405180602001604052908160008201548152505090508060000151915050919050565b60146020528060005260406000206000915090508060000154905081565b601160159054906101000a900460ff1615610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf90613829565b60405180910390fd5b601160149054906101000a900460ff16610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e906138bb565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d3c576001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060106000815480929190610cd39061390a565b91905055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610dbd93929190613973565b6020604051808303816000875af1158015610ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0091906139bf565b506000610e0f82600854612d9f565b905060045481600b54610e2291906139ec565b1115610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a90613a6c565b60405180910390fd5b80600b54610e7191906139ec565b600b8190555081600e54610e8591906139ec565b600e8190555081600f6000828254610e9d91906139ec565b9250508190555081601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254610ef691906139ec565b9250508190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154610f4b91906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254610fe391906139ec565b925050819055505050565b610ff6612f01565b73ffffffffffffffffffffffffffffffffffffffff16611014611ae7565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106190613ad8565b60405180910390fd5b8060088190555050565b600760009054906101000a900460ff1681565b60045481565b611095612f01565b73ffffffffffffffffffffffffffffffffffffffff166110b3611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090613ad8565b60405180910390fd5b8060146000848152602001908152602001600020600001819055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b61115c612f01565b73ffffffffffffffffffffffffffffffffffffffff1661117a611ae7565b73ffffffffffffffffffffffffffffffffffffffff16146111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c790613ad8565b60405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160159054906101000a900460ff166112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90613b44565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890613bb0565b60405180910390fd5b6000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600401549050600081116113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790613c1c565b60405180910390fd5b808260030160008282546113d491906139ec565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611438929190613c3c565b6020604051808303816000875af1158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b91906139bf565b5060008260040181905550807f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c574336040516114b69190613629565b60405180910390a25050565b6114ca612f01565b73ffffffffffffffffffffffffffffffffffffffff166114e8611ae7565b73ffffffffffffffffffffffffffffffffffffffff161461153e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153590613ad8565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b611590612f01565b73ffffffffffffffffffffffffffffffffffffffff166115ae611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90613ad8565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b611626612f01565b73ffffffffffffffffffffffffffffffffffffffff16611644611ae7565b73ffffffffffffffffffffffffffffffffffffffff161461169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190613ad8565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611702573d6000803e3d6000fd5b5050565b600b5481565b611714612f01565b73ffffffffffffffffffffffffffffffffffffffff16611732611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f90613ad8565b60405180910390fd5b80518251146117cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c390613cd7565b60405180910390fd5b60005b8251811015611878578181815181106117eb576117ea613cf7565b5b60200260200101516013600085848151811061180a57611809613cf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825461185e91906139ec565b9250508190555080806118709061390a565b9150506117cf565b505050565b611885612f01565b73ffffffffffffffffffffffffffffffffffffffff166118a3611ae7565b73ffffffffffffffffffffffffffffffffffffffff16146118f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f090613ad8565b60405180910390fd5b6119036000612f09565b565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611933612f01565b73ffffffffffffffffffffffffffffffffffffffff16611951611ae7565b73ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613ad8565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b601160159054906101000a900460ff1681565b60058181548110611a1457600080fd5b906000526020600020016000915090505481565b611a30612f01565b73ffffffffffffffffffffffffffffffffffffffff16611a4e611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90613ad8565b60405180910390fd5b80601160146101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190613db3565b5050509150506402540be40081611bbb9190613e2e565b90508091505090565b611bcc612f01565b73ffffffffffffffffffffffffffffffffffffffff16611bea611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3790613ad8565b60405180910390fd5b80600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c8c612f01565b73ffffffffffffffffffffffffffffffffffffffff16611caa611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613ad8565b60405180910390fd5b601160159054906101000a900460ff1615611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4790613ef2565b60405180910390fd5b6001601160156101000a81548160ff021916908315150217905550565b601160159054906101000a900460ff1615611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db490613829565b60405180910390fd5b601160149054906101000a900460ff16611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e03906138bb565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f31576001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060106000815480929190611ec89061390a565b91905055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611f99573d6000803e3d6000fd5b5060006ec097ce7bc90715b34b9f1000000000620f4240611fb8611b10565b34611fc39190613f12565b611fcd9190613f12565b611fd79190613f83565b90506000611fe73460085461281f565b905060045481600b54611ffa91906139ec565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613a6c565b60405180910390fd5b80600b5461204991906139ec565b600b8190555034600c5461205d91906139ec565b600c8190555081600f600082825461207591906139ec565b9250508190555034601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546120ca91906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461215e91906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008282546121f691906139ec565b925050819055505050565b60136020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b60105481565b601160149054906101000a900460ff1681565b601160159054906101000a900460ff16156122a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229d90613829565b60405180910390fd5b601160149054906101000a900460ff166122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec906138bb565b60405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661241a576001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601060008154809291906123b19061390a565b91905055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161249b93929190613973565b6020604051808303816000875af11580156124ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124de91906139bf565b5060006124ed82600854612d9f565b905060045481600b5461250091906139ec565b1115612541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253890613a6c565b60405180910390fd5b80600b5461254f91906139ec565b600b8190555081600d5461256391906139ec565b600d8190555081600f600082825461257b91906139ec565b9250508190555081601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546125d491906139ec565b9250508190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461262991906139ec565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008282546126c191906139ec565b925050819055505050565b6126d4612f01565b73ffffffffffffffffffffffffffffffffffffffff166126f2611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613ad8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016127a5929190613fb4565b6020604051808303816000875af11580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e891906139bf565b505050565b600a5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b6000806ec097ce7bc90715b34b9f1000000000620f424061283e611b10565b866128499190613f12565b6128539190613f12565b61285d9190613f83565b90506000620f42406014600086815260200190815260200160002060000154836128879190613f12565b6128919190613f83565b9050809250505092915050565b60095481565b601160159054906101000a900460ff16156128f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128eb90613829565b60405180910390fd5b601160149054906101000a900460ff16612943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293a906138bb565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a68576001601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601060008154809291906129ff9061390a565b91905055506012829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015612ad0573d6000803e3d6000fd5b5060006ec097ce7bc90715b34b9f1000000000620f4240612aef611b10565b34612afa9190613f12565b612b049190613f12565b612b0e9190613f83565b90506000612b1e3460085461281f565b905060045481600b54612b3191906139ec565b1115612b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6990613a6c565b60405180910390fd5b80600b54612b8091906139ec565b600b8190555034600c54612b9491906139ec565b600c8190555081600f6000828254612bac91906139ec565b9250508190555034601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612c0191906139ec565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612c9591906139ec565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055508260096000828254612ced91906139ec565b9250508190555080601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254612d4691906139ec565b9250508190555050505050565b6000601280549050905090565b60128181548110612d7057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080620f4240601460008581526020019081526020016000206000015485612dc89190613f12565b612dd29190613f83565b90508091505092915050565b612de6612f01565b73ffffffffffffffffffffffffffffffffffffffff16612e04611ae7565b73ffffffffffffffffffffffffffffffffffffffff1614612e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5190613ad8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec09061404f565b60405180910390fd5b612ed281612f09565b50565b60065481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061300c82612fe1565b9050919050565b61301c81613001565b811461302757600080fd5b50565b60008135905061303981613013565b92915050565b60006020828403121561305557613054612fd7565b5b60006130638482850161302a565b91505092915050565b60008115159050919050565b6130818161306c565b82525050565b600060208201905061309c6000830184613078565b92915050565b6000819050919050565b6130b5816130a2565b82525050565b60006020820190506130d060008301846130ac565b92915050565b6130df816130a2565b81146130ea57600080fd5b50565b6000813590506130fc816130d6565b92915050565b60006020828403121561311857613117612fd7565b5b6000613126848285016130ed565b91505092915050565b600060ff82169050919050565b6131458161312f565b82525050565b6000602082019050613160600083018461313c565b92915050565b6000806040838503121561317d5761317c612fd7565b5b600061318b858286016130ed565b925050602061319c858286016130ed565b9150509250929050565b6000819050919050565b60006131cb6131c66131c184612fe1565b6131a6565b612fe1565b9050919050565b60006131dd826131b0565b9050919050565b60006131ef826131d2565b9050919050565b6131ff816131e4565b82525050565b600060208201905061321a60008301846131f6565b92915050565b600061322b82613001565b9050919050565b61323b81613220565b811461324657600080fd5b50565b60008135905061325881613232565b92915050565b6000806040838503121561327557613274612fd7565b5b600061328385828601613249565b925050602061329485828601613249565b9150509250929050565b6000806000606084860312156132b7576132b6612fd7565b5b60006132c5868287016130ed565b93505060206132d6868287016130ed565b92505060406132e7868287016130ed565b9150509250925092565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61333f826132f6565b810181811067ffffffffffffffff8211171561335e5761335d613307565b5b80604052505050565b6000613371612fcd565b905061337d8282613336565b919050565b600067ffffffffffffffff82111561339d5761339c613307565b5b602082029050602081019050919050565b600080fd5b60006133c66133c184613382565b613367565b905080838252602082019050602084028301858111156133e9576133e86133ae565b5b835b8181101561341257806133fe888261302a565b8452602084019350506020810190506133eb565b5050509392505050565b600082601f830112613431576134306132f1565b5b81356134418482602086016133b3565b91505092915050565b600067ffffffffffffffff82111561346557613464613307565b5b602082029050602081019050919050565b60006134896134848461344a565b613367565b905080838252602082019050602084028301858111156134ac576134ab6133ae565b5b835b818110156134d557806134c188826130ed565b8452602084019350506020810190506134ae565b5050509392505050565b600082601f8301126134f4576134f36132f1565b5b8135613504848260208601613476565b91505092915050565b6000806040838503121561352457613523612fd7565b5b600083013567ffffffffffffffff81111561354257613541612fdc565b5b61354e8582860161341c565b925050602083013567ffffffffffffffff81111561356f5761356e612fdc565b5b61357b858286016134df565b9150509250929050565b6000613590826131d2565b9050919050565b6135a081613585565b82525050565b60006020820190506135bb6000830184613597565b92915050565b6135ca8161306c565b81146135d557600080fd5b50565b6000813590506135e7816135c1565b92915050565b60006020828403121561360357613602612fd7565b5b6000613611848285016135d8565b91505092915050565b61362381613001565b82525050565b600060208201905061363e600083018461361a565b92915050565b600061364f82613001565b9050919050565b61365f81613644565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b60006020828403121561369857613697612fd7565b5b60006136a68482850161366d565b91505092915050565b600060c0820190506136c460008301896130ac565b6136d160208301886130ac565b6136de60408301876130ac565b6136eb60608301866130ac565b6136f860808301856130ac565b61370560a08301846130ac565b979650505050505050565b6000806040838503121561372757613726612fd7565b5b600061373585828601613249565b9250506020613746858286016130ed565b9150509250929050565b6000806040838503121561376757613766612fd7565b5b60006137758582860161302a565b9250506020613786858286016130ed565b9150509250929050565b600061379b82612fe1565b9050919050565b6137ab81613790565b82525050565b60006020820190506137c660008301846137a2565b92915050565b600082825260208201905092915050565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000613813600e836137cc565b915061381e826137dd565b602082019050919050565b6000602082019050818103600083015261384281613806565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b60006138a56024836137cc565b91506138b082613849565b604082019050919050565b600060208201905081810360008301526138d481613898565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613915826130a2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613947576139466138db565b5b600182019050919050565b600061395d826131d2565b9050919050565b61396d81613952565b82525050565b6000606082019050613988600083018661361a565b6139956020830185613964565b6139a260408301846130ac565b949350505050565b6000815190506139b9816135c1565b92915050565b6000602082840312156139d5576139d4612fd7565b5b60006139e3848285016139aa565b91505092915050565b60006139f7826130a2565b9150613a02836130a2565b9250828201905080821115613a1a57613a196138db565b5b92915050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000613a566013836137cc565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ac26020836137cc565b9150613acd82613a8c565b602082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b6000613b2e6019836137cc565b9150613b3982613af8565b602082019050919050565b60006020820190508181036000830152613b5d81613b21565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b6000613b9a6010836137cc565b9150613ba582613b64565b602082019050919050565b60006020820190508181036000830152613bc981613b8d565b9050919050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000613c066012836137cc565b9150613c1182613bd0565b602082019050919050565b60006020820190508181036000830152613c3581613bf9565b9050919050565b6000604082019050613c51600083018561361a565b613c5e60208301846130ac565b9392505050565b7f41646472657373657320616e6420616d6f756e7473206d75737420626520657160008201527f75616c0000000000000000000000000000000000000000000000000000000000602082015250565b6000613cc16023836137cc565b9150613ccc82613c65565b604082019050919050565b60006020820190508181036000830152613cf081613cb4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600069ffffffffffffffffffff82169050919050565b613d4581613d26565b8114613d5057600080fd5b50565b600081519050613d6281613d3c565b92915050565b6000819050919050565b613d7b81613d68565b8114613d8657600080fd5b50565b600081519050613d9881613d72565b92915050565b600081519050613dad816130d6565b92915050565b600080600080600060a08688031215613dcf57613dce612fd7565b5b6000613ddd88828901613d53565b9550506020613dee88828901613d89565b9450506040613dff88828901613d9e565b9350506060613e1088828901613d9e565b9250506080613e2188828901613d53565b9150509295509295909350565b6000613e3982613d68565b9150613e4483613d68565b9250828202613e5281613d68565b91507f80000000000000000000000000000000000000000000000000000000000000008414600084121615613e8a57613e896138db565b5b8282058414831517613e9f57613e9e6138db565b5b5092915050565b7f416c726561647920656e64656400000000000000000000000000000000000000600082015250565b6000613edc600d836137cc565b9150613ee782613ea6565b602082019050919050565b60006020820190508181036000830152613f0b81613ecf565b9050919050565b6000613f1d826130a2565b9150613f28836130a2565b9250828202613f36816130a2565b91508282048414831517613f4d57613f4c6138db565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f8e826130a2565b9150613f99836130a2565b925082613fa957613fa8613f54565b5b828204905092915050565b6000604082019050613fc96000830185613964565b613fd660208301846130ac565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140396026836137cc565b915061404482613fdd565b604082019050919050565b600060208201905081810360008301526140688161402c565b905091905056fea2646970667358221220e6c5ed60bdbdb31ba9dd5301cab6400077ae30c9b56bb048834c11b27c7810c864736f6c63430008120033

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

000000000000000000000000110429d46bb2e1e731f390e74e045f86e524ff24000000000000000000000000d0aaf1a475c1927812832c51896fee248d3c0202

-----Decoded View---------------
Arg [0] : _token (address): 0x110429D46Bb2e1E731F390e74E045f86E524ff24
Arg [1] : _fundReceiver (address): 0xD0Aaf1A475C1927812832c51896FEe248d3C0202

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000110429d46bb2e1e731f390e74e045f86e524ff24
Arg [1] : 000000000000000000000000d0aaf1a475c1927812832c51896fee248d3c0202


Deployed Bytecode Sourcemap

3478:11400:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4163:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11434:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4681:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8749:991;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14604:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3808:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3701:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6037:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3513:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4125:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13777:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10922:504;;;;;;;;;;;;;:::i;:::-;;14241:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3956:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12942:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13970:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4060:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13322:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1052:103;;;;;;;;;;;;;:::i;:::-;;3845:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13213:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4091:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4344:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3735:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11655:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3621:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6263:196;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14399:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11764:133;;;;;;;;;;;;;:::i;:::-;;6535:1073;;;:::i;:::-;;4637:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;4234:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4312:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7683:991;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14747:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4028:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3543:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4201:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11952:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3990:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9748:1166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14087:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4379:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12676:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1310:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3775:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4268:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4727:39;;;;;;;;;;;;;;;;;;;;;;:::o;4163:31::-;;;;:::o;11434:213::-;11526:16;11560:18;11581:6;:16;11588:8;11581:16;;;;;;;;;;;11560:37;;;;;;;;;;;;;;;;;;;11616:5;:22;;;11608:31;;;11434:213;;;:::o;4681:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;8749:991::-;8830:14;;;;;;;;;;;8829:15;8821:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8882:13;;;;;;;;;;;8874:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8952:7;:19;8960:10;8952:19;;;;;;;;;;;;;;;;;;;;;;;;;8947:154;;9010:4;8988:7;:19;8996:10;8988:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9029:12;;:14;;;;;;;;;:::i;:::-;;;;;;9058;9078:10;9058:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8947:154;9111:4;;;;;;;;;;;:17;;;9129:10;9141:12;;;;;;;;;;;9155:6;9111:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9175:22;9225:33;9237:6;9245:12;;9225:11;:33::i;:::-;9208:50;;9321:12;;9303:14;9291:9;;:26;;;;:::i;:::-;:42;;9269:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;9417:14;9405:9;;:26;;;;:::i;:::-;9393:9;:38;;;;9480:6;9461:16;;:25;;;;:::i;:::-;9442:16;:44;;;;9512:6;9497:11;;:21;;;;;;;:::i;:::-;;;;;;;;9565:6;9531:5;:17;9537:10;9531:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;9655:14;9620:5;:17;9626:10;9620:17;;;;;;;;;;;;;;;:33;;;:49;;;;:::i;:::-;9584:5;:17;9590:10;9584:17;;;;;;;;;;;;;;;:33;;:85;;;;9718:14;9682:5;:17;9688:10;9682:17;;;;;;;;;;;;;;;:32;;;:50;;;;;;;:::i;:::-;;;;;;;;8810:930;8749:991;:::o;14604:104::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14691:9:::1;14676:12;:24;;;;14604:104:::0;:::o;3808:26::-;;;;;;;;;;;;;:::o;3701:27::-;;;;:::o;6037:180::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6192:17:::1;6156:6;:16;6163:8;6156:16;;;;;;;;;;;:33;;:53;;;;6037:180:::0;;:::o;3513:23::-;;;;;;;;;;;;;:::o;4125:31::-;;;;:::o;13777:145::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13877:5:::1;13863:4;;:20;;;;;;;;;;;;;;;;;;13908:5;13894:4;;:20;;;;;;;;;;;;;;;;;;13777:145:::0;;:::o;10922:504::-;10973:14;;;;;;;;;;;10965:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11036:7;:19;11044:10;11036:19;;;;;;;;;;;;;;;;;;;;;;;;;11028:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11087:17;11107:5;:17;11113:10;11107:17;;;;;;;;;;;;;;;11087:37;;11135:19;11157:4;:20;;;11135:42;;11210:1;11196:11;:15;11188:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11267:11;11245:4;:18;;;:33;;;;;;;:::i;:::-;;;;;;;;11289:9;;;;;;;;;;;:18;;;11308:10;11320:11;11289:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11366:1;11343:4;:20;;:24;;;;11406:11;11383:35;11394:10;11383:35;;;;;;:::i;:::-;;;;;;;;10954:472;;10922:504::o;14241:110::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14337:5:::1;14314:12;;:29;;;;;;;;;;;;;;;;;;14241:110:::0;:::o;3956:27::-;;;;:::o;12942:241::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13094:5:::1;13082:9;:17;;;;13125:7;13110:12;:22;;;;13162:13;13143:16;:32;;;;12942:241:::0;;;:::o;13970:109::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14042:12:::1;;;;;;;;;;;:21;;:29;14064:6;14042:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13970:109:::0;:::o;4060:24::-;;;;:::o;13322:418::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13508:12:::1;:19;13487:10;:17;:40;13465:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;13608:9;13603:130;13627:10;:17;13623:1;:21;13603:130;;;13706:12;13719:1;13706:15;;;;;;;;:::i;:::-;;;;;;;;13666:5;:20;13672:10;13683:1;13672:13;;;;;;;;:::i;:::-;;;;;;;;13666:20;;;;;;;;;;;;;;;:36;;;:55;;;;;;;:::i;:::-;;;;;;;;13646:3;;;;;:::i;:::-;;;;13603:130;;;;13322:418:::0;;:::o;1052:103::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:30:::1;1144:1;1117:18;:30::i;:::-;1052:103::o:0;3845:38::-;;;;;;;;;;;;;:::o;13213:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13299:6:::1;13280:9;;:26;;;;;;;;;;;;;;;;;;13213:101:::0;:::o;4091:27::-;;;;:::o;4344:26::-;;;;;;;;;;;;;:::o;3735:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11655:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11741:7:::1;11725:13;;:23;;;;;;;;;;;;;;;;;;11655:101:::0;:::o;3621:71::-;;;;;;;;;;;;;:::o;744:87::-;790:7;817:6;;;;;;;;;;;810:13;;744:87;:::o;6263:196::-;6310:7;6333:12;6355:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6330:52;;;;;;6411:6;6402:5;:16;;;;:::i;:::-;6393:26;;6445:5;6430:21;;;6263:196;:::o;14399:142::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14523:10:::1;14511:9;;:22;;;;;;;;;;;;;;;;;;14399:142:::0;:::o;11764:133::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11825:14:::1;;;;;;;;;;;11824:15;11816:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11885:4;11868:14;;:21;;;;;;;;;;;;;;;;;;11764:133::o:0;6535:1073::-;6590:14;;;;;;;;;;;6589:15;6581:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6642:13;;;;;;;;;;;6634:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6712:7;:19;6720:10;6712:19;;;;;;;;;;;;;;;;;;;;;;;;;6707:154;;6770:4;6748:7;:19;6756:10;6748:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6789:12;;:14;;;;;;;;;:::i;:::-;;;;;;6818;6838:10;6818:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6707:154;6871:12;;;;;;;;;;;:21;;:32;6893:9;6871:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6916:17;6980:11;6971:3;6950:16;:14;:16::i;:::-;6937:9;:30;;;;:::i;:::-;:38;;;;:::i;:::-;6936:56;;;;:::i;:::-;6916:76;;7003:22;7053:38;7067:9;7078:12;;7053:13;:38::i;:::-;7036:55;;7154:12;;7136:14;7124:9;;:26;;;;:::i;:::-;:42;;7102:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;7249:14;7236:9;;:28;;;;:::i;:::-;7224:9;:40;;;;7305:9;7290:12;;:24;;;;:::i;:::-;7275:12;:39;;;;7340:9;7325:11;;:24;;;;;;;:::i;:::-;;;;;;;;7433:9;7397:5;:17;7403:10;7397:17;;;;;;;;;;;;;;;:32;;;:46;;;;:::i;:::-;7362:5;:17;7368:10;7362:17;;;;;;;;;;;;;;;:32;;:81;;;;7525:14;7490:5;:17;7496:10;7490:17;;;;;;;;;;;;;;;:33;;;:49;;;;:::i;:::-;7454:5;:17;7460:10;7454:17;;;;;;;;;;;;;;;:33;;:85;;;;7586:14;7550:5;:17;7556:10;7550:17;;;;;;;;;;;;;;;:32;;;:50;;;;;;;:::i;:::-;;;;;;;;6570:1038;;6535:1073::o;4637:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4234:27::-;;;;:::o;4312:25::-;;;;;;;;;;;;;:::o;7683:991::-;7764:14;;;;;;;;;;;7763:15;7755:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7816:13;;;;;;;;;;;7808:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7886:7;:19;7894:10;7886:19;;;;;;;;;;;;;;;;;;;;;;;;;7881:154;;7944:4;7922:7;:19;7930:10;7922:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7963:12;;:14;;;;;;;;;:::i;:::-;;;;;;7992;8012:10;7992:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7881:154;8045:4;;;;;;;;;;;:17;;;8063:10;8075:12;;;;;;;;;;;8089:6;8045:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8109:22;8159:33;8171:6;8179:12;;8159:11;:33::i;:::-;8142:50;;8255:12;;8237:14;8225:9;;:26;;;;:::i;:::-;:42;;8203:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8349:14;8337:9;;:26;;;;:::i;:::-;8325:9;:38;;;;8412:6;8393:16;;:25;;;;:::i;:::-;8374:16;:44;;;;8444:6;8429:11;;:21;;;;;;;:::i;:::-;;;;;;;;8497:6;8463:5;:17;8469:10;8463:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;8585:14;8550:5;:17;8556:10;8550:17;;;;;;;;;;;;;;;:33;;;:49;;;;:::i;:::-;8514:5;:17;8520:10;8514:17;;;;;;;;;;;;;;;:33;;:85;;;;8652:14;8616:5;:17;8622:10;8616:17;;;;;;;;;;;;;;;:32;;;:50;;;;;;;:::i;:::-;;;;;;;;7744:930;7683:991;:::o;14747:128::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14831:5:::1;:14;;;14846:12;;;;;;;;;;;14860:6;14831:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14747:128:::0;;:::o;4028:25::-;;;;:::o;3543:71::-;;;;;;;;;;;;;:::o;4201:26::-;;;;:::o;11952:348::-;12057:7;12082:16;12142:15;12133:3;12113:16;:14;:16::i;:::-;12102:7;:28;;;;:::i;:::-;:35;;;;:::i;:::-;12101:57;;;;:::i;:::-;12082:76;;12169:22;12256:3;12206:6;:15;12213:7;12206:15;;;;;;;;;;;:32;;;12195:8;:43;;;;:::i;:::-;12194:66;;;;:::i;:::-;12169:91;;12278:14;12271:21;;;;11952:348;;;;:::o;3990:31::-;;;;:::o;9748:1166::-;9867:14;;;;;;;;;;;9866:15;9858:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9919:13;;;;;;;;;;;9911:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9989:7;:14;9997:5;9989:14;;;;;;;;;;;;;;;;;;;;;;;;;9984:139;;10037:4;10020:7;:14;10028:5;10020:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10056:12;;:14;;;;;;;;;:::i;:::-;;;;;;10085;10105:5;10085:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9984:139;10133:12;;;;;;;;;;;:21;;:32;10155:9;10133:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10176:17;10237:11;10229:3;10210:16;:14;:16::i;:::-;10197:9;:30;;;;:::i;:::-;:35;;;;:::i;:::-;10196:53;;;;:::i;:::-;10176:73;;10262:22;10312:38;10326:9;10337:12;;10312:13;:38::i;:::-;10295:55;;10413:12;;10395:14;10383:9;;:26;;;;:::i;:::-;:42;;10361:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;10510:14;10497:9;;:28;;;;:::i;:::-;10485:9;:40;;;;10566:9;10551:12;;:24;;;;:::i;:::-;10536:12;:39;;;;10601:9;10586:11;;:24;;;;;;;:::i;:::-;;;;;;;;10684:9;10653:5;:12;10659:5;10653:12;;;;;;;;;;;;;;;:27;;;:41;;;;:::i;:::-;10623:5;:12;10629:5;10623:12;;;;;;;;;;;;;;;:27;;:71;;;;10793:14;10749:5;:12;10755:5;10749:12;;;;;;;;;;;;;;;:28;;;:58;;;;:::i;:::-;10705:5;:12;10711:5;10705:12;;;;;;;;;;;;;;;:28;;:102;;;;10838:12;10818:16;;:32;;;;;;;:::i;:::-;;;;;;;;10892:14;10861:5;:12;10867:5;10861:12;;;;;;;;;;;;;;;:27;;;:45;;;;;;;:::i;:::-;;;;;;;;9847:1067;;9748:1166;;:::o;14087:106::-;14137:7;14164:14;:21;;;;14157:28;;14087:106;:::o;4379:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12676:258::-;12779:7;12804:22;12890:3;12840:6;:15;12847:7;12840:15;;;;;;;;;;;:32;;;12830:7;:42;;;;:::i;:::-;12829:65;;;;:::i;:::-;12804:90;;12912:14;12905:21;;;12676:258;;;;:::o;1310:238::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1433:1:::1;1413:22;;:8;:22;;::::0;1391:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1512:28;1531:8;1512:18;:28::i;:::-;1310:238:::0;:::o;3775:26::-;;;;:::o;4268:35::-;;;;;;;;;;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;1708:191::-;1782:16;1801:6;;;;;;;;;;;1782:25;;1827:8;1818:6;;:17;;;;;;;;;;;;;;;;;;1882:8;1851:40;;1872:8;1851:40;;;;;;;;;;;;1771:128;1708:191;:::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:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:77::-;1640:7;1669:5;1658:16;;1603:77;;;:::o;1686:118::-;1773:24;1791:5;1773:24;:::i;:::-;1768:3;1761:37;1686:118;;:::o;1810:222::-;1903:4;1941:2;1930:9;1926:18;1918:26;;1954:71;2022:1;2011:9;2007:17;1998:6;1954:71;:::i;:::-;1810:222;;;;:::o;2038:122::-;2111:24;2129:5;2111:24;:::i;:::-;2104:5;2101:35;2091:63;;2150:1;2147;2140:12;2091:63;2038:122;:::o;2166:139::-;2212:5;2250:6;2237:20;2228:29;;2266:33;2293:5;2266:33;:::i;:::-;2166:139;;;;:::o;2311:329::-;2370:6;2419:2;2407:9;2398:7;2394:23;2390:32;2387:119;;;2425:79;;:::i;:::-;2387:119;2545:1;2570:53;2615:7;2606:6;2595:9;2591:22;2570:53;:::i;:::-;2560:63;;2516:117;2311:329;;;;:::o;2646:86::-;2681:7;2721:4;2714:5;2710:16;2699:27;;2646:86;;;:::o;2738:112::-;2821:22;2837:5;2821:22;:::i;:::-;2816:3;2809:35;2738:112;;:::o;2856:214::-;2945:4;2983:2;2972:9;2968:18;2960:26;;2996:67;3060:1;3049:9;3045:17;3036:6;2996:67;:::i;:::-;2856:214;;;;:::o;3076:474::-;3144:6;3152;3201:2;3189:9;3180:7;3176:23;3172:32;3169:119;;;3207:79;;:::i;:::-;3169:119;3327:1;3352:53;3397:7;3388:6;3377:9;3373:22;3352:53;:::i;:::-;3342:63;;3298:117;3454:2;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3425:118;3076:474;;;;;:::o;3556:60::-;3584:3;3605:5;3598:12;;3556:60;;;:::o;3622:142::-;3672:9;3705:53;3723:34;3732:24;3750:5;3732:24;:::i;:::-;3723:34;:::i;:::-;3705:53;:::i;:::-;3692:66;;3622:142;;;:::o;3770:126::-;3820:9;3853:37;3884:5;3853:37;:::i;:::-;3840:50;;3770:126;;;:::o;3902:140::-;3966:9;3999:37;4030:5;3999:37;:::i;:::-;3986:50;;3902:140;;;:::o;4048:159::-;4149:51;4194:5;4149:51;:::i;:::-;4144:3;4137:64;4048:159;;:::o;4213:250::-;4320:4;4358:2;4347:9;4343:18;4335:26;;4371:85;4453:1;4442:9;4438:17;4429:6;4371:85;:::i;:::-;4213:250;;;;:::o;4469:110::-;4520:7;4549:24;4567:5;4549:24;:::i;:::-;4538:35;;4469:110;;;:::o;4585:150::-;4672:38;4704:5;4672:38;:::i;:::-;4665:5;4662:49;4652:77;;4725:1;4722;4715:12;4652:77;4585:150;:::o;4741:167::-;4801:5;4839:6;4826:20;4817:29;;4855:47;4896:5;4855:47;:::i;:::-;4741:167;;;;:::o;4914:530::-;5010:6;5018;5067:2;5055:9;5046:7;5042:23;5038:32;5035:119;;;5073:79;;:::i;:::-;5035:119;5193:1;5218:67;5277:7;5268:6;5257:9;5253:22;5218:67;:::i;:::-;5208:77;;5164:131;5334:2;5360:67;5419:7;5410:6;5399:9;5395:22;5360:67;:::i;:::-;5350:77;;5305:132;4914:530;;;;;:::o;5450:619::-;5527:6;5535;5543;5592:2;5580:9;5571:7;5567:23;5563:32;5560:119;;;5598:79;;:::i;:::-;5560:119;5718:1;5743:53;5788:7;5779:6;5768:9;5764:22;5743:53;:::i;:::-;5733:63;;5689:117;5845:2;5871:53;5916:7;5907:6;5896:9;5892:22;5871:53;:::i;:::-;5861:63;;5816:118;5973:2;5999:53;6044:7;6035:6;6024:9;6020:22;5999:53;:::i;:::-;5989:63;;5944:118;5450:619;;;;;:::o;6075:117::-;6184:1;6181;6174:12;6198:102;6239:6;6290:2;6286:7;6281:2;6274:5;6270:14;6266:28;6256:38;;6198:102;;;:::o;6306:180::-;6354:77;6351:1;6344:88;6451:4;6448:1;6441:15;6475:4;6472:1;6465:15;6492:281;6575:27;6597:4;6575:27;:::i;:::-;6567:6;6563:40;6705:6;6693:10;6690:22;6669:18;6657:10;6654:34;6651:62;6648:88;;;6716:18;;:::i;:::-;6648:88;6756:10;6752:2;6745:22;6535:238;6492:281;;:::o;6779:129::-;6813:6;6840:20;;:::i;:::-;6830:30;;6869:33;6897:4;6889:6;6869:33;:::i;:::-;6779:129;;;:::o;6914:311::-;6991:4;7081:18;7073:6;7070:30;7067:56;;;7103:18;;:::i;:::-;7067:56;7153:4;7145:6;7141:17;7133:25;;7213:4;7207;7203:15;7195:23;;6914:311;;;:::o;7231:117::-;7340:1;7337;7330:12;7371:710;7467:5;7492:81;7508:64;7565:6;7508:64;:::i;:::-;7492:81;:::i;:::-;7483:90;;7593:5;7622:6;7615:5;7608:21;7656:4;7649:5;7645:16;7638:23;;7709:4;7701:6;7697:17;7689:6;7685:30;7738:3;7730:6;7727:15;7724:122;;;7757:79;;:::i;:::-;7724:122;7872:6;7855:220;7889:6;7884:3;7881:15;7855:220;;;7964:3;7993:37;8026:3;8014:10;7993:37;:::i;:::-;7988:3;7981:50;8060:4;8055:3;8051:14;8044:21;;7931:144;7915:4;7910:3;7906:14;7899:21;;7855:220;;;7859:21;7473:608;;7371:710;;;;;:::o;8104:370::-;8175:5;8224:3;8217:4;8209:6;8205:17;8201:27;8191:122;;8232:79;;:::i;:::-;8191:122;8349:6;8336:20;8374:94;8464:3;8456:6;8449:4;8441:6;8437:17;8374:94;:::i;:::-;8365:103;;8181:293;8104:370;;;;:::o;8480:311::-;8557:4;8647:18;8639:6;8636:30;8633:56;;;8669:18;;:::i;:::-;8633:56;8719:4;8711:6;8707:17;8699:25;;8779:4;8773;8769:15;8761:23;;8480:311;;;:::o;8814:710::-;8910:5;8935:81;8951:64;9008:6;8951:64;:::i;:::-;8935:81;:::i;:::-;8926:90;;9036:5;9065:6;9058:5;9051:21;9099:4;9092:5;9088:16;9081:23;;9152:4;9144:6;9140:17;9132:6;9128:30;9181:3;9173:6;9170:15;9167:122;;;9200:79;;:::i;:::-;9167:122;9315:6;9298:220;9332:6;9327:3;9324:15;9298:220;;;9407:3;9436:37;9469:3;9457:10;9436:37;:::i;:::-;9431:3;9424:50;9503:4;9498:3;9494:14;9487:21;;9374:144;9358:4;9353:3;9349:14;9342:21;;9298:220;;;9302:21;8916:608;;8814:710;;;;;:::o;9547:370::-;9618:5;9667:3;9660:4;9652:6;9648:17;9644:27;9634:122;;9675:79;;:::i;:::-;9634:122;9792:6;9779:20;9817:94;9907:3;9899:6;9892:4;9884:6;9880:17;9817:94;:::i;:::-;9808:103;;9624:293;9547:370;;;;:::o;9923:894::-;10041:6;10049;10098:2;10086:9;10077:7;10073:23;10069:32;10066:119;;;10104:79;;:::i;:::-;10066:119;10252:1;10241:9;10237:17;10224:31;10282:18;10274:6;10271:30;10268:117;;;10304:79;;:::i;:::-;10268:117;10409:78;10479:7;10470:6;10459:9;10455:22;10409:78;:::i;:::-;10399:88;;10195:302;10564:2;10553:9;10549:18;10536:32;10595:18;10587:6;10584:30;10581:117;;;10617:79;;:::i;:::-;10581:117;10722:78;10792:7;10783:6;10772:9;10768:22;10722:78;:::i;:::-;10712:88;;10507:303;9923:894;;;;;:::o;10823:155::-;10902:9;10935:37;10966:5;10935:37;:::i;:::-;10922:50;;10823:155;;;:::o;10984:189::-;11100:66;11160:5;11100:66;:::i;:::-;11095:3;11088:79;10984:189;;:::o;11179:280::-;11301:4;11339:2;11328:9;11324:18;11316:26;;11352:100;11449:1;11438:9;11434:17;11425:6;11352:100;:::i;:::-;11179:280;;;;:::o;11465:116::-;11535:21;11550:5;11535:21;:::i;:::-;11528:5;11525:32;11515:60;;11571:1;11568;11561:12;11515:60;11465:116;:::o;11587:133::-;11630:5;11668:6;11655:20;11646:29;;11684:30;11708:5;11684:30;:::i;:::-;11587:133;;;;:::o;11726:323::-;11782:6;11831:2;11819:9;11810:7;11806:23;11802:32;11799:119;;;11837:79;;:::i;:::-;11799:119;11957:1;11982:50;12024:7;12015:6;12004:9;12000:22;11982:50;:::i;:::-;11972:60;;11928:114;11726:323;;;;:::o;12055:118::-;12142:24;12160:5;12142:24;:::i;:::-;12137:3;12130:37;12055:118;;:::o;12179:222::-;12272:4;12310:2;12299:9;12295:18;12287:26;;12323:71;12391:1;12380:9;12376:17;12367:6;12323:71;:::i;:::-;12179:222;;;;:::o;12407:125::-;12473:7;12502:24;12520:5;12502:24;:::i;:::-;12491:35;;12407:125;;;:::o;12538:180::-;12640:53;12687:5;12640:53;:::i;:::-;12633:5;12630:64;12620:92;;12708:1;12705;12698:12;12620:92;12538:180;:::o;12724:197::-;12799:5;12837:6;12824:20;12815:29;;12853:62;12909:5;12853:62;:::i;:::-;12724:197;;;;:::o;12927:387::-;13015:6;13064:2;13052:9;13043:7;13039:23;13035:32;13032:119;;;13070:79;;:::i;:::-;13032:119;13190:1;13215:82;13289:7;13280:6;13269:9;13265:22;13215:82;:::i;:::-;13205:92;;13161:146;12927:387;;;;:::o;13320:775::-;13553:4;13591:3;13580:9;13576:19;13568:27;;13605:71;13673:1;13662:9;13658:17;13649:6;13605:71;:::i;:::-;13686:72;13754:2;13743:9;13739:18;13730:6;13686:72;:::i;:::-;13768;13836:2;13825:9;13821:18;13812:6;13768:72;:::i;:::-;13850;13918:2;13907:9;13903:18;13894:6;13850:72;:::i;:::-;13932:73;14000:3;13989:9;13985:19;13976:6;13932:73;:::i;:::-;14015;14083:3;14072:9;14068:19;14059:6;14015:73;:::i;:::-;13320:775;;;;;;;;;:::o;14101:502::-;14183:6;14191;14240:2;14228:9;14219:7;14215:23;14211:32;14208:119;;;14246:79;;:::i;:::-;14208:119;14366:1;14391:67;14450:7;14441:6;14430:9;14426:22;14391:67;:::i;:::-;14381:77;;14337:131;14507:2;14533:53;14578:7;14569:6;14558:9;14554:22;14533:53;:::i;:::-;14523:63;;14478:118;14101:502;;;;;:::o;14609:474::-;14677:6;14685;14734:2;14722:9;14713:7;14709:23;14705:32;14702:119;;;14740:79;;:::i;:::-;14702:119;14860:1;14885:53;14930:7;14921:6;14910:9;14906:22;14885:53;:::i;:::-;14875:63;;14831:117;14987:2;15013:53;15058:7;15049:6;15038:9;15034:22;15013:53;:::i;:::-;15003:63;;14958:118;14609:474;;;;;:::o;15089:104::-;15134:7;15163:24;15181:5;15163:24;:::i;:::-;15152:35;;15089:104;;;:::o;15199:142::-;15302:32;15328:5;15302:32;:::i;:::-;15297:3;15290:45;15199:142;;:::o;15347:254::-;15456:4;15494:2;15483:9;15479:18;15471:26;;15507:87;15591:1;15580:9;15576:17;15567:6;15507:87;:::i;:::-;15347:254;;;;:::o;15607:169::-;15691:11;15725:6;15720:3;15713:19;15765:4;15760:3;15756:14;15741:29;;15607:169;;;;:::o;15782:164::-;15922:16;15918:1;15910:6;15906:14;15899:40;15782:164;:::o;15952:366::-;16094:3;16115:67;16179:2;16174:3;16115:67;:::i;:::-;16108:74;;16191:93;16280:3;16191:93;:::i;:::-;16309:2;16304:3;16300:12;16293:19;;15952:366;;;:::o;16324:419::-;16490:4;16528:2;16517:9;16513:18;16505:26;;16577:9;16571:4;16567:20;16563:1;16552:9;16548:17;16541:47;16605:131;16731:4;16605:131;:::i;:::-;16597:139;;16324:419;;;:::o;16749:223::-;16889:34;16885:1;16877:6;16873:14;16866:58;16958:6;16953:2;16945:6;16941:15;16934:31;16749:223;:::o;16978:366::-;17120:3;17141:67;17205:2;17200:3;17141:67;:::i;:::-;17134:74;;17217:93;17306:3;17217:93;:::i;:::-;17335:2;17330:3;17326:12;17319:19;;16978:366;;;:::o;17350:419::-;17516:4;17554:2;17543:9;17539:18;17531:26;;17603:9;17597:4;17593:20;17589:1;17578:9;17574:17;17567:47;17631:131;17757:4;17631:131;:::i;:::-;17623:139;;17350:419;;;:::o;17775:180::-;17823:77;17820:1;17813:88;17920:4;17917:1;17910:15;17944:4;17941:1;17934:15;17961:233;18000:3;18023:24;18041:5;18023:24;:::i;:::-;18014:33;;18069:66;18062:5;18059:77;18056:103;;18139:18;;:::i;:::-;18056:103;18186:1;18179:5;18175:13;18168:20;;17961:233;;;:::o;18200:134::-;18258:9;18291:37;18322:5;18291:37;:::i;:::-;18278:50;;18200:134;;;:::o;18340:147::-;18435:45;18474:5;18435:45;:::i;:::-;18430:3;18423:58;18340:147;;:::o;18493:458::-;18650:4;18688:2;18677:9;18673:18;18665:26;;18701:71;18769:1;18758:9;18754:17;18745:6;18701:71;:::i;:::-;18782:80;18858:2;18847:9;18843:18;18834:6;18782:80;:::i;:::-;18872:72;18940:2;18929:9;18925:18;18916:6;18872:72;:::i;:::-;18493:458;;;;;;:::o;18957:137::-;19011:5;19042:6;19036:13;19027:22;;19058:30;19082:5;19058:30;:::i;:::-;18957:137;;;;:::o;19100:345::-;19167:6;19216:2;19204:9;19195:7;19191:23;19187:32;19184:119;;;19222:79;;:::i;:::-;19184:119;19342:1;19367:61;19420:7;19411:6;19400:9;19396:22;19367:61;:::i;:::-;19357:71;;19313:125;19100:345;;;;:::o;19451:191::-;19491:3;19510:20;19528:1;19510:20;:::i;:::-;19505:25;;19544:20;19562:1;19544:20;:::i;:::-;19539:25;;19587:1;19584;19580:9;19573:16;;19608:3;19605:1;19602:10;19599:36;;;19615:18;;:::i;:::-;19599:36;19451:191;;;;:::o;19648:169::-;19788:21;19784:1;19776:6;19772:14;19765:45;19648:169;:::o;19823:366::-;19965:3;19986:67;20050:2;20045:3;19986:67;:::i;:::-;19979:74;;20062:93;20151:3;20062:93;:::i;:::-;20180:2;20175:3;20171:12;20164:19;;19823:366;;;:::o;20195:419::-;20361:4;20399:2;20388:9;20384:18;20376:26;;20448:9;20442:4;20438:20;20434:1;20423:9;20419:17;20412:47;20476:131;20602:4;20476:131;:::i;:::-;20468:139;;20195:419;;;:::o;20620:182::-;20760:34;20756:1;20748:6;20744:14;20737:58;20620:182;:::o;20808:366::-;20950:3;20971:67;21035:2;21030:3;20971:67;:::i;:::-;20964:74;;21047:93;21136:3;21047:93;:::i;:::-;21165:2;21160:3;21156:12;21149:19;;20808:366;;;:::o;21180:419::-;21346:4;21384:2;21373:9;21369:18;21361:26;;21433:9;21427:4;21423:20;21419:1;21408:9;21404:17;21397:47;21461:131;21587:4;21461:131;:::i;:::-;21453:139;;21180:419;;;:::o;21605:175::-;21745:27;21741:1;21733:6;21729:14;21722:51;21605:175;:::o;21786:366::-;21928:3;21949:67;22013:2;22008:3;21949:67;:::i;:::-;21942:74;;22025:93;22114:3;22025:93;:::i;:::-;22143:2;22138:3;22134:12;22127:19;;21786:366;;;:::o;22158:419::-;22324:4;22362:2;22351:9;22347:18;22339:26;;22411:9;22405:4;22401:20;22397:1;22386:9;22382:17;22375:47;22439:131;22565:4;22439:131;:::i;:::-;22431:139;;22158:419;;;:::o;22583:166::-;22723:18;22719:1;22711:6;22707:14;22700:42;22583:166;:::o;22755:366::-;22897:3;22918:67;22982:2;22977:3;22918:67;:::i;:::-;22911:74;;22994:93;23083:3;22994:93;:::i;:::-;23112:2;23107:3;23103:12;23096:19;;22755:366;;;:::o;23127:419::-;23293:4;23331:2;23320:9;23316:18;23308:26;;23380:9;23374:4;23370:20;23366:1;23355:9;23351:17;23344:47;23408:131;23534:4;23408:131;:::i;:::-;23400:139;;23127:419;;;:::o;23552:168::-;23692:20;23688:1;23680:6;23676:14;23669:44;23552:168;:::o;23726:366::-;23868:3;23889:67;23953:2;23948:3;23889:67;:::i;:::-;23882:74;;23965:93;24054:3;23965:93;:::i;:::-;24083:2;24078:3;24074:12;24067:19;;23726:366;;;:::o;24098:419::-;24264:4;24302:2;24291:9;24287:18;24279:26;;24351:9;24345:4;24341:20;24337:1;24326:9;24322:17;24315:47;24379:131;24505:4;24379:131;:::i;:::-;24371:139;;24098:419;;;:::o;24523:332::-;24644:4;24682:2;24671:9;24667:18;24659:26;;24695:71;24763:1;24752:9;24748:17;24739:6;24695:71;:::i;:::-;24776:72;24844:2;24833:9;24829:18;24820:6;24776:72;:::i;:::-;24523:332;;;;;:::o;24861:222::-;25001:34;24997:1;24989:6;24985:14;24978:58;25070:5;25065:2;25057:6;25053:15;25046:30;24861:222;:::o;25089:366::-;25231:3;25252:67;25316:2;25311:3;25252:67;:::i;:::-;25245:74;;25328:93;25417:3;25328:93;:::i;:::-;25446:2;25441:3;25437:12;25430:19;;25089:366;;;:::o;25461:419::-;25627:4;25665:2;25654:9;25650:18;25642:26;;25714:9;25708:4;25704:20;25700:1;25689:9;25685:17;25678:47;25742:131;25868:4;25742:131;:::i;:::-;25734:139;;25461:419;;;:::o;25886:180::-;25934:77;25931:1;25924:88;26031:4;26028:1;26021:15;26055:4;26052:1;26045:15;26072:105;26108:7;26148:22;26141:5;26137:34;26126:45;;26072:105;;;:::o;26183:120::-;26255:23;26272:5;26255:23;:::i;:::-;26248:5;26245:34;26235:62;;26293:1;26290;26283:12;26235:62;26183:120;:::o;26309:141::-;26365:5;26396:6;26390:13;26381:22;;26412:32;26438:5;26412:32;:::i;:::-;26309:141;;;;:::o;26456:76::-;26492:7;26521:5;26510:16;;26456:76;;;:::o;26538:120::-;26610:23;26627:5;26610:23;:::i;:::-;26603:5;26600:34;26590:62;;26648:1;26645;26638:12;26590:62;26538:120;:::o;26664:141::-;26720:5;26751:6;26745:13;26736:22;;26767:32;26793:5;26767:32;:::i;:::-;26664:141;;;;:::o;26811:143::-;26868:5;26899:6;26893:13;26884:22;;26915:33;26942:5;26915:33;:::i;:::-;26811:143;;;;:::o;26960:971::-;27063:6;27071;27079;27087;27095;27144:3;27132:9;27123:7;27119:23;27115:33;27112:120;;;27151:79;;:::i;:::-;27112:120;27271:1;27296:63;27351:7;27342:6;27331:9;27327:22;27296:63;:::i;:::-;27286:73;;27242:127;27408:2;27434:63;27489:7;27480:6;27469:9;27465:22;27434:63;:::i;:::-;27424:73;;27379:128;27546:2;27572:64;27628:7;27619:6;27608:9;27604:22;27572:64;:::i;:::-;27562:74;;27517:129;27685:2;27711:64;27767:7;27758:6;27747:9;27743:22;27711:64;:::i;:::-;27701:74;;27656:129;27824:3;27851:63;27906:7;27897:6;27886:9;27882:22;27851:63;:::i;:::-;27841:73;;27795:129;26960:971;;;;;;;;:::o;27937:556::-;27976:7;27999:19;28016:1;27999:19;:::i;:::-;27994:24;;28032:19;28049:1;28032:19;:::i;:::-;28027:24;;28086:1;28083;28079:9;28108:29;28125:11;28108:29;:::i;:::-;28097:40;;28195:66;28192:1;28189:73;28185:1;28182;28178:9;28174:89;28171:115;;;28266:18;;:::i;:::-;28171:115;28436:1;28427:7;28422:16;28419:1;28416:23;28396:1;28389:9;28369:84;28346:140;;28466:18;;:::i;:::-;28346:140;27984:509;27937:556;;;;:::o;28499:163::-;28639:15;28635:1;28627:6;28623:14;28616:39;28499:163;:::o;28668:366::-;28810:3;28831:67;28895:2;28890:3;28831:67;:::i;:::-;28824:74;;28907:93;28996:3;28907:93;:::i;:::-;29025:2;29020:3;29016:12;29009:19;;28668:366;;;:::o;29040:419::-;29206:4;29244:2;29233:9;29229:18;29221:26;;29293:9;29287:4;29283:20;29279:1;29268:9;29264:17;29257:47;29321:131;29447:4;29321:131;:::i;:::-;29313:139;;29040:419;;;:::o;29465:410::-;29505:7;29528:20;29546:1;29528:20;:::i;:::-;29523:25;;29562:20;29580:1;29562:20;:::i;:::-;29557:25;;29617:1;29614;29610:9;29639:30;29657:11;29639:30;:::i;:::-;29628:41;;29818:1;29809:7;29805:15;29802:1;29799:22;29779:1;29772:9;29752:83;29729:139;;29848:18;;:::i;:::-;29729:139;29513:362;29465:410;;;;:::o;29881:180::-;29929:77;29926:1;29919:88;30026:4;30023:1;30016:15;30050:4;30047:1;30040:15;30067:185;30107:1;30124:20;30142:1;30124:20;:::i;:::-;30119:25;;30158:20;30176:1;30158:20;:::i;:::-;30153:25;;30197:1;30187:35;;30202:18;;:::i;:::-;30187:35;30244:1;30241;30237:9;30232:14;;30067:185;;;;:::o;30258:348::-;30387:4;30425:2;30414:9;30410:18;30402:26;;30438:79;30514:1;30503:9;30499:17;30490:6;30438:79;:::i;:::-;30527:72;30595:2;30584:9;30580:18;30571:6;30527:72;:::i;:::-;30258:348;;;;;:::o;30612:225::-;30752:34;30748:1;30740:6;30736:14;30729:58;30821:8;30816:2;30808:6;30804:15;30797:33;30612:225;:::o;30843:366::-;30985:3;31006:67;31070:2;31065:3;31006:67;:::i;:::-;30999:74;;31082:93;31171:3;31082:93;:::i;:::-;31200:2;31195:3;31191:12;31184:19;;30843:366;;;:::o;31215:419::-;31381:4;31419:2;31408:9;31404:18;31396:26;;31468:9;31462:4;31458:20;31454:1;31443:9;31439:17;31432:47;31496:131;31622:4;31496:131;:::i;:::-;31488:139;;31215:419;;;:::o

Swarm Source

ipfs://e6c5ed60bdbdb31ba9dd5301cab6400077ae30c9b56bb048834c11b27c7810c8

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.