ETH Price: $3,477.00 (+0.38%)

Token

Chappie (CHAP)
 

Overview

Max Total Supply

1,000,000,000 CHAP

Holders

795

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 CHAP

Value
$0.00
0x7777777a598b15be0c8d9a103a350397041e6751
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:
Chappie

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-16
*/

// SPDX-License-Identifier: MIT
/**

Chappie | CHAP

World's First 24/7 Crypto Community Bot
- 24/7 Learning & Real-time Engagement
- Intuitive Learning Amplifier
- Interactive Storytelling at its Best
- Robust Data Interpreter

Check us out here:
Twitter: https://twitter.com/ChappieCM 
Telegram: https://t.me/ChappieCM 
Website: https://www.chappie.io 

**/
pragma solidity 0.8.20;

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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view 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 Chappie is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _mainWallet;
    address payable private _taxTeamWallet;
    address payable private _taxStakingsWallet;
    address payable private _taxEcosystemkWallet;
    address payable private _taxMarketingWallet;

    uint256 private _initialBuyTax=100;
    uint256 private _initialSellTax=100;
    uint256 public _currentBuyTax=100;   //reduce tax after marketing
    uint256 public _currentSellTax=100; //reduce tax after marketing
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=1;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 0;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Chappie";
    string private constant _symbol = unicode"CHAP";
    uint256 public _maxTxAmount =   10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=0 * 10**_decimals;
    uint256 public _maxTaxSwap=10000000 * 10**_decimals;

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

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

    constructor () {
        _taxTeamWallet = payable(0x074e1aF5C0E37D2197614a74B3762C6179ecDf15);
        _taxStakingsWallet = payable(0xE78B81F6Ab8f422501bF27ab7Bdf0A49557C5E50);
        _taxEcosystemkWallet = payable(0xA74C6a9A8AE3a8850BEABa73A2c7df9E72070088);
        _taxMarketingWallet = payable(0x519297f95D5C1b7Ee4b1e63DF3D4Ee74b608a87d);
        _mainWallet = payable(0x905e6245B7cb0fc9ea44f3d94D103C42044ce6F2);

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxTeamWallet] = true;
        _isExcludedFromFee[_taxStakingsWallet] = true;
        _isExcludedFromFee[_taxEcosystemkWallet] = true;
        _isExcludedFromFee[_taxMarketingWallet] = true;
        _isExcludedFromFee[_mainWallet] = 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()) {

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

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_currentBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_currentSellTax:_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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        uint256 feeAmount = amount.mul(25).div(100);
        uint256 remaining = amount.sub(feeAmount).sub(feeAmount).sub(feeAmount);
        _taxTeamWallet.transfer(feeAmount);
        _taxStakingsWallet.transfer(feeAmount);
        _taxEcosystemkWallet.transfer(feeAmount);
        _taxMarketingWallet.transfer(remaining);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        IUniswapV2Factory factory=IUniswapV2Factory(uniswapV2Router.factory());
        uniswapV2Pair = factory.getPair(address(this),uniswapV2Router.WETH());
        if(uniswapV2Pair==address(0x0)){
          uniswapV2Pair = 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;
    }

    receive() external payable {}

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

    function reduceFee(uint256 _newBuyFee, uint256 _newSellFee) external onlyOwner(){
      require(_newBuyFee<=_currentBuyTax && _newSellFee<=_currentSellTax);
      _currentBuyTax=_newBuyFee;
      _currentSellTax=_newSellFee;
    }
    
}

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":"_currentBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_currentSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60055f6101000a81548160ff0219169083151502179055506064600a556064600b556064600c556064600d555f600e555f600f5560016010555f6011555f600a6200005191906200092d565b629896806200006191906200097d565b6012555f600a6200007391906200092d565b629896806200008391906200097d565b6013555f600a6200009591906200092d565b5f620000a291906200097d565b6014555f600a620000b491906200092d565b62989680620000c491906200097d565b6015555f601760156101000a81548160ff0219169083151502179055505f601760166101000a81548160ff02191690831515021790555034801562000107575f80fd5b505f620001196200076d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073074e1af5c0e37d2197614a74b3762c6179ecdf1560065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e78b81f6ab8f422501bf27ab7bdf0a49557c5e5060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a74c6a9a8ae3a8850beaba73a2c7df9e7207008860085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073519297f95d5c1b7ee4b1e63df3d4ee74b608a87d60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073905e6245b7cb0fc9ea44f3d94d103c42044ce6f2600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a6200036991906200092d565b633b9aca006200037a91906200097d565b60015f6200038d6200076d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620003df6200077460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006e26200076d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f600a6200073f91906200092d565b633b9aca006200075091906200097d565b6040516200075f9190620009d8565b60405180910390a3620009f3565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200082557808604811115620007fd57620007fc6200079b565b5b60018516156200080d5780820291505b80810290506200081d85620007c8565b9450620007dd565b94509492505050565b5f826200083f576001905062000911565b816200084e575f905062000911565b81600181146200086757600281146200087257620008a8565b600191505062000911565b60ff8411156200088757620008866200079b565b5b8360020a915084821115620008a157620008a06200079b565b5b5062000911565b5060208310610133831016604e8410600b8410161715620008e25782820a905083811115620008dc57620008db6200079b565b5b62000911565b620008f18484846001620007d4565b925090508184048111156200090b576200090a6200079b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009398262000918565b9150620009468362000921565b9250620009757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200082e565b905092915050565b5f620009898262000918565b9150620009968362000918565b9250828202620009a68162000918565b91508282048414831517620009c057620009bf6200079b565b5b5092915050565b620009d28162000918565b82525050565b5f602082019050620009ed5f830184620009c7565b92915050565b6133aa8062000a015f395ff3fe60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103ba578063b8ec6735146103f6578063bf474bed14610420578063c876d0b91461044a578063c9567bf914610474578063dd62ed3e1461048a57610134565b8063751039fc146102fc5780637d1db4a5146103125780638da5cb5b1461033c5780638f9a55c01461036657806395d89b411461039057610134565b806323b872dd116100f157806323b872dd1461021c578063313ce5671461025857806370a0823114610282578063715018a6146102be57806372333356146102d457610134565b8063013d39c41461013857806306fdde0314610162578063095ea7b31461018c5780630faee56f146101c857806318160ddd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c6565b6040516101599190612412565b60405180910390f35b34801561016d575f80fd5b506101766104cc565b60405161018391906124b5565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad919061255d565b610509565b6040516101bf91906125b5565b60405180910390f35b3480156101d3575f80fd5b506101dc610526565b6040516101e99190612412565b60405180910390f35b3480156101fd575f80fd5b5061020661052c565b6040516102139190612412565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d91906125ce565b61054e565b60405161024f91906125b5565b60405180910390f35b348015610263575f80fd5b5061026c610622565b6040516102799190612639565b60405180910390f35b34801561028d575f80fd5b506102a860048036038101906102a39190612652565b610626565b6040516102b59190612412565b60405180910390f35b3480156102c9575f80fd5b506102d261066c565b005b3480156102df575f80fd5b506102fa60048036038101906102f5919061267d565b6107ba565b005b348015610307575f80fd5b5061031061087c565b005b34801561031d575f80fd5b506103266109c1565b6040516103339190612412565b60405180910390f35b348015610347575f80fd5b506103506109c7565b60405161035d91906126ca565b60405180910390f35b348015610371575f80fd5b5061037a6109ee565b6040516103879190612412565b60405180910390f35b34801561039b575f80fd5b506103a46109f4565b6040516103b191906124b5565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db919061255d565b610a31565b6040516103ed91906125b5565b60405180910390f35b348015610401575f80fd5b5061040a610a4e565b6040516104179190612412565b60405180910390f35b34801561042b575f80fd5b50610434610a54565b6040516104419190612412565b60405180910390f35b348015610455575f80fd5b5061045e610a5a565b60405161046b91906125b5565b60405180910390f35b34801561047f575f80fd5b50610488610a6c565b005b348015610495575f80fd5b506104b060048036038101906104ab91906126e3565b61112d565b6040516104bd9190612412565b60405180910390f35b600d5481565b60606040518060400160405280600781526020017f4368617070696500000000000000000000000000000000000000000000000000815250905090565b5f61051c6105156111af565b84846111b6565b6001905092915050565b60155481565b5f80600a61053a919061287d565b633b9aca0061054991906128c7565b905090565b5f61055a848484611379565b610617846105666111af565b6106128560405180606001604052806028815260200161334d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105c96111af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d339092919063ffffffff16565b6111b6565b600190509392505050565b5f90565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106746111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790612952565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107c26111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590612952565b60405180910390fd5b600c5482111580156108625750600d548111155b61086a575f80fd5b81600c8190555080600d819055505050565b6108846111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090790612952565b60405180910390fd5b5f600a61091d919061287d565b633b9aca0061092c91906128c7565b6012819055505f600a61093f919061287d565b633b9aca0061094e91906128c7565b6013819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf5f600a61099b919061287d565b633b9aca006109aa91906128c7565b6040516109b79190612412565b60405180910390a1565b60125481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600481526020017f4348415000000000000000000000000000000000000000000000000000000000815250905090565b5f610a44610a3d6111af565b8484611379565b6001905092915050565b600c5481565b60145481565b60055f9054906101000a900460ff1681565b610a746111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790612952565b60405180910390fd5b601760149054906101000a900460ff1615610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b47906129ba565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610beb3060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f600a610bd7919061287d565b633b9aca00610be691906128c7565b6111b6565b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7a91906129ec565b90508073ffffffffffffffffffffffffffffffffffffffff1663e6a439053060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2791906129ec565b6040518363ffffffff1660e01b8152600401610d44929190612a17565b602060405180830381865afa158015610d5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8391906129ec565b60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f5e578073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec191906129ec565b6040518363ffffffff1660e01b8152600401610ede929190612a17565b6020604051808303815f875af1158015610efa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1e91906129ec565b60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fa630610626565b5f80610fb06109c7565b426040518863ffffffff1660e01b8152600401610fd296959493929190612a80565b60606040518083038185885af1158015610fee573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110139190612af3565b50505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110b3929190612b43565b6020604051808303815f875af11580156110cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f39190612b94565b506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b90612c2f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128990612cbd565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161136c9190612412565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90612d4b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90612dd9565b60405180910390fd5b5f8111611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612e67565b60405180910390fd5b5f6114a06109c7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561150e57506114de6109c7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a835760055f9054906101000a900460ff16156116995760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115d1575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611698574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612ef5565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611742575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611795575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561188d576012548211156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612f5d565b60405180910390fd5b601354826117ec85610626565b6117f69190612f7b565b1115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612ff8565b60405180910390fd5b6118736064611865600e546011541161185257600a54611856565b600c545b85611d9590919063ffffffff16565b611e0c90919063ffffffff16565b905060115f81548092919061188790613016565b91905055505b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561191557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561199e5760125482111561195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690612f5d565b60405180910390fd5b61199b606461198d600f546011541161197a57600b5461197e565b600d545b85611d9590919063ffffffff16565b611e0c90919063ffffffff16565b90505b5f6119a830610626565b9050601760159054906101000a900460ff16158015611a13575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a2b5750601760169054906101000a900460ff165b8015611a38575060145481115b8015611a475750601054601154115b15611a8157611a69611a6484611a5f84601554611e55565b611e55565b611e6d565b5f4790505f811115611a7f57611a7e476120f6565b5b505b505b5f811115611b8257611adb8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b799190612412565b60405180910390a35b611bd28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c75611c29828461235090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d18848661235090919063ffffffff16565b604051611d259190612412565b60405180910390a350505050565b5f838311158290611d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7191906124b5565b60405180910390fd5b505f8385611d88919061305d565b9050809150509392505050565b5f808303611da5575f9050611e06565b5f8284611db291906128c7565b9050828482611dc191906130bd565b14611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df89061315d565b60405180910390fd5b809150505b92915050565b5f611e4d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612399565b905092915050565b5f818311611e635782611e65565b815b905092915050565b6001601760156101000a81548160ff0219169083151502179055505f8103156120d957601760149054906101000a900460ff16156120d9575f600267ffffffffffffffff811115611ec157611ec061317b565b5b604051908082528060200260200182016040528015611eef5781602001602082028036833780820191505090505b50905030815f81518110611f0657611f056131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fce91906129ec565b81600181518110611fe257611fe16131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120483060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b6565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120aa95949392919061328c565b5f604051808303815f87803b1580156120c1575f80fd5b505af11580156120d3573d5f803e3d5ffd5b50505050505b5f601760156101000a81548160ff02191690831515021790555050565b5f61211e6064612110601985611d9590919063ffffffff16565b611e0c90919063ffffffff16565b90505f6121588261214a8461213c868861235090919063ffffffff16565b61235090919063ffffffff16565b61235090919063ffffffff16565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156121be573d5f803e3d5ffd5b5060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612223573d5f803e3d5ffd5b5060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612288573d5f803e3d5ffd5b5060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122ed573d5f803e3d5ffd5b50505050565b5f8082846123019190612f7b565b905083811015612346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233d9061332e565b60405180910390fd5b8091505092915050565b5f61239183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d33565b905092915050565b5f80831182906123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d691906124b5565b60405180910390fd5b505f83856123ed91906130bd565b9050809150509392505050565b5f819050919050565b61240c816123fa565b82525050565b5f6020820190506124255f830184612403565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612462578082015181840152602081019050612447565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124878261242b565b6124918185612435565b93506124a1818560208601612445565b6124aa8161246d565b840191505092915050565b5f6020820190508181035f8301526124cd818461247d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612502826124d9565b9050919050565b612512816124f8565b811461251c575f80fd5b50565b5f8135905061252d81612509565b92915050565b61253c816123fa565b8114612546575f80fd5b50565b5f8135905061255781612533565b92915050565b5f8060408385031215612573576125726124d5565b5b5f6125808582860161251f565b925050602061259185828601612549565b9150509250929050565b5f8115159050919050565b6125af8161259b565b82525050565b5f6020820190506125c85f8301846125a6565b92915050565b5f805f606084860312156125e5576125e46124d5565b5b5f6125f28682870161251f565b93505060206126038682870161251f565b925050604061261486828701612549565b9150509250925092565b5f60ff82169050919050565b6126338161261e565b82525050565b5f60208201905061264c5f83018461262a565b92915050565b5f60208284031215612667576126666124d5565b5b5f6126748482850161251f565b91505092915050565b5f8060408385031215612693576126926124d5565b5b5f6126a085828601612549565b92505060206126b185828601612549565b9150509250929050565b6126c4816124f8565b82525050565b5f6020820190506126dd5f8301846126bb565b92915050565b5f80604083850312156126f9576126f86124d5565b5b5f6127068582860161251f565b92505060206127178582860161251f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127a35780860481111561277f5761277e612721565b5b600185161561278e5780820291505b808102905061279c8561274e565b9450612763565b94509492505050565b5f826127bb5760019050612876565b816127c8575f9050612876565b81600181146127de57600281146127e857612817565b6001915050612876565b60ff8411156127fa576127f9612721565b5b8360020a91508482111561281157612810612721565b5b50612876565b5060208310610133831016604e8410600b841016171561284c5782820a90508381111561284757612846612721565b5b612876565b612859848484600161275a565b925090508184048111156128705761286f612721565b5b81810290505b9392505050565b5f612887826123fa565b91506128928361261e565b92506128bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127ac565b905092915050565b5f6128d1826123fa565b91506128dc836123fa565b92508282026128ea816123fa565b9150828204841483151761290157612900612721565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61293c602083612435565b915061294782612908565b602082019050919050565b5f6020820190508181035f83015261296981612930565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129a4601783612435565b91506129af82612970565b602082019050919050565b5f6020820190508181035f8301526129d181612998565b9050919050565b5f815190506129e681612509565b92915050565b5f60208284031215612a0157612a006124d5565b5b5f612a0e848285016129d8565b91505092915050565b5f604082019050612a2a5f8301856126bb565b612a3760208301846126bb565b9392505050565b5f819050919050565b5f819050919050565b5f612a6a612a65612a6084612a3e565b612a47565b6123fa565b9050919050565b612a7a81612a50565b82525050565b5f60c082019050612a935f8301896126bb565b612aa06020830188612403565b612aad6040830187612a71565b612aba6060830186612a71565b612ac760808301856126bb565b612ad460a0830184612403565b979650505050505050565b5f81519050612aed81612533565b92915050565b5f805f60608486031215612b0a57612b096124d5565b5b5f612b1786828701612adf565b9350506020612b2886828701612adf565b9250506040612b3986828701612adf565b9150509250925092565b5f604082019050612b565f8301856126bb565b612b636020830184612403565b9392505050565b612b738161259b565b8114612b7d575f80fd5b50565b5f81519050612b8e81612b6a565b92915050565b5f60208284031215612ba957612ba86124d5565b5b5f612bb684828501612b80565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c19602483612435565b9150612c2482612bbf565b604082019050919050565b5f6020820190508181035f830152612c4681612c0d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca7602283612435565b9150612cb282612c4d565b604082019050919050565b5f6020820190508181035f830152612cd481612c9b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d35602583612435565b9150612d4082612cdb565b604082019050919050565b5f6020820190508181035f830152612d6281612d29565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dc3602383612435565b9150612dce82612d69565b604082019050919050565b5f6020820190508181035f830152612df081612db7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e51602983612435565b9150612e5c82612df7565b604082019050919050565b5f6020820190508181035f830152612e7e81612e45565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612edf602483612435565b9150612eea82612e85565b604082019050919050565b5f6020820190508181035f830152612f0c81612ed3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f47601983612435565b9150612f5282612f13565b602082019050919050565b5f6020820190508181035f830152612f7481612f3b565b9050919050565b5f612f85826123fa565b9150612f90836123fa565b9250828201905080821115612fa857612fa7612721565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fe2601a83612435565b9150612fed82612fae565b602082019050919050565b5f6020820190508181035f83015261300f81612fd6565b9050919050565b5f613020826123fa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305257613051612721565b5b600182019050919050565b5f613067826123fa565b9150613072836123fa565b925082820390508181111561308a57613089612721565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130c7826123fa565b91506130d2836123fa565b9250826130e2576130e1613090565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613147602183612435565b9150613152826130ed565b604082019050919050565b5f6020820190508181035f8301526131748161313b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613207816124f8565b82525050565b5f61321883836131fe565b60208301905092915050565b5f602082019050919050565b5f61323a826131d5565b61324481856131df565b935061324f836131ef565b805f5b8381101561327f578151613266888261320d565b975061327183613224565b925050600181019050613252565b5085935050505092915050565b5f60a08201905061329f5f830188612403565b6132ac6020830187612a71565b81810360408301526132be8186613230565b90506132cd60608301856126bb565b6132da6080830184612403565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613318601b83612435565b9150613323826132e4565b602082019050919050565b5f6020820190508181035f8301526133458161330c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220efcab367f10778439f71e3f612dc30f22a4293fd7fbac414cded2601cf860a4d64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103ba578063b8ec6735146103f6578063bf474bed14610420578063c876d0b91461044a578063c9567bf914610474578063dd62ed3e1461048a57610134565b8063751039fc146102fc5780637d1db4a5146103125780638da5cb5b1461033c5780638f9a55c01461036657806395d89b411461039057610134565b806323b872dd116100f157806323b872dd1461021c578063313ce5671461025857806370a0823114610282578063715018a6146102be57806372333356146102d457610134565b8063013d39c41461013857806306fdde0314610162578063095ea7b31461018c5780630faee56f146101c857806318160ddd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c6565b6040516101599190612412565b60405180910390f35b34801561016d575f80fd5b506101766104cc565b60405161018391906124b5565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad919061255d565b610509565b6040516101bf91906125b5565b60405180910390f35b3480156101d3575f80fd5b506101dc610526565b6040516101e99190612412565b60405180910390f35b3480156101fd575f80fd5b5061020661052c565b6040516102139190612412565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d91906125ce565b61054e565b60405161024f91906125b5565b60405180910390f35b348015610263575f80fd5b5061026c610622565b6040516102799190612639565b60405180910390f35b34801561028d575f80fd5b506102a860048036038101906102a39190612652565b610626565b6040516102b59190612412565b60405180910390f35b3480156102c9575f80fd5b506102d261066c565b005b3480156102df575f80fd5b506102fa60048036038101906102f5919061267d565b6107ba565b005b348015610307575f80fd5b5061031061087c565b005b34801561031d575f80fd5b506103266109c1565b6040516103339190612412565b60405180910390f35b348015610347575f80fd5b506103506109c7565b60405161035d91906126ca565b60405180910390f35b348015610371575f80fd5b5061037a6109ee565b6040516103879190612412565b60405180910390f35b34801561039b575f80fd5b506103a46109f4565b6040516103b191906124b5565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db919061255d565b610a31565b6040516103ed91906125b5565b60405180910390f35b348015610401575f80fd5b5061040a610a4e565b6040516104179190612412565b60405180910390f35b34801561042b575f80fd5b50610434610a54565b6040516104419190612412565b60405180910390f35b348015610455575f80fd5b5061045e610a5a565b60405161046b91906125b5565b60405180910390f35b34801561047f575f80fd5b50610488610a6c565b005b348015610495575f80fd5b506104b060048036038101906104ab91906126e3565b61112d565b6040516104bd9190612412565b60405180910390f35b600d5481565b60606040518060400160405280600781526020017f4368617070696500000000000000000000000000000000000000000000000000815250905090565b5f61051c6105156111af565b84846111b6565b6001905092915050565b60155481565b5f80600a61053a919061287d565b633b9aca0061054991906128c7565b905090565b5f61055a848484611379565b610617846105666111af565b6106128560405180606001604052806028815260200161334d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105c96111af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d339092919063ffffffff16565b6111b6565b600190509392505050565b5f90565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106746111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790612952565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107c26111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590612952565b60405180910390fd5b600c5482111580156108625750600d548111155b61086a575f80fd5b81600c8190555080600d819055505050565b6108846111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090790612952565b60405180910390fd5b5f600a61091d919061287d565b633b9aca0061092c91906128c7565b6012819055505f600a61093f919061287d565b633b9aca0061094e91906128c7565b6013819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf5f600a61099b919061287d565b633b9aca006109aa91906128c7565b6040516109b79190612412565b60405180910390a1565b60125481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600481526020017f4348415000000000000000000000000000000000000000000000000000000000815250905090565b5f610a44610a3d6111af565b8484611379565b6001905092915050565b600c5481565b60145481565b60055f9054906101000a900460ff1681565b610a746111af565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790612952565b60405180910390fd5b601760149054906101000a900460ff1615610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b47906129ba565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610beb3060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f600a610bd7919061287d565b633b9aca00610be691906128c7565b6111b6565b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7a91906129ec565b90508073ffffffffffffffffffffffffffffffffffffffff1663e6a439053060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2791906129ec565b6040518363ffffffff1660e01b8152600401610d44929190612a17565b602060405180830381865afa158015610d5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8391906129ec565b60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f5e578073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec191906129ec565b6040518363ffffffff1660e01b8152600401610ede929190612a17565b6020604051808303815f875af1158015610efa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1e91906129ec565b60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fa630610626565b5f80610fb06109c7565b426040518863ffffffff1660e01b8152600401610fd296959493929190612a80565b60606040518083038185885af1158015610fee573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110139190612af3565b50505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110b3929190612b43565b6020604051808303815f875af11580156110cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f39190612b94565b506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b90612c2f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128990612cbd565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161136c9190612412565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90612d4b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90612dd9565b60405180910390fd5b5f8111611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612e67565b60405180910390fd5b5f6114a06109c7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561150e57506114de6109c7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a835760055f9054906101000a900460ff16156116995760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115d1575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611698574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612ef5565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611742575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611795575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561188d576012548211156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612f5d565b60405180910390fd5b601354826117ec85610626565b6117f69190612f7b565b1115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612ff8565b60405180910390fd5b6118736064611865600e546011541161185257600a54611856565b600c545b85611d9590919063ffffffff16565b611e0c90919063ffffffff16565b905060115f81548092919061188790613016565b91905055505b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561191557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561199e5760125482111561195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690612f5d565b60405180910390fd5b61199b606461198d600f546011541161197a57600b5461197e565b600d545b85611d9590919063ffffffff16565b611e0c90919063ffffffff16565b90505b5f6119a830610626565b9050601760159054906101000a900460ff16158015611a13575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a2b5750601760169054906101000a900460ff165b8015611a38575060145481115b8015611a475750601054601154115b15611a8157611a69611a6484611a5f84601554611e55565b611e55565b611e6d565b5f4790505f811115611a7f57611a7e476120f6565b5b505b505b5f811115611b8257611adb8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b799190612412565b60405180910390a35b611bd28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c75611c29828461235090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d18848661235090919063ffffffff16565b604051611d259190612412565b60405180910390a350505050565b5f838311158290611d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7191906124b5565b60405180910390fd5b505f8385611d88919061305d565b9050809150509392505050565b5f808303611da5575f9050611e06565b5f8284611db291906128c7565b9050828482611dc191906130bd565b14611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df89061315d565b60405180910390fd5b809150505b92915050565b5f611e4d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612399565b905092915050565b5f818311611e635782611e65565b815b905092915050565b6001601760156101000a81548160ff0219169083151502179055505f8103156120d957601760149054906101000a900460ff16156120d9575f600267ffffffffffffffff811115611ec157611ec061317b565b5b604051908082528060200260200182016040528015611eef5781602001602082028036833780820191505090505b50905030815f81518110611f0657611f056131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fce91906129ec565b81600181518110611fe257611fe16131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120483060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b6565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120aa95949392919061328c565b5f604051808303815f87803b1580156120c1575f80fd5b505af11580156120d3573d5f803e3d5ffd5b50505050505b5f601760156101000a81548160ff02191690831515021790555050565b5f61211e6064612110601985611d9590919063ffffffff16565b611e0c90919063ffffffff16565b90505f6121588261214a8461213c868861235090919063ffffffff16565b61235090919063ffffffff16565b61235090919063ffffffff16565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156121be573d5f803e3d5ffd5b5060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612223573d5f803e3d5ffd5b5060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612288573d5f803e3d5ffd5b5060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122ed573d5f803e3d5ffd5b50505050565b5f8082846123019190612f7b565b905083811015612346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233d9061332e565b60405180910390fd5b8091505092915050565b5f61239183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d33565b905092915050565b5f80831182906123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d691906124b5565b60405180910390fd5b505f83856123ed91906130bd565b9050809150509392505050565b5f819050919050565b61240c816123fa565b82525050565b5f6020820190506124255f830184612403565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612462578082015181840152602081019050612447565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124878261242b565b6124918185612435565b93506124a1818560208601612445565b6124aa8161246d565b840191505092915050565b5f6020820190508181035f8301526124cd818461247d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612502826124d9565b9050919050565b612512816124f8565b811461251c575f80fd5b50565b5f8135905061252d81612509565b92915050565b61253c816123fa565b8114612546575f80fd5b50565b5f8135905061255781612533565b92915050565b5f8060408385031215612573576125726124d5565b5b5f6125808582860161251f565b925050602061259185828601612549565b9150509250929050565b5f8115159050919050565b6125af8161259b565b82525050565b5f6020820190506125c85f8301846125a6565b92915050565b5f805f606084860312156125e5576125e46124d5565b5b5f6125f28682870161251f565b93505060206126038682870161251f565b925050604061261486828701612549565b9150509250925092565b5f60ff82169050919050565b6126338161261e565b82525050565b5f60208201905061264c5f83018461262a565b92915050565b5f60208284031215612667576126666124d5565b5b5f6126748482850161251f565b91505092915050565b5f8060408385031215612693576126926124d5565b5b5f6126a085828601612549565b92505060206126b185828601612549565b9150509250929050565b6126c4816124f8565b82525050565b5f6020820190506126dd5f8301846126bb565b92915050565b5f80604083850312156126f9576126f86124d5565b5b5f6127068582860161251f565b92505060206127178582860161251f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127a35780860481111561277f5761277e612721565b5b600185161561278e5780820291505b808102905061279c8561274e565b9450612763565b94509492505050565b5f826127bb5760019050612876565b816127c8575f9050612876565b81600181146127de57600281146127e857612817565b6001915050612876565b60ff8411156127fa576127f9612721565b5b8360020a91508482111561281157612810612721565b5b50612876565b5060208310610133831016604e8410600b841016171561284c5782820a90508381111561284757612846612721565b5b612876565b612859848484600161275a565b925090508184048111156128705761286f612721565b5b81810290505b9392505050565b5f612887826123fa565b91506128928361261e565b92506128bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127ac565b905092915050565b5f6128d1826123fa565b91506128dc836123fa565b92508282026128ea816123fa565b9150828204841483151761290157612900612721565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61293c602083612435565b915061294782612908565b602082019050919050565b5f6020820190508181035f83015261296981612930565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129a4601783612435565b91506129af82612970565b602082019050919050565b5f6020820190508181035f8301526129d181612998565b9050919050565b5f815190506129e681612509565b92915050565b5f60208284031215612a0157612a006124d5565b5b5f612a0e848285016129d8565b91505092915050565b5f604082019050612a2a5f8301856126bb565b612a3760208301846126bb565b9392505050565b5f819050919050565b5f819050919050565b5f612a6a612a65612a6084612a3e565b612a47565b6123fa565b9050919050565b612a7a81612a50565b82525050565b5f60c082019050612a935f8301896126bb565b612aa06020830188612403565b612aad6040830187612a71565b612aba6060830186612a71565b612ac760808301856126bb565b612ad460a0830184612403565b979650505050505050565b5f81519050612aed81612533565b92915050565b5f805f60608486031215612b0a57612b096124d5565b5b5f612b1786828701612adf565b9350506020612b2886828701612adf565b9250506040612b3986828701612adf565b9150509250925092565b5f604082019050612b565f8301856126bb565b612b636020830184612403565b9392505050565b612b738161259b565b8114612b7d575f80fd5b50565b5f81519050612b8e81612b6a565b92915050565b5f60208284031215612ba957612ba86124d5565b5b5f612bb684828501612b80565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c19602483612435565b9150612c2482612bbf565b604082019050919050565b5f6020820190508181035f830152612c4681612c0d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca7602283612435565b9150612cb282612c4d565b604082019050919050565b5f6020820190508181035f830152612cd481612c9b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d35602583612435565b9150612d4082612cdb565b604082019050919050565b5f6020820190508181035f830152612d6281612d29565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dc3602383612435565b9150612dce82612d69565b604082019050919050565b5f6020820190508181035f830152612df081612db7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e51602983612435565b9150612e5c82612df7565b604082019050919050565b5f6020820190508181035f830152612e7e81612e45565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612edf602483612435565b9150612eea82612e85565b604082019050919050565b5f6020820190508181035f830152612f0c81612ed3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f47601983612435565b9150612f5282612f13565b602082019050919050565b5f6020820190508181035f830152612f7481612f3b565b9050919050565b5f612f85826123fa565b9150612f90836123fa565b9250828201905080821115612fa857612fa7612721565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fe2601a83612435565b9150612fed82612fae565b602082019050919050565b5f6020820190508181035f83015261300f81612fd6565b9050919050565b5f613020826123fa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305257613051612721565b5b600182019050919050565b5f613067826123fa565b9150613072836123fa565b925082820390508181111561308a57613089612721565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130c7826123fa565b91506130d2836123fa565b9250826130e2576130e1613090565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613147602183612435565b9150613152826130ed565b604082019050919050565b5f6020820190508181035f8301526131748161313b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613207816124f8565b82525050565b5f61321883836131fe565b60208301905092915050565b5f602082019050919050565b5f61323a826131d5565b61324481856131df565b935061324f836131ef565b805f5b8381101561327f578151613266888261320d565b975061327183613224565b925050600181019050613252565b5085935050505092915050565b5f60a08201905061329f5f830188612403565b6132ac6020830187612a71565b81810360408301526132be8186613230565b90506132cd60608301856126bb565b6132da6080830184612403565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613318601b83612435565b9150613323826132e4565b602082019050919050565b5f6020820190508181035f8301526133458161330c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220efcab367f10778439f71e3f612dc30f22a4293fd7fbac414cded2601cf860a4d64736f6c63430008140033

Deployed Bytecode Sourcemap

3907:9325:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4691:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6636:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7469:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5324:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6913:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7638:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6822:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7016:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2896:148;;;;;;;;;;;;;:::i;:::-;;12989:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11294:196;;;;;;;;;;;;;:::i;:::-;;5141:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2682:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5204:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6727:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7143:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4620:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5267:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4251:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11891:850;;;;;;;;;;;;;:::i;:::-;;7318:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4691:34;;;;:::o;6636:83::-;6673:13;6706:5;;;;;;;;;;;;;;;;;6699:12;;6636:83;:::o;7469:161::-;7544:4;7561:39;7570:12;:10;:12::i;:::-;7584:7;7593:6;7561:8;:39::i;:::-;7618:4;7611:11;;7469:161;;;;:::o;5324:51::-;;;;:::o;6913:95::-;6966:7;4956:1;5012:2;:13;;;;:::i;:::-;4999:10;:26;;;;:::i;:::-;6986:14;;6913:95;:::o;7638:313::-;7736:4;7753:36;7763:6;7771:9;7782:6;7753:9;:36::i;:::-;7800:121;7809:6;7817:12;:10;:12::i;:::-;7831:89;7869:6;7831:89;;;;;;;;;;;;;;;;;:11;:19;7843:6;7831:19;;;;;;;;;;;;;;;:33;7851:12;:10;:12::i;:::-;7831:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7800:8;:121::i;:::-;7939:4;7932:11;;7638:313;;;;;:::o;6822:83::-;6863:5;6822:83;:::o;7016:119::-;7082:7;7109:9;:18;7119:7;7109:18;;;;;;;;;;;;;;;;7102:25;;7016:119;;;:::o;2896:148::-;2819:12;:10;:12::i;:::-;2809:22;;:6;;;;;;;;;;:22;;;2801:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3003:1:::1;2966:40;;2987:6;::::0;::::1;;;;;;;;2966:40;;;;;;;;;;;;3034:1;3017:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2896:148::o:0;12989:234::-;2819:12;:10;:12::i;:::-;2809:22;;:6;;;;;;;;;;:22;;;2801:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13098:14:::1;;13086:10;:26;;:58;;;;;13129:15;;13116:11;:28;;13086:58;13078:67;;;::::0;::::1;;13169:10;13154:14;:25;;;;13204:11;13188:15;:27;;;;12989:234:::0;;:::o;11294:196::-;2819:12;:10;:12::i;:::-;2809:22;;:6;;;;;;;;;;:22;;;2801:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4956:1:::1;5012:2;:13;;;;:::i;:::-;4999:10;:26;;;;:::i;:::-;11347:12;:22;;;;4956:1;5012:2;:13;;;;:::i;:::-;4999:10;:26;;;;:::i;:::-;11380:14;:22;;;;11434:5;11413:20;;:26;;;;;;;;;;;;;;;;;;11455:27;4956:1;5012:2;:13;;;;:::i;:::-;4999:10;:26;;;;:::i;:::-;11455:27;;;;;;:::i;:::-;;;;;;;;11294:196::o:0;5141:56::-;;;;:::o;2682:79::-;2720:7;2747:6;;;;;;;;;;;2740:13;;2682:79;:::o;5204:56::-;;;;:::o;6727:87::-;6766:13;6799:7;;;;;;;;;;;;;;;;;6792:14;;6727:87;:::o;7143:167::-;7221:4;7238:42;7248:12;:10;:12::i;:::-;7262:9;7273:6;7238:9;:42::i;:::-;7298:4;7291:11;;7143:167;;;;:::o;4620:33::-;;;;:::o;5267:50::-;;;;:::o;4251:40::-;;;;;;;;;;;;;:::o;11891:850::-;2819:12;:10;:12::i;:::-;2809:22;;:6;;;;;;;;;;:22;;;2801:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11955:11:::1;;;;;;;;;;;11954:12;11946:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12041:42;12004:15;;:80;;;;;;;;;;;;;;;;;;12095:58;12112:4;12127:15;;;;;;;;;;;4956:1;5012:2;:13;;;;:::i;:::-;4999:10;:26;;;;:::i;:::-;12095:8;:58::i;:::-;12164:25;12208:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12164:70;;12261:7;:15;;;12285:4;12291:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12261:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12245:13;;:69;;;;;;;;;;;;;;;;;;12351:3;12328:27;;:13;;;;;;;;;;;:27;;::::0;12325:129:::1;;12385:7;:18;;;12412:4;12419:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12385:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12369:13;;:73;;;;;;;;;;;;;;;;;;12325:129;12464:15;;;;;;;;;;;:31;;;12503:21;12534:4;12540:24;12558:4;12540:9;:24::i;:::-;12565:1;12567::::0;12569:7:::1;:5;:7::i;:::-;12577:15;12464:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12611:13;;;;;;;;;;;12604:29;;;12642:15;;;;;;;;;;;12660:14;12604:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12700:4;12686:11;;:18;;;;;;;;;;;;;;;;;;12729:4;12715:11;;:18;;;;;;;;;;;;;;;;;;11935:806;11891:850::o:0;7318:143::-;7399:7;7426:11;:18;7438:5;7426:18;;;;;;;;;;;;;;;:27;7445:7;7426:27;;;;;;;;;;;;;;;;7419:34;;7318:143;;;;:::o;437:98::-;490:7;517:10;510:17;;437:98;:::o;7959:335::-;8069:1;8052:19;;:5;:19;;;8044:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8150:1;8131:21;;:7;:21;;;8123:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8232:6;8202:11;:18;8214:5;8202:18;;;;;;;;;;;;;;;:27;8221:7;8202:27;;;;;;;;;;;;;;;:36;;;;8270:7;8254:32;;8263:5;8254:32;;;8279:6;8254:32;;;;;;:::i;:::-;;;;;;;;7959:335;;;:::o;8302:2313::-;8406:1;8390:18;;:4;:18;;;8382:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8483:1;8469:16;;:2;:16;;;8461:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8553:1;8544:6;:10;8536:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8611:17;8653:7;:5;:7::i;:::-;8645:15;;:4;:15;;;;:32;;;;;8670:7;:5;:7::i;:::-;8664:13;;:2;:13;;;;8645:32;8641:1618;;;8700:20;;;;;;;;;;;8696:338;;;8757:15;;;;;;;;;;;8743:30;;:2;:30;;;;:62;;;;;8791:13;;;;;;;;;;;8777:28;;:2;:28;;;;8743:62;8739:280;;;8876:12;8834:28;:39;8863:9;8834:39;;;;;;;;;;;;;;;;:54;8826:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8989:12;8947:28;:39;8976:9;8947:39;;;;;;;;;;;;;;;:54;;;;8739:280;8696:338;9062:13;;;;;;;;;;;9054:21;;:4;:21;;;:55;;;;;9093:15;;;;;;;;;;;9079:30;;:2;:30;;;;9054:55;:83;;;;;9115:18;:22;9134:2;9115:22;;;;;;;;;;;;;;;;;;;;;;;;;9113:24;9054:83;9050:422;;;9177:12;;9167:6;:22;;9159:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9272:14;;9262:6;9246:13;9256:2;9246:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9238:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9348:78;9422:3;9348:69;9370:15;;9360:9;;:25;9359:57;;9402:14;;9359:57;;;9387:14;;9359:57;9348:6;:10;;:69;;;;:::i;:::-;:73;;:78;;;;:::i;:::-;9336:90;;9445:9;;:11;;;;;;;;;:::i;:::-;;;;;;9050:422;9497:13;;;;;;;;;;;9491:19;;:2;:19;;;:43;;;;;9529:4;9514:20;;:4;:20;;;;9491:43;9488:255;;;9573:12;;9563:6;:22;;9555:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9646:81;9723:3;9646:72;9668:16;;9658:9;;:26;9657:60;;9702:15;;9657:60;;;9686:15;;9657:60;9646:6;:10;;:72;;;;:::i;:::-;:76;;:81;;;;:::i;:::-;9634:93;;9488:255;9759:28;9790:24;9808:4;9790:9;:24::i;:::-;9759:55;;9834:6;;;;;;;;;;;9833:7;:30;;;;;9850:13;;;;;;;;;;;9844:19;;:2;:19;;;9833:30;:45;;;;;9867:11;;;;;;;;;;;9833:45;:87;;;;;9903:17;;9882:20;:38;9833:87;:119;;;;;9934:18;;9924:9;;:28;9833:119;9829:419;;;9973:67;9990:49;9994:6;10001:37;10005:20;10026:11;;10001:3;:37::i;:::-;9990:3;:49::i;:::-;9973:16;:67::i;:::-;10059:26;10088:21;10059:50;;10152:1;10131:18;:22;10128:105;;;10178:35;10191:21;10178:12;:35::i;:::-;10128:105;9954:294;9829:419;8679:1580;8641:1618;10284:1;10274:9;:11;10271:161;;;10324:39;10353:9;10324;:24;10342:4;10324:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10299:9;:24;10317:4;10299:24;;;;;;;;;;;;;;;:64;;;;10404:4;10381:39;;10390:4;10381:39;;;10410:9;10381:39;;;;;;:::i;:::-;;;;;;;;10271:161;10458:27;10478:6;10458:9;:15;10468:4;10458:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10442:9;:15;10452:4;10442:15;;;;;;;;;;;;;;;:43;;;;10510:40;10528:21;10539:9;10528:6;:10;;:21;;;;:::i;:::-;10510:9;:13;10520:2;10510:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10496:9;:13;10506:2;10496:13;;;;;;;;;;;;;;;:54;;;;10581:2;10566:41;;10575:4;10566:41;;;10585:21;10596:9;10585:6;:10;;:21;;;;:::i;:::-;10566:41;;;;;;:::i;:::-;;;;;;;;8371:2244;8302:2313;;;:::o;1574:190::-;1660:7;1693:1;1688;:6;;1696:12;1680:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1720:9;1736:1;1732;:5;;;;:::i;:::-;1720:17;;1755:1;1748:8;;;1574:190;;;;;:::o;1772:246::-;1830:7;1859:1;1854;:6;1850:47;;1884:1;1877:8;;;;1850:47;1907:9;1923:1;1919;:5;;;;:::i;:::-;1907:17;;1952:1;1947;1943;:5;;;;:::i;:::-;:10;1935:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2009:1;2002:8;;;1772:246;;;;;:::o;2026:132::-;2084:7;2111:39;2115:1;2118;2111:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2104:46;;2026:132;;;;:::o;10625:98::-;10682:7;10709:1;10707;:3;10706:9;;10714:1;10706:9;;;10712:1;10706:9;10699:16;;10625:98;;;;:::o;10731:555::-;5666:4;5657:6;;:13;;;;;;;;;;;;;;;;;;10825:1:::1;10812:11;:14:::0;10809:27;10828:7:::1;10809:27;10850:11;;;;;;;;;;;10846:25:::0;10863:7:::1;10846:25;10881:21;10919:1;10905:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10881:40;;10950:4;10932;10937:1;10932:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10976:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10966:4;10971:1;10966:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11009:62;11026:4;11041:15;;;;;;;;;;;11059:11;11009:8;:62::i;:::-;11082:15;;;;;;;;;;;:66;;;11163:11;11189:1;11205:4;11232;11252:15;11082:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10798:488;5681:1;5702:5:::0;5693:6;;:14;;;;;;;;;;;;;;;;;;10731:555;:::o;11498:385::-;11555:17;11575:23;11594:3;11575:14;11586:2;11575:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11555:43;;11609:17;11629:51;11670:9;11629:36;11655:9;11629:21;11640:9;11629:6;:10;;:21;;;;:::i;:::-;:25;;:36;;;;:::i;:::-;:40;;:51;;;;:::i;:::-;11609:71;;11691:14;;;;;;;;;;;:23;;:34;11715:9;11691:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11736:18;;;;;;;;;;;:27;;:38;11764:9;11736:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11785:20;;;;;;;;;;;:29;;:40;11815:9;11785:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11836:19;;;;;;;;;;;:28;;:39;11865:9;11836:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11544:339;;11498:385;:::o;1243:179::-;1301:7;1321:9;1337:1;1333;:5;;;;:::i;:::-;1321:17;;1362:1;1357;:6;;1349:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1413:1;1406:8;;;1243:179;;;;:::o;1430:136::-;1488:7;1515:43;1519:1;1522;1515:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1508:50;;1430:136;;;;:::o;2166:189::-;2252:7;2284:1;2280;:5;2287:12;2272:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2311:9;2327:1;2323;:5;;;;:::i;:::-;2311:17;;2346:1;2339:8;;;2166:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:173::-;10555:25;10551:1;10543:6;10539:14;10532:49;10415:173;:::o;10594:366::-;10736:3;10757:67;10821:2;10816:3;10757:67;:::i;:::-;10750:74;;10833:93;10922:3;10833:93;:::i;:::-;10951:2;10946:3;10942:12;10935:19;;10594:366;;;:::o;10966:419::-;11132:4;11170:2;11159:9;11155:18;11147:26;;11219:9;11213:4;11209:20;11205:1;11194:9;11190:17;11183:47;11247:131;11373:4;11247:131;:::i;:::-;11239:139;;10966:419;;;:::o;11391:143::-;11448:5;11479:6;11473:13;11464:22;;11495:33;11522:5;11495:33;:::i;:::-;11391:143;;;;:::o;11540:351::-;11610:6;11659:2;11647:9;11638:7;11634:23;11630:32;11627:119;;;11665:79;;:::i;:::-;11627:119;11785:1;11810:64;11866:7;11857:6;11846:9;11842:22;11810:64;:::i;:::-;11800:74;;11756:128;11540:351;;;;:::o;11897:332::-;12018:4;12056:2;12045:9;12041:18;12033:26;;12069:71;12137:1;12126:9;12122:17;12113:6;12069:71;:::i;:::-;12150:72;12218:2;12207:9;12203:18;12194:6;12150:72;:::i;:::-;11897:332;;;;;:::o;12235:85::-;12280:7;12309:5;12298:16;;12235:85;;;:::o;12326:60::-;12354:3;12375:5;12368:12;;12326:60;;;:::o;12392:158::-;12450:9;12483:61;12501:42;12510:32;12536:5;12510:32;:::i;:::-;12501:42;:::i;:::-;12483:61;:::i;:::-;12470:74;;12392:158;;;:::o;12556:147::-;12651:45;12690:5;12651:45;:::i;:::-;12646:3;12639:58;12556:147;;:::o;12709:807::-;12958:4;12996:3;12985:9;12981:19;12973:27;;13010:71;13078:1;13067:9;13063:17;13054:6;13010:71;:::i;:::-;13091:72;13159:2;13148:9;13144:18;13135:6;13091:72;:::i;:::-;13173:80;13249:2;13238:9;13234:18;13225:6;13173:80;:::i;:::-;13263;13339:2;13328:9;13324:18;13315:6;13263:80;:::i;:::-;13353:73;13421:3;13410:9;13406:19;13397:6;13353:73;:::i;:::-;13436;13504:3;13493:9;13489:19;13480:6;13436:73;:::i;:::-;12709:807;;;;;;;;;:::o;13522:143::-;13579:5;13610:6;13604:13;13595:22;;13626:33;13653:5;13626:33;:::i;:::-;13522:143;;;;:::o;13671:663::-;13759:6;13767;13775;13824:2;13812:9;13803:7;13799:23;13795:32;13792:119;;;13830:79;;:::i;:::-;13792:119;13950:1;13975:64;14031:7;14022:6;14011:9;14007:22;13975:64;:::i;:::-;13965:74;;13921:128;14088:2;14114:64;14170:7;14161:6;14150:9;14146:22;14114:64;:::i;:::-;14104:74;;14059:129;14227:2;14253:64;14309:7;14300:6;14289:9;14285:22;14253:64;:::i;:::-;14243:74;;14198:129;13671:663;;;;;:::o;14340:332::-;14461:4;14499:2;14488:9;14484:18;14476:26;;14512:71;14580:1;14569:9;14565:17;14556:6;14512:71;:::i;:::-;14593:72;14661:2;14650:9;14646:18;14637:6;14593:72;:::i;:::-;14340:332;;;;;:::o;14678:116::-;14748:21;14763:5;14748:21;:::i;:::-;14741:5;14738:32;14728:60;;14784:1;14781;14774:12;14728:60;14678:116;:::o;14800:137::-;14854:5;14885:6;14879:13;14870:22;;14901:30;14925:5;14901:30;:::i;:::-;14800:137;;;;:::o;14943:345::-;15010:6;15059:2;15047:9;15038:7;15034:23;15030:32;15027:119;;;15065:79;;:::i;:::-;15027:119;15185:1;15210:61;15263:7;15254:6;15243:9;15239:22;15210:61;:::i;:::-;15200:71;;15156:125;14943:345;;;;:::o;15294:223::-;15434:34;15430:1;15422:6;15418:14;15411:58;15503:6;15498:2;15490:6;15486:15;15479:31;15294:223;:::o;15523:366::-;15665:3;15686:67;15750:2;15745:3;15686:67;:::i;:::-;15679:74;;15762:93;15851:3;15762:93;:::i;:::-;15880:2;15875:3;15871:12;15864:19;;15523:366;;;:::o;15895:419::-;16061:4;16099:2;16088:9;16084:18;16076:26;;16148:9;16142:4;16138:20;16134:1;16123:9;16119:17;16112:47;16176:131;16302:4;16176:131;:::i;:::-;16168:139;;15895:419;;;:::o;16320:221::-;16460:34;16456:1;16448:6;16444:14;16437:58;16529:4;16524:2;16516:6;16512:15;16505:29;16320:221;:::o;16547:366::-;16689:3;16710:67;16774:2;16769:3;16710:67;:::i;:::-;16703:74;;16786:93;16875:3;16786:93;:::i;:::-;16904:2;16899:3;16895:12;16888:19;;16547:366;;;:::o;16919:419::-;17085:4;17123:2;17112:9;17108:18;17100:26;;17172:9;17166:4;17162:20;17158:1;17147:9;17143:17;17136:47;17200:131;17326:4;17200:131;:::i;:::-;17192:139;;16919:419;;;:::o;17344:224::-;17484:34;17480:1;17472:6;17468:14;17461:58;17553:7;17548:2;17540:6;17536:15;17529:32;17344:224;:::o;17574:366::-;17716:3;17737:67;17801:2;17796:3;17737:67;:::i;:::-;17730:74;;17813:93;17902:3;17813:93;:::i;:::-;17931:2;17926:3;17922:12;17915:19;;17574:366;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;17946:419;;;:::o;18371:222::-;18511:34;18507:1;18499:6;18495:14;18488:58;18580:5;18575:2;18567:6;18563:15;18556:30;18371:222;:::o;18599:366::-;18741:3;18762:67;18826:2;18821:3;18762:67;:::i;:::-;18755:74;;18838:93;18927:3;18838:93;:::i;:::-;18956:2;18951:3;18947:12;18940:19;;18599:366;;;:::o;18971:419::-;19137:4;19175:2;19164:9;19160:18;19152:26;;19224:9;19218:4;19214:20;19210:1;19199:9;19195:17;19188:47;19252:131;19378:4;19252:131;:::i;:::-;19244:139;;18971:419;;;:::o;19396:228::-;19536:34;19532:1;19524:6;19520:14;19513:58;19605:11;19600:2;19592:6;19588:15;19581:36;19396:228;:::o;19630:366::-;19772:3;19793:67;19857:2;19852:3;19793:67;:::i;:::-;19786:74;;19869:93;19958:3;19869:93;:::i;:::-;19987:2;19982:3;19978:12;19971:19;;19630:366;;;:::o;20002:419::-;20168:4;20206:2;20195:9;20191:18;20183:26;;20255:9;20249:4;20245:20;20241:1;20230:9;20226:17;20219:47;20283:131;20409:4;20283:131;:::i;:::-;20275:139;;20002:419;;;:::o;20427:223::-;20567:34;20563:1;20555:6;20551:14;20544:58;20636:6;20631:2;20623:6;20619:15;20612:31;20427:223;:::o;20656:366::-;20798:3;20819:67;20883:2;20878:3;20819:67;:::i;:::-;20812:74;;20895:93;20984:3;20895:93;:::i;:::-;21013:2;21008:3;21004:12;20997:19;;20656:366;;;:::o;21028:419::-;21194:4;21232:2;21221:9;21217:18;21209:26;;21281:9;21275:4;21271:20;21267:1;21256:9;21252:17;21245:47;21309:131;21435:4;21309:131;:::i;:::-;21301:139;;21028:419;;;:::o;21453:175::-;21593:27;21589:1;21581:6;21577:14;21570:51;21453:175;:::o;21634:366::-;21776:3;21797:67;21861:2;21856:3;21797:67;:::i;:::-;21790:74;;21873:93;21962:3;21873:93;:::i;:::-;21991:2;21986:3;21982:12;21975:19;;21634:366;;;:::o;22006:419::-;22172:4;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22006:419;;;:::o;22431:191::-;22471:3;22490:20;22508:1;22490:20;:::i;:::-;22485:25;;22524:20;22542:1;22524:20;:::i;:::-;22519:25;;22567:1;22564;22560:9;22553:16;;22588:3;22585:1;22582:10;22579:36;;;22595:18;;:::i;:::-;22579:36;22431:191;;;;:::o;22628:176::-;22768:28;22764:1;22756:6;22752:14;22745:52;22628:176;:::o;22810:366::-;22952:3;22973:67;23037:2;23032:3;22973:67;:::i;:::-;22966:74;;23049:93;23138:3;23049:93;:::i;:::-;23167:2;23162:3;23158:12;23151:19;;22810:366;;;:::o;23182:419::-;23348:4;23386:2;23375:9;23371:18;23363:26;;23435:9;23429:4;23425:20;23421:1;23410:9;23406:17;23399:47;23463:131;23589:4;23463:131;:::i;:::-;23455:139;;23182:419;;;:::o;23607:233::-;23646:3;23669:24;23687:5;23669:24;:::i;:::-;23660:33;;23715:66;23708:5;23705:77;23702:103;;23785:18;;:::i;:::-;23702:103;23832:1;23825:5;23821:13;23814:20;;23607:233;;;:::o;23846:194::-;23886:4;23906:20;23924:1;23906:20;:::i;:::-;23901:25;;23940:20;23958:1;23940:20;:::i;:::-;23935:25;;23984:1;23981;23977:9;23969:17;;24008:1;24002:4;23999:11;23996:37;;;24013:18;;:::i;:::-;23996:37;23846:194;;;;:::o;24046:180::-;24094:77;24091:1;24084:88;24191:4;24188:1;24181:15;24215:4;24212:1;24205:15;24232:185;24272:1;24289:20;24307:1;24289:20;:::i;:::-;24284:25;;24323:20;24341:1;24323:20;:::i;:::-;24318:25;;24362:1;24352:35;;24367:18;;:::i;:::-;24352:35;24409:1;24406;24402:9;24397:14;;24232:185;;;;:::o;24423:220::-;24563:34;24559:1;24551:6;24547:14;24540:58;24632:3;24627:2;24619:6;24615:15;24608:28;24423:220;:::o;24649:366::-;24791:3;24812:67;24876:2;24871:3;24812:67;:::i;:::-;24805:74;;24888:93;24977:3;24888:93;:::i;:::-;25006:2;25001:3;24997:12;24990:19;;24649:366;;;:::o;25021:419::-;25187:4;25225:2;25214:9;25210:18;25202:26;;25274:9;25268:4;25264:20;25260:1;25249:9;25245:17;25238:47;25302:131;25428:4;25302:131;:::i;:::-;25294:139;;25021:419;;;:::o;25446:180::-;25494:77;25491:1;25484:88;25591:4;25588:1;25581:15;25615:4;25612:1;25605:15;25632:180;25680:77;25677:1;25670:88;25777:4;25774:1;25767:15;25801:4;25798:1;25791:15;25818:114;25885:6;25919:5;25913:12;25903:22;;25818:114;;;:::o;25938:184::-;26037:11;26071:6;26066:3;26059:19;26111:4;26106:3;26102:14;26087:29;;25938:184;;;;:::o;26128:132::-;26195:4;26218:3;26210:11;;26248:4;26243:3;26239:14;26231:22;;26128:132;;;:::o;26266:108::-;26343:24;26361:5;26343:24;:::i;:::-;26338:3;26331:37;26266:108;;:::o;26380:179::-;26449:10;26470:46;26512:3;26504:6;26470:46;:::i;:::-;26548:4;26543:3;26539:14;26525:28;;26380:179;;;;:::o;26565:113::-;26635:4;26667;26662:3;26658:14;26650:22;;26565:113;;;:::o;26714:732::-;26833:3;26862:54;26910:5;26862:54;:::i;:::-;26932:86;27011:6;27006:3;26932:86;:::i;:::-;26925:93;;27042:56;27092:5;27042:56;:::i;:::-;27121:7;27152:1;27137:284;27162:6;27159:1;27156:13;27137:284;;;27238:6;27232:13;27265:63;27324:3;27309:13;27265:63;:::i;:::-;27258:70;;27351:60;27404:6;27351:60;:::i;:::-;27341:70;;27197:224;27184:1;27181;27177:9;27172:14;;27137:284;;;27141:14;27437:3;27430:10;;26838:608;;;26714:732;;;;:::o;27452:831::-;27715:4;27753:3;27742:9;27738:19;27730:27;;27767:71;27835:1;27824:9;27820:17;27811:6;27767:71;:::i;:::-;27848:80;27924:2;27913:9;27909:18;27900:6;27848:80;:::i;:::-;27975:9;27969:4;27965:20;27960:2;27949:9;27945:18;27938:48;28003:108;28106:4;28097:6;28003:108;:::i;:::-;27995:116;;28121:72;28189:2;28178:9;28174:18;28165:6;28121:72;:::i;:::-;28203:73;28271:3;28260:9;28256:19;28247:6;28203:73;:::i;:::-;27452:831;;;;;;;;:::o;28289:177::-;28429:29;28425:1;28417:6;28413:14;28406:53;28289:177;:::o;28472:366::-;28614:3;28635:67;28699:2;28694:3;28635:67;:::i;:::-;28628:74;;28711:93;28800:3;28711:93;:::i;:::-;28829:2;28824:3;28820:12;28813:19;;28472:366;;;:::o;28844:419::-;29010:4;29048:2;29037:9;29033:18;29025:26;;29097:9;29091:4;29087:20;29083:1;29072:9;29068:17;29061:47;29125:131;29251:4;29125:131;:::i;:::-;29117:139;;28844:419;;;:::o

Swarm Source

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