ETH Price: $3,503.93 (+2.28%)
Gas: 3 Gwei

Token

Charles Montgomery Burns (CMB)
 

Overview

Max Total Supply

100,000,000 CMB

Holders

158

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,190,361.600807374594240834 CMB

Value
$0.00
0xe0974d6a1b930bf3029d08c324b0fea6d73f0297
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:
CMB

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// TG: https://t.me/CMB_portal
// Twitter: https://twitter.com/CMB_eth
// Website: https://cmbeth.com

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.9.0;

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 CMB is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) internal _isAdmin;

    address payable private _taxWallet;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 private _initialBuyTax = 50;
    uint256 private _initialSellTax = 99;
    uint256 public _finalTax = 5;

    uint256 private _blockAtLaunch;
    uint256 private _blockRemoveLimits = 10;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Charles Montgomery Burns";
    string private constant _symbol = unicode"CMB";
    uint256 public _maxWalletSize = (_tTotal * 50) / 10000; // 0.5% of total supply
    uint256 public _maxLittleWalletSize = (_tTotal * 20) / 10000; // 0.2% of total supply
    uint256 private swapThreshold = (_tTotal * 100) / 10000; // 1% of total supply

    IUniswapV2Router02 private router;
    address public pair;
    bool public tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(router.factory()).createPair(
            address(this),
            router.WETH()
        );

        _isAdmin[owner()] = true;

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

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

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

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

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

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

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

    // Launch limits functions

    /** @dev Remove wallet cap.
     * @notice Can only be called by the current owner.
     */
    function removeLimits() external onlyOwner {
        _maxWalletSize = _tTotal;
    }

    /** @dev Enable trading.
     * @notice Can only be called by the current owner.
     * @notice Can only be called once.
     */
    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        _blockAtLaunch = block.number;
    }

    // Transfer functions

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (msg.sender == pair) {
            return _transferFrom(msg.sender, recipient, amount);
        } else {
            return _basicTransfer(msg.sender, recipient, amount);
        }
    }

    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
    ) external override returns (bool) {
        require(
            _allowances[sender][_msgSender()] >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transferFrom(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );

        return true;
    }

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

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(
            _isExcludedFromFee[sender] ||
                _isExcludedFromFee[recipient] ||
                _isAdmin[sender] ||
                _isAdmin[recipient] ||
                tradingOpen,
            "Not authorized to trade yet"
        );

        uint256 blockSinceLaunch = block.number - _blockAtLaunch;
        uint256 _limit = _maxWalletSize;

        // Checks max transaction limit
        if (sender != owner() && recipient != owner() && recipient != DEAD) {
            if (recipient != pair) {
                if (blockSinceLaunch <= _blockRemoveLimits) {
                    _limit = _maxLittleWalletSize;
                } else if (
                    blockSinceLaunch > _blockRemoveLimits && _blockAtLaunch != 0
                ) {
                    _limit = _maxWalletSize;
                }
                require(
                    _isExcludedFromFee[recipient] ||
                        (_balances[recipient] + amount <= _limit),
                    "Transfer amount exceeds the MaxWallet size."
                );
            }
        }

        //shouldSwapBack
        if (shouldSwapBack() && recipient == pair) {
            swapBack();
        }

        _balances[sender] = _balances[sender] - amount;

        //Check if should Take Fee
        uint256 amountReceived = (!shouldTakeFee(sender) ||
            !shouldTakeFee(recipient))
            ? amount
            : takeFee(sender, recipient, amount);
        _balances[recipient] = _balances[recipient] + (amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + (amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !_isExcludedFromFee[sender];
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeAmount = 0;
        uint256 blockSinceLaunch = block.number - _blockAtLaunch;
        uint256 tax;

        if (blockSinceLaunch >= _blockRemoveLimits) {
            tax = _finalTax;
        } else {
            if (sender == pair && recipient != pair) {
                tax = _initialBuyTax;
            } else if (sender != pair && recipient == pair) {
                tax = _initialSellTax;
            }
        }

        feeAmount = (amount * tax) / 100;

        if (feeAmount > 0) {
            _balances[address(this)] += feeAmount;
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount - feeAmount;
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            balanceOf(address(this)) >= swapThreshold;
    }

    function swapBack() internal lockTheSwap {
        uint256 amountToSwap = swapThreshold;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), amountToSwap);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETHDev = address(this).balance;

        if (amountETHDev > 0) {
            bool tmpSuccess;
            (tmpSuccess, ) = payable(_taxWallet).call{
                value: amountETHDev,
                gas: 30000
            }("");
        }
    }

    // Threshold management functions

    /** @dev Set a new threshold to trigger swapBack.
     * @notice Can only be called by the current owner.
     */
    function setSwapThreshold(uint256 newTax) external onlyOwner {
        swapThreshold = newTax;
    }

    // Internal functions

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

    receive() external payable {}

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

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

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_finalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxLittleWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setSwapThreshold","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"}]

6080604052603260065560636007556005600855600a805561271060326012600a6200002c9190620008c4565b6305f5e1006200003d919062000914565b62000049919062000914565b6200005591906200098b565b600b5561271060146012600a6200006d9190620008c4565b6305f5e1006200007e919062000914565b6200008a919062000914565b6200009691906200098b565b600c5561271060646012600a620000ae9190620008c4565b6305f5e100620000bf919062000914565b620000cb919062000914565b620000d791906200098b565b600d555f600f60146101000a81548160ff0219169083151502179055505f600f60156101000a81548160ff0219169083151502179055505f600f60166101000a81548160ff02191690831515021790555034801562000134575f80fd5b505f620001466200070460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c7919062000a27565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000374919062000a27565b6040518363ffffffff1660e01b81526004016200039392919062000a68565b6020604051808303815f875af1158015620003b0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d6919062000a27565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f6200042a6200070b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004896200070460201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620004d89190620008c4565b6305f5e100620004e9919062000914565b60015f620004fc6200070460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200054e6200070b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006786200070460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620006d69190620008c4565b6305f5e100620006e7919062000914565b604051620006f6919062000aa4565b60405180910390a362000abf565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007bc5780860481111562000794576200079362000732565b5b6001851615620007a45780820291505b8081029050620007b4856200075f565b945062000774565b94509492505050565b5f82620007d65760019050620008a8565b81620007e5575f9050620008a8565b8160018114620007fe576002811462000809576200083f565b6001915050620008a8565b60ff8411156200081e576200081d62000732565b5b8360020a91508482111562000838576200083762000732565b5b50620008a8565b5060208310610133831016604e8410600b8410161715620008795782820a90508381111562000873576200087262000732565b5b620008a8565b6200088884848460016200076b565b92509050818404811115620008a257620008a162000732565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008d082620008af565b9150620008dd83620008b8565b92506200090c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007c5565b905092915050565b5f6200092082620008af565b91506200092d83620008af565b92508282026200093d81620008af565b9150828204841483151762000957576200095662000732565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200099782620008af565b9150620009a483620008af565b925082620009b757620009b66200095e565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009f182620009c6565b9050919050565b62000a0381620009e5565b811462000a0e575f80fd5b50565b5f8151905062000a2181620009f8565b92915050565b5f6020828403121562000a3f5762000a3e620009c2565b5b5f62000a4e8482850162000a11565b91505092915050565b62000a6281620009e5565b82525050565b5f60408201905062000a7d5f83018562000a57565b62000a8c602083018462000a57565b9392505050565b62000a9e81620008af565b82525050565b5f60208201905062000ab95f83018462000a93565b92915050565b6127678062000acd5f395ff3fe608060405260043610610117575f3560e01c80638da5cb5b1161009f578063a8aa1b3111610063578063a8aa1b311461037a578063a9059cbb146103a4578063c9567bf9146103e0578063dd62ed3e146103f6578063ffb54a99146104325761011e565b80638da5cb5b146102aa5780638f9a55c0146102d457806394dbb832146102fe57806395d89b41146103285780639d0014b1146103525761011e565b8063313ce567116100e6578063313ce567146101ee5780634e3e4f781461021857806370a0823114610242578063715018a61461027e578063751039fc146102945761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd1461018857806323b872dd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b6040516101439190611c62565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190611d13565b610499565b60405161017f9190611d6b565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a99190611d93565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d39190611dac565b6104d9565b6040516101e59190611d6b565b60405180910390f35b3480156101f9575f80fd5b5061020261064f565b60405161020f9190611e17565b60405180910390f35b348015610223575f80fd5b5061022c610657565b6040516102399190611d93565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190611e30565b61065d565b6040516102759190611d93565b60405180910390f35b348015610289575f80fd5b506102926106a3565b005b34801561029f575f80fd5b506102a86107f1565b005b3480156102b5575f80fd5b506102be6108aa565b6040516102cb9190611e6a565b60405180910390f35b3480156102df575f80fd5b506102e86108d1565b6040516102f59190611d93565b60405180910390f35b348015610309575f80fd5b506103126108d7565b60405161031f9190611d93565b60405180910390f35b348015610333575f80fd5b5061033c6108dd565b6040516103499190611c62565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190611e83565b61091a565b005b348015610385575f80fd5b5061038e6109b8565b60405161039b9190611e6a565b60405180910390f35b3480156103af575f80fd5b506103ca60048036038101906103c59190611d13565b6109dd565b6040516103d79190611d6b565b60405180910390f35b3480156103eb575f80fd5b506103f4610a58565b005b348015610401575f80fd5b5061041c60048036038101906104179190611eae565b610b7b565b6040516104299190611d93565b60405180910390f35b34801561043d575f80fd5b50610446610bfd565b6040516104539190611d6b565b60405180910390f35b60606040518060400160405280601881526020017f436861726c6573204d6f6e74676f6d657279204275726e730000000000000000815250905090565b5f6104ac6104a5610c10565b8484610c17565b6001905092915050565b5f6012600a6104c59190612048565b6305f5e1006104d49190612092565b905090565b5f8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610521610c10565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059390612143565b60405180910390fd5b6105a7848484610dda565b50610644846105b4610c10565b8460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105fb610c10565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461063f9190612161565b610c17565b600190509392505050565b5f6012905090565b600c5481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106ab610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072e906121de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f9610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906121de565b60405180910390fd5b6012600a6108939190612048565b6305f5e1006108a29190612092565b600b81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60085481565b60606040518060400160405280600381526020017f434d420000000000000000000000000000000000000000000000000000000000815250905090565b610922610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906121de565b60405180910390fd5b80600d8190555050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610a4457610a3d338484610dda565b9050610a52565b610a4f3384846113c7565b90505b92915050565b610a60610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae3906121de565b60405180910390fd5b600f60149054906101000a900460ff1615610b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3390612246565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff02191690831515021790555043600981905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f60149054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906122d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90612362565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dcd9190611d93565b60405180910390a3505050565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610e76575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610ec7575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610f18575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610f2f5750600f60149054906101000a900460ff165b610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f65906123ca565b60405180910390fd5b5f60095443610f7d9190612161565b90505f600b549050610f8d6108aa565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610ffb5750610fcb6108aa565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611035575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561119e57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461119d57600a5482116110a157600c5490506110c0565b600a54821180156110b457505f60095414155b156110bf57600b5490505b5b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061115d5750808460015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461115a91906123e8565b11155b61119c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111939061248b565b60405180910390fd5b5b5b6111a661154c565b80156111fe5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561120c5761120b6115ea565b5b8360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112559190612161565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6112a0876118fa565b15806112b257506112b0866118fa565b155b6112c6576112c187878761194d565b6112c8565b845b90508060015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461131391906123e8565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113b19190611d93565b60405180910390a3600193505050509392505050565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114119190612161565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461149b91906123e8565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115399190611d93565b60405180910390a3600190509392505050565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156115b75750600f60159054906101000a900460ff16155b80156115cf5750600f60169054906101000a900460ff165b80156115e55750600d546115e23061065d565b10155b905090565b6001600f60156101000a81548160ff0219169083151502179055505f600d5490505f600267ffffffffffffffff811115611627576116266124a9565b5b6040519080825280602002602001820160405280156116555781602001602082028036833780820191505090505b50905030815f8151811061166c5761166b6124d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611710573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117349190612517565b81600181518110611748576117476124d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117ae30600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c17565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161181095949392919061263b565b5f604051808303815f87803b158015611827575f80fd5b505af1158015611839573d5f803e3d5ffd5b505050505f4790505f8111156118db575f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611893906126c0565b5f60405180830381858888f193505050503d805f81146118ce576040519150601f19603f3d011682016040523d82523d5f602084013e6118d3565b606091505b505080915050505b5050505f600f60156101000a81548160ff021916908315150217905550565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f805f90505f600954436119619190612161565b90505f600a548210611977576008549050611ae5565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148015611a205750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611a2f576006549050611ae4565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015611ad85750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b15611ae35760075490505b5b5b60648186611af39190612092565b611afd9190612701565b92505f831115611bc0578260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b5391906123e8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bb79190611d93565b60405180910390a35b8285611bcc9190612161565b93505050509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c0f578082015181840152602081019050611bf4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c3482611bd8565b611c3e8185611be2565b9350611c4e818560208601611bf2565b611c5781611c1a565b840191505092915050565b5f6020820190508181035f830152611c7a8184611c2a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611caf82611c86565b9050919050565b611cbf81611ca5565b8114611cc9575f80fd5b50565b5f81359050611cda81611cb6565b92915050565b5f819050919050565b611cf281611ce0565b8114611cfc575f80fd5b50565b5f81359050611d0d81611ce9565b92915050565b5f8060408385031215611d2957611d28611c82565b5b5f611d3685828601611ccc565b9250506020611d4785828601611cff565b9150509250929050565b5f8115159050919050565b611d6581611d51565b82525050565b5f602082019050611d7e5f830184611d5c565b92915050565b611d8d81611ce0565b82525050565b5f602082019050611da65f830184611d84565b92915050565b5f805f60608486031215611dc357611dc2611c82565b5b5f611dd086828701611ccc565b9350506020611de186828701611ccc565b9250506040611df286828701611cff565b9150509250925092565b5f60ff82169050919050565b611e1181611dfc565b82525050565b5f602082019050611e2a5f830184611e08565b92915050565b5f60208284031215611e4557611e44611c82565b5b5f611e5284828501611ccc565b91505092915050565b611e6481611ca5565b82525050565b5f602082019050611e7d5f830184611e5b565b92915050565b5f60208284031215611e9857611e97611c82565b5b5f611ea584828501611cff565b91505092915050565b5f8060408385031215611ec457611ec3611c82565b5b5f611ed185828601611ccc565b9250506020611ee285828601611ccc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611f6e57808604811115611f4a57611f49611eec565b5b6001851615611f595780820291505b8081029050611f6785611f19565b9450611f2e565b94509492505050565b5f82611f865760019050612041565b81611f93575f9050612041565b8160018114611fa95760028114611fb357611fe2565b6001915050612041565b60ff841115611fc557611fc4611eec565b5b8360020a915084821115611fdc57611fdb611eec565b5b50612041565b5060208310610133831016604e8410600b84101617156120175782820a90508381111561201257612011611eec565b5b612041565b6120248484846001611f25565b9250905081840481111561203b5761203a611eec565b5b81810290505b9392505050565b5f61205282611ce0565b915061205d83611dfc565b925061208a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611f77565b905092915050565b5f61209c82611ce0565b91506120a783611ce0565b92508282026120b581611ce0565b915082820484148315176120cc576120cb611eec565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61212d602883611be2565b9150612138826120d3565b604082019050919050565b5f6020820190508181035f83015261215a81612121565b9050919050565b5f61216b82611ce0565b915061217683611ce0565b925082820390508181111561218e5761218d611eec565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6121c8602083611be2565b91506121d382612194565b602082019050919050565b5f6020820190508181035f8301526121f5816121bc565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612230601783611be2565b915061223b826121fc565b602082019050919050565b5f6020820190508181035f83015261225d81612224565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6122be602483611be2565b91506122c982612264565b604082019050919050565b5f6020820190508181035f8301526122eb816122b2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61234c602283611be2565b9150612357826122f2565b604082019050919050565b5f6020820190508181035f83015261237981612340565b9050919050565b7f4e6f7420617574686f72697a656420746f2074726164652079657400000000005f82015250565b5f6123b4601b83611be2565b91506123bf82612380565b602082019050919050565b5f6020820190508181035f8301526123e1816123a8565b9050919050565b5f6123f282611ce0565b91506123fd83611ce0565b925082820190508082111561241557612414611eec565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865204d6178575f8201527f616c6c65742073697a652e000000000000000000000000000000000000000000602082015250565b5f612475602b83611be2565b91506124808261241b565b604082019050919050565b5f6020820190508181035f8301526124a281612469565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061251181611cb6565b92915050565b5f6020828403121561252c5761252b611c82565b5b5f61253984828501612503565b91505092915050565b5f819050919050565b5f819050919050565b5f61256e61256961256484612542565b61254b565b611ce0565b9050919050565b61257e81612554565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6125b681611ca5565b82525050565b5f6125c783836125ad565b60208301905092915050565b5f602082019050919050565b5f6125e982612584565b6125f3818561258e565b93506125fe8361259e565b805f5b8381101561262e57815161261588826125bc565b9750612620836125d3565b925050600181019050612601565b5085935050505092915050565b5f60a08201905061264e5f830188611d84565b61265b6020830187612575565b818103604083015261266d81866125df565b905061267c6060830185611e5b565b6126896080830184611d84565b9695505050505050565b5f81905092915050565b50565b5f6126ab5f83612693565b91506126b68261269d565b5f82019050919050565b5f6126ca826126a0565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61270b82611ce0565b915061271683611ce0565b925082612726576127256126d4565b5b82820490509291505056fea2646970667358221220742db1a99130e174720f07d6244fc60d443c89cb90c0353bab3836dedd0c2ccf64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610117575f3560e01c80638da5cb5b1161009f578063a8aa1b3111610063578063a8aa1b311461037a578063a9059cbb146103a4578063c9567bf9146103e0578063dd62ed3e146103f6578063ffb54a99146104325761011e565b80638da5cb5b146102aa5780638f9a55c0146102d457806394dbb832146102fe57806395d89b41146103285780639d0014b1146103525761011e565b8063313ce567116100e6578063313ce567146101ee5780634e3e4f781461021857806370a0823114610242578063715018a61461027e578063751039fc146102945761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd1461018857806323b872dd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b6040516101439190611c62565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190611d13565b610499565b60405161017f9190611d6b565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a99190611d93565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d39190611dac565b6104d9565b6040516101e59190611d6b565b60405180910390f35b3480156101f9575f80fd5b5061020261064f565b60405161020f9190611e17565b60405180910390f35b348015610223575f80fd5b5061022c610657565b6040516102399190611d93565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190611e30565b61065d565b6040516102759190611d93565b60405180910390f35b348015610289575f80fd5b506102926106a3565b005b34801561029f575f80fd5b506102a86107f1565b005b3480156102b5575f80fd5b506102be6108aa565b6040516102cb9190611e6a565b60405180910390f35b3480156102df575f80fd5b506102e86108d1565b6040516102f59190611d93565b60405180910390f35b348015610309575f80fd5b506103126108d7565b60405161031f9190611d93565b60405180910390f35b348015610333575f80fd5b5061033c6108dd565b6040516103499190611c62565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190611e83565b61091a565b005b348015610385575f80fd5b5061038e6109b8565b60405161039b9190611e6a565b60405180910390f35b3480156103af575f80fd5b506103ca60048036038101906103c59190611d13565b6109dd565b6040516103d79190611d6b565b60405180910390f35b3480156103eb575f80fd5b506103f4610a58565b005b348015610401575f80fd5b5061041c60048036038101906104179190611eae565b610b7b565b6040516104299190611d93565b60405180910390f35b34801561043d575f80fd5b50610446610bfd565b6040516104539190611d6b565b60405180910390f35b60606040518060400160405280601881526020017f436861726c6573204d6f6e74676f6d657279204275726e730000000000000000815250905090565b5f6104ac6104a5610c10565b8484610c17565b6001905092915050565b5f6012600a6104c59190612048565b6305f5e1006104d49190612092565b905090565b5f8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610521610c10565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059390612143565b60405180910390fd5b6105a7848484610dda565b50610644846105b4610c10565b8460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105fb610c10565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461063f9190612161565b610c17565b600190509392505050565b5f6012905090565b600c5481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106ab610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072e906121de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f9610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906121de565b60405180910390fd5b6012600a6108939190612048565b6305f5e1006108a29190612092565b600b81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60085481565b60606040518060400160405280600381526020017f434d420000000000000000000000000000000000000000000000000000000000815250905090565b610922610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906121de565b60405180910390fd5b80600d8190555050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610a4457610a3d338484610dda565b9050610a52565b610a4f3384846113c7565b90505b92915050565b610a60610c10565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae3906121de565b60405180910390fd5b600f60149054906101000a900460ff1615610b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3390612246565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff02191690831515021790555043600981905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f60149054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906122d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90612362565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dcd9190611d93565b60405180910390a3505050565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610e76575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610ec7575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610f18575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610f2f5750600f60149054906101000a900460ff165b610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f65906123ca565b60405180910390fd5b5f60095443610f7d9190612161565b90505f600b549050610f8d6108aa565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610ffb5750610fcb6108aa565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611035575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561119e57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461119d57600a5482116110a157600c5490506110c0565b600a54821180156110b457505f60095414155b156110bf57600b5490505b5b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061115d5750808460015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461115a91906123e8565b11155b61119c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111939061248b565b60405180910390fd5b5b5b6111a661154c565b80156111fe5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561120c5761120b6115ea565b5b8360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112559190612161565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6112a0876118fa565b15806112b257506112b0866118fa565b155b6112c6576112c187878761194d565b6112c8565b845b90508060015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461131391906123e8565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113b19190611d93565b60405180910390a3600193505050509392505050565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114119190612161565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461149b91906123e8565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115399190611d93565b60405180910390a3600190509392505050565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156115b75750600f60159054906101000a900460ff16155b80156115cf5750600f60169054906101000a900460ff165b80156115e55750600d546115e23061065d565b10155b905090565b6001600f60156101000a81548160ff0219169083151502179055505f600d5490505f600267ffffffffffffffff811115611627576116266124a9565b5b6040519080825280602002602001820160405280156116555781602001602082028036833780820191505090505b50905030815f8151811061166c5761166b6124d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611710573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117349190612517565b81600181518110611748576117476124d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117ae30600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c17565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161181095949392919061263b565b5f604051808303815f87803b158015611827575f80fd5b505af1158015611839573d5f803e3d5ffd5b505050505f4790505f8111156118db575f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611893906126c0565b5f60405180830381858888f193505050503d805f81146118ce576040519150601f19603f3d011682016040523d82523d5f602084013e6118d3565b606091505b505080915050505b5050505f600f60156101000a81548160ff021916908315150217905550565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f805f90505f600954436119619190612161565b90505f600a548210611977576008549050611ae5565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148015611a205750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611a2f576006549050611ae4565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015611ad85750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b15611ae35760075490505b5b5b60648186611af39190612092565b611afd9190612701565b92505f831115611bc0578260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b5391906123e8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bb79190611d93565b60405180910390a35b8285611bcc9190612161565b93505050509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c0f578082015181840152602081019050611bf4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c3482611bd8565b611c3e8185611be2565b9350611c4e818560208601611bf2565b611c5781611c1a565b840191505092915050565b5f6020820190508181035f830152611c7a8184611c2a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611caf82611c86565b9050919050565b611cbf81611ca5565b8114611cc9575f80fd5b50565b5f81359050611cda81611cb6565b92915050565b5f819050919050565b611cf281611ce0565b8114611cfc575f80fd5b50565b5f81359050611d0d81611ce9565b92915050565b5f8060408385031215611d2957611d28611c82565b5b5f611d3685828601611ccc565b9250506020611d4785828601611cff565b9150509250929050565b5f8115159050919050565b611d6581611d51565b82525050565b5f602082019050611d7e5f830184611d5c565b92915050565b611d8d81611ce0565b82525050565b5f602082019050611da65f830184611d84565b92915050565b5f805f60608486031215611dc357611dc2611c82565b5b5f611dd086828701611ccc565b9350506020611de186828701611ccc565b9250506040611df286828701611cff565b9150509250925092565b5f60ff82169050919050565b611e1181611dfc565b82525050565b5f602082019050611e2a5f830184611e08565b92915050565b5f60208284031215611e4557611e44611c82565b5b5f611e5284828501611ccc565b91505092915050565b611e6481611ca5565b82525050565b5f602082019050611e7d5f830184611e5b565b92915050565b5f60208284031215611e9857611e97611c82565b5b5f611ea584828501611cff565b91505092915050565b5f8060408385031215611ec457611ec3611c82565b5b5f611ed185828601611ccc565b9250506020611ee285828601611ccc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611f6e57808604811115611f4a57611f49611eec565b5b6001851615611f595780820291505b8081029050611f6785611f19565b9450611f2e565b94509492505050565b5f82611f865760019050612041565b81611f93575f9050612041565b8160018114611fa95760028114611fb357611fe2565b6001915050612041565b60ff841115611fc557611fc4611eec565b5b8360020a915084821115611fdc57611fdb611eec565b5b50612041565b5060208310610133831016604e8410600b84101617156120175782820a90508381111561201257612011611eec565b5b612041565b6120248484846001611f25565b9250905081840481111561203b5761203a611eec565b5b81810290505b9392505050565b5f61205282611ce0565b915061205d83611dfc565b925061208a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611f77565b905092915050565b5f61209c82611ce0565b91506120a783611ce0565b92508282026120b581611ce0565b915082820484148315176120cc576120cb611eec565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61212d602883611be2565b9150612138826120d3565b604082019050919050565b5f6020820190508181035f83015261215a81612121565b9050919050565b5f61216b82611ce0565b915061217683611ce0565b925082820390508181111561218e5761218d611eec565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6121c8602083611be2565b91506121d382612194565b602082019050919050565b5f6020820190508181035f8301526121f5816121bc565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612230601783611be2565b915061223b826121fc565b602082019050919050565b5f6020820190508181035f83015261225d81612224565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6122be602483611be2565b91506122c982612264565b604082019050919050565b5f6020820190508181035f8301526122eb816122b2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61234c602283611be2565b9150612357826122f2565b604082019050919050565b5f6020820190508181035f83015261237981612340565b9050919050565b7f4e6f7420617574686f72697a656420746f2074726164652079657400000000005f82015250565b5f6123b4601b83611be2565b91506123bf82612380565b602082019050919050565b5f6020820190508181035f8301526123e1816123a8565b9050919050565b5f6123f282611ce0565b91506123fd83611ce0565b925082820190508082111561241557612414611eec565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865204d6178575f8201527f616c6c65742073697a652e000000000000000000000000000000000000000000602082015250565b5f612475602b83611be2565b91506124808261241b565b604082019050919050565b5f6020820190508181035f8301526124a281612469565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061251181611cb6565b92915050565b5f6020828403121561252c5761252b611c82565b5b5f61253984828501612503565b91505092915050565b5f819050919050565b5f819050919050565b5f61256e61256961256484612542565b61254b565b611ce0565b9050919050565b61257e81612554565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6125b681611ca5565b82525050565b5f6125c783836125ad565b60208301905092915050565b5f602082019050919050565b5f6125e982612584565b6125f3818561258e565b93506125fe8361259e565b805f5b8381101561262e57815161261588826125bc565b9750612620836125d3565b925050600181019050612601565b5085935050505092915050565b5f60a08201905061264e5f830188611d84565b61265b6020830187612575565b818103604083015261266d81866125df565b905061267c6060830185611e5b565b6126896080830184611d84565b9695505050505050565b5f81905092915050565b50565b5f6126ab5f83612693565b91506126b68261269d565b5f82019050919050565b5f6126ca826126a0565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61270b82611ce0565b915061271683611ce0565b925082612726576127256126d4565b5b82820490509291505056fea2646970667358221220742db1a99130e174720f07d6244fc60d443c89cb90c0353bab3836dedd0c2ccf64736f6c63430008140033

Deployed Bytecode Sourcemap

3864:9533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5870:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7485:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6147:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7679:502;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6056:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4838:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6250:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:148;;;;;;;;;;;;;:::i;:::-;;6510:86;;;;;;;;;;;;;:::i;:::-;;2675:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4753:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4391:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5961:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12808:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5055:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6985:316;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6741:207;;;;;;;;;;;;;:::i;:::-;;7309:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5081:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5870:83;5907:13;5940:5;;;;;;;;;;;;;;;;;5933:12;;5870:83;:::o;7485:186::-;7585:4;7602:39;7611:12;:10;:12::i;:::-;7625:7;7634:6;7602:8;:39::i;:::-;7659:4;7652:11;;7485:186;;;;:::o;6147:95::-;6200:7;4548:2;4606;:15;;;;:::i;:::-;4592:11;:29;;;;:::i;:::-;6220:14;;6147:95;:::o;7679:502::-;7813:4;7889:6;7852:11;:19;7864:6;7852:19;;;;;;;;;;;;;;;:33;7872:12;:10;:12::i;:::-;7852:33;;;;;;;;;;;;;;;;:43;;7830:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;7974:40;7988:6;7996:9;8007:6;7974:13;:40::i;:::-;;8025:124;8048:6;8069:12;:10;:12::i;:::-;8132:6;8096:11;:19;8108:6;8096:19;;;;;;;;;;;;;;;:33;8116:12;:10;:12::i;:::-;8096:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;8025:8;:124::i;:::-;8169:4;8162:11;;7679:502;;;;;:::o;6056:83::-;6097:5;4548:2;6115:16;;6056:83;:::o;4838:60::-;;;;:::o;6250:119::-;6316:7;6343:9;:18;6353:7;6343:18;;;;;;;;;;;;;;;;6336:25;;6250:119;;;:::o;2889:148::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2996:1:::1;2959:40;;2980:6;::::0;::::1;;;;;;;;2959:40;;;;;;;;;;;;3027:1;3010:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2889:148::o:0;6510:86::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4548:2:::1;4606;:15;;;;:::i;:::-;4592:11;:29;;;;:::i;:::-;6564:14;:24;;;;6510:86::o:0;2675:79::-;2713:7;2740:6;;;;;;;;;;;2733:13;;2675:79;:::o;4753:54::-;;;;:::o;4391:28::-;;;;:::o;5961:87::-;6000:13;6033:7;;;;;;;;;;;;;;;;;6026:14;;5961:87;:::o;12808:102::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12896:6:::1;12880:13;:22;;;;12808:102:::0;:::o;5055:19::-;;;;;;;;;;;;;:::o;6985:316::-;7090:4;7125;;;;;;;;;;;7111:18;;:10;:18;;;7107:187;;7153:44;7167:10;7179:9;7190:6;7153:13;:44::i;:::-;7146:51;;;;7107:187;7237:45;7252:10;7264:9;7275:6;7237:14;:45::i;:::-;7230:52;;6985:316;;;;;:::o;6741:207::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6803:11:::1;;;;;;;;;;;6802:12;6794:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6867:4;6853:11;;:18;;;;;;;;;;;;;;;;;;6896:4;6882:11;;:18;;;;;;;;;;;;;;;;;;6928:12;6911:14;:29;;;;6741:207::o:0;7309:168::-;7415:7;7442:11;:18;7454:5;7442:18;;;;;;;;;;;;;;;:27;7461:7;7442:27;;;;;;;;;;;;;;;;7435:34;;7309:168;;;;:::o;5081:31::-;;;;;;;;;;;;;:::o;210:98::-;263:7;290:10;283:17;;210:98;:::o;8189:335::-;8299:1;8282:19;;:5;:19;;;8274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8380:1;8361:21;;:7;:21;;;8353:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8462:6;8432:11;:18;8444:5;8432:18;;;;;;;;;;;;;;;:27;8451:7;8432:27;;;;;;;;;;;;;;;:36;;;;8500:7;8484:32;;8493:5;8484:32;;;8509:6;8484:32;;;;;;:::i;:::-;;;;;;;;8189:335;;;:::o;8532:1804::-;8658:4;8697:18;:26;8716:6;8697:26;;;;;;;;;;;;;;;;;;;;;;;;;:76;;;;8744:18;:29;8763:9;8744:29;;;;;;;;;;;;;;;;;;;;;;;;;8697:76;:113;;;;8794:8;:16;8803:6;8794:16;;;;;;;;;;;;;;;;;;;;;;;;;8697:113;:153;;;;8831:8;:19;8840:9;8831:19;;;;;;;;;;;;;;;;;;;;;;;;;8697:153;:185;;;;8871:11;;;;;;;;;;;8697:185;8675:262;;;;;;;;;;;;:::i;:::-;;;;;;;;;8950:24;8992:14;;8977:12;:29;;;;:::i;:::-;8950:56;;9017:14;9034;;9017:31;;9116:7;:5;:7::i;:::-;9106:17;;:6;:17;;;;:41;;;;;9140:7;:5;:7::i;:::-;9127:20;;:9;:20;;;;9106:41;:62;;;;;4255:42;9151:17;;:9;:17;;;;9106:62;9102:680;;;9202:4;;;;;;;;;;;9189:17;;:9;:17;;;9185:586;;9251:18;;9231:16;:38;9227:294;;9303:20;;9294:29;;9227:294;;;9394:18;;9375:16;:37;:60;;;;;9434:1;9416:14;;:19;;9375:60;9349:172;;;9487:14;;9478:23;;9349:172;9227:294;9569:18;:29;9588:9;9569:29;;;;;;;;;;;;;;;;;;;;;;;;;:99;;;;9661:6;9651;9628:9;:20;9638:9;9628:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:39;;9569:99;9539:216;;;;;;;;;;;;:::i;:::-;;;;;;;;;9185:586;9102:680;9824:16;:14;:16::i;:::-;:37;;;;;9857:4;;;;;;;;;;;9844:17;;:9;:17;;;9824:37;9820:80;;;9878:10;:8;:10::i;:::-;9820:80;9952:6;9932:9;:17;9942:6;9932:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9912:9;:17;9922:6;9912:17;;;;;;;;;;;;;;;:46;;;;10007:22;10034:21;10048:6;10034:13;:21::i;:::-;10033:22;:64;;;;10073:24;10087:9;10073:13;:24::i;:::-;10072:25;10033:64;10032:138;;10136:34;10144:6;10152:9;10163:6;10136:7;:34::i;:::-;10032:138;;;10114:6;10032:138;10007:163;;10228:14;10204:9;:20;10214:9;10204:20;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;10181:9;:20;10191:9;10181:20;;;;;;;;;;;;;;;:62;;;;10278:9;10261:43;;10270:6;10261:43;;;10289:14;10261:43;;;;;;:::i;:::-;;;;;;;;10324:4;10317:11;;;;;8532:1804;;;;;:::o;10344:336::-;10471:4;10528:6;10508:9;:17;10518:6;10508:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10488:9;:17;10498:6;10488:17;;;;;;;;;;;;;;;:46;;;;10592:6;10568:9;:20;10578:9;10568:20;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;10545:9;:20;10555:9;10545:20;;;;;;;;;;;;;;;:54;;;;10632:9;10615:35;;10624:6;10615:35;;;10643:6;10615:35;;;;;;:::i;:::-;;;;;;;;10668:4;10661:11;;10344:336;;;;;:::o;11652:222::-;11701:4;11752;;;;;;;;;;;11738:18;;:10;:18;;;;:42;;;;;11774:6;;;;;;;;;;;11773:7;11738:42;:70;;;;;11797:11;;;;;;;;;;;11738:70;:128;;;;;11853:13;;11825:24;11843:4;11825:9;:24::i;:::-;:41;;11738:128;11718:148;;11652:222;:::o;11882:756::-;5237:4;5228:6;;:13;;;;;;;;;;;;;;;;;;11934:20:::1;11957:13;;11934:36;;11983:21;12021:1;12007:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11983:40;;12052:4;12034;12039:1;12034:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12078:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12068:4;12073:1;12068:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12102:54;12119:4;12134:6;;;;;;;;;;;12143:12;12102:8;:54::i;:::-;12167:6;;;;;;;;;;;:57;;;12239:12;12266:1;12282:4;12309;12329:15;12167:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12368:20;12391:21;12368:44;;12444:1;12429:12;:16;12425:206;;;12462:15;12517:10;;;;;;;;;;;12509:24;;12559:12;12595:5;12509:110;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12492:127;;;;;12447:184;12425:206;11923:715;;;5273:5:::0;5264:6;;:14;;;;;;;;;;;;;;;;;;11882:756::o;10688:121::-;10750:4;10775:18;:26;10794:6;10775:26;;;;;;;;;;;;;;;;;;;;;;;;;10774:27;10767:34;;10688:121;;;:::o;10817:827::-;10937:7;10957:17;10977:1;10957:21;;10989:24;11031:14;;11016:12;:29;;;;:::i;:::-;10989:56;;11056:11;11104:18;;11084:16;:38;11080:317;;11145:9;;11139:15;;11080:317;;;11201:4;;;;;;;;;;;11191:14;;:6;:14;;;:35;;;;;11222:4;;;;;;;;;;;11209:17;;:9;:17;;;;11191:35;11187:199;;;11253:14;;11247:20;;11187:199;;;11303:4;;;;;;;;;;;11293:14;;:6;:14;;;;:35;;;;;11324:4;;;;;;;;;;;11311:17;;:9;:17;;;11293:35;11289:97;;;11355:15;;11349:21;;11289:97;11187:199;11080:317;11438:3;11431;11422:6;:12;;;;:::i;:::-;11421:20;;;;:::i;:::-;11409:32;;11470:1;11458:9;:13;11454:145;;;11516:9;11488;:24;11506:4;11488:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11570:4;11545:42;;11554:6;11545:42;;;11577:9;11545:42;;;;;;:::i;:::-;;;;;;;;11454:145;11627:9;11618:6;:18;;;;:::i;:::-;11611:25;;;;;10817:827;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:227::-;9425:34;9421:1;9413:6;9409:14;9402:58;9494:10;9489:2;9481:6;9477:15;9470:35;9285:227;:::o;9518:366::-;9660:3;9681:67;9745:2;9740:3;9681:67;:::i;:::-;9674:74;;9757:93;9846:3;9757:93;:::i;:::-;9875:2;9870:3;9866:12;9859:19;;9518:366;;;:::o;9890:419::-;10056:4;10094:2;10083:9;10079:18;10071:26;;10143:9;10137:4;10133:20;10129:1;10118:9;10114:17;10107:47;10171:131;10297:4;10171:131;:::i;:::-;10163:139;;9890:419;;;:::o;10315:194::-;10355:4;10375:20;10393:1;10375:20;:::i;:::-;10370:25;;10409:20;10427:1;10409:20;:::i;:::-;10404:25;;10453:1;10450;10446:9;10438:17;;10477:1;10471:4;10468:11;10465:37;;;10482:18;;:::i;:::-;10465:37;10315:194;;;;:::o;10515:182::-;10655:34;10651:1;10643:6;10639:14;10632:58;10515:182;:::o;10703:366::-;10845:3;10866:67;10930:2;10925:3;10866:67;:::i;:::-;10859:74;;10942:93;11031:3;10942:93;:::i;:::-;11060:2;11055:3;11051:12;11044:19;;10703:366;;;:::o;11075:419::-;11241:4;11279:2;11268:9;11264:18;11256:26;;11328:9;11322:4;11318:20;11314:1;11303:9;11299:17;11292:47;11356:131;11482:4;11356:131;:::i;:::-;11348:139;;11075:419;;;:::o;11500:173::-;11640:25;11636:1;11628:6;11624:14;11617:49;11500:173;:::o;11679:366::-;11821:3;11842:67;11906:2;11901:3;11842:67;:::i;:::-;11835:74;;11918:93;12007:3;11918:93;:::i;:::-;12036:2;12031:3;12027:12;12020:19;;11679:366;;;:::o;12051:419::-;12217:4;12255:2;12244:9;12240:18;12232:26;;12304:9;12298:4;12294:20;12290:1;12279:9;12275:17;12268:47;12332:131;12458:4;12332:131;:::i;:::-;12324:139;;12051:419;;;:::o;12476:223::-;12616:34;12612:1;12604:6;12600:14;12593:58;12685:6;12680:2;12672:6;12668:15;12661:31;12476:223;:::o;12705:366::-;12847:3;12868:67;12932:2;12927:3;12868:67;:::i;:::-;12861:74;;12944:93;13033:3;12944:93;:::i;:::-;13062:2;13057:3;13053:12;13046:19;;12705:366;;;:::o;13077:419::-;13243:4;13281:2;13270:9;13266:18;13258:26;;13330:9;13324:4;13320:20;13316:1;13305:9;13301:17;13294:47;13358:131;13484:4;13358:131;:::i;:::-;13350:139;;13077:419;;;:::o;13502:221::-;13642:34;13638:1;13630:6;13626:14;13619:58;13711:4;13706:2;13698:6;13694:15;13687:29;13502:221;:::o;13729:366::-;13871:3;13892:67;13956:2;13951:3;13892:67;:::i;:::-;13885:74;;13968:93;14057:3;13968:93;:::i;:::-;14086:2;14081:3;14077:12;14070:19;;13729:366;;;:::o;14101:419::-;14267:4;14305:2;14294:9;14290:18;14282:26;;14354:9;14348:4;14344:20;14340:1;14329:9;14325:17;14318:47;14382:131;14508:4;14382:131;:::i;:::-;14374:139;;14101:419;;;:::o;14526:177::-;14666:29;14662:1;14654:6;14650:14;14643:53;14526:177;:::o;14709:366::-;14851:3;14872:67;14936:2;14931:3;14872:67;:::i;:::-;14865:74;;14948:93;15037:3;14948:93;:::i;:::-;15066:2;15061:3;15057:12;15050:19;;14709:366;;;:::o;15081:419::-;15247:4;15285:2;15274:9;15270:18;15262:26;;15334:9;15328:4;15324:20;15320:1;15309:9;15305:17;15298:47;15362:131;15488:4;15362:131;:::i;:::-;15354:139;;15081:419;;;:::o;15506:191::-;15546:3;15565:20;15583:1;15565:20;:::i;:::-;15560:25;;15599:20;15617:1;15599:20;:::i;:::-;15594:25;;15642:1;15639;15635:9;15628:16;;15663:3;15660:1;15657:10;15654:36;;;15670:18;;:::i;:::-;15654:36;15506:191;;;;:::o;15703:230::-;15843:34;15839:1;15831:6;15827:14;15820:58;15912:13;15907:2;15899:6;15895:15;15888:38;15703:230;:::o;15939:366::-;16081:3;16102:67;16166:2;16161:3;16102:67;:::i;:::-;16095:74;;16178:93;16267:3;16178:93;:::i;:::-;16296:2;16291:3;16287:12;16280:19;;15939:366;;;:::o;16311:419::-;16477:4;16515:2;16504:9;16500:18;16492:26;;16564:9;16558:4;16554:20;16550:1;16539:9;16535:17;16528:47;16592:131;16718:4;16592:131;:::i;:::-;16584:139;;16311:419;;;:::o;16736:180::-;16784:77;16781:1;16774:88;16881:4;16878:1;16871:15;16905:4;16902:1;16895:15;16922:180;16970:77;16967:1;16960:88;17067:4;17064:1;17057:15;17091:4;17088:1;17081:15;17108:143;17165:5;17196:6;17190:13;17181:22;;17212:33;17239:5;17212:33;:::i;:::-;17108:143;;;;:::o;17257:351::-;17327:6;17376:2;17364:9;17355:7;17351:23;17347:32;17344:119;;;17382:79;;:::i;:::-;17344:119;17502:1;17527:64;17583:7;17574:6;17563:9;17559:22;17527:64;:::i;:::-;17517:74;;17473:128;17257:351;;;;:::o;17614:85::-;17659:7;17688:5;17677:16;;17614:85;;;:::o;17705:60::-;17733:3;17754:5;17747:12;;17705:60;;;:::o;17771:158::-;17829:9;17862:61;17880:42;17889:32;17915:5;17889:32;:::i;:::-;17880:42;:::i;:::-;17862:61;:::i;:::-;17849:74;;17771:158;;;:::o;17935:147::-;18030:45;18069:5;18030:45;:::i;:::-;18025:3;18018:58;17935:147;;:::o;18088:114::-;18155:6;18189:5;18183:12;18173:22;;18088:114;;;:::o;18208:184::-;18307:11;18341:6;18336:3;18329:19;18381:4;18376:3;18372:14;18357:29;;18208:184;;;;:::o;18398:132::-;18465:4;18488:3;18480:11;;18518:4;18513:3;18509:14;18501:22;;18398:132;;;:::o;18536:108::-;18613:24;18631:5;18613:24;:::i;:::-;18608:3;18601:37;18536:108;;:::o;18650:179::-;18719:10;18740:46;18782:3;18774:6;18740:46;:::i;:::-;18818:4;18813:3;18809:14;18795:28;;18650:179;;;;:::o;18835:113::-;18905:4;18937;18932:3;18928:14;18920:22;;18835:113;;;:::o;18984:732::-;19103:3;19132:54;19180:5;19132:54;:::i;:::-;19202:86;19281:6;19276:3;19202:86;:::i;:::-;19195:93;;19312:56;19362:5;19312:56;:::i;:::-;19391:7;19422:1;19407:284;19432:6;19429:1;19426:13;19407:284;;;19508:6;19502:13;19535:63;19594:3;19579:13;19535:63;:::i;:::-;19528:70;;19621:60;19674:6;19621:60;:::i;:::-;19611:70;;19467:224;19454:1;19451;19447:9;19442:14;;19407:284;;;19411:14;19707:3;19700:10;;19108:608;;;18984:732;;;;:::o;19722:831::-;19985:4;20023:3;20012:9;20008:19;20000:27;;20037:71;20105:1;20094:9;20090:17;20081:6;20037:71;:::i;:::-;20118:80;20194:2;20183:9;20179:18;20170:6;20118:80;:::i;:::-;20245:9;20239:4;20235:20;20230:2;20219:9;20215:18;20208:48;20273:108;20376:4;20367:6;20273:108;:::i;:::-;20265:116;;20391:72;20459:2;20448:9;20444:18;20435:6;20391:72;:::i;:::-;20473:73;20541:3;20530:9;20526:19;20517:6;20473:73;:::i;:::-;19722:831;;;;;;;;:::o;20559:147::-;20660:11;20697:3;20682:18;;20559:147;;;;:::o;20712:114::-;;:::o;20832:398::-;20991:3;21012:83;21093:1;21088:3;21012:83;:::i;:::-;21005:90;;21104:93;21193:3;21104:93;:::i;:::-;21222:1;21217:3;21213:11;21206:18;;20832:398;;;:::o;21236:379::-;21420:3;21442:147;21585:3;21442:147;:::i;:::-;21435:154;;21606:3;21599:10;;21236:379;;;:::o;21621:180::-;21669:77;21666:1;21659:88;21766:4;21763:1;21756:15;21790:4;21787:1;21780:15;21807:185;21847:1;21864:20;21882:1;21864:20;:::i;:::-;21859:25;;21898:20;21916:1;21898:20;:::i;:::-;21893:25;;21937:1;21927:35;;21942:18;;:::i;:::-;21927:35;21984:1;21981;21977:9;21972:14;;21807:185;;;;:::o

Swarm Source

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