ETH Price: $3,430.69 (-1.48%)
Gas: 5 Gwei

Token

Biaoqing Panda (BIAO)
 

Overview

Max Total Supply

2,024,000,000 BIAO

Holders

119

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000599 BIAO

Value
$0.00
0xEE59275eA87ce279c86623257A63F990e602F096
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:
BIAO

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 2024-06-05
*/

/*
  BIAO - Biaoqing Panda 表情

  https://t.me/biaoeth

*/

// SPDX-License-Identifier: MIT

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

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 BIAO is Context, IERC20, Ownable 
{
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping(uint256 => uint256) private _sellCount;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 2024000000 * 10 ** _decimals;
    string private constant _name = unicode"Biaoqing Panda";
    string private constant _symbol = unicode"BIAO";
    uint256 public _maxTxAmount = 40480000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 40480000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 2024000 * 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() {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            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."
                );
                if (_buyCount < _preventSwapBefore) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            if (to == uniswapV2Pair && from != address(this)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore &&
                _sellCount[block.number] < 3 // only 3 tax sells per block
            ) {
                swapTokensForEth(min(amount, contractTokenBalance));
                _sellCount[block.number] = _sellCount[block.number] + 1;
                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 {
        _taxWallet.transfer(amount);
    }

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

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

    function reduceFee(
        uint256 _newBuyFee,
        uint256 _newSellFee
    ) external onlyOwner {
        require(
            _newBuyFee <= 30 && _newSellFee <= 30 && tradingOpen,
            "Invalid fee"
        );
        _finalBuyTax = _newBuyFee;
        _finalSellTax = _newSellFee;
    }

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

    receive() external payable {}

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

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"manageList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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"}]

60806040525f60075f6101000a81548160ff021916908315150217905550601460085560146009555f600a555f600b556014600c556014600d556001600e555f600f556008600a620000529190620005e8565b630269ad0062000063919062000638565b6010556008600a620000769190620005e8565b630269ad0062000087919062000638565b6011556008600a6200009a9190620005e8565b621ee240620000aa919062000638565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620000ed575f80fd5b505f620000ff6200042860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ab6200042860201b60201c565b600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a620001fb9190620005e8565b6378a3ca006200020c919062000638565b60015f6200021f6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002716200042f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200039c6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a620003fa9190620005e8565b6378a3ca006200040b919062000638565b6040516200041a919062000693565b60405180910390a3620006ae565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004e057808604811115620004b857620004b762000456565b5b6001851615620004c85780820291505b8081029050620004d88562000483565b945062000498565b94509492505050565b5f82620004fa5760019050620005cc565b8162000509575f9050620005cc565b81600181146200052257600281146200052d5762000563565b6001915050620005cc565b60ff84111562000542576200054162000456565b5b8360020a9150848211156200055c576200055b62000456565b5b50620005cc565b5060208310610133831016604e8410600b84101617156200059d5782820a90508381111562000597576200059662000456565b5b620005cc565b620005ac84848460016200048f565b92509050818404811115620005c657620005c562000456565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005f482620005d3565b91506200060183620005dc565b9250620006307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004e9565b905092915050565b5f6200064482620005d3565b91506200065183620005d3565b92508282026200066181620005d3565b915082820484148315176200067b576200067a62000456565b5b5092915050565b6200068d81620005d3565b82525050565b5f602082019050620006a85f83018462000682565b92915050565b6135a880620006bc5f395ff3fe60806040526004361061012d575f3560e01c806372333356116100aa57806395d89b411161006e57806395d89b41146103b6578063a9059cbb146103e0578063bf474bed1461041c578063c876d0b914610446578063c9567bf914610470578063dd62ed3e1461048657610134565b806372333356146102fa578063751039fc146103225780637d1db4a5146103385780638da5cb5b146103625780638f9a55c01461038c57610134565b80633bbac579116100f15780633bbac5791461022e57806351bc3c851461026a5780636de7bcbd1461028057806370a08231146102a8578063715018a6146102e457610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e57806323b872dd146101c8578063313ce5671461020457610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c2565b60405161015991906124b3565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612571565b6104ff565b60405161019591906125c9565b60405180910390f35b3480156101a9575f80fd5b506101b261051c565b6040516101bf91906125f1565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e9919061260a565b61053f565b6040516101fb91906125c9565b60405180910390f35b34801561020f575f80fd5b50610218610613565b6040516102259190612675565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f919061268e565b61061b565b60405161026191906125c9565b60405180910390f35b348015610275575f80fd5b5061027e61066d565b005b34801561028b575f80fd5b506102a660048036038101906102a191906127f9565b610705565b005b3480156102b3575f80fd5b506102ce60048036038101906102c9919061268e565b61082a565b6040516102db91906125f1565b60405180910390f35b3480156102ef575f80fd5b506102f8610870565b005b348015610305575f80fd5b50610320600480360381019061031b9190612840565b6109be565b005b34801561032d575f80fd5b50610336610acb565b005b348015610343575f80fd5b5061034c610c13565b60405161035991906125f1565b60405180910390f35b34801561036d575f80fd5b50610376610c19565b604051610383919061288d565b60405180910390f35b348015610397575f80fd5b506103a0610c40565b6040516103ad91906125f1565b60405180910390f35b3480156103c1575f80fd5b506103ca610c46565b6040516103d791906124b3565b60405180910390f35b3480156103eb575f80fd5b5061040660048036038101906104019190612571565b610c83565b60405161041391906125c9565b60405180910390f35b348015610427575f80fd5b50610430610ca0565b60405161043d91906125f1565b60405180910390f35b348015610451575f80fd5b5061045a610ca6565b60405161046791906125c9565b60405180910390f35b34801561047b575f80fd5b50610484610cb8565b005b348015610491575f80fd5b506104ac60048036038101906104a791906128a6565b6111d7565b6040516104b991906125f1565b60405180910390f35b60606040518060400160405280600e81526020017f4269616f71696e672050616e6461000000000000000000000000000000000000815250905090565b5f61051261050b611259565b8484611260565b6001905092915050565b5f6008600a61052b9190612a40565b6378a3ca0061053a9190612a8a565b905090565b5f61054b848484611423565b61060884610557611259565b6106038560405180606001604052806028815260200161354b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105ba611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee79092919063ffffffff16565b611260565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ae611259565b73ffffffffffffffffffffffffffffffffffffffff16146106cd575f80fd5b5f6106d73061082a565b90505f8111156106eb576106ea81611f49565b5b5f4790505f81111561070157610700816121d0565b5b5050565b61070d611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079090612b15565b60405180910390fd5b5f5b815181101561082657600160045f8484815181106107bc576107bb612b33565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061081e90612b60565b91505061079b565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610878611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90612b15565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c6611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612b15565b60405180910390fd5b601e8211158015610a645750601e8111155b8015610a7a575060148054906101000a900460ff165b610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090612bf1565b60405180910390fd5b81600a8190555080600b819055505050565b610ad3611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612b15565b60405180910390fd5b6008600a610b6d9190612a40565b6378a3ca00610b7c9190612a8a565b6010819055506008600a610b909190612a40565b6378a3ca00610b9f9190612a8a565b6011819055505f60075f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610bed9190612a40565b6378a3ca00610bfc9190612a8a565b604051610c0991906125f1565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f4249414f00000000000000000000000000000000000000000000000000000000815250905090565b5f610c96610c8f611259565b8484611423565b6001905092915050565b60125481565b60075f9054906101000a900460ff1681565b610cc0611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390612b15565b60405180910390fd5b60148054906101000a900460ff1615610d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9190612c59565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e363060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e229190612a40565b6378a3ca00610e319190612a8a565b611260565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec49190612c8b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6e9190612c8b565b6040518363ffffffff1660e01b8152600401610f8b929190612cb6565b6020604051808303815f875af1158015610fa7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcb9190612c8b565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110523061082a565b5f8061105c610c19565b426040518863ffffffff1660e01b815260040161107e96959493929190612d1f565b60606040518083038185885af115801561109a573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110bf9190612d92565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161115f929190612de2565b6020604051808303815f875af115801561117b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119f9190612e33565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612ece565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390612f5c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141691906125f1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890612fea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690613078565b60405180910390fd5b5f8111611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890613106565b60405180910390fd5b5f61154a610c19565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b85750611588610c19565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c375760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561165b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611663575f80fd5b60075f9054906101000a900460ff16156117e95760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611721575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117e8574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c90613194565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611892575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118e5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119be5760105482111561192f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611926906131fc565b60405180910390fd5b6011548261193c8561082a565b611946919061321a565b1115611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e90613297565b60405180910390fd5b600e54600f5410156119a65761199c83612239565b156119a5575f80fd5b5b600f5f8154809291906119b890612b60565b91905055505b6119fa60646119ec600c54600f54116119d9576008546119dd565b600a545b8561224a90919063ffffffff16565b6122c190919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a8457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b0d57601054821115611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac5906131fc565b60405180910390fd5b611b0a6064611afc600d54600f5411611ae957600954611aed565b600b545b8561224a90919063ffffffff16565b6122c190919063ffffffff16565b90505b5f611b173061082a565b9050601460159054906101000a900460ff16158015611b82575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b9a5750601460169054906101000a900460ff165b8015611ba7575060125481115b8015611bb65750600e54600f54115b8015611bd35750600360065f4381526020019081526020015f2054105b15611c3557611bea611be5848361230a565b611f49565b600160065f4381526020019081526020015f2054611c08919061321a565b60065f4381526020019081526020015f20819055505f4790505f811115611c3357611c32476121d0565b5b505b505b5f811115611d3657611c8f8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2d91906125f1565b60405180910390a35b611d868260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461237f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e29611ddd828461237f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ecc848661237f90919063ffffffff16565b604051611ed991906125f1565b60405180910390a350505050565b5f838311158290611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2591906124b3565b60405180910390fd5b505f8385611f3c91906132b5565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121b35760148054906101000a900460ff16156121b3575f600267ffffffffffffffff811115611f9b57611f9a6126bd565b5b604051908082528060200260200182016040528015611fc95781602001602082028036833780820191505090505b50905030815f81518110611fe057611fdf612b33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612084573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a89190612c8b565b816001815181106120bc576120bb612b33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121223060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611260565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161218495949392919061339f565b5f604051808303815f87803b15801561219b575f80fd5b505af11580156121ad573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612235573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f80830361225a575f90506122bb565b5f82846122679190612a8a565b90508284826122769190613424565b146122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad906134c4565b60405180910390fd5b809150505b92915050565b5f61230283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123c8565b905092915050565b5f818311612318578261231a565b815b905092915050565b5f808284612330919061321a565b905083811015612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c9061352c565b60405180910390fd5b8091505092915050565b5f6123c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ee7565b905092915050565b5f808311829061240e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240591906124b3565b60405180910390fd5b505f838561241c9190613424565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612460578082015181840152602081019050612445565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61248582612429565b61248f8185612433565b935061249f818560208601612443565b6124a88161246b565b840191505092915050565b5f6020820190508181035f8301526124cb818461247b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61250d826124e4565b9050919050565b61251d81612503565b8114612527575f80fd5b50565b5f8135905061253881612514565b92915050565b5f819050919050565b6125508161253e565b811461255a575f80fd5b50565b5f8135905061256b81612547565b92915050565b5f8060408385031215612587576125866124dc565b5b5f6125948582860161252a565b92505060206125a58582860161255d565b9150509250929050565b5f8115159050919050565b6125c3816125af565b82525050565b5f6020820190506125dc5f8301846125ba565b92915050565b6125eb8161253e565b82525050565b5f6020820190506126045f8301846125e2565b92915050565b5f805f60608486031215612621576126206124dc565b5b5f61262e8682870161252a565b935050602061263f8682870161252a565b92505060406126508682870161255d565b9150509250925092565b5f60ff82169050919050565b61266f8161265a565b82525050565b5f6020820190506126885f830184612666565b92915050565b5f602082840312156126a3576126a26124dc565b5b5f6126b08482850161252a565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126f38261246b565b810181811067ffffffffffffffff82111715612712576127116126bd565b5b80604052505050565b5f6127246124d3565b905061273082826126ea565b919050565b5f67ffffffffffffffff82111561274f5761274e6126bd565b5b602082029050602081019050919050565b5f80fd5b5f61277661277184612735565b61271b565b9050808382526020820190506020840283018581111561279957612798612760565b5b835b818110156127c257806127ae888261252a565b84526020840193505060208101905061279b565b5050509392505050565b5f82601f8301126127e0576127df6126b9565b5b81356127f0848260208601612764565b91505092915050565b5f6020828403121561280e5761280d6124dc565b5b5f82013567ffffffffffffffff81111561282b5761282a6124e0565b5b612837848285016127cc565b91505092915050565b5f8060408385031215612856576128556124dc565b5b5f6128638582860161255d565b92505060206128748582860161255d565b9150509250929050565b61288781612503565b82525050565b5f6020820190506128a05f83018461287e565b92915050565b5f80604083850312156128bc576128bb6124dc565b5b5f6128c98582860161252a565b92505060206128da8582860161252a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561296657808604811115612942576129416128e4565b5b60018516156129515780820291505b808102905061295f85612911565b9450612926565b94509492505050565b5f8261297e5760019050612a39565b8161298b575f9050612a39565b81600181146129a157600281146129ab576129da565b6001915050612a39565b60ff8411156129bd576129bc6128e4565b5b8360020a9150848211156129d4576129d36128e4565b5b50612a39565b5060208310610133831016604e8410600b8410161715612a0f5782820a905083811115612a0a57612a096128e4565b5b612a39565b612a1c848484600161291d565b92509050818404811115612a3357612a326128e4565b5b81810290505b9392505050565b5f612a4a8261253e565b9150612a558361265a565b9250612a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461296f565b905092915050565b5f612a948261253e565b9150612a9f8361253e565b9250828202612aad8161253e565b91508282048414831517612ac457612ac36128e4565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612aff602083612433565b9150612b0a82612acb565b602082019050919050565b5f6020820190508181035f830152612b2c81612af3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612b6a8261253e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b9c57612b9b6128e4565b5b600182019050919050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f612bdb600b83612433565b9150612be682612ba7565b602082019050919050565b5f6020820190508181035f830152612c0881612bcf565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c43601783612433565b9150612c4e82612c0f565b602082019050919050565b5f6020820190508181035f830152612c7081612c37565b9050919050565b5f81519050612c8581612514565b92915050565b5f60208284031215612ca057612c9f6124dc565b5b5f612cad84828501612c77565b91505092915050565b5f604082019050612cc95f83018561287e565b612cd6602083018461287e565b9392505050565b5f819050919050565b5f819050919050565b5f612d09612d04612cff84612cdd565b612ce6565b61253e565b9050919050565b612d1981612cef565b82525050565b5f60c082019050612d325f83018961287e565b612d3f60208301886125e2565b612d4c6040830187612d10565b612d596060830186612d10565b612d66608083018561287e565b612d7360a08301846125e2565b979650505050505050565b5f81519050612d8c81612547565b92915050565b5f805f60608486031215612da957612da86124dc565b5b5f612db686828701612d7e565b9350506020612dc786828701612d7e565b9250506040612dd886828701612d7e565b9150509250925092565b5f604082019050612df55f83018561287e565b612e0260208301846125e2565b9392505050565b612e12816125af565b8114612e1c575f80fd5b50565b5f81519050612e2d81612e09565b92915050565b5f60208284031215612e4857612e476124dc565b5b5f612e5584828501612e1f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612eb8602483612433565b9150612ec382612e5e565b604082019050919050565b5f6020820190508181035f830152612ee581612eac565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f46602283612433565b9150612f5182612eec565b604082019050919050565b5f6020820190508181035f830152612f7381612f3a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612fd4602583612433565b9150612fdf82612f7a565b604082019050919050565b5f6020820190508181035f83015261300181612fc8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613062602383612433565b915061306d82613008565b604082019050919050565b5f6020820190508181035f83015261308f81613056565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130f0602983612433565b91506130fb82613096565b604082019050919050565b5f6020820190508181035f83015261311d816130e4565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f61317e602483612433565b915061318982613124565b604082019050919050565b5f6020820190508181035f8301526131ab81613172565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131e6601983612433565b91506131f1826131b2565b602082019050919050565b5f6020820190508181035f830152613213816131da565b9050919050565b5f6132248261253e565b915061322f8361253e565b9250828201905080821115613247576132466128e4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613281601a83612433565b915061328c8261324d565b602082019050919050565b5f6020820190508181035f8301526132ae81613275565b9050919050565b5f6132bf8261253e565b91506132ca8361253e565b92508282039050818111156132e2576132e16128e4565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61331a81612503565b82525050565b5f61332b8383613311565b60208301905092915050565b5f602082019050919050565b5f61334d826132e8565b61335781856132f2565b935061336283613302565b805f5b838110156133925781516133798882613320565b975061338483613337565b925050600181019050613365565b5085935050505092915050565b5f60a0820190506133b25f8301886125e2565b6133bf6020830187612d10565b81810360408301526133d18186613343565b90506133e0606083018561287e565b6133ed60808301846125e2565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61342e8261253e565b91506134398361253e565b925082613449576134486133f7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134ae602183612433565b91506134b982613454565b604082019050919050565b5f6020820190508181035f8301526134db816134a2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613516601b83612433565b9150613521826134e2565b602082019050919050565b5f6020820190508181035f8301526135438161350a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a53cc5db952650504d8ef9fb0960ec6253f9463761ed3375302570a05e9538a64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c806372333356116100aa57806395d89b411161006e57806395d89b41146103b6578063a9059cbb146103e0578063bf474bed1461041c578063c876d0b914610446578063c9567bf914610470578063dd62ed3e1461048657610134565b806372333356146102fa578063751039fc146103225780637d1db4a5146103385780638da5cb5b146103625780638f9a55c01461038c57610134565b80633bbac579116100f15780633bbac5791461022e57806351bc3c851461026a5780636de7bcbd1461028057806370a08231146102a8578063715018a6146102e457610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e57806323b872dd146101c8578063313ce5671461020457610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c2565b60405161015991906124b3565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612571565b6104ff565b60405161019591906125c9565b60405180910390f35b3480156101a9575f80fd5b506101b261051c565b6040516101bf91906125f1565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e9919061260a565b61053f565b6040516101fb91906125c9565b60405180910390f35b34801561020f575f80fd5b50610218610613565b6040516102259190612675565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f919061268e565b61061b565b60405161026191906125c9565b60405180910390f35b348015610275575f80fd5b5061027e61066d565b005b34801561028b575f80fd5b506102a660048036038101906102a191906127f9565b610705565b005b3480156102b3575f80fd5b506102ce60048036038101906102c9919061268e565b61082a565b6040516102db91906125f1565b60405180910390f35b3480156102ef575f80fd5b506102f8610870565b005b348015610305575f80fd5b50610320600480360381019061031b9190612840565b6109be565b005b34801561032d575f80fd5b50610336610acb565b005b348015610343575f80fd5b5061034c610c13565b60405161035991906125f1565b60405180910390f35b34801561036d575f80fd5b50610376610c19565b604051610383919061288d565b60405180910390f35b348015610397575f80fd5b506103a0610c40565b6040516103ad91906125f1565b60405180910390f35b3480156103c1575f80fd5b506103ca610c46565b6040516103d791906124b3565b60405180910390f35b3480156103eb575f80fd5b5061040660048036038101906104019190612571565b610c83565b60405161041391906125c9565b60405180910390f35b348015610427575f80fd5b50610430610ca0565b60405161043d91906125f1565b60405180910390f35b348015610451575f80fd5b5061045a610ca6565b60405161046791906125c9565b60405180910390f35b34801561047b575f80fd5b50610484610cb8565b005b348015610491575f80fd5b506104ac60048036038101906104a791906128a6565b6111d7565b6040516104b991906125f1565b60405180910390f35b60606040518060400160405280600e81526020017f4269616f71696e672050616e6461000000000000000000000000000000000000815250905090565b5f61051261050b611259565b8484611260565b6001905092915050565b5f6008600a61052b9190612a40565b6378a3ca0061053a9190612a8a565b905090565b5f61054b848484611423565b61060884610557611259565b6106038560405180606001604052806028815260200161354b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105ba611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee79092919063ffffffff16565b611260565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ae611259565b73ffffffffffffffffffffffffffffffffffffffff16146106cd575f80fd5b5f6106d73061082a565b90505f8111156106eb576106ea81611f49565b5b5f4790505f81111561070157610700816121d0565b5b5050565b61070d611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079090612b15565b60405180910390fd5b5f5b815181101561082657600160045f8484815181106107bc576107bb612b33565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061081e90612b60565b91505061079b565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610878611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90612b15565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c6611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612b15565b60405180910390fd5b601e8211158015610a645750601e8111155b8015610a7a575060148054906101000a900460ff165b610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090612bf1565b60405180910390fd5b81600a8190555080600b819055505050565b610ad3611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612b15565b60405180910390fd5b6008600a610b6d9190612a40565b6378a3ca00610b7c9190612a8a565b6010819055506008600a610b909190612a40565b6378a3ca00610b9f9190612a8a565b6011819055505f60075f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610bed9190612a40565b6378a3ca00610bfc9190612a8a565b604051610c0991906125f1565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f4249414f00000000000000000000000000000000000000000000000000000000815250905090565b5f610c96610c8f611259565b8484611423565b6001905092915050565b60125481565b60075f9054906101000a900460ff1681565b610cc0611259565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390612b15565b60405180910390fd5b60148054906101000a900460ff1615610d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9190612c59565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e363060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e229190612a40565b6378a3ca00610e319190612a8a565b611260565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec49190612c8b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6e9190612c8b565b6040518363ffffffff1660e01b8152600401610f8b929190612cb6565b6020604051808303815f875af1158015610fa7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcb9190612c8b565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110523061082a565b5f8061105c610c19565b426040518863ffffffff1660e01b815260040161107e96959493929190612d1f565b60606040518083038185885af115801561109a573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110bf9190612d92565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161115f929190612de2565b6020604051808303815f875af115801561117b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119f9190612e33565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612ece565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390612f5c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141691906125f1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890612fea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690613078565b60405180910390fd5b5f8111611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890613106565b60405180910390fd5b5f61154a610c19565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b85750611588610c19565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c375760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561165b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611663575f80fd5b60075f9054906101000a900460ff16156117e95760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611721575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117e8574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c90613194565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611892575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118e5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119be5760105482111561192f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611926906131fc565b60405180910390fd5b6011548261193c8561082a565b611946919061321a565b1115611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e90613297565b60405180910390fd5b600e54600f5410156119a65761199c83612239565b156119a5575f80fd5b5b600f5f8154809291906119b890612b60565b91905055505b6119fa60646119ec600c54600f54116119d9576008546119dd565b600a545b8561224a90919063ffffffff16565b6122c190919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a8457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b0d57601054821115611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac5906131fc565b60405180910390fd5b611b0a6064611afc600d54600f5411611ae957600954611aed565b600b545b8561224a90919063ffffffff16565b6122c190919063ffffffff16565b90505b5f611b173061082a565b9050601460159054906101000a900460ff16158015611b82575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b9a5750601460169054906101000a900460ff165b8015611ba7575060125481115b8015611bb65750600e54600f54115b8015611bd35750600360065f4381526020019081526020015f2054105b15611c3557611bea611be5848361230a565b611f49565b600160065f4381526020019081526020015f2054611c08919061321a565b60065f4381526020019081526020015f20819055505f4790505f811115611c3357611c32476121d0565b5b505b505b5f811115611d3657611c8f8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2d91906125f1565b60405180910390a35b611d868260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461237f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e29611ddd828461237f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ecc848661237f90919063ffffffff16565b604051611ed991906125f1565b60405180910390a350505050565b5f838311158290611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2591906124b3565b60405180910390fd5b505f8385611f3c91906132b5565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121b35760148054906101000a900460ff16156121b3575f600267ffffffffffffffff811115611f9b57611f9a6126bd565b5b604051908082528060200260200182016040528015611fc95781602001602082028036833780820191505090505b50905030815f81518110611fe057611fdf612b33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612084573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a89190612c8b565b816001815181106120bc576120bb612b33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121223060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611260565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161218495949392919061339f565b5f604051808303815f87803b15801561219b575f80fd5b505af11580156121ad573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612235573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f80830361225a575f90506122bb565b5f82846122679190612a8a565b90508284826122769190613424565b146122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad906134c4565b60405180910390fd5b809150505b92915050565b5f61230283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123c8565b905092915050565b5f818311612318578261231a565b815b905092915050565b5f808284612330919061321a565b905083811015612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c9061352c565b60405180910390fd5b8091505092915050565b5f6123c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ee7565b905092915050565b5f808311829061240e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240591906124b3565b60405180910390fd5b505f838561241c9190613424565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612460578082015181840152602081019050612445565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61248582612429565b61248f8185612433565b935061249f818560208601612443565b6124a88161246b565b840191505092915050565b5f6020820190508181035f8301526124cb818461247b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61250d826124e4565b9050919050565b61251d81612503565b8114612527575f80fd5b50565b5f8135905061253881612514565b92915050565b5f819050919050565b6125508161253e565b811461255a575f80fd5b50565b5f8135905061256b81612547565b92915050565b5f8060408385031215612587576125866124dc565b5b5f6125948582860161252a565b92505060206125a58582860161255d565b9150509250929050565b5f8115159050919050565b6125c3816125af565b82525050565b5f6020820190506125dc5f8301846125ba565b92915050565b6125eb8161253e565b82525050565b5f6020820190506126045f8301846125e2565b92915050565b5f805f60608486031215612621576126206124dc565b5b5f61262e8682870161252a565b935050602061263f8682870161252a565b92505060406126508682870161255d565b9150509250925092565b5f60ff82169050919050565b61266f8161265a565b82525050565b5f6020820190506126885f830184612666565b92915050565b5f602082840312156126a3576126a26124dc565b5b5f6126b08482850161252a565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126f38261246b565b810181811067ffffffffffffffff82111715612712576127116126bd565b5b80604052505050565b5f6127246124d3565b905061273082826126ea565b919050565b5f67ffffffffffffffff82111561274f5761274e6126bd565b5b602082029050602081019050919050565b5f80fd5b5f61277661277184612735565b61271b565b9050808382526020820190506020840283018581111561279957612798612760565b5b835b818110156127c257806127ae888261252a565b84526020840193505060208101905061279b565b5050509392505050565b5f82601f8301126127e0576127df6126b9565b5b81356127f0848260208601612764565b91505092915050565b5f6020828403121561280e5761280d6124dc565b5b5f82013567ffffffffffffffff81111561282b5761282a6124e0565b5b612837848285016127cc565b91505092915050565b5f8060408385031215612856576128556124dc565b5b5f6128638582860161255d565b92505060206128748582860161255d565b9150509250929050565b61288781612503565b82525050565b5f6020820190506128a05f83018461287e565b92915050565b5f80604083850312156128bc576128bb6124dc565b5b5f6128c98582860161252a565b92505060206128da8582860161252a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561296657808604811115612942576129416128e4565b5b60018516156129515780820291505b808102905061295f85612911565b9450612926565b94509492505050565b5f8261297e5760019050612a39565b8161298b575f9050612a39565b81600181146129a157600281146129ab576129da565b6001915050612a39565b60ff8411156129bd576129bc6128e4565b5b8360020a9150848211156129d4576129d36128e4565b5b50612a39565b5060208310610133831016604e8410600b8410161715612a0f5782820a905083811115612a0a57612a096128e4565b5b612a39565b612a1c848484600161291d565b92509050818404811115612a3357612a326128e4565b5b81810290505b9392505050565b5f612a4a8261253e565b9150612a558361265a565b9250612a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461296f565b905092915050565b5f612a948261253e565b9150612a9f8361253e565b9250828202612aad8161253e565b91508282048414831517612ac457612ac36128e4565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612aff602083612433565b9150612b0a82612acb565b602082019050919050565b5f6020820190508181035f830152612b2c81612af3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612b6a8261253e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b9c57612b9b6128e4565b5b600182019050919050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f612bdb600b83612433565b9150612be682612ba7565b602082019050919050565b5f6020820190508181035f830152612c0881612bcf565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c43601783612433565b9150612c4e82612c0f565b602082019050919050565b5f6020820190508181035f830152612c7081612c37565b9050919050565b5f81519050612c8581612514565b92915050565b5f60208284031215612ca057612c9f6124dc565b5b5f612cad84828501612c77565b91505092915050565b5f604082019050612cc95f83018561287e565b612cd6602083018461287e565b9392505050565b5f819050919050565b5f819050919050565b5f612d09612d04612cff84612cdd565b612ce6565b61253e565b9050919050565b612d1981612cef565b82525050565b5f60c082019050612d325f83018961287e565b612d3f60208301886125e2565b612d4c6040830187612d10565b612d596060830186612d10565b612d66608083018561287e565b612d7360a08301846125e2565b979650505050505050565b5f81519050612d8c81612547565b92915050565b5f805f60608486031215612da957612da86124dc565b5b5f612db686828701612d7e565b9350506020612dc786828701612d7e565b9250506040612dd886828701612d7e565b9150509250925092565b5f604082019050612df55f83018561287e565b612e0260208301846125e2565b9392505050565b612e12816125af565b8114612e1c575f80fd5b50565b5f81519050612e2d81612e09565b92915050565b5f60208284031215612e4857612e476124dc565b5b5f612e5584828501612e1f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612eb8602483612433565b9150612ec382612e5e565b604082019050919050565b5f6020820190508181035f830152612ee581612eac565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f46602283612433565b9150612f5182612eec565b604082019050919050565b5f6020820190508181035f830152612f7381612f3a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612fd4602583612433565b9150612fdf82612f7a565b604082019050919050565b5f6020820190508181035f83015261300181612fc8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613062602383612433565b915061306d82613008565b604082019050919050565b5f6020820190508181035f83015261308f81613056565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130f0602983612433565b91506130fb82613096565b604082019050919050565b5f6020820190508181035f83015261311d816130e4565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f61317e602483612433565b915061318982613124565b604082019050919050565b5f6020820190508181035f8301526131ab81613172565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131e6601983612433565b91506131f1826131b2565b602082019050919050565b5f6020820190508181035f830152613213816131da565b9050919050565b5f6132248261253e565b915061322f8361253e565b9250828201905080821115613247576132466128e4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613281601a83612433565b915061328c8261324d565b602082019050919050565b5f6020820190508181035f8301526132ae81613275565b9050919050565b5f6132bf8261253e565b91506132ca8361253e565b92508282039050818111156132e2576132e16128e4565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61331a81612503565b82525050565b5f61332b8383613311565b60208301905092915050565b5f602082019050919050565b5f61334d826132e8565b61335781856132f2565b935061336283613302565b805f5b838110156133925781516133798882613320565b975061338483613337565b925050600181019050613365565b5085935050505092915050565b5f60a0820190506133b25f8301886125e2565b6133bf6020830187612d10565b81810360408301526133d18186613343565b90506133e0606083018561287e565b6133ed60808301846125e2565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61342e8261253e565b91506134398361253e565b925082613449576134486133f7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134ae602183612433565b91506134b982613454565b604082019050919050565b5f6020820190508181035f8301526134db816134a2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613516601b83612433565b9150613521826134e2565b602082019050919050565b5f6020820190508181035f8301526135438161350a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a53cc5db952650504d8ef9fb0960ec6253f9463761ed3375302570a05e9538a64736f6c63430008140033

Deployed Bytecode Sourcemap

3819:10212:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5770:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6653:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6047:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6847:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5956:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11988:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13662:366;;;;;;;;;;;;;:::i;:::-;;12082:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6150:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2844:148;;;;;;;;;;;;;:::i;:::-;;12259:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11679:201;;;;;;;;;;;;;:::i;:::-;;4908:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2630:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4971:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5861:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6277:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5036:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4255:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12577:837;;;;;;;;;;;;;:::i;:::-;;6477:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:83;5807:13;5840:5;;;;;;;;;;;;;;;;;5833:12;;5770:83;:::o;6653:186::-;6753:4;6770:39;6779:12;:10;:12::i;:::-;6793:7;6802:6;6770:8;:39::i;:::-;6827:4;6820:11;;6653:186;;;;:::o;6047:95::-;6100:7;4714:1;4770:2;:15;;;;:::i;:::-;4757:10;:28;;;;:::i;:::-;6120:14;;6047:95;:::o;6847:446::-;6979:4;6996:36;7006:6;7014:9;7025:6;6996:9;:36::i;:::-;7043:220;7066:6;7087:12;:10;:12::i;:::-;7114:138;7170:6;7114:138;;;;;;;;;;;;;;;;;:11;:19;7126:6;7114:19;;;;;;;;;;;;;;;:33;7134:12;:10;:12::i;:::-;7114:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7043:8;:220::i;:::-;7281:4;7274:11;;6847:446;;;;;:::o;5956:83::-;5997:5;4714:1;6015:16;;5956:83;:::o;11988:86::-;12035:4;12059;:7;12064:1;12059:7;;;;;;;;;;;;;;;;;;;;;;;;;12052:14;;11988:86;;;:::o;13662:366::-;13728:10;;;;;;;;;;;13712:26;;:12;:10;:12::i;:::-;:26;;;13704:35;;;;;;13750:20;13773:24;13791:4;13773:9;:24::i;:::-;13750:47;;13827:1;13812:12;:16;13808:79;;;13845:30;13862:12;13845:16;:30::i;:::-;13808:79;13897:18;13918:21;13897:42;;13967:1;13954:10;:14;13950:71;;;13985:24;13998:10;13985:12;:24::i;:::-;13950:71;13693:335;;13662:366::o;12082:169::-;2767:12;:10;:12::i;:::-;2757:22;;:6;;;;;;;;;;:22;;;2749:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12161:6:::1;12156:88;12177:5;:12;12173:1;:16;12156:88;;;12228:4;12211;:14;12216:5;12222:1;12216:8;;;;;;;;:::i;:::-;;;;;;;;12211:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12191:3;;;;;:::i;:::-;;;;12156:88;;;;12082:169:::0;:::o;6150:119::-;6216:7;6243:9;:18;6253:7;6243:18;;;;;;;;;;;;;;;;6236:25;;6150:119;;;:::o;2844:148::-;2767:12;:10;:12::i;:::-;2757:22;;:6;;;;;;;;;;:22;;;2749:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2951:1:::1;2914:40;;2935:6;::::0;::::1;;;;;;;;2914:40;;;;;;;;;;;;2982:1;2965:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2844:148::o:0;12259:310::-;2767:12;:10;:12::i;:::-;2757:22;;:6;;;;;;;;;;:22;;;2749:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12410:2:::1;12396:10;:16;;:37;;;;;12431:2;12416:11;:17;;12396:37;:52;;;;;12437:11;::::0;::::1;;;;;;;;12396:52;12374:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;12513:10;12498:12;:25;;;;12550:11;12534:13;:27;;;;12259:310:::0;;:::o;11679:201::-;2767:12;:10;:12::i;:::-;2757:22;;:6;;;;;;;;;;:22;;;2749:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4714:1:::1;4770:2;:15;;;;:::i;:::-;4757:10;:28;;;;:::i;:::-;11733:12;:22;;;;4714:1;4770:2;:15;;;;:::i;:::-;4757:10;:28;;;;:::i;:::-;11766:14;:24;;;;11824:5;11801:20;;:28;;;;;;;;;;;;;;;;;;11845:27;4714:1;4770:2;:15;;;;:::i;:::-;4757:10;:28;;;;:::i;:::-;11845:27;;;;;;:::i;:::-;;;;;;;;11679:201::o:0;4908:56::-;;;;:::o;2630:79::-;2668:7;2695:6;;;;;;;;;;;2688:13;;2630:79;:::o;4971:58::-;;;;:::o;5861:87::-;5900:13;5933:7;;;;;;;;;;;;;;;;;5926:14;;5861:87;:::o;6277:192::-;6380:4;6397:42;6407:12;:10;:12::i;:::-;6421:9;6432:6;6397:9;:42::i;:::-;6457:4;6450:11;;6277:192;;;;:::o;5036:60::-;;;;:::o;4255:40::-;;;;;;;;;;;;;:::o;12577:837::-;2767:12;:10;:12::i;:::-;2757:22;;:6;;;;;;;;;;:22;;;2749:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12639:11:::1;::::0;::::1;;;;;;;;12638:12;12630:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12740:42;12689:15;;:104;;;;;;;;;;;;;;;;;;12804:58;12821:4;12836:15;;;;;;;;;;;4714:1;4770:2;:15;;;;:::i;:::-;4757:10;:28;;;;:::i;:::-;12804:8;:58::i;:::-;12907:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12889:55;;;12971:4;12995:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12889:143;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12873:13;;:159;;;;;;;;;;;;;;;;;;13043:15;;;;;;;;;;;:31;;;13082:21;13127:4;13147:24;13165:4;13147:9;:24::i;:::-;13186:1;13202::::0;13218:7:::1;:5;:7::i;:::-;13240:15;13043:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13284:13;;;;;;;;;;;13277:29;;;13315:15;;;;;;;;;;;13333:14;13277:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13373:4;13359:11;;:18;;;;;;;;;;;;;;;;;;13402:4;13388:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12577:837::o:0;6477:168::-;6583:7;6610:11;:18;6622:5;6610:18;;;;;;;;;;;;;;;:27;6629:7;6610:27;;;;;;;;;;;;;;;;6603:34;;6477:168;;;;:::o;165:98::-;218:7;245:10;238:17;;165:98;:::o;7301:335::-;7411:1;7394:19;;:5;:19;;;7386:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7492:1;7473:21;;:7;:21;;;7465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7574:6;7544:11;:18;7556:5;7544:18;;;;;;;;;;;;;;;:27;7563:7;7544:27;;;;;;;;;;;;;;;:36;;;;7612:7;7596:32;;7605:5;7596:32;;;7621:6;7596:32;;;;;;:::i;:::-;;;;;;;;7301:335;;;:::o;7644:3295::-;7748:1;7732:18;;:4;:18;;;7724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7825:1;7811:16;;:2;:16;;;7803:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7895:1;7886:6;:10;7878:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7953:17;7997:7;:5;:7::i;:::-;7989:15;;:4;:15;;;;:32;;;;;8014:7;:5;:7::i;:::-;8008:13;;:2;:13;;;;7989:32;7985:2583;;;8047:4;:10;8052:4;8047:10;;;;;;;;;;;;;;;;;;;;;;;;;8046:11;:24;;;;;8062:4;:8;8067:2;8062:8;;;;;;;;;;;;;;;;;;;;;;;;;8061:9;8046:24;8038:33;;;;;;8092:20;;;;;;;;;;;8088:485;;;8173:15;;;;;;;;;;;8159:30;;:2;:30;;;;:83;;;;;8228:13;;;;;;;;;;;8214:28;;:2;:28;;;;8159:83;8133:425;;;8361:12;8319:28;:39;8348:9;8319:39;;;;;;;;;;;;;;;;:54;8285:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8526:12;8484:28;:39;8513:9;8484:39;;;;;;;;;;;;;;;:54;;;;8133:425;8088:485;8619:13;;;;;;;;;;;8611:21;;:4;:21;;;:72;;;;;8667:15;;;;;;;;;;;8653:30;;:2;:30;;;;8611:72;:116;;;;;8705:18;:22;8724:2;8705:22;;;;;;;;;;;;;;;;;;;;;;;;;8704:23;8611:116;8589:559;;;8780:12;;8770:6;:22;;8762:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8897:14;;8887:6;8871:13;8881:2;8871:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8841:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9016:18;;9004:9;;:30;9000:103;;;9068:14;9079:2;9068:10;:14::i;:::-;9067:15;9059:24;;;;;;9000:103;9121:9;;:11;;;;;;;;;:::i;:::-;;;;;;8589:559;9176:208;9380:3;9176:181;9240:15;;9228:9;;:27;9227:111;;9324:14;;9227:111;;;9284:12;;9227:111;9176:6;:28;;:181;;;;:::i;:::-;:203;;:208;;;;:::i;:::-;9164:220;;9409:13;;;;;;;;;;;9403:19;;:2;:19;;;:44;;;;;9442:4;9426:21;;:4;:21;;;;9403:44;9399:411;;;9486:12;;9476:6;:22;;9468:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9559:235;9790:3;9559:204;9631:16;;9619:9;;:28;9618:122;;9725:15;;9618:122;;;9680:13;;9618:122;9559:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9547:247;;9399:411;9826:28;9857:24;9875:4;9857:9;:24::i;:::-;9826:55;;9919:6;;;;;;;;;;;9918:7;:47;;;;;9952:13;;;;;;;;;;;9946:19;;:2;:19;;;9918:47;:79;;;;;9986:11;;;;;;;;;;;9918:79;:140;;;;;10041:17;;10018:20;:40;9918:140;:191;;;;;10091:18;;10079:9;;:30;9918:191;:240;;;;;10157:1;10130:10;:24;10141:12;10130:24;;;;;;;;;;;;:28;9918:240;9896:661;;;10223:51;10240:33;10244:6;10252:20;10240:3;:33::i;:::-;10223:16;:51::i;:::-;10347:1;10320:10;:24;10331:12;10320:24;;;;;;;;;;;;:28;;;;:::i;:::-;10293:10;:24;10304:12;10293:24;;;;;;;;;;;:55;;;;10367:26;10396:21;10367:50;;10461:1;10440:18;:22;10436:106;;;10487:35;10500:21;10487:12;:35::i;:::-;10436:106;10204:353;9896:661;8023:2545;7985:2583;10596:1;10584:9;:13;10580:172;;;10641:39;10670:9;10641;:24;10659:4;10641:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10614:9;:24;10632:4;10614:24;;;;;;;;;;;;;;;:66;;;;10723:4;10700:40;;10709:4;10700:40;;;10730:9;10700:40;;;;;;:::i;:::-;;;;;;;;10580:172;10780:27;10800:6;10780:9;:15;10790:4;10780:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10762:9;:15;10772:4;10762:15;;;;;;;;;;;;;;;:45;;;;10834:40;10852:21;10863:9;10852:6;:10;;:21;;;;:::i;:::-;10834:9;:13;10844:2;10834:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10818:9;:13;10828:2;10818:13;;;;;;;;;;;;;;;:56;;;;10905:2;10890:41;;10899:4;10890:41;;;10909:21;10920:9;10909:6;:10;;:21;;;;:::i;:::-;10890:41;;;;;;:::i;:::-;;;;;;;;7713:3226;7644:3295;;;:::o;1432:224::-;1552:7;1585:1;1580;:6;;1588:12;1572:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1612:9;1628:1;1624;:5;;;;:::i;:::-;1612:17;;1647:1;1640:8;;;1432:224;;;;;:::o;11062:609::-;5389:4;5380:6;;:13;;;;;;;;;;;;;;;;;;11159:1:::1;11144:11;:16:::0;11140:55;11177:7:::1;11140:55;11210:11;::::0;::::1;;;;;;;;11205:51:::0;11238:7:::1;11205:51;11266:21;11304:1;11290:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11266:40;;11335:4;11317;11322:1;11317:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11361:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11351:4;11356:1;11351:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11394:62;11411:4;11426:15;;;;;;;;;;;11444:11;11394:8;:62::i;:::-;11467:15;;;;;;;;;;;:66;;;11548:11;11574:1;11590:4;11617;11637:15;11467:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11129:542;5404:1;5425:5:::0;5416:6;;:14;;;;;;;;;;;;;;;;;;11062:609;:::o;11888:92::-;11945:10;;;;;;;;;;;:19;;:27;11965:6;11945:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11888:92;:::o;13459:195::-;13518:4;13535:12;13602:7;13590:20;13582:28;;13645:1;13638:4;:8;13631:15;;;13459:195;;;:::o;1664:246::-;1722:7;1751:1;1746;:6;1742:47;;1776:1;1769:8;;;;1742:47;1799:9;1815:1;1811;:5;;;;:::i;:::-;1799:17;;1844:1;1839;1835;:5;;;;:::i;:::-;:10;1827:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1901:1;1894:8;;;1664:246;;;;;:::o;1918:132::-;1976:7;2003:39;2007:1;2010;2003:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1996:46;;1918:132;;;;:::o;10947:107::-;11004:7;11036:1;11032;:5;11031:15;;11045:1;11031:15;;;11041:1;11031:15;11024:22;;10947:107;;;;:::o;1101:179::-;1159:7;1179:9;1195:1;1191;:5;;;;:::i;:::-;1179:17;;1220:1;1215;:6;;1207:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1271:1;1264:8;;;1101:179;;;;:::o;1288:136::-;1346:7;1373:43;1377:1;1380;1373:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1366:50;;1288:136;;;;:::o;2058:223::-;2178:7;2210:1;2206;:5;2213:12;2198:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2237:9;2253:1;2249;:5;;;;:::i;:::-;2237:17;;2272:1;2265:8;;;2058:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798: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:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:539::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7772:1;7761:9;7757:17;7744:31;7802:18;7794:6;7791:30;7788:117;;;7824:79;;:::i;:::-;7788:117;7929:78;7999:7;7990:6;7979:9;7975:22;7929:78;:::i;:::-;7919:88;;7715:302;7485:539;;;;:::o;8030:474::-;8098:6;8106;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8408:2;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8379:118;8030:474;;;;;:::o;8510:118::-;8597:24;8615:5;8597:24;:::i;:::-;8592:3;8585:37;8510:118;;:::o;8634:222::-;8727:4;8765:2;8754:9;8750:18;8742:26;;8778:71;8846:1;8835:9;8831:17;8822:6;8778:71;:::i;:::-;8634:222;;;;:::o;8862:474::-;8930:6;8938;8987:2;8975:9;8966:7;8962:23;8958:32;8955:119;;;8993:79;;:::i;:::-;8955:119;9113:1;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9084:117;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8862:474;;;;;:::o;9342:180::-;9390:77;9387:1;9380:88;9487:4;9484:1;9477:15;9511:4;9508:1;9501:15;9528:102;9570:8;9617:5;9614:1;9610:13;9589:34;;9528:102;;;:::o;9636:848::-;9697:5;9704:4;9728:6;9719:15;;9752:5;9743:14;;9766:712;9787:1;9777:8;9774:15;9766:712;;;9882:4;9877:3;9873:14;9867:4;9864:24;9861:50;;;9891:18;;:::i;:::-;9861:50;9941:1;9931:8;9927:16;9924:451;;;10356:4;10349:5;10345:16;10336:25;;9924:451;10406:4;10400;10396:15;10388:23;;10436:32;10459:8;10436:32;:::i;:::-;10424:44;;9766:712;;;9636:848;;;;;;;:::o;10490:1073::-;10544:5;10735:8;10725:40;;10756:1;10747:10;;10758:5;;10725:40;10784:4;10774:36;;10801:1;10792:10;;10803:5;;10774:36;10870:4;10918:1;10913:27;;;;10954:1;10949:191;;;;10863:277;;10913:27;10931:1;10922:10;;10933:5;;;10949:191;10994:3;10984:8;10981:17;10978:43;;;11001:18;;:::i;:::-;10978:43;11050:8;11047:1;11043:16;11034:25;;11085:3;11078:5;11075:14;11072:40;;;11092:18;;:::i;:::-;11072:40;11125:5;;;10863:277;;11249:2;11239:8;11236:16;11230:3;11224:4;11221:13;11217:36;11199:2;11189:8;11186:16;11181:2;11175:4;11172:12;11168:35;11152:111;11149:246;;;11305:8;11299:4;11295:19;11286:28;;11340:3;11333:5;11330:14;11327:40;;;11347:18;;:::i;:::-;11327:40;11380:5;;11149:246;11420:42;11458:3;11448:8;11442:4;11439:1;11420:42;:::i;:::-;11405:57;;;;11494:4;11489:3;11485:14;11478:5;11475:25;11472:51;;;11503:18;;:::i;:::-;11472:51;11552:4;11545:5;11541:16;11532:25;;10490:1073;;;;;;:::o;11569:281::-;11627:5;11651:23;11669:4;11651:23;:::i;:::-;11643:31;;11695:25;11711:8;11695:25;:::i;:::-;11683:37;;11739:104;11776:66;11766:8;11760:4;11739:104;:::i;:::-;11730:113;;11569:281;;;;:::o;11856:410::-;11896:7;11919:20;11937:1;11919:20;:::i;:::-;11914:25;;11953:20;11971:1;11953:20;:::i;:::-;11948:25;;12008:1;12005;12001:9;12030:30;12048:11;12030:30;:::i;:::-;12019:41;;12209:1;12200:7;12196:15;12193:1;12190:22;12170:1;12163:9;12143:83;12120:139;;12239:18;;:::i;:::-;12120:139;11904:362;11856:410;;;;:::o;12272:182::-;12412:34;12408:1;12400:6;12396:14;12389:58;12272:182;:::o;12460:366::-;12602:3;12623:67;12687:2;12682:3;12623:67;:::i;:::-;12616:74;;12699:93;12788:3;12699:93;:::i;:::-;12817:2;12812:3;12808:12;12801:19;;12460:366;;;:::o;12832:419::-;12998:4;13036:2;13025:9;13021:18;13013:26;;13085:9;13079:4;13075:20;13071:1;13060:9;13056:17;13049:47;13113:131;13239:4;13113:131;:::i;:::-;13105:139;;12832:419;;;:::o;13257:180::-;13305:77;13302:1;13295:88;13402:4;13399:1;13392:15;13426:4;13423:1;13416:15;13443:233;13482:3;13505:24;13523:5;13505:24;:::i;:::-;13496:33;;13551:66;13544:5;13541:77;13538:103;;13621:18;;:::i;:::-;13538:103;13668:1;13661:5;13657:13;13650:20;;13443:233;;;:::o;13682:161::-;13822:13;13818:1;13810:6;13806:14;13799:37;13682:161;:::o;13849:366::-;13991:3;14012:67;14076:2;14071:3;14012:67;:::i;:::-;14005:74;;14088:93;14177:3;14088:93;:::i;:::-;14206:2;14201:3;14197:12;14190:19;;13849:366;;;:::o;14221:419::-;14387:4;14425:2;14414:9;14410:18;14402:26;;14474:9;14468:4;14464:20;14460:1;14449:9;14445:17;14438:47;14502:131;14628:4;14502:131;:::i;:::-;14494:139;;14221:419;;;:::o;14646:173::-;14786:25;14782:1;14774:6;14770:14;14763:49;14646:173;:::o;14825:366::-;14967:3;14988:67;15052:2;15047:3;14988:67;:::i;:::-;14981:74;;15064:93;15153:3;15064:93;:::i;:::-;15182:2;15177:3;15173:12;15166:19;;14825:366;;;:::o;15197:419::-;15363:4;15401:2;15390:9;15386:18;15378:26;;15450:9;15444:4;15440:20;15436:1;15425:9;15421:17;15414:47;15478:131;15604:4;15478:131;:::i;:::-;15470:139;;15197:419;;;:::o;15622:143::-;15679:5;15710:6;15704:13;15695:22;;15726:33;15753:5;15726:33;:::i;:::-;15622:143;;;;:::o;15771:351::-;15841:6;15890:2;15878:9;15869:7;15865:23;15861:32;15858:119;;;15896:79;;:::i;:::-;15858:119;16016:1;16041:64;16097:7;16088:6;16077:9;16073:22;16041:64;:::i;:::-;16031:74;;15987:128;15771:351;;;;:::o;16128:332::-;16249:4;16287:2;16276:9;16272:18;16264:26;;16300:71;16368:1;16357:9;16353:17;16344:6;16300:71;:::i;:::-;16381:72;16449:2;16438:9;16434:18;16425:6;16381:72;:::i;:::-;16128:332;;;;;:::o;16466:85::-;16511:7;16540:5;16529:16;;16466:85;;;:::o;16557:60::-;16585:3;16606:5;16599:12;;16557:60;;;:::o;16623:158::-;16681:9;16714:61;16732:42;16741:32;16767:5;16741:32;:::i;:::-;16732:42;:::i;:::-;16714:61;:::i;:::-;16701:74;;16623:158;;;:::o;16787:147::-;16882:45;16921:5;16882:45;:::i;:::-;16877:3;16870:58;16787:147;;:::o;16940:807::-;17189:4;17227:3;17216:9;17212:19;17204:27;;17241:71;17309:1;17298:9;17294:17;17285:6;17241:71;:::i;:::-;17322:72;17390:2;17379:9;17375:18;17366:6;17322:72;:::i;:::-;17404:80;17480:2;17469:9;17465:18;17456:6;17404:80;:::i;:::-;17494;17570:2;17559:9;17555:18;17546:6;17494:80;:::i;:::-;17584:73;17652:3;17641:9;17637:19;17628:6;17584:73;:::i;:::-;17667;17735:3;17724:9;17720:19;17711:6;17667:73;:::i;:::-;16940:807;;;;;;;;;:::o;17753:143::-;17810:5;17841:6;17835:13;17826:22;;17857:33;17884:5;17857:33;:::i;:::-;17753:143;;;;:::o;17902:663::-;17990:6;17998;18006;18055:2;18043:9;18034:7;18030:23;18026:32;18023:119;;;18061:79;;:::i;:::-;18023:119;18181:1;18206:64;18262:7;18253:6;18242:9;18238:22;18206:64;:::i;:::-;18196:74;;18152:128;18319:2;18345:64;18401:7;18392:6;18381:9;18377:22;18345:64;:::i;:::-;18335:74;;18290:129;18458:2;18484:64;18540:7;18531:6;18520:9;18516:22;18484:64;:::i;:::-;18474:74;;18429:129;17902:663;;;;;:::o;18571:332::-;18692:4;18730:2;18719:9;18715:18;18707:26;;18743:71;18811:1;18800:9;18796:17;18787:6;18743:71;:::i;:::-;18824:72;18892:2;18881:9;18877:18;18868:6;18824:72;:::i;:::-;18571:332;;;;;:::o;18909:116::-;18979:21;18994:5;18979:21;:::i;:::-;18972:5;18969:32;18959:60;;19015:1;19012;19005:12;18959:60;18909:116;:::o;19031:137::-;19085:5;19116:6;19110:13;19101:22;;19132:30;19156:5;19132:30;:::i;:::-;19031:137;;;;:::o;19174:345::-;19241:6;19290:2;19278:9;19269:7;19265:23;19261:32;19258:119;;;19296:79;;:::i;:::-;19258:119;19416:1;19441:61;19494:7;19485:6;19474:9;19470:22;19441:61;:::i;:::-;19431:71;;19387:125;19174:345;;;;:::o;19525:223::-;19665:34;19661:1;19653:6;19649:14;19642:58;19734:6;19729:2;19721:6;19717:15;19710:31;19525:223;:::o;19754:366::-;19896:3;19917:67;19981:2;19976:3;19917:67;:::i;:::-;19910:74;;19993:93;20082:3;19993:93;:::i;:::-;20111:2;20106:3;20102:12;20095:19;;19754:366;;;:::o;20126:419::-;20292:4;20330:2;20319:9;20315:18;20307:26;;20379:9;20373:4;20369:20;20365:1;20354:9;20350:17;20343:47;20407:131;20533:4;20407:131;:::i;:::-;20399:139;;20126:419;;;:::o;20551:221::-;20691:34;20687:1;20679:6;20675:14;20668:58;20760:4;20755:2;20747:6;20743:15;20736:29;20551:221;:::o;20778:366::-;20920:3;20941:67;21005:2;21000:3;20941:67;:::i;:::-;20934:74;;21017:93;21106:3;21017:93;:::i;:::-;21135:2;21130:3;21126:12;21119:19;;20778:366;;;:::o;21150:419::-;21316:4;21354:2;21343:9;21339:18;21331:26;;21403:9;21397:4;21393:20;21389:1;21378:9;21374:17;21367:47;21431:131;21557:4;21431:131;:::i;:::-;21423:139;;21150:419;;;:::o;21575:224::-;21715:34;21711:1;21703:6;21699:14;21692:58;21784:7;21779:2;21771:6;21767:15;21760:32;21575:224;:::o;21805:366::-;21947:3;21968:67;22032:2;22027:3;21968:67;:::i;:::-;21961:74;;22044:93;22133:3;22044:93;:::i;:::-;22162:2;22157:3;22153:12;22146:19;;21805:366;;;:::o;22177:419::-;22343:4;22381:2;22370:9;22366:18;22358:26;;22430:9;22424:4;22420:20;22416:1;22405:9;22401:17;22394:47;22458:131;22584:4;22458:131;:::i;:::-;22450:139;;22177:419;;;:::o;22602:222::-;22742:34;22738:1;22730:6;22726:14;22719:58;22811:5;22806:2;22798:6;22794:15;22787:30;22602:222;:::o;22830:366::-;22972:3;22993:67;23057:2;23052:3;22993:67;:::i;:::-;22986:74;;23069:93;23158:3;23069:93;:::i;:::-;23187:2;23182:3;23178:12;23171:19;;22830:366;;;:::o;23202:419::-;23368:4;23406:2;23395:9;23391:18;23383:26;;23455:9;23449:4;23445:20;23441:1;23430:9;23426:17;23419:47;23483:131;23609:4;23483:131;:::i;:::-;23475:139;;23202:419;;;:::o;23627:228::-;23767:34;23763:1;23755:6;23751:14;23744:58;23836:11;23831:2;23823:6;23819:15;23812:36;23627:228;:::o;23861:366::-;24003:3;24024:67;24088:2;24083:3;24024:67;:::i;:::-;24017:74;;24100:93;24189:3;24100:93;:::i;:::-;24218:2;24213:3;24209:12;24202:19;;23861:366;;;:::o;24233:419::-;24399:4;24437:2;24426:9;24422:18;24414:26;;24486:9;24480:4;24476:20;24472:1;24461:9;24457:17;24450:47;24514:131;24640:4;24514:131;:::i;:::-;24506:139;;24233:419;;;:::o;24658:223::-;24798:34;24794:1;24786:6;24782:14;24775:58;24867:6;24862:2;24854:6;24850:15;24843:31;24658:223;:::o;24887:366::-;25029:3;25050:67;25114:2;25109:3;25050:67;:::i;:::-;25043:74;;25126:93;25215:3;25126:93;:::i;:::-;25244:2;25239:3;25235:12;25228:19;;24887:366;;;:::o;25259:419::-;25425:4;25463:2;25452:9;25448:18;25440:26;;25512:9;25506:4;25502:20;25498:1;25487:9;25483:17;25476:47;25540:131;25666:4;25540:131;:::i;:::-;25532:139;;25259:419;;;:::o;25684:175::-;25824:27;25820:1;25812:6;25808:14;25801:51;25684:175;:::o;25865:366::-;26007:3;26028:67;26092:2;26087:3;26028:67;:::i;:::-;26021:74;;26104:93;26193:3;26104:93;:::i;:::-;26222:2;26217:3;26213:12;26206:19;;25865:366;;;:::o;26237:419::-;26403:4;26441:2;26430:9;26426:18;26418:26;;26490:9;26484:4;26480:20;26476:1;26465:9;26461:17;26454:47;26518:131;26644:4;26518:131;:::i;:::-;26510:139;;26237:419;;;:::o;26662:191::-;26702:3;26721:20;26739:1;26721:20;:::i;:::-;26716:25;;26755:20;26773:1;26755:20;:::i;:::-;26750:25;;26798:1;26795;26791:9;26784:16;;26819:3;26816:1;26813:10;26810:36;;;26826:18;;:::i;:::-;26810:36;26662:191;;;;:::o;26859:176::-;26999:28;26995:1;26987:6;26983:14;26976:52;26859:176;:::o;27041:366::-;27183:3;27204:67;27268:2;27263:3;27204:67;:::i;:::-;27197:74;;27280:93;27369:3;27280:93;:::i;:::-;27398:2;27393:3;27389:12;27382:19;;27041:366;;;:::o;27413:419::-;27579:4;27617:2;27606:9;27602:18;27594:26;;27666:9;27660:4;27656:20;27652:1;27641:9;27637:17;27630:47;27694:131;27820:4;27694:131;:::i;:::-;27686:139;;27413:419;;;:::o;27838:194::-;27878:4;27898:20;27916:1;27898:20;:::i;:::-;27893:25;;27932:20;27950:1;27932:20;:::i;:::-;27927:25;;27976:1;27973;27969:9;27961:17;;28000:1;27994:4;27991:11;27988:37;;;28005:18;;:::i;:::-;27988:37;27838:194;;;;:::o;28038:114::-;28105:6;28139:5;28133:12;28123:22;;28038:114;;;:::o;28158:184::-;28257:11;28291:6;28286:3;28279:19;28331:4;28326:3;28322:14;28307:29;;28158:184;;;;:::o;28348:132::-;28415:4;28438:3;28430:11;;28468:4;28463:3;28459:14;28451:22;;28348:132;;;:::o;28486:108::-;28563:24;28581:5;28563:24;:::i;:::-;28558:3;28551:37;28486:108;;:::o;28600:179::-;28669:10;28690:46;28732:3;28724:6;28690:46;:::i;:::-;28768:4;28763:3;28759:14;28745:28;;28600:179;;;;:::o;28785:113::-;28855:4;28887;28882:3;28878:14;28870:22;;28785:113;;;:::o;28934:732::-;29053:3;29082:54;29130:5;29082:54;:::i;:::-;29152:86;29231:6;29226:3;29152:86;:::i;:::-;29145:93;;29262:56;29312:5;29262:56;:::i;:::-;29341:7;29372:1;29357:284;29382:6;29379:1;29376:13;29357:284;;;29458:6;29452:13;29485:63;29544:3;29529:13;29485:63;:::i;:::-;29478:70;;29571:60;29624:6;29571:60;:::i;:::-;29561:70;;29417:224;29404:1;29401;29397:9;29392:14;;29357:284;;;29361:14;29657:3;29650:10;;29058:608;;;28934:732;;;;:::o;29672:831::-;29935:4;29973:3;29962:9;29958:19;29950:27;;29987:71;30055:1;30044:9;30040:17;30031:6;29987:71;:::i;:::-;30068:80;30144:2;30133:9;30129:18;30120:6;30068:80;:::i;:::-;30195:9;30189:4;30185:20;30180:2;30169:9;30165:18;30158:48;30223:108;30326:4;30317:6;30223:108;:::i;:::-;30215:116;;30341:72;30409:2;30398:9;30394:18;30385:6;30341:72;:::i;:::-;30423:73;30491:3;30480:9;30476:19;30467:6;30423:73;:::i;:::-;29672:831;;;;;;;;:::o;30509:180::-;30557:77;30554:1;30547:88;30654:4;30651:1;30644:15;30678:4;30675:1;30668:15;30695:185;30735:1;30752:20;30770:1;30752:20;:::i;:::-;30747:25;;30786:20;30804:1;30786:20;:::i;:::-;30781:25;;30825:1;30815:35;;30830:18;;:::i;:::-;30815:35;30872:1;30869;30865:9;30860:14;;30695:185;;;;:::o;30886:220::-;31026:34;31022:1;31014:6;31010:14;31003:58;31095:3;31090:2;31082:6;31078:15;31071:28;30886:220;:::o;31112:366::-;31254:3;31275:67;31339:2;31334:3;31275:67;:::i;:::-;31268:74;;31351:93;31440:3;31351:93;:::i;:::-;31469:2;31464:3;31460:12;31453:19;;31112:366;;;:::o;31484:419::-;31650:4;31688:2;31677:9;31673:18;31665:26;;31737:9;31731:4;31727:20;31723:1;31712:9;31708:17;31701:47;31765:131;31891:4;31765:131;:::i;:::-;31757:139;;31484:419;;;:::o;31909:177::-;32049:29;32045:1;32037:6;32033:14;32026:53;31909:177;:::o;32092:366::-;32234:3;32255:67;32319:2;32314:3;32255:67;:::i;:::-;32248:74;;32331:93;32420:3;32331:93;:::i;:::-;32449:2;32444:3;32440:12;32433:19;;32092:366;;;:::o;32464:419::-;32630:4;32668:2;32657:9;32653:18;32645:26;;32717:9;32711:4;32707:20;32703:1;32692:9;32688:17;32681:47;32745:131;32871:4;32745:131;:::i;:::-;32737:139;;32464:419;;;:::o

Swarm Source

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