ETH Price: $3,451.80 (-1.01%)
Gas: 4.37 Gwei

Token

GiveawayToken (GIVEAWAY)
 

Overview

Max Total Supply

42,000,000,000,000 GIVEAWAY

Holders

738

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
61,526,525,211.010007964311355135 GIVEAWAY

Value
$0.00
0x7ba0466d68174a8d8959996c4b4455b29a2ce482
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:
GiveawayToken

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 6: GiveawayToken.sol
// SPDX-License-Identifier: MIT
// Creator: Chillieman (iHateScammers.eth)
// Twitter: @Chillieman1 && @_GiveawayToken_

pragma solidity ^0.8.9;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";
import "./IUniswapV2Router02.sol";
import "./IUniswapV2Factory.sol";

contract GiveawayToken is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

	// 1% of Transfers will goto Giveaways and AirDrops.
	// 1% of Transfers will be held for Team Expenses
	uint8 constant private _feeForEachBucket = 1;
	uint8 constant private _totalFees = 2;
	
    // My Giveaway Wallet - iHateScammers.eth
    address constant private _chillieman = 0xE1b49c45F5079a02E603aFFF00C035c242aEeE16;

    //We have to allow Exchange Wallets (UniSwap Router / Pair) to hold more than 1% of the supply
	mapping (address => bool) private _isExcludedFromTokenLimit;
    bool private _isWalletLimitEnforced; // Do we limit the Max Value of wallets?
    bool private _isUniswapFunded;


    // Running Amount of how much Fees have been collected.
    uint256 private _teamStash;
    uint256 private _giveawayStash;

    // Airdrops Start at 4 and decrement everytime an Initial Airdrop is sent. Initial Airdrops only work if this is non-zero.
	uint8 private _airdropsLeft;

	string private constant _name = "GiveawayToken";
    string private constant _symbol = "GIVEAWAY";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 	42_000_000_000_000 ether; // 42 Trillion Tokens
    uint256 private constant _uniSwapSupply = 	33_600_000_000_000 ether; // 80%
    uint256 private constant _airdropSupply = 	 2_100_000_000_000 ether; // 5% for Each AirDrop
    uint256 private constant _maxWalletAmount =    420_000_000_000 ether; // Wallets cant hold more than 1%

    IUniswapV2Router02 private _uniswapV2Router;
    address private _uniswapV2Pair;

    // Emitted when an exchange is added or removed to the _isExcludedFromTokenLimit list.
	event ExchangeAdded(address exchangeAddress);
	event ExchangeRemoved(address exchangeAddress);
	
	modifier onlyChillie {
        require(_chillieman == _msgSender(), "Denied: caller is not Chillieman");
        _;
    }

    constructor() payable {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address pairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // Approve the UniSwap Router so Initial LP can be created
        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

        // Add the UniSwap Pair / Router to MaxAmount List - This will allow this exchange to hold more than 1%
        _isExcludedFromTokenLimit[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;
        _isExcludedFromTokenLimit[pairAddress] = true;

        // THIS contract is allowed to hold more than 1%
        _isExcludedFromTokenLimit[address(this)] = true;

        // Set Starting Variables
        _teamStash = 0;
        _giveawayStash = 0;
        _airdropsLeft = 4; // 4 separate Airdrops.
        _isUniswapFunded = false;

        // At First, We limit Coins to 1% of the Total Supply 
        // - If this ever needs to allow Wallets to go wild, Switch this to False
        _isWalletLimitEnforced = true;

		// Give all the Tokens to THIS contract, not Chillieman.
		_balances[address(this)] = _totalSupply;
        emit Transfer(address(0), _chillieman, _totalSupply);
    }

    // Return Chilliemans GiveAway Wallet
	function chillieman() public pure returns (address) {
		return _chillieman;
	}

    // Return Uniswap Router Address
	function uniswapV2Router() public view returns (IUniswapV2Router02) {
		return _uniswapV2Router;
	}

    // Return Name of Token
    function name() public pure virtual override returns (string memory) {
        return _name;
    }

    // Return Symbol of Token
    function symbol() public pure virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public pure virtual override returns (uint8) {
        return _decimals;
    }

    // Return Total Supply
    function totalSupply() public pure virtual override returns (uint256) {
        return _totalSupply;
    }

    // Return Balance of specific wallet
    function balanceOf(address wallet) public view virtual override returns (uint256) {
        return _balances[wallet];
    }
    
    // Return the amount currently held for Team Expense
	function teamStash() public view returns (uint256) {
        return _teamStash;
    }
	
    // Return the amount currently held for Giveaways
	function giveawayStash() public view returns (uint256) {
        return _giveawayStash;
    }
	
    // How many of the initial Airdrops are left (0-4)
	function airdropsRemaining() public view returns (uint) {
        return _airdropsLeft;
    }

    // Check a wallet to see if it can own more than 1% of supply (Reserved for Exchanges)
    function isExcludedFromWalletLimit(address wallet) public view returns(bool) {
	    return _isExcludedFromTokenLimit[wallet];
    }

    // Returns True if Wallets currently are limited to 1% of supply
    function isWalletEnforcementEnabled() public view returns (bool) {
        return _isWalletLimitEnforced;
    }

    // Public Interface to perform a tranfer from your wallet
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    // Check Allowances - Does a Spender have the ability to Transfer Tokens in your name?
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    // Allow someone else (Such as UniSwap) to transfer tokens in your name
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    // Called from UniSwap to swap your tokens for ETH
    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;
    }

    // Increase the amount that a Spender can send in your name
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    // Decrease the amount that a Spender can send in your name
    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;
    }
    
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    // Calculate 1% of a transaction (How much will be withheld for Giveaways & Team Expenses?
    function calculateBaseFee(uint256 amount) private pure returns (uint256) {
        return amount / 100;
    }

    // Set the amount that an extrenal wallet can transfer in your name.
    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);
    }

    // Internal Method to descrease the ammount of Allowance
    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);
            }
        }
    }

    // Internal Transfer Function - Takes Fees from any transfer that is not directly to or from this Contract
    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");
        require(_balances[from] >= amount, "ERC20: transfer amount exceeds balance");
        
		uint256 tokensToTransfer;
	
        // Transfer coming from this Contract dont pay fee 
        // - Dont Take Fees On Giveaways / Airdrops / UniSwap Funding.
        if (to == address(this) || from == address(this)) {
            tokensToTransfer = amount;
        } else {
            tokensToTransfer = takeFeesAndEnforceWalletLimit(to, from, amount);
        }

		unchecked {
            _balances[from] -= tokensToTransfer;
            _balances[to] += tokensToTransfer;
        }
        
        emit Transfer(from, to, tokensToTransfer);
    }

    // Withhold 2% of every Transfer to be used for Giveaways and Team Expenses
	function takeFeesAndEnforceWalletLimit(address to, address from, uint256 amount) private returns (uint256) {
		uint256 baseFee = calculateBaseFee(amount);
		uint256 totalFees = baseFee * _totalFees; // 2% is withheld for Token Growth / Giveaways
        uint256 amountAfterFees = amount - totalFees;

        // If we are Enforming Wallet Limit, make sure the Receiving Wallet doesnt receive more than 1%!
        if(_isWalletLimitEnforced && !isExcludedFromWalletLimit(to)) {
            // Make sure that After fees, Wallets do NOT have more than 1% of supply
            require(_balances[to] + amountAfterFees <= _maxWalletAmount, "Wallet Cannot Receive this much! Over Limit.");
        }
		
		// Add Fees for Giveaways and Team.
		unchecked {
			_teamStash += baseFee;
			_giveawayStash += baseFee;
			_balances[address(this)] += totalFees;
            _balances[from] -= totalFees;
		}
		
		emit Transfer(from, address(this), totalFees);
		
		//After fees have been taken, return the amount of tokens left for the recipient
		return amountAfterFees;
    }

	// Function to Fund Uniswap
	function fundUniSwap() public onlyChillie {
		require(!_isUniswapFunded, "You already Supplied Funds to to UniSwap");
		
		// Enter Initial Supply to UniSwap.
		 _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _uniSwapSupply,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(this), // Lock Liquidity Tokens HERE! This can never be retreived
            block.timestamp 
        );
		
		_isUniswapFunded = true;
    }

    // -- Chillieman Functions --

    // Turn off the MAX TOKEN Limit. If the 1% MAX WALLET severly Hinders token growth, consider disabling it.
    function disableWalletLimit() public onlyChillie {
		_isWalletLimitEnforced = false;
    }

    // Turn back on the MAX TOKEN Limit. 
    function reenableWalletLimit() public onlyChillie {
		_isWalletLimitEnforced = true;
    }

    // Add an Exchange so it can hold more than 1% of the Supply.
    function chillieAddExchange(address wallet) public onlyChillie {
		require(!_isExcludedFromTokenLimit[wallet], "Exchange is already Added");
        _isExcludedFromTokenLimit[wallet] = true;
		emit ExchangeAdded(wallet);
    }
    
    // Remove an Exchange so it can no longer hold more than 1% of the Supply.
    function chillieRemoveExchange(address wallet) external onlyChillie {
		require(_isExcludedFromTokenLimit[wallet], "This is not an Exchange");

		// Make sure the core accounts cannot be removed from this list!
		require(wallet != address(this), "Cant Remove This Contract!");
		require(wallet != address(_uniswapV2Router), "Cant Remove the Initial Router!");
		require(wallet != address(_uniswapV2Pair), "Cant Remove the Liquidity Pair!");

        _isExcludedFromTokenLimit[wallet] = false;
		emit ExchangeRemoved(wallet);
    }
	
	// Function to Distribute starting AirDrops
	function initialAirdrops(address[] calldata winners) public onlyChillie {
		require(_airdropsLeft > 0, "Initial Airdrops are gone, did you mean to use giveawayAirdrops?");
		uint256 leftOverTokens = performAirdrop(address(this), winners, _airdropSupply);
		_airdropsLeft -= 1;

        // ADD LeftOverTokens to the Giveaway Stash
        _giveawayStash += leftOverTokens;
    }
	
	// Distribute Generational Wealth
	function giveawayGenerationalWealth(address winner) public onlyChillie {
		require(_giveawayStash > 0, "No Giveaway Fees to give");
        _balances[address(this)] -= _giveawayStash;
        _balances[winner] += _giveawayStash;
        emit Transfer(address(this), winner, _giveawayStash);
		_giveawayStash = 0;
    }
	
	// Function to Distribute Giveaway AirDrops
	function giveawayAirdrops(address[] calldata winners) public onlyChillie {
		require(_giveawayStash > 0, "Nothing to Giveaway!");
		uint256 leftOverTokens = performAirdrop(address(this), winners, _giveawayStash);
        
        // Put Any LeftOverTokens in the Giveaway Stash
        _giveawayStash = leftOverTokens;
    }
	
	// Function to perform an AirDrop
	function performAirdrop(address thisContract, address[] calldata winners, uint256 amount) private returns(uint256) {
		uint256 amountBefore = _balances[thisContract];
		uint256 amountToGive = amount / winners.length;
		unchecked {
			for (uint16 i = 0; i < winners.length; i++) {
                address winner = winners[i];
                _balances[winner] += amountToGive;
                _balances[thisContract] -= amountToGive;
                emit Transfer(thisContract, winner, amountToGive);
			}
		}

		uint256 amountGiven = amountBefore - _balances[thisContract];
		
		// Return the remainder tokens after providing airdrop.
		return amount - amountGiven;
    }
	
    // Claim Fees withheld for Team Expenses.
	function chillieClaimTeamStash() public onlyChillie {
		require(_teamStash > 0, "No Team Fees to claim");
		_transfer(address(this), _chillieman, _teamStash);
		_teamStash = 0;
    }
}

File 1 of 6: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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;
    }
}

File 3 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.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 6: 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);
}

File 5 of 6: IUniswapV2Factory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 6 of 6: IUniswapV2Router02.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"address","name":"exchangeAddress","type":"address"}],"name":"ExchangeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"exchangeAddress","type":"address"}],"name":"ExchangeRemoved","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":[],"name":"airdropsRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"wallet","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"chillieAddExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chillieClaimTeamStash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"chillieRemoveExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chillieman","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"disableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundUniSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"winners","type":"address[]"}],"name":"giveawayAirdrops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"winner","type":"address"}],"name":"giveawayGenerationalWealth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"giveawayStash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address[]","name":"winners","type":"address[]"}],"name":"initialAirdrops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isExcludedFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWalletEnforcementEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"reenableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamStash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c457600080fd5b505afa158015620000d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ff919062000728565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018457600080fd5b505afa15801562000199573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bf919062000728565b6040518363ffffffff1660e01b8152600401620001de9291906200076b565b602060405180830381600087803b158015620001f957600080fd5b505af11580156200020e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000234919062000728565b90506200028b30600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620004eb60201b60201c565b600160026000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600060048190555060006005819055506004600660006101000a81548160ff021916908360ff1602179055506000600360016101000a81548160ff0219169083151502179055506001600360006101000a81548160ff0219169083151502179055506d02121d51ba2b8f2f086e800000006000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6d02121d51ba2b8f2f086e80000000604051620004dc9190620007b3565b60405180910390a35062000911565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200055e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005559062000857565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620005d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c890620008ef565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620006b19190620007b3565b60405180910390a3505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006f082620006c3565b9050919050565b6200070281620006e3565b81146200070e57600080fd5b50565b6000815190506200072281620006f7565b92915050565b600060208284031215620007415762000740620006be565b5b6000620007518482850162000711565b91505092915050565b6200076581620006e3565b82525050565b60006040820190506200078260008301856200075a565b6200079160208301846200075a565b9392505050565b6000819050919050565b620007ad8162000798565b82525050565b6000602082019050620007ca6000830184620007a2565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200083f602483620007d0565b91506200084c82620007e1565b604082019050919050565b60006020820190508181036000830152620008728162000830565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620008d7602283620007d0565b9150620008e48262000879565b604082019050919050565b600060208201905081810360008301526200090a81620008c8565b9050919050565b61311980620009216000396000f3fe60806040526004361061019f5760003560e01c8063697cfc19116100ec578063a9059cbb1161008a578063b6b2e30611610064578063b6b2e306146105c0578063c3b23c69146105eb578063dd62ed3e14610616578063f24da3be14610653576101a6565b8063a9059cbb1461052f578063b0c442d11461056c578063b40f946914610583576101a6565b806395d89b41116100c657806395d89b4114610485578063a24aba54146104b0578063a457c2d7146104c7578063a618494014610504576101a6565b8063697cfc191461040857806370a082311461041f578063859a0bd51461045c576101a6565b806318160ddd11610159578063313ce56711610133578063313ce5671461034e578063326e56d71461037957806339509351146103a25780635b02d269146103df576101a6565b806318160ddd146102bd57806323b872dd146102e85780632c54402314610325576101a6565b8062a17483146101ab5780630439456e146101d657806306fdde03146101ff578063095ea7b31461022a5780631694505e14610267578063172c126e14610292576101a6565b366101a657005b600080fd5b3480156101b757600080fd5b506101c061066a565b6040516101cd9190612082565b60405180910390f35b3480156101e257600080fd5b506101fd60048036038101906101f89190612105565b610684565b005b34801561020b57600080fd5b5061021461082c565b60405161022191906121cb565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190612219565b610869565b60405161025e9190612274565b60405180910390f35b34801561027357600080fd5b5061027c61088c565b60405161028991906122ee565b60405180910390f35b34801561029e57600080fd5b506102a76108b6565b6040516102b49190612082565b60405180910390f35b3480156102c957600080fd5b506102d26108c0565b6040516102df9190612082565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190612309565b6108d6565b60405161031c9190612274565b60405180910390f35b34801561033157600080fd5b5061034c600480360381019061034791906123c1565b610905565b005b34801561035a57600080fd5b50610363610a55565b604051610370919061242a565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906123c1565b610a5e565b005b3480156103ae57600080fd5b506103c960048036038101906103c49190612219565b610b4a565b6040516103d69190612274565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612105565b610b81565b005b34801561041457600080fd5b5061041d610d6f565b005b34801561042b57600080fd5b5061044660048036038101906104419190612105565b610e15565b6040516104539190612082565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190612105565b610e5d565b005b34801561049157600080fd5b5061049a611195565b6040516104a791906121cb565b60405180910390f35b3480156104bc57600080fd5b506104c56111d2565b005b3480156104d357600080fd5b506104ee60048036038101906104e99190612219565b6112cb565b6040516104fb9190612274565b60405180910390f35b34801561051057600080fd5b50610519611342565b6040516105269190612454565b60405180910390f35b34801561053b57600080fd5b5061055660048036038101906105519190612219565b61135e565b6040516105639190612274565b60405180910390f35b34801561057857600080fd5b50610581611381565b005b34801561058f57600080fd5b506105aa60048036038101906105a59190612105565b611427565b6040516105b79190612274565b60405180910390f35b3480156105cc57600080fd5b506105d561147d565b6040516105e29190612082565b60405180910390f35b3480156105f757600080fd5b50610600611487565b60405161060d9190612274565b60405180910390f35b34801561062257600080fd5b5061063d6004803603810190610638919061246f565b61149e565b60405161064a9190612082565b60405180910390f35b34801561065f57600080fd5b50610668611525565b005b6000600660009054906101000a900460ff1660ff16905090565b61068c6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461070d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610704906124fb565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612567565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e1816040516108219190612454565b60405180910390a150565b60606040518060400160405280600d81526020017f4769766561776179546f6b656e00000000000000000000000000000000000000815250905090565b6000806108746116e5565b90506108818185856116ed565b600191505092915050565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600554905090565b60006d02121d51ba2b8f2f086e80000000905090565b6000806108e16116e5565b90506108ee8582856118b8565b6108f9858585611944565b60019150509392505050565b61090d6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610985906124fb565b60405180910390fd5b6000600660009054906101000a900460ff1660ff16116109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da906125f9565b60405180910390fd5b60006109fe3084846c1a8177494efa5bf39f20000000611c2a565b90506001600660008282829054906101000a900460ff16610a1f9190612648565b92506101000a81548160ff021916908360ff1602179055508060056000828254610a49919061267c565b92505081905550505050565b60006012905090565b610a666116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906124fb565b60405180910390fd5b600060055411610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b239061271e565b60405180910390fd5b6000610b3c308484600554611c2a565b905080600581905550505050565b600080610b556116e5565b9050610b76818585610b67858961149e565b610b71919061267c565b6116ed565b600191505092915050565b610b896116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906124fb565b60405180910390fd5b600060055411610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c469061278a565b60405180910390fd5b6005546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c9f91906127aa565b925050819055506005546000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610cf6919061267c565b925050819055508073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051610d5c9190612082565b60405180910390a3600060058190555050565b610d776116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906124fb565b60405180910390fd5b6000600360006101000a81548160ff021916908315150217905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e656116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd906124fb565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f699061282a565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612896565b60405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990612902565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa9061296e565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb8160405161118a9190612454565b60405180910390a150565b60606040518060400160405280600881526020017f4749564541574159000000000000000000000000000000000000000000000000815250905090565b6111da6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461125b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611252906124fb565b60405180910390fd5b6000600454116112a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611297906129da565b60405180910390fd5b6112c13073e1b49c45f5079a02e603afff00c035c242aeee16600454611944565b6000600481905550565b6000806112d66116e5565b905060006112e4828661149e565b905083811015611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090612a6c565b60405180910390fd5b61133682868684036116ed565b60019250505092915050565b600073e1b49c45f5079a02e603afff00c035c242aeee16905090565b6000806113696116e5565b9050611376818585611944565b600191505092915050565b6113896116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461140a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611401906124fb565b60405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600454905090565b6000600360009054906101000a900460ff16905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61152d6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff16146115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a5906124fb565b60405180910390fd5b600360019054906101000a900460ff16156115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612afe565b60405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306d01a8177494efa5bf39f20000000060008030426040518863ffffffff1660e01b815260040161167396959493929190612b59565b6060604051808303818588803b15801561168c57600080fd5b505af11580156116a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116c59190612bcf565b5050506001600360016101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c490612d26565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118ab9190612082565b60405180910390a3505050565b60006118c4848461149e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461193e5781811015611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192790612d92565b60405180910390fd5b61193d84848484036116ed565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90612e24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b90612eb6565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90612f48565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611b0c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611b1957819050611b27565b611b24838584611e36565b90505b806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c1c9190612082565b60405180910390a350505050565b6000806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008585905084611c7f9190612f97565b905060005b868690508161ffff161015611dce57600087878361ffff16818110611cac57611cab612fc8565b5b9050602002016020810190611cc19190612105565b9050826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550826000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611db89190612082565b60405180910390a3508080600101915050611c84565b5060008060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e1b91906127aa565b90508085611e2991906127aa565b9350505050949350505050565b600080611e4283612053565b90506000600260ff1682611e569190612ff7565b905060008185611e6691906127aa565b9050600360009054906101000a900460ff168015611e8a5750611e8887611427565b155b15611f29576c054d17db76321263eca0000000816000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee7919061267c565b1115611f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1f906130c3565b60405180910390fd5b5b8260046000828254019250508190555082600560008282540192505081905550816000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161203e9190612082565b60405180910390a38093505050509392505050565b60006064826120629190612f97565b9050919050565b6000819050919050565b61207c81612069565b82525050565b60006020820190506120976000830184612073565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120d2826120a7565b9050919050565b6120e2816120c7565b81146120ed57600080fd5b50565b6000813590506120ff816120d9565b92915050565b60006020828403121561211b5761211a61209d565b5b6000612129848285016120f0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561216c578082015181840152602081019050612151565b8381111561217b576000848401525b50505050565b6000601f19601f8301169050919050565b600061219d82612132565b6121a7818561213d565b93506121b781856020860161214e565b6121c081612181565b840191505092915050565b600060208201905081810360008301526121e58184612192565b905092915050565b6121f681612069565b811461220157600080fd5b50565b600081359050612213816121ed565b92915050565b600080604083850312156122305761222f61209d565b5b600061223e858286016120f0565b925050602061224f85828601612204565b9150509250929050565b60008115159050919050565b61226e81612259565b82525050565b60006020820190506122896000830184612265565b92915050565b6000819050919050565b60006122b46122af6122aa846120a7565b61228f565b6120a7565b9050919050565b60006122c682612299565b9050919050565b60006122d8826122bb565b9050919050565b6122e8816122cd565b82525050565b600060208201905061230360008301846122df565b92915050565b6000806000606084860312156123225761232161209d565b5b6000612330868287016120f0565b9350506020612341868287016120f0565b925050604061235286828701612204565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126123815761238061235c565b5b8235905067ffffffffffffffff81111561239e5761239d612361565b5b6020830191508360208202830111156123ba576123b9612366565b5b9250929050565b600080602083850312156123d8576123d761209d565b5b600083013567ffffffffffffffff8111156123f6576123f56120a2565b5b6124028582860161236b565b92509250509250929050565b600060ff82169050919050565b6124248161240e565b82525050565b600060208201905061243f600083018461241b565b92915050565b61244e816120c7565b82525050565b60006020820190506124696000830184612445565b92915050565b600080604083850312156124865761248561209d565b5b6000612494858286016120f0565b92505060206124a5858286016120f0565b9150509250929050565b7f44656e6965643a2063616c6c6572206973206e6f74204368696c6c69656d616e600082015250565b60006124e560208361213d565b91506124f0826124af565b602082019050919050565b60006020820190508181036000830152612514816124d8565b9050919050565b7f45786368616e676520697320616c726561647920416464656400000000000000600082015250565b600061255160198361213d565b915061255c8261251b565b602082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b7f496e697469616c2041697264726f70732061726520676f6e652c20646964207960008201527f6f75206d65616e20746f2075736520676976656177617941697264726f70733f602082015250565b60006125e360408361213d565b91506125ee82612587565b604082019050919050565b60006020820190508181036000830152612612816125d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126538261240e565b915061265e8361240e565b92508282101561267157612670612619565b5b828203905092915050565b600061268782612069565b915061269283612069565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126c7576126c6612619565b5b828201905092915050565b7f4e6f7468696e6720746f20476976656177617921000000000000000000000000600082015250565b600061270860148361213d565b9150612713826126d2565b602082019050919050565b60006020820190508181036000830152612737816126fb565b9050919050565b7f4e6f204769766561776179204665657320746f20676976650000000000000000600082015250565b600061277460188361213d565b915061277f8261273e565b602082019050919050565b600060208201905081810360008301526127a381612767565b9050919050565b60006127b582612069565b91506127c083612069565b9250828210156127d3576127d2612619565b5b828203905092915050565b7f54686973206973206e6f7420616e2045786368616e6765000000000000000000600082015250565b600061281460178361213d565b915061281f826127de565b602082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f43616e742052656d6f7665205468697320436f6e747261637421000000000000600082015250565b6000612880601a8361213d565b915061288b8261284a565b602082019050919050565b600060208201905081810360008301526128af81612873565b9050919050565b7f43616e742052656d6f76652074686520496e697469616c20526f757465722100600082015250565b60006128ec601f8361213d565b91506128f7826128b6565b602082019050919050565b6000602082019050818103600083015261291b816128df565b9050919050565b7f43616e742052656d6f766520746865204c697175696469747920506169722100600082015250565b6000612958601f8361213d565b915061296382612922565b602082019050919050565b600060208201905081810360008301526129878161294b565b9050919050565b7f4e6f205465616d204665657320746f20636c61696d0000000000000000000000600082015250565b60006129c460158361213d565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a5660258361213d565b9150612a61826129fa565b604082019050919050565b60006020820190508181036000830152612a8581612a49565b9050919050565b7f596f7520616c726561647920537570706c6965642046756e647320746f20746f60008201527f20556e6953776170000000000000000000000000000000000000000000000000602082015250565b6000612ae860288361213d565b9150612af382612a8c565b604082019050919050565b60006020820190508181036000830152612b1781612adb565b9050919050565b6000819050919050565b6000612b43612b3e612b3984612b1e565b61228f565b612069565b9050919050565b612b5381612b28565b82525050565b600060c082019050612b6e6000830189612445565b612b7b6020830188612073565b612b886040830187612b4a565b612b956060830186612b4a565b612ba26080830185612445565b612baf60a0830184612073565b979650505050505050565b600081519050612bc9816121ed565b92915050565b600080600060608486031215612be857612be761209d565b5b6000612bf686828701612bba565b9350506020612c0786828701612bba565b9250506040612c1886828701612bba565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c7e60248361213d565b9150612c8982612c22565b604082019050919050565b60006020820190508181036000830152612cad81612c71565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1060228361213d565b9150612d1b82612cb4565b604082019050919050565b60006020820190508181036000830152612d3f81612d03565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d7c601d8361213d565b9150612d8782612d46565b602082019050919050565b60006020820190508181036000830152612dab81612d6f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e0e60258361213d565b9150612e1982612db2565b604082019050919050565b60006020820190508181036000830152612e3d81612e01565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea060238361213d565b9150612eab82612e44565b604082019050919050565b60006020820190508181036000830152612ecf81612e93565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612f3260268361213d565b9150612f3d82612ed6565b604082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fa282612069565b9150612fad83612069565b925082612fbd57612fbc612f68565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061300282612069565b915061300d83612069565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561304657613045612619565b5b828202905092915050565b7f57616c6c65742043616e6e6f7420526563656976652074686973206d7563682160008201527f204f766572204c696d69742e0000000000000000000000000000000000000000602082015250565b60006130ad602c8361213d565b91506130b882613051565b604082019050919050565b600060208201905081810360008301526130dc816130a0565b905091905056fea26469706673582212204f26f61da1f4b0dcfca86681ded9661e2329146595dc0a842ce10a4b5997416a64736f6c63430008090033

Deployed Bytecode

0x60806040526004361061019f5760003560e01c8063697cfc19116100ec578063a9059cbb1161008a578063b6b2e30611610064578063b6b2e306146105c0578063c3b23c69146105eb578063dd62ed3e14610616578063f24da3be14610653576101a6565b8063a9059cbb1461052f578063b0c442d11461056c578063b40f946914610583576101a6565b806395d89b41116100c657806395d89b4114610485578063a24aba54146104b0578063a457c2d7146104c7578063a618494014610504576101a6565b8063697cfc191461040857806370a082311461041f578063859a0bd51461045c576101a6565b806318160ddd11610159578063313ce56711610133578063313ce5671461034e578063326e56d71461037957806339509351146103a25780635b02d269146103df576101a6565b806318160ddd146102bd57806323b872dd146102e85780632c54402314610325576101a6565b8062a17483146101ab5780630439456e146101d657806306fdde03146101ff578063095ea7b31461022a5780631694505e14610267578063172c126e14610292576101a6565b366101a657005b600080fd5b3480156101b757600080fd5b506101c061066a565b6040516101cd9190612082565b60405180910390f35b3480156101e257600080fd5b506101fd60048036038101906101f89190612105565b610684565b005b34801561020b57600080fd5b5061021461082c565b60405161022191906121cb565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190612219565b610869565b60405161025e9190612274565b60405180910390f35b34801561027357600080fd5b5061027c61088c565b60405161028991906122ee565b60405180910390f35b34801561029e57600080fd5b506102a76108b6565b6040516102b49190612082565b60405180910390f35b3480156102c957600080fd5b506102d26108c0565b6040516102df9190612082565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190612309565b6108d6565b60405161031c9190612274565b60405180910390f35b34801561033157600080fd5b5061034c600480360381019061034791906123c1565b610905565b005b34801561035a57600080fd5b50610363610a55565b604051610370919061242a565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906123c1565b610a5e565b005b3480156103ae57600080fd5b506103c960048036038101906103c49190612219565b610b4a565b6040516103d69190612274565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612105565b610b81565b005b34801561041457600080fd5b5061041d610d6f565b005b34801561042b57600080fd5b5061044660048036038101906104419190612105565b610e15565b6040516104539190612082565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190612105565b610e5d565b005b34801561049157600080fd5b5061049a611195565b6040516104a791906121cb565b60405180910390f35b3480156104bc57600080fd5b506104c56111d2565b005b3480156104d357600080fd5b506104ee60048036038101906104e99190612219565b6112cb565b6040516104fb9190612274565b60405180910390f35b34801561051057600080fd5b50610519611342565b6040516105269190612454565b60405180910390f35b34801561053b57600080fd5b5061055660048036038101906105519190612219565b61135e565b6040516105639190612274565b60405180910390f35b34801561057857600080fd5b50610581611381565b005b34801561058f57600080fd5b506105aa60048036038101906105a59190612105565b611427565b6040516105b79190612274565b60405180910390f35b3480156105cc57600080fd5b506105d561147d565b6040516105e29190612082565b60405180910390f35b3480156105f757600080fd5b50610600611487565b60405161060d9190612274565b60405180910390f35b34801561062257600080fd5b5061063d6004803603810190610638919061246f565b61149e565b60405161064a9190612082565b60405180910390f35b34801561065f57600080fd5b50610668611525565b005b6000600660009054906101000a900460ff1660ff16905090565b61068c6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461070d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610704906124fb565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612567565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e1816040516108219190612454565b60405180910390a150565b60606040518060400160405280600d81526020017f4769766561776179546f6b656e00000000000000000000000000000000000000815250905090565b6000806108746116e5565b90506108818185856116ed565b600191505092915050565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600554905090565b60006d02121d51ba2b8f2f086e80000000905090565b6000806108e16116e5565b90506108ee8582856118b8565b6108f9858585611944565b60019150509392505050565b61090d6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610985906124fb565b60405180910390fd5b6000600660009054906101000a900460ff1660ff16116109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da906125f9565b60405180910390fd5b60006109fe3084846c1a8177494efa5bf39f20000000611c2a565b90506001600660008282829054906101000a900460ff16610a1f9190612648565b92506101000a81548160ff021916908360ff1602179055508060056000828254610a49919061267c565b92505081905550505050565b60006012905090565b610a666116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906124fb565b60405180910390fd5b600060055411610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b239061271e565b60405180910390fd5b6000610b3c308484600554611c2a565b905080600581905550505050565b600080610b556116e5565b9050610b76818585610b67858961149e565b610b71919061267c565b6116ed565b600191505092915050565b610b896116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906124fb565b60405180910390fd5b600060055411610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c469061278a565b60405180910390fd5b6005546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c9f91906127aa565b925050819055506005546000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610cf6919061267c565b925050819055508073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051610d5c9190612082565b60405180910390a3600060058190555050565b610d776116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906124fb565b60405180910390fd5b6000600360006101000a81548160ff021916908315150217905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e656116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff1614610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd906124fb565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f699061282a565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612896565b60405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990612902565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa9061296e565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb8160405161118a9190612454565b60405180910390a150565b60606040518060400160405280600881526020017f4749564541574159000000000000000000000000000000000000000000000000815250905090565b6111da6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461125b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611252906124fb565b60405180910390fd5b6000600454116112a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611297906129da565b60405180910390fd5b6112c13073e1b49c45f5079a02e603afff00c035c242aeee16600454611944565b6000600481905550565b6000806112d66116e5565b905060006112e4828661149e565b905083811015611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090612a6c565b60405180910390fd5b61133682868684036116ed565b60019250505092915050565b600073e1b49c45f5079a02e603afff00c035c242aeee16905090565b6000806113696116e5565b9050611376818585611944565b600191505092915050565b6113896116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff161461140a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611401906124fb565b60405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600454905090565b6000600360009054906101000a900460ff16905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61152d6116e5565b73ffffffffffffffffffffffffffffffffffffffff1673e1b49c45f5079a02e603afff00c035c242aeee1673ffffffffffffffffffffffffffffffffffffffff16146115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a5906124fb565b60405180910390fd5b600360019054906101000a900460ff16156115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612afe565b60405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306d01a8177494efa5bf39f20000000060008030426040518863ffffffff1660e01b815260040161167396959493929190612b59565b6060604051808303818588803b15801561168c57600080fd5b505af11580156116a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116c59190612bcf565b5050506001600360016101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c490612d26565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118ab9190612082565b60405180910390a3505050565b60006118c4848461149e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461193e5781811015611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192790612d92565b60405180910390fd5b61193d84848484036116ed565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90612e24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b90612eb6565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90612f48565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611b0c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611b1957819050611b27565b611b24838584611e36565b90505b806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c1c9190612082565b60405180910390a350505050565b6000806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008585905084611c7f9190612f97565b905060005b868690508161ffff161015611dce57600087878361ffff16818110611cac57611cab612fc8565b5b9050602002016020810190611cc19190612105565b9050826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550826000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611db89190612082565b60405180910390a3508080600101915050611c84565b5060008060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e1b91906127aa565b90508085611e2991906127aa565b9350505050949350505050565b600080611e4283612053565b90506000600260ff1682611e569190612ff7565b905060008185611e6691906127aa565b9050600360009054906101000a900460ff168015611e8a5750611e8887611427565b155b15611f29576c054d17db76321263eca0000000816000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee7919061267c565b1115611f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1f906130c3565b60405180910390fd5b5b8260046000828254019250508190555082600560008282540192505081905550816000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161203e9190612082565b60405180910390a38093505050509392505050565b60006064826120629190612f97565b9050919050565b6000819050919050565b61207c81612069565b82525050565b60006020820190506120976000830184612073565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120d2826120a7565b9050919050565b6120e2816120c7565b81146120ed57600080fd5b50565b6000813590506120ff816120d9565b92915050565b60006020828403121561211b5761211a61209d565b5b6000612129848285016120f0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561216c578082015181840152602081019050612151565b8381111561217b576000848401525b50505050565b6000601f19601f8301169050919050565b600061219d82612132565b6121a7818561213d565b93506121b781856020860161214e565b6121c081612181565b840191505092915050565b600060208201905081810360008301526121e58184612192565b905092915050565b6121f681612069565b811461220157600080fd5b50565b600081359050612213816121ed565b92915050565b600080604083850312156122305761222f61209d565b5b600061223e858286016120f0565b925050602061224f85828601612204565b9150509250929050565b60008115159050919050565b61226e81612259565b82525050565b60006020820190506122896000830184612265565b92915050565b6000819050919050565b60006122b46122af6122aa846120a7565b61228f565b6120a7565b9050919050565b60006122c682612299565b9050919050565b60006122d8826122bb565b9050919050565b6122e8816122cd565b82525050565b600060208201905061230360008301846122df565b92915050565b6000806000606084860312156123225761232161209d565b5b6000612330868287016120f0565b9350506020612341868287016120f0565b925050604061235286828701612204565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126123815761238061235c565b5b8235905067ffffffffffffffff81111561239e5761239d612361565b5b6020830191508360208202830111156123ba576123b9612366565b5b9250929050565b600080602083850312156123d8576123d761209d565b5b600083013567ffffffffffffffff8111156123f6576123f56120a2565b5b6124028582860161236b565b92509250509250929050565b600060ff82169050919050565b6124248161240e565b82525050565b600060208201905061243f600083018461241b565b92915050565b61244e816120c7565b82525050565b60006020820190506124696000830184612445565b92915050565b600080604083850312156124865761248561209d565b5b6000612494858286016120f0565b92505060206124a5858286016120f0565b9150509250929050565b7f44656e6965643a2063616c6c6572206973206e6f74204368696c6c69656d616e600082015250565b60006124e560208361213d565b91506124f0826124af565b602082019050919050565b60006020820190508181036000830152612514816124d8565b9050919050565b7f45786368616e676520697320616c726561647920416464656400000000000000600082015250565b600061255160198361213d565b915061255c8261251b565b602082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b7f496e697469616c2041697264726f70732061726520676f6e652c20646964207960008201527f6f75206d65616e20746f2075736520676976656177617941697264726f70733f602082015250565b60006125e360408361213d565b91506125ee82612587565b604082019050919050565b60006020820190508181036000830152612612816125d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126538261240e565b915061265e8361240e565b92508282101561267157612670612619565b5b828203905092915050565b600061268782612069565b915061269283612069565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126c7576126c6612619565b5b828201905092915050565b7f4e6f7468696e6720746f20476976656177617921000000000000000000000000600082015250565b600061270860148361213d565b9150612713826126d2565b602082019050919050565b60006020820190508181036000830152612737816126fb565b9050919050565b7f4e6f204769766561776179204665657320746f20676976650000000000000000600082015250565b600061277460188361213d565b915061277f8261273e565b602082019050919050565b600060208201905081810360008301526127a381612767565b9050919050565b60006127b582612069565b91506127c083612069565b9250828210156127d3576127d2612619565b5b828203905092915050565b7f54686973206973206e6f7420616e2045786368616e6765000000000000000000600082015250565b600061281460178361213d565b915061281f826127de565b602082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f43616e742052656d6f7665205468697320436f6e747261637421000000000000600082015250565b6000612880601a8361213d565b915061288b8261284a565b602082019050919050565b600060208201905081810360008301526128af81612873565b9050919050565b7f43616e742052656d6f76652074686520496e697469616c20526f757465722100600082015250565b60006128ec601f8361213d565b91506128f7826128b6565b602082019050919050565b6000602082019050818103600083015261291b816128df565b9050919050565b7f43616e742052656d6f766520746865204c697175696469747920506169722100600082015250565b6000612958601f8361213d565b915061296382612922565b602082019050919050565b600060208201905081810360008301526129878161294b565b9050919050565b7f4e6f205465616d204665657320746f20636c61696d0000000000000000000000600082015250565b60006129c460158361213d565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a5660258361213d565b9150612a61826129fa565b604082019050919050565b60006020820190508181036000830152612a8581612a49565b9050919050565b7f596f7520616c726561647920537570706c6965642046756e647320746f20746f60008201527f20556e6953776170000000000000000000000000000000000000000000000000602082015250565b6000612ae860288361213d565b9150612af382612a8c565b604082019050919050565b60006020820190508181036000830152612b1781612adb565b9050919050565b6000819050919050565b6000612b43612b3e612b3984612b1e565b61228f565b612069565b9050919050565b612b5381612b28565b82525050565b600060c082019050612b6e6000830189612445565b612b7b6020830188612073565b612b886040830187612b4a565b612b956060830186612b4a565b612ba26080830185612445565b612baf60a0830184612073565b979650505050505050565b600081519050612bc9816121ed565b92915050565b600080600060608486031215612be857612be761209d565b5b6000612bf686828701612bba565b9350506020612c0786828701612bba565b9250506040612c1886828701612bba565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c7e60248361213d565b9150612c8982612c22565b604082019050919050565b60006020820190508181036000830152612cad81612c71565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1060228361213d565b9150612d1b82612cb4565b604082019050919050565b60006020820190508181036000830152612d3f81612d03565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d7c601d8361213d565b9150612d8782612d46565b602082019050919050565b60006020820190508181036000830152612dab81612d6f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e0e60258361213d565b9150612e1982612db2565b604082019050919050565b60006020820190508181036000830152612e3d81612e01565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea060238361213d565b9150612eab82612e44565b604082019050919050565b60006020820190508181036000830152612ecf81612e93565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612f3260268361213d565b9150612f3d82612ed6565b604082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fa282612069565b9150612fad83612069565b925082612fbd57612fbc612f68565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061300282612069565b915061300d83612069565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561304657613045612619565b5b828202905092915050565b7f57616c6c65742043616e6e6f7420526563656976652074686973206d7563682160008201527f204f766572204c696d69742e0000000000000000000000000000000000000000602082015250565b60006130ad602c8361213d565b91506130b882613051565b604082019050919050565b600060208201905081810360008301526130dc816130a0565b905091905056fea26469706673582212204f26f61da1f4b0dcfca86681ded9661e2329146595dc0a842ce10a4b5997416a64736f6c63430008090033

Deployed Bytecode Sourcemap

306:14809:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5033:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12098:230;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3991:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6152:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3853:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4876:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4378:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6417:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13012:384;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4242:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13814:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6785:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13438:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11788:92;;;;;;;;;;;;;:::i;:::-;;4536:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12420:540;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4130:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14926:186;;;;;;;;;;;;;:::i;:::-;;7096:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3730:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5623:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11931:92;;;;;;;;;;;;;:::i;:::-;;5228:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4728:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5439:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5916:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11091:540;;;;;;;;;;;;;:::i;:::-;;5033:95;5083:4;5107:13;;;;;;;;;;;5100:20;;;;5033:95;:::o;12098:230::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12175:25:::1;:33;12201:6;12175:33;;;;;;;;;;;;;;;;;;;;;;;;;12174:34;12166:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12285:4;12249:25;:33;12275:6;12249:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;12299:21;12313:6;12299:21;;;;;;:::i;:::-;;;;;;;;12098:230:::0;:::o;3991:100::-;4045:13;4078:5;;;;;;;;;;;;;;;;;4071:12;;3991:100;:::o;6152:201::-;6235:4;6252:13;6268:12;:10;:12::i;:::-;6252:28;;6291:32;6300:5;6307:7;6316:6;6291:8;:32::i;:::-;6341:4;6334:11;;;6152:201;;;;:::o;3853:101::-;3901:18;3933:16;;;;;;;;;;;3926:23;;3853:101;:::o;4876:95::-;4922:7;4949:14;;4942:21;;4876:95;:::o;4378:108::-;4439:7;1602:24;4459:19;;4378:108;:::o;6417:295::-;6548:4;6565:15;6583:12;:10;:12::i;:::-;6565:30;;6606:38;6622:4;6628:7;6637:6;6606:15;:38::i;:::-;6655:27;6665:4;6671:2;6675:6;6655:9;:27::i;:::-;6700:4;6693:11;;;6417:295;;;;;:::o;13012:384::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13113:1:::1;13097:13;;;;;;;;;;;:17;;;13089:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;13188:22;13213:54;13236:4;13243:7;;1780:23;13213:14;:54::i;:::-;13188:79;;13289:1;13272:13;;:18;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13374:14;13356;;:32;;;;;;;:::i;:::-;;;;;;;;13084:312;13012:384:::0;;:::o;4242:100::-;4300:5;1552:2;4318:16;;4242:100;:::o;13814:330::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13917:1:::1;13900:14;;:18;13892:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13948:22;13973:54;13996:4;14003:7;;14012:14;;13973;:54::i;:::-;13948:79;;14122:14;14105;:31;;;;13887:257;13814:330:::0;;:::o;6785:238::-;6873:4;6890:13;6906:12;:10;:12::i;:::-;6890:28;;6929:64;6938:5;6945:7;6982:10;6954:25;6964:5;6971:7;6954:9;:25::i;:::-;:38;;;;:::i;:::-;6929:8;:64::i;:::-;7011:4;7004:11;;;6785:238;;;;:::o;13438:324::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13539:1:::1;13522:14;;:18;13514:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13608:14;;13580:9;:24:::0;13598:4:::1;13580:24;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;13654:14;;13633:9;:17:::0;13643:6:::1;13633:17;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;13708:6;13684:47;;13701:4;13684:47;;;13716:14;;13684:47;;;;;;:::i;:::-;;;;;;;;13753:1;13736:14;:18;;;;13438:324:::0;:::o;11788:92::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11867:5:::1;11842:22;;:30;;;;;;;;;;;;;;;;;;11788:92::o:0;4536:125::-;4609:7;4636:9;:17;4646:6;4636:17;;;;;;;;;;;;;;;;4629:24;;4536:125;;;:::o;12420:540::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12501:25:::1;:33;12527:6;12501:33;;;;;;;;;;;;;;;;;;;;;;;;;12493:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12663:4;12645:23;;:6;:23;;;;12637:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12730:16;;;;;;;;;;;12712:35;;:6;:35;;;;12704:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12814:14;;;;;;;;;;;12796:33;;:6;:33;;;;12788:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;12914:5;12878:25;:33;12904:6;12878:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12929:23;12945:6;12929:23;;;;;;:::i;:::-;;;;;;;;12420:540:::0;:::o;4130:104::-;4186:13;4219:7;;;;;;;;;;;;;;;;;4212:14;;4130:104;:::o;14926:186::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15004:1:::1;14991:10;;:14;14983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15036:49;15054:4;784:42;15074:10;;15036:9;:49::i;:::-;15103:1;15090:10;:14;;;;14926:186::o:0;7096:436::-;7189:4;7206:13;7222:12;:10;:12::i;:::-;7206:28;;7245:24;7272:25;7282:5;7289:7;7272:9;:25::i;:::-;7245:52;;7336:15;7316:16;:35;;7308:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7429:60;7438:5;7445:7;7473:15;7454:16;:34;7429:8;:60::i;:::-;7520:4;7513:11;;;;7096:436;;;;:::o;3730:80::-;3773:7;784:42;3787:18;;3730:80;:::o;5623:193::-;5702:4;5719:13;5735:12;:10;:12::i;:::-;5719:28;;5758;5768:5;5775:2;5779:6;5758:9;:28::i;:::-;5804:4;5797:11;;;5623:193;;;;:::o;11931:92::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12011:4:::1;11986:22;;:29;;;;;;;;;;;;;;;;;;11931:92::o:0;5228:133::-;5299:4;5320:25;:33;5346:6;5320:33;;;;;;;;;;;;;;;;;;;;;;;;;5313:40;;5228:133;;;:::o;4728:87::-;4770:7;4797:10;;4790:17;;4728:87;:::o;5439:113::-;5498:4;5522:22;;;;;;;;;;;5515:29;;5439:113;:::o;5916:151::-;6005:7;6032:11;:18;6044:5;6032:18;;;;;;;;;;;;;;;:27;6051:7;6032:27;;;;;;;;;;;;;;;;6025:34;;5916:151;;;;:::o;11091:540::-;2278:12;:10;:12::i;:::-;2263:27;;784:42;2263:27;;;2255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11147:16:::1;;;;;;;;;;;11146:17;11138:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11257:16;;;;;;;;;;;:32;;;11297:21;11342:4;1698:24;11391:1;11434::::0;11485:4:::1;11564:15;11257:334;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11619:4;11600:16;;:23;;;;;;;;;;;;;;;;;;11091:540::o:0;656:98:0:-;709:7;736:10;729:17;;656:98;:::o;7927:380:1:-;8080:1;8063:19;;:5;:19;;;;8055:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8161:1;8142:21;;:7;:21;;;;8134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8245:6;8215:11;:18;8227:5;8215:18;;;;;;;;;;;;;;;:27;8234:7;8215:27;;;;;;;;;;;;;;;:36;;;;8283:7;8267:32;;8276:5;8267:32;;;8292:6;8267:32;;;;;;:::i;:::-;;;;;;;;7927:380;;;:::o;8377:453::-;8512:24;8539:25;8549:5;8556:7;8539:9;:25::i;:::-;8512:52;;8599:17;8579:16;:37;8575:248;;8661:6;8641:16;:26;;8633:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8745:51;8754:5;8761:7;8789:6;8770:16;:25;8745:8;:51::i;:::-;8575:248;8501:329;8377:453;;;:::o;8950:935::-;9097:1;9081:18;;:4;:18;;;;9073:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9174:1;9160:16;;:2;:16;;;;9152:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9254:6;9235:9;:15;9245:4;9235:15;;;;;;;;;;;;;;;;:25;;9227:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;9318:24;9507:4;9493:19;;:2;:19;;;:44;;;;9532:4;9516:21;;:4;:21;;;9493:44;9489:201;;;9573:6;9554:25;;9489:201;;;9631:47;9661:2;9665:4;9671:6;9631:29;:47::i;:::-;9612:66;;9489:201;9740:16;9721:9;:15;9731:4;9721:15;;;;;;;;;;;;;;;;:35;;;;;;;;;;;9788:16;9771:9;:13;9781:2;9771:13;;;;;;;;;;;;;;;;:33;;;;;;;;;;;9856:2;9841:36;;9850:4;9841:36;;;9860:16;9841:36;;;;;;:::i;:::-;;;;;;;;9062:823;8950:935;;;:::o;14186:687::-;14292:7;14306:20;14329:9;:23;14339:12;14329:23;;;;;;;;;;;;;;;;14306:46;;14357:20;14389:7;;:14;;14380:6;:23;;;;:::i;:::-;14357:46;;14429:8;14424:275;14447:7;;:14;;14443:1;:18;;;14424:275;;;14487:14;14504:7;;14512:1;14504:10;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14487:27;;14554:12;14533:9;:17;14543:6;14533:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;14612:12;14585:9;:23;14595:12;14585:23;;;;;;;;;;;;;;;;:39;;;;;;;;;;;14671:6;14648:44;;14657:12;14648:44;;;14679:12;14648:44;;;;;;:::i;:::-;;;;;;;;14468:231;14463:3;;;;;;;14424:275;;;;14710:19;14747:9;:23;14757:12;14747:23;;;;;;;;;;;;;;;;14732:12;:38;;;;:::i;:::-;14710:60;;14854:11;14845:6;:20;;;;:::i;:::-;14838:27;;;;;14186:687;;;;;;:::o;9971:1085::-;10069:7;10083:15;10101:24;10118:6;10101:16;:24::i;:::-;10083:42;;10130:17;687:1;10150:20;;:7;:20;;;;:::i;:::-;10130:40;;10228:23;10263:9;10254:6;:18;;;;:::i;:::-;10228:44;;10394:22;;;;;;;;;;;:56;;;;;10421:29;10447:2;10421:25;:29::i;:::-;10420:30;10394:56;10391:282;;;1880:21;10577:15;10561:9;:13;10571:2;10561:13;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:51;;10553:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;10391:282;10750:7;10736:10;;:21;;;;;;;;;;;10781:7;10763:14;;:25;;;;;;;;;;;10822:9;10794;:24;10812:4;10794:24;;;;;;;;;;;;;;;;:37;;;;;;;;;;;10865:9;10846;:15;10856:4;10846:15;;;;;;;;;;;;;;;;:28;;;;;;;;;;;10916:4;10893:40;;10902:4;10893:40;;;10923:9;10893:40;;;;;;:::i;:::-;;;;;;;;11033:15;11026:22;;;;;9971:1085;;;;;:::o;7734:111::-;7798:7;7834:3;7825:6;:12;;;;:::i;:::-;7818:19;;7734:111;;;:::o;7:77:6:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:307::-;1959:1;1969:113;1983:6;1980:1;1977:13;1969:113;;;2068:1;2063:3;2059:11;2053:18;2049:1;2044:3;2040:11;2033:39;2005:2;2002:1;1998:10;1993:15;;1969:113;;;2100:6;2097:1;2094:13;2091:101;;;2180:1;2171:6;2166:3;2162:16;2155:27;2091:101;1940:258;1891:307;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:364::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:52;2608:6;2603:3;2596:4;2589:5;2585:16;2563:52;:::i;:::-;2640:29;2662:6;2640:29;:::i;:::-;2635:3;2631:39;2624:46;;2404:272;2312:364;;;;:::o;2682:313::-;2795:4;2833:2;2822:9;2818:18;2810:26;;2882:9;2876:4;2872:20;2868:1;2857:9;2853:17;2846:47;2910:78;2983:4;2974:6;2910:78;:::i;:::-;2902:86;;2682:313;;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:60::-;4209:3;4230:5;4223:12;;4181:60;;;:::o;4247:142::-;4297:9;4330:53;4348:34;4357:24;4375:5;4357:24;:::i;:::-;4348:34;:::i;:::-;4330:53;:::i;:::-;4317:66;;4247:142;;;:::o;4395:126::-;4445:9;4478:37;4509:5;4478:37;:::i;:::-;4465:50;;4395:126;;;:::o;4527:153::-;4604:9;4637:37;4668:5;4637:37;:::i;:::-;4624:50;;4527:153;;;:::o;4686:185::-;4800:64;4858:5;4800:64;:::i;:::-;4795:3;4788:77;4686:185;;:::o;4877:276::-;4997:4;5035:2;5024:9;5020:18;5012:26;;5048:98;5143:1;5132:9;5128:17;5119:6;5048:98;:::i;:::-;4877:276;;;;:::o;5159:619::-;5236:6;5244;5252;5301:2;5289:9;5280:7;5276:23;5272:32;5269:119;;;5307:79;;:::i;:::-;5269:119;5427:1;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5398:117;5554:2;5580:53;5625:7;5616:6;5605:9;5601:22;5580:53;:::i;:::-;5570:63;;5525:118;5682:2;5708:53;5753:7;5744:6;5733:9;5729:22;5708:53;:::i;:::-;5698:63;;5653:118;5159:619;;;;;:::o;5784:117::-;5893:1;5890;5883:12;5907:117;6016:1;6013;6006:12;6030:117;6139:1;6136;6129:12;6170:568;6243:8;6253:6;6303:3;6296:4;6288:6;6284:17;6280:27;6270:122;;6311:79;;:::i;:::-;6270:122;6424:6;6411:20;6401:30;;6454:18;6446:6;6443:30;6440:117;;;6476:79;;:::i;:::-;6440:117;6590:4;6582:6;6578:17;6566:29;;6644:3;6636:4;6628:6;6624:17;6614:8;6610:32;6607:41;6604:128;;;6651:79;;:::i;:::-;6604:128;6170:568;;;;;:::o;6744:559::-;6830:6;6838;6887:2;6875:9;6866:7;6862:23;6858:32;6855:119;;;6893:79;;:::i;:::-;6855:119;7041:1;7030:9;7026:17;7013:31;7071:18;7063:6;7060:30;7057:117;;;7093:79;;:::i;:::-;7057:117;7206:80;7278:7;7269:6;7258:9;7254:22;7206:80;:::i;:::-;7188:98;;;;6984:312;6744:559;;;;;:::o;7309:86::-;7344:7;7384:4;7377:5;7373:16;7362:27;;7309:86;;;:::o;7401:112::-;7484:22;7500:5;7484:22;:::i;:::-;7479:3;7472:35;7401:112;;:::o;7519:214::-;7608:4;7646:2;7635:9;7631:18;7623:26;;7659:67;7723:1;7712:9;7708:17;7699:6;7659:67;:::i;:::-;7519:214;;;;:::o;7739:118::-;7826:24;7844:5;7826:24;:::i;:::-;7821:3;7814:37;7739:118;;:::o;7863:222::-;7956:4;7994:2;7983:9;7979:18;7971:26;;8007:71;8075:1;8064:9;8060:17;8051:6;8007:71;:::i;:::-;7863:222;;;;:::o;8091:474::-;8159:6;8167;8216:2;8204:9;8195:7;8191:23;8187:32;8184:119;;;8222:79;;:::i;:::-;8184:119;8342:1;8367:53;8412:7;8403:6;8392:9;8388:22;8367:53;:::i;:::-;8357:63;;8313:117;8469:2;8495:53;8540:7;8531:6;8520:9;8516:22;8495:53;:::i;:::-;8485:63;;8440:118;8091:474;;;;;:::o;8571:182::-;8711:34;8707:1;8699:6;8695:14;8688:58;8571:182;:::o;8759:366::-;8901:3;8922:67;8986:2;8981:3;8922:67;:::i;:::-;8915:74;;8998:93;9087:3;8998:93;:::i;:::-;9116:2;9111:3;9107:12;9100:19;;8759:366;;;:::o;9131:419::-;9297:4;9335:2;9324:9;9320:18;9312:26;;9384:9;9378:4;9374:20;9370:1;9359:9;9355:17;9348:47;9412:131;9538:4;9412:131;:::i;:::-;9404:139;;9131:419;;;:::o;9556:175::-;9696:27;9692:1;9684:6;9680:14;9673:51;9556:175;:::o;9737:366::-;9879:3;9900:67;9964:2;9959:3;9900:67;:::i;:::-;9893:74;;9976:93;10065:3;9976:93;:::i;:::-;10094:2;10089:3;10085:12;10078:19;;9737:366;;;:::o;10109:419::-;10275:4;10313:2;10302:9;10298:18;10290:26;;10362:9;10356:4;10352:20;10348:1;10337:9;10333:17;10326:47;10390:131;10516:4;10390:131;:::i;:::-;10382:139;;10109:419;;;:::o;10534:251::-;10674:34;10670:1;10662:6;10658:14;10651:58;10743:34;10738:2;10730:6;10726:15;10719:59;10534:251;:::o;10791:366::-;10933:3;10954:67;11018:2;11013:3;10954:67;:::i;:::-;10947:74;;11030:93;11119:3;11030:93;:::i;:::-;11148:2;11143:3;11139:12;11132:19;;10791:366;;;:::o;11163:419::-;11329:4;11367:2;11356:9;11352:18;11344:26;;11416:9;11410:4;11406:20;11402:1;11391:9;11387:17;11380:47;11444:131;11570:4;11444:131;:::i;:::-;11436:139;;11163:419;;;:::o;11588:180::-;11636:77;11633:1;11626:88;11733:4;11730:1;11723:15;11757:4;11754:1;11747:15;11774:185;11812:4;11832:18;11848:1;11832:18;:::i;:::-;11827:23;;11864:18;11880:1;11864:18;:::i;:::-;11859:23;;11901:1;11898;11895:8;11892:34;;;11906:18;;:::i;:::-;11892:34;11951:1;11948;11944:9;11936:17;;11774:185;;;;:::o;11965:305::-;12005:3;12024:20;12042:1;12024:20;:::i;:::-;12019:25;;12058:20;12076:1;12058:20;:::i;:::-;12053:25;;12212:1;12144:66;12140:74;12137:1;12134:81;12131:107;;;12218:18;;:::i;:::-;12131:107;12262:1;12259;12255:9;12248:16;;11965:305;;;;:::o;12276:170::-;12416:22;12412:1;12404:6;12400:14;12393:46;12276:170;:::o;12452:366::-;12594:3;12615:67;12679:2;12674:3;12615:67;:::i;:::-;12608:74;;12691:93;12780:3;12691:93;:::i;:::-;12809:2;12804:3;12800:12;12793:19;;12452:366;;;:::o;12824:419::-;12990:4;13028:2;13017:9;13013:18;13005:26;;13077:9;13071:4;13067:20;13063:1;13052:9;13048:17;13041:47;13105:131;13231:4;13105:131;:::i;:::-;13097:139;;12824:419;;;:::o;13249:174::-;13389:26;13385:1;13377:6;13373:14;13366:50;13249:174;:::o;13429:366::-;13571:3;13592:67;13656:2;13651:3;13592:67;:::i;:::-;13585:74;;13668:93;13757:3;13668:93;:::i;:::-;13786:2;13781:3;13777:12;13770:19;;13429:366;;;:::o;13801:419::-;13967:4;14005:2;13994:9;13990:18;13982:26;;14054:9;14048:4;14044:20;14040:1;14029:9;14025:17;14018:47;14082:131;14208:4;14082:131;:::i;:::-;14074:139;;13801:419;;;:::o;14226:191::-;14266:4;14286:20;14304:1;14286:20;:::i;:::-;14281:25;;14320:20;14338:1;14320:20;:::i;:::-;14315:25;;14359:1;14356;14353:8;14350:34;;;14364:18;;:::i;:::-;14350:34;14409:1;14406;14402:9;14394:17;;14226:191;;;;:::o;14423:173::-;14563:25;14559:1;14551:6;14547:14;14540:49;14423:173;:::o;14602:366::-;14744:3;14765:67;14829:2;14824:3;14765:67;:::i;:::-;14758:74;;14841:93;14930:3;14841:93;:::i;:::-;14959:2;14954:3;14950:12;14943:19;;14602:366;;;:::o;14974:419::-;15140:4;15178:2;15167:9;15163:18;15155:26;;15227:9;15221:4;15217:20;15213:1;15202:9;15198:17;15191:47;15255:131;15381:4;15255:131;:::i;:::-;15247:139;;14974:419;;;:::o;15399:176::-;15539:28;15535:1;15527:6;15523:14;15516:52;15399:176;:::o;15581:366::-;15723:3;15744:67;15808:2;15803:3;15744:67;:::i;:::-;15737:74;;15820:93;15909:3;15820:93;:::i;:::-;15938:2;15933:3;15929:12;15922:19;;15581:366;;;:::o;15953:419::-;16119:4;16157:2;16146:9;16142:18;16134:26;;16206:9;16200:4;16196:20;16192:1;16181:9;16177:17;16170:47;16234:131;16360:4;16234:131;:::i;:::-;16226:139;;15953:419;;;:::o;16378:181::-;16518:33;16514:1;16506:6;16502:14;16495:57;16378:181;:::o;16565:366::-;16707:3;16728:67;16792:2;16787:3;16728:67;:::i;:::-;16721:74;;16804:93;16893:3;16804:93;:::i;:::-;16922:2;16917:3;16913:12;16906:19;;16565:366;;;:::o;16937:419::-;17103:4;17141:2;17130:9;17126:18;17118:26;;17190:9;17184:4;17180:20;17176:1;17165:9;17161:17;17154:47;17218:131;17344:4;17218:131;:::i;:::-;17210:139;;16937:419;;;:::o;17362:181::-;17502:33;17498:1;17490:6;17486:14;17479:57;17362:181;:::o;17549:366::-;17691:3;17712:67;17776:2;17771:3;17712:67;:::i;:::-;17705:74;;17788:93;17877:3;17788:93;:::i;:::-;17906:2;17901:3;17897:12;17890:19;;17549:366;;;:::o;17921:419::-;18087:4;18125:2;18114:9;18110:18;18102:26;;18174:9;18168:4;18164:20;18160:1;18149:9;18145:17;18138:47;18202:131;18328:4;18202:131;:::i;:::-;18194:139;;17921:419;;;:::o;18346:171::-;18486:23;18482:1;18474:6;18470:14;18463:47;18346:171;:::o;18523:366::-;18665:3;18686:67;18750:2;18745:3;18686:67;:::i;:::-;18679:74;;18762:93;18851:3;18762:93;:::i;:::-;18880:2;18875:3;18871:12;18864:19;;18523:366;;;:::o;18895:419::-;19061:4;19099:2;19088:9;19084:18;19076:26;;19148:9;19142:4;19138:20;19134:1;19123:9;19119:17;19112:47;19176:131;19302:4;19176:131;:::i;:::-;19168:139;;18895:419;;;:::o;19320:224::-;19460:34;19456:1;19448:6;19444:14;19437:58;19529:7;19524:2;19516:6;19512:15;19505:32;19320:224;:::o;19550:366::-;19692:3;19713:67;19777:2;19772:3;19713:67;:::i;:::-;19706:74;;19789:93;19878:3;19789:93;:::i;:::-;19907:2;19902:3;19898:12;19891:19;;19550:366;;;:::o;19922:419::-;20088:4;20126:2;20115:9;20111:18;20103:26;;20175:9;20169:4;20165:20;20161:1;20150:9;20146:17;20139:47;20203:131;20329:4;20203:131;:::i;:::-;20195:139;;19922:419;;;:::o;20347:227::-;20487:34;20483:1;20475:6;20471:14;20464:58;20556:10;20551:2;20543:6;20539:15;20532:35;20347:227;:::o;20580:366::-;20722:3;20743:67;20807:2;20802:3;20743:67;:::i;:::-;20736:74;;20819:93;20908:3;20819:93;:::i;:::-;20937:2;20932:3;20928:12;20921:19;;20580:366;;;:::o;20952:419::-;21118:4;21156:2;21145:9;21141:18;21133:26;;21205:9;21199:4;21195:20;21191:1;21180:9;21176:17;21169:47;21233:131;21359:4;21233:131;:::i;:::-;21225:139;;20952:419;;;:::o;21377:85::-;21422:7;21451:5;21440:16;;21377:85;;;:::o;21468:158::-;21526:9;21559:61;21577:42;21586:32;21612:5;21586:32;:::i;:::-;21577:42;:::i;:::-;21559:61;:::i;:::-;21546:74;;21468:158;;;:::o;21632:147::-;21727:45;21766:5;21727:45;:::i;:::-;21722:3;21715:58;21632:147;;:::o;21785:807::-;22034:4;22072:3;22061:9;22057:19;22049:27;;22086:71;22154:1;22143:9;22139:17;22130:6;22086:71;:::i;:::-;22167:72;22235:2;22224:9;22220:18;22211:6;22167:72;:::i;:::-;22249:80;22325:2;22314:9;22310:18;22301:6;22249:80;:::i;:::-;22339;22415:2;22404:9;22400:18;22391:6;22339:80;:::i;:::-;22429:73;22497:3;22486:9;22482:19;22473:6;22429:73;:::i;:::-;22512;22580:3;22569:9;22565:19;22556:6;22512:73;:::i;:::-;21785:807;;;;;;;;;:::o;22598:143::-;22655:5;22686:6;22680:13;22671:22;;22702:33;22729:5;22702:33;:::i;:::-;22598:143;;;;:::o;22747:663::-;22835:6;22843;22851;22900:2;22888:9;22879:7;22875:23;22871:32;22868:119;;;22906:79;;:::i;:::-;22868:119;23026:1;23051:64;23107:7;23098:6;23087:9;23083:22;23051:64;:::i;:::-;23041:74;;22997:128;23164:2;23190:64;23246:7;23237:6;23226:9;23222:22;23190:64;:::i;:::-;23180:74;;23135:129;23303:2;23329:64;23385:7;23376:6;23365:9;23361:22;23329:64;:::i;:::-;23319:74;;23274:129;22747:663;;;;;:::o;23416:223::-;23556:34;23552:1;23544:6;23540:14;23533:58;23625:6;23620:2;23612:6;23608:15;23601:31;23416:223;:::o;23645:366::-;23787:3;23808:67;23872:2;23867:3;23808:67;:::i;:::-;23801:74;;23884:93;23973:3;23884:93;:::i;:::-;24002:2;23997:3;23993:12;23986:19;;23645:366;;;:::o;24017:419::-;24183:4;24221:2;24210:9;24206:18;24198:26;;24270:9;24264:4;24260:20;24256:1;24245:9;24241:17;24234:47;24298:131;24424:4;24298:131;:::i;:::-;24290:139;;24017:419;;;:::o;24442:221::-;24582:34;24578:1;24570:6;24566:14;24559:58;24651:4;24646:2;24638:6;24634:15;24627:29;24442:221;:::o;24669:366::-;24811:3;24832:67;24896:2;24891:3;24832:67;:::i;:::-;24825:74;;24908:93;24997:3;24908:93;:::i;:::-;25026:2;25021:3;25017:12;25010:19;;24669:366;;;:::o;25041:419::-;25207:4;25245:2;25234:9;25230:18;25222:26;;25294:9;25288:4;25284:20;25280:1;25269:9;25265:17;25258:47;25322:131;25448:4;25322:131;:::i;:::-;25314:139;;25041:419;;;:::o;25466:179::-;25606:31;25602:1;25594:6;25590:14;25583:55;25466:179;:::o;25651:366::-;25793:3;25814:67;25878:2;25873:3;25814:67;:::i;:::-;25807:74;;25890:93;25979:3;25890:93;:::i;:::-;26008:2;26003:3;25999:12;25992:19;;25651:366;;;:::o;26023:419::-;26189:4;26227:2;26216:9;26212:18;26204:26;;26276:9;26270:4;26266:20;26262:1;26251:9;26247:17;26240:47;26304:131;26430:4;26304:131;:::i;:::-;26296:139;;26023:419;;;:::o;26448:224::-;26588:34;26584:1;26576:6;26572:14;26565:58;26657:7;26652:2;26644:6;26640:15;26633:32;26448:224;:::o;26678:366::-;26820:3;26841:67;26905:2;26900:3;26841:67;:::i;:::-;26834:74;;26917:93;27006:3;26917:93;:::i;:::-;27035:2;27030:3;27026:12;27019:19;;26678:366;;;:::o;27050:419::-;27216:4;27254:2;27243:9;27239:18;27231:26;;27303:9;27297:4;27293:20;27289:1;27278:9;27274:17;27267:47;27331:131;27457:4;27331:131;:::i;:::-;27323:139;;27050:419;;;:::o;27475:222::-;27615:34;27611:1;27603:6;27599:14;27592:58;27684:5;27679:2;27671:6;27667:15;27660:30;27475:222;:::o;27703:366::-;27845:3;27866:67;27930:2;27925:3;27866:67;:::i;:::-;27859:74;;27942:93;28031:3;27942:93;:::i;:::-;28060:2;28055:3;28051:12;28044:19;;27703:366;;;:::o;28075:419::-;28241:4;28279:2;28268:9;28264:18;28256:26;;28328:9;28322:4;28318:20;28314:1;28303:9;28299:17;28292:47;28356:131;28482:4;28356:131;:::i;:::-;28348:139;;28075:419;;;:::o;28500:225::-;28640:34;28636:1;28628:6;28624:14;28617:58;28709:8;28704:2;28696:6;28692:15;28685:33;28500:225;:::o;28731:366::-;28873:3;28894:67;28958:2;28953:3;28894:67;:::i;:::-;28887:74;;28970:93;29059:3;28970:93;:::i;:::-;29088:2;29083:3;29079:12;29072:19;;28731:366;;;:::o;29103:419::-;29269:4;29307:2;29296:9;29292:18;29284:26;;29356:9;29350:4;29346:20;29342:1;29331:9;29327:17;29320:47;29384:131;29510:4;29384:131;:::i;:::-;29376:139;;29103:419;;;:::o;29528:180::-;29576:77;29573:1;29566:88;29673:4;29670:1;29663:15;29697:4;29694:1;29687:15;29714:185;29754:1;29771:20;29789:1;29771:20;:::i;:::-;29766:25;;29805:20;29823:1;29805:20;:::i;:::-;29800:25;;29844:1;29834:35;;29849:18;;:::i;:::-;29834:35;29891:1;29888;29884:9;29879:14;;29714:185;;;;:::o;29905:180::-;29953:77;29950:1;29943:88;30050:4;30047:1;30040:15;30074:4;30071:1;30064:15;30091:348;30131:7;30154:20;30172:1;30154:20;:::i;:::-;30149:25;;30188:20;30206:1;30188:20;:::i;:::-;30183:25;;30376:1;30308:66;30304:74;30301:1;30298:81;30293:1;30286:9;30279:17;30275:105;30272:131;;;30383:18;;:::i;:::-;30272:131;30431:1;30428;30424:9;30413:20;;30091:348;;;;:::o;30445:231::-;30585:34;30581:1;30573:6;30569:14;30562:58;30654:14;30649:2;30641:6;30637:15;30630:39;30445:231;:::o;30682:366::-;30824:3;30845:67;30909:2;30904:3;30845:67;:::i;:::-;30838:74;;30921:93;31010:3;30921:93;:::i;:::-;31039:2;31034:3;31030:12;31023:19;;30682:366;;;:::o;31054:419::-;31220:4;31258:2;31247:9;31243:18;31235:26;;31307:9;31301:4;31297:20;31293:1;31282:9;31278:17;31271:47;31335:131;31461:4;31335:131;:::i;:::-;31327:139;;31054:419;;;:::o

Swarm Source

ipfs://4f26f61da1f4b0dcfca86681ded9661e2329146595dc0a842ce10a4b5997416a
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.