ETH Price: $2,373.10 (-3.34%)

Token

The Plague Of Frogs (Frogs)
 

Overview

Max Total Supply

1,000,000,000,000 Frogs

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,910,000,000 Frogs

Value
$0.00
0x9f897fa6ef3b410035d087aa52db9eb4286bc221
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:
Frogs

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**


https://www.plaguebrands.io/

*/


// SPDX-License-Identifier: MIT
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;
}

interface IUniswapV2Pair {
    function sync() external;
}

contract Frogs 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 = "The Plague Of Frogs";
    string private constant _symbol = "Frogs";
    uint8 private constant _decimals = 9;
    uint256 private _tTotal =  1000000000000  * 10**_decimals;

    uint256 public _maxWalletAmount = 10000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 20000000000 * 10**_decimals;
    uint256 public swapTokenAtAmount = 100000* 10**_decimals;
    uint256 public forceSwapCount;

    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 swapping;
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor (address marketingAddress, address liquidityAddress) {
        marketingWallet = marketingAddress;
        liquidityReceiver = liquidityAddress;

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

        sellFee.liquidity = 0;
        sellFee.marketing = 100;

        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 < 50 || _sellLiquidityFee + _sellMarketingFee < 50, "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(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(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                transferAmount = takeSellFees(amount, from);
                forceSwapCount += 1;

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

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

            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(uint256 amount) private {
        uint256 contractBalance = amount;
        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"},{"internalType":"address","name":"liquidityAddress","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":[],"name":"forceSwapCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","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"}]

60806040526009600a62000014919062000807565b64e8d4a5100062000026919062000858565b6006556009600a62000039919062000807565b6402540be4006200004b919062000858565b6007556009600a6200005e919062000807565b6404a817c80062000070919062000858565b6008556009600a62000083919062000807565b620186a062000093919062000858565b600955348015620000a357600080fd5b5060405162003d8c38038062003d8c8339818101604052810190620000c991906200090d565b6000620000db6200066560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460036000620002126200066560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600d60000181905550600a600d600101819055506000600f600001819055506064600f600101819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000309919062000954565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000371573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000397919062000954565b6040518363ffffffff1660e01b8152600401620003b692919062000997565b6020604051808303816000875af1158015620003d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fc919062000954565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005f26200066560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620006539190620009d5565b60405180910390a350505050620009f2565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006fb57808604811115620006d357620006d26200066d565b5b6001851615620006e35780820291505b8081029050620006f3856200069c565b9450620006b3565b94509492505050565b600082620007165760019050620007e9565b81620007265760009050620007e9565b81600181146200073f57600281146200074a5762000780565b6001915050620007e9565b60ff8411156200075f576200075e6200066d565b5b8360020a9150848211156200077957620007786200066d565b5b50620007e9565b5060208310610133831016604e8410600b8410161715620007ba5782820a905083811115620007b457620007b36200066d565b5b620007e9565b620007c98484846001620006a9565b92509050818404811115620007e357620007e26200066d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200081482620007f0565b91506200082183620007fa565b9250620008507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000704565b905092915050565b60006200086582620007f0565b91506200087283620007f0565b92508282026200088281620007f0565b915082820484148315176200089c576200089b6200066d565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008d582620008a8565b9050919050565b620008e781620008c8565b8114620008f357600080fd5b50565b6000815190506200090781620008dc565b92915050565b60008060408385031215620009275762000926620008a3565b5b60006200093785828601620008f6565b92505060206200094a85828601620008f6565b9150509250929050565b6000602082840312156200096d576200096c620008a3565b5b60006200097d84828501620008f6565b91505092915050565b6200099181620008c8565b82525050565b6000604082019050620009ae600083018562000986565b620009bd602083018462000986565b9392505050565b620009cf81620007f0565b82525050565b6000602082019050620009ec6000830184620009c4565b92915050565b61338a8062000a026000396000f3fe6080604052600436106101bb5760003560e01c80636c0a24eb116100ec578063a457c2d71161008a578063c024666811610064578063c024666814610637578063c589829d14610660578063dd62ed3e1461068b578063f2fde38b146106c8576101c2565b8063a457c2d714610594578063a9059cbb146105d1578063b1192e181461060e576101c2565b806375f0a874116100c657806375f0a874146104e85780637d1db4a5146105135780638da5cb5b1461053e57806395d89b4114610569576101c2565b80636c0a24eb1461046957806370a0823114610494578063715018a6146104d1576101c2565b80632b14ca5611610159578063470624021161013357806347062402146103ac5780634716b2c3146103d857806349bd5a5e146104015780635342acb41461042c576101c2565b80632b14ca5614610318578063313ce56714610344578063395093511461036f576101c2565b80631694505e116101955780631694505e1461025a57806318160ddd1461028557806323b872dd146102b0578063264d26dd146102ed576101c2565b806303e403b0146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106f1565b6040516101e99190612450565b60405180910390f35b3480156101fe57600080fd5b506102076106f7565b60405161021491906124fb565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906125ac565b610734565b6040516102519190612607565b60405180910390f35b34801561026657600080fd5b5061026f610752565b60405161027c9190612681565b60405180910390f35b34801561029157600080fd5b5061029a610778565b6040516102a79190612450565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d2919061269c565b610782565b6040516102e49190612607565b60405180910390f35b3480156102f957600080fd5b5061030261083a565b60405161030f91906126fe565b60405180910390f35b34801561032457600080fd5b5061032d610860565b60405161033b929190612719565b60405180910390f35b34801561035057600080fd5b50610359610872565b604051610366919061275e565b60405180910390f35b34801561037b57600080fd5b50610396600480360381019061039191906125ac565b61087b565b6040516103a39190612607565b60405180910390f35b3480156103b857600080fd5b506103c1610927565b6040516103cf929190612719565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612779565b610939565b005b34801561040d57600080fd5b50610416610a3c565b60405161042391906126fe565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e91906127b9565b610a62565b6040516104609190612607565b60405180910390f35b34801561047557600080fd5b5061047e610ab8565b60405161048b9190612450565b60405180910390f35b3480156104a057600080fd5b506104bb60048036038101906104b691906127b9565b610abe565b6040516104c89190612450565b60405180910390f35b3480156104dd57600080fd5b506104e6610b07565b005b3480156104f457600080fd5b506104fd610c5a565b60405161050a91906126fe565b60405180910390f35b34801561051f57600080fd5b50610528610c80565b6040516105359190612450565b60405180910390f35b34801561054a57600080fd5b50610553610c86565b60405161056091906126fe565b60405180910390f35b34801561057557600080fd5b5061057e610caf565b60405161058b91906124fb565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906125ac565b610cec565b6040516105c89190612607565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906125ac565b610d98565b6040516106059190612607565b60405180910390f35b34801561061a57600080fd5b50610635600480360381019061063091906127e6565b610db6565b005b34801561064357600080fd5b5061065e60048036038101906106599190612879565b610edd565b005b34801561066c57600080fd5b50610675610fcd565b6040516106829190612450565b60405180910390f35b34801561069757600080fd5b506106b260048036038101906106ad91906128b9565b610fd3565b6040516106bf9190612450565b60405180910390f35b3480156106d457600080fd5b506106ef60048036038101906106ea91906127b9565b61105a565b005b60095481565b60606040518060400160405280601381526020017f54686520506c61677565204f662046726f677300000000000000000000000000815250905090565b600061074861074161121b565b8484611223565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600061078f8484846113ec565b61082f8461079b61121b565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107e561121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461082a9190612928565b611223565b600190509392505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f8060000154908060010154905082565b60006009905090565b600061091d61088861121b565b84846004600061089661121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610918919061295c565b611223565b6001905092915050565b600d8060000154908060010154905082565b61094161121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c5906129dc565b60405180910390fd5b6103e86006546109de9190612a2b565b81836109ea919061295c565b11610a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2190612aa8565b60405180910390fd5b81600881905550806007819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b0f61121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906129dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f46726f6773000000000000000000000000000000000000000000000000000000815250905090565b6000610d8e610cf961121b565b848460046000610d0761121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d899190612928565b611223565b6001905092915050565b6000610dac610da561121b565b84846113ec565b6001905092915050565b610dbe61121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e42906129dc565b60405180910390fd5b60328385610e59919061295c565b1080610e70575060328282610e6e919061295c565b105b610eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea690612b14565b60405180910390fd5b82600d6000018190555083600d6001018190555080600f6000018190555081600f6001018190555050505050565b610ee561121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f69906129dc565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61106261121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e6906129dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612ba6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128990612c38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f890612cca565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113df9190612450565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290612d5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c190612dee565b60405180910390fd5b6000811161150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612e80565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461155c9190612928565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561160e5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561161857600190505b8015611a1857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461171d576008548311156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90612f12565b60405180910390fd5b600754836116c586610abe565b6116cf919061295c565b1115611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790612fa4565b60405180910390fd5b61171a8385611ada565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146118c8576008548311156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90612f12565b60405180910390fd5b6117c18386611c0f565b91506001600a60008282546117d6919061295c565b925050819055506009546117e930610abe565b101580156118045750601360009054906101000a900460ff16155b15611853576001601360006101000a81548160ff02191690831515021790555061182f600954611d44565b6000601360006101000a81548160ff0219169083151502179055506000600a819055505b6005600a541180156118725750601360009054906101000a900460ff16155b156118c7576001601360006101000a81548160ff0219169083151502179055506118a361189e30610abe565b611d44565b6000601360006101000a81548160ff0219169083151502179055506000600a819055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119745750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a17576008548311156119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b590612f12565b60405180910390fd5b600754836119cb86610abe565b6119d5919061295c565b1115611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d90612fa4565b60405180910390fd5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a67919061295c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611acb9190612450565b60405180910390a35050505050565b6000806064600d6000015485611af09190612fc4565b611afa9190612a2b565b905060006064600d6001015486611b119190612fc4565b611b1b9190612a2b565b90508082611b29919061295c565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b77919061295c565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611bd9919061295c565b604051611be69190612450565b60405180910390a3808286611bfb9190612928565b611c059190612928565b9250505092915050565b6000806064600f6000015485611c259190612fc4565b611c2f9190612a2b565b905060006064600f6001015486611c469190612fc4565b611c509190612a2b565b90508082611c5e919061295c565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cac919061295c565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611d0e919061295c565b604051611d1b9190612450565b60405180910390a3808286611d309190612928565b611d3a9190612928565b9250505092915050565b60008190506000600f60000154600f60010154600d60000154600d60010154611d6d919061295c565b611d77919061295c565b611d81919061295c565b600f60000154600d60000154611d97919061295c565b83611da29190612fc4565b611dac9190612a2b565b90506000600f60000154600f60010154600d60000154600d60010154611dd2919061295c565b611ddc919061295c565b611de6919061295c565b600f60010154600d60010154611dfc919061295c565b84611e079190612fc4565b611e119190612a2b565b905060008183611e21919061295c565b90506000611e39600285611f1f90919063ffffffff16565b90506000611e508287611f6990919063ffffffff16565b90506000479050611e6082611fb3565b6000611e758247611f6990919063ffffffff16565b90506000611e9e86611e908a856121f690919063ffffffff16565b611f1f90919063ffffffff16565b9050611eaa8582612270565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f12573d6000803e3d6000fd5b5050505050505050505050565b6000611f6183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612370565b905092915050565b6000611fab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123d3565b905092915050565b6000600267ffffffffffffffff811115611fd057611fcf613006565b5b604051908082528060200260200182016040528015611ffe5781602001602082028036833780820191505090505b509050308160008151811061201657612015613035565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e19190613079565b816001815181106120f5576120f4613035565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061215c30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611223565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121c095949392919061319f565b600060405180830381600087803b1580156121da57600080fd5b505af11580156121ee573d6000803e3d6000fd5b505050505050565b6000808303612208576000905061226a565b600082846122169190612fc4565b90508284826122259190612a2b565b14612265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225c9061326b565b60405180910390fd5b809150505b92915050565b61229d30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611223565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016123269695949392919061328b565b60606040518083038185885af1158015612344573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123699190613301565b5050505050565b600080831182906123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae91906124fb565b60405180910390fd5b50600083856123c69190612a2b565b9050809150509392505050565b600083831115829061241b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241291906124fb565b60405180910390fd5b506000838561242a9190612928565b9050809150509392505050565b6000819050919050565b61244a81612437565b82525050565b60006020820190506124656000830184612441565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124a557808201518184015260208101905061248a565b60008484015250505050565b6000601f19601f8301169050919050565b60006124cd8261246b565b6124d78185612476565b93506124e7818560208601612487565b6124f0816124b1565b840191505092915050565b6000602082019050818103600083015261251581846124c2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254d82612522565b9050919050565b61255d81612542565b811461256857600080fd5b50565b60008135905061257a81612554565b92915050565b61258981612437565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b600080604083850312156125c3576125c261251d565b5b60006125d18582860161256b565b92505060206125e285828601612597565b9150509250929050565b60008115159050919050565b612601816125ec565b82525050565b600060208201905061261c60008301846125f8565b92915050565b6000819050919050565b600061264761264261263d84612522565b612622565b612522565b9050919050565b60006126598261262c565b9050919050565b600061266b8261264e565b9050919050565b61267b81612660565b82525050565b60006020820190506126966000830184612672565b92915050565b6000806000606084860312156126b5576126b461251d565b5b60006126c38682870161256b565b93505060206126d48682870161256b565b92505060406126e586828701612597565b9150509250925092565b6126f881612542565b82525050565b600060208201905061271360008301846126ef565b92915050565b600060408201905061272e6000830185612441565b61273b6020830184612441565b9392505050565b600060ff82169050919050565b61275881612742565b82525050565b6000602082019050612773600083018461274f565b92915050565b600080604083850312156127905761278f61251d565b5b600061279e85828601612597565b92505060206127af85828601612597565b9150509250929050565b6000602082840312156127cf576127ce61251d565b5b60006127dd8482850161256b565b91505092915050565b60008060008060808587031215612800576127ff61251d565b5b600061280e87828801612597565b945050602061281f87828801612597565b935050604061283087828801612597565b925050606061284187828801612597565b91505092959194509250565b612856816125ec565b811461286157600080fd5b50565b6000813590506128738161284d565b92915050565b600080604083850312156128905761288f61251d565b5b600061289e8582860161256b565b92505060206128af85828601612864565b9150509250929050565b600080604083850312156128d0576128cf61251d565b5b60006128de8582860161256b565b92505060206128ef8582860161256b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061293382612437565b915061293e83612437565b9250828203905081811115612956576129556128f9565b5b92915050565b600061296782612437565b915061297283612437565b925082820190508082111561298a576129896128f9565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129c6602083612476565b91506129d182612990565b602082019050919050565b600060208201905081810360008301526129f5816129b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a3682612437565b9150612a4183612437565b925082612a5157612a506129fc565b5b828204905092915050565b7f53686f756c6420626520626967676572207468616e20302c3125000000000000600082015250565b6000612a92601a83612476565b9150612a9d82612a5c565b602082019050919050565b60006020820190508181036000830152612ac181612a85565b9050919050565b7f43616e2774206368616e67652066656520686967686572207468616e20323425600082015250565b6000612afe602083612476565b9150612b0982612ac8565b602082019050919050565b60006020820190508181036000830152612b2d81612af1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b90602683612476565b9150612b9b82612b34565b604082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c22602483612476565b9150612c2d82612bc6565b604082019050919050565b60006020820190508181036000830152612c5181612c15565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cb4602283612476565b9150612cbf82612c58565b604082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d46602583612476565b9150612d5182612cea565b604082019050919050565b60006020820190508181036000830152612d7581612d39565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dd8602383612476565b9150612de382612d7c565b604082019050919050565b60006020820190508181036000830152612e0781612dcb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e6a602983612476565b9150612e7582612e0e565b604082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b6000612efc602983612476565b9150612f0782612ea0565b604082019050919050565b60006020820190508181036000830152612f2b81612eef565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000612f8e602c83612476565b9150612f9982612f32565b604082019050919050565b60006020820190508181036000830152612fbd81612f81565b9050919050565b6000612fcf82612437565b9150612fda83612437565b9250828202612fe881612437565b91508282048414831517612fff57612ffe6128f9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061307381612554565b92915050565b60006020828403121561308f5761308e61251d565b5b600061309d84828501613064565b91505092915050565b6000819050919050565b60006130cb6130c66130c1846130a6565b612622565b612437565b9050919050565b6130db816130b0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61311681612542565b82525050565b6000613128838361310d565b60208301905092915050565b6000602082019050919050565b600061314c826130e1565b61315681856130ec565b9350613161836130fd565b8060005b83811015613192578151613179888261311c565b975061318483613134565b925050600181019050613165565b5085935050505092915050565b600060a0820190506131b46000830188612441565b6131c160208301876130d2565b81810360408301526131d38186613141565b90506131e260608301856126ef565b6131ef6080830184612441565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613255602183612476565b9150613260826131f9565b604082019050919050565b6000602082019050818103600083015261328481613248565b9050919050565b600060c0820190506132a060008301896126ef565b6132ad6020830188612441565b6132ba60408301876130d2565b6132c760608301866130d2565b6132d460808301856126ef565b6132e160a0830184612441565b979650505050505050565b6000815190506132fb81612580565b92915050565b60008060006060848603121561331a5761331961251d565b5b6000613328868287016132ec565b9350506020613339868287016132ec565b925050604061334a868287016132ec565b915050925092509256fea2646970667358221220ecd6b61bdd476e75847494f47bcad7d1e03dbb07d8773cacc6c276c287fbe6d464736f6c634300081100330000000000000000000000000b9878bfda828fa79221eb3aeeccbf7710848af40000000000000000000000000b9878bfda828fa79221eb3aeeccbf7710848af4

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80636c0a24eb116100ec578063a457c2d71161008a578063c024666811610064578063c024666814610637578063c589829d14610660578063dd62ed3e1461068b578063f2fde38b146106c8576101c2565b8063a457c2d714610594578063a9059cbb146105d1578063b1192e181461060e576101c2565b806375f0a874116100c657806375f0a874146104e85780637d1db4a5146105135780638da5cb5b1461053e57806395d89b4114610569576101c2565b80636c0a24eb1461046957806370a0823114610494578063715018a6146104d1576101c2565b80632b14ca5611610159578063470624021161013357806347062402146103ac5780634716b2c3146103d857806349bd5a5e146104015780635342acb41461042c576101c2565b80632b14ca5614610318578063313ce56714610344578063395093511461036f576101c2565b80631694505e116101955780631694505e1461025a57806318160ddd1461028557806323b872dd146102b0578063264d26dd146102ed576101c2565b806303e403b0146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106f1565b6040516101e99190612450565b60405180910390f35b3480156101fe57600080fd5b506102076106f7565b60405161021491906124fb565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906125ac565b610734565b6040516102519190612607565b60405180910390f35b34801561026657600080fd5b5061026f610752565b60405161027c9190612681565b60405180910390f35b34801561029157600080fd5b5061029a610778565b6040516102a79190612450565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d2919061269c565b610782565b6040516102e49190612607565b60405180910390f35b3480156102f957600080fd5b5061030261083a565b60405161030f91906126fe565b60405180910390f35b34801561032457600080fd5b5061032d610860565b60405161033b929190612719565b60405180910390f35b34801561035057600080fd5b50610359610872565b604051610366919061275e565b60405180910390f35b34801561037b57600080fd5b50610396600480360381019061039191906125ac565b61087b565b6040516103a39190612607565b60405180910390f35b3480156103b857600080fd5b506103c1610927565b6040516103cf929190612719565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612779565b610939565b005b34801561040d57600080fd5b50610416610a3c565b60405161042391906126fe565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e91906127b9565b610a62565b6040516104609190612607565b60405180910390f35b34801561047557600080fd5b5061047e610ab8565b60405161048b9190612450565b60405180910390f35b3480156104a057600080fd5b506104bb60048036038101906104b691906127b9565b610abe565b6040516104c89190612450565b60405180910390f35b3480156104dd57600080fd5b506104e6610b07565b005b3480156104f457600080fd5b506104fd610c5a565b60405161050a91906126fe565b60405180910390f35b34801561051f57600080fd5b50610528610c80565b6040516105359190612450565b60405180910390f35b34801561054a57600080fd5b50610553610c86565b60405161056091906126fe565b60405180910390f35b34801561057557600080fd5b5061057e610caf565b60405161058b91906124fb565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906125ac565b610cec565b6040516105c89190612607565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906125ac565b610d98565b6040516106059190612607565b60405180910390f35b34801561061a57600080fd5b50610635600480360381019061063091906127e6565b610db6565b005b34801561064357600080fd5b5061065e60048036038101906106599190612879565b610edd565b005b34801561066c57600080fd5b50610675610fcd565b6040516106829190612450565b60405180910390f35b34801561069757600080fd5b506106b260048036038101906106ad91906128b9565b610fd3565b6040516106bf9190612450565b60405180910390f35b3480156106d457600080fd5b506106ef60048036038101906106ea91906127b9565b61105a565b005b60095481565b60606040518060400160405280601381526020017f54686520506c61677565204f662046726f677300000000000000000000000000815250905090565b600061074861074161121b565b8484611223565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600061078f8484846113ec565b61082f8461079b61121b565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107e561121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461082a9190612928565b611223565b600190509392505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f8060000154908060010154905082565b60006009905090565b600061091d61088861121b565b84846004600061089661121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610918919061295c565b611223565b6001905092915050565b600d8060000154908060010154905082565b61094161121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c5906129dc565b60405180910390fd5b6103e86006546109de9190612a2b565b81836109ea919061295c565b11610a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2190612aa8565b60405180910390fd5b81600881905550806007819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b0f61121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906129dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f46726f6773000000000000000000000000000000000000000000000000000000815250905090565b6000610d8e610cf961121b565b848460046000610d0761121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d899190612928565b611223565b6001905092915050565b6000610dac610da561121b565b84846113ec565b6001905092915050565b610dbe61121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e42906129dc565b60405180910390fd5b60328385610e59919061295c565b1080610e70575060328282610e6e919061295c565b105b610eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea690612b14565b60405180910390fd5b82600d6000018190555083600d6001018190555080600f6000018190555081600f6001018190555050505050565b610ee561121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f69906129dc565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61106261121b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e6906129dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612ba6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128990612c38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f890612cca565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113df9190612450565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290612d5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c190612dee565b60405180910390fd5b6000811161150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612e80565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461155c9190612928565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561160e5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561161857600190505b8015611a1857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461171d576008548311156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90612f12565b60405180910390fd5b600754836116c586610abe565b6116cf919061295c565b1115611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790612fa4565b60405180910390fd5b61171a8385611ada565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146118c8576008548311156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90612f12565b60405180910390fd5b6117c18386611c0f565b91506001600a60008282546117d6919061295c565b925050819055506009546117e930610abe565b101580156118045750601360009054906101000a900460ff16155b15611853576001601360006101000a81548160ff02191690831515021790555061182f600954611d44565b6000601360006101000a81548160ff0219169083151502179055506000600a819055505b6005600a541180156118725750601360009054906101000a900460ff16155b156118c7576001601360006101000a81548160ff0219169083151502179055506118a361189e30610abe565b611d44565b6000601360006101000a81548160ff0219169083151502179055506000600a819055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119745750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a17576008548311156119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b590612f12565b60405180910390fd5b600754836119cb86610abe565b6119d5919061295c565b1115611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d90612fa4565b60405180910390fd5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a67919061295c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611acb9190612450565b60405180910390a35050505050565b6000806064600d6000015485611af09190612fc4565b611afa9190612a2b565b905060006064600d6001015486611b119190612fc4565b611b1b9190612a2b565b90508082611b29919061295c565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b77919061295c565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611bd9919061295c565b604051611be69190612450565b60405180910390a3808286611bfb9190612928565b611c059190612928565b9250505092915050565b6000806064600f6000015485611c259190612fc4565b611c2f9190612a2b565b905060006064600f6001015486611c469190612fc4565b611c509190612a2b565b90508082611c5e919061295c565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cac919061295c565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611d0e919061295c565b604051611d1b9190612450565b60405180910390a3808286611d309190612928565b611d3a9190612928565b9250505092915050565b60008190506000600f60000154600f60010154600d60000154600d60010154611d6d919061295c565b611d77919061295c565b611d81919061295c565b600f60000154600d60000154611d97919061295c565b83611da29190612fc4565b611dac9190612a2b565b90506000600f60000154600f60010154600d60000154600d60010154611dd2919061295c565b611ddc919061295c565b611de6919061295c565b600f60010154600d60010154611dfc919061295c565b84611e079190612fc4565b611e119190612a2b565b905060008183611e21919061295c565b90506000611e39600285611f1f90919063ffffffff16565b90506000611e508287611f6990919063ffffffff16565b90506000479050611e6082611fb3565b6000611e758247611f6990919063ffffffff16565b90506000611e9e86611e908a856121f690919063ffffffff16565b611f1f90919063ffffffff16565b9050611eaa8582612270565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f12573d6000803e3d6000fd5b5050505050505050505050565b6000611f6183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612370565b905092915050565b6000611fab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123d3565b905092915050565b6000600267ffffffffffffffff811115611fd057611fcf613006565b5b604051908082528060200260200182016040528015611ffe5781602001602082028036833780820191505090505b509050308160008151811061201657612015613035565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e19190613079565b816001815181106120f5576120f4613035565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061215c30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611223565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121c095949392919061319f565b600060405180830381600087803b1580156121da57600080fd5b505af11580156121ee573d6000803e3d6000fd5b505050505050565b6000808303612208576000905061226a565b600082846122169190612fc4565b90508284826122259190612a2b565b14612265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225c9061326b565b60405180910390fd5b809150505b92915050565b61229d30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611223565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016123269695949392919061328b565b60606040518083038185885af1158015612344573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123699190613301565b5050505050565b600080831182906123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae91906124fb565b60405180910390fd5b50600083856123c69190612a2b565b9050809150509392505050565b600083831115829061241b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241291906124fb565b60405180910390fd5b506000838561242a9190612928565b9050809150509392505050565b6000819050919050565b61244a81612437565b82525050565b60006020820190506124656000830184612441565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124a557808201518184015260208101905061248a565b60008484015250505050565b6000601f19601f8301169050919050565b60006124cd8261246b565b6124d78185612476565b93506124e7818560208601612487565b6124f0816124b1565b840191505092915050565b6000602082019050818103600083015261251581846124c2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254d82612522565b9050919050565b61255d81612542565b811461256857600080fd5b50565b60008135905061257a81612554565b92915050565b61258981612437565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b600080604083850312156125c3576125c261251d565b5b60006125d18582860161256b565b92505060206125e285828601612597565b9150509250929050565b60008115159050919050565b612601816125ec565b82525050565b600060208201905061261c60008301846125f8565b92915050565b6000819050919050565b600061264761264261263d84612522565b612622565b612522565b9050919050565b60006126598261262c565b9050919050565b600061266b8261264e565b9050919050565b61267b81612660565b82525050565b60006020820190506126966000830184612672565b92915050565b6000806000606084860312156126b5576126b461251d565b5b60006126c38682870161256b565b93505060206126d48682870161256b565b92505060406126e586828701612597565b9150509250925092565b6126f881612542565b82525050565b600060208201905061271360008301846126ef565b92915050565b600060408201905061272e6000830185612441565b61273b6020830184612441565b9392505050565b600060ff82169050919050565b61275881612742565b82525050565b6000602082019050612773600083018461274f565b92915050565b600080604083850312156127905761278f61251d565b5b600061279e85828601612597565b92505060206127af85828601612597565b9150509250929050565b6000602082840312156127cf576127ce61251d565b5b60006127dd8482850161256b565b91505092915050565b60008060008060808587031215612800576127ff61251d565b5b600061280e87828801612597565b945050602061281f87828801612597565b935050604061283087828801612597565b925050606061284187828801612597565b91505092959194509250565b612856816125ec565b811461286157600080fd5b50565b6000813590506128738161284d565b92915050565b600080604083850312156128905761288f61251d565b5b600061289e8582860161256b565b92505060206128af85828601612864565b9150509250929050565b600080604083850312156128d0576128cf61251d565b5b60006128de8582860161256b565b92505060206128ef8582860161256b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061293382612437565b915061293e83612437565b9250828203905081811115612956576129556128f9565b5b92915050565b600061296782612437565b915061297283612437565b925082820190508082111561298a576129896128f9565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129c6602083612476565b91506129d182612990565b602082019050919050565b600060208201905081810360008301526129f5816129b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a3682612437565b9150612a4183612437565b925082612a5157612a506129fc565b5b828204905092915050565b7f53686f756c6420626520626967676572207468616e20302c3125000000000000600082015250565b6000612a92601a83612476565b9150612a9d82612a5c565b602082019050919050565b60006020820190508181036000830152612ac181612a85565b9050919050565b7f43616e2774206368616e67652066656520686967686572207468616e20323425600082015250565b6000612afe602083612476565b9150612b0982612ac8565b602082019050919050565b60006020820190508181036000830152612b2d81612af1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b90602683612476565b9150612b9b82612b34565b604082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c22602483612476565b9150612c2d82612bc6565b604082019050919050565b60006020820190508181036000830152612c5181612c15565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cb4602283612476565b9150612cbf82612c58565b604082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d46602583612476565b9150612d5182612cea565b604082019050919050565b60006020820190508181036000830152612d7581612d39565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dd8602383612476565b9150612de382612d7c565b604082019050919050565b60006020820190508181036000830152612e0781612dcb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e6a602983612476565b9150612e7582612e0e565b604082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b6000612efc602983612476565b9150612f0782612ea0565b604082019050919050565b60006020820190508181036000830152612f2b81612eef565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000612f8e602c83612476565b9150612f9982612f32565b604082019050919050565b60006020820190508181036000830152612fbd81612f81565b9050919050565b6000612fcf82612437565b9150612fda83612437565b9250828202612fe881612437565b91508282048414831517612fff57612ffe6128f9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061307381612554565b92915050565b60006020828403121561308f5761308e61251d565b5b600061309d84828501613064565b91505092915050565b6000819050919050565b60006130cb6130c66130c1846130a6565b612622565b612437565b9050919050565b6130db816130b0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61311681612542565b82525050565b6000613128838361310d565b60208301905092915050565b6000602082019050919050565b600061314c826130e1565b61315681856130ec565b9350613161836130fd565b8060005b83811015613192578151613179888261311c565b975061318483613134565b925050600181019050613165565b5085935050505092915050565b600060a0820190506131b46000830188612441565b6131c160208301876130d2565b81810360408301526131d38186613141565b90506131e260608301856126ef565b6131ef6080830184612441565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613255602183612476565b9150613260826131f9565b604082019050919050565b6000602082019050818103600083015261328481613248565b9050919050565b600060c0820190506132a060008301896126ef565b6132ad6020830188612441565b6132ba60408301876130d2565b6132c760608301866130d2565b6132d460808301856126ef565b6132e160a0830184612441565b979650505050505050565b6000815190506132fb81612580565b92915050565b60008060006060848603121561331a5761331961251d565b5b6000613328868287016132ec565b9350506020613339868287016132ec565b925050604061334a868287016132ec565b915050925092509256fea2646970667358221220ecd6b61bdd476e75847494f47bcad7d1e03dbb07d8773cacc6c276c287fbe6d464736f6c63430008110033

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

0000000000000000000000000b9878bfda828fa79221eb3aeeccbf7710848af40000000000000000000000000b9878bfda828fa79221eb3aeeccbf7710848af4

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0x0B9878bfDA828fA79221EB3aEeCCBf7710848AF4
Arg [1] : liquidityAddress (address): 0x0B9878bfDA828fA79221EB3aEeCCBf7710848AF4

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000b9878bfda828fa79221eb3aeeccbf7710848af4
Arg [1] : 0000000000000000000000000b9878bfda828fa79221eb3aeeccbf7710848af4


Deployed Bytecode Sourcemap

4691:10427:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5403:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6993:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7825:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4774:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7270:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7994:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5504:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5783:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7179:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8268:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5755:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;10480:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4824:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9849:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7373:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:148;;;;;;;;;;;;;:::i;:::-;;5543:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5339:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2938:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7084:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8491:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7499:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9980:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8728:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5466:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7674:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3308:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5403:56;;;;:::o;6993:83::-;7030:13;7063:5;;;;;;;;;;;;;;;;;7056:12;;6993:83;:::o;7825:161::-;7900:4;7917:39;7926:12;:10;:12::i;:::-;7940:7;7949:6;7917:8;:39::i;:::-;7974:4;7967:11;;7825:161;;;;:::o;4774:41::-;;;;;;;;;;;;;:::o;7270:95::-;7323:7;7350;;7343:14;;7270:95;:::o;7994:266::-;8092:4;8109:36;8119:6;8127:9;8138:6;8109:9;:36::i;:::-;8156:74;8165:6;8173:12;:10;:12::i;:::-;8223:6;8187:11;:19;8199:6;8187:19;;;;;;;;;;;;;;;:33;8207:12;:10;:12::i;:::-;8187:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;8156:8;:74::i;:::-;8248:4;8241:11;;7994:266;;;;;:::o;5504:32::-;;;;;;;;;;;;;:::o;5783:23::-;;;;;;;;;;;;;;:::o;7179:83::-;7220:5;5197:1;7238:16;;7179:83;:::o;8268:215::-;8356:4;8373:80;8382:12;:10;:12::i;:::-;8396:7;8442:10;8405:11;:25;8417:12;:10;:12::i;:::-;8405:25;;;;;;;;;;;;;;;:34;8431:7;8405:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8373:8;:80::i;:::-;8471:4;8464:11;;8268:215;;;;:::o;5755:21::-;;;;;;;;;;;;;;:::o;10480:238::-;3075:12;:10;:12::i;:::-;3065:22;;:6;;;;;;;;;;:22;;;3057:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10603:4:::1;10593:7;;:14;;;;:::i;:::-;10580:10;10571:6;:19;;;;:::i;:::-;:36;10563:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;10664:6;10649:12;:21;;;;10700:10;10681:16;:29;;;;10480:238:::0;;:::o;4824:28::-;;;;;;;;;;;;;:::o;9849:123::-;9913:4;9937:18;:27;9956:7;9937:27;;;;;;;;;;;;;;;;;;;;;;;;;9930:34;;9849:123;;;:::o;5271:61::-;;;;:::o;7373:118::-;7439:7;7466:8;:17;7475:7;7466:17;;;;;;;;;;;;;;;;7459:24;;7373:118;;;:::o;3152:148::-;3075:12;:10;:12::i;:::-;3065:22;;:6;;;;;;;;;;:22;;;3057:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3259:1:::1;3222:40;;3243:6;::::0;::::1;;;;;;;;3222:40;;;;;;;;;;;;3290:1;3273:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3152:148::o:0;5543:30::-;;;;;;;;;;;;;:::o;5339:57::-;;;;:::o;2938:79::-;2976:7;3003:6;;;;;;;;;;;2996:13;;2938:79;:::o;7084:87::-;7123:13;7156:7;;;;;;;;;;;;;;;;;7149:14;;7084:87;:::o;8491:225::-;8584:4;8601:85;8610:12;:10;:12::i;:::-;8624:7;8670:15;8633:11;:25;8645:12;:10;:12::i;:::-;8633:25;;;;;;;;;;;;;;;:34;8659:7;8633:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;8601:8;:85::i;:::-;8704:4;8697:11;;8491:225;;;;:::o;7499:167::-;7577:4;7594:42;7604:12;:10;:12::i;:::-;7618:9;7629:6;7594:9;:42::i;:::-;7654:4;7647:11;;7499:167;;;;:::o;9980:492::-;3075:12;:10;:12::i;:::-;3065:22;;:6;;;;;;;;;;:22;;;3057:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10179:2:::1;10160:16;10141;:35;;;;:::i;:::-;:40;:86;;;;10225:2;10205:17;10185;:37;;;;:::i;:::-;:42;10141:86;10133:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;10304:16;10285:6;:16;;:35;;;;10350:16;10331:6;:16;;:35;;;;10399:17;10379:7;:17;;:37;;;;10447:17;10427:7;:17;;:37;;;;9980:492:::0;;;;:::o;8728:140::-;3075:12;:10;:12::i;:::-;3065:22;;:6;;;;;;;;;;:22;;;3057:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8852:8:::1;8813:18;:36;8840:7;8813:36;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;8728:140:::0;;:::o;5466:29::-;;;;:::o;7674:143::-;7755:7;7782:11;:18;7794:5;7782:18;;;;;;;;;;;;;;;:27;7801:7;7782:27;;;;;;;;;;;;;;;;7775:34;;7674:143;;;;:::o;3308:244::-;3075:12;:10;:12::i;:::-;3065:22;;:6;;;;;;;;;;:22;;;3057:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3417:1:::1;3397:22;;:8;:22;;::::0;3389:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3507:8;3478:38;;3499:6;::::0;::::1;;;;;;;;3478:38;;;;;;;;;;;;3536:8;3527:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3308:244:::0;:::o;2374:115::-;2427:15;2470:10;2455:26;;2374:115;:::o;10726:337::-;10836:1;10819:19;;:5;:19;;;10811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10917:1;10898:21;;:7;:21;;;10890:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11001:6;10971:11;:18;10983:5;10971:18;;;;;;;;;;;;;;;:27;10990:7;10971:27;;;;;;;;;;;;;;;:36;;;;11039:7;11023:32;;11032:5;11023:32;;;11048:6;11023:32;;;;;;:::i;:::-;;;;;;;;10726:337;;;:::o;11071:2094::-;11209:1;11193:18;;:4;:18;;;11185:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11286:1;11272:16;;:2;:16;;;11264:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11356:1;11347:6;:10;11339:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11442:6;11424:8;:14;11433:4;11424:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;11459:22;11484:6;11459:31;;11511:12;11540:18;:24;11559:4;11540:24;;;;;;;;;;;;;;;;;;;;;;;;;11539:25;:52;;;;;11569:18;:22;11588:2;11569:22;;;;;;;;;;;;;;;;;;;;;;;;;11568:23;11539:52;11536:97;;;11617:4;11607:14;;11536:97;11648:7;11645:1412;;;11680:13;;;;;;;;;;;11674:19;;:2;:19;;;11671:311;;11731:12;;11721:6;:22;;11713:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;11842:16;;11832:6;11816:13;11826:2;11816:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;11808:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11943:23;11955:6;11963:2;11943:11;:23::i;:::-;11926:40;;11671:311;12009:13;;;;;;;;;;;12001:21;;:4;:21;;;11998:755;;12060:12;;12050:6;:22;;12042:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12154:26;12167:6;12175:4;12154:12;:26::i;:::-;12137:43;;12217:1;12199:14;;:19;;;;;;;:::i;:::-;;;;;;;;12270:17;;12242:24;12260:4;12242:9;:24::i;:::-;:45;;:58;;;;;12292:8;;;;;;;;;;;12291:9;12242:58;12238:250;;;12336:4;12325:8;;:15;;;;;;;;;;;;;;;;;;12363:27;12372:17;;12363:8;:27::i;:::-;12424:5;12413:8;;:16;;;;;;;;;;;;;;;;;;12469:1;12452:14;:18;;;;12238:250;12529:1;12512:14;;:18;:31;;;;;12535:8;;;;;;;;;;;12534:9;12512:31;12508:230;;;12579:4;12568:8;;:15;;;;;;;;;;;;;;;;;;12606:34;12615:24;12633:4;12615:9;:24::i;:::-;12606:8;:34::i;:::-;12674:5;12663:8;;:16;;;;;;;;;;;;;;;;;;12719:1;12702:14;:18;;;;12508:230;11998:755;12778:13;;;;;;;;;;;12772:19;;:2;:19;;;;:44;;;;;12803:13;;;;;;;;;;;12795:21;;:4;:21;;;;12772:44;12769:277;;;12854:12;;12844:6;:22;;12836:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12965:16;;12955:6;12939:13;12949:2;12939:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;12931:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;12769:277;11645:1412;13093:14;13077:8;:12;13086:2;13077:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13138:2;13123:34;;13132:4;13123:34;;;13142:14;13123:34;;;;;;:::i;:::-;;;;;;;;11174:1991;;11071:2094;;;:::o;8917:456::-;8985:7;9005:25;9061:3;9042:6;:16;;;9033:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9005:59;;9076:26;9133:3;9114:6;:16;;;9105:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9076:60;;9196:18;9176:17;:38;;;;:::i;:::-;9149:8;:23;9166:4;9149:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;9254:4;9230:70;;9240:4;9230:70;;;9282:17;9261:18;:38;;;;:::i;:::-;9230:70;;;;;;:::i;:::-;;;;;;;;9346:18;9327:17;9319:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;9311:54;;;;8917:456;;;;:::o;9381:460::-;9450:7;9470:25;9527:3;9507:7;:17;;;9498:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9470:60;;9542:26;9600:3;9580:7;:17;;;9571:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9542:61;;9663:18;9643:17;:38;;;;:::i;:::-;9616:8;:23;9633:4;9616:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;9721:4;9697:71;;9707:4;9697:71;;;9749:17;9728:18;:38;;;;:::i;:::-;9697:71;;;;;;:::i;:::-;;;;;;;;9814:18;9795:17;9787:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;9779:54;;;;9381:460;;;;:::o;13176:1074::-;13229:23;13255:6;13229:32;;13272:23;13416:7;:17;;;13396:7;:17;;;13377:6;:16;;;13358:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;13336:7;:17;;;13317:6;:16;;;:36;;;;:::i;:::-;13298:15;:56;;;;:::i;:::-;:136;;;;:::i;:::-;13272:162;;13445:23;13589:7;:17;;;13569:7;:17;;;13550:6;:16;;;13531:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;13509:7;:17;;;13490:6;:16;;;:36;;;;:::i;:::-;13471:15;:56;;;;:::i;:::-;:136;;;;:::i;:::-;13445:162;;13618:25;13664:15;13646;:33;;;;:::i;:::-;13618:61;;13700:26;13729:22;13749:1;13729:15;:19;;:22;;;;:::i;:::-;13700:51;;13762:26;13791:39;13811:18;13791:15;:19;;:39;;;;:::i;:::-;13762:68;;13841:25;13869:21;13841:49;;13901:36;13918:18;13901:16;:36::i;:::-;13949:18;13970:44;13996:17;13970:21;:25;;:44;;;;:::i;:::-;13949:65;;14035:23;14061:54;14097:17;14061:31;14076:15;14061:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;14035:80;;14126:49;14139:18;14159:15;14126:12;:49::i;:::-;14194:15;;;;;;;;;;;14186:33;;:56;14220:21;14186:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13218:1032;;;;;;;;;13176:1074;:::o;1604:132::-;1662:7;1689:39;1693:1;1696;1689:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1682:46;;1604:132;;;;:::o;1002:136::-;1060:7;1087:43;1091:1;1094;1087:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1080:50;;1002:136;;;;:::o;14258:475::-;14324:21;14362:1;14348:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14324:40;;14393:4;14375;14380:1;14375:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14419:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14409:4;14414:1;14409:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;14454:62;14471:4;14486:15;;;;;;;;;;;14504:11;14454:8;:62::i;:::-;14529:15;;;;;;;;;;;:66;;;14610:11;14636:1;14652:4;14679;14699:15;14529:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14313:420;14258:475;:::o;1346:250::-;1404:7;1433:1;1428;:6;1424:47;;1458:1;1451:8;;;;1424:47;1483:9;1499:1;1495;:5;;;;:::i;:::-;1483:17;;1528:1;1523;1519;:5;;;;:::i;:::-;:10;1511:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1587:1;1580:8;;;1346:250;;;;;:::o;14741:374::-;14822:62;14839:4;14854:15;;;;;;;;;;;14872:11;14822:8;:62::i;:::-;14897:15;;;;;;;;;;;:31;;;14937:9;14971:4;14991:11;15017:1;15033;15049:17;;;;;;;;;;;15081:15;14897:210;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14741:374;;:::o;1744:278::-;1830:7;1862:1;1858;:5;1865:12;1850:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1889:9;1905:1;1901;:5;;;;:::i;:::-;1889:17;;2013:1;2006:8;;;1744:278;;;;;:::o;1146:192::-;1232:7;1265:1;1260;:6;;1268:12;1252:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1292:9;1308:1;1304;:5;;;;:::i;:::-;1292:17;;1329:1;1322:8;;;1146: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:228::-;19527:34;19523:1;19515:6;19511:14;19504:58;19596:11;19591:2;19583:6;19579:15;19572:36;19387:228;:::o;19621:366::-;19763:3;19784:67;19848:2;19843:3;19784:67;:::i;:::-;19777:74;;19860:93;19949:3;19860:93;:::i;:::-;19978:2;19973:3;19969:12;19962:19;;19621:366;;;:::o;19993:419::-;20159:4;20197:2;20186:9;20182:18;20174:26;;20246:9;20240:4;20236:20;20232:1;20221:9;20217:17;20210:47;20274:131;20400:4;20274:131;:::i;:::-;20266:139;;19993:419;;;:::o;20418:231::-;20558:34;20554:1;20546:6;20542:14;20535:58;20627:14;20622:2;20614:6;20610:15;20603:39;20418:231;:::o;20655:366::-;20797:3;20818:67;20882:2;20877:3;20818:67;:::i;:::-;20811:74;;20894:93;20983:3;20894:93;:::i;:::-;21012:2;21007:3;21003:12;20996:19;;20655:366;;;:::o;21027:419::-;21193:4;21231:2;21220:9;21216:18;21208:26;;21280:9;21274:4;21270:20;21266:1;21255:9;21251:17;21244:47;21308:131;21434:4;21308:131;:::i;:::-;21300:139;;21027:419;;;:::o;21452:410::-;21492:7;21515:20;21533:1;21515:20;:::i;:::-;21510:25;;21549:20;21567:1;21549:20;:::i;:::-;21544:25;;21604:1;21601;21597:9;21626:30;21644:11;21626:30;:::i;:::-;21615:41;;21805:1;21796:7;21792:15;21789:1;21786:22;21766:1;21759:9;21739:83;21716:139;;21835:18;;:::i;:::-;21716:139;21500:362;21452:410;;;;:::o;21868:180::-;21916:77;21913:1;21906:88;22013:4;22010:1;22003:15;22037:4;22034:1;22027:15;22054:180;22102:77;22099:1;22092:88;22199:4;22196:1;22189:15;22223:4;22220:1;22213:15;22240:143;22297:5;22328:6;22322:13;22313:22;;22344:33;22371:5;22344:33;:::i;:::-;22240:143;;;;:::o;22389:351::-;22459:6;22508:2;22496:9;22487:7;22483:23;22479:32;22476:119;;;22514:79;;:::i;:::-;22476:119;22634:1;22659:64;22715:7;22706:6;22695:9;22691:22;22659:64;:::i;:::-;22649:74;;22605:128;22389:351;;;;:::o;22746:85::-;22791:7;22820:5;22809:16;;22746:85;;;:::o;22837:158::-;22895:9;22928:61;22946:42;22955:32;22981:5;22955:32;:::i;:::-;22946:42;:::i;:::-;22928:61;:::i;:::-;22915:74;;22837:158;;;:::o;23001:147::-;23096:45;23135:5;23096:45;:::i;:::-;23091:3;23084:58;23001:147;;:::o;23154:114::-;23221:6;23255:5;23249:12;23239:22;;23154:114;;;:::o;23274:184::-;23373:11;23407:6;23402:3;23395:19;23447:4;23442:3;23438:14;23423:29;;23274:184;;;;:::o;23464:132::-;23531:4;23554:3;23546:11;;23584:4;23579:3;23575:14;23567:22;;23464:132;;;:::o;23602:108::-;23679:24;23697:5;23679:24;:::i;:::-;23674:3;23667:37;23602:108;;:::o;23716:179::-;23785:10;23806:46;23848:3;23840:6;23806:46;:::i;:::-;23884:4;23879:3;23875:14;23861:28;;23716:179;;;;:::o;23901:113::-;23971:4;24003;23998:3;23994:14;23986:22;;23901:113;;;:::o;24050:732::-;24169:3;24198:54;24246:5;24198:54;:::i;:::-;24268:86;24347:6;24342:3;24268:86;:::i;:::-;24261:93;;24378:56;24428:5;24378:56;:::i;:::-;24457:7;24488:1;24473:284;24498:6;24495:1;24492:13;24473:284;;;24574:6;24568:13;24601:63;24660:3;24645:13;24601:63;:::i;:::-;24594:70;;24687:60;24740:6;24687:60;:::i;:::-;24677:70;;24533:224;24520:1;24517;24513:9;24508:14;;24473:284;;;24477:14;24773:3;24766:10;;24174:608;;;24050:732;;;;:::o;24788:831::-;25051:4;25089:3;25078:9;25074:19;25066:27;;25103:71;25171:1;25160:9;25156:17;25147:6;25103:71;:::i;:::-;25184:80;25260:2;25249:9;25245:18;25236:6;25184:80;:::i;:::-;25311:9;25305:4;25301:20;25296:2;25285:9;25281:18;25274:48;25339:108;25442:4;25433:6;25339:108;:::i;:::-;25331:116;;25457:72;25525:2;25514:9;25510:18;25501:6;25457:72;:::i;:::-;25539:73;25607:3;25596:9;25592:19;25583:6;25539:73;:::i;:::-;24788:831;;;;;;;;:::o;25625:220::-;25765:34;25761:1;25753:6;25749:14;25742:58;25834:3;25829:2;25821:6;25817:15;25810:28;25625:220;:::o;25851:366::-;25993:3;26014:67;26078:2;26073:3;26014:67;:::i;:::-;26007:74;;26090:93;26179:3;26090:93;:::i;:::-;26208:2;26203:3;26199:12;26192:19;;25851:366;;;:::o;26223:419::-;26389:4;26427:2;26416:9;26412:18;26404:26;;26476:9;26470:4;26466:20;26462:1;26451:9;26447:17;26440:47;26504:131;26630:4;26504:131;:::i;:::-;26496:139;;26223:419;;;:::o;26648:807::-;26897:4;26935:3;26924:9;26920:19;26912:27;;26949:71;27017:1;27006:9;27002:17;26993:6;26949:71;:::i;:::-;27030:72;27098:2;27087:9;27083:18;27074:6;27030:72;:::i;:::-;27112:80;27188:2;27177:9;27173:18;27164:6;27112:80;:::i;:::-;27202;27278:2;27267:9;27263:18;27254:6;27202:80;:::i;:::-;27292:73;27360:3;27349:9;27345:19;27336:6;27292:73;:::i;:::-;27375;27443:3;27432:9;27428:19;27419:6;27375:73;:::i;:::-;26648:807;;;;;;;;;:::o;27461:143::-;27518:5;27549:6;27543:13;27534:22;;27565:33;27592:5;27565:33;:::i;:::-;27461:143;;;;:::o;27610:663::-;27698:6;27706;27714;27763:2;27751:9;27742:7;27738:23;27734:32;27731:119;;;27769:79;;:::i;:::-;27731:119;27889:1;27914:64;27970:7;27961:6;27950:9;27946:22;27914:64;:::i;:::-;27904:74;;27860:128;28027:2;28053:64;28109:7;28100:6;28089:9;28085:22;28053:64;:::i;:::-;28043:74;;27998:129;28166:2;28192:64;28248:7;28239:6;28228:9;28224:22;28192:64;:::i;:::-;28182:74;;28137:129;27610:663;;;;;:::o

Swarm Source

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