ETH Price: $3,373.86 (+0.71%)
Gas: 9 Gwei

Token

Zombie Shiba (ZHIBA)
 

Overview

Max Total Supply

1,000,000,000 ZHIBA

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: ZHIBA 4
Balance
8,780,717.48633554 ZHIBA

Value
$0.00
0xa68e39c2d82b795879a3b87f16fd7e3ac7056935
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ZHIBA

Compiler Version
v0.8.19+commit.7dd6d404

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-24
*/

/*

Get ready to howl at the moon with Zombie Shiba $ZHIBA! 🧟🧟🧟

Telegram: https://t.me/zombieshiba_ERC

Twitter: https://twitter.com/zombieshibaERC

Website: https://zombieshiba.live/

*/
// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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 msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract ZHIBA 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 => bool) private bots;
    address payable private _taxWallet;
    address payable private _taxWallet1;
    uint256 firstBlock;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000* 10**_decimals;
    string private constant _name = unicode"Zombie Shiba";
    string private constant _symbol = unicode"ZHIBA";
    uint256 public _maxTxAmount =   2 * (_tTotal/100);
    uint256 public _maxWalletSize = 2 * (_tTotal/100);
    uint256 public _taxSwapThreshold= 2 * (_tTotal/1000);
    uint256 public _maxTaxSwap= 2 * (_tTotal/100);

    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 () {

        _taxWallet = payable(0x67C0Aa617b2fddD1F11B7a11F111a69837b0A2C9);
        _taxWallet1 = payable(0x67C0Aa617b2fddD1F11B7a11F111a69837b0A2C9);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_taxWallet1] = true;

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

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            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 > 0) {
                    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));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

     function updateMaxTx(uint256 maxtxamount) external onlyOwner{
        _maxTxAmount = maxtxamount;
    }

    function updateMaxWallet(uint256 maxwalletamount) external onlyOwner{
        _maxWalletSize = maxwalletamount;
    }

    function updateTaxwallet(address taxwallet1,address taxwallet2) external onlyOwner{
       _taxWallet=payable(taxwallet1);
       _taxWallet1=payable(taxwallet2);
    }

     function updateTax(uint256 _buyTax,uint256 _sellTax) external onlyOwner{
       _initialBuyTax=_buyTax;
       _initialSellTax=_sellTax;
       _finalBuyTax=_buyTax;
       _finalSellTax=_sellTax;
    }

    function sendETHToFee(uint256 amount) private {
        uint256 final_amt = (amount.mul(90)).div(100);
        uint256 secondAmt = amount.sub(final_amt);
        _taxWallet.transfer(final_amt);
        _taxWallet1.transfer(secondAmt);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    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);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxtxamount","type":"uint256"}],"name":"updateMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxwalletamount","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"updateTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"taxwallet1","type":"address"},{"internalType":"address","name":"taxwallet2","type":"address"}],"name":"updateTaxwallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526014600855601e6009556001600a556001600b55600f600c55600f600d556005600e556000600f5560646009600a6200003e919062000758565b633b9aca006200004f9190620007a9565b6200005b919062000823565b6002620000699190620007a9565b60105560646009600a6200007e919062000758565b633b9aca006200008f9190620007a9565b6200009b919062000823565b6002620000a99190620007a9565b6011556103e86009600a620000bf919062000758565b633b9aca00620000d09190620007a9565b620000dc919062000823565b6002620000ea9190620007a9565b60125560646009600a620000ff919062000758565b633b9aca00620001109190620007a9565b6200011c919062000823565b60026200012a9190620007a9565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200016f57600080fd5b506000620001826200058d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507367c0aa617b2fddd1f11b7a11f111a69837b0a2c9600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507367c0aa617b2fddd1f11b7a11f111a69837b0a2c9600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002da919062000758565b633b9aca00620002eb9190620007a9565b60016000620002ff6200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003536200059560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005006200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200055f919062000758565b633b9aca00620005709190620007a9565b6040516200057f91906200086c565b60405180910390a362000889565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200064c57808604811115620006245762000623620005be565b5b6001851615620006345780820291505b80810290506200064485620005ed565b945062000604565b94509492505050565b6000826200066757600190506200073a565b816200067757600090506200073a565b81600181146200069057600281146200069b57620006d1565b60019150506200073a565b60ff841115620006b057620006af620005be565b5b8360020a915084821115620006ca57620006c9620005be565b5b506200073a565b5060208310610133831016604e8410600b84101617156200070b5782820a905083811115620007055762000704620005be565b5b6200073a565b6200071a8484846001620005fa565b92509050818404811115620007345762000733620005be565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007658262000741565b915062000772836200074b565b9250620007a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000655565b905092915050565b6000620007b68262000741565b9150620007c38362000741565b9250828202620007d38162000741565b91508282048414831517620007ed57620007ec620005be565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008308262000741565b91506200083d8362000741565b92508262000850576200084f620007f4565b5b828204905092915050565b620008668162000741565b82525050565b60006020820190506200088360008301846200085b565b92915050565b6138b480620008996000396000f3fe60806040526004361061014f5760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb14610479578063bf474bed146104b6578063c2d0ffca146104e1578063c9567bf91461050a578063d34628cc14610521578063dd62ed3e1461054a57610156565b806370a0823114610379578063751039fc146103b65780637d1db4a5146103cd5780638da5cb5b146103f85780638f9a55c01461042357806395d89b411461044e57610156565b80632077d9b7116101085780632077d9b71461025957806323b872dd146102825780632f37aa6d146102bf578063313ce567146102e857806331c2d847146103135780633bbac5791461033c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee5780631c499ab01461021957806320365d5f1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610587565b60405161017d9190612804565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906128ce565b6105c4565b6040516101ba9190612929565b60405180910390f35b3480156101cf57600080fd5b506101d86105e2565b6040516101e59190612953565b60405180910390f35b3480156101fa57600080fd5b506102036105e8565b6040516102109190612953565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061296e565b61060c565b005b34801561024e57600080fd5b506102576106ab565b005b34801561026557600080fd5b50610280600480360381019061027b919061299b565b6107fe565b005b34801561028e57600080fd5b506102a960048036038101906102a491906129db565b610919565b6040516102b69190612929565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e19190612a2e565b6109f2565b005b3480156102f457600080fd5b506102fd610aa7565b60405161030a9190612a8a565b60405180910390f35b34801561031f57600080fd5b5061033a60048036038101906103359190612bed565b610ab0565b005b34801561034857600080fd5b50610363600480360381019061035e9190612c36565b610bda565b6040516103709190612929565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612c36565b610c30565b6040516103ad9190612953565b60405180910390f35b3480156103c257600080fd5b506103cb610c79565b005b3480156103d957600080fd5b506103e2610da9565b6040516103ef9190612953565b60405180910390f35b34801561040457600080fd5b5061040d610daf565b60405161041a9190612c72565b60405180910390f35b34801561042f57600080fd5b50610438610dd8565b6040516104459190612953565b60405180910390f35b34801561045a57600080fd5b50610463610dde565b6040516104709190612804565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b91906128ce565b610e1b565b6040516104ad9190612929565b60405180910390f35b3480156104c257600080fd5b506104cb610e39565b6040516104d89190612953565b60405180910390f35b3480156104ed57600080fd5b506105086004803603810190610503919061296e565b610e3f565b005b34801561051657600080fd5b5061051f610ede565b005b34801561052d57600080fd5b5061054860048036038101906105439190612bed565b61141d565b005b34801561055657600080fd5b50610571600480360381019061056c919061299b565b611547565b60405161057e9190612953565b60405180910390f35b60606040518060400160405280600c81526020017f5a6f6d6269652053686962610000000000000000000000000000000000000000815250905090565b60006105d86105d16115ce565b84846115d6565b6001905092915050565b60135481565b60006009600a6105f89190612def565b633b9aca006106079190612e3a565b905090565b6106146115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612ec8565b60405180910390fd5b8060118190555050565b6106b36115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612ec8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108066115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088a90612ec8565b60405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600061092684848461179f565b6109e7846109326115ce565b6109e28560405180606001604052806028815260200161385760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109986115ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121859092919063ffffffff16565b6115d6565b600190509392505050565b6109fa6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90612ec8565b60405180910390fd5b816008819055508060098190555081600a8190555080600b819055505050565b60006009905090565b610ab86115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c90612ec8565b60405180910390fd5b60005b8151811015610bd657600060046000848481518110610b6a57610b69612ee8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bce90612f17565b915050610b48565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c816115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590612ec8565b60405180910390fd5b6009600a610d1c9190612def565b633b9aca00610d2b9190612e3a565b6010819055506009600a610d3f9190612def565b633b9aca00610d4e9190612e3a565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d839190612def565b633b9aca00610d929190612e3a565b604051610d9f9190612953565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f5a48494241000000000000000000000000000000000000000000000000000000815250905090565b6000610e2f610e286115ce565b848461179f565b6001905092915050565b60125481565b610e476115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90612ec8565b60405180910390fd5b8060108190555050565b610ee66115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90612ec8565b60405180910390fd5b601560149054906101000a900460ff1615610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba90612fab565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061106130601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61104d9190612def565b633b9aca0061105c9190612e3a565b6115d6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190612fe0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f9190612fe0565b6040518363ffffffff1660e01b81526004016111bc92919061300d565b6020604051808303816000875af11580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff9190612fe0565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061128830610c30565b600080611293610daf565b426040518863ffffffff1660e01b81526004016112b59695949392919061307b565b60606040518083038185885af11580156112d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112f891906130f1565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161139a929190613144565b6020604051808303816000875af11580156113b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113dd9190613199565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600781905550565b6114256115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990612ec8565b60405180910390fd5b60005b8151811015611543576001600460008484815181106114d7576114d6612ee8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061153b90612f17565b9150506114b5565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90613238565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab906132ca565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612953565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118059061335c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611874906133ee565b60405180910390fd5b600081116118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613480565b60405180910390fd5b60006118ca610daf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119385750611908610daf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ec857600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ea57600080fd5b611a266064611a18600c54600f5411611a0557600854611a09565b600a545b856121e990919063ffffffff16565b61226390919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ad35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b295750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c0e57601054821115611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a906134ec565b60405180910390fd5b60115482611b8085610c30565b611b8a919061350c565b1115611bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc29061358c565b60405180910390fd5b436003600754611bdb919061350c565b1115611bf557611bea836122ad565b15611bf457600080fd5b5b600f6000815480929190611c0890612f17565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cb65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d145760115482611cc885610c30565b611cd2919061350c565b1115611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a9061358c565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611de157611dde6064611dd0600d54600f5411611dbd57600954611dc1565b600b545b856121e990919063ffffffff16565b61226390919063ffffffff16565b90505b6000611dec30610c30565b905060158054906101000a900460ff16158015611e565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e6e5750601560169054906101000a900460ff165b8015611e7b575060125481115b8015611e8a5750600e54600f54115b15611ec657611eac611ea784611ea2846013546122c0565b6122c0565b6122d9565b60004790506000811115611ec457611ec347612550565b5b505b505b6000811115611fcc57611f2381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc39190612953565b60405180910390a35b61201e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120c561207782846126c790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61216a84866126c790919063ffffffff16565b6040516121779190612953565b60405180910390a350505050565b60008383111582906121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c49190612804565b60405180910390fd5b50600083856121dc91906135ac565b9050809150509392505050565b60008083036121fb576000905061225d565b600082846122099190612e3a565b9050828482612218919061360f565b14612258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224f906136b2565b60405180910390fd5b809150505b92915050565b60006122a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612711565b905092915050565b600080823b905060008111915050919050565b60008183116122cf57826122d1565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123105761230f612aaa565b5b60405190808252806020026020018201604052801561233e5781602001602082028036833780820191505090505b509050308160008151811061235657612355612ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124219190612fe0565b8160018151811061243557612434612ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249c30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612500959493929190613790565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b6000612579606461256b605a856121e990919063ffffffff16565b61226390919063ffffffff16565b9050600061259082846126c790919063ffffffff16565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156125fa573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612663573d6000803e3d6000fd5b50505050565b6000808284612678919061350c565b9050838110156126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b490613836565b60405180910390fd5b8091505092915050565b600061270983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612185565b905092915050565b60008083118290612758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274f9190612804565b60405180910390fd5b5060008385612767919061360f565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127ae578082015181840152602081019050612793565b60008484015250505050565b6000601f19601f8301169050919050565b60006127d682612774565b6127e0818561277f565b93506127f0818560208601612790565b6127f9816127ba565b840191505092915050565b6000602082019050818103600083015261281e81846127cb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128658261283a565b9050919050565b6128758161285a565b811461288057600080fd5b50565b6000813590506128928161286c565b92915050565b6000819050919050565b6128ab81612898565b81146128b657600080fd5b50565b6000813590506128c8816128a2565b92915050565b600080604083850312156128e5576128e4612830565b5b60006128f385828601612883565b9250506020612904858286016128b9565b9150509250929050565b60008115159050919050565b6129238161290e565b82525050565b600060208201905061293e600083018461291a565b92915050565b61294d81612898565b82525050565b60006020820190506129686000830184612944565b92915050565b60006020828403121561298457612983612830565b5b6000612992848285016128b9565b91505092915050565b600080604083850312156129b2576129b1612830565b5b60006129c085828601612883565b92505060206129d185828601612883565b9150509250929050565b6000806000606084860312156129f4576129f3612830565b5b6000612a0286828701612883565b9350506020612a1386828701612883565b9250506040612a24868287016128b9565b9150509250925092565b60008060408385031215612a4557612a44612830565b5b6000612a53858286016128b9565b9250506020612a64858286016128b9565b9150509250929050565b600060ff82169050919050565b612a8481612a6e565b82525050565b6000602082019050612a9f6000830184612a7b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ae2826127ba565b810181811067ffffffffffffffff82111715612b0157612b00612aaa565b5b80604052505050565b6000612b14612826565b9050612b208282612ad9565b919050565b600067ffffffffffffffff821115612b4057612b3f612aaa565b5b602082029050602081019050919050565b600080fd5b6000612b69612b6484612b25565b612b0a565b90508083825260208201905060208402830185811115612b8c57612b8b612b51565b5b835b81811015612bb55780612ba18882612883565b845260208401935050602081019050612b8e565b5050509392505050565b600082601f830112612bd457612bd3612aa5565b5b8135612be4848260208601612b56565b91505092915050565b600060208284031215612c0357612c02612830565b5b600082013567ffffffffffffffff811115612c2157612c20612835565b5b612c2d84828501612bbf565b91505092915050565b600060208284031215612c4c57612c4b612830565b5b6000612c5a84828501612883565b91505092915050565b612c6c8161285a565b82525050565b6000602082019050612c876000830184612c63565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d1357808604811115612cef57612cee612c8d565b5b6001851615612cfe5780820291505b8081029050612d0c85612cbc565b9450612cd3565b94509492505050565b600082612d2c5760019050612de8565b81612d3a5760009050612de8565b8160018114612d505760028114612d5a57612d89565b6001915050612de8565b60ff841115612d6c57612d6b612c8d565b5b8360020a915084821115612d8357612d82612c8d565b5b50612de8565b5060208310610133831016604e8410600b8410161715612dbe5782820a905083811115612db957612db8612c8d565b5b612de8565b612dcb8484846001612cc9565b92509050818404811115612de257612de1612c8d565b5b81810290505b9392505050565b6000612dfa82612898565b9150612e0583612a6e565b9250612e327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d1c565b905092915050565b6000612e4582612898565b9150612e5083612898565b9250828202612e5e81612898565b91508282048414831517612e7557612e74612c8d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612eb260208361277f565b9150612ebd82612e7c565b602082019050919050565b60006020820190508181036000830152612ee181612ea5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f2282612898565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5457612f53612c8d565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f9560178361277f565b9150612fa082612f5f565b602082019050919050565b60006020820190508181036000830152612fc481612f88565b9050919050565b600081519050612fda8161286c565b92915050565b600060208284031215612ff657612ff5612830565b5b600061300484828501612fcb565b91505092915050565b60006040820190506130226000830185612c63565b61302f6020830184612c63565b9392505050565b6000819050919050565b6000819050919050565b600061306561306061305b84613036565b613040565b612898565b9050919050565b6130758161304a565b82525050565b600060c0820190506130906000830189612c63565b61309d6020830188612944565b6130aa604083018761306c565b6130b7606083018661306c565b6130c46080830185612c63565b6130d160a0830184612944565b979650505050505050565b6000815190506130eb816128a2565b92915050565b60008060006060848603121561310a57613109612830565b5b6000613118868287016130dc565b9350506020613129868287016130dc565b925050604061313a868287016130dc565b9150509250925092565b60006040820190506131596000830185612c63565b6131666020830184612944565b9392505050565b6131768161290e565b811461318157600080fd5b50565b6000815190506131938161316d565b92915050565b6000602082840312156131af576131ae612830565b5b60006131bd84828501613184565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061322260248361277f565b915061322d826131c6565b604082019050919050565b6000602082019050818103600083015261325181613215565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132b460228361277f565b91506132bf82613258565b604082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061334660258361277f565b9150613351826132ea565b604082019050919050565b6000602082019050818103600083015261337581613339565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133d860238361277f565b91506133e38261337c565b604082019050919050565b60006020820190508181036000830152613407816133cb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061346a60298361277f565b91506134758261340e565b604082019050919050565b600060208201905081810360008301526134998161345d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006134d660198361277f565b91506134e1826134a0565b602082019050919050565b60006020820190508181036000830152613505816134c9565b9050919050565b600061351782612898565b915061352283612898565b925082820190508082111561353a57613539612c8d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613576601a8361277f565b915061358182613540565b602082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b60006135b782612898565b91506135c283612898565b92508282039050818111156135da576135d9612c8d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061361a82612898565b915061362583612898565b925082613635576136346135e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061369c60218361277f565b91506136a782613640565b604082019050919050565b600060208201905081810360008301526136cb8161368f565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137078161285a565b82525050565b600061371983836136fe565b60208301905092915050565b6000602082019050919050565b600061373d826136d2565b61374781856136dd565b9350613752836136ee565b8060005b8381101561378357815161376a888261370d565b975061377583613725565b925050600181019050613756565b5085935050505092915050565b600060a0820190506137a56000830188612944565b6137b2602083018761306c565b81810360408301526137c48186613732565b90506137d36060830185612c63565b6137e06080830184612944565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613820601b8361277f565b915061382b826137ea565b602082019050919050565b6000602082019050818103600083015261384f81613813565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a22b995ae8f588ac26614055db1b345ce245fad2785669d3b562d848e35710d64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb14610479578063bf474bed146104b6578063c2d0ffca146104e1578063c9567bf91461050a578063d34628cc14610521578063dd62ed3e1461054a57610156565b806370a0823114610379578063751039fc146103b65780637d1db4a5146103cd5780638da5cb5b146103f85780638f9a55c01461042357806395d89b411461044e57610156565b80632077d9b7116101085780632077d9b71461025957806323b872dd146102825780632f37aa6d146102bf578063313ce567146102e857806331c2d847146103135780633bbac5791461033c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee5780631c499ab01461021957806320365d5f1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610587565b60405161017d9190612804565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906128ce565b6105c4565b6040516101ba9190612929565b60405180910390f35b3480156101cf57600080fd5b506101d86105e2565b6040516101e59190612953565b60405180910390f35b3480156101fa57600080fd5b506102036105e8565b6040516102109190612953565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061296e565b61060c565b005b34801561024e57600080fd5b506102576106ab565b005b34801561026557600080fd5b50610280600480360381019061027b919061299b565b6107fe565b005b34801561028e57600080fd5b506102a960048036038101906102a491906129db565b610919565b6040516102b69190612929565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e19190612a2e565b6109f2565b005b3480156102f457600080fd5b506102fd610aa7565b60405161030a9190612a8a565b60405180910390f35b34801561031f57600080fd5b5061033a60048036038101906103359190612bed565b610ab0565b005b34801561034857600080fd5b50610363600480360381019061035e9190612c36565b610bda565b6040516103709190612929565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612c36565b610c30565b6040516103ad9190612953565b60405180910390f35b3480156103c257600080fd5b506103cb610c79565b005b3480156103d957600080fd5b506103e2610da9565b6040516103ef9190612953565b60405180910390f35b34801561040457600080fd5b5061040d610daf565b60405161041a9190612c72565b60405180910390f35b34801561042f57600080fd5b50610438610dd8565b6040516104459190612953565b60405180910390f35b34801561045a57600080fd5b50610463610dde565b6040516104709190612804565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b91906128ce565b610e1b565b6040516104ad9190612929565b60405180910390f35b3480156104c257600080fd5b506104cb610e39565b6040516104d89190612953565b60405180910390f35b3480156104ed57600080fd5b506105086004803603810190610503919061296e565b610e3f565b005b34801561051657600080fd5b5061051f610ede565b005b34801561052d57600080fd5b5061054860048036038101906105439190612bed565b61141d565b005b34801561055657600080fd5b50610571600480360381019061056c919061299b565b611547565b60405161057e9190612953565b60405180910390f35b60606040518060400160405280600c81526020017f5a6f6d6269652053686962610000000000000000000000000000000000000000815250905090565b60006105d86105d16115ce565b84846115d6565b6001905092915050565b60135481565b60006009600a6105f89190612def565b633b9aca006106079190612e3a565b905090565b6106146115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612ec8565b60405180910390fd5b8060118190555050565b6106b36115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612ec8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108066115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088a90612ec8565b60405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600061092684848461179f565b6109e7846109326115ce565b6109e28560405180606001604052806028815260200161385760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109986115ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121859092919063ffffffff16565b6115d6565b600190509392505050565b6109fa6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90612ec8565b60405180910390fd5b816008819055508060098190555081600a8190555080600b819055505050565b60006009905090565b610ab86115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c90612ec8565b60405180910390fd5b60005b8151811015610bd657600060046000848481518110610b6a57610b69612ee8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bce90612f17565b915050610b48565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c816115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590612ec8565b60405180910390fd5b6009600a610d1c9190612def565b633b9aca00610d2b9190612e3a565b6010819055506009600a610d3f9190612def565b633b9aca00610d4e9190612e3a565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d839190612def565b633b9aca00610d929190612e3a565b604051610d9f9190612953565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f5a48494241000000000000000000000000000000000000000000000000000000815250905090565b6000610e2f610e286115ce565b848461179f565b6001905092915050565b60125481565b610e476115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90612ec8565b60405180910390fd5b8060108190555050565b610ee66115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90612ec8565b60405180910390fd5b601560149054906101000a900460ff1615610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba90612fab565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061106130601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61104d9190612def565b633b9aca0061105c9190612e3a565b6115d6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190612fe0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f9190612fe0565b6040518363ffffffff1660e01b81526004016111bc92919061300d565b6020604051808303816000875af11580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff9190612fe0565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061128830610c30565b600080611293610daf565b426040518863ffffffff1660e01b81526004016112b59695949392919061307b565b60606040518083038185885af11580156112d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112f891906130f1565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161139a929190613144565b6020604051808303816000875af11580156113b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113dd9190613199565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600781905550565b6114256115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990612ec8565b60405180910390fd5b60005b8151811015611543576001600460008484815181106114d7576114d6612ee8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061153b90612f17565b9150506114b5565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90613238565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab906132ca565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612953565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118059061335c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611874906133ee565b60405180910390fd5b600081116118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613480565b60405180910390fd5b60006118ca610daf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119385750611908610daf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ec857600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ea57600080fd5b611a266064611a18600c54600f5411611a0557600854611a09565b600a545b856121e990919063ffffffff16565b61226390919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ad35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b295750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c0e57601054821115611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a906134ec565b60405180910390fd5b60115482611b8085610c30565b611b8a919061350c565b1115611bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc29061358c565b60405180910390fd5b436003600754611bdb919061350c565b1115611bf557611bea836122ad565b15611bf457600080fd5b5b600f6000815480929190611c0890612f17565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cb65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d145760115482611cc885610c30565b611cd2919061350c565b1115611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a9061358c565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611de157611dde6064611dd0600d54600f5411611dbd57600954611dc1565b600b545b856121e990919063ffffffff16565b61226390919063ffffffff16565b90505b6000611dec30610c30565b905060158054906101000a900460ff16158015611e565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e6e5750601560169054906101000a900460ff165b8015611e7b575060125481115b8015611e8a5750600e54600f54115b15611ec657611eac611ea784611ea2846013546122c0565b6122c0565b6122d9565b60004790506000811115611ec457611ec347612550565b5b505b505b6000811115611fcc57611f2381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc39190612953565b60405180910390a35b61201e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120c561207782846126c790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61216a84866126c790919063ffffffff16565b6040516121779190612953565b60405180910390a350505050565b60008383111582906121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c49190612804565b60405180910390fd5b50600083856121dc91906135ac565b9050809150509392505050565b60008083036121fb576000905061225d565b600082846122099190612e3a565b9050828482612218919061360f565b14612258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224f906136b2565b60405180910390fd5b809150505b92915050565b60006122a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612711565b905092915050565b600080823b905060008111915050919050565b60008183116122cf57826122d1565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123105761230f612aaa565b5b60405190808252806020026020018201604052801561233e5781602001602082028036833780820191505090505b509050308160008151811061235657612355612ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124219190612fe0565b8160018151811061243557612434612ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249c30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612500959493929190613790565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b6000612579606461256b605a856121e990919063ffffffff16565b61226390919063ffffffff16565b9050600061259082846126c790919063ffffffff16565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156125fa573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612663573d6000803e3d6000fd5b50505050565b6000808284612678919061350c565b9050838110156126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b490613836565b60405180910390fd5b8091505092915050565b600061270983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612185565b905092915050565b60008083118290612758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274f9190612804565b60405180910390fd5b5060008385612767919061360f565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127ae578082015181840152602081019050612793565b60008484015250505050565b6000601f19601f8301169050919050565b60006127d682612774565b6127e0818561277f565b93506127f0818560208601612790565b6127f9816127ba565b840191505092915050565b6000602082019050818103600083015261281e81846127cb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128658261283a565b9050919050565b6128758161285a565b811461288057600080fd5b50565b6000813590506128928161286c565b92915050565b6000819050919050565b6128ab81612898565b81146128b657600080fd5b50565b6000813590506128c8816128a2565b92915050565b600080604083850312156128e5576128e4612830565b5b60006128f385828601612883565b9250506020612904858286016128b9565b9150509250929050565b60008115159050919050565b6129238161290e565b82525050565b600060208201905061293e600083018461291a565b92915050565b61294d81612898565b82525050565b60006020820190506129686000830184612944565b92915050565b60006020828403121561298457612983612830565b5b6000612992848285016128b9565b91505092915050565b600080604083850312156129b2576129b1612830565b5b60006129c085828601612883565b92505060206129d185828601612883565b9150509250929050565b6000806000606084860312156129f4576129f3612830565b5b6000612a0286828701612883565b9350506020612a1386828701612883565b9250506040612a24868287016128b9565b9150509250925092565b60008060408385031215612a4557612a44612830565b5b6000612a53858286016128b9565b9250506020612a64858286016128b9565b9150509250929050565b600060ff82169050919050565b612a8481612a6e565b82525050565b6000602082019050612a9f6000830184612a7b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ae2826127ba565b810181811067ffffffffffffffff82111715612b0157612b00612aaa565b5b80604052505050565b6000612b14612826565b9050612b208282612ad9565b919050565b600067ffffffffffffffff821115612b4057612b3f612aaa565b5b602082029050602081019050919050565b600080fd5b6000612b69612b6484612b25565b612b0a565b90508083825260208201905060208402830185811115612b8c57612b8b612b51565b5b835b81811015612bb55780612ba18882612883565b845260208401935050602081019050612b8e565b5050509392505050565b600082601f830112612bd457612bd3612aa5565b5b8135612be4848260208601612b56565b91505092915050565b600060208284031215612c0357612c02612830565b5b600082013567ffffffffffffffff811115612c2157612c20612835565b5b612c2d84828501612bbf565b91505092915050565b600060208284031215612c4c57612c4b612830565b5b6000612c5a84828501612883565b91505092915050565b612c6c8161285a565b82525050565b6000602082019050612c876000830184612c63565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d1357808604811115612cef57612cee612c8d565b5b6001851615612cfe5780820291505b8081029050612d0c85612cbc565b9450612cd3565b94509492505050565b600082612d2c5760019050612de8565b81612d3a5760009050612de8565b8160018114612d505760028114612d5a57612d89565b6001915050612de8565b60ff841115612d6c57612d6b612c8d565b5b8360020a915084821115612d8357612d82612c8d565b5b50612de8565b5060208310610133831016604e8410600b8410161715612dbe5782820a905083811115612db957612db8612c8d565b5b612de8565b612dcb8484846001612cc9565b92509050818404811115612de257612de1612c8d565b5b81810290505b9392505050565b6000612dfa82612898565b9150612e0583612a6e565b9250612e327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d1c565b905092915050565b6000612e4582612898565b9150612e5083612898565b9250828202612e5e81612898565b91508282048414831517612e7557612e74612c8d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612eb260208361277f565b9150612ebd82612e7c565b602082019050919050565b60006020820190508181036000830152612ee181612ea5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f2282612898565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5457612f53612c8d565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f9560178361277f565b9150612fa082612f5f565b602082019050919050565b60006020820190508181036000830152612fc481612f88565b9050919050565b600081519050612fda8161286c565b92915050565b600060208284031215612ff657612ff5612830565b5b600061300484828501612fcb565b91505092915050565b60006040820190506130226000830185612c63565b61302f6020830184612c63565b9392505050565b6000819050919050565b6000819050919050565b600061306561306061305b84613036565b613040565b612898565b9050919050565b6130758161304a565b82525050565b600060c0820190506130906000830189612c63565b61309d6020830188612944565b6130aa604083018761306c565b6130b7606083018661306c565b6130c46080830185612c63565b6130d160a0830184612944565b979650505050505050565b6000815190506130eb816128a2565b92915050565b60008060006060848603121561310a57613109612830565b5b6000613118868287016130dc565b9350506020613129868287016130dc565b925050604061313a868287016130dc565b9150509250925092565b60006040820190506131596000830185612c63565b6131666020830184612944565b9392505050565b6131768161290e565b811461318157600080fd5b50565b6000815190506131938161316d565b92915050565b6000602082840312156131af576131ae612830565b5b60006131bd84828501613184565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061322260248361277f565b915061322d826131c6565b604082019050919050565b6000602082019050818103600083015261325181613215565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132b460228361277f565b91506132bf82613258565b604082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061334660258361277f565b9150613351826132ea565b604082019050919050565b6000602082019050818103600083015261337581613339565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133d860238361277f565b91506133e38261337c565b604082019050919050565b60006020820190508181036000830152613407816133cb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061346a60298361277f565b91506134758261340e565b604082019050919050565b600060208201905081810360008301526134998161345d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006134d660198361277f565b91506134e1826134a0565b602082019050919050565b60006020820190508181036000830152613505816134c9565b9050919050565b600061351782612898565b915061352283612898565b925082820190508082111561353a57613539612c8d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613576601a8361277f565b915061358182613540565b602082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b60006135b782612898565b91506135c283612898565b92508282039050818111156135da576135d9612c8d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061361a82612898565b915061362583612898565b925082613635576136346135e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061369c60218361277f565b91506136a782613640565b604082019050919050565b600060208201905081810360008301526136cb8161368f565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137078161285a565b82525050565b600061371983836136fe565b60208301905092915050565b6000602082019050919050565b600061373d826136d2565b61374781856136dd565b9350613752836136ee565b8060005b8381101561378357815161376a888261370d565b975061377583613725565b925050600181019050613756565b5085935050505092915050565b600060a0820190506137a56000830188612944565b6137b2602083018761306c565b81810360408301526137c48186613732565b90506137d36060830185612c63565b6137e06080830184612944565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613820601b8361277f565b915061382b826137ea565b602082019050919050565b6000602082019050818103600083015261384f81613813565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a22b995ae8f588ac26614055db1b345ce245fad2785669d3b562d848e35710d64736f6c63430008130033

Deployed Bytecode Sourcemap

3686:8957:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5701:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4826:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5978:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10686:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2766:149;;;;;;;;;;;;;:::i;:::-;;10813:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6703:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10993:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5887:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11633:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11803:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6081:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10405:159;;;;;;;;;;;;;:::i;:::-;;4655:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2552:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4711:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5792:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6208:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4767:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10573:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11894:707;;;;;;;;;;;;;:::i;:::-;;11461:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6383:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5701:83;5738:13;5771:5;;;;;;;;;;;;;;;;;5764:12;;5701:83;:::o;6534:161::-;6609:4;6626:39;6635:12;:10;:12::i;:::-;6649:7;6658:6;6626:8;:39::i;:::-;6683:4;6676:11;;6534:161;;;;:::o;4826:45::-;;;;:::o;5978:95::-;6031:7;4465:1;4520:2;:13;;;;:::i;:::-;4508:10;:25;;;;:::i;:::-;6051:14;;5978:95;:::o;10686:119::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10782:15:::1;10765:14;:32;;;;10686:119:::0;:::o;2766:149::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2874:1:::1;2837:40;;2858:6;::::0;::::1;;;;;;;;2837:40;;;;;;;;;;;;2905:1;2888:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2766:149::o:0;10813:171::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10924:10:::1;10905;;:30;;;;;;;;;;;;;;;;;;10965:10;10945:11;;:31;;;;;;;;;;;;;;;;;;10813:171:::0;;:::o;6703:313::-;6801:4;6818:36;6828:6;6836:9;6847:6;6818:9;:36::i;:::-;6865:121;6874:6;6882:12;:10;:12::i;:::-;6896:89;6934:6;6896:89;;;;;;;;;;;;;;;;;:11;:19;6908:6;6896:19;;;;;;;;;;;;;;;:33;6916:12;:10;:12::i;:::-;6896:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6865:8;:121::i;:::-;7004:4;6997:11;;6703:313;;;;;:::o;10993:207::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11089:7:::1;11074:14;:22;;;;11122:8;11106:15;:24;;;;11153:7;11140:12;:20;;;;11184:8;11170:13;:22;;;;10993:207:::0;;:::o;5887:83::-;5928:5;4465:1;5946:16;;5887:83;:::o;11633:162::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11706:6:::1;11701:87;11722:6;:13;11718:1;:17;11701:87;;;11773:5;11755:4;:15;11760:6;11767:1;11760:9;;;;;;;;:::i;:::-;;;;;;;;11755:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11737:3;;;;;:::i;:::-;;;;11701:87;;;;11633:162:::0;:::o;11803:83::-;11850:4;11871;:7;11876:1;11871:7;;;;;;;;;;;;;;;;;;;;;;;;;11864:14;;11803:83;;;:::o;6081:119::-;6147:7;6174:9;:18;6184:7;6174:18;;;;;;;;;;;;;;;;6167:25;;6081:119;;;:::o;10405:159::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4465:1:::1;4520:2;:13;;;;:::i;:::-;4508:10;:25;;;;:::i;:::-;10458:12;:22;;;;4465:1;4520:2;:13;;;;:::i;:::-;4508:10;:25;;;;:::i;:::-;10491:14;:22;;;;10529:27;4465:1;4520:2;:13;;;;:::i;:::-;4508:10;:25;;;;:::i;:::-;10529:27;;;;;;:::i;:::-;;;;;;;;10405:159::o:0;4655:49::-;;;;:::o;2552:79::-;2590:7;2617:6;;;;;;;;;;;2610:13;;2552:79;:::o;4711:49::-;;;;:::o;5792:87::-;5831:13;5864:7;;;;;;;;;;;;;;;;;5857:14;;5792:87;:::o;6208:167::-;6286:4;6303:42;6313:12;:10;:12::i;:::-;6327:9;6338:6;6303:9;:42::i;:::-;6363:4;6356:11;;6208:167;;;;:::o;4767:52::-;;;;:::o;10573:105::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10659:11:::1;10644:12;:26;;;;10573:105:::0;:::o;11894:707::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11958:11:::1;;;;;;;;;;;11957:12;11949:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12044:42;12007:15;;:80;;;;;;;;;;;;;;;;;;12098:58;12115:4;12130:15;;;;;;;;;;;4465:1;4520:2;:13;;;;:::i;:::-;4508:10;:25;;;;:::i;:::-;12098:8;:58::i;:::-;12201:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12183:55;;;12247:4;12254:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12183:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12167:13;;:110;;;;;;;;;;;;;;;;;;12288:15;;;;;;;;;;;:31;;;12327:21;12358:4;12364:24;12382:4;12364:9;:24::i;:::-;12389:1;12391::::0;12393:7:::1;:5;:7::i;:::-;12401:15;12288:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12435:13;;;;;;;;;;;12428:29;;;12466:15;;;;;;;;;;;12484:14;12428:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12524:4;12510:11;;:18;;;;;;;;;;;;;;;;;;12553:4;12539:11;;:18;;;;;;;;;;;;;;;;;;12581:12;12568:10;:25;;;;11894:707::o:0;11461:164::-;2689:12;:10;:12::i;:::-;2679:22;;:6;;;;;;;;;;:22;;;2671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11535:6:::1;11530:88;11551:5;:12;11547:1;:16;11530:88;;;11602:4;11585;:14;11590:5;11596:1;11590:8;;;;;;;;:::i;:::-;;;;;;;;11585:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11565:3;;;;;:::i;:::-;;;;11530:88;;;;11461:164:::0;:::o;6383:143::-;6464:7;6491:11;:18;6503:5;6491:18;;;;;;;;;;;;;;;:27;6510:7;6491:27;;;;;;;;;;;;;;;;6484:34;;6383:143;;;;:::o;306:98::-;359:7;386:10;379:17;;306:98;:::o;7024:335::-;7134:1;7117:19;;:5;:19;;;7109:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7215:1;7196:21;;:7;:21;;;7188:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7297:6;7267:11;:18;7279:5;7267:18;;;;;;;;;;;;;;;:27;7286:7;7267:27;;;;;;;;;;;;;;;:36;;;;7335:7;7319:32;;7328:5;7319:32;;;7344:6;7319:32;;;;;;:::i;:::-;;;;;;;;7024:335;;;:::o;7367:2228::-;7471:1;7455:18;;:4;:18;;;7447:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7548:1;7534:16;;:2;:16;;;7526:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7618:1;7609:6;:10;7601:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7676:17;7718:7;:5;:7::i;:::-;7710:15;;:4;:15;;;;:32;;;;;7735:7;:5;:7::i;:::-;7729:13;;:2;:13;;;;7710:32;7706:1533;;;7768:4;:10;7773:4;7768:10;;;;;;;;;;;;;;;;;;;;;;;;;7767:11;:24;;;;;7783:4;:8;7788:2;7783:8;;;;;;;;;;;;;;;;;;;;;;;;;7782:9;7767:24;7759:33;;;;;;7819:76;7891:3;7819:67;7841:15;;7831:9;;:25;7830:55;;7871:14;;7830:55;;;7858:12;;7830:55;7819:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7807:88;;7924:13;;;;;;;;;;;7916:21;;:4;:21;;;:55;;;;;7955:15;;;;;;;;;;;7941:30;;:2;:30;;;;7916:55;:83;;;;;7977:18;:22;7996:2;7977:22;;;;;;;;;;;;;;;;;;;;;;;;;7975:24;7916:83;7912:436;;;8039:12;;8029:6;:22;;8021:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8134:14;;8124:6;8108:13;8118:2;8108:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8100:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8222:12;8217:1;8204:10;;:14;;;;:::i;:::-;:30;8200:103;;;8268:14;8279:2;8268:10;:14::i;:::-;8267:15;8259:24;;;;;;8200:103;8321:9;;:11;;;;;;;;;:::i;:::-;;;;;;7912:436;8374:13;;;;;;;;;;;8368:19;;:2;:19;;;;:47;;;;;8393:18;:22;8412:2;8393:22;;;;;;;;;;;;;;;;;;;;;;;;;8391:24;8368:47;8364:167;;;8470:14;;8460:6;8444:13;8454:2;8444:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8436:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8364:167;8556:13;;;;;;;;;;;8550:19;;:2;:19;;;:43;;;;;8588:4;8573:20;;:4;:20;;;;8550:43;8547:174;;;8626:79;8701:3;8626:70;8648:16;;8638:9;;:26;8637:58;;8680:15;;8637:58;;;8666:13;;8637:58;8626:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8614:91;;8547:174;8737:28;8768:24;8786:4;8768:9;:24::i;:::-;8737:55;;8812:6;;;;;;;;;;8811:7;:32;;;;;8830:13;;;;;;;;;;;8822:21;;:2;:21;;;8811:32;:47;;;;;8847:11;;;;;;;;;;;8811:47;:89;;;;;8883:17;;8862:20;:38;8811:89;:121;;;;;8914:18;;8904:9;;:28;8811:121;8807:421;;;8953:67;8970:49;8974:6;8981:37;8985:20;9006:11;;8981:3;:37::i;:::-;8970:3;:49::i;:::-;8953:16;:67::i;:::-;9039:26;9068:21;9039:50;;9132:1;9111:18;:22;9108:105;;;9158:35;9171:21;9158:12;:35::i;:::-;9108:105;8934:294;8807:421;7744:1495;7706:1533;9264:1;9254:9;:11;9251:161;;;9304:39;9333:9;9304;:24;9322:4;9304:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9279:9;:24;9297:4;9279:24;;;;;;;;;;;;;;;:64;;;;9384:4;9361:39;;9370:4;9361:39;;;9390:9;9361:39;;;;;;:::i;:::-;;;;;;;;9251:161;9438:27;9458:6;9438:9;:15;9448:4;9438:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9422:9;:15;9432:4;9422:15;;;;;;;;;;;;;;;:43;;;;9490:40;9508:21;9519:9;9508:6;:10;;:21;;;;:::i;:::-;9490:9;:13;9500:2;9490:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9476:9;:13;9486:2;9476:13;;;;;;;;;;;;;;;:54;;;;9561:2;9546:41;;9555:4;9546:41;;;9565:21;9576:9;9565:6;:10;;:21;;;;:::i;:::-;9546:41;;;;;;:::i;:::-;;;;;;;;7436:2159;7367:2228;;;:::o;1444:190::-;1530:7;1563:1;1558;:6;;1566:12;1550:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1590:9;1606:1;1602;:5;;;;:::i;:::-;1590:17;;1625:1;1618:8;;;1444:190;;;;;:::o;1642:246::-;1700:7;1729:1;1724;:6;1720:47;;1754:1;1747:8;;;;1720:47;1777:9;1793:1;1789;:5;;;;:::i;:::-;1777:17;;1822:1;1817;1813;:5;;;;:::i;:::-;:10;1805:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1879:1;1872:8;;;1642:246;;;;;:::o;1896:132::-;1954:7;1981:39;1985:1;1988;1981:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1974:46;;1896:132;;;;:::o;9711:195::-;9770:4;9787:12;9854:7;9842:20;9834:28;;9897:1;9890:4;:8;9883:15;;;9711:195;;;:::o;9605:98::-;9662:7;9689:1;9687;:3;9686:9;;9694:1;9686:9;;;9692:1;9686:9;9679:16;;9605:98;;;;:::o;9914:483::-;5162:4;5153:6;;:13;;;;;;;;;;;;;;;;;;9992:21:::1;10030:1;10016:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9992:40;;10061:4;10043;10048:1;10043:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10087:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10077:4;10082:1;10077:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10120:62;10137:4;10152:15;;;;;;;;;;;10170:11;10120:8;:62::i;:::-;10193:15;;;;;;;;;;;:66;;;10274:11;10300:1;10316:4;10343;10363:15;10193:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9981:416;5198:5:::0;5189:6;;:14;;;;;;;;;;;;;;;;;;9914:483;:::o;11208:245::-;11265:17;11285:25;11306:3;11286:14;11297:2;11286:6;:10;;:14;;;;:::i;:::-;11285:20;;:25;;;;:::i;:::-;11265:45;;11321:17;11341:21;11352:9;11341:6;:10;;:21;;;;:::i;:::-;11321:41;;11373:10;;;;;;;;;;;:19;;:30;11393:9;11373:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11414:11;;;;;;;;;;;:20;;:31;11435:9;11414:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11254:199;;11208:245;:::o;1113:179::-;1171:7;1191:9;1207:1;1203;:5;;;;:::i;:::-;1191:17;;1232:1;1227;:6;;1219:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1283:1;1276:8;;;1113:179;;;;:::o;1300:136::-;1358:7;1385:43;1389:1;1392;1385:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1378:50;;1300:136;;;;:::o;2036:189::-;2122:7;2154:1;2150;:5;2157:12;2142:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2181:9;2197:1;2193;:5;;;;:::i;:::-;2181:17;;2216:1;2209:8;;;2036: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446: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:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:474::-;4201:6;4209;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4511:2;4537:53;4582:7;4573:6;4562:9;4558:22;4537:53;:::i;:::-;4527:63;;4482:118;4133:474;;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:474::-;5306:6;5314;5363:2;5351:9;5342:7;5338:23;5334:32;5331:119;;;5369:79;;:::i;:::-;5331:119;5489:1;5514:53;5559:7;5550:6;5539:9;5535:22;5514:53;:::i;:::-;5504:63;;5460:117;5616:2;5642:53;5687:7;5678:6;5667:9;5663:22;5642:53;:::i;:::-;5632:63;;5587:118;5238:474;;;;;:::o;5718:86::-;5753:7;5793:4;5786:5;5782:16;5771:27;;5718:86;;;:::o;5810:112::-;5893:22;5909:5;5893:22;:::i;:::-;5888:3;5881:35;5810:112;;:::o;5928:214::-;6017:4;6055:2;6044:9;6040:18;6032:26;;6068:67;6132:1;6121:9;6117:17;6108:6;6068:67;:::i;:::-;5928:214;;;;:::o;6148:117::-;6257:1;6254;6247:12;6271:180;6319:77;6316:1;6309:88;6416:4;6413:1;6406:15;6440:4;6437:1;6430:15;6457:281;6540:27;6562:4;6540:27;:::i;:::-;6532:6;6528:40;6670:6;6658:10;6655:22;6634:18;6622:10;6619:34;6616:62;6613:88;;;6681:18;;:::i;:::-;6613:88;6721:10;6717:2;6710:22;6500:238;6457:281;;:::o;6744:129::-;6778:6;6805:20;;:::i;:::-;6795:30;;6834:33;6862:4;6854:6;6834:33;:::i;:::-;6744:129;;;:::o;6879:311::-;6956:4;7046:18;7038:6;7035:30;7032:56;;;7068:18;;:::i;:::-;7032:56;7118:4;7110:6;7106:17;7098:25;;7178:4;7172;7168:15;7160:23;;6879:311;;;:::o;7196:117::-;7305:1;7302;7295:12;7336:710;7432:5;7457:81;7473:64;7530:6;7473:64;:::i;:::-;7457:81;:::i;:::-;7448:90;;7558:5;7587:6;7580:5;7573:21;7621:4;7614:5;7610:16;7603:23;;7674:4;7666:6;7662:17;7654:6;7650:30;7703:3;7695:6;7692:15;7689:122;;;7722:79;;:::i;:::-;7689:122;7837:6;7820:220;7854:6;7849:3;7846:15;7820:220;;;7929:3;7958:37;7991:3;7979:10;7958:37;:::i;:::-;7953:3;7946:50;8025:4;8020:3;8016:14;8009:21;;7896:144;7880:4;7875:3;7871:14;7864:21;;7820:220;;;7824:21;7438:608;;7336:710;;;;;:::o;8069:370::-;8140:5;8189:3;8182:4;8174:6;8170:17;8166:27;8156:122;;8197:79;;:::i;:::-;8156:122;8314:6;8301:20;8339:94;8429:3;8421:6;8414:4;8406:6;8402:17;8339:94;:::i;:::-;8330:103;;8146:293;8069:370;;;;:::o;8445:539::-;8529:6;8578:2;8566:9;8557:7;8553:23;8549:32;8546:119;;;8584:79;;:::i;:::-;8546:119;8732:1;8721:9;8717:17;8704:31;8762:18;8754:6;8751:30;8748:117;;;8784:79;;:::i;:::-;8748:117;8889:78;8959:7;8950:6;8939:9;8935:22;8889:78;:::i;:::-;8879:88;;8675:302;8445:539;;;;:::o;8990:329::-;9049:6;9098:2;9086:9;9077:7;9073:23;9069:32;9066:119;;;9104:79;;:::i;:::-;9066:119;9224:1;9249:53;9294:7;9285:6;9274:9;9270:22;9249:53;:::i;:::-;9239:63;;9195:117;8990:329;;;;:::o;9325:118::-;9412:24;9430:5;9412:24;:::i;:::-;9407:3;9400:37;9325:118;;:::o;9449:222::-;9542:4;9580:2;9569:9;9565:18;9557:26;;9593:71;9661:1;9650:9;9646:17;9637:6;9593:71;:::i;:::-;9449:222;;;;:::o;9677:180::-;9725:77;9722:1;9715:88;9822:4;9819:1;9812:15;9846:4;9843:1;9836:15;9863:102;9905:8;9952:5;9949:1;9945:13;9924:34;;9863:102;;;:::o;9971:848::-;10032:5;10039:4;10063:6;10054:15;;10087:5;10078:14;;10101:712;10122:1;10112:8;10109:15;10101:712;;;10217:4;10212:3;10208:14;10202:4;10199:24;10196:50;;;10226:18;;:::i;:::-;10196:50;10276:1;10266:8;10262:16;10259:451;;;10691:4;10684:5;10680:16;10671:25;;10259:451;10741:4;10735;10731:15;10723:23;;10771:32;10794:8;10771:32;:::i;:::-;10759:44;;10101:712;;;9971:848;;;;;;;:::o;10825:1073::-;10879:5;11070:8;11060:40;;11091:1;11082:10;;11093:5;;11060:40;11119:4;11109:36;;11136:1;11127:10;;11138:5;;11109:36;11205:4;11253:1;11248:27;;;;11289:1;11284:191;;;;11198:277;;11248:27;11266:1;11257:10;;11268:5;;;11284:191;11329:3;11319:8;11316:17;11313:43;;;11336:18;;:::i;:::-;11313:43;11385:8;11382:1;11378:16;11369:25;;11420:3;11413:5;11410:14;11407:40;;;11427:18;;:::i;:::-;11407:40;11460:5;;;11198:277;;11584:2;11574:8;11571:16;11565:3;11559:4;11556:13;11552:36;11534:2;11524:8;11521:16;11516:2;11510:4;11507:12;11503:35;11487:111;11484:246;;;11640:8;11634:4;11630:19;11621:28;;11675:3;11668:5;11665:14;11662:40;;;11682:18;;:::i;:::-;11662:40;11715:5;;11484:246;11755:42;11793:3;11783:8;11777:4;11774:1;11755:42;:::i;:::-;11740:57;;;;11829:4;11824:3;11820:14;11813:5;11810:25;11807:51;;;11838:18;;:::i;:::-;11807:51;11887:4;11880:5;11876:16;11867:25;;10825:1073;;;;;;:::o;11904:281::-;11962:5;11986:23;12004:4;11986:23;:::i;:::-;11978:31;;12030:25;12046:8;12030:25;:::i;:::-;12018:37;;12074:104;12111:66;12101:8;12095:4;12074:104;:::i;:::-;12065:113;;11904:281;;;;:::o;12191:410::-;12231:7;12254:20;12272:1;12254:20;:::i;:::-;12249:25;;12288:20;12306:1;12288:20;:::i;:::-;12283:25;;12343:1;12340;12336:9;12365:30;12383:11;12365:30;:::i;:::-;12354:41;;12544:1;12535:7;12531:15;12528:1;12525:22;12505:1;12498:9;12478:83;12455:139;;12574:18;;:::i;:::-;12455:139;12239:362;12191:410;;;;:::o;12607:182::-;12747:34;12743:1;12735:6;12731:14;12724:58;12607:182;:::o;12795:366::-;12937:3;12958:67;13022:2;13017:3;12958:67;:::i;:::-;12951:74;;13034:93;13123:3;13034:93;:::i;:::-;13152:2;13147:3;13143:12;13136:19;;12795:366;;;:::o;13167:419::-;13333:4;13371:2;13360:9;13356:18;13348:26;;13420:9;13414:4;13410:20;13406:1;13395:9;13391:17;13384:47;13448:131;13574:4;13448:131;:::i;:::-;13440:139;;13167:419;;;:::o;13592:180::-;13640:77;13637:1;13630:88;13737:4;13734:1;13727:15;13761:4;13758:1;13751:15;13778:233;13817:3;13840:24;13858:5;13840:24;:::i;:::-;13831:33;;13886:66;13879:5;13876:77;13873:103;;13956:18;;:::i;:::-;13873:103;14003:1;13996:5;13992:13;13985:20;;13778:233;;;:::o;14017:173::-;14157:25;14153:1;14145:6;14141:14;14134:49;14017:173;:::o;14196:366::-;14338:3;14359:67;14423:2;14418:3;14359:67;:::i;:::-;14352:74;;14435:93;14524:3;14435:93;:::i;:::-;14553:2;14548:3;14544:12;14537:19;;14196:366;;;:::o;14568:419::-;14734:4;14772:2;14761:9;14757:18;14749:26;;14821:9;14815:4;14811:20;14807:1;14796:9;14792:17;14785:47;14849:131;14975:4;14849:131;:::i;:::-;14841:139;;14568:419;;;:::o;14993:143::-;15050:5;15081:6;15075:13;15066:22;;15097:33;15124:5;15097:33;:::i;:::-;14993:143;;;;:::o;15142:351::-;15212:6;15261:2;15249:9;15240:7;15236:23;15232:32;15229:119;;;15267:79;;:::i;:::-;15229:119;15387:1;15412:64;15468:7;15459:6;15448:9;15444:22;15412:64;:::i;:::-;15402:74;;15358:128;15142:351;;;;:::o;15499:332::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15671:71;15739:1;15728:9;15724:17;15715:6;15671:71;:::i;:::-;15752:72;15820:2;15809:9;15805:18;15796:6;15752:72;:::i;:::-;15499:332;;;;;:::o;15837:85::-;15882:7;15911:5;15900:16;;15837:85;;;:::o;15928:60::-;15956:3;15977:5;15970:12;;15928:60;;;:::o;15994:158::-;16052:9;16085:61;16103:42;16112:32;16138:5;16112:32;:::i;:::-;16103:42;:::i;:::-;16085:61;:::i;:::-;16072:74;;15994:158;;;:::o;16158:147::-;16253:45;16292:5;16253:45;:::i;:::-;16248:3;16241:58;16158:147;;:::o;16311:807::-;16560:4;16598:3;16587:9;16583:19;16575:27;;16612:71;16680:1;16669:9;16665:17;16656:6;16612:71;:::i;:::-;16693:72;16761:2;16750:9;16746:18;16737:6;16693:72;:::i;:::-;16775:80;16851:2;16840:9;16836:18;16827:6;16775:80;:::i;:::-;16865;16941:2;16930:9;16926:18;16917:6;16865:80;:::i;:::-;16955:73;17023:3;17012:9;17008:19;16999:6;16955:73;:::i;:::-;17038;17106:3;17095:9;17091:19;17082:6;17038:73;:::i;:::-;16311:807;;;;;;;;;:::o;17124:143::-;17181:5;17212:6;17206:13;17197:22;;17228:33;17255:5;17228:33;:::i;:::-;17124:143;;;;:::o;17273:663::-;17361:6;17369;17377;17426:2;17414:9;17405:7;17401:23;17397:32;17394:119;;;17432:79;;:::i;:::-;17394:119;17552:1;17577:64;17633:7;17624:6;17613:9;17609:22;17577:64;:::i;:::-;17567:74;;17523:128;17690:2;17716:64;17772:7;17763:6;17752:9;17748:22;17716:64;:::i;:::-;17706:74;;17661:129;17829:2;17855:64;17911:7;17902:6;17891:9;17887:22;17855:64;:::i;:::-;17845:74;;17800:129;17273:663;;;;;:::o;17942:332::-;18063:4;18101:2;18090:9;18086:18;18078:26;;18114:71;18182:1;18171:9;18167:17;18158:6;18114:71;:::i;:::-;18195:72;18263:2;18252:9;18248:18;18239:6;18195:72;:::i;:::-;17942:332;;;;;:::o;18280:116::-;18350:21;18365:5;18350:21;:::i;:::-;18343:5;18340:32;18330:60;;18386:1;18383;18376:12;18330:60;18280:116;:::o;18402:137::-;18456:5;18487:6;18481:13;18472:22;;18503:30;18527:5;18503:30;:::i;:::-;18402:137;;;;:::o;18545:345::-;18612:6;18661:2;18649:9;18640:7;18636:23;18632:32;18629:119;;;18667:79;;:::i;:::-;18629:119;18787:1;18812:61;18865:7;18856:6;18845:9;18841:22;18812:61;:::i;:::-;18802:71;;18758:125;18545:345;;;;:::o;18896:223::-;19036:34;19032:1;19024:6;19020:14;19013:58;19105:6;19100:2;19092:6;19088:15;19081:31;18896:223;:::o;19125:366::-;19267:3;19288:67;19352:2;19347:3;19288:67;:::i;:::-;19281:74;;19364:93;19453:3;19364:93;:::i;:::-;19482:2;19477:3;19473:12;19466:19;;19125:366;;;:::o;19497:419::-;19663:4;19701:2;19690:9;19686:18;19678:26;;19750:9;19744:4;19740:20;19736:1;19725:9;19721:17;19714:47;19778:131;19904:4;19778:131;:::i;:::-;19770:139;;19497:419;;;:::o;19922:221::-;20062:34;20058:1;20050:6;20046:14;20039:58;20131:4;20126:2;20118:6;20114:15;20107:29;19922:221;:::o;20149:366::-;20291:3;20312:67;20376:2;20371:3;20312:67;:::i;:::-;20305:74;;20388:93;20477:3;20388:93;:::i;:::-;20506:2;20501:3;20497:12;20490:19;;20149:366;;;:::o;20521:419::-;20687:4;20725:2;20714:9;20710:18;20702:26;;20774:9;20768:4;20764:20;20760:1;20749:9;20745:17;20738:47;20802:131;20928:4;20802:131;:::i;:::-;20794:139;;20521:419;;;:::o;20946:224::-;21086:34;21082:1;21074:6;21070:14;21063:58;21155:7;21150:2;21142:6;21138:15;21131:32;20946:224;:::o;21176:366::-;21318:3;21339:67;21403:2;21398:3;21339:67;:::i;:::-;21332:74;;21415:93;21504:3;21415:93;:::i;:::-;21533:2;21528:3;21524:12;21517:19;;21176:366;;;:::o;21548:419::-;21714:4;21752:2;21741:9;21737:18;21729:26;;21801:9;21795:4;21791:20;21787:1;21776:9;21772:17;21765:47;21829:131;21955:4;21829:131;:::i;:::-;21821:139;;21548:419;;;:::o;21973:222::-;22113:34;22109:1;22101:6;22097:14;22090:58;22182:5;22177:2;22169:6;22165:15;22158:30;21973:222;:::o;22201:366::-;22343:3;22364:67;22428:2;22423:3;22364:67;:::i;:::-;22357:74;;22440:93;22529:3;22440:93;:::i;:::-;22558:2;22553:3;22549:12;22542:19;;22201:366;;;:::o;22573:419::-;22739:4;22777:2;22766:9;22762:18;22754:26;;22826:9;22820:4;22816:20;22812:1;22801:9;22797:17;22790:47;22854:131;22980:4;22854:131;:::i;:::-;22846:139;;22573:419;;;:::o;22998:228::-;23138:34;23134:1;23126:6;23122:14;23115:58;23207:11;23202:2;23194:6;23190:15;23183:36;22998:228;:::o;23232:366::-;23374:3;23395:67;23459:2;23454:3;23395:67;:::i;:::-;23388:74;;23471:93;23560:3;23471:93;:::i;:::-;23589:2;23584:3;23580:12;23573:19;;23232:366;;;:::o;23604:419::-;23770:4;23808:2;23797:9;23793:18;23785:26;;23857:9;23851:4;23847:20;23843:1;23832:9;23828:17;23821:47;23885:131;24011:4;23885:131;:::i;:::-;23877:139;;23604:419;;;:::o;24029:175::-;24169:27;24165:1;24157:6;24153:14;24146:51;24029:175;:::o;24210:366::-;24352:3;24373:67;24437:2;24432:3;24373:67;:::i;:::-;24366:74;;24449:93;24538:3;24449:93;:::i;:::-;24567:2;24562:3;24558:12;24551:19;;24210:366;;;:::o;24582:419::-;24748:4;24786:2;24775:9;24771:18;24763:26;;24835:9;24829:4;24825:20;24821:1;24810:9;24806:17;24799:47;24863:131;24989:4;24863:131;:::i;:::-;24855:139;;24582:419;;;:::o;25007:191::-;25047:3;25066:20;25084:1;25066:20;:::i;:::-;25061:25;;25100:20;25118:1;25100:20;:::i;:::-;25095:25;;25143:1;25140;25136:9;25129:16;;25164:3;25161:1;25158:10;25155:36;;;25171:18;;:::i;:::-;25155:36;25007:191;;;;:::o;25204:176::-;25344:28;25340:1;25332:6;25328:14;25321:52;25204:176;:::o;25386:366::-;25528:3;25549:67;25613:2;25608:3;25549:67;:::i;:::-;25542:74;;25625:93;25714:3;25625:93;:::i;:::-;25743:2;25738:3;25734:12;25727:19;;25386:366;;;:::o;25758:419::-;25924:4;25962:2;25951:9;25947:18;25939:26;;26011:9;26005:4;26001:20;25997:1;25986:9;25982:17;25975:47;26039:131;26165:4;26039:131;:::i;:::-;26031:139;;25758:419;;;:::o;26183:194::-;26223:4;26243:20;26261:1;26243:20;:::i;:::-;26238:25;;26277:20;26295:1;26277:20;:::i;:::-;26272:25;;26321:1;26318;26314:9;26306:17;;26345:1;26339:4;26336:11;26333:37;;;26350:18;;:::i;:::-;26333:37;26183:194;;;;:::o;26383:180::-;26431:77;26428:1;26421:88;26528:4;26525:1;26518:15;26552:4;26549:1;26542:15;26569:185;26609:1;26626:20;26644:1;26626:20;:::i;:::-;26621:25;;26660:20;26678:1;26660:20;:::i;:::-;26655:25;;26699:1;26689:35;;26704:18;;:::i;:::-;26689:35;26746:1;26743;26739:9;26734:14;;26569:185;;;;:::o;26760:220::-;26900:34;26896:1;26888:6;26884:14;26877:58;26969:3;26964:2;26956:6;26952:15;26945:28;26760:220;:::o;26986:366::-;27128:3;27149:67;27213:2;27208:3;27149:67;:::i;:::-;27142:74;;27225:93;27314:3;27225:93;:::i;:::-;27343:2;27338:3;27334:12;27327:19;;26986:366;;;:::o;27358:419::-;27524:4;27562:2;27551:9;27547:18;27539:26;;27611:9;27605:4;27601:20;27597:1;27586:9;27582:17;27575:47;27639:131;27765:4;27639:131;:::i;:::-;27631:139;;27358:419;;;:::o;27783:114::-;27850:6;27884:5;27878:12;27868:22;;27783:114;;;:::o;27903:184::-;28002:11;28036:6;28031:3;28024:19;28076:4;28071:3;28067:14;28052:29;;27903:184;;;;:::o;28093:132::-;28160:4;28183:3;28175:11;;28213:4;28208:3;28204:14;28196:22;;28093:132;;;:::o;28231:108::-;28308:24;28326:5;28308:24;:::i;:::-;28303:3;28296:37;28231:108;;:::o;28345:179::-;28414:10;28435:46;28477:3;28469:6;28435:46;:::i;:::-;28513:4;28508:3;28504:14;28490:28;;28345:179;;;;:::o;28530:113::-;28600:4;28632;28627:3;28623:14;28615:22;;28530:113;;;:::o;28679:732::-;28798:3;28827:54;28875:5;28827:54;:::i;:::-;28897:86;28976:6;28971:3;28897:86;:::i;:::-;28890:93;;29007:56;29057:5;29007:56;:::i;:::-;29086:7;29117:1;29102:284;29127:6;29124:1;29121:13;29102:284;;;29203:6;29197:13;29230:63;29289:3;29274:13;29230:63;:::i;:::-;29223:70;;29316:60;29369:6;29316:60;:::i;:::-;29306:70;;29162:224;29149:1;29146;29142:9;29137:14;;29102:284;;;29106:14;29402:3;29395:10;;28803:608;;;28679:732;;;;:::o;29417:831::-;29680:4;29718:3;29707:9;29703:19;29695:27;;29732:71;29800:1;29789:9;29785:17;29776:6;29732:71;:::i;:::-;29813:80;29889:2;29878:9;29874:18;29865:6;29813:80;:::i;:::-;29940:9;29934:4;29930:20;29925:2;29914:9;29910:18;29903:48;29968:108;30071:4;30062:6;29968:108;:::i;:::-;29960:116;;30086:72;30154:2;30143:9;30139:18;30130:6;30086:72;:::i;:::-;30168:73;30236:3;30225:9;30221:19;30212:6;30168:73;:::i;:::-;29417:831;;;;;;;;:::o;30254:177::-;30394:29;30390:1;30382:6;30378:14;30371:53;30254:177;:::o;30437:366::-;30579:3;30600:67;30664:2;30659:3;30600:67;:::i;:::-;30593:74;;30676:93;30765:3;30676:93;:::i;:::-;30794:2;30789:3;30785:12;30778:19;;30437:366;;;:::o;30809:419::-;30975:4;31013:2;31002:9;30998:18;30990:26;;31062:9;31056:4;31052:20;31048:1;31037:9;31033:17;31026:47;31090:131;31216:4;31090:131;:::i;:::-;31082:139;;30809:419;;;:::o

Swarm Source

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