ETH Price: $3,278.50 (+0.84%)
Gas: 1 Gwei

Token

MoneyPot (MONEY)
 

Overview

Max Total Supply

1,090.511506149347150527 MONEY

Holders

89

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9.000000000000000042 MONEY

Value
$0.00
0x3c0428d2a6dd125acd9be5e6e340707108df06dd
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MoneyPot

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : MoneyPot.sol
// SPDX-License-Identifier: MIT


//
// Moneypot. The Good Pot
//

// https://t.me/moneypotethportal

/* 

Please read carefully:

- You can not sell any tokens you buy. 

- It's better to think of the tokens that you buy as 'tickets'. 

- 50% of the Eth that is used to buy tickets, will be distributed. This 50% is broken down into:
    - 43% reflected, as eth, to current ticket holders.
    - 2% each to the deployer and dev
    - 2% to Cuck holders
    - 1% to the person that calls the function to distribute the eth (called 'getSum')
    
- The other 50% will remain in the liquidity pool. 

- Every buy will add 5 blocks to a timer (Up to a maximum of about 3 days worth of blocks)

- When the timer runs out, the last person to buy will be sent ALL of the LP tokens, and thus effectivly, 
  all of the Eth in the liquidity pool. That is the end prize!

- When the timer runs out, all trading will stop and the only action permitted will be the winner 
  withdrawing the LP, and ticket holders claiming their reflected eth

- You can only buy a whole number of tickets at a time (eg: 1, 2, 3 etc.. - not 1.3 or 3.14)
- You can only buy up to 10 tickets in one TX, but there is no wallet limit. 
- The contract has an automatic pricing function to keep price increases linear, instead of the curve that Uniswap would apply. 
  This allows for an infinite supply. You will see lots of mints/transfers from 0x0 address to the pair address because of this. 

*/
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
pragma solidity ^0.8;


interface IUniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapPair {
	function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function balanceOf(address owner) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function sync() external;
}

interface IWETH9 {
    function deposit() external payable;
    function withdraw(uint wad) external;
    function transfer(address dst, uint wad) external returns (bool);
    function balanceOf(address owner) external view returns (uint256);
}

// The Middleman contract is created because when the main contract sells tokens for eth
// the pair contract doesn't allow transferring the eth directly back to the token contract, so we need to have a 
// middleman contract.

contract Middleman {
    address immutable wethAddress;
    address immutable MoneyPotAddress;
    IWETH9 private _weth;

    constructor(address _wethAddress, address _MoneyPotAddress){
        wethAddress = _wethAddress;
        MoneyPotAddress = _MoneyPotAddress;
        _weth = IWETH9(_wethAddress);
    }

    function send() public {
        uint256 balance = _weth.balanceOf(address(this));
        if (balance != 0){
            _weth.transfer(MoneyPotAddress, balance);
        }
    }
}

contract MoneyPot is ERC20 {
    // Maps
    // These keep track of the reflected eth balances
    mapping (address => uint256) internal withdrawnDividends;
    mapping (address => uint256) internal magnifiedDividendCorrections;
    mapping (address => uint256) internal lastBlockBuy;

    // Interfaces
    IUniswapRouter private _swapRouter;
    IUniswapPair private _swapPair;
    IWETH9 private _weth;

    // Addresses
    address private _wethAddress;
    address private _swapRouterAddress;
    address private _cuckPairAddress;
    address public swapPairAddress;
    address public lastBuyer;
    address private constant deployer = 0x0A62891336667b540045A10F87B1fd6c0Dadf94f;
    address private constant dev = 0xbb8e9B891a1f8298219bDde868B2EcbEc7f71190;

    // Booleans
    bool private immutable _isToken0;
    bool private reeeeeeee;

    // Numbers
    uint8 private constant _decimals = 18;

    uint256 public maxBlocksAhead = 21600; //3 days ish at 12 second blocks
    uint256 public maxTokensPerTx = 10*10**_decimals;
    uint256 public finishBlock;
    uint256 public tradingStartBlock;
    uint256 public ethToBeSwapped;
    uint256 public totalEthDistributed;

    uint256 public targetPrice = 5000000000000000; //0.005 eth start price
    uint256 public priceIncrease = 500000000000000; //0.005 added to each buy
    uint256 public tokensPurchased = 0;

    uint256 constant internal magnitude = 2**128;
    uint256 internal magnifiedDividendPerShare;

    // Starting supply of 40 to match 0.005 price @ 0.2 eth liquidity
    uint256 private startingSupply = 40*10**_decimals; 
 
    bool public gameOver;
    bool private liquidityAdded;


    Middleman public middleman;

    event FinishBlockEvent(uint256 blockNumber);
    event DividendsDistributed(uint256 amount, uint256 totalethToBeSwapped);
    event LastBuyerUpdate(address lastBuyer);
    event EthClaimed(address claimee, uint256 amount);
    
    constructor (
            address swapRouterAddress, 
            address cuckPairAddress, 
            address[] memory airDropRecipients,
            uint256[] memory airDropAmounts
        ) payable ERC20("MoneyPot", "MONEY")  {
        _swapRouter = IUniswapRouter(swapRouterAddress);
        _swapRouterAddress = swapRouterAddress;
        _cuckPairAddress = cuckPairAddress;
        _wethAddress = _swapRouter.WETH();
        _weth = IWETH9(_wethAddress);
        _weth.deposit{value: msg.value}();
        tradingStartBlock = block.number + 6900; // Approx 23 hrs @ 12s blocks
        finishBlock = tradingStartBlock + 3600; // Approx 12 hours after launch
        swapPairAddress = IUniswapFactory(_swapRouter.factory()).createPair(address(this), _wethAddress);
        _swapPair = IUniswapPair(swapPairAddress);
        _isToken0 = address(this) < _wethAddress ? true : false;
        middleman = new Middleman(_wethAddress, address(this));

        // Airdrop V1 recipients
        for(uint i = 0; i < airDropRecipients.length; i++) {
            super._mint(airDropRecipients[i], airDropAmounts[i]);
            tokensPurchased += airDropAmounts[i];
        }
    }


    receive() external payable {
  	}

    // Re entry protection
    modifier reeeeeee {
        require(!reeeeeeee);
        reeeeeeee = true;
        _;
        reeeeeeee = false;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tradingStartBlock < block.number, "Too early");
        require(amount > 0);

        // First off, let's see if the game is over or not
        checkGameIsOver();
        
        if (gameOver){
            // Only the 'winner' can receive tokens after the game is over 
            // This is to allow them to withdraw the liquidity easily. 
            require(to == lastBuyer, "Game is Over. Last Buyer Wins");
        } else {
            // Check that user is buying a whole number of tokens only
            // Uniswap GUI has a rounding error so if you request '1' token
            // it will ask for something slightly off, like 1.000000000000000178.
            // So we round the number slightly to make it work with the modulo check
            uint256 rounded = (amount/200)*200;
            require(rounded >= 1**_decimals, 'Min of 1 ticket buy!');
            require(rounded % (10**_decimals) == 0, "Whole number buys only!");

            // Buys only!
            require(from == swapPairAddress, "No sell for you!");

            // Can't be too greedy!
            require(rounded <= maxTokensPerTx, "Only 10 tokens per TX sers/madams");

            // We know how much the buyer paid in eth due to the difference between the pair contract's weth reserves
            // figure and the actual weth balance. So we take that difference and divide by two to create the 50% "tax"
            // that will be re-distributed to holders when someone calls the getSum function.
            uint wethReserve = _getWethReserve();
            uint pairBalance = IERC20(_swapRouter.WETH()).balanceOf(swapPairAddress); 
            ethToBeSwapped += ((pairBalance - wethReserve)/2);
            tokensPurchased += amount;
            lastBlockBuy[to] = block.number;
            lastBuyer = to;
            emit LastBuyerUpdate(to);
        }
        
        
        // Transfer the tokens using the standard ERC20 transfer function
        super._transfer(from, to, amount);

        //set new target price 
        targetPrice += priceIncrease;
        if (!gameOver){
            setTargetPrice();
            // We add 5 blocks to the countdown timer. 
            // If adding those 5 blocks causes it to exceed the maximum block number ahead, we keep it at max blocks ahead
            // So the the timer can never be longer than max blocks ahead.
            finishBlock = (finishBlock + 5)-block.number >= maxBlocksAhead ? block.number + maxBlocksAhead : finishBlock + 5;
            emit FinishBlockEvent(finishBlock);
        }       
    }

    // 
    // Public Functions
    //

    // Anyone can call this, and get paid 1% of the eth to be swapped for doing so. 
    function getSum() public payable reeeeeee {

        // Make sure there is something to be swapped, unless it's the final getSum check 
        require(ethToBeSwapped > 0 || gameOver, 'No eth to be swapped');

            
        // Figure out how much (w)eth is in the liquidity pool
        uint wethReserve;
        uint tokenReserve;
        {
            (uint reserve0, uint reserve1,) = _swapPair.getReserves();
            (wethReserve, tokenReserve) = _isToken0 ? (reserve1, reserve0) : (reserve0, reserve1);
        }
        
        // Figure out how many tokens to send (mint) to the pool to get the equivelent eth back
        // This code is pretty much the same as what is in the uniswap libraries
        // https://docs.uniswap.org/contracts/v2/reference/smart-contracts/library#getamountin
        uint numerator = tokenReserve*ethToBeSwapped*1000;
        uint denominator = (wethReserve-ethToBeSwapped)*997;
        uint amountIn = (numerator / denominator)+1;
        super._mint(swapPairAddress, amountIn);

        // Swap the now minted tokens that are in the liquidity pool for eth, sending it to the middle man contract 
        // See line 169 of the uniswap pair code as to why we need the middleman contract:
        // https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol
        // (Most contracts that have a swapBack kind of function use the uniswap router contract to execute the trade
        // which is why they dont need the middleman contract. Moneypot is better than that.
        (uint amount0Out, uint amount1Out) = _isToken0 ? (uint(0), ethToBeSwapped) : (ethToBeSwapped, uint(0));
        _swapPair.swap(amount0Out,amount1Out,address(middleman),new bytes(0));
        
        // Ask the middleman to pretty please send the weth back to us.
        middleman.send();
        ethToBeSwapped = 0;

        uint bal = _weth.balanceOf(address(this));

        //Send some weth to Cuck token LP
        uint cuckAmount = (bal*2)/100;
        _weth.transfer(_cuckPairAddress, cuckAmount);
        IUniswapPair(_cuckPairAddress).sync();
        
        // Unwrap Weth for Eth and distribute to ticket holder balances
        uint256 remainingAmount = bal-cuckAmount;
        _weth.withdraw(remainingAmount);
        _distribute(remainingAmount);

        // Make sure the price is at or near our target price.
        setTargetPrice();
        _swapPair.sync();

    }

    function checkGameIsOver() public returns (bool gameIsOver){
        if(!gameOver){
            if(block.number >= finishBlock){
                 //Call getsum for the last time
                gameOver = true;
                getSum();
            }
        } 
        return gameOver;
    }

    // This function needs to be called to send the winnings to the winner
    // You might have to call checkGameIsOver first.
    function chickenDinner() public {
        require(gameOver);
        uint256 lpBalance = _swapPair.balanceOf(address(this));
        if (lpBalance != 0){
            // Transfer LP tokens to the LP pair, ready for calling the burn function
            _swapPair.transfer(swapPairAddress, lpBalance);
            // The burn function of the LP pair contract burns the LP tokens and sends all WETH and Tokens 
            // in the pair contract to the lastBuyer address
            _swapPair.burn(lastBuyer);
        }
    }

    function claim() public reeeeeee {
        // Calculate how much sers/maaaams can have
        uint256 _withdrawableDividend = withdrawableDividendOf(msg.sender);
        require(_withdrawableDividend > 0);
        require(lastBlockBuy[msg.sender] < block.number, 'Can not claim in same block as last buy');
        withdrawnDividends[msg.sender] += _withdrawableDividend;
        bool success = _safeSend(msg.sender, _withdrawableDividend);
        require(success, 'Failed to send eth');
        emit EthClaimed(msg.sender, _withdrawableDividend);
    }

    // Can only be called once
    function addLiquidity() public {
        require(!liquidityAdded);
        _weth.transfer(swapPairAddress, _weth.balanceOf(address(this)));
        super._mint(swapPairAddress, startingSupply);
        _swapPair.mint(address(this));
        liquidityAdded = true;
    }

    function withdrawableDividendOf(address _owner) public view returns(uint256) {
        return accumulativeDividendOf(_owner) - withdrawnDividends[_owner];
    }

    function accumulativeDividendOf(address _owner) public view returns(uint256) {
        return (magnifiedDividendPerShare*balanceOf(_owner) + magnifiedDividendCorrections[_owner]) / magnitude;
    }

    //
    // Private Functions 
    // 

    // distribute eth to dev and to hodlers, 1% of eth distributed goes to whoever calls it
    function _distribute(uint256 amount) private {
        require(tokensPurchased > 0);
        require(amount > 0);

        // Calculate tax for dev/deployer
        // div by 50 cause 'amount' is 50% of the eth revenue, so div'ing by 100 would equate to 1%, not 2%.
        uint256 taxLol = (amount*2)/50; 

        // Calculate 1% reward for whoever calls this function
        uint256 reward = (amount*1)/100;

        // Send tax
        bool dev1Success = _safeSend(deployer, taxLol);
        bool dev2Success =_safeSend(dev, taxLol);
        bool rewardSuccess = _safeSend(_msgSender(), reward);
        
        require(dev1Success && dev2Success && rewardSuccess, 'Failed to distribute');

        // Distribute what remains to holders
        uint256 dividends = amount-reward-(taxLol*2);
        totalEthDistributed += dividends;
        magnifiedDividendPerShare += (dividends*magnitude) / tokensPurchased;
        emit DividendsDistributed(dividends, totalEthDistributed);
        
    }

    function _getWethReserve() private view returns (uint wethReserve){
        (uint reserve0, uint reserve1,) = _swapPair.getReserves();
        return wethReserve = _isToken0 ? reserve1 : reserve0;
    }

    // Self explanatory. I was having a bad day.
    function _fuckingUintToIntconverterBullshitIHateLifeSometimes(uint cock, uint balls) private pure returns (uint, bool) {
        return cock >= balls ? (uint(cock - balls), true) : (uint(balls - cock),false);
    }

    // Set the trading pair price back down to the target price if the price goes above teh target price
    // Side note: If you buy max tokens (10) at a time, you may be paying more than if you bought them 
    // one at a time...because of this function!
    function setTargetPrice() internal {
        // We do this by adding (minting) tokens into the swap pair contract 
        // This effectivly decreases the price per token
        uint256 wethBalance = _weth.balanceOf(swapPairAddress);
        uint256 currentBalance = balanceOf(swapPairAddress);
        uint256 targetBalance = (wethBalance*10000)/((targetPrice*10000)/(10**_decimals));

        (uint256 diff, bool positive) = _fuckingUintToIntconverterBullshitIHateLifeSometimes(targetBalance, currentBalance);

        if (diff != 0 && positive){
            super._mint(swapPairAddress, diff);
        }
    }

    function _safeSend(address recipient, uint256 value) private returns(bool success){
        (success,) = recipient.call{value: value}("");
    }
    
}

File 2 of 4 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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


/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

File 3 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

File 4 of 4 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"swapRouterAddress","type":"address"},{"internalType":"address","name":"cuckPairAddress","type":"address"},{"internalType":"address[]","name":"airDropRecipients","type":"address[]"},{"internalType":"uint256[]","name":"airDropAmounts","type":"uint256[]"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalethToBeSwapped","type":"uint256"}],"name":"DividendsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"claimee","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"FinishBlockEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"lastBuyer","type":"address"}],"name":"LastBuyerUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"accumulativeDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkGameIsOver","outputs":[{"internalType":"bool","name":"gameIsOver","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chickenDinner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethToBeSwapped","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finishBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameOver","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSum","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastBuyer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBlocksAhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokensPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"middleman","outputs":[{"internalType":"contract Middleman","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceIncrease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"targetPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensPurchased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStartBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"withdrawableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526154606010556012600a6200001a919062000a85565b600a62000028919062000ad6565b6011556611c37937e080006016556601c6bf5263400060175560006018556012600a62000056919062000a85565b602862000064919062000ad6565b601a55604051620057cd380380620057cd83398181016040528101906200008c919062000e16565b6040518060400160405280600881526020017f4d6f6e6579506f740000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d4f4e4559000000000000000000000000000000000000000000000000000000815250816003908162000109919062001107565b5080600490816200011b919062001107565b50505083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002759190620011ee565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200038357600080fd5b505af115801562000398573d6000803e3d6000fd5b5050505050611af443620003ad919062001220565b601381905550610e10601354620003c5919062001220565b601281905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000439573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045f9190620011ee565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401620004bd9291906200126c565b6020604051808303816000875af1158015620004dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005039190620011ee565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16106200060457600062000607565b60015b1515608081151581525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040516200064490620008dd565b620006519291906200126c565b604051809103906000f0801580156200066e573d6000803e3d6000fd5b50601b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b82518110156200075b576200070d838281518110620006d657620006d562001299565b5b6020026020010151838381518110620006f457620006f362001299565b5b60200260200101516200076660201b62001a241760201c565b81818151811062000723576200072262001299565b5b6020026020010151601860008282546200073e919062001220565b9250508190555080806200075290620012c8565b915050620006b2565b5050505050620013c6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007cf9062001376565b60405180910390fd5b620007ec60008383620008d360201b60201c565b806002600082825462000800919062001220565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b39190620013a9565b60405180910390a3620008cf60008383620008d860201b60201c565b5050565b505050565b505050565b6104e180620052ec83390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200097957808604811115620009515762000950620008eb565b5b6001851615620009615780820291505b808102905062000971856200091a565b945062000931565b94509492505050565b60008262000994576001905062000a67565b81620009a4576000905062000a67565b8160018114620009bd5760028114620009c857620009fe565b600191505062000a67565b60ff841115620009dd57620009dc620008eb565b5b8360020a915084821115620009f757620009f6620008eb565b5b5062000a67565b5060208310610133831016604e8410600b841016171562000a385782820a90508381111562000a325762000a31620008eb565b5b62000a67565b62000a47848484600162000927565b9250905081840481111562000a615762000a60620008eb565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a928262000a6e565b915062000a9f8362000a78565b925062000ace7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000982565b905092915050565b600062000ae38262000a6e565b915062000af08362000a6e565b925082820262000b008162000a6e565b9150828204841483151762000b1a5762000b19620008eb565b5b5092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b628262000b35565b9050919050565b62000b748162000b55565b811462000b8057600080fd5b50565b60008151905062000b948162000b69565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000bea8262000b9f565b810181811067ffffffffffffffff8211171562000c0c5762000c0b62000bb0565b5b80604052505050565b600062000c2162000b21565b905062000c2f828262000bdf565b919050565b600067ffffffffffffffff82111562000c525762000c5162000bb0565b5b602082029050602081019050919050565b600080fd5b600062000c7f62000c798462000c34565b62000c15565b9050808382526020820190506020840283018581111562000ca55762000ca462000c63565b5b835b8181101562000cd2578062000cbd888262000b83565b84526020840193505060208101905062000ca7565b5050509392505050565b600082601f83011262000cf45762000cf362000b9a565b5b815162000d0684826020860162000c68565b91505092915050565b600067ffffffffffffffff82111562000d2d5762000d2c62000bb0565b5b602082029050602081019050919050565b62000d498162000a6e565b811462000d5557600080fd5b50565b60008151905062000d698162000d3e565b92915050565b600062000d8662000d808462000d0f565b62000c15565b9050808382526020820190506020840283018581111562000dac5762000dab62000c63565b5b835b8181101562000dd9578062000dc4888262000d58565b84526020840193505060208101905062000dae565b5050509392505050565b600082601f83011262000dfb5762000dfa62000b9a565b5b815162000e0d84826020860162000d6f565b91505092915050565b6000806000806080858703121562000e335762000e3262000b2b565b5b600062000e438782880162000b83565b945050602062000e568782880162000b83565b935050604085015167ffffffffffffffff81111562000e7a5762000e7962000b30565b5b62000e888782880162000cdc565b925050606085015167ffffffffffffffff81111562000eac5762000eab62000b30565b5b62000eba8782880162000de3565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f1957607f821691505b60208210810362000f2f5762000f2e62000ed1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f5a565b62000fa5868362000f5a565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000fe862000fe262000fdc8462000a6e565b62000fbd565b62000a6e565b9050919050565b6000819050919050565b620010048362000fc7565b6200101c620010138262000fef565b84845462000f67565b825550505050565b600090565b6200103362001024565b6200104081848462000ff9565b505050565b5b8181101562001068576200105c60008262001029565b60018101905062001046565b5050565b601f821115620010b757620010818162000f35565b6200108c8462000f4a565b810160208510156200109c578190505b620010b4620010ab8562000f4a565b83018262001045565b50505b505050565b600082821c905092915050565b6000620010dc60001984600802620010bc565b1980831691505092915050565b6000620010f78383620010c9565b9150826002028217905092915050565b620011128262000ec6565b67ffffffffffffffff8111156200112e576200112d62000bb0565b5b6200113a825462000f00565b620011478282856200106c565b600060209050601f8311600181146200117f57600084156200116a578287015190505b620011768582620010e9565b865550620011e6565b601f1984166200118f8662000f35565b60005b82811015620011b95784890151825560018201915060208501945060208101905062001192565b86831015620011d95784890151620011d5601f891682620010c9565b8355505b6001600288020188555050505b505050505050565b60006020828403121562001207576200120662000b2b565b5b6000620012178482850162000b83565b91505092915050565b60006200122d8262000a6e565b91506200123a8362000a6e565b9250828201905080821115620012555762001254620008eb565b5b92915050565b620012668162000b55565b82525050565b60006040820190506200128360008301856200125b565b6200129260208301846200125b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000620012d58262000a6e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036200130a5762001309620008eb565b5b600182019050919050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200135e601f8362001315565b91506200136b8262001326565b602082019050919050565b6000602082019050818103600083015262001391816200134f565b9050919050565b620013a38162000a6e565b82525050565b6000602082019050620013c0600083018462001398565b92915050565b608051613efc620013f060003960008181610c9401528181610d5601526128f60152613efc6000f3fe6080604052600436106101dc5760003560e01c80635e307a4811610102578063bdb337d111610095578063dd62ed3e11610064578063dd62ed3e146106b8578063de0c9d57146106f5578063e8078d9414610720578063f8c3405014610737576101e3565b8063bdb337d11461060c578063cc4d819c14610637578063d798cbd214610662578063dc38679c1461068d576101e3565b8063a457c2d7116100d1578063a457c2d71461053e578063a8b9d2401461057b578063a9059cbb146105b8578063b1bc21e4146105f5576101e3565b80635e307a481461048057806370a08231146104ab57806395d89b41146104e85780639893e5b614610513576101e3565b806323b872dd1161017a578063395093511161014957806339509351146103f75780634e71d92d146104345780634ed474d71461044b578063569c5f6d14610476576101e3565b806323b872dd1461032757806327ce0147146103645780632b7e742f146103a1578063313ce567146103cc576101e3565b806309c5663b116101b657806309c5663b1461027b57806313ecfbfa146102a657806318160ddd146102d15780631b8f2fde146102fc576101e3565b806302a71bde146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610762565b60405161020a9190612bef565b60405180910390f35b34801561021f57600080fd5b50610228610768565b6040516102359190612c9a565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612d4b565b6107fa565b6040516102729190612da6565b60405180910390f35b34801561028757600080fd5b5061029061081d565b60405161029d9190612bef565b60405180910390f35b3480156102b257600080fd5b506102bb610823565b6040516102c89190612dd0565b60405180910390f35b3480156102dd57600080fd5b506102e6610849565b6040516102f39190612bef565b60405180910390f35b34801561030857600080fd5b50610311610853565b60405161031e9190612e4a565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190612e65565b610879565b60405161035b9190612da6565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612eb8565b6108a8565b6040516103989190612bef565b60405180910390f35b3480156103ad57600080fd5b506103b661092d565b6040516103c39190612bef565b60405180910390f35b3480156103d857600080fd5b506103e1610933565b6040516103ee9190612f01565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612d4b565b61093c565b60405161042b9190612da6565b60405180910390f35b34801561044057600080fd5b50610449610973565b005b34801561045757600080fd5b50610460610b3f565b60405161046d9190612bef565b60405180910390f35b61047e610b45565b005b34801561048c57600080fd5b50610495611272565b6040516104a29190612bef565b60405180910390f35b3480156104b757600080fd5b506104d260048036038101906104cd9190612eb8565b611278565b6040516104df9190612bef565b60405180910390f35b3480156104f457600080fd5b506104fd6112c0565b60405161050a9190612c9a565b60405180910390f35b34801561051f57600080fd5b50610528611352565b6040516105359190612da6565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190612d4b565b6113ab565b6040516105729190612da6565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190612eb8565b611422565b6040516105af9190612bef565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612d4b565b61147e565b6040516105ec9190612da6565b60405180910390f35b34801561060157600080fd5b5061060a6114a1565b005b34801561061857600080fd5b506106216116ea565b60405161062e9190612da6565b60405180910390f35b34801561064357600080fd5b5061064c6116fd565b6040516106599190612bef565b60405180910390f35b34801561066e57600080fd5b50610677611703565b6040516106849190612bef565b60405180910390f35b34801561069957600080fd5b506106a2611709565b6040516106af9190612bef565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da9190612f1c565b61170f565b6040516106ec9190612bef565b60405180910390f35b34801561070157600080fd5b5061070a611796565b6040516107179190612dd0565b60405180910390f35b34801561072c57600080fd5b506107356117bc565b005b34801561074357600080fd5b5061074c611a1e565b6040516107599190612bef565b60405180910390f35b60155481565b60606003805461077790612f8b565b80601f01602080910402602001604051908101604052809291908181526020018280546107a390612f8b565b80156107f05780601f106107c5576101008083540402835291602001916107f0565b820191906000526020600020905b8154815290600101906020018083116107d357829003601f168201915b5050505050905090565b600080610805611b7a565b9050610812818585611b82565b600191505092915050565b60105481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610884611b7a565b9050610891858285611d4b565b61089c858585611dd7565b60019150509392505050565b6000700100000000000000000000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461090584611278565b6019546109129190612feb565b61091c919061302d565b6109269190613090565b9050919050565b60145481565b60006012905090565b600080610947611b7a565b9050610968818585610959858961170f565b610963919061302d565b611b82565b600191505092915050565b600f60149054906101000a900460ff161561098d57600080fd5b6001600f60146101000a81548160ff02191690831515021790555060006109b333611422565b9050600081116109c257600080fd5b43600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90613133565b60405180910390fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a92919061302d565b925050819055506000610aa53383612467565b905080610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade9061319f565b60405180910390fd5b7f0d7976053781e071cecf47e898ad2a6dc87621ca33734e96eb4b92453319e8c93383604051610b189291906131bf565b60405180910390a150506000600f60146101000a81548160ff021916908315150217905550565b60125481565b600f60149054906101000a900460ff1615610b5f57600080fd5b6001600f60146101000a81548160ff02191690831515021790555060006014541180610b975750601b60009054906101000a900460ff165b610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd90613234565b60405180910390fd5b600080600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d91906132d6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691507f0000000000000000000000000000000000000000000000000000000000000000610cbe578181610cc1565b80825b8094508195505050505060006103e860145483610cde9190612feb565b610ce89190612feb565b905060006103e560145485610cfd9190613329565b610d079190612feb565b9050600060018284610d199190613090565b610d23919061302d565b9050610d51600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611a24565b6000807f0000000000000000000000000000000000000000000000000000000000000000610d83576014546000610d89565b60006014545b91509150600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663022c0d9f8383601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600067ffffffffffffffff811115610e0b57610e0a61335d565b5b6040519080825280601f01601f191660200182016040528015610e3d5781602001600182028036833780820191505090505b506040518563ffffffff1660e01b8152600401610e5d94939291906133e1565b600060405180830381600087803b158015610e7757600080fd5b505af1158015610e8b573d6000803e3d6000fd5b50505050601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b46300ec6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ef957600080fd5b505af1158015610f0d573d6000803e3d6000fd5b5050505060006014819055506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f769190612dd0565b602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb79190613442565b905060006064600283610fca9190612feb565b610fd49190613090565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110559291906131bf565b6020604051808303816000875af1158015611074573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611098919061349b565b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561110357600080fd5b505af1158015611117573d6000803e3d6000fd5b50505050600081836111299190613329565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b81526004016111869190612bef565b600060405180830381600087803b1580156111a057600080fd5b505af11580156111b4573d6000803e3d6000fd5b505050506111c1816124db565b6111c96126a2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b50505050505050505050505050506000600f60146101000a81548160ff021916908315150217905550565b60115481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546112cf90612f8b565b80601f01602080910402602001604051908101604052809291908181526020018280546112fb90612f8b565b80156113485780601f1061131d57610100808354040283529160200191611348565b820191906000526020600020905b81548152906001019060200180831161132b57829003601f168201915b5050505050905090565b6000601b60009054906101000a900460ff16611396576012544310611395576001601b60006101000a81548160ff021916908315150217905550611394610b45565b5b5b601b60009054906101000a900460ff16905090565b6000806113b6611b7a565b905060006113c4828661170f565b905083811015611409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114009061353a565b60405180910390fd5b6114168286868403611b82565b60019250505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461146d836108a8565b6114779190613329565b9050919050565b600080611489611b7a565b9050611496818585611dd7565b600191505092915050565b601b60009054906101000a900460ff166114ba57600080fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115179190612dd0565b602060405180830381865afa158015611534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115589190613442565b9050600081146116e757600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016115e19291906131bf565b6020604051808303816000875af1158015611600573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611624919061349b565b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166389afcb44600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016116a29190612dd0565b60408051808303816000875af11580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e4919061355a565b50505b50565b601b60009054906101000a900460ff1681565b60185481565b60135481565b60165481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff16156117d657600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118929190612dd0565b602060405180830381865afa1580156118af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d39190613442565b6040518363ffffffff1660e01b81526004016118f09291906131bf565b6020604051808303816000875af115801561190f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611933919061349b565b50611962600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a54611a24565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a627842306040518263ffffffff1660e01b81526004016119bd9190612dd0565b6020604051808303816000875af11580156119dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a009190613442565b506001601b60016101000a81548160ff021916908315150217905550565b60175481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a906135e6565b60405180910390fd5b611a9f6000838361282f565b8060026000828254611ab1919061302d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b629190612bef565b60405180910390a3611b7660008383612834565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be890613678565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c579061370a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d3e9190612bef565b60405180910390a3505050565b6000611d57848461170f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611dd15781811015611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613776565b60405180910390fd5b611dd08484848403611b82565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d90613808565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eac9061389a565b60405180910390fd5b4360135410611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613906565b60405180910390fd5b60008111611f0657600080fd5b611f0e611352565b50601b60009054906101000a900460ff1615611fb957600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613972565b60405180910390fd5b61239a565b600060c88083611fc99190613090565b611fd39190612feb565b905060126001611fe39190613ac5565b811015612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201c90613b5c565b60405180910390fd5b60006012600a6120359190613ac5565b826120409190613b7c565b14612080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207790613bf9565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790613c65565b60405180910390fd5b601154811115612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c90613cf7565b60405180910390fd5b600061215f612839565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f49190613d2c565b73ffffffffffffffffffffffffffffffffffffffff166370a08231600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161224e9190612dd0565b602060405180830381865afa15801561226b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228f9190613442565b90506002828261229f9190613329565b6122a99190613090565b601460008282546122ba919061302d565b9250508190555083601860008282546122d3919061302d565b9250508190555043600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2e77aee193ebc3cca5b3366be9f4f01b46f327663297f58a4f48c360692afc7a8560405161238e9190612dd0565b60405180910390a15050505b6123a5838383612928565b601754601660008282546123b9919061302d565b92505081905550601b60009054906101000a900460ff16612462576123dc6126a2565b6010544360056012546123ef919061302d565b6123f99190613329565b101561241357600560125461240e919061302d565b612422565b60105443612421919061302d565b5b6012819055507fb55b011debe2fb8009b8eda91a3c00b6d70dbfa36a6cb35ea2f504f185a3c8fd6012546040516124599190612bef565b60405180910390a15b505050565b60008273ffffffffffffffffffffffffffffffffffffffff168260405161248d90613d8a565b60006040518083038185875af1925050503d80600081146124ca576040519150601f19603f3d011682016040523d82523d6000602084013e6124cf565b606091505b50508091505092915050565b6000601854116124ea57600080fd5b600081116124f757600080fd5b600060326002836125089190612feb565b6125129190613090565b9050600060646001846125259190612feb565b61252f9190613090565b90506000612551730a62891336667b540045a10f87b1fd6c0dadf94f84612467565b9050600061257373bb8e9b891a1f8298219bdde868b2ecbec7f7119085612467565b90506000612588612582611b7a565b85612467565b90508280156125945750815b801561259d5750805b6125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d390613deb565b60405180910390fd5b60006002866125eb9190612feb565b85886125f79190613329565b6126019190613329565b90508060156000828254612615919061302d565b925050819055506018547001000000000000000000000000000000008261263c9190612feb565b6126469190613090565b60196000828254612657919061302d565b925050819055507fac4c4b96e3856cb20170077826b7701a887bdaf8d743f369b438133249a1f82f81601554604051612691929190613e0b565b60405180910390a150505050505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016127219190612dd0565b602060405180830381865afa15801561273e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127629190613442565b90506000612791600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611278565b905060006012600a6127a39190613ac5565b6127106016546127b39190612feb565b6127bd9190613090565b612710846127cb9190612feb565b6127d59190613090565b90506000806127e48385612b9e565b91509150600082141580156127f65750805b1561282857612827600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a24565b5b5050505050565b505050565b505050565b6000806000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156128ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128cf91906132d6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691507f000000000000000000000000000000000000000000000000000000000000000061291f5781612921565b805b9250505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298e90613808565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129fd9061389a565b60405180910390fd5b612a1183838361282f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8e90613ea6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b859190612bef565b60405180910390a3612b98848484612834565b50505050565b60008082841015612bbc578383612bb59190613329565b6000612bcb565b8284612bc89190613329565b60015b915091509250929050565b6000819050919050565b612be981612bd6565b82525050565b6000602082019050612c046000830184612be0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c44578082015181840152602081019050612c29565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c6c82612c0a565b612c768185612c15565b9350612c86818560208601612c26565b612c8f81612c50565b840191505092915050565b60006020820190508181036000830152612cb48184612c61565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cec82612cc1565b9050919050565b612cfc81612ce1565b8114612d0757600080fd5b50565b600081359050612d1981612cf3565b92915050565b612d2881612bd6565b8114612d3357600080fd5b50565b600081359050612d4581612d1f565b92915050565b60008060408385031215612d6257612d61612cbc565b5b6000612d7085828601612d0a565b9250506020612d8185828601612d36565b9150509250929050565b60008115159050919050565b612da081612d8b565b82525050565b6000602082019050612dbb6000830184612d97565b92915050565b612dca81612ce1565b82525050565b6000602082019050612de56000830184612dc1565b92915050565b6000819050919050565b6000612e10612e0b612e0684612cc1565b612deb565b612cc1565b9050919050565b6000612e2282612df5565b9050919050565b6000612e3482612e17565b9050919050565b612e4481612e29565b82525050565b6000602082019050612e5f6000830184612e3b565b92915050565b600080600060608486031215612e7e57612e7d612cbc565b5b6000612e8c86828701612d0a565b9350506020612e9d86828701612d0a565b9250506040612eae86828701612d36565b9150509250925092565b600060208284031215612ece57612ecd612cbc565b5b6000612edc84828501612d0a565b91505092915050565b600060ff82169050919050565b612efb81612ee5565b82525050565b6000602082019050612f166000830184612ef2565b92915050565b60008060408385031215612f3357612f32612cbc565b5b6000612f4185828601612d0a565b9250506020612f5285828601612d0a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fa357607f821691505b602082108103612fb657612fb5612f5c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ff682612bd6565b915061300183612bd6565b925082820261300f81612bd6565b9150828204841483151761302657613025612fbc565b5b5092915050565b600061303882612bd6565b915061304383612bd6565b925082820190508082111561305b5761305a612fbc565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061309b82612bd6565b91506130a683612bd6565b9250826130b6576130b5613061565b5b828204905092915050565b7f43616e206e6f7420636c61696d20696e2073616d6520626c6f636b206173206c60008201527f6173742062757900000000000000000000000000000000000000000000000000602082015250565b600061311d602783612c15565b9150613128826130c1565b604082019050919050565b6000602082019050818103600083015261314c81613110565b9050919050565b7f4661696c656420746f2073656e64206574680000000000000000000000000000600082015250565b6000613189601283612c15565b915061319482613153565b602082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b60006040820190506131d46000830185612dc1565b6131e16020830184612be0565b9392505050565b7f4e6f2065746820746f2062652073776170706564000000000000000000000000600082015250565b600061321e601483612c15565b9150613229826131e8565b602082019050919050565b6000602082019050818103600083015261324d81613211565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61327781613254565b811461328257600080fd5b50565b6000815190506132948161326e565b92915050565b600063ffffffff82169050919050565b6132b38161329a565b81146132be57600080fd5b50565b6000815190506132d0816132aa565b92915050565b6000806000606084860312156132ef576132ee612cbc565b5b60006132fd86828701613285565b935050602061330e86828701613285565b925050604061331f868287016132c1565b9150509250925092565b600061333482612bd6565b915061333f83612bd6565b925082820390508181111561335757613356612fbc565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b60006133b38261338c565b6133bd8185613397565b93506133cd818560208601612c26565b6133d681612c50565b840191505092915050565b60006080820190506133f66000830187612be0565b6134036020830186612be0565b6134106040830185612dc1565b818103606083015261342281846133a8565b905095945050505050565b60008151905061343c81612d1f565b92915050565b60006020828403121561345857613457612cbc565b5b60006134668482850161342d565b91505092915050565b61347881612d8b565b811461348357600080fd5b50565b6000815190506134958161346f565b92915050565b6000602082840312156134b1576134b0612cbc565b5b60006134bf84828501613486565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613524602583612c15565b915061352f826134c8565b604082019050919050565b6000602082019050818103600083015261355381613517565b9050919050565b6000806040838503121561357157613570612cbc565b5b600061357f8582860161342d565b92505060206135908582860161342d565b9150509250929050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006135d0601f83612c15565b91506135db8261359a565b602082019050919050565b600060208201905081810360008301526135ff816135c3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613662602483612c15565b915061366d82613606565b604082019050919050565b6000602082019050818103600083015261369181613655565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136f4602283612c15565b91506136ff82613698565b604082019050919050565b60006020820190508181036000830152613723816136e7565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613760601d83612c15565b915061376b8261372a565b602082019050919050565b6000602082019050818103600083015261378f81613753565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137f2602583612c15565b91506137fd82613796565b604082019050919050565b60006020820190508181036000830152613821816137e5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613884602383612c15565b915061388f82613828565b604082019050919050565b600060208201905081810360008301526138b381613877565b9050919050565b7f546f6f206561726c790000000000000000000000000000000000000000000000600082015250565b60006138f0600983612c15565b91506138fb826138ba565b602082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f47616d65206973204f7665722e204c6173742042757965722057696e73000000600082015250565b600061395c601d83612c15565b915061396782613926565b602082019050919050565b6000602082019050818103600083015261398b8161394f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156139e9578086048111156139c5576139c4612fbc565b5b60018516156139d45780820291505b80810290506139e285613992565b94506139a9565b94509492505050565b600082613a025760019050613abe565b81613a105760009050613abe565b8160018114613a265760028114613a3057613a5f565b6001915050613abe565b60ff841115613a4257613a41612fbc565b5b8360020a915084821115613a5957613a58612fbc565b5b50613abe565b5060208310610133831016604e8410600b8410161715613a945782820a905083811115613a8f57613a8e612fbc565b5b613abe565b613aa1848484600161399f565b92509050818404811115613ab857613ab7612fbc565b5b81810290505b9392505050565b6000613ad082612bd6565b9150613adb83612ee5565b9250613b087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139f2565b905092915050565b7f4d696e206f662031207469636b65742062757921000000000000000000000000600082015250565b6000613b46601483612c15565b9150613b5182613b10565b602082019050919050565b60006020820190508181036000830152613b7581613b39565b9050919050565b6000613b8782612bd6565b9150613b9283612bd6565b925082613ba257613ba1613061565b5b828206905092915050565b7f57686f6c65206e756d6265722062757973206f6e6c7921000000000000000000600082015250565b6000613be3601783612c15565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f4e6f2073656c6c20666f7220796f752100000000000000000000000000000000600082015250565b6000613c4f601083612c15565b9150613c5a82613c19565b602082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b7f4f6e6c7920313020746f6b656e732070657220545820736572732f6d6164616d60008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce1602183612c15565b9150613cec82613c85565b604082019050919050565b60006020820190508181036000830152613d1081613cd4565b9050919050565b600081519050613d2681612cf3565b92915050565b600060208284031215613d4257613d41612cbc565b5b6000613d5084828501613d17565b91505092915050565b600081905092915050565b50565b6000613d74600083613d59565b9150613d7f82613d64565b600082019050919050565b6000613d9582613d67565b9150819050919050565b7f4661696c656420746f2064697374726962757465000000000000000000000000600082015250565b6000613dd5601483612c15565b9150613de082613d9f565b602082019050919050565b60006020820190508181036000830152613e0481613dc8565b9050919050565b6000604082019050613e206000830185612be0565b613e2d6020830184612be0565b9392505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613e90602683612c15565b9150613e9b82613e34565b604082019050919050565b60006020820190508181036000830152613ebf81613e83565b905091905056fea2646970667358221220c1e1c98a24719cad257b2fcf604daa3b506cfa8fd808bc62cebfe9ea92a449f364736f6c6343000811003360c060405234801561001057600080fd5b506040516104e13803806104e183398181016040528101906100329190610144565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610184565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610111826100e6565b9050919050565b61012181610106565b811461012c57600080fd5b50565b60008151905061013e81610118565b92915050565b6000806040838503121561015b5761015a6100e1565b5b60006101698582860161012f565b925050602061017a8582860161012f565b9150509250929050565b60805160a05161033b6101a6600039600061011f01526000505061033b6000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b46300ec14610030575b600080fd5b61003861003a565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161009691906101e5565b602060405180830381865afa1580156100b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d7919061023b565b9050600081146101a15760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040161015c929190610277565b6020604051808303816000875af115801561017b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019f91906102d8565b505b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101cf826101a4565b9050919050565b6101df816101c4565b82525050565b60006020820190506101fa60008301846101d6565b92915050565b600080fd5b6000819050919050565b61021881610205565b811461022357600080fd5b50565b6000815190506102358161020f565b92915050565b60006020828403121561025157610250610200565b5b600061025f84828501610226565b91505092915050565b61027181610205565b82525050565b600060408201905061028c60008301856101d6565b6102996020830184610268565b9392505050565b60008115159050919050565b6102b5816102a0565b81146102c057600080fd5b50565b6000815190506102d2816102ac565b92915050565b6000602082840312156102ee576102ed610200565b5b60006102fc848285016102c3565b9150509291505056fea2646970667358221220a564e5dc6b5045cfa21444b164e6f1ab14b425104b9d2b56ff447fe84298560864736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000869a1009b4c6e973a9cd881f2eaf5b0af8f5eb2800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000007ce9da83253afa7677c18815747a1adb271f92ca000000000000000000000000cda31b98131b059fe6464963f1f474de6e13eb2b000000000000000000000000cf2ee86daae7e364c7c05643e815c8d2498e2466000000000000000000000000250d1bfabc3a4c1578a492c27cf8d6695fc5109800000000000000000000000097eca8be8313fbc682edaa29020b81c781035001000000000000000000000000158ce4d73f51c8565cd75cb228cca90d361ab457000000000000000000000000710cf49624b7418bbc117eb7d5d6bc11449b4651000000000000000000000000687cd3bbd3ce296def864ec707352bd0514272e900000000000000000000000026ce18ba31a79094668540ff6b827efc96dc090c000000000000000000000000084a941400bb378430b9045802d3f9c5ce5cce37000000000000000000000000229243f39a3b5991a6a74023ddcbc252810626f2000000000000000000000000385678c7a6dac8d20232790d5438a6c751a3a3180000000000000000000000007e9ad340a320d94c2bc4496a0e237494ed2a472d000000000000000000000000cd9b25c804419980f677196e948b8a431a1a398c000000000000000000000000c94952eb6e820734b5a7a527628657d6c3ab35d8000000000000000000000000bb8e9b891a1f8298219bdde868b2ecbec7f711900000000000000000000000008cc1f511973408837a474d9ebad671a772faad89000000000000000000000000dcbf8453e6f0f00f9a3af56bda1c6e2b936ea1970000000000000000000000009b6b034e4d05c082f60936adcecd31f3fb53435b0000000000000000000000009a2a67a8ab55abe5470bcc1bdbe9f525d9b87fe2000000000000000000000000cbde63ea065cae5b04987499fe4595cdca46c8fb0000000000000000000000001350804da29d56eb3ec41189d8a7168fc017401a0000000000000000000000002cab21a48fc1e86df3008e0ef261340ece0aa63500000000000000000000000029b19c2d7c2ab3d0429d964e5de088d6b3e0a262000000000000000000000000009d78a90108956dfbd688991a44d48b2df28909000000000000000000000000c4c23c12b6a5e6f0811a82d7c46c21f21eee79d0000000000000000000000000e47a82d0e4570dcd943c2be28e4972e1a74cdff10000000000000000000000007f3de8007774f3ecccced34b88e45ac50afacd090000000000000000000000006677c1872240901ffaa01fbf1ab1645eba1257df000000000000000000000000825096f13e6f506417f5176ee810e06c4a140ee30000000000000000000000009c15078ebfcc032d00facbb4fb9829b60c6e26b400000000000000000000000079d8b3549fd165116482c456dead053420123d8d0000000000000000000000006a9b3e3d95ca45e39cdda9345de9c1e667a645f1000000000000000000000000cbb385321b8be68500493440dbe1a50c8319f6ec0000000000000000000000003c0428d2a6dd125acd9be5e6e340707108df06dd0000000000000000000000005d9eae8c6c037245cc1af7259987a949706067e900000000000000000000000016cd2ab21f60e2d8eb31c6ade5b470da03e432ff000000000000000000000000d92cbd8fddc8369e9622dff0c2c1e8933e304766000000000000000000000000cc4fe0bc29ca11185712fe3c28a937d5ca0362eb000000000000000000000000363e0bcb7b6d8ded030acc663104b398a7c38012000000000000000000000000dea0f1a633d94c41b9942c3ad707c49af4ac762d0000000000000000000000005a79560ce95604a3d7c2e724ad1407b368e0faf2000000000000000000000000138d049a34d20b1997f9f057b03b7b9cc97a5b9d000000000000000000000000e31faa4b39a6ee928a4f30fb8ededf2fc0a9e2bd0000000000000000000000002bf9a1ffbf5906736481652dcaae1e4c168482b1000000000000000000000000f467a36c337ffc9822225780cc75c290e8bd1c29000000000000000000000000c336ce75652e1fbf4524ffb20bdeca18b4457f0e000000000000000000000000f0f6a2f9d11824572afb686ebf3bd3ca8540aecc000000000000000000000000a453a030ad410a00f695aaeb661d1b0de30c9cbe00000000000000000000000059b6fe8f1605c19e632c74a687c16604a81c554c0000000000000000000000007d614762e9e8a716f6889c4158f3392986bbbca3000000000000000000000000603602e9a2ac7f1e26717c2b2193fd68f5fafff60000000000000000000000005da0ca6510f611c8fdeb57afa9b357826ebeb576000000000000000000000000bd87ef31cbe8257d805fe3dcf0674243b95c059c000000000000000000000000b60bfd02207823360263ed5886c9f3c240a05045000000000000000000000000df043d2d5ad5f618e74f793b976e30605dc7a1d4000000000000000000000000438a73135d6f5cb771e4e6e21c1a996db2a821ac000000000000000000000000ea90c80638843767d680040dcecfa4c3ab1573a7000000000000000000000000578bd725e7ac96d8b26c82e2c8daa843f7ad1226000000000000000000000000ee7ad10fbf6bae8f53a7af42c78659a49ae3abdf00000000000000000000000005feedf7ce0abd9252daf2140041b2fafdabd97b000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000000000000000000000000000003782dace9d9000000000000000000000000000000000000000000000000000003782dace9d9000000000000000000000000000000000000000000000000000003782dace9d9000000000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000001a055690d9db800000000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000001bc16d674ec8000f000000000000000000000000000000000000000000000001e5b8fa8fe2ac007e0000000000000000000000000000000000000000000000004563918244f40018000000000000000000000000000000000000000000000000d02ab486cedc004900000000000000000000000000000000000000000000000098a7d9b8314c00500000000000000000000000000000000000000000000000000de0b6b3a7640034000000000000000000000000000000000000000000000001a055690d9db800950000000000000000000000000000000000000000000000008ac7230489e8002d0000000000000000000000000000000000000000000000004563918244f4002800000000000000000000000000000000000000000000000053444835ec5800320000000000000000000000000000000000000000000000000de0b6b3a764001100000000000000000000000000000000000000000000000029a2241af62c001c0000000000000000000000000000000000000000000000006124fee993bc00260000000000000000000000000000000000000000000000004563918244f40002000000000000000000000000000000000000000000000001236efcbcbb3400ad0000000000000000000000000000000000000000000000004563918244f400110000000000000000000000000000000000000000000000019274b259f654006e0000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000001bc16d674ec800270000000000000000000000000000000000000000000000006124fee993bc00260000000000000000000000000000000000000000000000000de0b6b3a76400190000000000000000000000000000000000000000000000022b1c8c1227a0013a00000000000000000000000000000000000000000000000098a7d9b8314c005f0000000000000000000000000000000000000000000000008ac7230489e800340000000000000000000000000000000000000000000000006124fee993bc00070000000000000000000000000000000000000000000000004563918244f400010000000000000000000000000000000000000000000000008ac7230489e800400000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000007ce66c50e284002a00000000000000000000000000000000000000000000000029a2241af62c000d0000000000000000000000000000000000000000000000004563918244f4000f00000000000000000000000000000000000000000000000053444835ec58002200000000000000000000000000000000000000000000000029a2241af62c00360000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400110000000000000000000000000000000000000000000000008ac7230489e800220000000000000000000000000000000000000000000000004563918244f4000b0000000000000000000000000000000000000000000000003782dace9d9000150000000000000000000000000000000000000000000000004563918244f4000b0000000000000000000000000000000000000000000000008ac7230489e800170000000000000000000000000000000000000000000000004563918244f400090000000000000000000000000000000000000000000000003782dace9d9000020000000000000000000000000000000000000000000000004563918244f4000d0000000000000000000000000000000000000000000000000de0b6b3a76400180000000000000000000000000000000000000000000000000de0b6b3a764000d0000000000000000000000000000000000000000000000000de0b6b3a76400070000000000000000000000000000000000000000000000000de0b6b3a764000100000000000000000000000000000000000000000000000029a2241af62c001e0000000000000000000000000000000000000000000000001bc16d674ec8000f0000000000000000000000000000000000000000000000001bc16d674ec800040000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000000000000000000000000000029a2241af62c002b0000000000000000000000000000000000000000000000000de0b6b3a7640000

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80635e307a4811610102578063bdb337d111610095578063dd62ed3e11610064578063dd62ed3e146106b8578063de0c9d57146106f5578063e8078d9414610720578063f8c3405014610737576101e3565b8063bdb337d11461060c578063cc4d819c14610637578063d798cbd214610662578063dc38679c1461068d576101e3565b8063a457c2d7116100d1578063a457c2d71461053e578063a8b9d2401461057b578063a9059cbb146105b8578063b1bc21e4146105f5576101e3565b80635e307a481461048057806370a08231146104ab57806395d89b41146104e85780639893e5b614610513576101e3565b806323b872dd1161017a578063395093511161014957806339509351146103f75780634e71d92d146104345780634ed474d71461044b578063569c5f6d14610476576101e3565b806323b872dd1461032757806327ce0147146103645780632b7e742f146103a1578063313ce567146103cc576101e3565b806309c5663b116101b657806309c5663b1461027b57806313ecfbfa146102a657806318160ddd146102d15780631b8f2fde146102fc576101e3565b806302a71bde146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610762565b60405161020a9190612bef565b60405180910390f35b34801561021f57600080fd5b50610228610768565b6040516102359190612c9a565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612d4b565b6107fa565b6040516102729190612da6565b60405180910390f35b34801561028757600080fd5b5061029061081d565b60405161029d9190612bef565b60405180910390f35b3480156102b257600080fd5b506102bb610823565b6040516102c89190612dd0565b60405180910390f35b3480156102dd57600080fd5b506102e6610849565b6040516102f39190612bef565b60405180910390f35b34801561030857600080fd5b50610311610853565b60405161031e9190612e4a565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190612e65565b610879565b60405161035b9190612da6565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612eb8565b6108a8565b6040516103989190612bef565b60405180910390f35b3480156103ad57600080fd5b506103b661092d565b6040516103c39190612bef565b60405180910390f35b3480156103d857600080fd5b506103e1610933565b6040516103ee9190612f01565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612d4b565b61093c565b60405161042b9190612da6565b60405180910390f35b34801561044057600080fd5b50610449610973565b005b34801561045757600080fd5b50610460610b3f565b60405161046d9190612bef565b60405180910390f35b61047e610b45565b005b34801561048c57600080fd5b50610495611272565b6040516104a29190612bef565b60405180910390f35b3480156104b757600080fd5b506104d260048036038101906104cd9190612eb8565b611278565b6040516104df9190612bef565b60405180910390f35b3480156104f457600080fd5b506104fd6112c0565b60405161050a9190612c9a565b60405180910390f35b34801561051f57600080fd5b50610528611352565b6040516105359190612da6565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190612d4b565b6113ab565b6040516105729190612da6565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190612eb8565b611422565b6040516105af9190612bef565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612d4b565b61147e565b6040516105ec9190612da6565b60405180910390f35b34801561060157600080fd5b5061060a6114a1565b005b34801561061857600080fd5b506106216116ea565b60405161062e9190612da6565b60405180910390f35b34801561064357600080fd5b5061064c6116fd565b6040516106599190612bef565b60405180910390f35b34801561066e57600080fd5b50610677611703565b6040516106849190612bef565b60405180910390f35b34801561069957600080fd5b506106a2611709565b6040516106af9190612bef565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da9190612f1c565b61170f565b6040516106ec9190612bef565b60405180910390f35b34801561070157600080fd5b5061070a611796565b6040516107179190612dd0565b60405180910390f35b34801561072c57600080fd5b506107356117bc565b005b34801561074357600080fd5b5061074c611a1e565b6040516107599190612bef565b60405180910390f35b60155481565b60606003805461077790612f8b565b80601f01602080910402602001604051908101604052809291908181526020018280546107a390612f8b565b80156107f05780601f106107c5576101008083540402835291602001916107f0565b820191906000526020600020905b8154815290600101906020018083116107d357829003601f168201915b5050505050905090565b600080610805611b7a565b9050610812818585611b82565b600191505092915050565b60105481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610884611b7a565b9050610891858285611d4b565b61089c858585611dd7565b60019150509392505050565b6000700100000000000000000000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461090584611278565b6019546109129190612feb565b61091c919061302d565b6109269190613090565b9050919050565b60145481565b60006012905090565b600080610947611b7a565b9050610968818585610959858961170f565b610963919061302d565b611b82565b600191505092915050565b600f60149054906101000a900460ff161561098d57600080fd5b6001600f60146101000a81548160ff02191690831515021790555060006109b333611422565b9050600081116109c257600080fd5b43600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90613133565b60405180910390fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a92919061302d565b925050819055506000610aa53383612467565b905080610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade9061319f565b60405180910390fd5b7f0d7976053781e071cecf47e898ad2a6dc87621ca33734e96eb4b92453319e8c93383604051610b189291906131bf565b60405180910390a150506000600f60146101000a81548160ff021916908315150217905550565b60125481565b600f60149054906101000a900460ff1615610b5f57600080fd5b6001600f60146101000a81548160ff02191690831515021790555060006014541180610b975750601b60009054906101000a900460ff165b610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd90613234565b60405180910390fd5b600080600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d91906132d6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691507f0000000000000000000000000000000000000000000000000000000000000000610cbe578181610cc1565b80825b8094508195505050505060006103e860145483610cde9190612feb565b610ce89190612feb565b905060006103e560145485610cfd9190613329565b610d079190612feb565b9050600060018284610d199190613090565b610d23919061302d565b9050610d51600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611a24565b6000807f0000000000000000000000000000000000000000000000000000000000000000610d83576014546000610d89565b60006014545b91509150600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663022c0d9f8383601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600067ffffffffffffffff811115610e0b57610e0a61335d565b5b6040519080825280601f01601f191660200182016040528015610e3d5781602001600182028036833780820191505090505b506040518563ffffffff1660e01b8152600401610e5d94939291906133e1565b600060405180830381600087803b158015610e7757600080fd5b505af1158015610e8b573d6000803e3d6000fd5b50505050601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b46300ec6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ef957600080fd5b505af1158015610f0d573d6000803e3d6000fd5b5050505060006014819055506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f769190612dd0565b602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb79190613442565b905060006064600283610fca9190612feb565b610fd49190613090565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110559291906131bf565b6020604051808303816000875af1158015611074573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611098919061349b565b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561110357600080fd5b505af1158015611117573d6000803e3d6000fd5b50505050600081836111299190613329565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b81526004016111869190612bef565b600060405180830381600087803b1580156111a057600080fd5b505af11580156111b4573d6000803e3d6000fd5b505050506111c1816124db565b6111c96126a2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b50505050505050505050505050506000600f60146101000a81548160ff021916908315150217905550565b60115481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546112cf90612f8b565b80601f01602080910402602001604051908101604052809291908181526020018280546112fb90612f8b565b80156113485780601f1061131d57610100808354040283529160200191611348565b820191906000526020600020905b81548152906001019060200180831161132b57829003601f168201915b5050505050905090565b6000601b60009054906101000a900460ff16611396576012544310611395576001601b60006101000a81548160ff021916908315150217905550611394610b45565b5b5b601b60009054906101000a900460ff16905090565b6000806113b6611b7a565b905060006113c4828661170f565b905083811015611409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114009061353a565b60405180910390fd5b6114168286868403611b82565b60019250505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461146d836108a8565b6114779190613329565b9050919050565b600080611489611b7a565b9050611496818585611dd7565b600191505092915050565b601b60009054906101000a900460ff166114ba57600080fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115179190612dd0565b602060405180830381865afa158015611534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115589190613442565b9050600081146116e757600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016115e19291906131bf565b6020604051808303816000875af1158015611600573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611624919061349b565b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166389afcb44600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016116a29190612dd0565b60408051808303816000875af11580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e4919061355a565b50505b50565b601b60009054906101000a900460ff1681565b60185481565b60135481565b60165481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff16156117d657600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118929190612dd0565b602060405180830381865afa1580156118af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d39190613442565b6040518363ffffffff1660e01b81526004016118f09291906131bf565b6020604051808303816000875af115801561190f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611933919061349b565b50611962600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a54611a24565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a627842306040518263ffffffff1660e01b81526004016119bd9190612dd0565b6020604051808303816000875af11580156119dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a009190613442565b506001601b60016101000a81548160ff021916908315150217905550565b60175481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a906135e6565b60405180910390fd5b611a9f6000838361282f565b8060026000828254611ab1919061302d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b629190612bef565b60405180910390a3611b7660008383612834565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be890613678565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c579061370a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d3e9190612bef565b60405180910390a3505050565b6000611d57848461170f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611dd15781811015611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613776565b60405180910390fd5b611dd08484848403611b82565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d90613808565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eac9061389a565b60405180910390fd5b4360135410611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613906565b60405180910390fd5b60008111611f0657600080fd5b611f0e611352565b50601b60009054906101000a900460ff1615611fb957600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613972565b60405180910390fd5b61239a565b600060c88083611fc99190613090565b611fd39190612feb565b905060126001611fe39190613ac5565b811015612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201c90613b5c565b60405180910390fd5b60006012600a6120359190613ac5565b826120409190613b7c565b14612080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207790613bf9565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790613c65565b60405180910390fd5b601154811115612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c90613cf7565b60405180910390fd5b600061215f612839565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f49190613d2c565b73ffffffffffffffffffffffffffffffffffffffff166370a08231600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161224e9190612dd0565b602060405180830381865afa15801561226b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228f9190613442565b90506002828261229f9190613329565b6122a99190613090565b601460008282546122ba919061302d565b9250508190555083601860008282546122d3919061302d565b9250508190555043600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2e77aee193ebc3cca5b3366be9f4f01b46f327663297f58a4f48c360692afc7a8560405161238e9190612dd0565b60405180910390a15050505b6123a5838383612928565b601754601660008282546123b9919061302d565b92505081905550601b60009054906101000a900460ff16612462576123dc6126a2565b6010544360056012546123ef919061302d565b6123f99190613329565b101561241357600560125461240e919061302d565b612422565b60105443612421919061302d565b5b6012819055507fb55b011debe2fb8009b8eda91a3c00b6d70dbfa36a6cb35ea2f504f185a3c8fd6012546040516124599190612bef565b60405180910390a15b505050565b60008273ffffffffffffffffffffffffffffffffffffffff168260405161248d90613d8a565b60006040518083038185875af1925050503d80600081146124ca576040519150601f19603f3d011682016040523d82523d6000602084013e6124cf565b606091505b50508091505092915050565b6000601854116124ea57600080fd5b600081116124f757600080fd5b600060326002836125089190612feb565b6125129190613090565b9050600060646001846125259190612feb565b61252f9190613090565b90506000612551730a62891336667b540045a10f87b1fd6c0dadf94f84612467565b9050600061257373bb8e9b891a1f8298219bdde868b2ecbec7f7119085612467565b90506000612588612582611b7a565b85612467565b90508280156125945750815b801561259d5750805b6125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d390613deb565b60405180910390fd5b60006002866125eb9190612feb565b85886125f79190613329565b6126019190613329565b90508060156000828254612615919061302d565b925050819055506018547001000000000000000000000000000000008261263c9190612feb565b6126469190613090565b60196000828254612657919061302d565b925050819055507fac4c4b96e3856cb20170077826b7701a887bdaf8d743f369b438133249a1f82f81601554604051612691929190613e0b565b60405180910390a150505050505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016127219190612dd0565b602060405180830381865afa15801561273e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127629190613442565b90506000612791600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611278565b905060006012600a6127a39190613ac5565b6127106016546127b39190612feb565b6127bd9190613090565b612710846127cb9190612feb565b6127d59190613090565b90506000806127e48385612b9e565b91509150600082141580156127f65750805b1561282857612827600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a24565b5b5050505050565b505050565b505050565b6000806000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156128ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128cf91906132d6565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691507f000000000000000000000000000000000000000000000000000000000000000061291f5781612921565b805b9250505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298e90613808565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129fd9061389a565b60405180910390fd5b612a1183838361282f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8e90613ea6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b859190612bef565b60405180910390a3612b98848484612834565b50505050565b60008082841015612bbc578383612bb59190613329565b6000612bcb565b8284612bc89190613329565b60015b915091509250929050565b6000819050919050565b612be981612bd6565b82525050565b6000602082019050612c046000830184612be0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c44578082015181840152602081019050612c29565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c6c82612c0a565b612c768185612c15565b9350612c86818560208601612c26565b612c8f81612c50565b840191505092915050565b60006020820190508181036000830152612cb48184612c61565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cec82612cc1565b9050919050565b612cfc81612ce1565b8114612d0757600080fd5b50565b600081359050612d1981612cf3565b92915050565b612d2881612bd6565b8114612d3357600080fd5b50565b600081359050612d4581612d1f565b92915050565b60008060408385031215612d6257612d61612cbc565b5b6000612d7085828601612d0a565b9250506020612d8185828601612d36565b9150509250929050565b60008115159050919050565b612da081612d8b565b82525050565b6000602082019050612dbb6000830184612d97565b92915050565b612dca81612ce1565b82525050565b6000602082019050612de56000830184612dc1565b92915050565b6000819050919050565b6000612e10612e0b612e0684612cc1565b612deb565b612cc1565b9050919050565b6000612e2282612df5565b9050919050565b6000612e3482612e17565b9050919050565b612e4481612e29565b82525050565b6000602082019050612e5f6000830184612e3b565b92915050565b600080600060608486031215612e7e57612e7d612cbc565b5b6000612e8c86828701612d0a565b9350506020612e9d86828701612d0a565b9250506040612eae86828701612d36565b9150509250925092565b600060208284031215612ece57612ecd612cbc565b5b6000612edc84828501612d0a565b91505092915050565b600060ff82169050919050565b612efb81612ee5565b82525050565b6000602082019050612f166000830184612ef2565b92915050565b60008060408385031215612f3357612f32612cbc565b5b6000612f4185828601612d0a565b9250506020612f5285828601612d0a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fa357607f821691505b602082108103612fb657612fb5612f5c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ff682612bd6565b915061300183612bd6565b925082820261300f81612bd6565b9150828204841483151761302657613025612fbc565b5b5092915050565b600061303882612bd6565b915061304383612bd6565b925082820190508082111561305b5761305a612fbc565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061309b82612bd6565b91506130a683612bd6565b9250826130b6576130b5613061565b5b828204905092915050565b7f43616e206e6f7420636c61696d20696e2073616d6520626c6f636b206173206c60008201527f6173742062757900000000000000000000000000000000000000000000000000602082015250565b600061311d602783612c15565b9150613128826130c1565b604082019050919050565b6000602082019050818103600083015261314c81613110565b9050919050565b7f4661696c656420746f2073656e64206574680000000000000000000000000000600082015250565b6000613189601283612c15565b915061319482613153565b602082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b60006040820190506131d46000830185612dc1565b6131e16020830184612be0565b9392505050565b7f4e6f2065746820746f2062652073776170706564000000000000000000000000600082015250565b600061321e601483612c15565b9150613229826131e8565b602082019050919050565b6000602082019050818103600083015261324d81613211565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61327781613254565b811461328257600080fd5b50565b6000815190506132948161326e565b92915050565b600063ffffffff82169050919050565b6132b38161329a565b81146132be57600080fd5b50565b6000815190506132d0816132aa565b92915050565b6000806000606084860312156132ef576132ee612cbc565b5b60006132fd86828701613285565b935050602061330e86828701613285565b925050604061331f868287016132c1565b9150509250925092565b600061333482612bd6565b915061333f83612bd6565b925082820390508181111561335757613356612fbc565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b60006133b38261338c565b6133bd8185613397565b93506133cd818560208601612c26565b6133d681612c50565b840191505092915050565b60006080820190506133f66000830187612be0565b6134036020830186612be0565b6134106040830185612dc1565b818103606083015261342281846133a8565b905095945050505050565b60008151905061343c81612d1f565b92915050565b60006020828403121561345857613457612cbc565b5b60006134668482850161342d565b91505092915050565b61347881612d8b565b811461348357600080fd5b50565b6000815190506134958161346f565b92915050565b6000602082840312156134b1576134b0612cbc565b5b60006134bf84828501613486565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613524602583612c15565b915061352f826134c8565b604082019050919050565b6000602082019050818103600083015261355381613517565b9050919050565b6000806040838503121561357157613570612cbc565b5b600061357f8582860161342d565b92505060206135908582860161342d565b9150509250929050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006135d0601f83612c15565b91506135db8261359a565b602082019050919050565b600060208201905081810360008301526135ff816135c3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613662602483612c15565b915061366d82613606565b604082019050919050565b6000602082019050818103600083015261369181613655565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136f4602283612c15565b91506136ff82613698565b604082019050919050565b60006020820190508181036000830152613723816136e7565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613760601d83612c15565b915061376b8261372a565b602082019050919050565b6000602082019050818103600083015261378f81613753565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137f2602583612c15565b91506137fd82613796565b604082019050919050565b60006020820190508181036000830152613821816137e5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613884602383612c15565b915061388f82613828565b604082019050919050565b600060208201905081810360008301526138b381613877565b9050919050565b7f546f6f206561726c790000000000000000000000000000000000000000000000600082015250565b60006138f0600983612c15565b91506138fb826138ba565b602082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f47616d65206973204f7665722e204c6173742042757965722057696e73000000600082015250565b600061395c601d83612c15565b915061396782613926565b602082019050919050565b6000602082019050818103600083015261398b8161394f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156139e9578086048111156139c5576139c4612fbc565b5b60018516156139d45780820291505b80810290506139e285613992565b94506139a9565b94509492505050565b600082613a025760019050613abe565b81613a105760009050613abe565b8160018114613a265760028114613a3057613a5f565b6001915050613abe565b60ff841115613a4257613a41612fbc565b5b8360020a915084821115613a5957613a58612fbc565b5b50613abe565b5060208310610133831016604e8410600b8410161715613a945782820a905083811115613a8f57613a8e612fbc565b5b613abe565b613aa1848484600161399f565b92509050818404811115613ab857613ab7612fbc565b5b81810290505b9392505050565b6000613ad082612bd6565b9150613adb83612ee5565b9250613b087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139f2565b905092915050565b7f4d696e206f662031207469636b65742062757921000000000000000000000000600082015250565b6000613b46601483612c15565b9150613b5182613b10565b602082019050919050565b60006020820190508181036000830152613b7581613b39565b9050919050565b6000613b8782612bd6565b9150613b9283612bd6565b925082613ba257613ba1613061565b5b828206905092915050565b7f57686f6c65206e756d6265722062757973206f6e6c7921000000000000000000600082015250565b6000613be3601783612c15565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f4e6f2073656c6c20666f7220796f752100000000000000000000000000000000600082015250565b6000613c4f601083612c15565b9150613c5a82613c19565b602082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b7f4f6e6c7920313020746f6b656e732070657220545820736572732f6d6164616d60008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce1602183612c15565b9150613cec82613c85565b604082019050919050565b60006020820190508181036000830152613d1081613cd4565b9050919050565b600081519050613d2681612cf3565b92915050565b600060208284031215613d4257613d41612cbc565b5b6000613d5084828501613d17565b91505092915050565b600081905092915050565b50565b6000613d74600083613d59565b9150613d7f82613d64565b600082019050919050565b6000613d9582613d67565b9150819050919050565b7f4661696c656420746f2064697374726962757465000000000000000000000000600082015250565b6000613dd5601483612c15565b9150613de082613d9f565b602082019050919050565b60006020820190508181036000830152613e0481613dc8565b9050919050565b6000604082019050613e206000830185612be0565b613e2d6020830184612be0565b9392505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613e90602683612c15565b9150613e9b82613e34565b604082019050919050565b60006020820190508181036000830152613ebf81613e83565b905091905056fea2646970667358221220c1e1c98a24719cad257b2fcf604daa3b506cfa8fd808bc62cebfe9ea92a449f364736f6c63430008110033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000869a1009b4c6e973a9cd881f2eaf5b0af8f5eb2800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000007ce9da83253afa7677c18815747a1adb271f92ca000000000000000000000000cda31b98131b059fe6464963f1f474de6e13eb2b000000000000000000000000cf2ee86daae7e364c7c05643e815c8d2498e2466000000000000000000000000250d1bfabc3a4c1578a492c27cf8d6695fc5109800000000000000000000000097eca8be8313fbc682edaa29020b81c781035001000000000000000000000000158ce4d73f51c8565cd75cb228cca90d361ab457000000000000000000000000710cf49624b7418bbc117eb7d5d6bc11449b4651000000000000000000000000687cd3bbd3ce296def864ec707352bd0514272e900000000000000000000000026ce18ba31a79094668540ff6b827efc96dc090c000000000000000000000000084a941400bb378430b9045802d3f9c5ce5cce37000000000000000000000000229243f39a3b5991a6a74023ddcbc252810626f2000000000000000000000000385678c7a6dac8d20232790d5438a6c751a3a3180000000000000000000000007e9ad340a320d94c2bc4496a0e237494ed2a472d000000000000000000000000cd9b25c804419980f677196e948b8a431a1a398c000000000000000000000000c94952eb6e820734b5a7a527628657d6c3ab35d8000000000000000000000000bb8e9b891a1f8298219bdde868b2ecbec7f711900000000000000000000000008cc1f511973408837a474d9ebad671a772faad89000000000000000000000000dcbf8453e6f0f00f9a3af56bda1c6e2b936ea1970000000000000000000000009b6b034e4d05c082f60936adcecd31f3fb53435b0000000000000000000000009a2a67a8ab55abe5470bcc1bdbe9f525d9b87fe2000000000000000000000000cbde63ea065cae5b04987499fe4595cdca46c8fb0000000000000000000000001350804da29d56eb3ec41189d8a7168fc017401a0000000000000000000000002cab21a48fc1e86df3008e0ef261340ece0aa63500000000000000000000000029b19c2d7c2ab3d0429d964e5de088d6b3e0a262000000000000000000000000009d78a90108956dfbd688991a44d48b2df28909000000000000000000000000c4c23c12b6a5e6f0811a82d7c46c21f21eee79d0000000000000000000000000e47a82d0e4570dcd943c2be28e4972e1a74cdff10000000000000000000000007f3de8007774f3ecccced34b88e45ac50afacd090000000000000000000000006677c1872240901ffaa01fbf1ab1645eba1257df000000000000000000000000825096f13e6f506417f5176ee810e06c4a140ee30000000000000000000000009c15078ebfcc032d00facbb4fb9829b60c6e26b400000000000000000000000079d8b3549fd165116482c456dead053420123d8d0000000000000000000000006a9b3e3d95ca45e39cdda9345de9c1e667a645f1000000000000000000000000cbb385321b8be68500493440dbe1a50c8319f6ec0000000000000000000000003c0428d2a6dd125acd9be5e6e340707108df06dd0000000000000000000000005d9eae8c6c037245cc1af7259987a949706067e900000000000000000000000016cd2ab21f60e2d8eb31c6ade5b470da03e432ff000000000000000000000000d92cbd8fddc8369e9622dff0c2c1e8933e304766000000000000000000000000cc4fe0bc29ca11185712fe3c28a937d5ca0362eb000000000000000000000000363e0bcb7b6d8ded030acc663104b398a7c38012000000000000000000000000dea0f1a633d94c41b9942c3ad707c49af4ac762d0000000000000000000000005a79560ce95604a3d7c2e724ad1407b368e0faf2000000000000000000000000138d049a34d20b1997f9f057b03b7b9cc97a5b9d000000000000000000000000e31faa4b39a6ee928a4f30fb8ededf2fc0a9e2bd0000000000000000000000002bf9a1ffbf5906736481652dcaae1e4c168482b1000000000000000000000000f467a36c337ffc9822225780cc75c290e8bd1c29000000000000000000000000c336ce75652e1fbf4524ffb20bdeca18b4457f0e000000000000000000000000f0f6a2f9d11824572afb686ebf3bd3ca8540aecc000000000000000000000000a453a030ad410a00f695aaeb661d1b0de30c9cbe00000000000000000000000059b6fe8f1605c19e632c74a687c16604a81c554c0000000000000000000000007d614762e9e8a716f6889c4158f3392986bbbca3000000000000000000000000603602e9a2ac7f1e26717c2b2193fd68f5fafff60000000000000000000000005da0ca6510f611c8fdeb57afa9b357826ebeb576000000000000000000000000bd87ef31cbe8257d805fe3dcf0674243b95c059c000000000000000000000000b60bfd02207823360263ed5886c9f3c240a05045000000000000000000000000df043d2d5ad5f618e74f793b976e30605dc7a1d4000000000000000000000000438a73135d6f5cb771e4e6e21c1a996db2a821ac000000000000000000000000ea90c80638843767d680040dcecfa4c3ab1573a7000000000000000000000000578bd725e7ac96d8b26c82e2c8daa843f7ad1226000000000000000000000000ee7ad10fbf6bae8f53a7af42c78659a49ae3abdf00000000000000000000000005feedf7ce0abd9252daf2140041b2fafdabd97b000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000000000000000000000000000003782dace9d9000000000000000000000000000000000000000000000000000003782dace9d9000000000000000000000000000000000000000000000000000003782dace9d9000000000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000001a055690d9db800000000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000001bc16d674ec8000f000000000000000000000000000000000000000000000001e5b8fa8fe2ac007e0000000000000000000000000000000000000000000000004563918244f40018000000000000000000000000000000000000000000000000d02ab486cedc004900000000000000000000000000000000000000000000000098a7d9b8314c00500000000000000000000000000000000000000000000000000de0b6b3a7640034000000000000000000000000000000000000000000000001a055690d9db800950000000000000000000000000000000000000000000000008ac7230489e8002d0000000000000000000000000000000000000000000000004563918244f4002800000000000000000000000000000000000000000000000053444835ec5800320000000000000000000000000000000000000000000000000de0b6b3a764001100000000000000000000000000000000000000000000000029a2241af62c001c0000000000000000000000000000000000000000000000006124fee993bc00260000000000000000000000000000000000000000000000004563918244f40002000000000000000000000000000000000000000000000001236efcbcbb3400ad0000000000000000000000000000000000000000000000004563918244f400110000000000000000000000000000000000000000000000019274b259f654006e0000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000001bc16d674ec800270000000000000000000000000000000000000000000000006124fee993bc00260000000000000000000000000000000000000000000000000de0b6b3a76400190000000000000000000000000000000000000000000000022b1c8c1227a0013a00000000000000000000000000000000000000000000000098a7d9b8314c005f0000000000000000000000000000000000000000000000008ac7230489e800340000000000000000000000000000000000000000000000006124fee993bc00070000000000000000000000000000000000000000000000004563918244f400010000000000000000000000000000000000000000000000008ac7230489e800400000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000007ce66c50e284002a00000000000000000000000000000000000000000000000029a2241af62c000d0000000000000000000000000000000000000000000000004563918244f4000f00000000000000000000000000000000000000000000000053444835ec58002200000000000000000000000000000000000000000000000029a2241af62c00360000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400110000000000000000000000000000000000000000000000008ac7230489e800220000000000000000000000000000000000000000000000004563918244f4000b0000000000000000000000000000000000000000000000003782dace9d9000150000000000000000000000000000000000000000000000004563918244f4000b0000000000000000000000000000000000000000000000008ac7230489e800170000000000000000000000000000000000000000000000004563918244f400090000000000000000000000000000000000000000000000003782dace9d9000020000000000000000000000000000000000000000000000004563918244f4000d0000000000000000000000000000000000000000000000000de0b6b3a76400180000000000000000000000000000000000000000000000000de0b6b3a764000d0000000000000000000000000000000000000000000000000de0b6b3a76400070000000000000000000000000000000000000000000000000de0b6b3a764000100000000000000000000000000000000000000000000000029a2241af62c001e0000000000000000000000000000000000000000000000001bc16d674ec8000f0000000000000000000000000000000000000000000000001bc16d674ec800040000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000000000000000000000000000029a2241af62c002b0000000000000000000000000000000000000000000000000de0b6b3a7640000

-----Decoded View---------------
Arg [0] : swapRouterAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : cuckPairAddress (address): 0x869a1009B4C6e973A9cD881F2EAf5B0aF8f5EB28
Arg [2] : airDropRecipients (address[]): 0x7ce9dA83253aFA7677c18815747a1adB271F92cA,0xcDA31b98131B059FE6464963F1F474De6e13eB2b,0xCF2Ee86dAaE7e364c7C05643E815C8D2498e2466,0x250d1bfaBC3A4c1578A492C27cF8d6695fc51098,0x97ECA8Be8313FBC682EDaA29020b81c781035001,0x158CE4D73F51c8565CD75cb228CCa90D361aB457,0x710Cf49624b7418Bbc117eb7D5d6bC11449b4651,0x687Cd3bBD3Ce296deF864EC707352bD0514272E9,0x26cE18bA31A79094668540Ff6B827eFc96DC090c,0x084a941400Bb378430b9045802D3F9c5CE5CcE37,0x229243f39a3B5991a6a74023DDcBc252810626f2,0x385678c7A6dac8d20232790d5438a6C751a3a318,0x7E9AD340A320d94c2bc4496A0E237494ED2A472d,0xcD9b25C804419980f677196e948b8a431a1A398c,0xc94952EB6E820734b5A7a527628657d6c3ab35D8,0xbb8e9B891a1f8298219bDde868B2EcbEc7f71190,0x8CC1f511973408837a474D9ebaD671A772FAad89,0xdcBF8453e6F0F00f9A3af56BdA1C6E2b936Ea197,0x9b6b034E4d05C082F60936adceCD31f3fB53435B,0x9A2a67a8ab55ABe5470BcC1BDbe9F525D9B87fe2,0xcBDE63EA065CAE5b04987499FE4595CDCa46c8Fb,0x1350804Da29D56eb3eC41189d8A7168fC017401a,0x2CaB21A48fC1E86Df3008E0Ef261340ece0AA635,0x29B19C2D7c2AB3D0429D964e5DE088d6b3e0A262,0x009d78a90108956DFBd688991A44D48B2dF28909,0xC4c23C12B6a5e6F0811A82d7C46c21F21eEe79D0,0xe47A82D0e4570dcd943C2BE28E4972e1A74CdFf1,0x7f3dE8007774f3eCccced34B88e45Ac50afAcD09,0x6677C1872240901Ffaa01Fbf1aB1645ebA1257DF,0x825096f13e6f506417F5176Ee810e06C4a140EE3,0x9c15078EbFcC032D00faCbB4fB9829b60C6e26b4,0x79d8B3549fD165116482C456dEAD053420123D8D,0x6A9b3e3D95CA45e39cDdA9345de9c1e667a645f1,0xCbb385321B8bE68500493440dBe1a50c8319f6eC,0x3C0428D2A6dD125ACD9bE5e6e340707108df06Dd,0x5d9eAE8c6C037245cc1aF7259987A949706067e9,0x16cD2AB21F60E2D8Eb31c6Ade5b470Da03e432Ff,0xD92cbD8FDdC8369E9622dFF0c2c1E8933e304766,0xCC4FE0bC29CA11185712FE3c28A937D5cA0362EB,0x363e0Bcb7b6D8Ded030ACC663104B398A7C38012,0xdeA0f1a633D94C41B9942c3AD707c49af4AC762D,0x5a79560CE95604A3D7c2e724Ad1407b368E0FAF2,0x138d049A34d20b1997f9F057b03B7b9CC97a5B9D,0xe31FAa4b39a6ee928a4f30fB8eDeDf2fc0A9E2BD,0x2Bf9a1FfbF5906736481652dcaaE1e4C168482b1,0xf467A36c337ffC9822225780cc75c290E8BD1C29,0xC336Ce75652e1FBf4524FFb20BdecA18B4457f0e,0xF0F6a2F9d11824572AFb686Ebf3bd3cA8540AECC,0xA453A030AD410A00f695AAeb661D1B0De30C9CbE,0x59B6fE8F1605C19e632C74A687C16604A81C554C,0x7d614762E9E8a716f6889C4158f3392986BbbcA3,0x603602E9A2ac7f1E26717C2b2193Fd68f5fafFf6,0x5Da0ca6510F611c8fDeb57afA9b357826ebEB576,0xBD87EF31cBE8257D805fE3DcF0674243b95C059c,0xB60bFd02207823360263Ed5886c9f3c240A05045,0xDf043d2D5aD5f618e74f793B976E30605DC7a1d4,0x438A73135d6f5cB771E4E6e21C1a996db2a821Ac,0xea90c80638843767d680040DceCfa4c3ab1573a7,0x578bd725e7AC96D8B26C82E2c8dAa843f7aD1226,0xee7Ad10fBf6bAE8f53A7AF42c78659a49aE3aBdF,0x05fEEdf7Ce0abd9252DAf2140041B2fafDaBD97B
Arg [3] : airDropAmounts (uint256[]): 4000000000000000000,4000000000000000000,4000000000000000000,4000000000000000000,30000000000000000000,5000000000000000000,2000000000000000015,35000000000000000126,5000000000000000024,15000000000000000073,11000000000000000080,1000000000000000052,30000000000000000149,10000000000000000045,5000000000000000040,6000000000000000050,1000000000000000017,3000000000000000028,7000000000000000038,5000000000000000002,21000000000000000173,5000000000000000017,29000000000000000110,2000000000000000000,2000000000000000039,7000000000000000038,1000000000000000025,40000000000000000314,11000000000000000095,10000000000000000052,7000000000000000007,5000000000000000001,10000000000000000064,5000000000000000000,9000000000000000042,3000000000000000013,5000000000000000015,6000000000000000034,3000000000000000054,1000000000000000000,1000000000000000000,1000000000000000000,1000000000000000017,10000000000000000034,5000000000000000011,4000000000000000021,5000000000000000011,10000000000000000023,5000000000000000009,4000000000000000002,5000000000000000013,1000000000000000024,1000000000000000013,1000000000000000007,1000000000000000001,3000000000000000030,2000000000000000015,2000000000000000004,2000000000000000000,3000000000000000043,1000000000000000000

-----Encoded View---------------
128 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000869a1009b4c6e973a9cd881f2eaf5b0af8f5eb28
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000840
Arg [4] : 000000000000000000000000000000000000000000000000000000000000003d
Arg [5] : 0000000000000000000000007ce9da83253afa7677c18815747a1adb271f92ca
Arg [6] : 000000000000000000000000cda31b98131b059fe6464963f1f474de6e13eb2b
Arg [7] : 000000000000000000000000cf2ee86daae7e364c7c05643e815c8d2498e2466
Arg [8] : 000000000000000000000000250d1bfabc3a4c1578a492c27cf8d6695fc51098
Arg [9] : 00000000000000000000000097eca8be8313fbc682edaa29020b81c781035001
Arg [10] : 000000000000000000000000158ce4d73f51c8565cd75cb228cca90d361ab457
Arg [11] : 000000000000000000000000710cf49624b7418bbc117eb7d5d6bc11449b4651
Arg [12] : 000000000000000000000000687cd3bbd3ce296def864ec707352bd0514272e9
Arg [13] : 00000000000000000000000026ce18ba31a79094668540ff6b827efc96dc090c
Arg [14] : 000000000000000000000000084a941400bb378430b9045802d3f9c5ce5cce37
Arg [15] : 000000000000000000000000229243f39a3b5991a6a74023ddcbc252810626f2
Arg [16] : 000000000000000000000000385678c7a6dac8d20232790d5438a6c751a3a318
Arg [17] : 0000000000000000000000007e9ad340a320d94c2bc4496a0e237494ed2a472d
Arg [18] : 000000000000000000000000cd9b25c804419980f677196e948b8a431a1a398c
Arg [19] : 000000000000000000000000c94952eb6e820734b5a7a527628657d6c3ab35d8
Arg [20] : 000000000000000000000000bb8e9b891a1f8298219bdde868b2ecbec7f71190
Arg [21] : 0000000000000000000000008cc1f511973408837a474d9ebad671a772faad89
Arg [22] : 000000000000000000000000dcbf8453e6f0f00f9a3af56bda1c6e2b936ea197
Arg [23] : 0000000000000000000000009b6b034e4d05c082f60936adcecd31f3fb53435b
Arg [24] : 0000000000000000000000009a2a67a8ab55abe5470bcc1bdbe9f525d9b87fe2
Arg [25] : 000000000000000000000000cbde63ea065cae5b04987499fe4595cdca46c8fb
Arg [26] : 0000000000000000000000001350804da29d56eb3ec41189d8a7168fc017401a
Arg [27] : 0000000000000000000000002cab21a48fc1e86df3008e0ef261340ece0aa635
Arg [28] : 00000000000000000000000029b19c2d7c2ab3d0429d964e5de088d6b3e0a262
Arg [29] : 000000000000000000000000009d78a90108956dfbd688991a44d48b2df28909
Arg [30] : 000000000000000000000000c4c23c12b6a5e6f0811a82d7c46c21f21eee79d0
Arg [31] : 000000000000000000000000e47a82d0e4570dcd943c2be28e4972e1a74cdff1
Arg [32] : 0000000000000000000000007f3de8007774f3ecccced34b88e45ac50afacd09
Arg [33] : 0000000000000000000000006677c1872240901ffaa01fbf1ab1645eba1257df
Arg [34] : 000000000000000000000000825096f13e6f506417f5176ee810e06c4a140ee3
Arg [35] : 0000000000000000000000009c15078ebfcc032d00facbb4fb9829b60c6e26b4
Arg [36] : 00000000000000000000000079d8b3549fd165116482c456dead053420123d8d
Arg [37] : 0000000000000000000000006a9b3e3d95ca45e39cdda9345de9c1e667a645f1
Arg [38] : 000000000000000000000000cbb385321b8be68500493440dbe1a50c8319f6ec
Arg [39] : 0000000000000000000000003c0428d2a6dd125acd9be5e6e340707108df06dd
Arg [40] : 0000000000000000000000005d9eae8c6c037245cc1af7259987a949706067e9
Arg [41] : 00000000000000000000000016cd2ab21f60e2d8eb31c6ade5b470da03e432ff
Arg [42] : 000000000000000000000000d92cbd8fddc8369e9622dff0c2c1e8933e304766
Arg [43] : 000000000000000000000000cc4fe0bc29ca11185712fe3c28a937d5ca0362eb
Arg [44] : 000000000000000000000000363e0bcb7b6d8ded030acc663104b398a7c38012
Arg [45] : 000000000000000000000000dea0f1a633d94c41b9942c3ad707c49af4ac762d
Arg [46] : 0000000000000000000000005a79560ce95604a3d7c2e724ad1407b368e0faf2
Arg [47] : 000000000000000000000000138d049a34d20b1997f9f057b03b7b9cc97a5b9d
Arg [48] : 000000000000000000000000e31faa4b39a6ee928a4f30fb8ededf2fc0a9e2bd
Arg [49] : 0000000000000000000000002bf9a1ffbf5906736481652dcaae1e4c168482b1
Arg [50] : 000000000000000000000000f467a36c337ffc9822225780cc75c290e8bd1c29
Arg [51] : 000000000000000000000000c336ce75652e1fbf4524ffb20bdeca18b4457f0e
Arg [52] : 000000000000000000000000f0f6a2f9d11824572afb686ebf3bd3ca8540aecc
Arg [53] : 000000000000000000000000a453a030ad410a00f695aaeb661d1b0de30c9cbe
Arg [54] : 00000000000000000000000059b6fe8f1605c19e632c74a687c16604a81c554c
Arg [55] : 0000000000000000000000007d614762e9e8a716f6889c4158f3392986bbbca3
Arg [56] : 000000000000000000000000603602e9a2ac7f1e26717c2b2193fd68f5fafff6
Arg [57] : 0000000000000000000000005da0ca6510f611c8fdeb57afa9b357826ebeb576
Arg [58] : 000000000000000000000000bd87ef31cbe8257d805fe3dcf0674243b95c059c
Arg [59] : 000000000000000000000000b60bfd02207823360263ed5886c9f3c240a05045
Arg [60] : 000000000000000000000000df043d2d5ad5f618e74f793b976e30605dc7a1d4
Arg [61] : 000000000000000000000000438a73135d6f5cb771e4e6e21c1a996db2a821ac
Arg [62] : 000000000000000000000000ea90c80638843767d680040dcecfa4c3ab1573a7
Arg [63] : 000000000000000000000000578bd725e7ac96d8b26c82e2c8daa843f7ad1226
Arg [64] : 000000000000000000000000ee7ad10fbf6bae8f53a7af42c78659a49ae3abdf
Arg [65] : 00000000000000000000000005feedf7ce0abd9252daf2140041b2fafdabd97b
Arg [66] : 000000000000000000000000000000000000000000000000000000000000003d
Arg [67] : 0000000000000000000000000000000000000000000000003782dace9d900000
Arg [68] : 0000000000000000000000000000000000000000000000003782dace9d900000
Arg [69] : 0000000000000000000000000000000000000000000000003782dace9d900000
Arg [70] : 0000000000000000000000000000000000000000000000003782dace9d900000
Arg [71] : 000000000000000000000000000000000000000000000001a055690d9db80000
Arg [72] : 0000000000000000000000000000000000000000000000004563918244f40000
Arg [73] : 0000000000000000000000000000000000000000000000001bc16d674ec8000f
Arg [74] : 000000000000000000000000000000000000000000000001e5b8fa8fe2ac007e
Arg [75] : 0000000000000000000000000000000000000000000000004563918244f40018
Arg [76] : 000000000000000000000000000000000000000000000000d02ab486cedc0049
Arg [77] : 00000000000000000000000000000000000000000000000098a7d9b8314c0050
Arg [78] : 0000000000000000000000000000000000000000000000000de0b6b3a7640034
Arg [79] : 000000000000000000000000000000000000000000000001a055690d9db80095
Arg [80] : 0000000000000000000000000000000000000000000000008ac7230489e8002d
Arg [81] : 0000000000000000000000000000000000000000000000004563918244f40028
Arg [82] : 00000000000000000000000000000000000000000000000053444835ec580032
Arg [83] : 0000000000000000000000000000000000000000000000000de0b6b3a7640011
Arg [84] : 00000000000000000000000000000000000000000000000029a2241af62c001c
Arg [85] : 0000000000000000000000000000000000000000000000006124fee993bc0026
Arg [86] : 0000000000000000000000000000000000000000000000004563918244f40002
Arg [87] : 000000000000000000000000000000000000000000000001236efcbcbb3400ad
Arg [88] : 0000000000000000000000000000000000000000000000004563918244f40011
Arg [89] : 0000000000000000000000000000000000000000000000019274b259f654006e
Arg [90] : 0000000000000000000000000000000000000000000000001bc16d674ec80000
Arg [91] : 0000000000000000000000000000000000000000000000001bc16d674ec80027
Arg [92] : 0000000000000000000000000000000000000000000000006124fee993bc0026
Arg [93] : 0000000000000000000000000000000000000000000000000de0b6b3a7640019
Arg [94] : 0000000000000000000000000000000000000000000000022b1c8c1227a0013a
Arg [95] : 00000000000000000000000000000000000000000000000098a7d9b8314c005f
Arg [96] : 0000000000000000000000000000000000000000000000008ac7230489e80034
Arg [97] : 0000000000000000000000000000000000000000000000006124fee993bc0007
Arg [98] : 0000000000000000000000000000000000000000000000004563918244f40001
Arg [99] : 0000000000000000000000000000000000000000000000008ac7230489e80040
Arg [100] : 0000000000000000000000000000000000000000000000004563918244f40000
Arg [101] : 0000000000000000000000000000000000000000000000007ce66c50e284002a
Arg [102] : 00000000000000000000000000000000000000000000000029a2241af62c000d
Arg [103] : 0000000000000000000000000000000000000000000000004563918244f4000f
Arg [104] : 00000000000000000000000000000000000000000000000053444835ec580022
Arg [105] : 00000000000000000000000000000000000000000000000029a2241af62c0036
Arg [106] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [107] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [108] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [109] : 0000000000000000000000000000000000000000000000000de0b6b3a7640011
Arg [110] : 0000000000000000000000000000000000000000000000008ac7230489e80022
Arg [111] : 0000000000000000000000000000000000000000000000004563918244f4000b
Arg [112] : 0000000000000000000000000000000000000000000000003782dace9d900015
Arg [113] : 0000000000000000000000000000000000000000000000004563918244f4000b
Arg [114] : 0000000000000000000000000000000000000000000000008ac7230489e80017
Arg [115] : 0000000000000000000000000000000000000000000000004563918244f40009
Arg [116] : 0000000000000000000000000000000000000000000000003782dace9d900002
Arg [117] : 0000000000000000000000000000000000000000000000004563918244f4000d
Arg [118] : 0000000000000000000000000000000000000000000000000de0b6b3a7640018
Arg [119] : 0000000000000000000000000000000000000000000000000de0b6b3a764000d
Arg [120] : 0000000000000000000000000000000000000000000000000de0b6b3a7640007
Arg [121] : 0000000000000000000000000000000000000000000000000de0b6b3a7640001
Arg [122] : 00000000000000000000000000000000000000000000000029a2241af62c001e
Arg [123] : 0000000000000000000000000000000000000000000000001bc16d674ec8000f
Arg [124] : 0000000000000000000000000000000000000000000000001bc16d674ec80004
Arg [125] : 0000000000000000000000000000000000000000000000001bc16d674ec80000
Arg [126] : 00000000000000000000000000000000000000000000000029a2241af62c002b
Arg [127] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.