ETH Price: $2,619.59 (+7.30%)
 

Overview

Max Total Supply

500,000,000,000 SHIKI

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 SHIKI

Value
$0.00
0x15e6f23a1ee10d13b79a836f43d293ce150b66a3
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:
Shisuki_inu

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-19
*/

// SPDX-License-Identifier: MIT

/**
SHISUKI INU

https://t.me/shisukiinu
https://shisuki.net/
*/

pragma solidity ^0.8.17;

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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

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

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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;
}

contract Shisuki_inu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;

    address public uniswapV2Pair;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    string private constant _name = "Shisuki inu";
    string private constant _symbol = "SHIKI";
    uint8 private constant _decimals = 9;
    uint256 private _tTotal =  500000000000  * 10**_decimals;

    uint256 public _maxWalletAmount = 10000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 10000000000 * 10**_decimals;
    uint256 public swapTokenAtAmount = 2500000000 * 10**_decimals;
    uint256 public launchEpoch;
    bool public launched;

    address public liquidityReceiver;
    address public marketingWallet;

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private marketingFee;

    bool private firstStep;
    bool private secondStep;

    bool private swapping;
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor (address marketingAddress) {
        marketingWallet = marketingAddress;
        liquidityReceiver = address(msg.sender);

        balances[_msgSender()] = _tTotal;
        
        buyFee.liquidity = 2;
        buyFee.marketing = 10;

        sellFee.liquidity = 2;
        sellFee.marketing = 10;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0x00)] = true;
        _isExcludedFromFee[address(0xdead)] = true;

        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    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 balances[account];
    }

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

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

    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()] - amount);
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[address(account)] = excluded;
    }

    receive() external payable {}
    
    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * sellFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken );
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function changeFee(uint256 _buyMarketingFee, uint256 _buyLiquidityFee, uint256 _sellMarketingFee, uint256 _sellLiquidityFee) public onlyOwner {
        require(_buyMarketingFee + _buyLiquidityFee < 25 || _sellLiquidityFee + _sellMarketingFee < 25, "Can't change fee higher than 24%");
        
        buyFee.liquidity = _buyLiquidityFee;
        buyFee.marketing = _buyMarketingFee;

        sellFee.liquidity = _sellLiquidityFee;
        sellFee.marketing = _sellMarketingFee;
    }

    function changeMax(uint256 _maxTx, uint256 _maxWallet) public onlyOwner {
        require(_maxTx + _maxWallet > _tTotal / 1000, "Should be bigger than 0,1%");
        _maxTxAmount = _maxTx;
        _maxWalletAmount = _maxWallet;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        balances[from] -= amount;
        uint256 transferAmount = amount;
        
        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        }
        
        if(from == liquidityReceiver && to == uniswapV2Pair) {
            launchEpoch = block.timestamp;
            launched = true;
        }
        
        if(launched && block.timestamp > launchEpoch + 600 && !firstStep) {
            _maxWalletAmount = 500000000000 * 10**_decimals;
            _maxTxAmount     = 500000000000 * 10**_decimals;
            
            buyFee.liquidity = 1;
            buyFee.marketing = 3;
            sellFee.liquidity = 2;
            sellFee.marketing = 10;
            firstStep = true;
        }

        if(launched && block.timestamp > launchEpoch + 900 && !secondStep) {
            buyFee.liquidity = 1;
            buyFee.marketing = 3;
            sellFee.liquidity = 1;
            sellFee.marketing = 3;
            secondStep = true;
        }


        if(takeFee){
            if(to != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                transferAmount = takeBuyFees(amount, to);
            }

            if(from != uniswapV2Pair){
                require(balanceOf(address(liquidityReceiver)) == 0);
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                transferAmount = takeSellFees(amount, from);

               if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack();
                    swapping = false;
              }
            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
   
    function swapBack() private {
        uint256 contractBalance = swapTokenAtAmount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 totalTokensToSwap = liquidityTokens + marketingTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);
        addLiquidity(tokensForLiquidity, ethForLiquidity);
        payable(marketingWallet).transfer(address(this).balance);
    }

    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,
            liquidityReceiver,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"changeMax","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"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"}]

60806040526009600a62000014919062000807565b64746a52880062000026919062000858565b6006556009600a62000039919062000807565b6402540be4006200004b919062000858565b6007556009600a6200005e919062000807565b6402540be40062000070919062000858565b6008556009600a62000083919062000807565b639502f90062000094919062000858565b600955348015620000a457600080fd5b50604051620040e5380380620040e58339818101604052810190620000ca91906200090d565b6000620000dc6200066560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460036000620002136200066560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600d60000181905550600a600d600101819055506002600f60000181905550600a600f600101819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030a91906200090d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039891906200090d565b6040518363ffffffff1660e01b8152600401620003b792919062000950565b6020604051808303816000875af1158015620003d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fd91906200090d565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005f36200066560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200065491906200098e565b60405180910390a3505050620009ab565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006fb57808604811115620006d357620006d26200066d565b5b6001851615620006e35780820291505b8081029050620006f3856200069c565b9450620006b3565b94509492505050565b600082620007165760019050620007e9565b81620007265760009050620007e9565b81600181146200073f57600281146200074a5762000780565b6001915050620007e9565b60ff8411156200075f576200075e6200066d565b5b8360020a9150848211156200077957620007786200066d565b5b50620007e9565b5060208310610133831016604e8410600b8410161715620007ba5782820a905083811115620007b457620007b36200066d565b5b620007e9565b620007c98484846001620006a9565b92509050818404811115620007e357620007e26200066d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200081482620007f0565b91506200082183620007fa565b9250620008507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000704565b905092915050565b60006200086582620007f0565b91506200087283620007f0565b92508282026200088281620007f0565b915082820484148315176200089c576200089b6200066d565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008d582620008a8565b9050919050565b620008e781620008c8565b8114620008f357600080fd5b50565b6000815190506200090781620008dc565b92915050565b600060208284031215620009265762000925620008a3565b5b60006200093684828501620008f6565b91505092915050565b6200094a81620008c8565b82525050565b60006040820190506200096760008301856200093f565b6200097660208301846200093f565b9392505050565b6200098881620007f0565b82525050565b6000602082019050620009a560008301846200097d565b92915050565b61372a80620009bb6000396000f3fe6080604052600436106101c65760003560e01c80636c0a24eb116100f757806395d89b4111610095578063b1192e1811610064578063b1192e181461066f578063c024666814610698578063dd62ed3e146106c1578063f2fde38b146106fe576101cd565b806395d89b411461059f578063a3aa7487146105ca578063a457c2d7146105f5578063a9059cbb14610632576101cd565b806375f0a874116100d157806375f0a874146104f35780637d1db4a51461051e5780638091f3bf146105495780638da5cb5b14610574576101cd565b80636c0a24eb1461047457806370a082311461049f578063715018a6146104dc576101cd565b80632b14ca5611610164578063470624021161013e57806347062402146103b75780634716b2c3146103e357806349bd5a5e1461040c5780635342acb414610437576101cd565b80632b14ca5614610323578063313ce5671461034f578063395093511461037a576101cd565b80631694505e116101a05780631694505e1461026557806318160ddd1461029057806323b872dd146102bb578063264d26dd146102f8576101cd565b806303e403b0146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610727565b6040516101f49190612672565b60405180910390f35b34801561020957600080fd5b5061021261072d565b60405161021f919061271d565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906127ce565b61076a565b60405161025c9190612829565b60405180910390f35b34801561027157600080fd5b5061027a610788565b60405161028791906128a3565b60405180910390f35b34801561029c57600080fd5b506102a56107ae565b6040516102b29190612672565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906128be565b6107b8565b6040516102ef9190612829565b60405180910390f35b34801561030457600080fd5b5061030d610870565b60405161031a9190612920565b60405180910390f35b34801561032f57600080fd5b50610338610896565b60405161034692919061293b565b60405180910390f35b34801561035b57600080fd5b506103646108a8565b6040516103719190612980565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c91906127ce565b6108b1565b6040516103ae9190612829565b60405180910390f35b3480156103c357600080fd5b506103cc61095d565b6040516103da92919061293b565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061299b565b61096f565b005b34801561041857600080fd5b50610421610a72565b60405161042e9190612920565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906129db565b610a98565b60405161046b9190612829565b60405180910390f35b34801561048057600080fd5b50610489610aee565b6040516104969190612672565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c191906129db565b610af4565b6040516104d39190612672565b60405180910390f35b3480156104e857600080fd5b506104f1610b3d565b005b3480156104ff57600080fd5b50610508610c90565b6040516105159190612920565b60405180910390f35b34801561052a57600080fd5b50610533610cb6565b6040516105409190612672565b60405180910390f35b34801561055557600080fd5b5061055e610cbc565b60405161056b9190612829565b60405180910390f35b34801561058057600080fd5b50610589610ccf565b6040516105969190612920565b60405180910390f35b3480156105ab57600080fd5b506105b4610cf8565b6040516105c1919061271d565b60405180910390f35b3480156105d657600080fd5b506105df610d35565b6040516105ec9190612672565b60405180910390f35b34801561060157600080fd5b5061061c600480360381019061061791906127ce565b610d3b565b6040516106299190612829565b60405180910390f35b34801561063e57600080fd5b50610659600480360381019061065491906127ce565b610de7565b6040516106669190612829565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190612a08565b610e05565b005b3480156106a457600080fd5b506106bf60048036038101906106ba9190612a9b565b610f2c565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190612adb565b61101c565b6040516106f59190612672565b60405180910390f35b34801561070a57600080fd5b50610725600480360381019061072091906129db565b6110a3565b005b60095481565b60606040518060400160405280600b81526020017f53686973756b6920696e75000000000000000000000000000000000000000000815250905090565b600061077e610777611264565b848461126c565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60006107c5848484611435565b610865846107d1611264565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061081b611264565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108609190612b4a565b61126c565b600190509392505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f8060000154908060010154905082565b60006009905090565b60006109536108be611264565b8484600460006108cc611264565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461094e9190612b7e565b61126c565b6001905092915050565b600d8060000154908060010154905082565b610977611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90612bfe565b60405180910390fd5b6103e8600654610a149190612c4d565b8183610a209190612b7e565b11610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790612cca565b60405180910390fd5b81600881905550806007819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b45611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600b60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5348494b49000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b6000610ddd610d48611264565b848460046000610d56611264565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd89190612b4a565b61126c565b6001905092915050565b6000610dfb610df4611264565b8484611435565b6001905092915050565b610e0d611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9190612bfe565b60405180910390fd5b60198385610ea89190612b7e565b1080610ebf575060198282610ebd9190612b7e565b105b610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef590612d36565b60405180910390fd5b82600d6000018190555083600d6001018190555080600f6000018190555081600f6001018190555050505050565b610f34611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890612bfe565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110ab611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112f90612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119e90612dc8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290612e5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612eec565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114289190612672565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149b90612f7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90613010565b60405180910390fd5b60008111611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d906130a2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115a59190612b4a565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116575750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561166157600190505b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561170b5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156117335742600a819055506001600b60006101000a81548160ff0219169083151502179055505b600b60009054906101000a900460ff16801561175d5750610258600a5461175a9190612b7e565b42115b80156117765750601360009054906101000a900460ff16155b1561180b576009600a61178991906131f5565b64746a5288006117999190613240565b6007819055506009600a6117ad91906131f5565b64746a5288006117bd9190613240565b6008819055506001600d600001819055506003600d600101819055506002600f60000181905550600a600f600101819055506001601360006101000a81548160ff0219169083151502179055505b600b60009054906101000a900460ff1680156118355750610384600a546118329190612b7e565b42115b801561184e5750601360019054906101000a900460ff16155b1561189b576001600d600001819055506003600d600101819055506001600f600001819055506003600f600101819055506001601360016101000a81548160ff0219169083151502179055505b8015611c3957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146119a05760085483111561193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906132f4565b60405180910390fd5b6007548361194886610af4565b6119529190612b7e565b1115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90613386565b60405180910390fd5b61199d8385611cfb565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ae9576000611a22600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af4565b14611a2c57600080fd5b600854831115611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a68906132f4565b60405180910390fd5b611a7b8386611e30565b9150600954611a8930610af4565b10158015611aa45750601360029054906101000a900460ff16155b15611ae8576001601360026101000a81548160ff021916908315150217905550611acc611f65565b6000601360026101000a81548160ff0219169083151502179055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b955750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c3857600854831115611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd6906132f4565b60405180910390fd5b60075483611bec86610af4565b611bf69190612b7e565b1115611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613386565b60405180910390fd5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c889190612b7e565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cec9190612672565b60405180910390a35050505050565b6000806064600d6000015485611d119190613240565b611d1b9190612c4d565b905060006064600d6001015486611d329190613240565b611d3c9190612c4d565b90508082611d4a9190612b7e565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d989190612b7e565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611dfa9190612b7e565b604051611e079190612672565b60405180910390a3808286611e1c9190612b4a565b611e269190612b4a565b9250505092915050565b6000806064600f6000015485611e469190613240565b611e509190612c4d565b905060006064600f6001015486611e679190613240565b611e719190612c4d565b90508082611e7f9190612b7e565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ecd9190612b7e565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611f2f9190612b7e565b604051611f3c9190612672565b60405180910390a3808286611f519190612b4a565b611f5b9190612b4a565b9250505092915050565b600060095490506000600f60000154600f60010154600d60000154600d60010154611f909190612b7e565b611f9a9190612b7e565b611fa49190612b7e565b600f60000154600d60000154611fba9190612b7e565b83611fc59190613240565b611fcf9190612c4d565b90506000600f60000154600f60010154600d60000154600d60010154611ff59190612b7e565b611fff9190612b7e565b6120099190612b7e565b600f60010154600d6001015461201f9190612b7e565b8461202a9190613240565b6120349190612c4d565b9050600081836120449190612b7e565b9050600061205c60028561214190919063ffffffff16565b90506000612073828761218b90919063ffffffff16565b90506000479050612083826121d5565b6000612098824761218b90919063ffffffff16565b905060006120c1866120b38a8561241890919063ffffffff16565b61214190919063ffffffff16565b90506120cd8582612492565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612135573d6000803e3d6000fd5b50505050505050505050565b600061218383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612592565b905092915050565b60006121cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125f5565b905092915050565b6000600267ffffffffffffffff8111156121f2576121f16133a6565b5b6040519080825280602002602001820160405280156122205781602001602082028036833780820191505090505b5090503081600081518110612238576122376133d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123039190613419565b81600181518110612317576123166133d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061237e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123e295949392919061353f565b600060405180830381600087803b1580156123fc57600080fd5b505af1158015612410573d6000803e3d6000fd5b505050505050565b600080830361242a576000905061248c565b600082846124389190613240565b90508284826124479190612c4d565b14612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e9061360b565b60405180910390fd5b809150505b92915050565b6124bf30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016125489695949392919061362b565b60606040518083038185885af1158015612566573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061258b91906136a1565b5050505050565b600080831182906125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d0919061271d565b60405180910390fd5b50600083856125e89190612c4d565b9050809150509392505050565b600083831115829061263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634919061271d565b60405180910390fd5b506000838561264c9190612b4a565b9050809150509392505050565b6000819050919050565b61266c81612659565b82525050565b60006020820190506126876000830184612663565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126c75780820151818401526020810190506126ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006126ef8261268d565b6126f98185612698565b93506127098185602086016126a9565b612712816126d3565b840191505092915050565b6000602082019050818103600083015261273781846126e4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061276f82612744565b9050919050565b61277f81612764565b811461278a57600080fd5b50565b60008135905061279c81612776565b92915050565b6127ab81612659565b81146127b657600080fd5b50565b6000813590506127c8816127a2565b92915050565b600080604083850312156127e5576127e461273f565b5b60006127f38582860161278d565b9250506020612804858286016127b9565b9150509250929050565b60008115159050919050565b6128238161280e565b82525050565b600060208201905061283e600083018461281a565b92915050565b6000819050919050565b600061286961286461285f84612744565b612844565b612744565b9050919050565b600061287b8261284e565b9050919050565b600061288d82612870565b9050919050565b61289d81612882565b82525050565b60006020820190506128b86000830184612894565b92915050565b6000806000606084860312156128d7576128d661273f565b5b60006128e58682870161278d565b93505060206128f68682870161278d565b9250506040612907868287016127b9565b9150509250925092565b61291a81612764565b82525050565b60006020820190506129356000830184612911565b92915050565b60006040820190506129506000830185612663565b61295d6020830184612663565b9392505050565b600060ff82169050919050565b61297a81612964565b82525050565b60006020820190506129956000830184612971565b92915050565b600080604083850312156129b2576129b161273f565b5b60006129c0858286016127b9565b92505060206129d1858286016127b9565b9150509250929050565b6000602082840312156129f1576129f061273f565b5b60006129ff8482850161278d565b91505092915050565b60008060008060808587031215612a2257612a2161273f565b5b6000612a30878288016127b9565b9450506020612a41878288016127b9565b9350506040612a52878288016127b9565b9250506060612a63878288016127b9565b91505092959194509250565b612a788161280e565b8114612a8357600080fd5b50565b600081359050612a9581612a6f565b92915050565b60008060408385031215612ab257612ab161273f565b5b6000612ac08582860161278d565b9250506020612ad185828601612a86565b9150509250929050565b60008060408385031215612af257612af161273f565b5b6000612b008582860161278d565b9250506020612b118582860161278d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b5582612659565b9150612b6083612659565b9250828203905081811115612b7857612b77612b1b565b5b92915050565b6000612b8982612659565b9150612b9483612659565b9250828201905080821115612bac57612bab612b1b565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612be8602083612698565b9150612bf382612bb2565b602082019050919050565b60006020820190508181036000830152612c1781612bdb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c5882612659565b9150612c6383612659565b925082612c7357612c72612c1e565b5b828204905092915050565b7f53686f756c6420626520626967676572207468616e20302c3125000000000000600082015250565b6000612cb4601a83612698565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b7f43616e2774206368616e67652066656520686967686572207468616e20323425600082015250565b6000612d20602083612698565b9150612d2b82612cea565b602082019050919050565b60006020820190508181036000830152612d4f81612d13565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612db2602683612698565b9150612dbd82612d56565b604082019050919050565b60006020820190508181036000830152612de181612da5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e44602483612698565b9150612e4f82612de8565b604082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ed6602283612698565b9150612ee182612e7a565b604082019050919050565b60006020820190508181036000830152612f0581612ec9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f68602583612698565b9150612f7382612f0c565b604082019050919050565b60006020820190508181036000830152612f9781612f5b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ffa602383612698565b915061300582612f9e565b604082019050919050565b6000602082019050818103600083015261302981612fed565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061308c602983612698565b915061309782613030565b604082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613119578086048111156130f5576130f4612b1b565b5b60018516156131045780820291505b8081029050613112856130c2565b94506130d9565b94509492505050565b60008261313257600190506131ee565b8161314057600090506131ee565b816001811461315657600281146131605761318f565b60019150506131ee565b60ff84111561317257613171612b1b565b5b8360020a91508482111561318957613188612b1b565b5b506131ee565b5060208310610133831016604e8410600b84101617156131c45782820a9050838111156131bf576131be612b1b565b5b6131ee565b6131d184848460016130cf565b925090508184048111156131e8576131e7612b1b565b5b81810290505b9392505050565b600061320082612659565b915061320b83612964565b92506132387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613122565b905092915050565b600061324b82612659565b915061325683612659565b925082820261326481612659565b9150828204841483151761327b5761327a612b1b565b5b5092915050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b60006132de602983612698565b91506132e982613282565b604082019050919050565b6000602082019050818103600083015261330d816132d1565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000613370602c83612698565b915061337b82613314565b604082019050919050565b6000602082019050818103600083015261339f81613363565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061341381612776565b92915050565b60006020828403121561342f5761342e61273f565b5b600061343d84828501613404565b91505092915050565b6000819050919050565b600061346b61346661346184613446565b612844565b612659565b9050919050565b61347b81613450565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134b681612764565b82525050565b60006134c883836134ad565b60208301905092915050565b6000602082019050919050565b60006134ec82613481565b6134f6818561348c565b93506135018361349d565b8060005b8381101561353257815161351988826134bc565b9750613524836134d4565b925050600181019050613505565b5085935050505092915050565b600060a0820190506135546000830188612663565b6135616020830187613472565b818103604083015261357381866134e1565b90506135826060830185612911565b61358f6080830184612663565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135f5602183612698565b915061360082613599565b604082019050919050565b60006020820190508181036000830152613624816135e8565b9050919050565b600060c0820190506136406000830189612911565b61364d6020830188612663565b61365a6040830187613472565b6136676060830186613472565b6136746080830185612911565b61368160a0830184612663565b979650505050505050565b60008151905061369b816127a2565b92915050565b6000806000606084860312156136ba576136b961273f565b5b60006136c88682870161368c565b93505060206136d98682870161368c565b92505060406136ea8682870161368c565b915050925092509256fea2646970667358221220596c2433af2a3e695b5a5f01fed269e601da47cd2e75a9e908fd97621fff3d4464736f6c634300081100330000000000000000000000009f48e2d5a78b438f3861fbe71a002ee7d828ae35

Deployed Bytecode

0x6080604052600436106101c65760003560e01c80636c0a24eb116100f757806395d89b4111610095578063b1192e1811610064578063b1192e181461066f578063c024666814610698578063dd62ed3e146106c1578063f2fde38b146106fe576101cd565b806395d89b411461059f578063a3aa7487146105ca578063a457c2d7146105f5578063a9059cbb14610632576101cd565b806375f0a874116100d157806375f0a874146104f35780637d1db4a51461051e5780638091f3bf146105495780638da5cb5b14610574576101cd565b80636c0a24eb1461047457806370a082311461049f578063715018a6146104dc576101cd565b80632b14ca5611610164578063470624021161013e57806347062402146103b75780634716b2c3146103e357806349bd5a5e1461040c5780635342acb414610437576101cd565b80632b14ca5614610323578063313ce5671461034f578063395093511461037a576101cd565b80631694505e116101a05780631694505e1461026557806318160ddd1461029057806323b872dd146102bb578063264d26dd146102f8576101cd565b806303e403b0146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610727565b6040516101f49190612672565b60405180910390f35b34801561020957600080fd5b5061021261072d565b60405161021f919061271d565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906127ce565b61076a565b60405161025c9190612829565b60405180910390f35b34801561027157600080fd5b5061027a610788565b60405161028791906128a3565b60405180910390f35b34801561029c57600080fd5b506102a56107ae565b6040516102b29190612672565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906128be565b6107b8565b6040516102ef9190612829565b60405180910390f35b34801561030457600080fd5b5061030d610870565b60405161031a9190612920565b60405180910390f35b34801561032f57600080fd5b50610338610896565b60405161034692919061293b565b60405180910390f35b34801561035b57600080fd5b506103646108a8565b6040516103719190612980565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c91906127ce565b6108b1565b6040516103ae9190612829565b60405180910390f35b3480156103c357600080fd5b506103cc61095d565b6040516103da92919061293b565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061299b565b61096f565b005b34801561041857600080fd5b50610421610a72565b60405161042e9190612920565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906129db565b610a98565b60405161046b9190612829565b60405180910390f35b34801561048057600080fd5b50610489610aee565b6040516104969190612672565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c191906129db565b610af4565b6040516104d39190612672565b60405180910390f35b3480156104e857600080fd5b506104f1610b3d565b005b3480156104ff57600080fd5b50610508610c90565b6040516105159190612920565b60405180910390f35b34801561052a57600080fd5b50610533610cb6565b6040516105409190612672565b60405180910390f35b34801561055557600080fd5b5061055e610cbc565b60405161056b9190612829565b60405180910390f35b34801561058057600080fd5b50610589610ccf565b6040516105969190612920565b60405180910390f35b3480156105ab57600080fd5b506105b4610cf8565b6040516105c1919061271d565b60405180910390f35b3480156105d657600080fd5b506105df610d35565b6040516105ec9190612672565b60405180910390f35b34801561060157600080fd5b5061061c600480360381019061061791906127ce565b610d3b565b6040516106299190612829565b60405180910390f35b34801561063e57600080fd5b50610659600480360381019061065491906127ce565b610de7565b6040516106669190612829565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190612a08565b610e05565b005b3480156106a457600080fd5b506106bf60048036038101906106ba9190612a9b565b610f2c565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190612adb565b61101c565b6040516106f59190612672565b60405180910390f35b34801561070a57600080fd5b50610725600480360381019061072091906129db565b6110a3565b005b60095481565b60606040518060400160405280600b81526020017f53686973756b6920696e75000000000000000000000000000000000000000000815250905090565b600061077e610777611264565b848461126c565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60006107c5848484611435565b610865846107d1611264565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061081b611264565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108609190612b4a565b61126c565b600190509392505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f8060000154908060010154905082565b60006009905090565b60006109536108be611264565b8484600460006108cc611264565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461094e9190612b7e565b61126c565b6001905092915050565b600d8060000154908060010154905082565b610977611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90612bfe565b60405180910390fd5b6103e8600654610a149190612c4d565b8183610a209190612b7e565b11610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790612cca565b60405180910390fd5b81600881905550806007819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b45611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600b60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5348494b49000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b6000610ddd610d48611264565b848460046000610d56611264565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd89190612b4a565b61126c565b6001905092915050565b6000610dfb610df4611264565b8484611435565b6001905092915050565b610e0d611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9190612bfe565b60405180910390fd5b60198385610ea89190612b7e565b1080610ebf575060198282610ebd9190612b7e565b105b610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef590612d36565b60405180910390fd5b82600d6000018190555083600d6001018190555080600f6000018190555081600f6001018190555050505050565b610f34611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890612bfe565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110ab611264565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112f90612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119e90612dc8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290612e5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612eec565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114289190612672565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149b90612f7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90613010565b60405180910390fd5b60008111611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d906130a2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115a59190612b4a565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116575750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561166157600190505b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561170b5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156117335742600a819055506001600b60006101000a81548160ff0219169083151502179055505b600b60009054906101000a900460ff16801561175d5750610258600a5461175a9190612b7e565b42115b80156117765750601360009054906101000a900460ff16155b1561180b576009600a61178991906131f5565b64746a5288006117999190613240565b6007819055506009600a6117ad91906131f5565b64746a5288006117bd9190613240565b6008819055506001600d600001819055506003600d600101819055506002600f60000181905550600a600f600101819055506001601360006101000a81548160ff0219169083151502179055505b600b60009054906101000a900460ff1680156118355750610384600a546118329190612b7e565b42115b801561184e5750601360019054906101000a900460ff16155b1561189b576001600d600001819055506003600d600101819055506001600f600001819055506003600f600101819055506001601360016101000a81548160ff0219169083151502179055505b8015611c3957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146119a05760085483111561193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906132f4565b60405180910390fd5b6007548361194886610af4565b6119529190612b7e565b1115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90613386565b60405180910390fd5b61199d8385611cfb565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ae9576000611a22600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af4565b14611a2c57600080fd5b600854831115611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a68906132f4565b60405180910390fd5b611a7b8386611e30565b9150600954611a8930610af4565b10158015611aa45750601360029054906101000a900460ff16155b15611ae8576001601360026101000a81548160ff021916908315150217905550611acc611f65565b6000601360026101000a81548160ff0219169083151502179055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b955750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c3857600854831115611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd6906132f4565b60405180910390fd5b60075483611bec86610af4565b611bf69190612b7e565b1115611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613386565b60405180910390fd5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c889190612b7e565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cec9190612672565b60405180910390a35050505050565b6000806064600d6000015485611d119190613240565b611d1b9190612c4d565b905060006064600d6001015486611d329190613240565b611d3c9190612c4d565b90508082611d4a9190612b7e565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d989190612b7e565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611dfa9190612b7e565b604051611e079190612672565b60405180910390a3808286611e1c9190612b4a565b611e269190612b4a565b9250505092915050565b6000806064600f6000015485611e469190613240565b611e509190612c4d565b905060006064600f6001015486611e679190613240565b611e719190612c4d565b90508082611e7f9190612b7e565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ecd9190612b7e565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611f2f9190612b7e565b604051611f3c9190612672565b60405180910390a3808286611f519190612b4a565b611f5b9190612b4a565b9250505092915050565b600060095490506000600f60000154600f60010154600d60000154600d60010154611f909190612b7e565b611f9a9190612b7e565b611fa49190612b7e565b600f60000154600d60000154611fba9190612b7e565b83611fc59190613240565b611fcf9190612c4d565b90506000600f60000154600f60010154600d60000154600d60010154611ff59190612b7e565b611fff9190612b7e565b6120099190612b7e565b600f60010154600d6001015461201f9190612b7e565b8461202a9190613240565b6120349190612c4d565b9050600081836120449190612b7e565b9050600061205c60028561214190919063ffffffff16565b90506000612073828761218b90919063ffffffff16565b90506000479050612083826121d5565b6000612098824761218b90919063ffffffff16565b905060006120c1866120b38a8561241890919063ffffffff16565b61214190919063ffffffff16565b90506120cd8582612492565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612135573d6000803e3d6000fd5b50505050505050505050565b600061218383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612592565b905092915050565b60006121cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125f5565b905092915050565b6000600267ffffffffffffffff8111156121f2576121f16133a6565b5b6040519080825280602002602001820160405280156122205781602001602082028036833780820191505090505b5090503081600081518110612238576122376133d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123039190613419565b81600181518110612317576123166133d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061237e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123e295949392919061353f565b600060405180830381600087803b1580156123fc57600080fd5b505af1158015612410573d6000803e3d6000fd5b505050505050565b600080830361242a576000905061248c565b600082846124389190613240565b90508284826124479190612c4d565b14612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e9061360b565b60405180910390fd5b809150505b92915050565b6124bf30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016125489695949392919061362b565b60606040518083038185885af1158015612566573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061258b91906136a1565b5050505050565b600080831182906125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d0919061271d565b60405180910390fd5b50600083856125e89190612c4d565b9050809150509392505050565b600083831115829061263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634919061271d565b60405180910390fd5b506000838561264c9190612b4a565b9050809150509392505050565b6000819050919050565b61266c81612659565b82525050565b60006020820190506126876000830184612663565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126c75780820151818401526020810190506126ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006126ef8261268d565b6126f98185612698565b93506127098185602086016126a9565b612712816126d3565b840191505092915050565b6000602082019050818103600083015261273781846126e4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061276f82612744565b9050919050565b61277f81612764565b811461278a57600080fd5b50565b60008135905061279c81612776565b92915050565b6127ab81612659565b81146127b657600080fd5b50565b6000813590506127c8816127a2565b92915050565b600080604083850312156127e5576127e461273f565b5b60006127f38582860161278d565b9250506020612804858286016127b9565b9150509250929050565b60008115159050919050565b6128238161280e565b82525050565b600060208201905061283e600083018461281a565b92915050565b6000819050919050565b600061286961286461285f84612744565b612844565b612744565b9050919050565b600061287b8261284e565b9050919050565b600061288d82612870565b9050919050565b61289d81612882565b82525050565b60006020820190506128b86000830184612894565b92915050565b6000806000606084860312156128d7576128d661273f565b5b60006128e58682870161278d565b93505060206128f68682870161278d565b9250506040612907868287016127b9565b9150509250925092565b61291a81612764565b82525050565b60006020820190506129356000830184612911565b92915050565b60006040820190506129506000830185612663565b61295d6020830184612663565b9392505050565b600060ff82169050919050565b61297a81612964565b82525050565b60006020820190506129956000830184612971565b92915050565b600080604083850312156129b2576129b161273f565b5b60006129c0858286016127b9565b92505060206129d1858286016127b9565b9150509250929050565b6000602082840312156129f1576129f061273f565b5b60006129ff8482850161278d565b91505092915050565b60008060008060808587031215612a2257612a2161273f565b5b6000612a30878288016127b9565b9450506020612a41878288016127b9565b9350506040612a52878288016127b9565b9250506060612a63878288016127b9565b91505092959194509250565b612a788161280e565b8114612a8357600080fd5b50565b600081359050612a9581612a6f565b92915050565b60008060408385031215612ab257612ab161273f565b5b6000612ac08582860161278d565b9250506020612ad185828601612a86565b9150509250929050565b60008060408385031215612af257612af161273f565b5b6000612b008582860161278d565b9250506020612b118582860161278d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b5582612659565b9150612b6083612659565b9250828203905081811115612b7857612b77612b1b565b5b92915050565b6000612b8982612659565b9150612b9483612659565b9250828201905080821115612bac57612bab612b1b565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612be8602083612698565b9150612bf382612bb2565b602082019050919050565b60006020820190508181036000830152612c1781612bdb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c5882612659565b9150612c6383612659565b925082612c7357612c72612c1e565b5b828204905092915050565b7f53686f756c6420626520626967676572207468616e20302c3125000000000000600082015250565b6000612cb4601a83612698565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b7f43616e2774206368616e67652066656520686967686572207468616e20323425600082015250565b6000612d20602083612698565b9150612d2b82612cea565b602082019050919050565b60006020820190508181036000830152612d4f81612d13565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612db2602683612698565b9150612dbd82612d56565b604082019050919050565b60006020820190508181036000830152612de181612da5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e44602483612698565b9150612e4f82612de8565b604082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ed6602283612698565b9150612ee182612e7a565b604082019050919050565b60006020820190508181036000830152612f0581612ec9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f68602583612698565b9150612f7382612f0c565b604082019050919050565b60006020820190508181036000830152612f9781612f5b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ffa602383612698565b915061300582612f9e565b604082019050919050565b6000602082019050818103600083015261302981612fed565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061308c602983612698565b915061309782613030565b604082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613119578086048111156130f5576130f4612b1b565b5b60018516156131045780820291505b8081029050613112856130c2565b94506130d9565b94509492505050565b60008261313257600190506131ee565b8161314057600090506131ee565b816001811461315657600281146131605761318f565b60019150506131ee565b60ff84111561317257613171612b1b565b5b8360020a91508482111561318957613188612b1b565b5b506131ee565b5060208310610133831016604e8410600b84101617156131c45782820a9050838111156131bf576131be612b1b565b5b6131ee565b6131d184848460016130cf565b925090508184048111156131e8576131e7612b1b565b5b81810290505b9392505050565b600061320082612659565b915061320b83612964565b92506132387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613122565b905092915050565b600061324b82612659565b915061325683612659565b925082820261326481612659565b9150828204841483151761327b5761327a612b1b565b5b5092915050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b60006132de602983612698565b91506132e982613282565b604082019050919050565b6000602082019050818103600083015261330d816132d1565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000613370602c83612698565b915061337b82613314565b604082019050919050565b6000602082019050818103600083015261339f81613363565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061341381612776565b92915050565b60006020828403121561342f5761342e61273f565b5b600061343d84828501613404565b91505092915050565b6000819050919050565b600061346b61346661346184613446565b612844565b612659565b9050919050565b61347b81613450565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134b681612764565b82525050565b60006134c883836134ad565b60208301905092915050565b6000602082019050919050565b60006134ec82613481565b6134f6818561348c565b93506135018361349d565b8060005b8381101561353257815161351988826134bc565b9750613524836134d4565b925050600181019050613505565b5085935050505092915050565b600060a0820190506135546000830188612663565b6135616020830187613472565b818103604083015261357381866134e1565b90506135826060830185612911565b61358f6080830184612663565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135f5602183612698565b915061360082613599565b604082019050919050565b60006020820190508181036000830152613624816135e8565b9050919050565b600060c0820190506136406000830189612911565b61364d6020830188612663565b61365a6040830187613472565b6136676060830186613472565b6136746080830185612911565b61368160a0830184612663565b979650505050505050565b60008151905061369b816127a2565b92915050565b6000806000606084860312156136ba576136b961273f565b5b60006136c88682870161368c565b93505060206136d98682870161368c565b92505060406136ea8682870161368c565b915050925092509256fea2646970667358221220596c2433af2a3e695b5a5f01fed269e601da47cd2e75a9e908fd97621fff3d4464736f6c63430008110033

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

0000000000000000000000009f48e2d5a78b438f3861fbe71a002ee7d828ae35

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0x9F48E2D5a78b438f3861FBe71A002EE7D828Ae35

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f48e2d5a78b438f3861fbe71a002ee7d828ae35


Deployed Bytecode Sourcemap

4653:11047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5362:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7018:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7850:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4742:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7295:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8019:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5492:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5771:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7204:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8293:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5743:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;10505:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4792:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9874:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5230:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7398:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3178:148;;;;;;;;;;;;;:::i;:::-;;5531:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5298:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5463:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2964:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7109:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5430:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8516:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7524:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10005:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8753:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7699:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3334:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5362:61;;;;:::o;7018:83::-;7055:13;7088:5;;;;;;;;;;;;;;;;;7081:12;;7018:83;:::o;7850:161::-;7925:4;7942:39;7951:12;:10;:12::i;:::-;7965:7;7974:6;7942:8;:39::i;:::-;7999:4;7992:11;;7850:161;;;;:::o;4742:41::-;;;;;;;;;;;;;:::o;7295:95::-;7348:7;7375;;7368:14;;7295:95;:::o;8019:266::-;8117:4;8134:36;8144:6;8152:9;8163:6;8134:9;:36::i;:::-;8181:74;8190:6;8198:12;:10;:12::i;:::-;8248:6;8212:11;:19;8224:6;8212:19;;;;;;;;;;;;;;;:33;8232:12;:10;:12::i;:::-;8212:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;8181:8;:74::i;:::-;8273:4;8266:11;;8019:266;;;;;:::o;5492:32::-;;;;;;;;;;;;;:::o;5771:23::-;;;;;;;;;;;;;;:::o;7204:83::-;7245:5;5157:1;7263:16;;7204:83;:::o;8293:215::-;8381:4;8398:80;8407:12;:10;:12::i;:::-;8421:7;8467:10;8430:11;:25;8442:12;:10;:12::i;:::-;8430:25;;;;;;;;;;;;;;;:34;8456:7;8430:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8398:8;:80::i;:::-;8496:4;8489:11;;8293:215;;;;:::o;5743:21::-;;;;;;;;;;;;;;:::o;10505:238::-;3101:12;:10;:12::i;:::-;3091:22;;:6;;;;;;;;;;:22;;;3083:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10628:4:::1;10618:7;;:14;;;;:::i;:::-;10605:10;10596:6;:19;;;;:::i;:::-;:36;10588:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;10689:6;10674:12;:21;;;;10725:10;10706:16;:29;;;;10505:238:::0;;:::o;4792:28::-;;;;;;;;;;;;;:::o;9874:123::-;9938:4;9962:18;:27;9981:7;9962:27;;;;;;;;;;;;;;;;;;;;;;;;;9955:34;;9874:123;;;:::o;5230:61::-;;;;:::o;7398:118::-;7464:7;7491:8;:17;7500:7;7491:17;;;;;;;;;;;;;;;;7484:24;;7398:118;;;:::o;3178:148::-;3101:12;:10;:12::i;:::-;3091:22;;:6;;;;;;;;;;:22;;;3083:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3285:1:::1;3248:40;;3269:6;::::0;::::1;;;;;;;;3248:40;;;;;;;;;;;;3316:1;3299:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3178:148::o:0;5531:30::-;;;;;;;;;;;;;:::o;5298:57::-;;;;:::o;5463:20::-;;;;;;;;;;;;;:::o;2964:79::-;3002:7;3029:6;;;;;;;;;;;3022:13;;2964:79;:::o;7109:87::-;7148:13;7181:7;;;;;;;;;;;;;;;;;7174:14;;7109:87;:::o;5430:26::-;;;;:::o;8516:225::-;8609:4;8626:85;8635:12;:10;:12::i;:::-;8649:7;8695:15;8658:11;:25;8670:12;:10;:12::i;:::-;8658:25;;;;;;;;;;;;;;;:34;8684:7;8658:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;8626:8;:85::i;:::-;8729:4;8722:11;;8516:225;;;;:::o;7524:167::-;7602:4;7619:42;7629:12;:10;:12::i;:::-;7643:9;7654:6;7619:9;:42::i;:::-;7679:4;7672:11;;7524:167;;;;:::o;10005:492::-;3101:12;:10;:12::i;:::-;3091:22;;:6;;;;;;;;;;:22;;;3083:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10204:2:::1;10185:16;10166;:35;;;;:::i;:::-;:40;:86;;;;10250:2;10230:17;10210;:37;;;;:::i;:::-;:42;10166:86;10158:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;10329:16;10310:6;:16;;:35;;;;10375:16;10356:6;:16;;:35;;;;10424:17;10404:7;:17;;:37;;;;10472:17;10452:7;:17;;:37;;;;10005:492:::0;;;;:::o;8753:140::-;3101:12;:10;:12::i;:::-;3091:22;;:6;;;;;;;;;;:22;;;3083:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8877:8:::1;8838:18;:36;8865:7;8838:36;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;8753:140:::0;;:::o;7699:143::-;7780:7;7807:11;:18;7819:5;7807:18;;;;;;;;;;;;;;;:27;7826:7;7807:27;;;;;;;;;;;;;;;;7800:34;;7699:143;;;;:::o;3334:244::-;3101:12;:10;:12::i;:::-;3091:22;;:6;;;;;;;;;;:22;;;3083:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3443:1:::1;3423:22;;:8;:22;;::::0;3415:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3533:8;3504:38;;3525:6;::::0;::::1;;;;;;;;3504:38;;;;;;;;;;;;3562:8;3553:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3334:244:::0;:::o;2400:115::-;2453:15;2496:10;2481:26;;2400:115;:::o;10751:337::-;10861:1;10844:19;;:5;:19;;;10836:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10942:1;10923:21;;:7;:21;;;10915:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11026:6;10996:11;:18;11008:5;10996:18;;;;;;;;;;;;;;;:27;11015:7;10996:27;;;;;;;;;;;;;;;:36;;;;11064:7;11048:32;;11057:5;11048:32;;;11073:6;11048:32;;;;;;:::i;:::-;;;;;;;;10751:337;;;:::o;11096:2654::-;11234:1;11218:18;;:4;:18;;;11210:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11311:1;11297:16;;:2;:16;;;11289:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11381:1;11372:6;:10;11364:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11467:6;11449:8;:14;11458:4;11449:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;11484:22;11509:6;11484:31;;11536:12;11565:18;:24;11584:4;11565:24;;;;;;;;;;;;;;;;;;;;;;;;;11564:25;:52;;;;;11594:18;:22;11613:2;11594:22;;;;;;;;;;;;;;;;;;;;;;;;;11593:23;11564:52;11561:97;;;11642:4;11632:14;;11561:97;11689:17;;;;;;;;;;;11681:25;;:4;:25;;;:48;;;;;11716:13;;;;;;;;;;;11710:19;;:2;:19;;;11681:48;11678:139;;;11760:15;11746:11;:29;;;;11801:4;11790:8;;:15;;;;;;;;;;;;;;;;;;11678:139;11840:8;;;;;;;;;;;:47;;;;;11884:3;11870:11;;:17;;;;:::i;:::-;11852:15;:35;11840:47;:61;;;;;11892:9;;;;;;;;;;;11891:10;11840:61;11837:390;;;5157:1;11952:2;:13;;;;:::i;:::-;11937:12;:28;;;;:::i;:::-;11918:16;:47;;;;5157:1;12014:2;:13;;;;:::i;:::-;11999:12;:28;;;;:::i;:::-;11980:12;:47;;;;12075:1;12056:6;:16;;:20;;;;12110:1;12091:6;:16;;:20;;;;12146:1;12126:7;:17;;:21;;;;12182:2;12162:7;:17;;:22;;;;12211:4;12199:9;;:16;;;;;;;;;;;;;;;;;;11837:390;12242:8;;;;;;;;;;;:47;;;;;12286:3;12272:11;;:17;;;;:::i;:::-;12254:15;:35;12242:47;:62;;;;;12294:10;;;;;;;;;;;12293:11;12242:62;12239:253;;;12340:1;12321:6;:16;;:20;;;;12375:1;12356:6;:16;;:20;;;;12411:1;12391:7;:17;;:21;;;;12447:1;12427:7;:17;;:21;;;;12476:4;12463:10;;:17;;;;;;;;;;;;;;;;;;12239:253;12509:7;12506:1136;;;12541:13;;;;;;;;;;;12535:19;;:2;:19;;;12532:311;;12592:12;;12582:6;:22;;12574:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12703:16;;12693:6;12677:13;12687:2;12677:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;12669:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;12804:23;12816:6;12824:2;12804:11;:23::i;:::-;12787:40;;12532:311;12870:13;;;;;;;;;;;12862:21;;:4;:21;;;12859:479;;12952:1;12911:37;12929:17;;;;;;;;;;;12911:9;:37::i;:::-;:42;12903:51;;;;;;12991:12;;12981:6;:22;;12973:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13085:26;13098:6;13106:4;13085:12;:26::i;:::-;13068:43;;13163:17;;13135:24;13153:4;13135:9;:24::i;:::-;:45;;:58;;;;;13185:8;;;;;;;;;;;13184:9;13135:58;13131:192;;;13229:4;13218:8;;:15;;;;;;;;;;;;;;;;;;13256:10;:8;:10::i;:::-;13300:5;13289:8;;:16;;;;;;;;;;;;;;;;;;13131:192;12859:479;13363:13;;;;;;;;;;;13357:19;;:2;:19;;;;:44;;;;;13388:13;;;;;;;;;;;13380:21;;:4;:21;;;;13357:44;13354:277;;;13439:12;;13429:6;:22;;13421:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13550:16;;13540:6;13524:13;13534:2;13524:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;13516:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;13354:277;12506:1136;13678:14;13662:8;:12;13671:2;13662:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13723:2;13708:34;;13717:4;13708:34;;;13727:14;13708:34;;;;;;:::i;:::-;;;;;;;;11199:2551;;11096:2654;;;:::o;8942:456::-;9010:7;9030:25;9086:3;9067:6;:16;;;9058:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9030:59;;9101:26;9158:3;9139:6;:16;;;9130:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9101:60;;9221:18;9201:17;:38;;;;:::i;:::-;9174:8;:23;9191:4;9174:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;9279:4;9255:70;;9265:4;9255:70;;;9307:17;9286:18;:38;;;;:::i;:::-;9255:70;;;;;;:::i;:::-;;;;;;;;9371:18;9352:17;9344:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;9336:54;;;;8942:456;;;;:::o;9406:460::-;9475:7;9495:25;9552:3;9532:7;:17;;;9523:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9495:60;;9567:26;9625:3;9605:7;:17;;;9596:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9567:61;;9688:18;9668:17;:38;;;;:::i;:::-;9641:8;:23;9658:4;9641:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;9746:4;9722:71;;9732:4;9722:71;;;9774:17;9753:18;:38;;;;:::i;:::-;9722:71;;;;;;:::i;:::-;;;;;;;;9839:18;9820:17;9812:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;9804:54;;;;9406:460;;;;:::o;13761:1071::-;13800:23;13826:17;;13800:43;;13854:23;13998:7;:17;;;13978:7;:17;;;13959:6;:16;;;13940:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;13918:7;:17;;;13899:6;:16;;;:36;;;;:::i;:::-;13880:15;:56;;;;:::i;:::-;:136;;;;:::i;:::-;13854:162;;14027:23;14171:7;:17;;;14151:7;:17;;;14132:6;:16;;;14113:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;14091:7;:17;;;14072:6;:16;;;:36;;;;:::i;:::-;14053:15;:56;;;;:::i;:::-;:136;;;;:::i;:::-;14027:162;;14200:25;14246:15;14228;:33;;;;:::i;:::-;14200:61;;14282:26;14311:22;14331:1;14311:15;:19;;:22;;;;:::i;:::-;14282:51;;14344:26;14373:39;14393:18;14373:15;:19;;:39;;;;:::i;:::-;14344:68;;14423:25;14451:21;14423:49;;14483:36;14500:18;14483:16;:36::i;:::-;14531:18;14552:44;14578:17;14552:21;:25;;:44;;;;:::i;:::-;14531:65;;14617:23;14643:54;14679:17;14643:31;14658:15;14643:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;14617:80;;14708:49;14721:18;14741:15;14708:12;:49::i;:::-;14776:15;;;;;;;;;;;14768:33;;:56;14802:21;14768:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13789:1043;;;;;;;;;13761:1071::o;1630:132::-;1688:7;1715:39;1719:1;1722;1715:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1708:46;;1630:132;;;;:::o;1028:136::-;1086:7;1113:43;1117:1;1120;1113:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1106:50;;1028:136;;;;:::o;14840:475::-;14906:21;14944:1;14930:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14906:40;;14975:4;14957;14962:1;14957:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15001:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14991:4;14996:1;14991:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;15036:62;15053:4;15068:15;;;;;;;;;;;15086:11;15036:8;:62::i;:::-;15111:15;;;;;;;;;;;:66;;;15192:11;15218:1;15234:4;15261;15281:15;15111:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14895:420;14840:475;:::o;1372:250::-;1430:7;1459:1;1454;:6;1450:47;;1484:1;1477:8;;;;1450:47;1509:9;1525:1;1521;:5;;;;:::i;:::-;1509:17;;1554:1;1549;1545;:5;;;;:::i;:::-;:10;1537:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1613:1;1606:8;;;1372:250;;;;;:::o;15323:374::-;15404:62;15421:4;15436:15;;;;;;;;;;;15454:11;15404:8;:62::i;:::-;15479:15;;;;;;;;;;;:31;;;15519:9;15553:4;15573:11;15599:1;15615;15631:17;;;;;;;;;;;15663:15;15479:210;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15323:374;;:::o;1770:278::-;1856:7;1888:1;1884;:5;1891:12;1876:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1915:9;1931:1;1927;:5;;;;:::i;:::-;1915:17;;2039:1;2032:8;;;1770:278;;;;;:::o;1172:192::-;1258:7;1291:1;1286;:6;;1294:12;1278:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1318:9;1334:1;1330;:5;;;;:::i;:::-;1318:17;;1355:1;1348:8;;;1172:192;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:118::-;5483:24;5501:5;5483:24;:::i;:::-;5478:3;5471:37;5396:118;;:::o;5520:222::-;5613:4;5651:2;5640:9;5636:18;5628:26;;5664:71;5732:1;5721:9;5717:17;5708:6;5664:71;:::i;:::-;5520:222;;;;:::o;5748:332::-;5869:4;5907:2;5896:9;5892:18;5884:26;;5920:71;5988:1;5977:9;5973:17;5964:6;5920:71;:::i;:::-;6001:72;6069:2;6058:9;6054:18;6045:6;6001:72;:::i;:::-;5748:332;;;;;:::o;6086:86::-;6121:7;6161:4;6154:5;6150:16;6139:27;;6086:86;;;:::o;6178:112::-;6261:22;6277:5;6261:22;:::i;:::-;6256:3;6249:35;6178:112;;:::o;6296:214::-;6385:4;6423:2;6412:9;6408:18;6400:26;;6436:67;6500:1;6489:9;6485:17;6476:6;6436:67;:::i;:::-;6296:214;;;;:::o;6516:474::-;6584:6;6592;6641:2;6629:9;6620:7;6616:23;6612:32;6609:119;;;6647:79;;:::i;:::-;6609:119;6767:1;6792:53;6837:7;6828:6;6817:9;6813:22;6792:53;:::i;:::-;6782:63;;6738:117;6894:2;6920:53;6965:7;6956:6;6945:9;6941:22;6920:53;:::i;:::-;6910:63;;6865:118;6516:474;;;;;:::o;6996:329::-;7055:6;7104:2;7092:9;7083:7;7079:23;7075:32;7072:119;;;7110:79;;:::i;:::-;7072:119;7230:1;7255:53;7300:7;7291:6;7280:9;7276:22;7255:53;:::i;:::-;7245:63;;7201:117;6996:329;;;;:::o;7331:765::-;7417:6;7425;7433;7441;7490:3;7478:9;7469:7;7465:23;7461:33;7458:120;;;7497:79;;:::i;:::-;7458:120;7617:1;7642:53;7687:7;7678:6;7667:9;7663:22;7642:53;:::i;:::-;7632:63;;7588:117;7744:2;7770:53;7815:7;7806:6;7795:9;7791:22;7770:53;:::i;:::-;7760:63;;7715:118;7872:2;7898:53;7943:7;7934:6;7923:9;7919:22;7898:53;:::i;:::-;7888:63;;7843:118;8000:2;8026:53;8071:7;8062:6;8051:9;8047:22;8026:53;:::i;:::-;8016:63;;7971:118;7331:765;;;;;;;:::o;8102:116::-;8172:21;8187:5;8172:21;:::i;:::-;8165:5;8162:32;8152:60;;8208:1;8205;8198:12;8152:60;8102:116;:::o;8224:133::-;8267:5;8305:6;8292:20;8283:29;;8321:30;8345:5;8321:30;:::i;:::-;8224:133;;;;:::o;8363:468::-;8428:6;8436;8485:2;8473:9;8464:7;8460:23;8456:32;8453:119;;;8491:79;;:::i;:::-;8453:119;8611:1;8636:53;8681:7;8672:6;8661:9;8657:22;8636:53;:::i;:::-;8626:63;;8582:117;8738:2;8764:50;8806:7;8797:6;8786:9;8782:22;8764:50;:::i;:::-;8754:60;;8709:115;8363:468;;;;;:::o;8837:474::-;8905:6;8913;8962:2;8950:9;8941:7;8937:23;8933:32;8930:119;;;8968:79;;:::i;:::-;8930:119;9088:1;9113:53;9158:7;9149:6;9138:9;9134:22;9113:53;:::i;:::-;9103:63;;9059:117;9215:2;9241:53;9286:7;9277:6;9266:9;9262:22;9241:53;:::i;:::-;9231:63;;9186:118;8837:474;;;;;:::o;9317:180::-;9365:77;9362:1;9355:88;9462:4;9459:1;9452:15;9486:4;9483:1;9476:15;9503:194;9543:4;9563:20;9581:1;9563:20;:::i;:::-;9558:25;;9597:20;9615:1;9597:20;:::i;:::-;9592:25;;9641:1;9638;9634:9;9626:17;;9665:1;9659:4;9656:11;9653:37;;;9670:18;;:::i;:::-;9653:37;9503:194;;;;:::o;9703:191::-;9743:3;9762:20;9780:1;9762:20;:::i;:::-;9757:25;;9796:20;9814:1;9796:20;:::i;:::-;9791:25;;9839:1;9836;9832:9;9825:16;;9860:3;9857:1;9854:10;9851:36;;;9867:18;;:::i;:::-;9851:36;9703:191;;;;:::o;9900:182::-;10040:34;10036:1;10028:6;10024:14;10017:58;9900:182;:::o;10088:366::-;10230:3;10251:67;10315:2;10310:3;10251:67;:::i;:::-;10244:74;;10327:93;10416:3;10327:93;:::i;:::-;10445:2;10440:3;10436:12;10429:19;;10088:366;;;:::o;10460:419::-;10626:4;10664:2;10653:9;10649:18;10641:26;;10713:9;10707:4;10703:20;10699:1;10688:9;10684:17;10677:47;10741:131;10867:4;10741:131;:::i;:::-;10733:139;;10460:419;;;:::o;10885:180::-;10933:77;10930:1;10923:88;11030:4;11027:1;11020:15;11054:4;11051:1;11044:15;11071:185;11111:1;11128:20;11146:1;11128:20;:::i;:::-;11123:25;;11162:20;11180:1;11162:20;:::i;:::-;11157:25;;11201:1;11191:35;;11206:18;;:::i;:::-;11191:35;11248:1;11245;11241:9;11236:14;;11071:185;;;;:::o;11262:176::-;11402:28;11398:1;11390:6;11386:14;11379:52;11262:176;:::o;11444:366::-;11586:3;11607:67;11671:2;11666:3;11607:67;:::i;:::-;11600:74;;11683:93;11772:3;11683:93;:::i;:::-;11801:2;11796:3;11792:12;11785:19;;11444:366;;;:::o;11816:419::-;11982:4;12020:2;12009:9;12005:18;11997:26;;12069:9;12063:4;12059:20;12055:1;12044:9;12040:17;12033:47;12097:131;12223:4;12097:131;:::i;:::-;12089:139;;11816:419;;;:::o;12241:182::-;12381:34;12377:1;12369:6;12365:14;12358:58;12241:182;:::o;12429:366::-;12571:3;12592:67;12656:2;12651:3;12592:67;:::i;:::-;12585:74;;12668:93;12757:3;12668:93;:::i;:::-;12786:2;12781:3;12777:12;12770:19;;12429:366;;;:::o;12801:419::-;12967:4;13005:2;12994:9;12990:18;12982:26;;13054:9;13048:4;13044:20;13040:1;13029:9;13025:17;13018:47;13082:131;13208:4;13082:131;:::i;:::-;13074:139;;12801:419;;;:::o;13226:225::-;13366:34;13362:1;13354:6;13350:14;13343:58;13435:8;13430:2;13422:6;13418:15;13411:33;13226:225;:::o;13457:366::-;13599:3;13620:67;13684:2;13679:3;13620:67;:::i;:::-;13613:74;;13696:93;13785:3;13696:93;:::i;:::-;13814:2;13809:3;13805:12;13798:19;;13457:366;;;:::o;13829:419::-;13995:4;14033:2;14022:9;14018:18;14010:26;;14082:9;14076:4;14072:20;14068:1;14057:9;14053:17;14046:47;14110:131;14236:4;14110:131;:::i;:::-;14102:139;;13829:419;;;:::o;14254:223::-;14394:34;14390:1;14382:6;14378:14;14371:58;14463:6;14458:2;14450:6;14446:15;14439:31;14254:223;:::o;14483:366::-;14625:3;14646:67;14710:2;14705:3;14646:67;:::i;:::-;14639:74;;14722:93;14811:3;14722:93;:::i;:::-;14840:2;14835:3;14831:12;14824:19;;14483:366;;;:::o;14855:419::-;15021:4;15059:2;15048:9;15044:18;15036:26;;15108:9;15102:4;15098:20;15094:1;15083:9;15079:17;15072:47;15136:131;15262:4;15136:131;:::i;:::-;15128:139;;14855:419;;;:::o;15280:221::-;15420:34;15416:1;15408:6;15404:14;15397:58;15489:4;15484:2;15476:6;15472:15;15465:29;15280:221;:::o;15507:366::-;15649:3;15670:67;15734:2;15729:3;15670:67;:::i;:::-;15663:74;;15746:93;15835:3;15746:93;:::i;:::-;15864:2;15859:3;15855:12;15848:19;;15507:366;;;:::o;15879:419::-;16045:4;16083:2;16072:9;16068:18;16060:26;;16132:9;16126:4;16122:20;16118:1;16107:9;16103:17;16096:47;16160:131;16286:4;16160:131;:::i;:::-;16152:139;;15879:419;;;:::o;16304:224::-;16444:34;16440:1;16432:6;16428:14;16421:58;16513:7;16508:2;16500:6;16496:15;16489:32;16304:224;:::o;16534:366::-;16676:3;16697:67;16761:2;16756:3;16697:67;:::i;:::-;16690:74;;16773:93;16862:3;16773:93;:::i;:::-;16891:2;16886:3;16882:12;16875:19;;16534:366;;;:::o;16906:419::-;17072:4;17110:2;17099:9;17095:18;17087:26;;17159:9;17153:4;17149:20;17145:1;17134:9;17130:17;17123:47;17187:131;17313:4;17187:131;:::i;:::-;17179:139;;16906:419;;;:::o;17331:222::-;17471:34;17467:1;17459:6;17455:14;17448:58;17540:5;17535:2;17527:6;17523:15;17516:30;17331:222;:::o;17559:366::-;17701:3;17722:67;17786:2;17781:3;17722:67;:::i;:::-;17715:74;;17798:93;17887:3;17798:93;:::i;:::-;17916:2;17911:3;17907:12;17900:19;;17559:366;;;:::o;17931:419::-;18097:4;18135:2;18124:9;18120:18;18112:26;;18184:9;18178:4;18174:20;18170:1;18159:9;18155:17;18148:47;18212:131;18338:4;18212:131;:::i;:::-;18204:139;;17931:419;;;:::o;18356:228::-;18496:34;18492:1;18484:6;18480:14;18473:58;18565:11;18560:2;18552:6;18548:15;18541:36;18356:228;:::o;18590:366::-;18732:3;18753:67;18817:2;18812:3;18753:67;:::i;:::-;18746:74;;18829:93;18918:3;18829:93;:::i;:::-;18947:2;18942:3;18938:12;18931:19;;18590:366;;;:::o;18962:419::-;19128:4;19166:2;19155:9;19151:18;19143:26;;19215:9;19209:4;19205:20;19201:1;19190:9;19186:17;19179:47;19243:131;19369:4;19243:131;:::i;:::-;19235:139;;18962:419;;;:::o;19387:102::-;19429:8;19476:5;19473:1;19469:13;19448:34;;19387:102;;;:::o;19495:848::-;19556:5;19563:4;19587:6;19578:15;;19611:5;19602:14;;19625:712;19646:1;19636:8;19633:15;19625:712;;;19741:4;19736:3;19732:14;19726:4;19723:24;19720:50;;;19750:18;;:::i;:::-;19720:50;19800:1;19790:8;19786:16;19783:451;;;20215:4;20208:5;20204:16;20195:25;;19783:451;20265:4;20259;20255:15;20247:23;;20295:32;20318:8;20295:32;:::i;:::-;20283:44;;19625:712;;;19495:848;;;;;;;:::o;20349:1073::-;20403:5;20594:8;20584:40;;20615:1;20606:10;;20617:5;;20584:40;20643:4;20633:36;;20660:1;20651:10;;20662:5;;20633:36;20729:4;20777:1;20772:27;;;;20813:1;20808:191;;;;20722:277;;20772:27;20790:1;20781:10;;20792:5;;;20808:191;20853:3;20843:8;20840:17;20837:43;;;20860:18;;:::i;:::-;20837:43;20909:8;20906:1;20902:16;20893:25;;20944:3;20937:5;20934:14;20931:40;;;20951:18;;:::i;:::-;20931:40;20984:5;;;20722:277;;21108:2;21098:8;21095:16;21089:3;21083:4;21080:13;21076:36;21058:2;21048:8;21045:16;21040:2;21034:4;21031:12;21027:35;21011:111;21008:246;;;21164:8;21158:4;21154:19;21145:28;;21199:3;21192:5;21189:14;21186:40;;;21206:18;;:::i;:::-;21186:40;21239:5;;21008:246;21279:42;21317:3;21307:8;21301:4;21298:1;21279:42;:::i;:::-;21264:57;;;;21353:4;21348:3;21344:14;21337:5;21334:25;21331:51;;;21362:18;;:::i;:::-;21331:51;21411:4;21404:5;21400:16;21391:25;;20349:1073;;;;;;:::o;21428:281::-;21486:5;21510:23;21528:4;21510:23;:::i;:::-;21502:31;;21554:25;21570:8;21554:25;:::i;:::-;21542:37;;21598:104;21635:66;21625:8;21619:4;21598:104;:::i;:::-;21589:113;;21428:281;;;;:::o;21715:410::-;21755:7;21778:20;21796:1;21778:20;:::i;:::-;21773:25;;21812:20;21830:1;21812:20;:::i;:::-;21807:25;;21867:1;21864;21860:9;21889:30;21907:11;21889:30;:::i;:::-;21878:41;;22068:1;22059:7;22055:15;22052:1;22049:22;22029:1;22022:9;22002:83;21979:139;;22098:18;;:::i;:::-;21979:139;21763:362;21715:410;;;;:::o;22131:228::-;22271:34;22267:1;22259:6;22255:14;22248:58;22340:11;22335:2;22327:6;22323:15;22316:36;22131:228;:::o;22365:366::-;22507:3;22528:67;22592:2;22587:3;22528:67;:::i;:::-;22521:74;;22604:93;22693:3;22604:93;:::i;:::-;22722:2;22717:3;22713:12;22706:19;;22365:366;;;:::o;22737:419::-;22903:4;22941:2;22930:9;22926:18;22918:26;;22990:9;22984:4;22980:20;22976:1;22965:9;22961:17;22954:47;23018:131;23144:4;23018:131;:::i;:::-;23010:139;;22737:419;;;:::o;23162:231::-;23302:34;23298:1;23290:6;23286:14;23279:58;23371:14;23366:2;23358:6;23354:15;23347:39;23162:231;:::o;23399:366::-;23541:3;23562:67;23626:2;23621:3;23562:67;:::i;:::-;23555:74;;23638:93;23727:3;23638:93;:::i;:::-;23756:2;23751:3;23747:12;23740:19;;23399:366;;;:::o;23771:419::-;23937:4;23975:2;23964:9;23960:18;23952:26;;24024:9;24018:4;24014:20;24010:1;23999:9;23995:17;23988:47;24052:131;24178:4;24052:131;:::i;:::-;24044:139;;23771:419;;;:::o;24196:180::-;24244:77;24241:1;24234:88;24341:4;24338:1;24331:15;24365:4;24362:1;24355:15;24382:180;24430:77;24427:1;24420:88;24527:4;24524:1;24517:15;24551:4;24548:1;24541:15;24568:143;24625:5;24656:6;24650:13;24641:22;;24672:33;24699:5;24672:33;:::i;:::-;24568:143;;;;:::o;24717:351::-;24787:6;24836:2;24824:9;24815:7;24811:23;24807:32;24804:119;;;24842:79;;:::i;:::-;24804:119;24962:1;24987:64;25043:7;25034:6;25023:9;25019:22;24987:64;:::i;:::-;24977:74;;24933:128;24717:351;;;;:::o;25074:85::-;25119:7;25148:5;25137:16;;25074:85;;;:::o;25165:158::-;25223:9;25256:61;25274:42;25283:32;25309:5;25283:32;:::i;:::-;25274:42;:::i;:::-;25256:61;:::i;:::-;25243:74;;25165:158;;;:::o;25329:147::-;25424:45;25463:5;25424:45;:::i;:::-;25419:3;25412:58;25329:147;;:::o;25482:114::-;25549:6;25583:5;25577:12;25567:22;;25482:114;;;:::o;25602:184::-;25701:11;25735:6;25730:3;25723:19;25775:4;25770:3;25766:14;25751:29;;25602:184;;;;:::o;25792:132::-;25859:4;25882:3;25874:11;;25912:4;25907:3;25903:14;25895:22;;25792:132;;;:::o;25930:108::-;26007:24;26025:5;26007:24;:::i;:::-;26002:3;25995:37;25930:108;;:::o;26044:179::-;26113:10;26134:46;26176:3;26168:6;26134:46;:::i;:::-;26212:4;26207:3;26203:14;26189:28;;26044:179;;;;:::o;26229:113::-;26299:4;26331;26326:3;26322:14;26314:22;;26229:113;;;:::o;26378:732::-;26497:3;26526:54;26574:5;26526:54;:::i;:::-;26596:86;26675:6;26670:3;26596:86;:::i;:::-;26589:93;;26706:56;26756:5;26706:56;:::i;:::-;26785:7;26816:1;26801:284;26826:6;26823:1;26820:13;26801:284;;;26902:6;26896:13;26929:63;26988:3;26973:13;26929:63;:::i;:::-;26922:70;;27015:60;27068:6;27015:60;:::i;:::-;27005:70;;26861:224;26848:1;26845;26841:9;26836:14;;26801:284;;;26805:14;27101:3;27094:10;;26502:608;;;26378:732;;;;:::o;27116:831::-;27379:4;27417:3;27406:9;27402:19;27394:27;;27431:71;27499:1;27488:9;27484:17;27475:6;27431:71;:::i;:::-;27512:80;27588:2;27577:9;27573:18;27564:6;27512:80;:::i;:::-;27639:9;27633:4;27629:20;27624:2;27613:9;27609:18;27602:48;27667:108;27770:4;27761:6;27667:108;:::i;:::-;27659:116;;27785:72;27853:2;27842:9;27838:18;27829:6;27785:72;:::i;:::-;27867:73;27935:3;27924:9;27920:19;27911:6;27867:73;:::i;:::-;27116:831;;;;;;;;:::o;27953:220::-;28093:34;28089:1;28081:6;28077:14;28070:58;28162:3;28157:2;28149:6;28145:15;28138:28;27953:220;:::o;28179:366::-;28321:3;28342:67;28406:2;28401:3;28342:67;:::i;:::-;28335:74;;28418:93;28507:3;28418:93;:::i;:::-;28536:2;28531:3;28527:12;28520:19;;28179:366;;;:::o;28551:419::-;28717:4;28755:2;28744:9;28740:18;28732:26;;28804:9;28798:4;28794:20;28790:1;28779:9;28775:17;28768:47;28832:131;28958:4;28832:131;:::i;:::-;28824:139;;28551:419;;;:::o;28976:807::-;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:73;29688:3;29677:9;29673:19;29664:6;29620:73;:::i;:::-;29703;29771:3;29760:9;29756:19;29747:6;29703:73;:::i;:::-;28976:807;;;;;;;;;:::o;29789:143::-;29846:5;29877:6;29871:13;29862:22;;29893:33;29920:5;29893:33;:::i;:::-;29789:143;;;;:::o;29938:663::-;30026:6;30034;30042;30091:2;30079:9;30070:7;30066:23;30062:32;30059:119;;;30097:79;;:::i;:::-;30059:119;30217:1;30242:64;30298:7;30289:6;30278:9;30274:22;30242:64;:::i;:::-;30232:74;;30188:128;30355:2;30381:64;30437:7;30428:6;30417:9;30413:22;30381:64;:::i;:::-;30371:74;;30326:129;30494:2;30520:64;30576:7;30567:6;30556:9;30552:22;30520:64;:::i;:::-;30510:74;;30465:129;29938:663;;;;;:::o

Swarm Source

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