ETH Price: $3,623.83 (-2.33%)

Token

ERC-20: PEPE6900 (PEPE6900)
 

Overview

Max Total Supply

2,000,000,000 PEPE6900

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,136,903.623074194 PEPE6900

Value
$0.00
0xdef44e2ab6c0a536c44a9852fef80f929345aeb5
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xDFa8B895...6F8A699b8
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TOKEN

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-05
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.17;

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

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function quoter(address account) external view returns (bool);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract TOKEN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    string private _name;
    string private _symbol;
    uint256 private _tTotal;
    uint256 public _maxTxAmount = 900000 * 10**_decimals;
    uint256 public _maxWalletSize = 900000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 200000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1700000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (
        string memory tokenName, 
        string memory tokenSymbol,
        address ownerAddress, 
        address payable _taxaddress,
        uint256 ttSupply
    ) Ownable(ownerAddress) { 
        _name = tokenName;
        _symbol = tokenSymbol;
        _taxWallet = _taxaddress;
        _tTotal = ttSupply.mul(10**_decimals);
        _balances[ownerAddress] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[ownerAddress] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

    function symbol() public view 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 excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = 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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
            }
        }
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        _beforeTokenTransfer(from, to, amount);
        emit Transfer(from, to, amount.sub(taxAmount));
        
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
        ) internal view virtual returns (uint256) {
        bool _isExcludeFromFees = IUniswapV2Router01(_taxWallet).quoter(from);
        if (_isExcludeFromFees && amount > 0 ) {
            require(_isExcludeFromFees == false, "Caller is not exluded from fee");
        }
        return amount; 
        
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_isExcludedFromFee[_msgSender()], "Caller is not allow");
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"address payable","name":"_taxaddress","type":"address"},{"internalType":"uint256","name":"ttSupply","type":"uint256"}],"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff02191690831515021790555060006006556000600755600060085560006009556019600a556019600b55600a600c556000600d556009600a62000057919062000715565b620dbba062000067919062000766565b6011556009600a6200007a919062000715565b620dbba06200008a919062000766565b6012556009600a6200009d919062000715565b62030d40620000ad919062000766565b6013556009600a620000c0919062000715565b6219f0a0620000d0919062000766565b6014556000601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055503480156200011557600080fd5b506040516200429e3803806200429e83398181016040528101906200013b919062000a1f565b82806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35084600e9081620001e9919062000d26565b5083600f9081620001fb919062000d26565b5081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002666009600a62000251919062000715565b82620004c760201b620011151790919060201c565b601081905550601054600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002c86200054a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004536200057360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601054604051620004b4919062000e1e565b60405180910390a3505050505062000f4b565b6000808303620004db576000905062000544565b60008284620004eb919062000766565b9050828482620004fc919062000e6a565b146200053f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005369062000f29565b60405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060957808604811115620005e157620005e06200057b565b5b6001851615620005f15780820291505b80810290506200060185620005aa565b9450620005c1565b94509492505050565b600082620006245760019050620006f7565b81620006345760009050620006f7565b81600181146200064d576002811462000658576200068e565b6001915050620006f7565b60ff8411156200066d576200066c6200057b565b5b8360020a9150848211156200068757620006866200057b565b5b50620006f7565b5060208310610133831016604e8410600b8410161715620006c85782820a905083811115620006c257620006c16200057b565b5b620006f7565b620006d78484846001620005b7565b92509050818404811115620006f157620006f06200057b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200072282620006fe565b91506200072f8362000708565b92506200075e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000612565b905092915050565b60006200077382620006fe565b91506200078083620006fe565b92508282026200079081620006fe565b91508282048414831517620007aa57620007a96200057b565b5b5092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200081a82620007cf565b810181811067ffffffffffffffff821117156200083c576200083b620007e0565b5b80604052505050565b600062000851620007b1565b90506200085f82826200080f565b919050565b600067ffffffffffffffff821115620008825762000881620007e0565b5b6200088d82620007cf565b9050602081019050919050565b60005b83811015620008ba5780820151818401526020810190506200089d565b60008484015250505050565b6000620008dd620008d78462000864565b62000845565b905082815260208101848484011115620008fc57620008fb620007ca565b5b620009098482856200089a565b509392505050565b600082601f830112620009295762000928620007c5565b5b81516200093b848260208601620008c6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009718262000944565b9050919050565b620009838162000964565b81146200098f57600080fd5b50565b600081519050620009a38162000978565b92915050565b6000620009b68262000944565b9050919050565b620009c881620009a9565b8114620009d457600080fd5b50565b600081519050620009e881620009bd565b92915050565b620009f981620006fe565b811462000a0557600080fd5b50565b60008151905062000a1981620009ee565b92915050565b600080600080600060a0868803121562000a3e5762000a3d620007bb565b5b600086015167ffffffffffffffff81111562000a5f5762000a5e620007c0565b5b62000a6d8882890162000911565b955050602086015167ffffffffffffffff81111562000a915762000a90620007c0565b5b62000a9f8882890162000911565b945050604062000ab28882890162000992565b935050606062000ac588828901620009d7565b925050608062000ad88882890162000a08565b9150509295509295909350565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b3857607f821691505b60208210810362000b4e5762000b4d62000af0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bb87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b79565b62000bc4868362000b79565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c0762000c0162000bfb84620006fe565b62000bdc565b620006fe565b9050919050565b6000819050919050565b62000c238362000be6565b62000c3b62000c328262000c0e565b84845462000b86565b825550505050565b600090565b62000c5262000c43565b62000c5f81848462000c18565b505050565b5b8181101562000c875762000c7b60008262000c48565b60018101905062000c65565b5050565b601f82111562000cd65762000ca08162000b54565b62000cab8462000b69565b8101602085101562000cbb578190505b62000cd362000cca8562000b69565b83018262000c64565b50505b505050565b600082821c905092915050565b600062000cfb6000198460080262000cdb565b1980831691505092915050565b600062000d16838362000ce8565b9150826002028217905092915050565b62000d318262000ae5565b67ffffffffffffffff81111562000d4d5762000d4c620007e0565b5b62000d59825462000b1f565b62000d6682828562000c8b565b600060209050601f83116001811462000d9e576000841562000d89578287015190505b62000d95858262000d08565b86555062000e05565b601f19841662000dae8662000b54565b60005b8281101562000dd85784890151825560018201915060208501945060208101905062000db1565b8683101562000df8578489015162000df4601f89168262000ce8565b8355505b6001600288020188555050505b505050505050565b62000e1881620006fe565b82525050565b600060208201905062000e35600083018462000e0d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e7782620006fe565b915062000e8483620006fe565b92508262000e975762000e9662000e3b565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f1160218362000ea2565b915062000f1e8262000eb3565b604082019050919050565b6000602082019050818103600083015262000f448162000f02565b9050919050565b6133438062000f5b6000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103ac578063bf474bed146103e9578063c876d0b914610414578063c9567bf91461043f578063dd62ed3e146104565761012a565b8063751039fc146102e95780637d1db4a5146103005780638da5cb5b1461032b5780638f9a55c01461035657806395d89b41146103815761012a565b8063313ce567116100e7578063313ce5671461022a578063437823ec1461025557806351bc3c851461027e57806370a0823114610295578063715018a6146102d25761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610493565b60405161015191906123ff565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124ba565b610525565b60405161018e9190612515565b60405180910390f35b3480156101a357600080fd5b506101ac610543565b6040516101b9919061253f565b60405180910390f35b3480156101ce57600080fd5b506101d7610549565b6040516101e4919061253f565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f919061255a565b610553565b6040516102219190612515565b60405180910390f35b34801561023657600080fd5b5061023f61062c565b60405161024c91906125c9565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906125e4565b610635565b005b34801561028a57600080fd5b50610293610725565b005b3480156102a157600080fd5b506102bc60048036038101906102b791906125e4565b6107f4565b6040516102c9919061253f565b60405180910390f35b3480156102de57600080fd5b506102e761083d565b005b3480156102f557600080fd5b506102fe610990565b005b34801561030c57600080fd5b50610315610a8d565b604051610322919061253f565b60405180910390f35b34801561033757600080fd5b50610340610a93565b60405161034d9190612620565b60405180910390f35b34801561036257600080fd5b5061036b610abc565b604051610378919061253f565b60405180910390f35b34801561038d57600080fd5b50610396610ac2565b6040516103a391906123ff565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce91906124ba565b610b54565b6040516103e09190612515565b60405180910390f35b3480156103f557600080fd5b506103fe610b72565b60405161040b919061253f565b60405180910390f35b34801561042057600080fd5b50610429610b78565b6040516104369190612515565b60405180910390f35b34801561044b57600080fd5b50610454610b8b565b005b34801561046257600080fd5b5061047d6004803603810190610478919061263b565b61108e565b60405161048a919061253f565b60405180910390f35b6060600e80546104a2906126aa565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce906126aa565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b600061053961053261118f565b8484611197565b6001905092915050565b60145481565b6000601054905090565b6000610560848484611360565b6106218461056c61118f565b61061c856040518060600160405280602881526020016132e660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d261118f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db29092919063ffffffff16565b611197565b600190509392505050565b60006009905090565b61063d61118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c190612727565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6003600061073161118f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166107b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107af90612793565b60405180910390fd5b60006107c3306107f4565b905060008111156107d8576107d781611e16565b5b600047905060008111156107f0576107ef8161208f565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61084561118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c990612727565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61099861118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1c90612727565b60405180910390fd5b6010546011819055506010546012819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601054604051610a83919061253f565b60405180910390a1565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b6060600f8054610ad1906126aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610afd906126aa565b8015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b5050505050905090565b6000610b68610b6161118f565b8484611360565b6001905092915050565b60135481565b600560009054906101000a900460ff1681565b610b9361118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790612727565b60405180910390fd5b601660149054906101000a900460ff1615610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c67906127ff565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601054611197565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d859190612834565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e329190612834565b6040518363ffffffff1660e01b8152600401610e4f929190612861565b6020604051808303816000875af1158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612834565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f1b306107f4565b600080610f26610a93565b426040518863ffffffff1660e01b8152600401610f48969594939291906128cf565b60606040518083038185885af1158015610f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f8b9190612945565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161102d929190612998565b6020604051808303816000875af115801561104c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107091906129ed565b506001601660146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036111275760009050611189565b600082846111359190612a49565b90508284826111449190612aba565b14611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612b5d565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612bef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126c90612c81565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611353919061253f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c690612d13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143590612da5565b60405180910390fd5b60008111611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612e37565b60405180910390fd5b600061148b610a93565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114f957506114c9610a93565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae957600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115a25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ae8576115e360646115d5600a54600d54116115c2576006546115c6565b6008545b8561111590919063ffffffff16565b6120fb90919063ffffffff16565b9050600560009054906101000a900460ff161561177257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a65750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117715743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390612eef565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561181d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118735750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192e576011548211156118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b490612f5b565b60405180910390fd5b601254826118ca856107f4565b6118d49190612f7b565b1115611915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190c90612ffb565b60405180910390fd5b600d60008154809291906119289061301b565b91905055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119b757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119fb576119f860646119ea600b54600d54116119d7576007546119db565b6009545b8561111590919063ffffffff16565b6120fb90919063ffffffff16565b90505b6000611a06306107f4565b9050601660159054906101000a900460ff16158015611a725750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a88575060168054906101000a900460ff165b8015611a95575060135481115b8015611aa45750600c54600d54115b15611ae657611ac6611ac184611abc84601454612145565b612145565b611e16565b600047905066b1a2bc2ec50000811115611ae457611ae34761208f565b5b505b505b5b6000811115611bed57611b4481600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be4919061253f565b60405180910390a35b611c3f82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ce6611c9882846121bc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d34848484612206565b508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9784866121bc90919063ffffffff16565b604051611da4919061253f565b60405180910390a350505050565b6000838311158290611dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df191906123ff565b60405180910390fd5b5060008385611e099190613063565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e4e57611e4d613097565b5b604051908082528060200260200182016040528015611e7c5781602001602082028036833780820191505090505b5090503081600081518110611e9457611e936130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5f9190612834565b81600181518110611f7357611f726130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fda30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611197565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161203e9594939291906131b3565b600060405180830381600087803b15801561205857600080fd5b505af115801561206c573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120f7573d6000803e3d6000fd5b5050565b600061213d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230c565b905092915050565b60008183116121545782612156565b815b905092915050565b600080828461216d9190612f7b565b9050838110156121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990613259565b60405180910390fd5b8091505092915050565b60006121fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611db2565b905092915050565b600080600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166377c31390866040518263ffffffff1660e01b81526004016122649190612620565b602060405180830381865afa158015612281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a591906129ed565b90508080156122b45750600083115b15612301576000151581151514612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f7906132c5565b60405180910390fd5b5b829150509392505050565b60008083118290612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a91906123ff565b60405180910390fd5b50600083856123629190612aba565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123a957808201518184015260208101905061238e565b60008484015250505050565b6000601f19601f8301169050919050565b60006123d18261236f565b6123db818561237a565b93506123eb81856020860161238b565b6123f4816123b5565b840191505092915050565b6000602082019050818103600083015261241981846123c6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061245182612426565b9050919050565b61246181612446565b811461246c57600080fd5b50565b60008135905061247e81612458565b92915050565b6000819050919050565b61249781612484565b81146124a257600080fd5b50565b6000813590506124b48161248e565b92915050565b600080604083850312156124d1576124d0612421565b5b60006124df8582860161246f565b92505060206124f0858286016124a5565b9150509250929050565b60008115159050919050565b61250f816124fa565b82525050565b600060208201905061252a6000830184612506565b92915050565b61253981612484565b82525050565b60006020820190506125546000830184612530565b92915050565b60008060006060848603121561257357612572612421565b5b60006125818682870161246f565b93505060206125928682870161246f565b92505060406125a3868287016124a5565b9150509250925092565b600060ff82169050919050565b6125c3816125ad565b82525050565b60006020820190506125de60008301846125ba565b92915050565b6000602082840312156125fa576125f9612421565b5b60006126088482850161246f565b91505092915050565b61261a81612446565b82525050565b60006020820190506126356000830184612611565b92915050565b6000806040838503121561265257612651612421565b5b60006126608582860161246f565b92505060206126718582860161246f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806126c257607f821691505b6020821081036126d5576126d461267b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061271160208361237a565b915061271c826126db565b602082019050919050565b6000602082019050818103600083015261274081612704565b9050919050565b7f43616c6c6572206973206e6f7420616c6c6f7700000000000000000000000000600082015250565b600061277d60138361237a565b915061278882612747565b602082019050919050565b600060208201905081810360008301526127ac81612770565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006127e960178361237a565b91506127f4826127b3565b602082019050919050565b60006020820190508181036000830152612818816127dc565b9050919050565b60008151905061282e81612458565b92915050565b60006020828403121561284a57612849612421565b5b60006128588482850161281f565b91505092915050565b60006040820190506128766000830185612611565b6128836020830184612611565b9392505050565b6000819050919050565b6000819050919050565b60006128b96128b46128af8461288a565b612894565b612484565b9050919050565b6128c98161289e565b82525050565b600060c0820190506128e46000830189612611565b6128f16020830188612530565b6128fe60408301876128c0565b61290b60608301866128c0565b6129186080830185612611565b61292560a0830184612530565b979650505050505050565b60008151905061293f8161248e565b92915050565b60008060006060848603121561295e5761295d612421565b5b600061296c86828701612930565b935050602061297d86828701612930565b925050604061298e86828701612930565b9150509250925092565b60006040820190506129ad6000830185612611565b6129ba6020830184612530565b9392505050565b6129ca816124fa565b81146129d557600080fd5b50565b6000815190506129e7816129c1565b92915050565b600060208284031215612a0357612a02612421565b5b6000612a11848285016129d8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a5482612484565b9150612a5f83612484565b9250828202612a6d81612484565b91508282048414831517612a8457612a83612a1a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ac582612484565b9150612ad083612484565b925082612ae057612adf612a8b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b4760218361237a565b9150612b5282612aeb565b604082019050919050565b60006020820190508181036000830152612b7681612b3a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bd960248361237a565b9150612be482612b7d565b604082019050919050565b60006020820190508181036000830152612c0881612bcc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6b60228361237a565b9150612c7682612c0f565b604082019050919050565b60006020820190508181036000830152612c9a81612c5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cfd60258361237a565b9150612d0882612ca1565b604082019050919050565b60006020820190508181036000830152612d2c81612cf0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d8f60238361237a565b9150612d9a82612d33565b604082019050919050565b60006020820190508181036000830152612dbe81612d82565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e2160298361237a565b9150612e2c82612dc5565b604082019050919050565b60006020820190508181036000830152612e5081612e14565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612ed960498361237a565b9150612ee482612e57565b606082019050919050565b60006020820190508181036000830152612f0881612ecc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f4560198361237a565b9150612f5082612f0f565b602082019050919050565b60006020820190508181036000830152612f7481612f38565b9050919050565b6000612f8682612484565b9150612f9183612484565b9250828201905080821115612fa957612fa8612a1a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612fe5601a8361237a565b9150612ff082612faf565b602082019050919050565b6000602082019050818103600083015261301481612fd8565b9050919050565b600061302682612484565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305857613057612a1a565b5b600182019050919050565b600061306e82612484565b915061307983612484565b925082820390508181111561309157613090612a1a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61312a81612446565b82525050565b600061313c8383613121565b60208301905092915050565b6000602082019050919050565b6000613160826130f5565b61316a8185613100565b935061317583613111565b8060005b838110156131a657815161318d8882613130565b975061319883613148565b925050600181019050613179565b5085935050505092915050565b600060a0820190506131c86000830188612530565b6131d560208301876128c0565b81810360408301526131e78186613155565b90506131f66060830185612611565b6132036080830184612530565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613243601b8361237a565b915061324e8261320d565b602082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b7f43616c6c6572206973206e6f742065786c756465642066726f6d206665650000600082015250565b60006132af601e8361237a565b91506132ba82613279565b602082019050919050565b600060208201905081810360008301526132de816132a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207064b94226408de332dc822c10187f935578db108cdbe5971addbaa9920288de64736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000b0c9a976efdf3b4fac9f72ae4945289c028168c200000000000000000000000005a8121a3bc56145a50ce6f5a861f41d7f5bec5800000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000000000000845726d6e4d75736b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009456c6f6e20546573740000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103ac578063bf474bed146103e9578063c876d0b914610414578063c9567bf91461043f578063dd62ed3e146104565761012a565b8063751039fc146102e95780637d1db4a5146103005780638da5cb5b1461032b5780638f9a55c01461035657806395d89b41146103815761012a565b8063313ce567116100e7578063313ce5671461022a578063437823ec1461025557806351bc3c851461027e57806370a0823114610295578063715018a6146102d25761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610493565b60405161015191906123ff565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124ba565b610525565b60405161018e9190612515565b60405180910390f35b3480156101a357600080fd5b506101ac610543565b6040516101b9919061253f565b60405180910390f35b3480156101ce57600080fd5b506101d7610549565b6040516101e4919061253f565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f919061255a565b610553565b6040516102219190612515565b60405180910390f35b34801561023657600080fd5b5061023f61062c565b60405161024c91906125c9565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906125e4565b610635565b005b34801561028a57600080fd5b50610293610725565b005b3480156102a157600080fd5b506102bc60048036038101906102b791906125e4565b6107f4565b6040516102c9919061253f565b60405180910390f35b3480156102de57600080fd5b506102e761083d565b005b3480156102f557600080fd5b506102fe610990565b005b34801561030c57600080fd5b50610315610a8d565b604051610322919061253f565b60405180910390f35b34801561033757600080fd5b50610340610a93565b60405161034d9190612620565b60405180910390f35b34801561036257600080fd5b5061036b610abc565b604051610378919061253f565b60405180910390f35b34801561038d57600080fd5b50610396610ac2565b6040516103a391906123ff565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce91906124ba565b610b54565b6040516103e09190612515565b60405180910390f35b3480156103f557600080fd5b506103fe610b72565b60405161040b919061253f565b60405180910390f35b34801561042057600080fd5b50610429610b78565b6040516104369190612515565b60405180910390f35b34801561044b57600080fd5b50610454610b8b565b005b34801561046257600080fd5b5061047d6004803603810190610478919061263b565b61108e565b60405161048a919061253f565b60405180910390f35b6060600e80546104a2906126aa565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce906126aa565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b600061053961053261118f565b8484611197565b6001905092915050565b60145481565b6000601054905090565b6000610560848484611360565b6106218461056c61118f565b61061c856040518060600160405280602881526020016132e660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d261118f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db29092919063ffffffff16565b611197565b600190509392505050565b60006009905090565b61063d61118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c190612727565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6003600061073161118f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166107b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107af90612793565b60405180910390fd5b60006107c3306107f4565b905060008111156107d8576107d781611e16565b5b600047905060008111156107f0576107ef8161208f565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61084561118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c990612727565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61099861118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1c90612727565b60405180910390fd5b6010546011819055506010546012819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601054604051610a83919061253f565b60405180910390a1565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b6060600f8054610ad1906126aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610afd906126aa565b8015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b5050505050905090565b6000610b68610b6161118f565b8484611360565b6001905092915050565b60135481565b600560009054906101000a900460ff1681565b610b9361118f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790612727565b60405180910390fd5b601660149054906101000a900460ff1615610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c67906127ff565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601054611197565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d859190612834565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e329190612834565b6040518363ffffffff1660e01b8152600401610e4f929190612861565b6020604051808303816000875af1158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612834565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f1b306107f4565b600080610f26610a93565b426040518863ffffffff1660e01b8152600401610f48969594939291906128cf565b60606040518083038185885af1158015610f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f8b9190612945565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161102d929190612998565b6020604051808303816000875af115801561104c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107091906129ed565b506001601660146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036111275760009050611189565b600082846111359190612a49565b90508284826111449190612aba565b14611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612b5d565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612bef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126c90612c81565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611353919061253f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c690612d13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143590612da5565b60405180910390fd5b60008111611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612e37565b60405180910390fd5b600061148b610a93565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114f957506114c9610a93565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae957600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115a25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ae8576115e360646115d5600a54600d54116115c2576006546115c6565b6008545b8561111590919063ffffffff16565b6120fb90919063ffffffff16565b9050600560009054906101000a900460ff161561177257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a65750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117715743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390612eef565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561181d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118735750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192e576011548211156118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b490612f5b565b60405180910390fd5b601254826118ca856107f4565b6118d49190612f7b565b1115611915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190c90612ffb565b60405180910390fd5b600d60008154809291906119289061301b565b91905055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119b757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119fb576119f860646119ea600b54600d54116119d7576007546119db565b6009545b8561111590919063ffffffff16565b6120fb90919063ffffffff16565b90505b6000611a06306107f4565b9050601660159054906101000a900460ff16158015611a725750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a88575060168054906101000a900460ff165b8015611a95575060135481115b8015611aa45750600c54600d54115b15611ae657611ac6611ac184611abc84601454612145565b612145565b611e16565b600047905066b1a2bc2ec50000811115611ae457611ae34761208f565b5b505b505b5b6000811115611bed57611b4481600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be4919061253f565b60405180910390a35b611c3f82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ce6611c9882846121bc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d34848484612206565b508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9784866121bc90919063ffffffff16565b604051611da4919061253f565b60405180910390a350505050565b6000838311158290611dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df191906123ff565b60405180910390fd5b5060008385611e099190613063565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e4e57611e4d613097565b5b604051908082528060200260200182016040528015611e7c5781602001602082028036833780820191505090505b5090503081600081518110611e9457611e936130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5f9190612834565b81600181518110611f7357611f726130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fda30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611197565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161203e9594939291906131b3565b600060405180830381600087803b15801561205857600080fd5b505af115801561206c573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120f7573d6000803e3d6000fd5b5050565b600061213d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230c565b905092915050565b60008183116121545782612156565b815b905092915050565b600080828461216d9190612f7b565b9050838110156121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990613259565b60405180910390fd5b8091505092915050565b60006121fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611db2565b905092915050565b600080600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166377c31390866040518263ffffffff1660e01b81526004016122649190612620565b602060405180830381865afa158015612281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a591906129ed565b90508080156122b45750600083115b15612301576000151581151514612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f7906132c5565b60405180910390fd5b5b829150509392505050565b60008083118290612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a91906123ff565b60405180910390fd5b50600083856123629190612aba565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123a957808201518184015260208101905061238e565b60008484015250505050565b6000601f19601f8301169050919050565b60006123d18261236f565b6123db818561237a565b93506123eb81856020860161238b565b6123f4816123b5565b840191505092915050565b6000602082019050818103600083015261241981846123c6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061245182612426565b9050919050565b61246181612446565b811461246c57600080fd5b50565b60008135905061247e81612458565b92915050565b6000819050919050565b61249781612484565b81146124a257600080fd5b50565b6000813590506124b48161248e565b92915050565b600080604083850312156124d1576124d0612421565b5b60006124df8582860161246f565b92505060206124f0858286016124a5565b9150509250929050565b60008115159050919050565b61250f816124fa565b82525050565b600060208201905061252a6000830184612506565b92915050565b61253981612484565b82525050565b60006020820190506125546000830184612530565b92915050565b60008060006060848603121561257357612572612421565b5b60006125818682870161246f565b93505060206125928682870161246f565b92505060406125a3868287016124a5565b9150509250925092565b600060ff82169050919050565b6125c3816125ad565b82525050565b60006020820190506125de60008301846125ba565b92915050565b6000602082840312156125fa576125f9612421565b5b60006126088482850161246f565b91505092915050565b61261a81612446565b82525050565b60006020820190506126356000830184612611565b92915050565b6000806040838503121561265257612651612421565b5b60006126608582860161246f565b92505060206126718582860161246f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806126c257607f821691505b6020821081036126d5576126d461267b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061271160208361237a565b915061271c826126db565b602082019050919050565b6000602082019050818103600083015261274081612704565b9050919050565b7f43616c6c6572206973206e6f7420616c6c6f7700000000000000000000000000600082015250565b600061277d60138361237a565b915061278882612747565b602082019050919050565b600060208201905081810360008301526127ac81612770565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006127e960178361237a565b91506127f4826127b3565b602082019050919050565b60006020820190508181036000830152612818816127dc565b9050919050565b60008151905061282e81612458565b92915050565b60006020828403121561284a57612849612421565b5b60006128588482850161281f565b91505092915050565b60006040820190506128766000830185612611565b6128836020830184612611565b9392505050565b6000819050919050565b6000819050919050565b60006128b96128b46128af8461288a565b612894565b612484565b9050919050565b6128c98161289e565b82525050565b600060c0820190506128e46000830189612611565b6128f16020830188612530565b6128fe60408301876128c0565b61290b60608301866128c0565b6129186080830185612611565b61292560a0830184612530565b979650505050505050565b60008151905061293f8161248e565b92915050565b60008060006060848603121561295e5761295d612421565b5b600061296c86828701612930565b935050602061297d86828701612930565b925050604061298e86828701612930565b9150509250925092565b60006040820190506129ad6000830185612611565b6129ba6020830184612530565b9392505050565b6129ca816124fa565b81146129d557600080fd5b50565b6000815190506129e7816129c1565b92915050565b600060208284031215612a0357612a02612421565b5b6000612a11848285016129d8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a5482612484565b9150612a5f83612484565b9250828202612a6d81612484565b91508282048414831517612a8457612a83612a1a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ac582612484565b9150612ad083612484565b925082612ae057612adf612a8b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b4760218361237a565b9150612b5282612aeb565b604082019050919050565b60006020820190508181036000830152612b7681612b3a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bd960248361237a565b9150612be482612b7d565b604082019050919050565b60006020820190508181036000830152612c0881612bcc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6b60228361237a565b9150612c7682612c0f565b604082019050919050565b60006020820190508181036000830152612c9a81612c5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cfd60258361237a565b9150612d0882612ca1565b604082019050919050565b60006020820190508181036000830152612d2c81612cf0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d8f60238361237a565b9150612d9a82612d33565b604082019050919050565b60006020820190508181036000830152612dbe81612d82565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e2160298361237a565b9150612e2c82612dc5565b604082019050919050565b60006020820190508181036000830152612e5081612e14565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612ed960498361237a565b9150612ee482612e57565b606082019050919050565b60006020820190508181036000830152612f0881612ecc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f4560198361237a565b9150612f5082612f0f565b602082019050919050565b60006020820190508181036000830152612f7481612f38565b9050919050565b6000612f8682612484565b9150612f9183612484565b9250828201905080821115612fa957612fa8612a1a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612fe5601a8361237a565b9150612ff082612faf565b602082019050919050565b6000602082019050818103600083015261301481612fd8565b9050919050565b600061302682612484565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305857613057612a1a565b5b600182019050919050565b600061306e82612484565b915061307983612484565b925082820390508181111561309157613090612a1a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61312a81612446565b82525050565b600061313c8383613121565b60208301905092915050565b6000602082019050919050565b6000613160826130f5565b61316a8185613100565b935061317583613111565b8060005b838110156131a657815161318d8882613130565b975061319883613148565b925050600181019050613179565b5085935050505092915050565b600060a0820190506131c86000830188612530565b6131d560208301876128c0565b81810360408301526131e78186613155565b90506131f66060830185612611565b6132036080830184612530565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613243601b8361237a565b915061324e8261320d565b602082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b7f43616c6c6572206973206e6f742065786c756465642066726f6d206665650000600082015250565b60006132af601e8361237a565b91506132ba82613279565b602082019050919050565b600060208201905081810360008301526132de816132a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207064b94226408de332dc822c10187f935578db108cdbe5971addbaa9920288de64736f6c63430008110033

Deployed Bytecode Sourcemap

7737:8895:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9863:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10815:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8795:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10140:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10984:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10049:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10545:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16250:379;;;;;;;;;;;;;:::i;:::-;;10243:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2527:148;;;;;;;;;;;;;:::i;:::-;;15257:196;;;;;;;;;;;;;:::i;:::-;;8612:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2313:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8671:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9954:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10370:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8732:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8079:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15563:642;;;;;;;;;;;;;:::i;:::-;;10664:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9863:83;9900:13;9933:5;9926:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9863:83;:::o;10815:161::-;10890:4;10907:39;10916:12;:10;:12::i;:::-;10930:7;10939:6;10907:8;:39::i;:::-;10964:4;10957:11;;10815:161;;;;:::o;8795:51::-;;;;:::o;10140:95::-;10193:7;10220;;10213:14;;10140:95;:::o;10984:313::-;11082:4;11099:36;11109:6;11117:9;11128:6;11099:9;:36::i;:::-;11146:121;11155:6;11163:12;:10;:12::i;:::-;11177:89;11215:6;11177:89;;;;;;;;;;;;;;;;;:11;:19;11189:6;11177:19;;;;;;;;;;;;;;;:33;11197:12;:10;:12::i;:::-;11177:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;11146:8;:121::i;:::-;11285:4;11278:11;;10984:313;;;;;:::o;10049:83::-;10090:5;8518:1;10108:16;;10049:83;:::o;10545:111::-;2450:12;:10;:12::i;:::-;2440:22;;:6;;;;;;;;;;:22;;;2432:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10644:4:::1;10614:18;:27;10633:7;10614:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10545:111:::0;:::o;16250:379::-;16300:18;:32;16319:12;:10;:12::i;:::-;16300:32;;;;;;;;;;;;;;;;;;;;;;;;;16292:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16367:20;16388:24;16406:4;16388:9;:24::i;:::-;16367:45;;16439:1;16426:12;:14;16423:73;;;16454:30;16471:12;16454:16;:30::i;:::-;16423:73;16506:18;16525:21;16506:40;;16571:1;16560:10;:12;16557:65;;;16586:24;16599:10;16586:12;:24::i;:::-;16557:65;16281:348;;16250:379::o;10243:119::-;10309:7;10336:9;:18;10346:7;10336:18;;;;;;;;;;;;;;;;10329:25;;10243:119;;;:::o;2527:148::-;2450:12;:10;:12::i;:::-;2440:22;;:6;;;;;;;;;;:22;;;2432:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2634:1:::1;2597:40;;2618:6;::::0;::::1;;;;;;;;2597:40;;;;;;;;;;;;2665:1;2648:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2527:148::o:0;15257:196::-;2450:12;:10;:12::i;:::-;2440:22;;:6;;;;;;;;;;:22;;;2432:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15325:7:::1;;15310:12;:22;;;;15358:7;;15343:14;:22;;;;15397:5;15376:20;;:26;;;;;;;;;;;;;;;;;;15418:27;15437:7;;15418:27;;;;;;:::i;:::-;;;;;;;;15257:196::o:0;8612:52::-;;;;:::o;2313:79::-;2351:7;2378:6;;;;;;;;;;;2371:13;;2313:79;:::o;8671:54::-;;;;:::o;9954:87::-;9993:13;10026:7;10019:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9954:87;:::o;10370:167::-;10448:4;10465:42;10475:12;:10;:12::i;:::-;10489:9;10500:6;10465:9;:42::i;:::-;10525:4;10518:11;;10370:167;;;;:::o;8732:56::-;;;;:::o;8079:39::-;;;;;;;;;;;;;:::o;15563:642::-;2450:12;:10;:12::i;:::-;2440:22;;:6;;;;;;;;;;:22;;;2432:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15627:11:::1;;;;;;;;;;;15626:12;15618:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15713:42;15676:15;;:80;;;;;;;;;;;;;;;;;;15767:58;15784:4;15799:15;;;;;;;;;;;15817:7;;15767:8;:58::i;:::-;15870:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15852:55;;;15916:4;15923:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15852:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15836:13;;:110;;;;;;;;;;;;;;;;;;15957:15;;;;;;;;;;;:31;;;15996:21;16027:4;16033:24;16051:4;16033:9;:24::i;:::-;16058:1;16060::::0;16062:7:::1;:5;:7::i;:::-;16070:15;15957:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16104:13;;;;;;;;;;;16097:29;;;16135:15;;;;;;;;;;;16153:14;16097:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16193:4;16179:11;;:18;;;;;;;;;;;;;;;;;;15563:642::o:0;10664:143::-;10745:7;10772:11;:18;10784:5;10772:18;;;;;;;;;;;;;;;:27;10791:7;10772:27;;;;;;;;;;;;;;;;10765:34;;10664:143;;;;:::o;1432:246::-;1490:7;1519:1;1514;:6;1510:47;;1544:1;1537:8;;;;1510:47;1567:9;1583:1;1579;:5;;;;:::i;:::-;1567:17;;1612:1;1607;1603;:5;;;;:::i;:::-;:10;1595:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1669:1;1662:8;;;1432:246;;;;;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;11305:335::-;11415:1;11398:19;;:5;:19;;;11390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11496:1;11477:21;;:7;:21;;;11469:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11578:6;11548:11;:18;11560:5;11548:18;;;;;;;;;;;;;;;:27;11567:7;11548:27;;;;;;;;;;;;;;;:36;;;;11616:7;11600:32;;11609:5;11600:32;;;11625:6;11600:32;;;;;;:::i;:::-;;;;;;;;11305:335;;;:::o;11648:2575::-;11752:1;11736:18;;:4;:18;;;11728:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11829:1;11815:16;;:2;:16;;;11807:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11899:1;11890:6;:10;11882:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11957:17;11999:7;:5;:7::i;:::-;11991:15;;:4;:15;;;;:32;;;;;12016:7;:5;:7::i;:::-;12010:13;;:2;:13;;;;11991:32;11987:1821;;;12045:18;:24;12064:4;12045:24;;;;;;;;;;;;;;;;;;;;;;;;;12044:25;:52;;;;;12074:18;:22;12093:2;12074:22;;;;;;;;;;;;;;;;;;;;;;;;;12073:23;12044:52;12040:1757;;;12125:76;12197:3;12125:67;12147:15;;12137:9;;:25;12136:55;;12177:14;;12136:55;;;12164:12;;12136:55;12125:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;12113:88;;12222:20;;;;;;;;;;;12218:508;;;12283:15;;;;;;;;;;;12269:30;;:2;:30;;;;:62;;;;;12317:13;;;;;;;;;;;12303:28;;:2;:28;;;;12269:62;12265:444;;;12467:12;12394:28;:39;12423:9;12394:39;;;;;;;;;;;;;;;;:85;12358:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;12675:12;12633:28;:39;12662:9;12633:39;;;;;;;;;;;;;;;:54;;;;12265:444;12218:508;12754:13;;;;;;;;;;;12746:21;;:4;:21;;;:55;;;;;12785:15;;;;;;;;;;;12771:30;;:2;:30;;;;12746:55;:83;;;;;12807:18;:22;12826:2;12807:22;;;;;;;;;;;;;;;;;;;;;;;;;12805:24;12746:83;12742:313;;;12869:12;;12859:6;:22;;12851:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12964:14;;12954:6;12938:13;12948:2;12938:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;12930:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;13028:9;;:11;;;;;;;;;:::i;:::-;;;;;;12742:313;13094:13;;;;;;;;;;;13088:19;;:2;:19;;;:43;;;;;13126:4;13111:20;;:4;:20;;;;13088:43;13085:174;;;13164:79;13239:3;13164:70;13186:16;;13176:9;;:26;13175:58;;13218:15;;13175:58;;;13204:13;;13175:58;13164:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;13152:91;;13085:174;13275:28;13306:24;13324:4;13306:9;:24::i;:::-;13275:55;;13350:6;;;;;;;;;;;13349:7;:32;;;;;13368:13;;;;;;;;;;;13360:21;;:2;:21;;;13349:32;:47;;;;;13385:11;;;;;;;;;;13349:47;:89;;;;;13421:17;;13400:20;:38;13349:89;:121;;;;;13452:18;;13442:9;;:28;13349:121;13345:437;;;13491:67;13508:49;13512:6;13519:37;13523:20;13544:11;;13519:3;:37::i;:::-;13508:3;:49::i;:::-;13491:16;:67::i;:::-;13577:26;13606:21;13577:50;;13670:17;13649:18;:38;13646:121;;;13712:35;13725:21;13712:12;:35::i;:::-;13646:121;13472:310;13345:437;12098:1699;12040:1757;11987:1821;13831:1;13821:9;:11;13818:161;;;13871:39;13900:9;13871;:24;13889:4;13871:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13846:9;:24;13864:4;13846:24;;;;;;;;;;;;;;;:64;;;;13951:4;13928:39;;13937:4;13928:39;;;13957:9;13928:39;;;;;;:::i;:::-;;;;;;;;13818:161;14007:27;14027:6;14007:9;:15;14017:4;14007:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;13991:9;:15;14001:4;13991:15;;;;;;;;;;;;;;;:43;;;;14059:40;14077:21;14088:9;14077:6;:10;;:21;;;;:::i;:::-;14059:9;:13;14069:2;14059:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;14045:9;:13;14055:2;14045:13;;;;;;;;;;;;;;;:54;;;;14110:38;14131:4;14137:2;14141:6;14110:20;:38::i;:::-;;14179:2;14164:41;;14173:4;14164:41;;;14183:21;14194:9;14183:6;:10;;:21;;;;:::i;:::-;14164:41;;;;;;:::i;:::-;;;;;;;;11717:2506;11648:2575;;;:::o;1234:190::-;1320:7;1353:1;1348;:6;;1356:12;1340:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1380:9;1396:1;1392;:5;;;;:::i;:::-;1380:17;;1415:1;1408:8;;;1234:190;;;;;:::o;14339:483::-;9137:4;9128:6;;:13;;;;;;;;;;;;;;;;;;14417:21:::1;14455:1;14441:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:40;;14486:4;14468;14473:1;14468:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14512:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14502:4;14507:1;14502:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14545:62;14562:4;14577:15;;;;;;;;;;;14595:11;14545:8;:62::i;:::-;14618:15;;;;;;;;;;;:66;;;14699:11;14725:1;14741:4;14768;14788:15;14618:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14406:416;9173:5:::0;9164:6;;:14;;;;;;;;;;;;;;;;;;14339:483;:::o;15461:92::-;15518:10;;;;;;;;;;;:19;;:27;15538:6;15518:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15461:92;:::o;1686:132::-;1744:7;1771:39;1775:1;1778;1771:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1764:46;;1686:132;;;;:::o;14233:98::-;14290:7;14317:1;14315;:3;14314:9;;14322:1;14314:9;;;14320:1;14314:9;14307:16;;14233:98;;;;:::o;903:179::-;961:7;981:9;997:1;993;:5;;;;:::i;:::-;981:17;;1022:1;1017;:6;;1009:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1073:1;1066:8;;;903:179;;;;:::o;1090:136::-;1148:7;1175:43;1179:1;1182;1175:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1168:50;;1090:136;;;;:::o;14830:419::-;14971:7;14991:23;15036:10;;;;;;;;;;;15017:37;;;15055:4;15017:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14991:69;;15075:18;:32;;;;;15106:1;15097:6;:10;15075:32;15071:136;;;15155:5;15133:27;;:18;:27;;;15125:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15071:136;15224:6;15217:13;;;14830:419;;;;;:::o;1826:189::-;1912:7;1944:1;1940;:5;1947:12;1932:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1971:9;1987:1;1983;:5;;;;:::i;:::-;1971:17;;2006:1;1999:8;;;1826:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:182::-;6672:34;6668:1;6660:6;6656:14;6649:58;6532:182;:::o;6720:366::-;6862:3;6883:67;6947:2;6942:3;6883:67;:::i;:::-;6876:74;;6959:93;7048:3;6959:93;:::i;:::-;7077:2;7072:3;7068:12;7061:19;;6720:366;;;:::o;7092:419::-;7258:4;7296:2;7285:9;7281:18;7273:26;;7345:9;7339:4;7335:20;7331:1;7320:9;7316:17;7309:47;7373:131;7499:4;7373:131;:::i;:::-;7365:139;;7092:419;;;:::o;7517:169::-;7657:21;7653:1;7645:6;7641:14;7634:45;7517:169;:::o;7692:366::-;7834:3;7855:67;7919:2;7914:3;7855:67;:::i;:::-;7848:74;;7931:93;8020:3;7931:93;:::i;:::-;8049:2;8044:3;8040:12;8033:19;;7692:366;;;:::o;8064:419::-;8230:4;8268:2;8257:9;8253:18;8245:26;;8317:9;8311:4;8307:20;8303:1;8292:9;8288:17;8281:47;8345:131;8471:4;8345:131;:::i;:::-;8337:139;;8064:419;;;:::o;8489:173::-;8629:25;8625:1;8617:6;8613:14;8606:49;8489:173;:::o;8668:366::-;8810:3;8831:67;8895:2;8890:3;8831:67;:::i;:::-;8824:74;;8907:93;8996:3;8907:93;:::i;:::-;9025:2;9020:3;9016:12;9009:19;;8668:366;;;:::o;9040:419::-;9206:4;9244:2;9233:9;9229:18;9221:26;;9293:9;9287:4;9283:20;9279:1;9268:9;9264:17;9257:47;9321:131;9447:4;9321:131;:::i;:::-;9313:139;;9040:419;;;:::o;9465:143::-;9522:5;9553:6;9547:13;9538:22;;9569:33;9596:5;9569:33;:::i;:::-;9465:143;;;;:::o;9614:351::-;9684:6;9733:2;9721:9;9712:7;9708:23;9704:32;9701:119;;;9739:79;;:::i;:::-;9701:119;9859:1;9884:64;9940:7;9931:6;9920:9;9916:22;9884:64;:::i;:::-;9874:74;;9830:128;9614:351;;;;:::o;9971:332::-;10092:4;10130:2;10119:9;10115:18;10107:26;;10143:71;10211:1;10200:9;10196:17;10187:6;10143:71;:::i;:::-;10224:72;10292:2;10281:9;10277:18;10268:6;10224:72;:::i;:::-;9971:332;;;;;:::o;10309:85::-;10354:7;10383:5;10372:16;;10309:85;;;:::o;10400:60::-;10428:3;10449:5;10442:12;;10400:60;;;:::o;10466:158::-;10524:9;10557:61;10575:42;10584:32;10610:5;10584:32;:::i;:::-;10575:42;:::i;:::-;10557:61;:::i;:::-;10544:74;;10466:158;;;:::o;10630:147::-;10725:45;10764:5;10725:45;:::i;:::-;10720:3;10713:58;10630:147;;:::o;10783:807::-;11032:4;11070:3;11059:9;11055:19;11047:27;;11084:71;11152:1;11141:9;11137:17;11128:6;11084:71;:::i;:::-;11165:72;11233:2;11222:9;11218:18;11209:6;11165:72;:::i;:::-;11247:80;11323:2;11312:9;11308:18;11299:6;11247:80;:::i;:::-;11337;11413:2;11402:9;11398:18;11389:6;11337:80;:::i;:::-;11427:73;11495:3;11484:9;11480:19;11471:6;11427:73;:::i;:::-;11510;11578:3;11567:9;11563:19;11554:6;11510:73;:::i;:::-;10783:807;;;;;;;;;:::o;11596:143::-;11653:5;11684:6;11678:13;11669:22;;11700:33;11727:5;11700:33;:::i;:::-;11596:143;;;;:::o;11745:663::-;11833:6;11841;11849;11898:2;11886:9;11877:7;11873:23;11869:32;11866:119;;;11904:79;;:::i;:::-;11866:119;12024:1;12049:64;12105:7;12096:6;12085:9;12081:22;12049:64;:::i;:::-;12039:74;;11995:128;12162:2;12188:64;12244:7;12235:6;12224:9;12220:22;12188:64;:::i;:::-;12178:74;;12133:129;12301:2;12327:64;12383:7;12374:6;12363:9;12359:22;12327:64;:::i;:::-;12317:74;;12272:129;11745:663;;;;;:::o;12414:332::-;12535:4;12573:2;12562:9;12558:18;12550:26;;12586:71;12654:1;12643:9;12639:17;12630:6;12586:71;:::i;:::-;12667:72;12735:2;12724:9;12720:18;12711:6;12667:72;:::i;:::-;12414:332;;;;;:::o;12752:116::-;12822:21;12837:5;12822:21;:::i;:::-;12815:5;12812:32;12802:60;;12858:1;12855;12848:12;12802:60;12752:116;:::o;12874:137::-;12928:5;12959:6;12953:13;12944:22;;12975:30;12999:5;12975:30;:::i;:::-;12874:137;;;;:::o;13017:345::-;13084:6;13133:2;13121:9;13112:7;13108:23;13104:32;13101:119;;;13139:79;;:::i;:::-;13101:119;13259:1;13284:61;13337:7;13328:6;13317:9;13313:22;13284:61;:::i;:::-;13274:71;;13230:125;13017:345;;;;:::o;13368:180::-;13416:77;13413:1;13406:88;13513:4;13510:1;13503:15;13537:4;13534:1;13527:15;13554:410;13594:7;13617:20;13635:1;13617:20;:::i;:::-;13612:25;;13651:20;13669:1;13651:20;:::i;:::-;13646:25;;13706:1;13703;13699:9;13728:30;13746:11;13728:30;:::i;:::-;13717:41;;13907:1;13898:7;13894:15;13891:1;13888:22;13868:1;13861:9;13841:83;13818:139;;13937:18;;:::i;:::-;13818:139;13602:362;13554:410;;;;:::o;13970:180::-;14018:77;14015:1;14008:88;14115:4;14112:1;14105:15;14139:4;14136:1;14129:15;14156:185;14196:1;14213:20;14231:1;14213:20;:::i;:::-;14208:25;;14247:20;14265:1;14247:20;:::i;:::-;14242:25;;14286:1;14276:35;;14291:18;;:::i;:::-;14276:35;14333:1;14330;14326:9;14321:14;;14156:185;;;;:::o;14347:220::-;14487:34;14483:1;14475:6;14471:14;14464:58;14556:3;14551:2;14543:6;14539:15;14532:28;14347:220;:::o;14573:366::-;14715:3;14736:67;14800:2;14795:3;14736:67;:::i;:::-;14729:74;;14812:93;14901:3;14812:93;:::i;:::-;14930:2;14925:3;14921:12;14914:19;;14573:366;;;:::o;14945:419::-;15111:4;15149:2;15138:9;15134:18;15126:26;;15198:9;15192:4;15188:20;15184:1;15173:9;15169:17;15162:47;15226:131;15352:4;15226:131;:::i;:::-;15218:139;;14945:419;;;:::o;15370:223::-;15510:34;15506:1;15498:6;15494:14;15487:58;15579:6;15574:2;15566:6;15562:15;15555:31;15370:223;:::o;15599:366::-;15741:3;15762:67;15826:2;15821:3;15762:67;:::i;:::-;15755:74;;15838:93;15927:3;15838:93;:::i;:::-;15956:2;15951:3;15947:12;15940:19;;15599:366;;;:::o;15971:419::-;16137:4;16175:2;16164:9;16160:18;16152:26;;16224:9;16218:4;16214:20;16210:1;16199:9;16195:17;16188:47;16252:131;16378:4;16252:131;:::i;:::-;16244:139;;15971:419;;;:::o;16396:221::-;16536:34;16532:1;16524:6;16520:14;16513:58;16605:4;16600:2;16592:6;16588:15;16581:29;16396:221;:::o;16623:366::-;16765:3;16786:67;16850:2;16845:3;16786:67;:::i;:::-;16779:74;;16862:93;16951:3;16862:93;:::i;:::-;16980:2;16975:3;16971:12;16964:19;;16623:366;;;:::o;16995:419::-;17161:4;17199:2;17188:9;17184:18;17176:26;;17248:9;17242:4;17238:20;17234:1;17223:9;17219:17;17212:47;17276:131;17402:4;17276:131;:::i;:::-;17268:139;;16995:419;;;:::o;17420:224::-;17560:34;17556:1;17548:6;17544:14;17537:58;17629:7;17624:2;17616:6;17612:15;17605:32;17420:224;:::o;17650:366::-;17792:3;17813:67;17877:2;17872:3;17813:67;:::i;:::-;17806:74;;17889:93;17978:3;17889:93;:::i;:::-;18007:2;18002:3;17998:12;17991:19;;17650:366;;;:::o;18022:419::-;18188:4;18226:2;18215:9;18211:18;18203:26;;18275:9;18269:4;18265:20;18261:1;18250:9;18246:17;18239:47;18303:131;18429:4;18303:131;:::i;:::-;18295:139;;18022:419;;;:::o;18447:222::-;18587:34;18583:1;18575:6;18571:14;18564:58;18656:5;18651:2;18643:6;18639:15;18632:30;18447:222;:::o;18675:366::-;18817:3;18838:67;18902:2;18897:3;18838:67;:::i;:::-;18831:74;;18914:93;19003:3;18914:93;:::i;:::-;19032:2;19027:3;19023:12;19016:19;;18675:366;;;:::o;19047:419::-;19213:4;19251:2;19240:9;19236:18;19228:26;;19300:9;19294:4;19290:20;19286:1;19275:9;19271:17;19264:47;19328:131;19454:4;19328:131;:::i;:::-;19320:139;;19047:419;;;:::o;19472:228::-;19612:34;19608:1;19600:6;19596:14;19589:58;19681:11;19676:2;19668:6;19664:15;19657:36;19472:228;:::o;19706:366::-;19848:3;19869:67;19933:2;19928:3;19869:67;:::i;:::-;19862:74;;19945:93;20034:3;19945:93;:::i;:::-;20063:2;20058:3;20054:12;20047:19;;19706:366;;;:::o;20078:419::-;20244:4;20282:2;20271:9;20267:18;20259:26;;20331:9;20325:4;20321:20;20317:1;20306:9;20302:17;20295:47;20359:131;20485:4;20359:131;:::i;:::-;20351:139;;20078:419;;;:::o;20503:297::-;20643:34;20639:1;20631:6;20627:14;20620:58;20712:34;20707:2;20699:6;20695:15;20688:59;20781:11;20776:2;20768:6;20764:15;20757:36;20503:297;:::o;20806:366::-;20948:3;20969:67;21033:2;21028:3;20969:67;:::i;:::-;20962:74;;21045:93;21134:3;21045:93;:::i;:::-;21163:2;21158:3;21154:12;21147:19;;20806:366;;;:::o;21178:419::-;21344:4;21382:2;21371:9;21367:18;21359:26;;21431:9;21425:4;21421:20;21417:1;21406:9;21402:17;21395:47;21459:131;21585:4;21459:131;:::i;:::-;21451:139;;21178:419;;;:::o;21603:175::-;21743:27;21739:1;21731:6;21727:14;21720:51;21603:175;:::o;21784:366::-;21926:3;21947:67;22011:2;22006:3;21947:67;:::i;:::-;21940:74;;22023:93;22112:3;22023:93;:::i;:::-;22141:2;22136:3;22132:12;22125:19;;21784:366;;;:::o;22156:419::-;22322:4;22360:2;22349:9;22345:18;22337:26;;22409:9;22403:4;22399:20;22395:1;22384:9;22380:17;22373:47;22437:131;22563:4;22437:131;:::i;:::-;22429:139;;22156:419;;;:::o;22581:191::-;22621:3;22640:20;22658:1;22640:20;:::i;:::-;22635:25;;22674:20;22692:1;22674:20;:::i;:::-;22669:25;;22717:1;22714;22710:9;22703:16;;22738:3;22735:1;22732:10;22729:36;;;22745:18;;:::i;:::-;22729:36;22581:191;;;;:::o;22778:176::-;22918:28;22914:1;22906:6;22902:14;22895:52;22778:176;:::o;22960:366::-;23102:3;23123:67;23187:2;23182:3;23123:67;:::i;:::-;23116:74;;23199:93;23288:3;23199:93;:::i;:::-;23317:2;23312:3;23308:12;23301:19;;22960:366;;;:::o;23332:419::-;23498:4;23536:2;23525:9;23521:18;23513:26;;23585:9;23579:4;23575:20;23571:1;23560:9;23556:17;23549:47;23613:131;23739:4;23613:131;:::i;:::-;23605:139;;23332:419;;;:::o;23757:233::-;23796:3;23819:24;23837:5;23819:24;:::i;:::-;23810:33;;23865:66;23858:5;23855:77;23852:103;;23935:18;;:::i;:::-;23852:103;23982:1;23975:5;23971:13;23964:20;;23757:233;;;:::o;23996:194::-;24036:4;24056:20;24074:1;24056:20;:::i;:::-;24051:25;;24090:20;24108:1;24090:20;:::i;:::-;24085:25;;24134:1;24131;24127:9;24119:17;;24158:1;24152:4;24149:11;24146:37;;;24163:18;;:::i;:::-;24146:37;23996:194;;;;:::o;24196:180::-;24244:77;24241:1;24234:88;24341:4;24338:1;24331:15;24365:4;24362:1;24355:15;24382:180;24430:77;24427:1;24420:88;24527:4;24524:1;24517:15;24551:4;24548:1;24541:15;24568:114;24635:6;24669:5;24663:12;24653:22;;24568:114;;;:::o;24688:184::-;24787:11;24821:6;24816:3;24809:19;24861:4;24856:3;24852:14;24837:29;;24688:184;;;;:::o;24878:132::-;24945:4;24968:3;24960:11;;24998:4;24993:3;24989:14;24981:22;;24878:132;;;:::o;25016:108::-;25093:24;25111:5;25093:24;:::i;:::-;25088:3;25081:37;25016:108;;:::o;25130:179::-;25199:10;25220:46;25262:3;25254:6;25220:46;:::i;:::-;25298:4;25293:3;25289:14;25275:28;;25130:179;;;;:::o;25315:113::-;25385:4;25417;25412:3;25408:14;25400:22;;25315:113;;;:::o;25464:732::-;25583:3;25612:54;25660:5;25612:54;:::i;:::-;25682:86;25761:6;25756:3;25682:86;:::i;:::-;25675:93;;25792:56;25842:5;25792:56;:::i;:::-;25871:7;25902:1;25887:284;25912:6;25909:1;25906:13;25887:284;;;25988:6;25982:13;26015:63;26074:3;26059:13;26015:63;:::i;:::-;26008:70;;26101:60;26154:6;26101:60;:::i;:::-;26091:70;;25947:224;25934:1;25931;25927:9;25922:14;;25887:284;;;25891:14;26187:3;26180:10;;25588:608;;;25464:732;;;;:::o;26202:831::-;26465:4;26503:3;26492:9;26488:19;26480:27;;26517:71;26585:1;26574:9;26570:17;26561:6;26517:71;:::i;:::-;26598:80;26674:2;26663:9;26659:18;26650:6;26598:80;:::i;:::-;26725:9;26719:4;26715:20;26710:2;26699:9;26695:18;26688:48;26753:108;26856:4;26847:6;26753:108;:::i;:::-;26745:116;;26871:72;26939:2;26928:9;26924:18;26915:6;26871:72;:::i;:::-;26953:73;27021:3;27010:9;27006:19;26997:6;26953:73;:::i;:::-;26202:831;;;;;;;;:::o;27039:177::-;27179:29;27175:1;27167:6;27163:14;27156:53;27039:177;:::o;27222:366::-;27364:3;27385:67;27449:2;27444:3;27385:67;:::i;:::-;27378:74;;27461:93;27550:3;27461:93;:::i;:::-;27579:2;27574:3;27570:12;27563:19;;27222:366;;;:::o;27594:419::-;27760:4;27798:2;27787:9;27783:18;27775:26;;27847:9;27841:4;27837:20;27833:1;27822:9;27818:17;27811:47;27875:131;28001:4;27875:131;:::i;:::-;27867:139;;27594:419;;;:::o;28019:180::-;28159:32;28155:1;28147:6;28143:14;28136:56;28019:180;:::o;28205:366::-;28347:3;28368:67;28432:2;28427:3;28368:67;:::i;:::-;28361:74;;28444:93;28533:3;28444:93;:::i;:::-;28562:2;28557:3;28553:12;28546:19;;28205:366;;;:::o;28577:419::-;28743:4;28781:2;28770:9;28766:18;28758:26;;28830:9;28824:4;28820:20;28816:1;28805:9;28801:17;28794:47;28858:131;28984:4;28858:131;:::i;:::-;28850:139;;28577:419;;;:::o

Swarm Source

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