ETH Price: $3,118.55 (+1.64%)
Gas: 13 Gwei

Token

CRIP (CRIP)
 

Overview

Max Total Supply

59,809,700.003967853905235272 CRIP

Holders

354

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
58,419.035098320584102827 CRIP

Value
$0.00
0x06e6dfb6df07566b8ebb74e87fe9eea4bed474e6
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:
CRIP

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-22
*/

// 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 CRIP 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(0x8662DbFf781DfE5424B2D4d6b692De5c97D5D8FE); 
    address payable public Wallet_Dev = payable(0xce523C516861d8734CAD87aa6d51e192efB1088F);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =60000000 * 10**_decimals;
    string private constant _name = "CRIP"; 
    string private constant _symbol = unicode"CRIP"; 
    uint8 private txCount = 0;
    uint8 private swapTrigger = 3; 
    uint256 public _Tax_On_Buy = 1;
    uint256 public _Tax_On_Sell = 1;
    uint256 public Percent_Marketing = 85;
    uint256 public Percent_Dev = 5;
    uint256 public Percent_Burn = 5;
    uint256 public Percent_AutoLP = 5; 
    uint256 public _maxWalletToken = _tTotal * 1 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;
    uint256 public _maxTxAmount = _tTotal * 1 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public paused = false;

    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    constructor () {
        _owner =0x8662DbFf781DfE5424B2D4d6b692De5c97D5D8FE;
        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"}]

6080604052738662dbff781dfe5424b2d4d6b692de5c97d5d8fe60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ce523c516861d8734cad87aa6d51e192efb1088f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000bc919062000888565b6303938700620000cd9190620008d8565b6007555f60085f6101000a81548160ff021916908360ff1602179055506003600860016101000a81548160ff021916908360ff16021790555060016009556001600a556055600b556005600c556005600d556005600e5560646001600754620001379190620008d8565b6200014391906200094f565b600f55600f54601055606460016007546200015f9190620008d8565b6200016b91906200094f565b6011556011546012556001601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620001b5575f80fd5b50738662dbff781dfe5424b2d4d6b692de5c97d5d8fe5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360075460025f62000298620006cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000337573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035d9190620009eb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003e99190620009eb565b6040518363ffffffff1660e01b81526004016200040892919062000a2c565b6020604051808303815f875af115801562000425573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200044b9190620009eb565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f620004df620006cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000660620006cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620006c0919062000a68565b60405180910390a35062000a83565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200078057808604811115620007585762000757620006f6565b5b6001851615620007685780820291505b8081029050620007788562000723565b945062000738565b94509492505050565b5f826200079a57600190506200086c565b81620007a9575f90506200086c565b8160018114620007c25760028114620007cd5762000803565b60019150506200086c565b60ff841115620007e257620007e1620006f6565b5b8360020a915084821115620007fc57620007fb620006f6565b5b506200086c565b5060208310610133831016604e8410600b84101617156200083d5782820a905083811115620008375762000836620006f6565b5b6200086c565b6200084c84848460016200072f565b92509050818404811115620008665762000865620006f6565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008948262000873565b9150620008a1836200087c565b9250620008d07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000789565b905092915050565b5f620008e48262000873565b9150620008f18362000873565b9250828202620009018162000873565b915082820484148315176200091b576200091a620006f6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200095b8262000873565b9150620009688362000873565b9250826200097b576200097a62000922565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009b5826200098a565b9050919050565b620009c781620009a9565b8114620009d2575f80fd5b50565b5f81519050620009e581620009bc565b92915050565b5f6020828403121562000a035762000a0262000986565b5b5f62000a1284828501620009d5565b91505092915050565b62000a2681620009a9565b82525050565b5f60408201905062000a415f83018562000a1b565b62000a50602083018462000a1b565b9392505050565b62000a628162000873565b82525050565b5f60208201905062000a7d5f83018462000a57565b92915050565b61396b8062000a915f395ff3fe608060405260043610610212575f3560e01c8063768dc71011610117578063b1cb15821161009f578063c647b20e1161006e578063c647b20e14610799578063c6618d60146107c1578063dafd18e9146107eb578063dd62ed3e14610827578063e11655451461086357610219565b8063b1cb1582146106f3578063b31470a41461071d578063b43665e214610745578063bbb9f61f1461076f57610219565b80638456cb59116100e65780638456cb59146106115780638da5cb5b1461062757806395d89b4114610651578063a457c2d71461067b578063a9059cbb146106b757610219565b8063768dc7101461055757806378109e54146105935780637d1db4a5146105bd578063805c0e0f146105e757610219565b80633bbac5791161019a5780635c975abb116101695780635c975abb1461048757806360317625146104b157806361c9a0dc146104db57806370a0823114610505578063715018a61461054157610219565b80633bbac579146103cd5780633f70a4951461040957806349bd5a5e146104335780634a74bb021461045d57610219565b806321dbd9eb116101e157806321dbd9eb146102d7578063220f66961461030157806323b872dd1461032b578063313ce56714610367578063395093511461039157610219565b806306fdde031461021d578063095ea7b3146102475780631694505e1461028357806318160ddd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b5061023161088b565b60405161023e9190612a5c565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190612b1a565b6108c8565b60405161027a9190612b72565b60405180910390f35b34801561028e575f80fd5b506102976108e5565b6040516102a49190612be6565b60405180910390f35b3480156102b8575f80fd5b506102c161090a565b6040516102ce9190612c0e565b60405180910390f35b3480156102e2575f80fd5b506102eb610913565b6040516102f89190612c0e565b60405180910390f35b34801561030c575f80fd5b50610315610919565b6040516103229190612b72565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190612c27565b61092a565b60405161035e9190612b72565b60405180910390f35b348015610372575f80fd5b5061037b6109fe565b6040516103889190612c92565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190612b1a565b610a06565b6040516103c49190612b72565b60405180910390f35b3480156103d8575f80fd5b506103f360048036038101906103ee9190612cab565b610ab4565b6040516104009190612b72565b60405180910390f35b348015610414575f80fd5b5061041d610b06565b60405161042a9190612c0e565b60405180910390f35b34801561043e575f80fd5b50610447610b0c565b6040516104549190612ce5565b60405180910390f35b348015610468575f80fd5b50610471610b31565b60405161047e9190612b72565b60405180910390f35b348015610492575f80fd5b5061049b610b44565b6040516104a89190612b72565b60405180910390f35b3480156104bc575f80fd5b506104c5610b57565b6040516104d29190612c0e565b60405180910390f35b3480156104e6575f80fd5b506104ef610b5d565b6040516104fc9190612c0e565b60405180910390f35b348015610510575f80fd5b5061052b60048036038101906105269190612cab565b610b63565b6040516105389190612c0e565b60405180910390f35b34801561054c575f80fd5b50610555610ba9565b005b348015610562575f80fd5b5061057d60048036038101906105789190612cab565b610c63565b60405161058a9190612b72565b60405180910390f35b34801561059e575f80fd5b506105a7610c80565b6040516105b49190612c0e565b60405180910390f35b3480156105c8575f80fd5b506105d1610c86565b6040516105de9190612c0e565b60405180910390f35b3480156105f2575f80fd5b506105fb610c8c565b6040516106089190612d1e565b60405180910390f35b34801561061c575f80fd5b50610625610c92565b005b348015610632575f80fd5b5061063b610d24565b6040516106489190612ce5565b60405180910390f35b34801561065c575f80fd5b50610665610d4b565b6040516106729190612a5c565b60405180910390f35b348015610686575f80fd5b506106a1600480360381019061069c9190612b1a565b610d88565b6040516106ae9190612b72565b60405180910390f35b3480156106c2575f80fd5b506106dd60048036038101906106d89190612b1a565b610e50565b6040516106ea9190612b72565b60405180910390f35b3480156106fe575f80fd5b50610707610e6d565b6040516107149190612c0e565b60405180910390f35b348015610728575f80fd5b50610743600480360381019061073e9190612ea1565b610e73565b005b348015610750575f80fd5b50610759610f80565b6040516107669190612d1e565b60405180910390f35b34801561077a575f80fd5b50610783610fa5565b6040516107909190612d1e565b60405180910390f35b3480156107a4575f80fd5b506107bf60048036038101906107ba9190612efb565b610fca565b005b3480156107cc575f80fd5b506107d5611058565b6040516107e29190612c0e565b60405180910390f35b3480156107f6575f80fd5b50610811600480360381019061080c9190612b1a565b61105e565b60405161081e9190612b72565b60405180910390f35b348015610832575f80fd5b5061084d60048036038101906108489190612f39565b611209565b60405161085a9190612c0e565b60405180910390f35b34801561086e575f80fd5b5061088960048036038101906108849190612f77565b61128b565b005b60606040518060400160405280600481526020017f4352495000000000000000000000000000000000000000000000000000000000815250905090565b5f6108db6108d46113ee565b84846113f5565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600754905090565b600d5481565b60148054906101000a900460ff1681565b5f610936848484611583565b6109f3846109426113ee565b6109ee856040518060600160405280602881526020016138e96028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109a56113ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bb59092919063ffffffff16565b6113f5565b600190509392505050565b5f6012905090565b5f610aaa610a126113ee565b84610aa58560035f610a226113ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c0990919063ffffffff16565b6113f5565b6001905092915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60095481565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b601460169054906101000a900460ff1681565b600b5481565b600e5481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6004602052805f5260405f205f915054906101000a900460ff1681565b600f5481565b60115481565b61dead81565b610c9a610d24565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90612fff565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4352495000000000000000000000000000000000000000000000000000000000815250905090565b5f610e46610d946113ee565b84610e41856040518060600160405280602581526020016139116025913960035f610dbd6113ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bb59092919063ffffffff16565b6113f5565b6001905092915050565b5f610e63610e5c6113ee565b8484611583565b6001905092915050565b600a5481565b610e7b6113ee565b73ffffffffffffffffffffffffffffffffffffffff16610e99610d24565b73ffffffffffffffffffffffffffffffffffffffff1614610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690613067565b60405180910390fd5b5f5b8251811015610f7b578160015f858481518110610f1157610f10613085565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610f73906130df565b915050610ef1565b505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd26113ee565b73ffffffffffffffffffffffffffffffffffffffff16610ff0610d24565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d90613067565b60405180910390fd5b8160098190555080600a819055505050565b600c5481565b5f3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490613170565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111079190612ce5565b602060405180830381865afa158015611122573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114691906131a2565b90505f6064848361115791906131cd565b611161919061323b565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111bf92919061328b565b6020604051808303815f875af11580156111db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ff91906132c6565b9250505092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112936113ee565b73ffffffffffffffffffffffffffffffffffffffff166112b1610d24565b73ffffffffffffffffffffffffffffffffffffffff1614611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90613067565b60405180910390fd5b80151560015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d9061333b565b60405180910390fd5b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561145d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61149c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611493906133a3565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115769190612c0e565b60405180910390a3505050565b61158b610d24565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156115f4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561162c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611685575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116c45750611694610d24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611727575f6116d383610b63565b9050600f5482826116e491906133c1565b1115611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c9061343e565b60405180910390fd5b505b61172f610d24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117a7576011548111156117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d906134a6565b60405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61184e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118459061350e565b60405180910390fd5b5f8111611890576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118879061359c565b60405180910390fd5b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561192e575060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61196d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196490613604565b60405180910390fd5b600860019054906101000a900460ff1660ff1660085f9054906101000a900460ff1660ff16101580156119ab575060148054906101000a900460ff16155b8015611a04575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1c5750601460159054906101000a900460ff165b15611a62575f611a2b30610b63565b9050601154811115611a3d5760115490505b5f60085f6101000a81548160ff021916908360ff160217905550611a6081611c1e565b505b5f600190505f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b03575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611b10575f9150611ba1565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b6957600190505b60085f81819054906101000a900460ff1680929190611b8790613622565b91906101000a81548160ff021916908360ff160217905550505b611bae8585858585611fa2565b5050505050565b5f838311158290611bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf39190612a5c565b60405180910390fd5b5082840390509392505050565b5f8183611c1691906133c1565b905092915050565b60016014806101000a81548160ff0219169083151502179055505f6064600d5483611c4991906131cd565b611c53919061323b565b905080600754611c63919061364a565b6007819055508060025f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cb491906133c1565b60025f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d40919061364a565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6064600b5484611d9291906131cd565b611d9c919061323b565b90505f6064600c5485611daf91906131cd565b611db9919061323b565b90505f60c8600e5486611dcc91906131cd565b611dd6919061323b565b90505f479050611dfb838584611dec91906133c1565b611df691906133c1565b612679565b5f8147611e08919061364a565b90505f600c54600b54600e54611e1e91906133c1565b611e2891906133c1565b6064600b54611e3791906131cd565b611e41919061323b565b90505f60648284611e5291906131cd565b611e5c919061323b565b90505f600c54600b54600e54611e7291906133c1565b611e7c91906133c1565b6064600c54611e8b91906131cd565b611e95919061323b565b90505f60648286611ea691906131cd565b611eb0919061323b565b9050611ed287828588611ec3919061364a565b611ecd919061364a565b6128af565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611f01919061364a565b611f0b919061364a565b89604051611f1b9392919061367d565b60405180910390a1611f4e60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461298a565b479450611f7c60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168661298a565b505050505050505050505f6014806101000a81548160ff02191690831515021790555050565b8161216f578260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff0919061364a565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207a91906133c1565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121189190612c0e565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361216a5782600754612163919061364a565b6007819055505b612672565b80156123f5575f60646009548561218691906131cd565b612190919061323b565b90505f818561219f919061364a565b90508460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ea919061364a565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227491906133c1565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe91906133c1565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161239c9190612c0e565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036123ee57806007546123e7919061364a565b6007819055505b5050612671565b5f6064600a548561240691906131cd565b612410919061323b565b90505f818561241f919061364a565b90508460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461246a919061364a565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124f491906133c1565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257e91906133c1565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161261c9190612c0e565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361266e5780600754612667919061364a565b6007819055505b50505b5b5050505050565b5f600267ffffffffffffffff81111561269557612694612d3b565b5b6040519080825280602002602001820160405280156126c35781602001602082028036833780820191505090505b50905030815f815181106126da576126d9613085565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561277e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127a291906136c6565b816001815181106127b6576127b5613085565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061281c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161287e9594939291906137e1565b5f604051808303815f87803b158015612895575f80fd5b505af11580156128a7573d5f803e3d5ffd5b505050505050565b6128db3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b815260040161294296959493929190613839565b60606040518083038185885af115801561295e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129839190613898565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156129cd573d5f803e3d5ffd5b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612a095780820151818401526020810190506129ee565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a2e826129d2565b612a3881856129dc565b9350612a488185602086016129ec565b612a5181612a14565b840191505092915050565b5f6020820190508181035f830152612a748184612a24565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ab682612a8d565b9050919050565b612ac681612aac565b8114612ad0575f80fd5b50565b5f81359050612ae181612abd565b92915050565b5f819050919050565b612af981612ae7565b8114612b03575f80fd5b50565b5f81359050612b1481612af0565b92915050565b5f8060408385031215612b3057612b2f612a85565b5b5f612b3d85828601612ad3565b9250506020612b4e85828601612b06565b9150509250929050565b5f8115159050919050565b612b6c81612b58565b82525050565b5f602082019050612b855f830184612b63565b92915050565b5f819050919050565b5f612bae612ba9612ba484612a8d565b612b8b565b612a8d565b9050919050565b5f612bbf82612b94565b9050919050565b5f612bd082612bb5565b9050919050565b612be081612bc6565b82525050565b5f602082019050612bf95f830184612bd7565b92915050565b612c0881612ae7565b82525050565b5f602082019050612c215f830184612bff565b92915050565b5f805f60608486031215612c3e57612c3d612a85565b5b5f612c4b86828701612ad3565b9350506020612c5c86828701612ad3565b9250506040612c6d86828701612b06565b9150509250925092565b5f60ff82169050919050565b612c8c81612c77565b82525050565b5f602082019050612ca55f830184612c83565b92915050565b5f60208284031215612cc057612cbf612a85565b5b5f612ccd84828501612ad3565b91505092915050565b612cdf81612aac565b82525050565b5f602082019050612cf85f830184612cd6565b92915050565b5f612d0882612a8d565b9050919050565b612d1881612cfe565b82525050565b5f602082019050612d315f830184612d0f565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d7182612a14565b810181811067ffffffffffffffff82111715612d9057612d8f612d3b565b5b80604052505050565b5f612da2612a7c565b9050612dae8282612d68565b919050565b5f67ffffffffffffffff821115612dcd57612dcc612d3b565b5b602082029050602081019050919050565b5f80fd5b5f612df4612def84612db3565b612d99565b90508083825260208201905060208402830185811115612e1757612e16612dde565b5b835b81811015612e405780612e2c8882612ad3565b845260208401935050602081019050612e19565b5050509392505050565b5f82601f830112612e5e57612e5d612d37565b5b8135612e6e848260208601612de2565b91505092915050565b612e8081612b58565b8114612e8a575f80fd5b50565b5f81359050612e9b81612e77565b92915050565b5f8060408385031215612eb757612eb6612a85565b5b5f83013567ffffffffffffffff811115612ed457612ed3612a89565b5b612ee085828601612e4a565b9250506020612ef185828601612e8d565b9150509250929050565b5f8060408385031215612f1157612f10612a85565b5b5f612f1e85828601612b06565b9250506020612f2f85828601612b06565b9150509250929050565b5f8060408385031215612f4f57612f4e612a85565b5b5f612f5c85828601612ad3565b9250506020612f6d85828601612ad3565b9150509250929050565b5f8060408385031215612f8d57612f8c612a85565b5b5f612f9a85828601612ad3565b9250506020612fab85828601612e8d565b9150509250929050565b7f5061757361626c653a206f6e6c79206f776e65722063616e20706175736500005f82015250565b5f612fe9601e836129dc565b9150612ff482612fb5565b602082019050919050565b5f6020820190508181035f83015261301681612fdd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130516020836129dc565b915061305c8261301d565b602082019050919050565b5f6020820190508181035f83015261307e81613045565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6130e982612ae7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361311b5761311a6130b2565b5b600182019050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e00000000005f82015250565b5f61315a601b836129dc565b915061316582613126565b602082019050919050565b5f6020820190508181035f8301526131878161314e565b9050919050565b5f8151905061319c81612af0565b92915050565b5f602082840312156131b7576131b6612a85565b5b5f6131c48482850161318e565b91505092915050565b5f6131d782612ae7565b91506131e283612ae7565b92508282026131f081612ae7565b91508282048414831517613207576132066130b2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61324582612ae7565b915061325083612ae7565b9250826132605761325f61320e565b5b828204905092915050565b5f61327582612bb5565b9050919050565b6132858161326b565b82525050565b5f60408201905061329e5f83018561327c565b6132ab6020830184612bff565b9392505050565b5f815190506132c081612e77565b92915050565b5f602082840312156132db576132da612a85565b5b5f6132e8848285016132b2565b91505092915050565b7f56616c756520616c7265616479207365740000000000000000000000000000005f82015250565b5f6133256011836129dc565b9150613330826132f1565b602082019050919050565b5f6020820190508181035f83015261335281613319565b9050919050565b7f4552523a207a65726f20616464726573730000000000000000000000000000005f82015250565b5f61338d6011836129dc565b915061339882613359565b602082019050919050565b5f6020820190508181035f8301526133ba81613381565b9050919050565b5f6133cb82612ae7565b91506133d683612ae7565b92508282019050808211156133ee576133ed6130b2565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e00000000000000000000000000005f82015250565b5f6134286012836129dc565b9150613433826133f4565b602082019050919050565b5f6020820190508181035f8301526134558161341c565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e0000000000000000005f82015250565b5f6134906017836129dc565b915061349b8261345c565b602082019050919050565b5f6020820190508181035f8301526134bd81613484565b9050919050565b7f4552523a205573696e67203020616464726573732100000000000000000000005f82015250565b5f6134f86015836129dc565b9150613503826134c4565b602082019050919050565b5f6020820190508181035f830152613525816134ec565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e205f8201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b5f6135866025836129dc565b91506135918261352c565b604082019050919050565b5f6020820190508181035f8301526135b38161357a565b9050919050565b7f596f7520617265206120626f74000000000000000000000000000000000000005f82015250565b5f6135ee600d836129dc565b91506135f9826135ba565b602082019050919050565b5f6020820190508181035f83015261361b816135e2565b9050919050565b5f61362c82612c77565b915060ff820361363f5761363e6130b2565b5b600182019050919050565b5f61365482612ae7565b915061365f83612ae7565b9250828203905081811115613677576136766130b2565b5b92915050565b5f6060820190506136905f830186612bff565b61369d6020830185612bff565b6136aa6040830184612bff565b949350505050565b5f815190506136c081612abd565b92915050565b5f602082840312156136db576136da612a85565b5b5f6136e8848285016136b2565b91505092915050565b5f819050919050565b5f61371461370f61370a846136f1565b612b8b565b612ae7565b9050919050565b613724816136fa565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61375c81612aac565b82525050565b5f61376d8383613753565b60208301905092915050565b5f602082019050919050565b5f61378f8261372a565b6137998185613734565b93506137a483613744565b805f5b838110156137d45781516137bb8882613762565b97506137c683613779565b9250506001810190506137a7565b5085935050505092915050565b5f60a0820190506137f45f830188612bff565b613801602083018761371b565b81810360408301526138138186613785565b90506138226060830185612cd6565b61382f6080830184612bff565b9695505050505050565b5f60c08201905061384c5f830189612cd6565b6138596020830188612bff565b613866604083018761371b565b613873606083018661371b565b613880608083018561327c565b61388d60a0830184612bff565b979650505050505050565b5f805f606084860312156138af576138ae612a85565b5b5f6138bc8682870161318e565b93505060206138cd8682870161318e565b92505060406138de8682870161318e565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220960bfb36ef1eb21e24f7afa9c35f0da7b485d8b511fdf6abf6f5a5eb694ed1b564736f6c63430008150033

Deployed Bytecode

0x608060405260043610610212575f3560e01c8063768dc71011610117578063b1cb15821161009f578063c647b20e1161006e578063c647b20e14610799578063c6618d60146107c1578063dafd18e9146107eb578063dd62ed3e14610827578063e11655451461086357610219565b8063b1cb1582146106f3578063b31470a41461071d578063b43665e214610745578063bbb9f61f1461076f57610219565b80638456cb59116100e65780638456cb59146106115780638da5cb5b1461062757806395d89b4114610651578063a457c2d71461067b578063a9059cbb146106b757610219565b8063768dc7101461055757806378109e54146105935780637d1db4a5146105bd578063805c0e0f146105e757610219565b80633bbac5791161019a5780635c975abb116101695780635c975abb1461048757806360317625146104b157806361c9a0dc146104db57806370a0823114610505578063715018a61461054157610219565b80633bbac579146103cd5780633f70a4951461040957806349bd5a5e146104335780634a74bb021461045d57610219565b806321dbd9eb116101e157806321dbd9eb146102d7578063220f66961461030157806323b872dd1461032b578063313ce56714610367578063395093511461039157610219565b806306fdde031461021d578063095ea7b3146102475780631694505e1461028357806318160ddd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b5061023161088b565b60405161023e9190612a5c565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190612b1a565b6108c8565b60405161027a9190612b72565b60405180910390f35b34801561028e575f80fd5b506102976108e5565b6040516102a49190612be6565b60405180910390f35b3480156102b8575f80fd5b506102c161090a565b6040516102ce9190612c0e565b60405180910390f35b3480156102e2575f80fd5b506102eb610913565b6040516102f89190612c0e565b60405180910390f35b34801561030c575f80fd5b50610315610919565b6040516103229190612b72565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190612c27565b61092a565b60405161035e9190612b72565b60405180910390f35b348015610372575f80fd5b5061037b6109fe565b6040516103889190612c92565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190612b1a565b610a06565b6040516103c49190612b72565b60405180910390f35b3480156103d8575f80fd5b506103f360048036038101906103ee9190612cab565b610ab4565b6040516104009190612b72565b60405180910390f35b348015610414575f80fd5b5061041d610b06565b60405161042a9190612c0e565b60405180910390f35b34801561043e575f80fd5b50610447610b0c565b6040516104549190612ce5565b60405180910390f35b348015610468575f80fd5b50610471610b31565b60405161047e9190612b72565b60405180910390f35b348015610492575f80fd5b5061049b610b44565b6040516104a89190612b72565b60405180910390f35b3480156104bc575f80fd5b506104c5610b57565b6040516104d29190612c0e565b60405180910390f35b3480156104e6575f80fd5b506104ef610b5d565b6040516104fc9190612c0e565b60405180910390f35b348015610510575f80fd5b5061052b60048036038101906105269190612cab565b610b63565b6040516105389190612c0e565b60405180910390f35b34801561054c575f80fd5b50610555610ba9565b005b348015610562575f80fd5b5061057d60048036038101906105789190612cab565b610c63565b60405161058a9190612b72565b60405180910390f35b34801561059e575f80fd5b506105a7610c80565b6040516105b49190612c0e565b60405180910390f35b3480156105c8575f80fd5b506105d1610c86565b6040516105de9190612c0e565b60405180910390f35b3480156105f2575f80fd5b506105fb610c8c565b6040516106089190612d1e565b60405180910390f35b34801561061c575f80fd5b50610625610c92565b005b348015610632575f80fd5b5061063b610d24565b6040516106489190612ce5565b60405180910390f35b34801561065c575f80fd5b50610665610d4b565b6040516106729190612a5c565b60405180910390f35b348015610686575f80fd5b506106a1600480360381019061069c9190612b1a565b610d88565b6040516106ae9190612b72565b60405180910390f35b3480156106c2575f80fd5b506106dd60048036038101906106d89190612b1a565b610e50565b6040516106ea9190612b72565b60405180910390f35b3480156106fe575f80fd5b50610707610e6d565b6040516107149190612c0e565b60405180910390f35b348015610728575f80fd5b50610743600480360381019061073e9190612ea1565b610e73565b005b348015610750575f80fd5b50610759610f80565b6040516107669190612d1e565b60405180910390f35b34801561077a575f80fd5b50610783610fa5565b6040516107909190612d1e565b60405180910390f35b3480156107a4575f80fd5b506107bf60048036038101906107ba9190612efb565b610fca565b005b3480156107cc575f80fd5b506107d5611058565b6040516107e29190612c0e565b60405180910390f35b3480156107f6575f80fd5b50610811600480360381019061080c9190612b1a565b61105e565b60405161081e9190612b72565b60405180910390f35b348015610832575f80fd5b5061084d60048036038101906108489190612f39565b611209565b60405161085a9190612c0e565b60405180910390f35b34801561086e575f80fd5b5061088960048036038101906108849190612f77565b61128b565b005b60606040518060400160405280600481526020017f4352495000000000000000000000000000000000000000000000000000000000815250905090565b5f6108db6108d46113ee565b84846113f5565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600754905090565b600d5481565b60148054906101000a900460ff1681565b5f610936848484611583565b6109f3846109426113ee565b6109ee856040518060600160405280602881526020016138e96028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109a56113ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bb59092919063ffffffff16565b6113f5565b600190509392505050565b5f6012905090565b5f610aaa610a126113ee565b84610aa58560035f610a226113ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c0990919063ffffffff16565b6113f5565b6001905092915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60095481565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b601460169054906101000a900460ff1681565b600b5481565b600e5481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6004602052805f5260405f205f915054906101000a900460ff1681565b600f5481565b60115481565b61dead81565b610c9a610d24565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90612fff565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4352495000000000000000000000000000000000000000000000000000000000815250905090565b5f610e46610d946113ee565b84610e41856040518060600160405280602581526020016139116025913960035f610dbd6113ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bb59092919063ffffffff16565b6113f5565b6001905092915050565b5f610e63610e5c6113ee565b8484611583565b6001905092915050565b600a5481565b610e7b6113ee565b73ffffffffffffffffffffffffffffffffffffffff16610e99610d24565b73ffffffffffffffffffffffffffffffffffffffff1614610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690613067565b60405180910390fd5b5f5b8251811015610f7b578160015f858481518110610f1157610f10613085565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610f73906130df565b915050610ef1565b505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd26113ee565b73ffffffffffffffffffffffffffffffffffffffff16610ff0610d24565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d90613067565b60405180910390fd5b8160098190555080600a819055505050565b600c5481565b5f3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490613170565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111079190612ce5565b602060405180830381865afa158015611122573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114691906131a2565b90505f6064848361115791906131cd565b611161919061323b565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111bf92919061328b565b6020604051808303815f875af11580156111db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ff91906132c6565b9250505092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112936113ee565b73ffffffffffffffffffffffffffffffffffffffff166112b1610d24565b73ffffffffffffffffffffffffffffffffffffffff1614611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90613067565b60405180910390fd5b80151560015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d9061333b565b60405180910390fd5b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561145d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61149c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611493906133a3565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115769190612c0e565b60405180910390a3505050565b61158b610d24565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156115f4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561162c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611685575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116c45750611694610d24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611727575f6116d383610b63565b9050600f5482826116e491906133c1565b1115611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c9061343e565b60405180910390fd5b505b61172f610d24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117a7576011548111156117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d906134a6565b60405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61184e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118459061350e565b60405180910390fd5b5f8111611890576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118879061359c565b60405180910390fd5b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561192e575060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61196d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196490613604565b60405180910390fd5b600860019054906101000a900460ff1660ff1660085f9054906101000a900460ff1660ff16101580156119ab575060148054906101000a900460ff16155b8015611a04575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1c5750601460159054906101000a900460ff165b15611a62575f611a2b30610b63565b9050601154811115611a3d5760115490505b5f60085f6101000a81548160ff021916908360ff160217905550611a6081611c1e565b505b5f600190505f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b03575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611b10575f9150611ba1565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b6957600190505b60085f81819054906101000a900460ff1680929190611b8790613622565b91906101000a81548160ff021916908360ff160217905550505b611bae8585858585611fa2565b5050505050565b5f838311158290611bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf39190612a5c565b60405180910390fd5b5082840390509392505050565b5f8183611c1691906133c1565b905092915050565b60016014806101000a81548160ff0219169083151502179055505f6064600d5483611c4991906131cd565b611c53919061323b565b905080600754611c63919061364a565b6007819055508060025f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cb491906133c1565b60025f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d40919061364a565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6064600b5484611d9291906131cd565b611d9c919061323b565b90505f6064600c5485611daf91906131cd565b611db9919061323b565b90505f60c8600e5486611dcc91906131cd565b611dd6919061323b565b90505f479050611dfb838584611dec91906133c1565b611df691906133c1565b612679565b5f8147611e08919061364a565b90505f600c54600b54600e54611e1e91906133c1565b611e2891906133c1565b6064600b54611e3791906131cd565b611e41919061323b565b90505f60648284611e5291906131cd565b611e5c919061323b565b90505f600c54600b54600e54611e7291906133c1565b611e7c91906133c1565b6064600c54611e8b91906131cd565b611e95919061323b565b90505f60648286611ea691906131cd565b611eb0919061323b565b9050611ed287828588611ec3919061364a565b611ecd919061364a565b6128af565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611f01919061364a565b611f0b919061364a565b89604051611f1b9392919061367d565b60405180910390a1611f4e60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461298a565b479450611f7c60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168661298a565b505050505050505050505f6014806101000a81548160ff02191690831515021790555050565b8161216f578260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff0919061364a565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207a91906133c1565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121189190612c0e565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361216a5782600754612163919061364a565b6007819055505b612672565b80156123f5575f60646009548561218691906131cd565b612190919061323b565b90505f818561219f919061364a565b90508460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ea919061364a565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227491906133c1565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe91906133c1565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161239c9190612c0e565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036123ee57806007546123e7919061364a565b6007819055505b5050612671565b5f6064600a548561240691906131cd565b612410919061323b565b90505f818561241f919061364a565b90508460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461246a919061364a565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124f491906133c1565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257e91906133c1565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161261c9190612c0e565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361266e5780600754612667919061364a565b6007819055505b50505b5b5050505050565b5f600267ffffffffffffffff81111561269557612694612d3b565b5b6040519080825280602002602001820160405280156126c35781602001602082028036833780820191505090505b50905030815f815181106126da576126d9613085565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561277e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127a291906136c6565b816001815181106127b6576127b5613085565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061281c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161287e9594939291906137e1565b5f604051808303815f87803b158015612895575f80fd5b505af11580156128a7573d5f803e3d5ffd5b505050505050565b6128db3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b815260040161294296959493929190613839565b60606040518083038185885af115801561295e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129839190613898565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156129cd573d5f803e3d5ffd5b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612a095780820151818401526020810190506129ee565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a2e826129d2565b612a3881856129dc565b9350612a488185602086016129ec565b612a5181612a14565b840191505092915050565b5f6020820190508181035f830152612a748184612a24565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ab682612a8d565b9050919050565b612ac681612aac565b8114612ad0575f80fd5b50565b5f81359050612ae181612abd565b92915050565b5f819050919050565b612af981612ae7565b8114612b03575f80fd5b50565b5f81359050612b1481612af0565b92915050565b5f8060408385031215612b3057612b2f612a85565b5b5f612b3d85828601612ad3565b9250506020612b4e85828601612b06565b9150509250929050565b5f8115159050919050565b612b6c81612b58565b82525050565b5f602082019050612b855f830184612b63565b92915050565b5f819050919050565b5f612bae612ba9612ba484612a8d565b612b8b565b612a8d565b9050919050565b5f612bbf82612b94565b9050919050565b5f612bd082612bb5565b9050919050565b612be081612bc6565b82525050565b5f602082019050612bf95f830184612bd7565b92915050565b612c0881612ae7565b82525050565b5f602082019050612c215f830184612bff565b92915050565b5f805f60608486031215612c3e57612c3d612a85565b5b5f612c4b86828701612ad3565b9350506020612c5c86828701612ad3565b9250506040612c6d86828701612b06565b9150509250925092565b5f60ff82169050919050565b612c8c81612c77565b82525050565b5f602082019050612ca55f830184612c83565b92915050565b5f60208284031215612cc057612cbf612a85565b5b5f612ccd84828501612ad3565b91505092915050565b612cdf81612aac565b82525050565b5f602082019050612cf85f830184612cd6565b92915050565b5f612d0882612a8d565b9050919050565b612d1881612cfe565b82525050565b5f602082019050612d315f830184612d0f565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d7182612a14565b810181811067ffffffffffffffff82111715612d9057612d8f612d3b565b5b80604052505050565b5f612da2612a7c565b9050612dae8282612d68565b919050565b5f67ffffffffffffffff821115612dcd57612dcc612d3b565b5b602082029050602081019050919050565b5f80fd5b5f612df4612def84612db3565b612d99565b90508083825260208201905060208402830185811115612e1757612e16612dde565b5b835b81811015612e405780612e2c8882612ad3565b845260208401935050602081019050612e19565b5050509392505050565b5f82601f830112612e5e57612e5d612d37565b5b8135612e6e848260208601612de2565b91505092915050565b612e8081612b58565b8114612e8a575f80fd5b50565b5f81359050612e9b81612e77565b92915050565b5f8060408385031215612eb757612eb6612a85565b5b5f83013567ffffffffffffffff811115612ed457612ed3612a89565b5b612ee085828601612e4a565b9250506020612ef185828601612e8d565b9150509250929050565b5f8060408385031215612f1157612f10612a85565b5b5f612f1e85828601612b06565b9250506020612f2f85828601612b06565b9150509250929050565b5f8060408385031215612f4f57612f4e612a85565b5b5f612f5c85828601612ad3565b9250506020612f6d85828601612ad3565b9150509250929050565b5f8060408385031215612f8d57612f8c612a85565b5b5f612f9a85828601612ad3565b9250506020612fab85828601612e8d565b9150509250929050565b7f5061757361626c653a206f6e6c79206f776e65722063616e20706175736500005f82015250565b5f612fe9601e836129dc565b9150612ff482612fb5565b602082019050919050565b5f6020820190508181035f83015261301681612fdd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130516020836129dc565b915061305c8261301d565b602082019050919050565b5f6020820190508181035f83015261307e81613045565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6130e982612ae7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361311b5761311a6130b2565b5b600182019050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e00000000005f82015250565b5f61315a601b836129dc565b915061316582613126565b602082019050919050565b5f6020820190508181035f8301526131878161314e565b9050919050565b5f8151905061319c81612af0565b92915050565b5f602082840312156131b7576131b6612a85565b5b5f6131c48482850161318e565b91505092915050565b5f6131d782612ae7565b91506131e283612ae7565b92508282026131f081612ae7565b91508282048414831517613207576132066130b2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61324582612ae7565b915061325083612ae7565b9250826132605761325f61320e565b5b828204905092915050565b5f61327582612bb5565b9050919050565b6132858161326b565b82525050565b5f60408201905061329e5f83018561327c565b6132ab6020830184612bff565b9392505050565b5f815190506132c081612e77565b92915050565b5f602082840312156132db576132da612a85565b5b5f6132e8848285016132b2565b91505092915050565b7f56616c756520616c7265616479207365740000000000000000000000000000005f82015250565b5f6133256011836129dc565b9150613330826132f1565b602082019050919050565b5f6020820190508181035f83015261335281613319565b9050919050565b7f4552523a207a65726f20616464726573730000000000000000000000000000005f82015250565b5f61338d6011836129dc565b915061339882613359565b602082019050919050565b5f6020820190508181035f8301526133ba81613381565b9050919050565b5f6133cb82612ae7565b91506133d683612ae7565b92508282019050808211156133ee576133ed6130b2565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e00000000000000000000000000005f82015250565b5f6134286012836129dc565b9150613433826133f4565b602082019050919050565b5f6020820190508181035f8301526134558161341c565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e0000000000000000005f82015250565b5f6134906017836129dc565b915061349b8261345c565b602082019050919050565b5f6020820190508181035f8301526134bd81613484565b9050919050565b7f4552523a205573696e67203020616464726573732100000000000000000000005f82015250565b5f6134f86015836129dc565b9150613503826134c4565b602082019050919050565b5f6020820190508181035f830152613525816134ec565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e205f8201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b5f6135866025836129dc565b91506135918261352c565b604082019050919050565b5f6020820190508181035f8301526135b38161357a565b9050919050565b7f596f7520617265206120626f74000000000000000000000000000000000000005f82015250565b5f6135ee600d836129dc565b91506135f9826135ba565b602082019050919050565b5f6020820190508181035f83015261361b816135e2565b9050919050565b5f61362c82612c77565b915060ff820361363f5761363e6130b2565b5b600182019050919050565b5f61365482612ae7565b915061365f83612ae7565b9250828203905081811115613677576136766130b2565b5b92915050565b5f6060820190506136905f830186612bff565b61369d6020830185612bff565b6136aa6040830184612bff565b949350505050565b5f815190506136c081612abd565b92915050565b5f602082840312156136db576136da612a85565b5b5f6136e8848285016136b2565b91505092915050565b5f819050919050565b5f61371461370f61370a846136f1565b612b8b565b612ae7565b9050919050565b613724816136fa565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61375c81612aac565b82525050565b5f61376d8383613753565b60208301905092915050565b5f602082019050919050565b5f61378f8261372a565b6137998185613734565b93506137a483613744565b805f5b838110156137d45781516137bb8882613762565b97506137c683613779565b9250506001810190506137a7565b5085935050505092915050565b5f60a0820190506137f45f830188612bff565b613801602083018761371b565b81810360408301526138138186613785565b90506138226060830185612cd6565b61382f6080830184612bff565b9695505050505050565b5f60c08201905061384c5f830189612cd6565b6138596020830188612bff565b613866604083018761371b565b613873606083018661371b565b613880608083018561327c565b61388d60a0830184612bff565b979650505050505050565b5f805f606084860312156138af576138ae612a85565b5b5f6138bc8682870161318e565b93505060206138cd8682870161318e565b92505060406138de8682870161318e565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220960bfb36ef1eb21e24f7afa9c35f0da7b485d8b511fdf6abf6f5a5eb694ed1b564736f6c63430008150033

Deployed Bytecode Sourcemap

12934:12213:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16918:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17893:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15177:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17335:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14864:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15260:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18060:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17246:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18379:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16814:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14708:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15225:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15295:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15342:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14783:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14902:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17436:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13712:138;;;;;;;;;;;;;:::i;:::-;;14030:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14943:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15064:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14284:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13575:131;;;;;;;;;;;;;:::i;:::-;;13159:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17007;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18603:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17559:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14745:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16606:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14089:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14190:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17100:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14827:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23302:444;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17732:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16420:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16918:83;16955:13;16988:5;;;;;;;;;;;;;;;;;16981:12;;16918:83;:::o;17893:161::-;17968:4;17985:39;17994:12;:10;:12::i;:::-;18008:7;18017:6;17985:8;:39::i;:::-;18042:4;18035:11;;17893:161;;;;:::o;15177:41::-;;;;;;;;;;;;;:::o;17335:95::-;17388:7;17415;;17408:14;;17335:95;:::o;14864:31::-;;;;:::o;15260:28::-;;;;;;;;;;;;:::o;18060:313::-;18158:4;18175:36;18185:6;18193:9;18204:6;18175:9;:36::i;:::-;18222:121;18231:6;18239:12;:10;:12::i;:::-;18253:89;18291:6;18253:89;;;;;;;;;;;;;;;;;:11;:19;18265:6;18253:19;;;;;;;;;;;;;;;:33;18273:12;:10;:12::i;:::-;18253:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18222:8;:121::i;:::-;18361:4;18354:11;;18060:313;;;;;:::o;17246:83::-;17287:5;14473:2;17305:16;;17246:83;:::o;18379:218::-;18467:4;18484:83;18493:12;:10;:12::i;:::-;18507:7;18516:50;18555:10;18516:11;:25;18528:12;:10;:12::i;:::-;18516:25;;;;;;;;;;;;;;;:34;18542:7;18516:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18484:8;:83::i;:::-;18585:4;18578:11;;18379:218;;;;:::o;16814:98::-;16866:4;16889:6;:15;16896:7;16889:15;;;;;;;;;;;;;;;;;;;;;;;;;16882:22;;16814:98;;;:::o;14708:30::-;;;;:::o;15225:28::-;;;;;;;;;;;;;:::o;15295:40::-;;;;;;;;;;;;;:::o;15342:26::-;;;;;;;;;;;;;:::o;14783:37::-;;;;:::o;14902:33::-;;;;:::o;17436:117::-;17502:7;17529;:16;17537:7;17529:16;;;;;;;;;;;;;;;;17522:23;;17436:117;;;:::o;13712:138::-;13809:1;13772:40;;13793:6;;;;;;;;;;13772:40;;;;;;;;;;;;13840:1;13823:6;;:19;;;;;;;;;;;;;;;;;;13712:138::o;14030:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;14943:50::-;;;;:::o;15064:47::-;;;;:::o;14284:97::-;14338:42;14284:97;:::o;13575:131::-;13632:7;:5;:7::i;:::-;13618:21;;:10;:21;;;13610:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13694:4;13685:6;;:13;;;;;;;;;;;;;;;;;;13575:131::o;13159:87::-;13205:7;13232:6;;;;;;;;;;;13225:13;;13159:87;:::o;17007:::-;17046:13;17079:7;;;;;;;;;;;;;;;;;17072:14;;17007:87;:::o;18603:269::-;18696:4;18713:129;18722:12;:10;:12::i;:::-;18736:7;18745:96;18784:15;18745:96;;;;;;;;;;;;;;;;;:11;:25;18757:12;:10;:12::i;:::-;18745:25;;;;;;;;;;;;;;;:34;18771:7;18745:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18713:8;:129::i;:::-;18860:4;18853:11;;18603:269;;;;:::o;17559:167::-;17637:4;17654:42;17664:12;:10;:12::i;:::-;17678:9;17689:6;17654:9;:42::i;:::-;17714:4;17707:11;;17559:167;;;;:::o;14745:31::-;;;;:::o;16606:199::-;13500:12;:10;:12::i;:::-;13489:23;;:7;:5;:7::i;:::-;:23;;;13481:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16699:9:::1;16695:99;16718:8;:15;16714:1;:19;16695:99;;;16776:5;16754:6;:19;16761:8;16770:1;16761:11;;;;;;;;:::i;:::-;;;;;;;;16754:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16735:3;;;;;:::i;:::-;;;;16695:99;;;;16606:199:::0;;:::o;14089:93::-;;;;;;;;;;;;;:::o;14190:87::-;;;;;;;;;;;;;:::o;17100:140::-;13500:12;:10;:12::i;:::-;13489:23;;:7;:5;:7::i;:::-;:23;;;13481:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17193:6:::1;17179:11;:20;;;;17225:7;17210:12;:22;;;;17100:140:::0;;:::o;14827:30::-;;;;:::o;23302:444::-;23404:10;23466:4;23434:37;;:20;:37;;;23426:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;23514:19;23543:20;23536:38;;;23583:4;23536:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23514:75;;23600:20;23653:3;23635:17;23623:11;:29;;;;:::i;:::-;:33;;;;:::i;:::-;23600:56;;23682:20;23675:37;;;23713:10;;;;;;;;;;;23725:12;23675:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23667:71;;23415:331;;23302:444;;;;:::o;17732:155::-;17819:7;17846:11;:21;17858:8;17846:21;;;;;;;;;;;;;;;:33;17868:10;17846:33;;;;;;;;;;;;;;;;17839:40;;17732:155;;;;:::o;16420:174::-;13500:12;:10;:12::i;:::-;13489:23;;:7;:5;:7::i;:::-;:23;;;13481:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16525:5:::1;16506:24;;:6;:15;16513:7;16506:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;::::0;16498:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16581:5;16563:6;:15;16570:7;16563:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16420:174:::0;;:::o;1641:98::-;1694:7;1721:10;1714:17;;1641:98;:::o;19013:286::-;19132:1;19112:22;;:8;:22;;;;:50;;;;;19160:1;19138:24;;:10;:24;;;;19112:50;19104:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;19231:6;19195:11;:21;19207:8;19195:21;;;;;;;;;;;;;;;:33;19217:10;19195:33;;;;;;;;;;;;;;;:42;;;;19272:10;19253:38;;19262:8;19253:38;;;19284:6;19253:38;;;;;;:::i;:::-;;;;;;;;19013:286;;;:::o;19305:1519::-;19429:7;:5;:7::i;:::-;19423:13;;:2;:13;;;;:47;;;;;14338:42;19453:17;;:2;:17;;;;19423:47;:83;;;;;19501:4;19487:19;;:2;:19;;;;19423:83;:119;;;;;19529:13;;;;;;;;;;;19523:19;;:2;:19;;;;19423:119;:151;;;;;19567:7;:5;:7::i;:::-;19559:15;;:4;:15;;;;19423:151;19419:292;;;19590:18;19611:13;19621:2;19611:9;:13::i;:::-;19590:34;;19672:15;;19661:6;19648:10;:19;;;;:::i;:::-;19647:40;;19639:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19575:136;19419:292;19733:7;:5;:7::i;:::-;19725:15;;:4;:15;;;19721:92;;19773:12;;19763:6;:22;;19755:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;19721:92;19848:1;19832:18;;:4;:18;;;;:38;;;;;19868:1;19854:16;;:2;:16;;;;19832:38;19824:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19924:1;19915:6;:10;19907:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19988:6;:12;19995:4;19988:12;;;;;;;;;;;;;;;;;;;;;;;;;19987:13;:28;;;;;20005:6;:10;20012:2;20005:10;;;;;;;;;;;;;;;;;;;;;;;;;20004:11;19987:28;19979:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20073:11;;;;;;;;;;;20062:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;20103:16;;;;;;;;;;20102:17;20062:57;:95;;;;;20144:13;;;;;;;;;;;20136:21;;:4;:21;;;;20062:95;:133;;;;;20174:21;;;;;;;;;;;20062:133;20045:428;;;20237:28;20268:24;20286:4;20268:9;:24::i;:::-;20237:55;;20333:12;;20310:20;:35;20307:78;;;20371:12;;20348:35;;20307:78;20409:1;20399:7;;:11;;;;;;;;;;;;;;;;;;20425:36;20440:20;20425:14;:36::i;:::-;20220:253;20045:428;20483:12;20498:4;20483:19;;20513:10;20537:18;:24;20556:4;20537:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;20565:18;:22;20584:2;20565:22;;;;;;;;;;;;;;;;;;;;;;;;;20537:50;20534:224;;;20613:5;20603:15;;20534:224;;;20662:13;;;;;;;;;;;20654:21;;:4;:21;;;20651:72;;20703:4;20695:12;;20651:72;20737:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;20534:224;20768:48;20783:4;20789:2;20793:6;20801:7;20810:5;20768:14;:48::i;:::-;19408:1416;;19305: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;20956:1489::-;15622:4;15603:16;;:23;;;;;;;;;;;;;;;;;;21045:22:::1;21108:3;21093:12;;21070:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;21045:66;;21146:14;21136:7;;:24;;;;:::i;:::-;21126:7;:34;;;;21221:14;21198:7;:20;14338:42;21198:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;21175:7;:20;14338:42;21175:20;;;;;;;;;;;;;;;:60;;;;21300:14;21275:7;:22;21291:4;21275:22;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;21250:7;:22;21266:4;21250:22;;;;;;;;;;;;;;;:64;;;;21330:19;21395:3;21375:17;;21352:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;21330:68;;21413:19;21472:3;21458:11;;21435:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;21413:62;;21490:25;21558:3;21541:14;;21518:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;21490:71;;21576:25;21604:21;21576:49;;21640:63;21691:11;21677;21657:17;:31;;;;:::i;:::-;:45;;;;:::i;:::-;21640:16;:63::i;:::-;21718:17;21762;21738:21;:41;;;;:::i;:::-;21718:61;;21794:15;21876:11;;21856:17;;21839:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;21832:3;21812:17;;:23;;;;:::i;:::-;:76;;;;:::i;:::-;21794:94;;21903:13;21941:3;21931:7;21919:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;21903:41;;21959:15;22035:11;;22015:17;;21998:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;21991:3;21977:11;;:17;;;;:::i;:::-;:70;;;;:::i;:::-;21959:88;;22062:13;22100:3;22090:7;22078:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;22062:41;;22118:60;22131:17;22171:5;22163;22151:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;22118:12;:60::i;:::-;22198:81;22213:17;22253:5;22245;22233:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;22261:17;22198:81;;;;;;;;:::i;:::-;;;;;;;;22294:37;22307:16;;;;;;;;;;;22325:5;22294:12;:37::i;:::-;22358:21;22346:33;;22394:35;22407:10;;;;;;;;;;;22419:9;22394:12;:35::i;:::-;21030:1415;;;;;;;;;;15668:5:::0;15649:16;;:24;;;;;;;;;;;;;;;;;;20956:1489;:::o;23752:1392::-;23877:7;23873:1264;;23934:7;23918;:15;23926:6;23918:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;23900:7;:15;23908:6;23900:15;;;;;;;;;;;;;;;:41;;;;23996:7;23977;:18;23985:9;23977:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;23956:7;:18;23964:9;23956:18;;;;;;;;;;;;;;;:47;;;;24040:9;24023:36;;24032:6;24023:36;;;24051:7;24023:36;;;;;;:::i;:::-;;;;;;;;14338:42;24077:24;;:9;:24;;;24074:67;;24134:7;24126;;:15;;;;:::i;:::-;24116:7;:25;;;;24074:67;23873:1264;;;24167:5;24163:974;;;24188:14;24225:3;24213:11;;24205:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;24188:40;;24243:23;24277:6;24269:7;:14;;;;:::i;:::-;24243:40;;24332:7;24316;:15;24324:6;24316:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24298:7;:15;24306:6;24298:15;;;;;;;;;;;;;;;:41;;;;24394:15;24375:7;:18;24383:9;24375:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24354:7;:18;24362:9;24354:18;;;;;;;;;;;;;;;:55;;;;24472:6;24449:7;:22;24465:4;24449:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;24424:7;:22;24440:4;24424:22;;;;;;;;;;;;;;;:54;;;;24517:9;24500:44;;24509:6;24500:44;;;24528:15;24500:44;;;;;;:::i;:::-;;;;;;;;14338:42;24562:24;;:9;:24;;;24559:75;;24619:15;24611:7;;:23;;;;:::i;:::-;24601:7;:33;;;;24559:75;24173:477;;24163:974;;;24671:15;24710:3;24697:12;;24689:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;24671:42;;24728:23;24762:7;24754;:15;;;;:::i;:::-;24728:41;;24818:7;24802;:15;24810:6;24802:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24784:7;:15;24792:6;24784:15;;;;;;;;;;;;;;;:41;;;;24880:15;24861:7;:18;24869:9;24861:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24840:7;:18;24848:9;24840:18;;;;;;;;;;;;;;;:55;;;;24958:7;24935;:22;24951:4;24935:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;24910:7;:22;24926:4;24910:22;;;;;;;;;;;;;;;:55;;;;25004:9;24987:44;;24996:6;24987:44;;;25015:15;24987:44;;;;;;:::i;:::-;;;;;;;;14338:42;25049:24;;:9;:24;;;25046:75;;25106:15;25098:7;;:23;;;;:::i;:::-;25088:7;:33;;;;25046:75;24656:481;;24163:974;23873:1264;23752:1392;;;;;:::o;22451:472::-;22517:21;22555:1;22541:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22517:40;;22586:4;22568;22573:1;22568:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22612:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22602:4;22607:1;22602:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22645:62;22662:4;22677:15;;;;;;;;;;;22695:11;22645:8;:62::i;:::-;22718:15;;;;;;;;;;;:66;;;22799:11;22825:1;22842:4;22869;22889:15;22718:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22506:417;22451:472;:::o;22929:366::-;23010:62;23027:4;23042:15;;;;;;;;;;;23060:11;23010:8;:62::i;:::-;23083:15;;;;;;;;;;;:31;;;23122:9;23155:4;23175:11;23201:1;23218;14338:42;23261:15;23083:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22929:366;;:::o;20830:120::-;20915:6;:15;;:23;20931:6;20915:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20830: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://960bfb36ef1eb21e24f7afa9c35f0da7b485d8b511fdf6abf6f5a5eb694ed1b5
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.