ETH Price: $3,265.13 (+2.27%)
Gas: 1 Gwei

Token

EyeCandy (ICANDY)
 

Overview

Max Total Supply

99,900,889,708.847862341534767473 ICANDY

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
548,917,883.680743496999884308 ICANDY

Value
$0.00
0xD8687952a4b5299E759f4400471417c0B18010CE
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:
EyeCandy

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;





interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    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 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;
        }
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}
library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract EyeCandy is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier whenNotPaused() {
        require(!paused, "Pausable: paused");
        _;
    }
     modifier whenPaused() {
        require(paused, "Pausable: not paused");
        _;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function pause() public {
        require(msg.sender == owner(), "Pausable: only owner can pause");
        paused = true;
    }
    function renounceOwnership() public virtual {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    mapping (address => bool) private _isBot;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 
    address payable public Wallet_Marketing = payable(0x0a2d0Fec9f65Fbb9cc97231e0d6494e537690A5E); 
    address payable public Wallet_Dev = payable(0x319E1e55CA451Ac90Bb566548dfD191Ce3B74311);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =100000000000 * 10**_decimals;
    string private constant _name = "EyeCandy"; 
    string private constant _symbol = unicode"ICANDY"; 
    uint8 private txCount = 0;
    uint8 private swapTrigger = 3; 
    uint256 public _Tax_On_Buy = 40;
    uint256 public _Tax_On_Sell = 40;
    uint256 public Percent_Marketing = 80;
    uint256 public Percent_Dev = 15;
    uint256 public Percent_Burn = 2;
    uint256 public Percent_AutoLP = 3; 
    uint256 public _maxWalletToken = _tTotal * 10 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;
    uint256 public _maxTxAmount = _tTotal * 10 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public paused = true;

    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    constructor () {
        _owner = 0x0a2d0Fec9f65Fbb9cc97231e0d6494e537690A5E;
        emit OwnershipTransferred(address(0), _owner);
        _tOwned[owner()] = _tTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;
        emit Transfer(address(0), owner(), _tTotal);
    }

    function setAntibot(address account, bool state) external onlyOwner{
        require(_isBot[account] != state, 'Value already set');
        _isBot[account] = state;
    }
    
    function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
         }   
     }

     function isBot(address account) public view returns(bool){
        return _isBot[account];
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function setTaxes(uint256 buyTax, uint256 sellTax) public onlyOwner {
        _Tax_On_Buy = buyTax;
        _Tax_On_Sell = sellTax;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address theOwner, address theSpender) public view override returns (uint256) {
        return _allowances[theOwner][theSpender];
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    receive() external payable {}
    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }
    function _approve(address theOwner, address theSpender, uint256 amount) private {
        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);
    }
    


    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        if (to != owner() &&
            to != Wallet_Burn &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");}
        if (from != owner())
            require(amount <= _maxTxAmount, "Over transaction limit.");
        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero."); 
        require(!_isBot[from] && !_isBot[to], "You are a bot"); 
        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
            )
        {  
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
            if(from == uniswapV2Pair){
                isBuy = true;
            }
            txCount++;
        }
        _tokenTransfer(from, to, amount, takeFee, isBuy);
    }
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 
            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;
            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForETH(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 ETH_Total = address(this).balance - balanceBeforeSwap;
            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 ETH_M = ETH_Total * split_M / 100;
            uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 ETH_D = ETH_Total * split_D / 100;
            addLiquidity(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D), tokens_to_LP_Half);
            sendToWallet(Wallet_Marketing, ETH_M);
            ETH_Total = address(this).balance;
            sendToWallet(Wallet_Dev, ETH_Total);
            }
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 
    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(Wallet_Dev, removeRandom);
    }
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        if(!takeFee){
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;
            } else if (isBuy){
            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;  
            emit Transfer(sender, recipient, tTransferAmount);
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            } else {
            uint256 sellFEE = tAmount*_Tax_On_Sell/100;
            uint256 tTransferAmount = tAmount-sellFEE;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;  
            emit Transfer(sender, recipient, tTransferAmount);
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052730a2d0fec9f65fbb9cc97231e0d6494e537690a5e600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073319e1e55ca451ac90bb566548dfd191ce3b74311600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000be9190620008b6565b64174876e800620000d0919062000907565b6007556000600860006101000a81548160ff021916908360ff1602179055506003600860016101000a81548160ff021916908360ff16021790555060286009556028600a556050600b55600f600c556002600d556003600e556064600a6007546200013c919062000907565b62000148919062000981565b600f55600f546010556064600a60075462000164919062000907565b62000170919062000981565b6011556011546012556001601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550348015620001bc57600080fd5b50730a2d0fec9f65fbb9cc97231e0d6494e537690a5e6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360075460026000620002a3620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000346573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036c919062000a23565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fa919062000a23565b6040518363ffffffff1660e01b81526004016200041992919062000a66565b6020604051808303816000875af115801562000439573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045f919062000a23565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620004f6620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000683620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620006e4919062000aa4565b60405180910390a35062000ac1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007aa578086048111156200078257620007816200071c565b5b6001851615620007925780820291505b8081029050620007a2856200074b565b945062000762565b94509492505050565b600082620007c5576001905062000898565b81620007d5576000905062000898565b8160018114620007ee5760028114620007f9576200082f565b600191505062000898565b60ff8411156200080e576200080d6200071c565b5b8360020a9150848211156200082857620008276200071c565b5b5062000898565b5060208310610133831016604e8410600b8410161715620008695782820a9050838111156200086357620008626200071c565b5b62000898565b62000878848484600162000758565b925090508184048111156200089257620008916200071c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008c3826200089f565b9150620008d083620008a9565b9250620008ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007b3565b905092915050565b600062000914826200089f565b915062000921836200089f565b925082820262000931816200089f565b915082820484148315176200094b576200094a6200071c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200098e826200089f565b91506200099b836200089f565b925082620009ae57620009ad62000952565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009eb82620009be565b9050919050565b620009fd81620009de565b811462000a0957600080fd5b50565b60008151905062000a1d81620009f2565b92915050565b60006020828403121562000a3c5762000a3b620009b9565b5b600062000a4c8482850162000a0c565b91505092915050565b62000a6081620009de565b82525050565b600060408201905062000a7d600083018562000a55565b62000a8c602083018462000a55565b9392505050565b62000a9e816200089f565b82525050565b600060208201905062000abb600083018462000a93565b92915050565b613ad28062000ad16000396000f3fe6080604052600436106102135760003560e01c8063768dc71011610118578063b1cb1582116100a0578063c647b20e1161006f578063c647b20e146107ba578063c6618d60146107e3578063dafd18e91461080e578063dd62ed3e1461084b578063e1165545146108885761021a565b8063b1cb158214610710578063b31470a41461073b578063b43665e214610764578063bbb9f61f1461078f5761021a565b80638456cb59116100e75780638456cb59146106295780638da5cb5b1461064057806395d89b411461066b578063a457c2d714610696578063a9059cbb146106d35761021a565b8063768dc7101461056b57806378109e54146105a85780637d1db4a5146105d3578063805c0e0f146105fe5761021a565b80633bbac5791161019b5780635c975abb1161016a5780635c975abb1461049657806360317625146104c157806361c9a0dc146104ec57806370a0823114610517578063715018a6146105545761021a565b80633bbac579146103d85780633f70a4951461041557806349bd5a5e146104405780634a74bb021461046b5761021a565b806321dbd9eb116101e257806321dbd9eb146102dd578063220f66961461030857806323b872dd14610333578063313ce56714610370578063395093511461039b5761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346108b1565b6040516102419190612b39565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612c03565b6108ee565b60405161027e9190612c5e565b60405180910390f35b34801561029357600080fd5b5061029c61090c565b6040516102a99190612cd8565b60405180910390f35b3480156102be57600080fd5b506102c7610932565b6040516102d49190612d02565b60405180910390f35b3480156102e957600080fd5b506102f261093c565b6040516102ff9190612d02565b60405180910390f35b34801561031457600080fd5b5061031d610942565b60405161032a9190612c5e565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612d1d565b610953565b6040516103679190612c5e565b60405180910390f35b34801561037c57600080fd5b50610385610a2c565b6040516103929190612d8c565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612c03565b610a35565b6040516103cf9190612c5e565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612da7565b610ae8565b60405161040c9190612c5e565b60405180910390f35b34801561042157600080fd5b5061042a610b3e565b6040516104379190612d02565b60405180910390f35b34801561044c57600080fd5b50610455610b44565b6040516104629190612de3565b60405180910390f35b34801561047757600080fd5b50610480610b6a565b60405161048d9190612c5e565b60405180910390f35b3480156104a257600080fd5b506104ab610b7d565b6040516104b89190612c5e565b60405180910390f35b3480156104cd57600080fd5b506104d6610b90565b6040516104e39190612d02565b60405180910390f35b3480156104f857600080fd5b50610501610b96565b60405161050e9190612d02565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612da7565b610b9c565b60405161054b9190612d02565b60405180910390f35b34801561056057600080fd5b50610569610be5565b005b34801561057757600080fd5b50610592600480360381019061058d9190612da7565b610ca3565b60405161059f9190612c5e565b60405180910390f35b3480156105b457600080fd5b506105bd610cc3565b6040516105ca9190612d02565b60405180910390f35b3480156105df57600080fd5b506105e8610cc9565b6040516105f59190612d02565b60405180910390f35b34801561060a57600080fd5b50610613610ccf565b6040516106209190612e1f565b60405180910390f35b34801561063557600080fd5b5061063e610cd5565b005b34801561064c57600080fd5b50610655610d67565b6040516106629190612de3565b60405180910390f35b34801561067757600080fd5b50610680610d90565b60405161068d9190612b39565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612c03565b610dcd565b6040516106ca9190612c5e565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190612c03565b610e9a565b6040516107079190612c5e565b60405180910390f35b34801561071c57600080fd5b50610725610eb8565b6040516107329190612d02565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190612fae565b610ebe565b005b34801561077057600080fd5b50610779610fcf565b6040516107869190612e1f565b60405180910390f35b34801561079b57600080fd5b506107a4610ff5565b6040516107b19190612e1f565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061300a565b61101b565b005b3480156107ef57600080fd5b506107f86110a9565b6040516108059190612d02565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190612c03565b6110af565b6040516108429190612c5e565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d919061304a565b611263565b60405161087f9190612d02565b60405180910390f35b34801561089457600080fd5b506108af60048036038101906108aa919061308a565b6112ea565b005b60606040518060400160405280600881526020017f45796543616e6479000000000000000000000000000000000000000000000000815250905090565b60006109026108fb611453565b848461145b565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b600d5481565b60148054906101000a900460ff1681565b60006109608484846115ef565b610a218461096c611453565b610a1c85604051806060016040528060288152602001613a5060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d2611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b600190509392505050565b60006012905090565b6000610ade610a42611453565b84610ad98560036000610a53611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9190919063ffffffff16565b61145b565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60095481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b601460169054906101000a900460ff1681565b600b5481565b600e5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b60115481565b61dead81565b610cdd610d67565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190613116565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4943414e44590000000000000000000000000000000000000000000000000000815250905090565b6000610e90610dda611453565b84610e8b85604051806060016040528060258152602001613a786025913960036000610e04611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b6001905092915050565b6000610eae610ea7611453565b84846115ef565b6001905092915050565b600a5481565b610ec6611453565b73ffffffffffffffffffffffffffffffffffffffff16610ee4610d67565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613182565b60405180910390fd5b60005b8251811015610fca578160016000858481518110610f5e57610f5d6131a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fc290613200565b915050610f3d565b505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611023611453565b73ffffffffffffffffffffffffffffffffffffffff16611041610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613182565b60405180910390fd5b8160098190555080600a819055505050565b600c5481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690613294565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115a9190612de3565b602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906132c9565b90506000606484836111ad91906132f6565b6111b79190613367565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112169291906133b9565b6020604051808303816000875af1158015611235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906133f7565b9250505092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112f2611453565b73ffffffffffffffffffffffffffffffffffffffff16611310610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90613182565b60405180910390fd5b801515600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90613470565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114c55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb906134dc565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115e29190612d02565b60405180910390a3505050565b6115f7610d67565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611660575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116f25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117315750611701610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561179557600061174183610b9c565b9050600f54828261175291906134fc565b1115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a9061357c565b60405180910390fd5b505b61179d610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461181557601154811115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b906135e8565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561187f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590613654565b60405180910390fd5b60008111611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906136e6565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119a55750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90613752565b60405180910390fd5b600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff1610158015611a23575060148054906101000a900460ff16155b8015611a7d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750601460159054906101000a900460ff165b15611ade576000611aa530610b9c565b9050601154811115611ab75760115490505b6000600860006101000a81548160ff021916908360ff160217905550611adc81611ca7565b505b6000600190506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b875750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b955760009150611c28565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611bef57600190505b6008600081819054906101000a900460ff1680929190611c0e90613772565b91906101000a81548160ff021916908360ff160217905550505b611c358585858585612040565b5050505050565b6000838311158290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b9190612b39565b60405180910390fd5b5082840390509392505050565b60008183611c9f91906134fc565b905092915050565b60016014806101000a81548160ff02191690831515021790555060006064600d5483611cd391906132f6565b611cdd9190613367565b905080600754611ced919061379b565b600781905550806002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4091906134fc565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd0919061379b565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600b5484611e2591906132f6565b611e2f9190613367565b905060006064600c5485611e4391906132f6565b611e4d9190613367565b9050600060c8600e5486611e6191906132f6565b611e6b9190613367565b90506000479050611e91838584611e8291906134fc565b611e8c91906134fc565b61273b565b60008147611e9f919061379b565b90506000600c54600b54600e54611eb691906134fc565b611ec091906134fc565b6064600b54611ecf91906132f6565b611ed99190613367565b9050600060648284611eeb91906132f6565b611ef59190613367565b90506000600c54600b54600e54611f0c91906134fc565b611f1691906134fc565b6064600c54611f2591906132f6565b611f2f9190613367565b9050600060648286611f4191906132f6565b611f4b9190613367565b9050611f6d87828588611f5e919061379b565b611f68919061379b565b61297e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611f9c919061379b565b611fa6919061379b565b89604051611fb6939291906137cf565b60405180910390a1611fea600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612a5e565b479450612019600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612a5e565b5050505050505050505060006014806101000a81548160ff02191690831515021790555050565b816122155782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612090919061379b565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e91906134fc565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121be9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122105782600754612209919061379b565b6007819055505b612734565b80156124a957600060646009548561222d91906132f6565b6122379190613367565b905060008185612247919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612294919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232291906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b091906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124509190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124a2578060075461249b919061379b565b6007819055505b5050612733565b60006064600a54856124bb91906132f6565b6124c59190613367565b9050600081856124d5919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612522919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b091906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263e91906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126de9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036127305780600754612729919061379b565b6007819055505b50505b5b5050505050565b6000600267ffffffffffffffff81111561275857612757612e3f565b5b6040519080825280602002602001820160405280156127865781602001602082028036833780820191505090505b509050308160008151811061279e5761279d6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612845573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612869919061381b565b8160018151811061287d5761287c6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128e430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612948959493929190613941565b600060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050505050565b6129ab30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612a149695949392919061399b565b60606040518083038185885af1158015612a32573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a5791906139fc565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612aa4573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae3578082015181840152602081019050612ac8565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0b82612aa9565b612b158185612ab4565b9350612b25818560208601612ac5565b612b2e81612aef565b840191505092915050565b60006020820190508181036000830152612b538184612b00565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9a82612b6f565b9050919050565b612baa81612b8f565b8114612bb557600080fd5b50565b600081359050612bc781612ba1565b92915050565b6000819050919050565b612be081612bcd565b8114612beb57600080fd5b50565b600081359050612bfd81612bd7565b92915050565b60008060408385031215612c1a57612c19612b65565b5b6000612c2885828601612bb8565b9250506020612c3985828601612bee565b9150509250929050565b60008115159050919050565b612c5881612c43565b82525050565b6000602082019050612c736000830184612c4f565b92915050565b6000819050919050565b6000612c9e612c99612c9484612b6f565b612c79565b612b6f565b9050919050565b6000612cb082612c83565b9050919050565b6000612cc282612ca5565b9050919050565b612cd281612cb7565b82525050565b6000602082019050612ced6000830184612cc9565b92915050565b612cfc81612bcd565b82525050565b6000602082019050612d176000830184612cf3565b92915050565b600080600060608486031215612d3657612d35612b65565b5b6000612d4486828701612bb8565b9350506020612d5586828701612bb8565b9250506040612d6686828701612bee565b9150509250925092565b600060ff82169050919050565b612d8681612d70565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600060208284031215612dbd57612dbc612b65565b5b6000612dcb84828501612bb8565b91505092915050565b612ddd81612b8f565b82525050565b6000602082019050612df86000830184612dd4565b92915050565b6000612e0982612b6f565b9050919050565b612e1981612dfe565b82525050565b6000602082019050612e346000830184612e10565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e7782612aef565b810181811067ffffffffffffffff82111715612e9657612e95612e3f565b5b80604052505050565b6000612ea9612b5b565b9050612eb58282612e6e565b919050565b600067ffffffffffffffff821115612ed557612ed4612e3f565b5b602082029050602081019050919050565b600080fd5b6000612efe612ef984612eba565b612e9f565b90508083825260208201905060208402830185811115612f2157612f20612ee6565b5b835b81811015612f4a5780612f368882612bb8565b845260208401935050602081019050612f23565b5050509392505050565b600082601f830112612f6957612f68612e3a565b5b8135612f79848260208601612eeb565b91505092915050565b612f8b81612c43565b8114612f9657600080fd5b50565b600081359050612fa881612f82565b92915050565b60008060408385031215612fc557612fc4612b65565b5b600083013567ffffffffffffffff811115612fe357612fe2612b6a565b5b612fef85828601612f54565b925050602061300085828601612f99565b9150509250929050565b6000806040838503121561302157613020612b65565b5b600061302f85828601612bee565b925050602061304085828601612bee565b9150509250929050565b6000806040838503121561306157613060612b65565b5b600061306f85828601612bb8565b925050602061308085828601612bb8565b9150509250929050565b600080604083850312156130a1576130a0612b65565b5b60006130af85828601612bb8565b92505060206130c085828601612f99565b9150509250929050565b7f5061757361626c653a206f6e6c79206f776e65722063616e2070617573650000600082015250565b6000613100601e83612ab4565b915061310b826130ca565b602082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061316c602083612ab4565b915061317782613136565b602082019050919050565b6000602082019050818103600083015261319b8161315f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061320b82612bcd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361323d5761323c6131d1565b5b600182019050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b600061327e601b83612ab4565b915061328982613248565b602082019050919050565b600060208201905081810360008301526132ad81613271565b9050919050565b6000815190506132c381612bd7565b92915050565b6000602082840312156132df576132de612b65565b5b60006132ed848285016132b4565b91505092915050565b600061330182612bcd565b915061330c83612bcd565b925082820261331a81612bcd565b91508282048414831517613331576133306131d1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337282612bcd565b915061337d83612bcd565b92508261338d5761338c613338565b5b828204905092915050565b60006133a382612ca5565b9050919050565b6133b381613398565b82525050565b60006040820190506133ce60008301856133aa565b6133db6020830184612cf3565b9392505050565b6000815190506133f181612f82565b92915050565b60006020828403121561340d5761340c612b65565b5b600061341b848285016133e2565b91505092915050565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b600061345a601183612ab4565b915061346582613424565b602082019050919050565b600060208201905081810360008301526134898161344d565b9050919050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006134c6601183612ab4565b91506134d182613490565b602082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b600061350782612bcd565b915061351283612bcd565b925082820190508082111561352a576135296131d1565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000613566601283612ab4565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b60006135d2601783612ab4565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061363e601583612ab4565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b60006136d0602583612ab4565b91506136db82613674565b604082019050919050565b600060208201905081810360008301526136ff816136c3565b9050919050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b600061373c600d83612ab4565b915061374782613706565b602082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b600061377d82612d70565b915060ff82036137905761378f6131d1565b5b600182019050919050565b60006137a682612bcd565b91506137b183612bcd565b92508282039050818111156137c9576137c86131d1565b5b92915050565b60006060820190506137e46000830186612cf3565b6137f16020830185612cf3565b6137fe6040830184612cf3565b949350505050565b60008151905061381581612ba1565b92915050565b60006020828403121561383157613830612b65565b5b600061383f84828501613806565b91505092915050565b6000819050919050565b600061386d61386861386384613848565b612c79565b612bcd565b9050919050565b61387d81613852565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138b881612b8f565b82525050565b60006138ca83836138af565b60208301905092915050565b6000602082019050919050565b60006138ee82613883565b6138f8818561388e565b93506139038361389f565b8060005b8381101561393457815161391b88826138be565b9750613926836138d6565b925050600181019050613907565b5085935050505092915050565b600060a0820190506139566000830188612cf3565b6139636020830187613874565b818103604083015261397581866138e3565b90506139846060830185612dd4565b6139916080830184612cf3565b9695505050505050565b600060c0820190506139b06000830189612dd4565b6139bd6020830188612cf3565b6139ca6040830187613874565b6139d76060830186613874565b6139e460808301856133aa565b6139f160a0830184612cf3565b979650505050505050565b600080600060608486031215613a1557613a14612b65565b5b6000613a23868287016132b4565b9350506020613a34868287016132b4565b9250506040613a45868287016132b4565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e820e3a0b42e00d87d04704c395f4bf52b67b575e549ae0136feef3fe37c413664736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063768dc71011610118578063b1cb1582116100a0578063c647b20e1161006f578063c647b20e146107ba578063c6618d60146107e3578063dafd18e91461080e578063dd62ed3e1461084b578063e1165545146108885761021a565b8063b1cb158214610710578063b31470a41461073b578063b43665e214610764578063bbb9f61f1461078f5761021a565b80638456cb59116100e75780638456cb59146106295780638da5cb5b1461064057806395d89b411461066b578063a457c2d714610696578063a9059cbb146106d35761021a565b8063768dc7101461056b57806378109e54146105a85780637d1db4a5146105d3578063805c0e0f146105fe5761021a565b80633bbac5791161019b5780635c975abb1161016a5780635c975abb1461049657806360317625146104c157806361c9a0dc146104ec57806370a0823114610517578063715018a6146105545761021a565b80633bbac579146103d85780633f70a4951461041557806349bd5a5e146104405780634a74bb021461046b5761021a565b806321dbd9eb116101e257806321dbd9eb146102dd578063220f66961461030857806323b872dd14610333578063313ce56714610370578063395093511461039b5761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346108b1565b6040516102419190612b39565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612c03565b6108ee565b60405161027e9190612c5e565b60405180910390f35b34801561029357600080fd5b5061029c61090c565b6040516102a99190612cd8565b60405180910390f35b3480156102be57600080fd5b506102c7610932565b6040516102d49190612d02565b60405180910390f35b3480156102e957600080fd5b506102f261093c565b6040516102ff9190612d02565b60405180910390f35b34801561031457600080fd5b5061031d610942565b60405161032a9190612c5e565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612d1d565b610953565b6040516103679190612c5e565b60405180910390f35b34801561037c57600080fd5b50610385610a2c565b6040516103929190612d8c565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612c03565b610a35565b6040516103cf9190612c5e565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612da7565b610ae8565b60405161040c9190612c5e565b60405180910390f35b34801561042157600080fd5b5061042a610b3e565b6040516104379190612d02565b60405180910390f35b34801561044c57600080fd5b50610455610b44565b6040516104629190612de3565b60405180910390f35b34801561047757600080fd5b50610480610b6a565b60405161048d9190612c5e565b60405180910390f35b3480156104a257600080fd5b506104ab610b7d565b6040516104b89190612c5e565b60405180910390f35b3480156104cd57600080fd5b506104d6610b90565b6040516104e39190612d02565b60405180910390f35b3480156104f857600080fd5b50610501610b96565b60405161050e9190612d02565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612da7565b610b9c565b60405161054b9190612d02565b60405180910390f35b34801561056057600080fd5b50610569610be5565b005b34801561057757600080fd5b50610592600480360381019061058d9190612da7565b610ca3565b60405161059f9190612c5e565b60405180910390f35b3480156105b457600080fd5b506105bd610cc3565b6040516105ca9190612d02565b60405180910390f35b3480156105df57600080fd5b506105e8610cc9565b6040516105f59190612d02565b60405180910390f35b34801561060a57600080fd5b50610613610ccf565b6040516106209190612e1f565b60405180910390f35b34801561063557600080fd5b5061063e610cd5565b005b34801561064c57600080fd5b50610655610d67565b6040516106629190612de3565b60405180910390f35b34801561067757600080fd5b50610680610d90565b60405161068d9190612b39565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612c03565b610dcd565b6040516106ca9190612c5e565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190612c03565b610e9a565b6040516107079190612c5e565b60405180910390f35b34801561071c57600080fd5b50610725610eb8565b6040516107329190612d02565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190612fae565b610ebe565b005b34801561077057600080fd5b50610779610fcf565b6040516107869190612e1f565b60405180910390f35b34801561079b57600080fd5b506107a4610ff5565b6040516107b19190612e1f565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061300a565b61101b565b005b3480156107ef57600080fd5b506107f86110a9565b6040516108059190612d02565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190612c03565b6110af565b6040516108429190612c5e565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d919061304a565b611263565b60405161087f9190612d02565b60405180910390f35b34801561089457600080fd5b506108af60048036038101906108aa919061308a565b6112ea565b005b60606040518060400160405280600881526020017f45796543616e6479000000000000000000000000000000000000000000000000815250905090565b60006109026108fb611453565b848461145b565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b600d5481565b60148054906101000a900460ff1681565b60006109608484846115ef565b610a218461096c611453565b610a1c85604051806060016040528060288152602001613a5060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d2611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b600190509392505050565b60006012905090565b6000610ade610a42611453565b84610ad98560036000610a53611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9190919063ffffffff16565b61145b565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60095481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b601460169054906101000a900460ff1681565b600b5481565b600e5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b60115481565b61dead81565b610cdd610d67565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190613116565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4943414e44590000000000000000000000000000000000000000000000000000815250905090565b6000610e90610dda611453565b84610e8b85604051806060016040528060258152602001613a786025913960036000610e04611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b6001905092915050565b6000610eae610ea7611453565b84846115ef565b6001905092915050565b600a5481565b610ec6611453565b73ffffffffffffffffffffffffffffffffffffffff16610ee4610d67565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613182565b60405180910390fd5b60005b8251811015610fca578160016000858481518110610f5e57610f5d6131a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fc290613200565b915050610f3d565b505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611023611453565b73ffffffffffffffffffffffffffffffffffffffff16611041610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613182565b60405180910390fd5b8160098190555080600a819055505050565b600c5481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690613294565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115a9190612de3565b602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906132c9565b90506000606484836111ad91906132f6565b6111b79190613367565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112169291906133b9565b6020604051808303816000875af1158015611235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906133f7565b9250505092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112f2611453565b73ffffffffffffffffffffffffffffffffffffffff16611310610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90613182565b60405180910390fd5b801515600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90613470565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114c55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb906134dc565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115e29190612d02565b60405180910390a3505050565b6115f7610d67565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611660575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116f25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117315750611701610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561179557600061174183610b9c565b9050600f54828261175291906134fc565b1115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a9061357c565b60405180910390fd5b505b61179d610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461181557601154811115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b906135e8565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561187f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590613654565b60405180910390fd5b60008111611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906136e6565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119a55750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90613752565b60405180910390fd5b600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff1610158015611a23575060148054906101000a900460ff16155b8015611a7d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750601460159054906101000a900460ff165b15611ade576000611aa530610b9c565b9050601154811115611ab75760115490505b6000600860006101000a81548160ff021916908360ff160217905550611adc81611ca7565b505b6000600190506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b875750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b955760009150611c28565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611bef57600190505b6008600081819054906101000a900460ff1680929190611c0e90613772565b91906101000a81548160ff021916908360ff160217905550505b611c358585858585612040565b5050505050565b6000838311158290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b9190612b39565b60405180910390fd5b5082840390509392505050565b60008183611c9f91906134fc565b905092915050565b60016014806101000a81548160ff02191690831515021790555060006064600d5483611cd391906132f6565b611cdd9190613367565b905080600754611ced919061379b565b600781905550806002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4091906134fc565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd0919061379b565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600b5484611e2591906132f6565b611e2f9190613367565b905060006064600c5485611e4391906132f6565b611e4d9190613367565b9050600060c8600e5486611e6191906132f6565b611e6b9190613367565b90506000479050611e91838584611e8291906134fc565b611e8c91906134fc565b61273b565b60008147611e9f919061379b565b90506000600c54600b54600e54611eb691906134fc565b611ec091906134fc565b6064600b54611ecf91906132f6565b611ed99190613367565b9050600060648284611eeb91906132f6565b611ef59190613367565b90506000600c54600b54600e54611f0c91906134fc565b611f1691906134fc565b6064600c54611f2591906132f6565b611f2f9190613367565b9050600060648286611f4191906132f6565b611f4b9190613367565b9050611f6d87828588611f5e919061379b565b611f68919061379b565b61297e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611f9c919061379b565b611fa6919061379b565b89604051611fb6939291906137cf565b60405180910390a1611fea600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612a5e565b479450612019600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612a5e565b5050505050505050505060006014806101000a81548160ff02191690831515021790555050565b816122155782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612090919061379b565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e91906134fc565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121be9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122105782600754612209919061379b565b6007819055505b612734565b80156124a957600060646009548561222d91906132f6565b6122379190613367565b905060008185612247919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612294919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232291906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b091906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124509190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124a2578060075461249b919061379b565b6007819055505b5050612733565b60006064600a54856124bb91906132f6565b6124c59190613367565b9050600081856124d5919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612522919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b091906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263e91906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126de9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036127305780600754612729919061379b565b6007819055505b50505b5b5050505050565b6000600267ffffffffffffffff81111561275857612757612e3f565b5b6040519080825280602002602001820160405280156127865781602001602082028036833780820191505090505b509050308160008151811061279e5761279d6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612845573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612869919061381b565b8160018151811061287d5761287c6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128e430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612948959493929190613941565b600060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050505050565b6129ab30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612a149695949392919061399b565b60606040518083038185885af1158015612a32573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a5791906139fc565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612aa4573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae3578082015181840152602081019050612ac8565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0b82612aa9565b612b158185612ab4565b9350612b25818560208601612ac5565b612b2e81612aef565b840191505092915050565b60006020820190508181036000830152612b538184612b00565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9a82612b6f565b9050919050565b612baa81612b8f565b8114612bb557600080fd5b50565b600081359050612bc781612ba1565b92915050565b6000819050919050565b612be081612bcd565b8114612beb57600080fd5b50565b600081359050612bfd81612bd7565b92915050565b60008060408385031215612c1a57612c19612b65565b5b6000612c2885828601612bb8565b9250506020612c3985828601612bee565b9150509250929050565b60008115159050919050565b612c5881612c43565b82525050565b6000602082019050612c736000830184612c4f565b92915050565b6000819050919050565b6000612c9e612c99612c9484612b6f565b612c79565b612b6f565b9050919050565b6000612cb082612c83565b9050919050565b6000612cc282612ca5565b9050919050565b612cd281612cb7565b82525050565b6000602082019050612ced6000830184612cc9565b92915050565b612cfc81612bcd565b82525050565b6000602082019050612d176000830184612cf3565b92915050565b600080600060608486031215612d3657612d35612b65565b5b6000612d4486828701612bb8565b9350506020612d5586828701612bb8565b9250506040612d6686828701612bee565b9150509250925092565b600060ff82169050919050565b612d8681612d70565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600060208284031215612dbd57612dbc612b65565b5b6000612dcb84828501612bb8565b91505092915050565b612ddd81612b8f565b82525050565b6000602082019050612df86000830184612dd4565b92915050565b6000612e0982612b6f565b9050919050565b612e1981612dfe565b82525050565b6000602082019050612e346000830184612e10565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e7782612aef565b810181811067ffffffffffffffff82111715612e9657612e95612e3f565b5b80604052505050565b6000612ea9612b5b565b9050612eb58282612e6e565b919050565b600067ffffffffffffffff821115612ed557612ed4612e3f565b5b602082029050602081019050919050565b600080fd5b6000612efe612ef984612eba565b612e9f565b90508083825260208201905060208402830185811115612f2157612f20612ee6565b5b835b81811015612f4a5780612f368882612bb8565b845260208401935050602081019050612f23565b5050509392505050565b600082601f830112612f6957612f68612e3a565b5b8135612f79848260208601612eeb565b91505092915050565b612f8b81612c43565b8114612f9657600080fd5b50565b600081359050612fa881612f82565b92915050565b60008060408385031215612fc557612fc4612b65565b5b600083013567ffffffffffffffff811115612fe357612fe2612b6a565b5b612fef85828601612f54565b925050602061300085828601612f99565b9150509250929050565b6000806040838503121561302157613020612b65565b5b600061302f85828601612bee565b925050602061304085828601612bee565b9150509250929050565b6000806040838503121561306157613060612b65565b5b600061306f85828601612bb8565b925050602061308085828601612bb8565b9150509250929050565b600080604083850312156130a1576130a0612b65565b5b60006130af85828601612bb8565b92505060206130c085828601612f99565b9150509250929050565b7f5061757361626c653a206f6e6c79206f776e65722063616e2070617573650000600082015250565b6000613100601e83612ab4565b915061310b826130ca565b602082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061316c602083612ab4565b915061317782613136565b602082019050919050565b6000602082019050818103600083015261319b8161315f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061320b82612bcd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361323d5761323c6131d1565b5b600182019050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b600061327e601b83612ab4565b915061328982613248565b602082019050919050565b600060208201905081810360008301526132ad81613271565b9050919050565b6000815190506132c381612bd7565b92915050565b6000602082840312156132df576132de612b65565b5b60006132ed848285016132b4565b91505092915050565b600061330182612bcd565b915061330c83612bcd565b925082820261331a81612bcd565b91508282048414831517613331576133306131d1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337282612bcd565b915061337d83612bcd565b92508261338d5761338c613338565b5b828204905092915050565b60006133a382612ca5565b9050919050565b6133b381613398565b82525050565b60006040820190506133ce60008301856133aa565b6133db6020830184612cf3565b9392505050565b6000815190506133f181612f82565b92915050565b60006020828403121561340d5761340c612b65565b5b600061341b848285016133e2565b91505092915050565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b600061345a601183612ab4565b915061346582613424565b602082019050919050565b600060208201905081810360008301526134898161344d565b9050919050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006134c6601183612ab4565b91506134d182613490565b602082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b600061350782612bcd565b915061351283612bcd565b925082820190508082111561352a576135296131d1565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000613566601283612ab4565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b60006135d2601783612ab4565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061363e601583612ab4565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b60006136d0602583612ab4565b91506136db82613674565b604082019050919050565b600060208201905081810360008301526136ff816136c3565b9050919050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b600061373c600d83612ab4565b915061374782613706565b602082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b600061377d82612d70565b915060ff82036137905761378f6131d1565b5b600182019050919050565b60006137a682612bcd565b91506137b183612bcd565b92508282039050818111156137c9576137c86131d1565b5b92915050565b60006060820190506137e46000830186612cf3565b6137f16020830185612cf3565b6137fe6040830184612cf3565b949350505050565b60008151905061381581612ba1565b92915050565b60006020828403121561383157613830612b65565b5b600061383f84828501613806565b91505092915050565b6000819050919050565b600061386d61386861386384613848565b612c79565b612bcd565b9050919050565b61387d81613852565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138b881612b8f565b82525050565b60006138ca83836138af565b60208301905092915050565b6000602082019050919050565b60006138ee82613883565b6138f8818561388e565b93506139038361389f565b8060005b8381101561393457815161391b88826138be565b9750613926836138d6565b925050600181019050613907565b5085935050505092915050565b600060a0820190506139566000830188612cf3565b6139636020830187613874565b818103604083015261397581866138e3565b90506139846060830185612dd4565b6139916080830184612cf3565b9695505050505050565b600060c0820190506139b06000830189612dd4565b6139bd6020830188612cf3565b6139ca6040830187613874565b6139d76060830186613874565b6139e460808301856133aa565b6139f160a0830184612cf3565b979650505050505050565b600080600060608486031215613a1557613a14612b65565b5b6000613a23868287016132b4565b9350506020613a34868287016132b4565b9250506040613a45868287016132b4565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e820e3a0b42e00d87d04704c395f4bf52b67b575e549ae0136feef3fe37c413664736f6c63430008120033

Deployed Bytecode Sourcemap

12934:12254:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16937:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17918:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15196:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17354:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14881:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15279:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18085:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17265:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18404:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16833:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14722:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15244:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15314:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15361:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14799:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14919:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17455:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13716:138;;;;;;;;;;;;;:::i;:::-;;14034:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14960;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15082:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14288:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13579:131;;;;;;;;;;;;;:::i;:::-;;13163:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17026;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18634:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17578:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14760:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16625:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14093:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14194:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17119:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14843:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23343:444;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17751:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16439:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16937:83;16974:13;17007:5;;;;;;;;;;;;;;;;;17000:12;;16937:83;:::o;17918:161::-;17993:4;18010:39;18019:12;:10;:12::i;:::-;18033:7;18042:6;18010:8;:39::i;:::-;18067:4;18060:11;;17918:161;;;;:::o;15196:41::-;;;;;;;;;;;;;:::o;17354:95::-;17407:7;17434;;17427:14;;17354:95;:::o;14881:31::-;;;;:::o;15279:28::-;;;;;;;;;;;;:::o;18085:313::-;18183:4;18200:36;18210:6;18218:9;18229:6;18200:9;:36::i;:::-;18247:121;18256:6;18264:12;:10;:12::i;:::-;18278:89;18316:6;18278:89;;;;;;;;;;;;;;;;;:11;:19;18290:6;18278:19;;;;;;;;;;;;;;;:33;18298:12;:10;:12::i;:::-;18278:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18247:8;:121::i;:::-;18386:4;18379:11;;18085:313;;;;;:::o;17265:83::-;17306:5;14477:2;17324:16;;17265:83;:::o;18404:218::-;18492:4;18509:83;18518:12;:10;:12::i;:::-;18532:7;18541:50;18580:10;18541:11;:25;18553:12;:10;:12::i;:::-;18541:25;;;;;;;;;;;;;;;:34;18567:7;18541:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18509:8;:83::i;:::-;18610:4;18603:11;;18404:218;;;;:::o;16833:98::-;16885:4;16908:6;:15;16915:7;16908:15;;;;;;;;;;;;;;;;;;;;;;;;;16901:22;;16833:98;;;:::o;14722:31::-;;;;:::o;15244:28::-;;;;;;;;;;;;;:::o;15314:40::-;;;;;;;;;;;;;:::o;15361:25::-;;;;;;;;;;;;;:::o;14799:37::-;;;;:::o;14919:33::-;;;;:::o;17455:117::-;17521:7;17548;:16;17556:7;17548:16;;;;;;;;;;;;;;;;17541:23;;17455:117;;;:::o;13716:138::-;13813:1;13776:40;;13797:6;;;;;;;;;;13776:40;;;;;;;;;;;;13844:1;13827:6;;:19;;;;;;;;;;;;;;;;;;13716:138::o;14034:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;14960:::-;;;;:::o;15082:48::-;;;;:::o;14288:97::-;14342:42;14288:97;:::o;13579:131::-;13636:7;:5;:7::i;:::-;13622:21;;:10;:21;;;13614:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13698:4;13689:6;;:13;;;;;;;;;;;;;;;;;;13579:131::o;13163:87::-;13209:7;13236:6;;;;;;;;;;;13229:13;;13163:87;:::o;17026:::-;17065:13;17098:7;;;;;;;;;;;;;;;;;17091:14;;17026:87;:::o;18634:269::-;18727:4;18744:129;18753:12;:10;:12::i;:::-;18767:7;18776:96;18815:15;18776:96;;;;;;;;;;;;;;;;;:11;:25;18788:12;:10;:12::i;:::-;18776:25;;;;;;;;;;;;;;;:34;18802:7;18776:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18744:8;:129::i;:::-;18891:4;18884:11;;18634:269;;;;:::o;17578:167::-;17656:4;17673:42;17683:12;:10;:12::i;:::-;17697:9;17708:6;17673:9;:42::i;:::-;17733:4;17726:11;;17578:167;;;;:::o;14760:32::-;;;;:::o;16625:199::-;13504:12;:10;:12::i;:::-;13493:23;;:7;:5;:7::i;:::-;:23;;;13485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16718:9:::1;16714:99;16737:8;:15;16733:1;:19;16714:99;;;16795:5;16773:6;:19;16780:8;16789:1;16780:11;;;;;;;;:::i;:::-;;;;;;;;16773:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16754:3;;;;;:::i;:::-;;;;16714:99;;;;16625:199:::0;;:::o;14093:93::-;;;;;;;;;;;;;:::o;14194:87::-;;;;;;;;;;;;;:::o;17119:140::-;13504:12;:10;:12::i;:::-;13493:23;;:7;:5;:7::i;:::-;:23;;;13485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17212:6:::1;17198:11;:20;;;;17244:7;17229:12;:22;;;;17119:140:::0;;:::o;14843:31::-;;;;:::o;23343:444::-;23445:10;23507:4;23475:37;;:20;:37;;;23467:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;23555:19;23584:20;23577:38;;;23624:4;23577:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23555:75;;23641:20;23694:3;23676:17;23664:11;:29;;;;:::i;:::-;:33;;;;:::i;:::-;23641:56;;23723:20;23716:37;;;23754:10;;;;;;;;;;;23766:12;23716:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23708:71;;23456:331;;23343:444;;;;:::o;17751:155::-;17838:7;17865:11;:21;17877:8;17865:21;;;;;;;;;;;;;;;:33;17887:10;17865:33;;;;;;;;;;;;;;;;17858:40;;17751:155;;;;:::o;16439:174::-;13504:12;:10;:12::i;:::-;13493:23;;:7;:5;:7::i;:::-;:23;;;13485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16544:5:::1;16525:24;;:6;:15;16532:7;16525:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;::::0;16517:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16600:5;16582:6;:15;16589:7;16582:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16439:174:::0;;:::o;1641:98::-;1694:7;1721:10;1714:17;;1641:98;:::o;19044:286::-;19163:1;19143:22;;:8;:22;;;;:50;;;;;19191:1;19169:24;;:10;:24;;;;19143:50;19135:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;19262:6;19226:11;:21;19238:8;19226:21;;;;;;;;;;;;;;;:33;19248:10;19226:33;;;;;;;;;;;;;;;:42;;;;19303:10;19284:38;;19293:8;19284:38;;;19315:6;19284:38;;;;;;:::i;:::-;;;;;;;;19044:286;;;:::o;19346:1519::-;19470:7;:5;:7::i;:::-;19464:13;;:2;:13;;;;:47;;;;;14342:42;19494:17;;:2;:17;;;;19464:47;:83;;;;;19542:4;19528:19;;:2;:19;;;;19464:83;:119;;;;;19570:13;;;;;;;;;;;19564:19;;:2;:19;;;;19464:119;:151;;;;;19608:7;:5;:7::i;:::-;19600:15;;:4;:15;;;;19464:151;19460:292;;;19631:18;19652:13;19662:2;19652:9;:13::i;:::-;19631:34;;19713:15;;19702:6;19689:10;:19;;;;:::i;:::-;19688:40;;19680:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19616:136;19460:292;19774:7;:5;:7::i;:::-;19766:15;;:4;:15;;;19762:92;;19814:12;;19804:6;:22;;19796:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;19762:92;19889:1;19873:18;;:4;:18;;;;:38;;;;;19909:1;19895:16;;:2;:16;;;;19873:38;19865:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19965:1;19956:6;:10;19948:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20029:6;:12;20036:4;20029:12;;;;;;;;;;;;;;;;;;;;;;;;;20028:13;:28;;;;;20046:6;:10;20053:2;20046:10;;;;;;;;;;;;;;;;;;;;;;;;;20045:11;20028:28;20020:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20114:11;;;;;;;;;;;20103:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;20144:16;;;;;;;;;;20143:17;20103:57;:95;;;;;20185:13;;;;;;;;;;;20177:21;;:4;:21;;;;20103:95;:133;;;;;20215:21;;;;;;;;;;;20103:133;20086:428;;;20278:28;20309:24;20327:4;20309:9;:24::i;:::-;20278:55;;20374:12;;20351:20;:35;20348:78;;;20412:12;;20389:35;;20348:78;20450:1;20440:7;;:11;;;;;;;;;;;;;;;;;;20466:36;20481:20;20466:14;:36::i;:::-;20261:253;20086:428;20524:12;20539:4;20524:19;;20554:10;20578:18;:24;20597:4;20578:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;20606:18;:22;20625:2;20606:22;;;;;;;;;;;;;;;;;;;;;;;;;20578:50;20575:224;;;20654:5;20644:15;;20575:224;;;20703:13;;;;;;;;;;;20695:21;;:4;:21;;;20692:72;;20744:4;20736:12;;20692:72;20778:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;20575:224;20809:48;20824:4;20830:2;20834:6;20842:7;20851:5;20809:14;:48::i;:::-;19449:1416;;19346:1519;;;:::o;1186:206::-;1272:7;1330:1;1325;:6;;1333:12;1317:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1372:1;1368;:5;1361:12;;1186:206;;;;;:::o;770:98::-;828:7;859:1;855;:5;;;;:::i;:::-;848:12;;770:98;;;;:::o;20997:1489::-;15640:4;15621:16;;:23;;;;;;;;;;;;;;;;;;21086:22:::1;21149:3;21134:12;;21111:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;21086:66;;21187:14;21177:7;;:24;;;;:::i;:::-;21167:7;:34;;;;21262:14;21239:7;:20;14342:42;21239:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;21216:7;:20;14342:42;21216:20;;;;;;;;;;;;;;;:60;;;;21341:14;21316:7;:22;21332:4;21316:22;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;21291:7;:22;21307:4;21291:22;;;;;;;;;;;;;;;:64;;;;21371:19;21436:3;21416:17;;21393:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;21371:68;;21454:19;21513:3;21499:11;;21476:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;21454:62;;21531:25;21599:3;21582:14;;21559:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;21531:71;;21617:25;21645:21;21617:49;;21681:63;21732:11;21718;21698:17;:31;;;;:::i;:::-;:45;;;;:::i;:::-;21681:16;:63::i;:::-;21759:17;21803;21779:21;:41;;;;:::i;:::-;21759:61;;21835:15;21917:11;;21897:17;;21880:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;21873:3;21853:17;;:23;;;;:::i;:::-;:76;;;;:::i;:::-;21835:94;;21944:13;21982:3;21972:7;21960:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;21944:41;;22000:15;22076:11;;22056:17;;22039:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;22032:3;22018:11;;:17;;;;:::i;:::-;:70;;;;:::i;:::-;22000:88;;22103:13;22141:3;22131:7;22119:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;22103:41;;22159:60;22172:17;22212:5;22204;22192:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;22159:12;:60::i;:::-;22239:81;22254:17;22294:5;22286;22274:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;22302:17;22239:81;;;;;;;;:::i;:::-;;;;;;;;22335:37;22348:16;;;;;;;;;;;22366:5;22335:12;:37::i;:::-;22399:21;22387:33;;22435:35;22448:10;;;;;;;;;;;22460:9;22435:12;:35::i;:::-;21071:1415;;;;;;;;;;15686:5:::0;15667:16;;:24;;;;;;;;;;;;;;;;;;20997:1489;:::o;23793:1392::-;23918:7;23914:1264;;23975:7;23959;:15;23967:6;23959:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;23941:7;:15;23949:6;23941:15;;;;;;;;;;;;;;;:41;;;;24037:7;24018;:18;24026:9;24018:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;23997:7;:18;24005:9;23997:18;;;;;;;;;;;;;;;:47;;;;24081:9;24064:36;;24073:6;24064:36;;;24092:7;24064:36;;;;;;:::i;:::-;;;;;;;;14342:42;24118:24;;:9;:24;;;24115:67;;24175:7;24167;;:15;;;;:::i;:::-;24157:7;:25;;;;24115:67;23914:1264;;;24208:5;24204:974;;;24229:14;24266:3;24254:11;;24246:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;24229:40;;24284:23;24318:6;24310:7;:14;;;;:::i;:::-;24284:40;;24373:7;24357;:15;24365:6;24357:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24339:7;:15;24347:6;24339:15;;;;;;;;;;;;;;;:41;;;;24435:15;24416:7;:18;24424:9;24416:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24395:7;:18;24403:9;24395:18;;;;;;;;;;;;;;;:55;;;;24513:6;24490:7;:22;24506:4;24490:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;24465:7;:22;24481:4;24465:22;;;;;;;;;;;;;;;:54;;;;24558:9;24541:44;;24550:6;24541:44;;;24569:15;24541:44;;;;;;:::i;:::-;;;;;;;;14342:42;24603:24;;:9;:24;;;24600:75;;24660:15;24652:7;;:23;;;;:::i;:::-;24642:7;:33;;;;24600:75;24214:477;;24204:974;;;24712:15;24751:3;24738:12;;24730:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;24712:42;;24769:23;24803:7;24795;:15;;;;:::i;:::-;24769:41;;24859:7;24843;:15;24851:6;24843:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24825:7;:15;24833:6;24825:15;;;;;;;;;;;;;;;:41;;;;24921:15;24902:7;:18;24910:9;24902:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24881:7;:18;24889:9;24881:18;;;;;;;;;;;;;;;:55;;;;24999:7;24976;:22;24992:4;24976:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;24951:7;:22;24967:4;24951:22;;;;;;;;;;;;;;;:55;;;;25045:9;25028:44;;25037:6;25028:44;;;25056:15;25028:44;;;;;;:::i;:::-;;;;;;;;14342:42;25090:24;;:9;:24;;;25087:75;;25147:15;25139:7;;:23;;;;:::i;:::-;25129:7;:33;;;;25087:75;24697:481;;24204:974;23914:1264;23793:1392;;;;;:::o;22492:472::-;22558:21;22596:1;22582:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22558:40;;22627:4;22609;22614:1;22609:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22653:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22643:4;22648:1;22643:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22686:62;22703:4;22718:15;;;;;;;;;;;22736:11;22686:8;:62::i;:::-;22759:15;;;;;;;;;;;:66;;;22840:11;22866:1;22883:4;22910;22930:15;22759:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22547:417;22492:472;:::o;22970:366::-;23051:62;23068:4;23083:15;;;;;;;;;;;23101:11;23051:8;:62::i;:::-;23124:15;;;;;;;;;;;:31;;;23163:9;23196:4;23216:11;23242:1;23259;14342:42;23302:15;23124:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22970:366;;:::o;20871:120::-;20956:6;:15;;:23;20972:6;20956:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20871:120;;:::o;7:99:1:-;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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:86::-;5436:7;5476:4;5469:5;5465:16;5454:27;;5401:86;;;:::o;5493:112::-;5576:22;5592:5;5576:22;:::i;:::-;5571:3;5564:35;5493:112;;:::o;5611:214::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:67;5815:1;5804:9;5800:17;5791:6;5751:67;:::i;:::-;5611:214;;;;:::o;5831:329::-;5890:6;5939:2;5927:9;5918:7;5914:23;5910:32;5907:119;;;5945:79;;:::i;:::-;5907:119;6065:1;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6036:117;5831:329;;;;:::o;6166:118::-;6253:24;6271:5;6253:24;:::i;:::-;6248:3;6241:37;6166:118;;:::o;6290:222::-;6383:4;6421:2;6410:9;6406:18;6398:26;;6434:71;6502:1;6491:9;6487:17;6478:6;6434:71;:::i;:::-;6290:222;;;;:::o;6518:104::-;6563:7;6592:24;6610:5;6592:24;:::i;:::-;6581:35;;6518:104;;;:::o;6628:142::-;6731:32;6757:5;6731:32;:::i;:::-;6726:3;6719:45;6628:142;;:::o;6776:254::-;6885:4;6923:2;6912:9;6908:18;6900:26;;6936:87;7020:1;7009:9;7005:17;6996:6;6936:87;:::i;:::-;6776:254;;;;:::o;7036:117::-;7145:1;7142;7135:12;7159:180;7207:77;7204:1;7197:88;7304:4;7301:1;7294:15;7328:4;7325:1;7318:15;7345:281;7428:27;7450:4;7428:27;:::i;:::-;7420:6;7416:40;7558:6;7546:10;7543:22;7522:18;7510:10;7507:34;7504:62;7501:88;;;7569:18;;:::i;:::-;7501:88;7609:10;7605:2;7598:22;7388:238;7345:281;;:::o;7632:129::-;7666:6;7693:20;;:::i;:::-;7683:30;;7722:33;7750:4;7742:6;7722:33;:::i;:::-;7632:129;;;:::o;7767:311::-;7844:4;7934:18;7926:6;7923:30;7920:56;;;7956:18;;:::i;:::-;7920:56;8006:4;7998:6;7994:17;7986:25;;8066:4;8060;8056:15;8048:23;;7767:311;;;:::o;8084:117::-;8193:1;8190;8183:12;8224:710;8320:5;8345:81;8361:64;8418:6;8361:64;:::i;:::-;8345:81;:::i;:::-;8336:90;;8446:5;8475:6;8468:5;8461:21;8509:4;8502:5;8498:16;8491:23;;8562:4;8554:6;8550:17;8542:6;8538:30;8591:3;8583:6;8580:15;8577:122;;;8610:79;;:::i;:::-;8577:122;8725:6;8708:220;8742:6;8737:3;8734:15;8708:220;;;8817:3;8846:37;8879:3;8867:10;8846:37;:::i;:::-;8841:3;8834:50;8913:4;8908:3;8904:14;8897:21;;8784:144;8768:4;8763:3;8759:14;8752:21;;8708:220;;;8712:21;8326:608;;8224:710;;;;;:::o;8957:370::-;9028:5;9077:3;9070:4;9062:6;9058:17;9054:27;9044:122;;9085:79;;:::i;:::-;9044:122;9202:6;9189:20;9227:94;9317:3;9309:6;9302:4;9294:6;9290:17;9227:94;:::i;:::-;9218:103;;9034:293;8957:370;;;;:::o;9333:116::-;9403:21;9418:5;9403:21;:::i;:::-;9396:5;9393:32;9383:60;;9439:1;9436;9429:12;9383:60;9333:116;:::o;9455:133::-;9498:5;9536:6;9523:20;9514:29;;9552:30;9576:5;9552:30;:::i;:::-;9455:133;;;;:::o;9594:678::-;9684:6;9692;9741:2;9729:9;9720:7;9716:23;9712:32;9709:119;;;9747:79;;:::i;:::-;9709:119;9895:1;9884:9;9880:17;9867:31;9925:18;9917:6;9914:30;9911:117;;;9947:79;;:::i;:::-;9911:117;10052:78;10122:7;10113:6;10102:9;10098:22;10052:78;:::i;:::-;10042:88;;9838:302;10179:2;10205:50;10247:7;10238:6;10227:9;10223:22;10205:50;:::i;:::-;10195:60;;10150:115;9594:678;;;;;:::o;10278:474::-;10346:6;10354;10403:2;10391:9;10382:7;10378:23;10374:32;10371:119;;;10409:79;;:::i;:::-;10371:119;10529:1;10554:53;10599:7;10590:6;10579:9;10575:22;10554:53;:::i;:::-;10544:63;;10500:117;10656:2;10682:53;10727:7;10718:6;10707:9;10703:22;10682:53;:::i;:::-;10672:63;;10627:118;10278:474;;;;;:::o;10758:::-;10826:6;10834;10883:2;10871:9;10862:7;10858:23;10854:32;10851:119;;;10889:79;;:::i;:::-;10851:119;11009:1;11034:53;11079:7;11070:6;11059:9;11055:22;11034:53;:::i;:::-;11024:63;;10980:117;11136:2;11162:53;11207:7;11198:6;11187:9;11183:22;11162:53;:::i;:::-;11152:63;;11107:118;10758:474;;;;;:::o;11238:468::-;11303:6;11311;11360:2;11348:9;11339:7;11335:23;11331:32;11328:119;;;11366:79;;:::i;:::-;11328:119;11486:1;11511:53;11556:7;11547:6;11536:9;11532:22;11511:53;:::i;:::-;11501:63;;11457:117;11613:2;11639:50;11681:7;11672:6;11661:9;11657:22;11639:50;:::i;:::-;11629:60;;11584:115;11238:468;;;;;:::o;11712:180::-;11852:32;11848:1;11840:6;11836:14;11829:56;11712:180;:::o;11898:366::-;12040:3;12061:67;12125:2;12120:3;12061:67;:::i;:::-;12054:74;;12137:93;12226:3;12137:93;:::i;:::-;12255:2;12250:3;12246:12;12239:19;;11898:366;;;:::o;12270:419::-;12436:4;12474:2;12463:9;12459:18;12451:26;;12523:9;12517:4;12513:20;12509:1;12498:9;12494:17;12487:47;12551:131;12677:4;12551:131;:::i;:::-;12543:139;;12270:419;;;:::o;12695:182::-;12835:34;12831:1;12823:6;12819:14;12812:58;12695:182;:::o;12883:366::-;13025:3;13046:67;13110:2;13105:3;13046:67;:::i;:::-;13039:74;;13122:93;13211:3;13122:93;:::i;:::-;13240:2;13235:3;13231:12;13224:19;;12883:366;;;:::o;13255:419::-;13421:4;13459:2;13448:9;13444:18;13436:26;;13508:9;13502:4;13498:20;13494:1;13483:9;13479:17;13472:47;13536:131;13662:4;13536:131;:::i;:::-;13528:139;;13255:419;;;:::o;13680:180::-;13728:77;13725:1;13718:88;13825:4;13822:1;13815:15;13849:4;13846:1;13839:15;13866:180;13914:77;13911:1;13904:88;14011:4;14008:1;14001:15;14035:4;14032:1;14025:15;14052:233;14091:3;14114:24;14132:5;14114:24;:::i;:::-;14105:33;;14160:66;14153:5;14150:77;14147:103;;14230:18;;:::i;:::-;14147:103;14277:1;14270:5;14266:13;14259:20;;14052:233;;;:::o;14291:177::-;14431:29;14427:1;14419:6;14415:14;14408:53;14291:177;:::o;14474:366::-;14616:3;14637:67;14701:2;14696:3;14637:67;:::i;:::-;14630:74;;14713:93;14802:3;14713:93;:::i;:::-;14831:2;14826:3;14822:12;14815:19;;14474:366;;;:::o;14846:419::-;15012:4;15050:2;15039:9;15035:18;15027:26;;15099:9;15093:4;15089:20;15085:1;15074:9;15070:17;15063:47;15127:131;15253:4;15127:131;:::i;:::-;15119:139;;14846:419;;;:::o;15271:143::-;15328:5;15359:6;15353:13;15344:22;;15375:33;15402:5;15375:33;:::i;:::-;15271:143;;;;:::o;15420:351::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:64;15746:7;15737:6;15726:9;15722:22;15690:64;:::i;:::-;15680:74;;15636:128;15420:351;;;;:::o;15777:410::-;15817:7;15840:20;15858:1;15840:20;:::i;:::-;15835:25;;15874:20;15892:1;15874:20;:::i;:::-;15869:25;;15929:1;15926;15922:9;15951:30;15969:11;15951:30;:::i;:::-;15940:41;;16130:1;16121:7;16117:15;16114:1;16111:22;16091:1;16084:9;16064:83;16041:139;;16160:18;;:::i;:::-;16041:139;15825:362;15777:410;;;;:::o;16193:180::-;16241:77;16238:1;16231:88;16338:4;16335:1;16328:15;16362:4;16359:1;16352:15;16379:185;16419:1;16436:20;16454:1;16436:20;:::i;:::-;16431:25;;16470:20;16488:1;16470:20;:::i;:::-;16465:25;;16509:1;16499:35;;16514:18;;:::i;:::-;16499:35;16556:1;16553;16549:9;16544:14;;16379:185;;;;:::o;16570:134::-;16628:9;16661:37;16692:5;16661:37;:::i;:::-;16648:50;;16570:134;;;:::o;16710:147::-;16805:45;16844:5;16805:45;:::i;:::-;16800:3;16793:58;16710:147;;:::o;16863:348::-;16992:4;17030:2;17019:9;17015:18;17007:26;;17043:79;17119:1;17108:9;17104:17;17095:6;17043:79;:::i;:::-;17132:72;17200:2;17189:9;17185:18;17176:6;17132:72;:::i;:::-;16863:348;;;;;:::o;17217:137::-;17271:5;17302:6;17296:13;17287:22;;17318:30;17342:5;17318:30;:::i;:::-;17217:137;;;;:::o;17360:345::-;17427:6;17476:2;17464:9;17455:7;17451:23;17447:32;17444:119;;;17482:79;;:::i;:::-;17444:119;17602:1;17627:61;17680:7;17671:6;17660:9;17656:22;17627:61;:::i;:::-;17617:71;;17573:125;17360:345;;;;:::o;17711:167::-;17851:19;17847:1;17839:6;17835:14;17828:43;17711:167;:::o;17884:366::-;18026:3;18047:67;18111:2;18106:3;18047:67;:::i;:::-;18040:74;;18123:93;18212:3;18123:93;:::i;:::-;18241:2;18236:3;18232:12;18225:19;;17884:366;;;:::o;18256:419::-;18422:4;18460:2;18449:9;18445:18;18437:26;;18509:9;18503:4;18499:20;18495:1;18484:9;18480:17;18473:47;18537:131;18663:4;18537:131;:::i;:::-;18529:139;;18256:419;;;:::o;18681:167::-;18821:19;18817:1;18809:6;18805:14;18798:43;18681:167;:::o;18854:366::-;18996:3;19017:67;19081:2;19076:3;19017:67;:::i;:::-;19010:74;;19093:93;19182:3;19093:93;:::i;:::-;19211:2;19206:3;19202:12;19195:19;;18854:366;;;:::o;19226:419::-;19392:4;19430:2;19419:9;19415:18;19407:26;;19479:9;19473:4;19469:20;19465:1;19454:9;19450:17;19443:47;19507:131;19633:4;19507:131;:::i;:::-;19499:139;;19226:419;;;:::o;19651:191::-;19691:3;19710:20;19728:1;19710:20;:::i;:::-;19705:25;;19744:20;19762:1;19744:20;:::i;:::-;19739:25;;19787:1;19784;19780:9;19773:16;;19808:3;19805:1;19802:10;19799:36;;;19815:18;;:::i;:::-;19799:36;19651:191;;;;:::o;19848:168::-;19988:20;19984:1;19976:6;19972:14;19965:44;19848:168;:::o;20022:366::-;20164:3;20185:67;20249:2;20244:3;20185:67;:::i;:::-;20178:74;;20261:93;20350:3;20261:93;:::i;:::-;20379:2;20374:3;20370:12;20363:19;;20022:366;;;:::o;20394:419::-;20560:4;20598:2;20587:9;20583:18;20575:26;;20647:9;20641:4;20637:20;20633:1;20622:9;20618:17;20611:47;20675:131;20801:4;20675:131;:::i;:::-;20667:139;;20394:419;;;:::o;20819:173::-;20959:25;20955:1;20947:6;20943:14;20936:49;20819:173;:::o;20998:366::-;21140:3;21161:67;21225:2;21220:3;21161:67;:::i;:::-;21154:74;;21237:93;21326:3;21237:93;:::i;:::-;21355:2;21350:3;21346:12;21339:19;;20998:366;;;:::o;21370:419::-;21536:4;21574:2;21563:9;21559:18;21551:26;;21623:9;21617:4;21613:20;21609:1;21598:9;21594:17;21587:47;21651:131;21777:4;21651:131;:::i;:::-;21643:139;;21370:419;;;:::o;21795:171::-;21935:23;21931:1;21923:6;21919:14;21912:47;21795:171;:::o;21972:366::-;22114:3;22135:67;22199:2;22194:3;22135:67;:::i;:::-;22128:74;;22211:93;22300:3;22211:93;:::i;:::-;22329:2;22324:3;22320:12;22313:19;;21972:366;;;:::o;22344:419::-;22510:4;22548:2;22537:9;22533:18;22525:26;;22597:9;22591:4;22587:20;22583:1;22572:9;22568:17;22561:47;22625:131;22751:4;22625:131;:::i;:::-;22617:139;;22344:419;;;:::o;22769:224::-;22909:34;22905:1;22897:6;22893:14;22886:58;22978:7;22973:2;22965:6;22961:15;22954:32;22769:224;:::o;22999:366::-;23141:3;23162:67;23226:2;23221:3;23162:67;:::i;:::-;23155:74;;23238:93;23327:3;23238:93;:::i;:::-;23356:2;23351:3;23347:12;23340:19;;22999:366;;;:::o;23371:419::-;23537:4;23575:2;23564:9;23560:18;23552:26;;23624:9;23618:4;23614:20;23610:1;23599:9;23595:17;23588:47;23652:131;23778:4;23652:131;:::i;:::-;23644:139;;23371:419;;;:::o;23796:163::-;23936:15;23932:1;23924:6;23920:14;23913:39;23796:163;:::o;23965:366::-;24107:3;24128:67;24192:2;24187:3;24128:67;:::i;:::-;24121:74;;24204:93;24293:3;24204:93;:::i;:::-;24322:2;24317:3;24313:12;24306:19;;23965:366;;;:::o;24337:419::-;24503:4;24541:2;24530:9;24526:18;24518:26;;24590:9;24584:4;24580:20;24576:1;24565:9;24561:17;24554:47;24618:131;24744:4;24618:131;:::i;:::-;24610:139;;24337:419;;;:::o;24762:167::-;24799:3;24822:22;24838:5;24822:22;:::i;:::-;24813:31;;24866:4;24859:5;24856:15;24853:41;;24874:18;;:::i;:::-;24853:41;24921:1;24914:5;24910:13;24903:20;;24762:167;;;:::o;24935:194::-;24975:4;24995:20;25013:1;24995:20;:::i;:::-;24990:25;;25029:20;25047:1;25029:20;:::i;:::-;25024:25;;25073:1;25070;25066:9;25058:17;;25097:1;25091:4;25088:11;25085:37;;;25102:18;;:::i;:::-;25085:37;24935:194;;;;:::o;25135:442::-;25284:4;25322:2;25311:9;25307:18;25299:26;;25335:71;25403:1;25392:9;25388:17;25379:6;25335:71;:::i;:::-;25416:72;25484:2;25473:9;25469:18;25460:6;25416:72;:::i;:::-;25498;25566:2;25555:9;25551:18;25542:6;25498:72;:::i;:::-;25135:442;;;;;;:::o;25583:143::-;25640:5;25671:6;25665:13;25656:22;;25687:33;25714:5;25687:33;:::i;:::-;25583:143;;;;:::o;25732:351::-;25802:6;25851:2;25839:9;25830:7;25826:23;25822:32;25819:119;;;25857:79;;:::i;:::-;25819:119;25977:1;26002:64;26058:7;26049:6;26038:9;26034:22;26002:64;:::i;:::-;25992:74;;25948:128;25732:351;;;;:::o;26089:85::-;26134:7;26163:5;26152:16;;26089:85;;;:::o;26180:158::-;26238:9;26271:61;26289:42;26298:32;26324:5;26298:32;:::i;:::-;26289:42;:::i;:::-;26271:61;:::i;:::-;26258:74;;26180:158;;;:::o;26344:147::-;26439:45;26478:5;26439:45;:::i;:::-;26434:3;26427:58;26344:147;;:::o;26497:114::-;26564:6;26598:5;26592:12;26582:22;;26497:114;;;:::o;26617:184::-;26716:11;26750:6;26745:3;26738:19;26790:4;26785:3;26781:14;26766:29;;26617:184;;;;:::o;26807:132::-;26874:4;26897:3;26889:11;;26927:4;26922:3;26918:14;26910:22;;26807:132;;;:::o;26945:108::-;27022:24;27040:5;27022:24;:::i;:::-;27017:3;27010:37;26945:108;;:::o;27059:179::-;27128:10;27149:46;27191:3;27183:6;27149:46;:::i;:::-;27227:4;27222:3;27218:14;27204:28;;27059:179;;;;:::o;27244:113::-;27314:4;27346;27341:3;27337:14;27329:22;;27244:113;;;:::o;27393:732::-;27512:3;27541:54;27589:5;27541:54;:::i;:::-;27611:86;27690:6;27685:3;27611:86;:::i;:::-;27604:93;;27721:56;27771:5;27721:56;:::i;:::-;27800:7;27831:1;27816:284;27841:6;27838:1;27835:13;27816:284;;;27917:6;27911:13;27944:63;28003:3;27988:13;27944:63;:::i;:::-;27937:70;;28030:60;28083:6;28030:60;:::i;:::-;28020:70;;27876:224;27863:1;27860;27856:9;27851:14;;27816:284;;;27820:14;28116:3;28109:10;;27517:608;;;27393:732;;;;:::o;28131:831::-;28394:4;28432:3;28421:9;28417:19;28409:27;;28446:71;28514:1;28503:9;28499:17;28490:6;28446:71;:::i;:::-;28527:80;28603:2;28592:9;28588:18;28579:6;28527:80;:::i;:::-;28654:9;28648:4;28644:20;28639:2;28628:9;28624:18;28617:48;28682:108;28785:4;28776:6;28682:108;:::i;:::-;28674:116;;28800:72;28868:2;28857:9;28853:18;28844:6;28800:72;:::i;:::-;28882:73;28950:3;28939:9;28935:19;28926:6;28882:73;:::i;:::-;28131:831;;;;;;;;:::o;28968:823::-;29225:4;29263:3;29252:9;29248:19;29240:27;;29277:71;29345:1;29334:9;29330:17;29321:6;29277:71;:::i;:::-;29358:72;29426:2;29415:9;29411:18;29402:6;29358:72;:::i;:::-;29440:80;29516:2;29505:9;29501:18;29492:6;29440:80;:::i;:::-;29530;29606:2;29595:9;29591:18;29582:6;29530:80;:::i;:::-;29620:81;29696:3;29685:9;29681:19;29672:6;29620:81;:::i;:::-;29711:73;29779:3;29768:9;29764:19;29755:6;29711:73;:::i;:::-;28968:823;;;;;;;;;:::o;29797:663::-;29885:6;29893;29901;29950:2;29938:9;29929:7;29925:23;29921:32;29918:119;;;29956:79;;:::i;:::-;29918:119;30076:1;30101:64;30157:7;30148:6;30137:9;30133:22;30101:64;:::i;:::-;30091:74;;30047:128;30214:2;30240:64;30296:7;30287:6;30276:9;30272:22;30240:64;:::i;:::-;30230:74;;30185:129;30353:2;30379:64;30435:7;30426:6;30415:9;30411:22;30379:64;:::i;:::-;30369:74;;30324:129;29797:663;;;;;:::o

Swarm Source

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