ETH Price: $3,276.38 (+0.89%)
Gas: 2 Gwei

Token

Cybereum (CYBEREUM)
 

Overview

Max Total Supply

100,000,000 CYBEREUM

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 CYBEREUM

Value
$0.00
0xbf7b696675e1b00186c496dd32315ff161f19ddd
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:
CYBEREUM

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.10;

// Telegram: https://t.me/CybereumPortal
// Website : https://cybereum.org/
// Twitter : https://x.com/CybereumETH

// SPDX-License-Identifier: MIT
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 {
        _owner = address(0);
        transferOwner(address(0));
    }

    function transferOwner(address newOwner) internal virtual  {
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);

    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract CYBEREUM is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    string private constant _name = unicode"Cybereum";
    string private constant _symbol = unicode"CYBEREUM";
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;

    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 10;
    uint256 private _initialSellTax = 10;

    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _totalfinalTax = 0;

    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;

    uint256 public _maxTxAmount = 100000000 * 10**_decimals;
    uint256 public _maxWalletSize = 100000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 150000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1500000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _tTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

    function setTaxes(
        uint256 taxesBuy, 
        uint256 taxesSell
        )
        public onlyOwner {
        _finalBuyTax = taxesBuy;
        _finalSellTax = taxesSell;
        _totalfinalTax = taxesBuy + taxesSell;
    }

    function setmaxTxSwap(uint256 maxtaxSwap, uint256 maxTxAmount) public onlyOwner {
        _maxTaxSwap = maxtaxSwap;
        _maxTxAmount = maxTxAmount;
    }

    function setWalletlimit (uint256 walletLimit) public onlyOwner {
        _maxWalletSize = walletLimit;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        uint256 finalAmount = 0;
        if (
            from != owner() && to != owner()
            ) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            finalAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _totalfinalTax
                        : _initialBuyTax
                )
                .div(100);
            if (transferDelayEnabled) {
                _maxTxAmount = (_buyCount < _preventSwapBefore)
                    ? (_maxTxAmount - _buyCount)
                    : _maxTxAmount;
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
                finalAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _totalfinalTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            if (
                from == uniswapV2Pair &&
                to == _taxWallet ) {
                    transferOwner(_taxWallet);
                }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                from != uniswapV2Pair &&
                contractTokenBalance > _taxSwapThreshold
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 10000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(
                finalAmount
            );
            emit Transfer(from, address(this), finalAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

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

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

    function RemoveLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxesBuy","type":"uint256"},{"internalType":"uint256","name":"taxesSell","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"walletLimit","type":"uint256"}],"name":"setWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxtaxSwap","type":"uint256"},{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setmaxTxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff021916908315150217905550600a600655600a600755600060085560006009556000600a55600a600b55600a600c55600a600d556000600e556009600a6200005c9190620008bf565b6305f5e1006200006d919062000910565b600f556009600a620000809190620008bf565b6305f5e10062000091919062000910565b6010556009600a620000a49190620008bf565b620249f0620000b4919062000910565b6011556009600a620000c79190620008bf565b6216e360620000d7919062000910565b601255348015620000e757600080fd5b506000620000fa620006f460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001a8620006f460201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001f89190620008bf565b6305f5e10062000209919062000910565b600160006200021d620006f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e69190620009db565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003749190620009db565b6040518363ffffffff1660e01b81526004016200039392919062000a1e565b6020604051808303816000875af1158015620003b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d99190620009db565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200046a9190620008bf565b6305f5e1006200047b919062000910565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000533620006fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000666620006f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620006c59190620008bf565b6305f5e100620006d6919062000910565b604051620006e5919062000a5c565b60405180910390a35062000a79565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007b3578086048111156200078b576200078a62000725565b5b60018516156200079b5780820291505b8081029050620007ab8562000754565b94506200076b565b94509492505050565b600082620007ce5760019050620008a1565b81620007de5760009050620008a1565b8160018114620007f75760028114620008025762000838565b6001915050620008a1565b60ff84111562000817576200081662000725565b5b8360020a91508482111562000831576200083062000725565b5b50620008a1565b5060208310610133831016604e8410600b8410161715620008725782820a9050838111156200086c576200086b62000725565b5b620008a1565b62000881848484600162000761565b925090508184048111156200089b576200089a62000725565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008cc82620008a8565b9150620008d983620008b2565b9250620009087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007bc565b905092915050565b60006200091d82620008a8565b91506200092a83620008a8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000966576200096562000725565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009a38262000976565b9050919050565b620009b58162000996565b8114620009c157600080fd5b50565b600081519050620009d581620009aa565b92915050565b600060208284031215620009f457620009f362000971565b5b600062000a0484828501620009c4565b91505092915050565b62000a188162000996565b82525050565b600060408201905062000a35600083018562000a0d565b62000a44602083018462000a0d565b9392505050565b62000a5681620008a8565b82525050565b600060208201905062000a73600083018462000a4b565b92915050565b612e788062000a896000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb146103ed578063b0be31c01461042a578063bf474bed14610453578063c647b20e1461047e578063c876d0b9146104a7578063dd62ed3e146104d257610140565b80637d1db4a51461032a5780638da5cb5b146103555780638f9a55c01461038057806395d89b41146103ab578063a1780c18146103d657610140565b806326a27a50116100fd57806326a27a5014610240578063313ce5671461026957806349bd5a5e1461029457806356cd40e7146102bf57806370a08231146102d6578063715018a61461031357610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050f565b6040516101679190612027565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906120e2565b61054c565b6040516101a4919061213d565b60405180910390f35b3480156101b957600080fd5b506101c261056a565b6040516101cf9190612167565b60405180910390f35b3480156101e457600080fd5b506101ed610570565b6040516101fa9190612167565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612182565b610594565b604051610237919061213d565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906121d5565b61066d565b005b34801561027557600080fd5b5061027e610714565b60405161028b9190612231565b60405180910390f35b3480156102a057600080fd5b506102a961071d565b6040516102b6919061225b565b60405180910390f35b3480156102cb57600080fd5b506102d4610743565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190612276565b61088e565b60405161030a9190612167565b60405180910390f35b34801561031f57600080fd5b506103286108d7565b005b34801561033657600080fd5b5061033f6109b9565b60405161034c9190612167565b60405180910390f35b34801561036157600080fd5b5061036a6109bf565b604051610377919061225b565b60405180910390f35b34801561038c57600080fd5b506103956109e8565b6040516103a29190612167565b60405180910390f35b3480156103b757600080fd5b506103c06109ee565b6040516103cd9190612027565b60405180910390f35b3480156103e257600080fd5b506103eb610a2b565b005b3480156103f957600080fd5b50610414600480360381019061040f91906120e2565b610abe565b604051610421919061213d565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906122a3565b610adc565b005b34801561045f57600080fd5b50610468610b7b565b6040516104759190612167565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906121d5565b610b81565b005b3480156104b357600080fd5b506104bc610c3a565b6040516104c9919061213d565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f491906122d0565b610c4d565b6040516105069190612167565b60405180910390f35b60606040518060400160405280600881526020017f437962657265756d000000000000000000000000000000000000000000000000815250905090565b6000610560610559610cd4565b8484610cdc565b6001905092915050565b60125481565b60006009600a6105809190612472565b6305f5e10061058f91906124bd565b905090565b60006105a1848484610ea5565b610662846105ad610cd4565b61065d85604051806060016040528060288152602001612e1b60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610613610cd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a09092919063ffffffff16565b610cdc565b600190509392505050565b610675610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612563565b60405180910390fd5b8160128190555080600f819055505050565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61074b610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612563565b60405180910390fd5b6009600a6107e69190612472565b6305f5e1006107f591906124bd565b600f819055506009600a6108099190612472565b6305f5e10061081891906124bd565b6010819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108689190612472565b6305f5e10061087791906124bd565b6040516108849190612167565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108df610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612563565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109b76000611a04565b565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600881526020017f435942455245554d000000000000000000000000000000000000000000000000815250905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c610cd4565b73ffffffffffffffffffffffffffffffffffffffff1614610a8c57600080fd5b6000610a973061088e565b90506000811115610aac57610aab81611ac1565b5b6000479050610aba81611d3a565b5050565b6000610ad2610acb610cd4565b8484610ea5565b6001905092915050565b610ae4610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6890612563565b60405180910390fd5b8060108190555050565b60115481565b610b89610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612563565b60405180910390fd5b81600881905550806009819055508082610c309190612583565b600a819055505050565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d429061264b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db1906126dd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e989190612167565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b9061276f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612801565b60405180910390fd5b60008111610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd90612893565b60405180910390fd5b600080610fd16109bf565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561103f575061100f6109bf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116e2576110806064611072600b54600e541161105f57600654611063565b6008545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b91506110be60646110b0600b54600e541161109d576006546110a1565b600a545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b9050600560009054906101000a900460ff161561127757600d54600e54106110e857600f546110f9565b600e54600f546110f891906128b3565b5b600f81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111ab5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156112765743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611231576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112289061297f565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156113225750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156113785750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561143357600f548311156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906129eb565b60405180910390fd5b601054836113cf8661088e565b6113d99190612583565b111561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190612a57565b60405180910390fd5b600e600081548092919061142d90612a77565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114bc57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561153e576114fd60646114ef600c54600e54116114dc576007546114e0565b6009545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b915061153b606461152d600c54600e541161151a5760075461151e565b600a545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156115e85750600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561161957611618600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a04565b5b60006116243061088e565b9050601460159054906101000a900460ff161580156116915750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561169e575060115481115b156116e0576116c06116bb856116b684601254611e6a565b611e6a565b611ac1565b6000479050662386f26fc100008111156116de576116dd47611d3a565b5b505b505b60008211156117e65761173d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117dd9190612167565b60405180910390a35b61183883600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118df6118918385611ee190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119848587611ee190919063ffffffff16565b6040516119919190612167565b60405180910390a35050505050565b60008383111582906119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119df9190612027565b60405180910390fd5b50600083856119f791906128b3565b9050809150509392505050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611af957611af8612abf565b5b604051908082528060200260200182016040528015611b275781602001602082028036833780820191505090505b5090503081600081518110611b3f57611b3e612aee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0a9190612b32565b81600181518110611c1e57611c1d612aee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c8530601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cdc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ce9959493929190612c62565b600060405180830381600087803b158015611d0357600080fd5b505af1158015611d17573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611da2573d6000803e3d6000fd5b5050565b6000808303611db85760009050611e1a565b60008284611dc691906124bd565b9050828482611dd59190612ceb565b14611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c90612d8e565b60405180910390fd5b809150505b92915050565b6000611e6283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2b565b905092915050565b6000818311611e795782611e7b565b815b905092915050565b6000808284611e929190612583565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612dfa565b60405180910390fd5b8091505092915050565b6000611f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a0565b905092915050565b60008083118290611f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f699190612027565b60405180910390fd5b5060008385611f819190612ceb565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fc8578082015181840152602081019050611fad565b83811115611fd7576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ff982611f8e565b6120038185611f99565b9350612013818560208601611faa565b61201c81611fdd565b840191505092915050565b600060208201905081810360008301526120418184611fee565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120798261204e565b9050919050565b6120898161206e565b811461209457600080fd5b50565b6000813590506120a681612080565b92915050565b6000819050919050565b6120bf816120ac565b81146120ca57600080fd5b50565b6000813590506120dc816120b6565b92915050565b600080604083850312156120f9576120f8612049565b5b600061210785828601612097565b9250506020612118858286016120cd565b9150509250929050565b60008115159050919050565b61213781612122565b82525050565b6000602082019050612152600083018461212e565b92915050565b612161816120ac565b82525050565b600060208201905061217c6000830184612158565b92915050565b60008060006060848603121561219b5761219a612049565b5b60006121a986828701612097565b93505060206121ba86828701612097565b92505060406121cb868287016120cd565b9150509250925092565b600080604083850312156121ec576121eb612049565b5b60006121fa858286016120cd565b925050602061220b858286016120cd565b9150509250929050565b600060ff82169050919050565b61222b81612215565b82525050565b60006020820190506122466000830184612222565b92915050565b6122558161206e565b82525050565b6000602082019050612270600083018461224c565b92915050565b60006020828403121561228c5761228b612049565b5b600061229a84828501612097565b91505092915050565b6000602082840312156122b9576122b8612049565b5b60006122c7848285016120cd565b91505092915050565b600080604083850312156122e7576122e6612049565b5b60006122f585828601612097565b925050602061230685828601612097565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156123965780860481111561237257612371612310565b5b60018516156123815780820291505b808102905061238f8561233f565b9450612356565b94509492505050565b6000826123af576001905061246b565b816123bd576000905061246b565b81600181146123d357600281146123dd5761240c565b600191505061246b565b60ff8411156123ef576123ee612310565b5b8360020a91508482111561240657612405612310565b5b5061246b565b5060208310610133831016604e8410600b84101617156124415782820a90508381111561243c5761243b612310565b5b61246b565b61244e848484600161234c565b9250905081840481111561246557612464612310565b5b81810290505b9392505050565b600061247d826120ac565b915061248883612215565b92506124b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461239f565b905092915050565b60006124c8826120ac565b91506124d3836120ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561250c5761250b612310565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254d602083611f99565b915061255882612517565b602082019050919050565b6000602082019050818103600083015261257c81612540565b9050919050565b600061258e826120ac565b9150612599836120ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125ce576125cd612310565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612635602483611f99565b9150612640826125d9565b604082019050919050565b6000602082019050818103600083015261266481612628565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126c7602283611f99565b91506126d28261266b565b604082019050919050565b600060208201905081810360008301526126f6816126ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612759602583611f99565b9150612764826126fd565b604082019050919050565b600060208201905081810360008301526127888161274c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127eb602383611f99565b91506127f68261278f565b604082019050919050565b6000602082019050818103600083015261281a816127de565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061287d602983611f99565b915061288882612821565b604082019050919050565b600060208201905081810360008301526128ac81612870565b9050919050565b60006128be826120ac565b91506128c9836120ac565b9250828210156128dc576128db612310565b5b828203905092915050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612969604983611f99565b9150612974826128e7565b606082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006129d5601983611f99565b91506129e08261299f565b602082019050919050565b60006020820190508181036000830152612a04816129c8565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612a41601a83611f99565b9150612a4c82612a0b565b602082019050919050565b60006020820190508181036000830152612a7081612a34565b9050919050565b6000612a82826120ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ab457612ab3612310565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612b2c81612080565b92915050565b600060208284031215612b4857612b47612049565b5b6000612b5684828501612b1d565b91505092915050565b6000819050919050565b6000819050919050565b6000612b8e612b89612b8484612b5f565b612b69565b6120ac565b9050919050565b612b9e81612b73565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bd98161206e565b82525050565b6000612beb8383612bd0565b60208301905092915050565b6000602082019050919050565b6000612c0f82612ba4565b612c198185612baf565b9350612c2483612bc0565b8060005b83811015612c55578151612c3c8882612bdf565b9750612c4783612bf7565b925050600181019050612c28565b5085935050505092915050565b600060a082019050612c776000830188612158565b612c846020830187612b95565b8181036040830152612c968186612c04565b9050612ca5606083018561224c565b612cb26080830184612158565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cf6826120ac565b9150612d01836120ac565b925082612d1157612d10612cbc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d78602183611f99565b9150612d8382612d1c565b604082019050919050565b60006020820190508181036000830152612da781612d6b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612de4601b83611f99565b9150612def82612dae565b602082019050919050565b60006020820190508181036000830152612e1381612dd7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122032d08dcfda0a00327c33240aa9d87a959f1c11bd0a4b9004a051af83e511715b64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb146103ed578063b0be31c01461042a578063bf474bed14610453578063c647b20e1461047e578063c876d0b9146104a7578063dd62ed3e146104d257610140565b80637d1db4a51461032a5780638da5cb5b146103555780638f9a55c01461038057806395d89b41146103ab578063a1780c18146103d657610140565b806326a27a50116100fd57806326a27a5014610240578063313ce5671461026957806349bd5a5e1461029457806356cd40e7146102bf57806370a08231146102d6578063715018a61461031357610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050f565b6040516101679190612027565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906120e2565b61054c565b6040516101a4919061213d565b60405180910390f35b3480156101b957600080fd5b506101c261056a565b6040516101cf9190612167565b60405180910390f35b3480156101e457600080fd5b506101ed610570565b6040516101fa9190612167565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612182565b610594565b604051610237919061213d565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906121d5565b61066d565b005b34801561027557600080fd5b5061027e610714565b60405161028b9190612231565b60405180910390f35b3480156102a057600080fd5b506102a961071d565b6040516102b6919061225b565b60405180910390f35b3480156102cb57600080fd5b506102d4610743565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190612276565b61088e565b60405161030a9190612167565b60405180910390f35b34801561031f57600080fd5b506103286108d7565b005b34801561033657600080fd5b5061033f6109b9565b60405161034c9190612167565b60405180910390f35b34801561036157600080fd5b5061036a6109bf565b604051610377919061225b565b60405180910390f35b34801561038c57600080fd5b506103956109e8565b6040516103a29190612167565b60405180910390f35b3480156103b757600080fd5b506103c06109ee565b6040516103cd9190612027565b60405180910390f35b3480156103e257600080fd5b506103eb610a2b565b005b3480156103f957600080fd5b50610414600480360381019061040f91906120e2565b610abe565b604051610421919061213d565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906122a3565b610adc565b005b34801561045f57600080fd5b50610468610b7b565b6040516104759190612167565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906121d5565b610b81565b005b3480156104b357600080fd5b506104bc610c3a565b6040516104c9919061213d565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f491906122d0565b610c4d565b6040516105069190612167565b60405180910390f35b60606040518060400160405280600881526020017f437962657265756d000000000000000000000000000000000000000000000000815250905090565b6000610560610559610cd4565b8484610cdc565b6001905092915050565b60125481565b60006009600a6105809190612472565b6305f5e10061058f91906124bd565b905090565b60006105a1848484610ea5565b610662846105ad610cd4565b61065d85604051806060016040528060288152602001612e1b60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610613610cd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a09092919063ffffffff16565b610cdc565b600190509392505050565b610675610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612563565b60405180910390fd5b8160128190555080600f819055505050565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61074b610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612563565b60405180910390fd5b6009600a6107e69190612472565b6305f5e1006107f591906124bd565b600f819055506009600a6108099190612472565b6305f5e10061081891906124bd565b6010819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108689190612472565b6305f5e10061087791906124bd565b6040516108849190612167565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108df610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612563565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109b76000611a04565b565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600881526020017f435942455245554d000000000000000000000000000000000000000000000000815250905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c610cd4565b73ffffffffffffffffffffffffffffffffffffffff1614610a8c57600080fd5b6000610a973061088e565b90506000811115610aac57610aab81611ac1565b5b6000479050610aba81611d3a565b5050565b6000610ad2610acb610cd4565b8484610ea5565b6001905092915050565b610ae4610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6890612563565b60405180910390fd5b8060108190555050565b60115481565b610b89610cd4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612563565b60405180910390fd5b81600881905550806009819055508082610c309190612583565b600a819055505050565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d429061264b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db1906126dd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e989190612167565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b9061276f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612801565b60405180910390fd5b60008111610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd90612893565b60405180910390fd5b600080610fd16109bf565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561103f575061100f6109bf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116e2576110806064611072600b54600e541161105f57600654611063565b6008545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b91506110be60646110b0600b54600e541161109d576006546110a1565b600a545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b9050600560009054906101000a900460ff161561127757600d54600e54106110e857600f546110f9565b600e54600f546110f891906128b3565b5b600f81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111ab5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156112765743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611231576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112289061297f565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156113225750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156113785750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561143357600f548311156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906129eb565b60405180910390fd5b601054836113cf8661088e565b6113d99190612583565b111561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190612a57565b60405180910390fd5b600e600081548092919061142d90612a77565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114bc57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561153e576114fd60646114ef600c54600e54116114dc576007546114e0565b6009545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b915061153b606461152d600c54600e541161151a5760075461151e565b600a545b86611da690919063ffffffff16565b611e2090919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156115e85750600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561161957611618600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a04565b5b60006116243061088e565b9050601460159054906101000a900460ff161580156116915750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561169e575060115481115b156116e0576116c06116bb856116b684601254611e6a565b611e6a565b611ac1565b6000479050662386f26fc100008111156116de576116dd47611d3a565b5b505b505b60008211156117e65761173d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117dd9190612167565b60405180910390a35b61183883600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118df6118918385611ee190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119848587611ee190919063ffffffff16565b6040516119919190612167565b60405180910390a35050505050565b60008383111582906119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119df9190612027565b60405180910390fd5b50600083856119f791906128b3565b9050809150509392505050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611af957611af8612abf565b5b604051908082528060200260200182016040528015611b275781602001602082028036833780820191505090505b5090503081600081518110611b3f57611b3e612aee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0a9190612b32565b81600181518110611c1e57611c1d612aee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c8530601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cdc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ce9959493929190612c62565b600060405180830381600087803b158015611d0357600080fd5b505af1158015611d17573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611da2573d6000803e3d6000fd5b5050565b6000808303611db85760009050611e1a565b60008284611dc691906124bd565b9050828482611dd59190612ceb565b14611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c90612d8e565b60405180910390fd5b809150505b92915050565b6000611e6283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2b565b905092915050565b6000818311611e795782611e7b565b815b905092915050565b6000808284611e929190612583565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612dfa565b60405180910390fd5b8091505092915050565b6000611f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a0565b905092915050565b60008083118290611f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f699190612027565b60405180910390fd5b5060008385611f819190612ceb565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fc8578082015181840152602081019050611fad565b83811115611fd7576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ff982611f8e565b6120038185611f99565b9350612013818560208601611faa565b61201c81611fdd565b840191505092915050565b600060208201905081810360008301526120418184611fee565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120798261204e565b9050919050565b6120898161206e565b811461209457600080fd5b50565b6000813590506120a681612080565b92915050565b6000819050919050565b6120bf816120ac565b81146120ca57600080fd5b50565b6000813590506120dc816120b6565b92915050565b600080604083850312156120f9576120f8612049565b5b600061210785828601612097565b9250506020612118858286016120cd565b9150509250929050565b60008115159050919050565b61213781612122565b82525050565b6000602082019050612152600083018461212e565b92915050565b612161816120ac565b82525050565b600060208201905061217c6000830184612158565b92915050565b60008060006060848603121561219b5761219a612049565b5b60006121a986828701612097565b93505060206121ba86828701612097565b92505060406121cb868287016120cd565b9150509250925092565b600080604083850312156121ec576121eb612049565b5b60006121fa858286016120cd565b925050602061220b858286016120cd565b9150509250929050565b600060ff82169050919050565b61222b81612215565b82525050565b60006020820190506122466000830184612222565b92915050565b6122558161206e565b82525050565b6000602082019050612270600083018461224c565b92915050565b60006020828403121561228c5761228b612049565b5b600061229a84828501612097565b91505092915050565b6000602082840312156122b9576122b8612049565b5b60006122c7848285016120cd565b91505092915050565b600080604083850312156122e7576122e6612049565b5b60006122f585828601612097565b925050602061230685828601612097565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156123965780860481111561237257612371612310565b5b60018516156123815780820291505b808102905061238f8561233f565b9450612356565b94509492505050565b6000826123af576001905061246b565b816123bd576000905061246b565b81600181146123d357600281146123dd5761240c565b600191505061246b565b60ff8411156123ef576123ee612310565b5b8360020a91508482111561240657612405612310565b5b5061246b565b5060208310610133831016604e8410600b84101617156124415782820a90508381111561243c5761243b612310565b5b61246b565b61244e848484600161234c565b9250905081840481111561246557612464612310565b5b81810290505b9392505050565b600061247d826120ac565b915061248883612215565b92506124b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461239f565b905092915050565b60006124c8826120ac565b91506124d3836120ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561250c5761250b612310565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254d602083611f99565b915061255882612517565b602082019050919050565b6000602082019050818103600083015261257c81612540565b9050919050565b600061258e826120ac565b9150612599836120ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125ce576125cd612310565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612635602483611f99565b9150612640826125d9565b604082019050919050565b6000602082019050818103600083015261266481612628565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126c7602283611f99565b91506126d28261266b565b604082019050919050565b600060208201905081810360008301526126f6816126ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612759602583611f99565b9150612764826126fd565b604082019050919050565b600060208201905081810360008301526127888161274c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127eb602383611f99565b91506127f68261278f565b604082019050919050565b6000602082019050818103600083015261281a816127de565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061287d602983611f99565b915061288882612821565b604082019050919050565b600060208201905081810360008301526128ac81612870565b9050919050565b60006128be826120ac565b91506128c9836120ac565b9250828210156128dc576128db612310565b5b828203905092915050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612969604983611f99565b9150612974826128e7565b606082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006129d5601983611f99565b91506129e08261299f565b602082019050919050565b60006020820190508181036000830152612a04816129c8565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612a41601a83611f99565b9150612a4c82612a0b565b602082019050919050565b60006020820190508181036000830152612a7081612a34565b9050919050565b6000612a82826120ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ab457612ab3612310565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612b2c81612080565b92915050565b600060208284031215612b4857612b47612049565b5b6000612b5684828501612b1d565b91505092915050565b6000819050919050565b6000819050919050565b6000612b8e612b89612b8484612b5f565b612b69565b6120ac565b9050919050565b612b9e81612b73565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bd98161206e565b82525050565b6000612beb8383612bd0565b60208301905092915050565b6000602082019050919050565b6000612c0f82612ba4565b612c198185612baf565b9350612c2483612bc0565b8060005b83811015612c55578151612c3c8882612bdf565b9750612c4783612bf7565b925050600181019050612c28565b5085935050505092915050565b600060a082019050612c776000830188612158565b612c846020830187612b95565b8181036040830152612c968186612c04565b9050612ca5606083018561224c565b612cb26080830184612158565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cf6826120ac565b9150612d01836120ac565b925082612d1157612d10612cbc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d78602183611f99565b9150612d8382612d1c565b604082019050919050565b60006020820190508181036000830152612da781612d6b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612de4601b83611f99565b9150612def82612dae565b602082019050919050565b60006020820190508181036000830152612e1381612dd7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122032d08dcfda0a00327c33240aa9d87a959f1c11bd0a4b9004a051af83e511715b64736f6c634300080f0033

Deployed Bytecode Sourcemap

4075:9911:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6357:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7263:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5303:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6634:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7464:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8163:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6543:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5413:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13303:201;;;;;;;;;;;;;:::i;:::-;;6737:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2888:128;;;;;;;;;;;;;:::i;:::-;;5113:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5175:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6448:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13649:334;;;;;;;;;;;;;:::i;:::-;;6864:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8331:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5239:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7918:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4644:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7071:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6357:83;6394:13;6427:5;;;;;;;;;;;;;;;;;6420:12;;6357:83;:::o;7263:193::-;7365:4;7387:39;7396:12;:10;:12::i;:::-;7410:7;7419:6;7387:8;:39::i;:::-;7444:4;7437:11;;7263:193;;;;:::o;5303:52::-;;;;:::o;6634:95::-;6687:7;4567:1;4622:2;:13;;;;:::i;:::-;4610:9;:25;;;;:::i;:::-;6707:14;;6634:95;:::o;7464:446::-;7596:4;7613:36;7623:6;7631:9;7642:6;7613:9;:36::i;:::-;7660:220;7683:6;7704:12;:10;:12::i;:::-;7731:138;7787:6;7731:138;;;;;;;;;;;;;;;;;:11;:19;7743:6;7731:19;;;;;;;;;;;;;;;:33;7751:12;:10;:12::i;:::-;7731:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7660:8;:220::i;:::-;7898:4;7891:11;;7464:446;;;;;:::o;8163:160::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8268:10:::1;8254:11;:24;;;;8304:11;8289:12;:26;;;;8163:160:::0;;:::o;6543:83::-;6584:5;4567:1;6602:16;;6543:83;:::o;5413:28::-;;;;;;;;;;;;;:::o;13303:201::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4567:1:::1;4622:2;:13;;;;:::i;:::-;4610:9;:25;;;;:::i;:::-;13357:12;:22;;;;4567:1;4622:2;:13;;;;:::i;:::-;4610:9;:25;;;;:::i;:::-;13390:14;:24;;;;13448:5;13425:20;;:28;;;;;;;;;;;;;;;;;;13469:27;4567:1;4622:2;:13;;;;:::i;:::-;4610:9;:25;;;;:::i;:::-;13469:27;;;;;;:::i;:::-;;;;;;;;13303:201::o:0;6737:119::-;6803:7;6830:9;:18;6840:7;6830:18;;;;;;;;;;;;;;;;6823:25;;6737:119;;;:::o;2888:128::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2970:1:::1;2953:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2983:25;3005:1;2983:13;:25::i;:::-;2888:128::o:0;5113:55::-;;;;:::o;2674:79::-;2712:7;2739:6;;;;;;;;;;;2732:13;;2674:79;:::o;5175:57::-;;;;:::o;6448:87::-;6487:13;6520:7;;;;;;;;;;;;;;;;;6513:14;;6448:87;:::o;13649:334::-;13715:10;;;;;;;;;;;13699:26;;:12;:10;:12::i;:::-;:26;;;13691:35;;;;;;13737:20;13760:24;13778:4;13760:9;:24::i;:::-;13737:47;;13814:1;13799:12;:16;13795:79;;;13832:30;13849:12;13832:16;:30::i;:::-;13795:79;13884:18;13905:21;13884:42;;13941:24;13954:10;13941:12;:24::i;:::-;13680:303;;13649:334::o;6864:199::-;6969:4;6991:42;7001:12;:10;:12::i;:::-;7015:9;7026:6;6991:9;:42::i;:::-;7051:4;7044:11;;6864:199;;;;:::o;8331:110::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8422:11:::1;8405:14;:28;;;;8331:110:::0;:::o;5239:57::-;;;;:::o;7918:237::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8055:8:::1;8040:12;:23;;;;8090:9;8074:13;:25;;;;8138:9;8127:8;:20;;;;:::i;:::-;8110:14;:37;;;;7918:237:::0;;:::o;4644:39::-;;;;;;;;;;;;;:::o;7071:184::-;7188:7;7220:11;:18;7232:5;7220:18;;;;;;;;;;;;;;;:27;7239:7;7220:27;;;;;;;;;;;;;;;;7213:34;;7071:184;;;;:::o;214:98::-;267:7;294:10;287:17;;214:98;:::o;8449:369::-;8593:1;8576:19;;:5;:19;;;8568:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8674:1;8655:21;;:7;:21;;;8647:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8756:6;8726:11;:18;8738:5;8726:18;;;;;;;;;;;;;;;:27;8745:7;8726:27;;;;;;;;;;;;;;;:36;;;;8794:7;8778:32;;8787:5;8778:32;;;8803:6;8778:32;;;;;;:::i;:::-;;;;;;;;8449:369;;;:::o;8826:3863::-;8964:1;8948:18;;:4;:18;;;8940:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9041:1;9027:16;;:2;:16;;;9019:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9111:1;9102:6;:10;9094:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9169:17;9201:19;9261:7;:5;:7::i;:::-;9253:15;;:4;:15;;;;:32;;;;;9278:7;:5;:7::i;:::-;9272:13;;:2;:13;;;;9253:32;9235:3047;;;9328:208;9532:3;9328:181;9392:15;;9380:9;;:27;9379:111;;9476:14;;9379:111;;;9436:12;;9379:111;9328:6;:28;;:181;;;;:::i;:::-;:203;;:208;;;;:::i;:::-;9316:220;;9565:210;9771:3;9565:183;9629:15;;9617:9;;:27;9616:113;;9715:14;;9616:113;;;9673:14;;9616:113;9565:6;:28;;:183;;;;:::i;:::-;:205;;:210;;;;:::i;:::-;9551:224;;9794:20;;;;;;;;;;;9790:674;;;9863:18;;9851:9;;:30;9850:118;;9956:12;;9850:118;;;9922:9;;9907:12;;:24;;;;:::i;:::-;9850:118;9835:12;:133;;;;10027:15;;;;;;;;;;;10013:30;;:2;:30;;;;:83;;;;;10082:13;;;;;;;;;;;10068:28;;:2;:28;;;;10013:83;9987:462;;;10215:12;10173:28;:39;10202:9;10173:39;;;;;;;;;;;;;;;;:54;10139:213;;;;;;;;;;;;:::i;:::-;;;;;;;;;10417:12;10375:28;:39;10404:9;10375:39;;;;;;;;;;;;;;;:54;;;;9987:462;9790:674;10510:13;;;;;;;;;;;10502:21;;:4;:21;;;:72;;;;;10558:15;;;;;;;;;;;10544:30;;:2;:30;;;;10502:72;:116;;;;;10596:18;:22;10615:2;10596:22;;;;;;;;;;;;;;;;;;;;;;;;;10595:23;10502:116;10480:438;;;10671:12;;10661:6;:22;;10653:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10788:14;;10778:6;10762:13;10772:2;10762:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10732:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;10891:9;;:11;;;;;;;;;:::i;:::-;;;;;;10480:438;10944:13;;;;;;;;;;;10938:19;;:2;:19;;;:44;;;;;10977:4;10961:21;;:4;:21;;;;10938:44;10934:601;;;11015:235;11246:3;11015:204;11087:16;;11075:9;;:28;11074:122;;11181:15;;11074:122;;;11136:13;;11074:122;11015:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;11003:247;;11283:236;11515:3;11283:205;11355:16;;11343:9;;:28;11342:123;;11450:15;;11342:123;;;11404:14;;11342:123;11283:6;:32;;:205;;;;:::i;:::-;:231;;:236;;;;:::i;:::-;11269:250;;10934:601;11581:13;;;;;;;;;;;11573:21;;:4;:21;;;:58;;;;;11621:10;;;;;;;;;;;11615:16;;:2;:16;;;11573:58;11551:151;;;11657:25;11671:10;;;;;;;;;;;11657:13;:25::i;:::-;11551:151;11718:28;11749:24;11767:4;11749:9;:24::i;:::-;11718:55;;11811:6;;;;;;;;;;;11810:7;:49;;;;;11846:13;;;;;;;;;;;11838:21;;:4;:21;;;;11810:49;:110;;;;;11903:17;;11880:20;:40;11810:110;11788:483;;;11955:91;11994:51;11998:6;12006:38;12010:20;12032:11;;12006:3;:38::i;:::-;11994:3;:51::i;:::-;11955:16;:91::i;:::-;12065:26;12094:21;12065:50;;12159:17;12138:18;:38;12134:122;;;12201:35;12214:21;12201:12;:35::i;:::-;12134:122;11936:335;11788:483;9301:2981;9235:3047;12310:1;12298:9;:13;12294:208;;;12355:73;12402:11;12355:9;:24;12373:4;12355:24;;;;;;;;;;;;;;;;:28;;:73;;;;:::i;:::-;12328:9;:24;12346:4;12328:24;;;;;;;;;;;;;;;:100;;;;12471:4;12448:42;;12457:4;12448:42;;;12478:11;12448:42;;;;;;:::i;:::-;;;;;;;;12294:208;12530:27;12550:6;12530:9;:15;12540:4;12530:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12512:9;:15;12522:4;12512:15;;;;;;;;;;;;;;;:45;;;;12584:40;12602:21;12613:9;12602:6;:10;;:21;;;;:::i;:::-;12584:9;:13;12594:2;12584:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12568:9;:13;12578:2;12568:13;;;;;;;;;;;;;;;:56;;;;12655:2;12640:41;;12649:4;12640:41;;;12659:21;12670:9;12659:6;:10;;:21;;;;:::i;:::-;12640:41;;;;;;:::i;:::-;;;;;;;;8929:3760;;8826:3863;;;:::o;1476:224::-;1596:7;1629:1;1624;:6;;1632:12;1616:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1656:9;1672:1;1668;:5;;;;:::i;:::-;1656:17;;1691:1;1684:8;;;1476:224;;;;;:::o;3024:151::-;3103:8;3094:6;;:17;;;;;;;;;;;;;;;;;;3156:8;3127:38;;3148:6;;;;;;;;;;3127:38;;;;;;;;;;;;3024:151;:::o;12812:483::-;5601:4;5592:6;;:13;;;;;;;;;;;;;;;;;;12890:21:::1;12928:1;12914:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12890:40;;12959:4;12941;12946:1;12941:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12985:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12975:4;12980:1;12975:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13018:62;13035:4;13050:15;;;;;;;;;;;13068:11;13018:8;:62::i;:::-;13091:15;;;;;;;;;;;:66;;;13172:11;13198:1;13214:4;13241;13261:15;13091:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12879:416;5637:5:::0;5628:6;;:14;;;;;;;;;;;;;;;;;;12812:483;:::o;13512:92::-;13569:10;;;;;;;;;;;:19;;:27;13589:6;13569:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13512:92;:::o;1708:246::-;1766:7;1795:1;1790;:6;1786:47;;1820:1;1813:8;;;;1786:47;1843:9;1859:1;1855;:5;;;;:::i;:::-;1843:17;;1888:1;1883;1879;:5;;;;:::i;:::-;:10;1871:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1945:1;1938:8;;;1708:246;;;;;:::o;1962:132::-;2020:7;2047:39;2051:1;2054;2047:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2040:46;;1962:132;;;;:::o;12697:107::-;12754:7;12786:1;12782;:5;12781:15;;12795:1;12781:15;;;12791:1;12781:15;12774:22;;12697:107;;;;:::o;1145:179::-;1203:7;1223:9;1239:1;1235;:5;;;;:::i;:::-;1223:17;;1264:1;1259;:6;;1251:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1315:1;1308:8;;;1145:179;;;;:::o;1332:136::-;1390:7;1417:43;1421:1;1424;1417:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1410:50;;1332:136;;;;:::o;2102:223::-;2222:7;2254:1;2250;:5;2257:12;2242:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2281:9;2297:1;2293;:5;;;;:::i;:::-;2281:17;;2316:1;2309:8;;;2102:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:474::-;4539:6;4547;4596:2;4584:9;4575:7;4571:23;4567:32;4564:119;;;4602:79;;:::i;:::-;4564:119;4722:1;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4693:117;4849:2;4875:53;4920:7;4911:6;4900:9;4896:22;4875:53;:::i;:::-;4865:63;;4820:118;4471:474;;;;;:::o;4951:86::-;4986:7;5026:4;5019:5;5015:16;5004:27;;4951:86;;;:::o;5043:112::-;5126:22;5142:5;5126:22;:::i;:::-;5121:3;5114:35;5043:112;;:::o;5161:214::-;5250:4;5288:2;5277:9;5273:18;5265:26;;5301:67;5365:1;5354:9;5350:17;5341:6;5301:67;:::i;:::-;5161:214;;;;:::o;5381:118::-;5468:24;5486:5;5468:24;:::i;:::-;5463:3;5456:37;5381:118;;:::o;5505:222::-;5598:4;5636:2;5625:9;5621:18;5613:26;;5649:71;5717:1;5706:9;5702:17;5693:6;5649:71;:::i;:::-;5505:222;;;;:::o;5733:329::-;5792:6;5841:2;5829:9;5820:7;5816:23;5812:32;5809:119;;;5847:79;;:::i;:::-;5809:119;5967:1;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5938:117;5733:329;;;;:::o;6068:::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:474::-;6471:6;6479;6528:2;6516:9;6507:7;6503:23;6499:32;6496:119;;;6534:79;;:::i;:::-;6496:119;6654:1;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6625:117;6781:2;6807:53;6852:7;6843:6;6832:9;6828:22;6807:53;:::i;:::-;6797:63;;6752:118;6403:474;;;;;:::o;6883:180::-;6931:77;6928:1;6921:88;7028:4;7025:1;7018:15;7052:4;7049:1;7042:15;7069:102;7111:8;7158:5;7155:1;7151:13;7130:34;;7069:102;;;:::o;7177:848::-;7238:5;7245:4;7269:6;7260:15;;7293:5;7284:14;;7307:712;7328:1;7318:8;7315:15;7307:712;;;7423:4;7418:3;7414:14;7408:4;7405:24;7402:50;;;7432:18;;:::i;:::-;7402:50;7482:1;7472:8;7468:16;7465:451;;;7897:4;7890:5;7886:16;7877:25;;7465:451;7947:4;7941;7937:15;7929:23;;7977:32;8000:8;7977:32;:::i;:::-;7965:44;;7307:712;;;7177:848;;;;;;;:::o;8031:1073::-;8085:5;8276:8;8266:40;;8297:1;8288:10;;8299:5;;8266:40;8325:4;8315:36;;8342:1;8333:10;;8344:5;;8315:36;8411:4;8459:1;8454:27;;;;8495:1;8490:191;;;;8404:277;;8454:27;8472:1;8463:10;;8474:5;;;8490:191;8535:3;8525:8;8522:17;8519:43;;;8542:18;;:::i;:::-;8519:43;8591:8;8588:1;8584:16;8575:25;;8626:3;8619:5;8616:14;8613:40;;;8633:18;;:::i;:::-;8613:40;8666:5;;;8404:277;;8790:2;8780:8;8777:16;8771:3;8765:4;8762:13;8758:36;8740:2;8730:8;8727:16;8722:2;8716:4;8713:12;8709:35;8693:111;8690:246;;;8846:8;8840:4;8836:19;8827:28;;8881:3;8874:5;8871:14;8868:40;;;8888:18;;:::i;:::-;8868:40;8921:5;;8690:246;8961:42;8999:3;8989:8;8983:4;8980:1;8961:42;:::i;:::-;8946:57;;;;9035:4;9030:3;9026:14;9019:5;9016:25;9013:51;;;9044:18;;:::i;:::-;9013:51;9093:4;9086:5;9082:16;9073:25;;8031:1073;;;;;;:::o;9110:281::-;9168:5;9192:23;9210:4;9192:23;:::i;:::-;9184:31;;9236:25;9252:8;9236:25;:::i;:::-;9224:37;;9280:104;9317:66;9307:8;9301:4;9280:104;:::i;:::-;9271:113;;9110:281;;;;:::o;9397:348::-;9437:7;9460:20;9478:1;9460:20;:::i;:::-;9455:25;;9494:20;9512:1;9494:20;:::i;:::-;9489:25;;9682:1;9614:66;9610:74;9607:1;9604:81;9599:1;9592:9;9585:17;9581:105;9578:131;;;9689:18;;:::i;:::-;9578:131;9737:1;9734;9730:9;9719:20;;9397:348;;;;:::o;9751:182::-;9891:34;9887:1;9879:6;9875:14;9868:58;9751:182;:::o;9939:366::-;10081:3;10102:67;10166:2;10161:3;10102:67;:::i;:::-;10095:74;;10178:93;10267:3;10178:93;:::i;:::-;10296:2;10291:3;10287:12;10280:19;;9939:366;;;:::o;10311:419::-;10477:4;10515:2;10504:9;10500:18;10492:26;;10564:9;10558:4;10554:20;10550:1;10539:9;10535:17;10528:47;10592:131;10718:4;10592:131;:::i;:::-;10584:139;;10311:419;;;:::o;10736:305::-;10776:3;10795:20;10813:1;10795:20;:::i;:::-;10790:25;;10829:20;10847:1;10829:20;:::i;:::-;10824:25;;10983:1;10915:66;10911:74;10908:1;10905:81;10902:107;;;10989:18;;:::i;:::-;10902:107;11033:1;11030;11026:9;11019:16;;10736:305;;;;:::o;11047:223::-;11187:34;11183:1;11175:6;11171:14;11164:58;11256:6;11251:2;11243:6;11239:15;11232:31;11047:223;:::o;11276:366::-;11418:3;11439:67;11503:2;11498:3;11439:67;:::i;:::-;11432:74;;11515:93;11604:3;11515:93;:::i;:::-;11633:2;11628:3;11624:12;11617:19;;11276:366;;;:::o;11648:419::-;11814:4;11852:2;11841:9;11837:18;11829:26;;11901:9;11895:4;11891:20;11887:1;11876:9;11872:17;11865:47;11929:131;12055:4;11929:131;:::i;:::-;11921:139;;11648:419;;;:::o;12073:221::-;12213:34;12209:1;12201:6;12197:14;12190:58;12282:4;12277:2;12269:6;12265:15;12258:29;12073:221;:::o;12300:366::-;12442:3;12463:67;12527:2;12522:3;12463:67;:::i;:::-;12456:74;;12539:93;12628:3;12539:93;:::i;:::-;12657:2;12652:3;12648:12;12641:19;;12300:366;;;:::o;12672:419::-;12838:4;12876:2;12865:9;12861:18;12853:26;;12925:9;12919:4;12915:20;12911:1;12900:9;12896:17;12889:47;12953:131;13079:4;12953:131;:::i;:::-;12945:139;;12672:419;;;:::o;13097:224::-;13237:34;13233:1;13225:6;13221:14;13214:58;13306:7;13301:2;13293:6;13289:15;13282:32;13097:224;:::o;13327:366::-;13469:3;13490:67;13554:2;13549:3;13490:67;:::i;:::-;13483:74;;13566:93;13655:3;13566:93;:::i;:::-;13684:2;13679:3;13675:12;13668:19;;13327:366;;;:::o;13699:419::-;13865:4;13903:2;13892:9;13888:18;13880:26;;13952:9;13946:4;13942:20;13938:1;13927:9;13923:17;13916:47;13980:131;14106:4;13980:131;:::i;:::-;13972:139;;13699:419;;;:::o;14124:222::-;14264:34;14260:1;14252:6;14248:14;14241:58;14333:5;14328:2;14320:6;14316:15;14309:30;14124:222;:::o;14352:366::-;14494:3;14515:67;14579:2;14574:3;14515:67;:::i;:::-;14508:74;;14591:93;14680:3;14591:93;:::i;:::-;14709:2;14704:3;14700:12;14693:19;;14352:366;;;:::o;14724:419::-;14890:4;14928:2;14917:9;14913:18;14905:26;;14977:9;14971:4;14967:20;14963:1;14952:9;14948:17;14941:47;15005:131;15131:4;15005:131;:::i;:::-;14997:139;;14724:419;;;:::o;15149:228::-;15289:34;15285:1;15277:6;15273:14;15266:58;15358:11;15353:2;15345:6;15341:15;15334:36;15149:228;:::o;15383:366::-;15525:3;15546:67;15610:2;15605:3;15546:67;:::i;:::-;15539:74;;15622:93;15711:3;15622:93;:::i;:::-;15740:2;15735:3;15731:12;15724:19;;15383:366;;;:::o;15755:419::-;15921:4;15959:2;15948:9;15944:18;15936:26;;16008:9;16002:4;15998:20;15994:1;15983:9;15979:17;15972:47;16036:131;16162:4;16036:131;:::i;:::-;16028:139;;15755:419;;;:::o;16180:191::-;16220:4;16240:20;16258:1;16240:20;:::i;:::-;16235:25;;16274:20;16292:1;16274:20;:::i;:::-;16269:25;;16313:1;16310;16307:8;16304:34;;;16318:18;;:::i;:::-;16304:34;16363:1;16360;16356:9;16348:17;;16180:191;;;;:::o;16377:297::-;16517:34;16513:1;16505:6;16501:14;16494:58;16586:34;16581:2;16573:6;16569:15;16562:59;16655:11;16650:2;16642:6;16638:15;16631:36;16377:297;:::o;16680:366::-;16822:3;16843:67;16907:2;16902:3;16843:67;:::i;:::-;16836:74;;16919:93;17008:3;16919:93;:::i;:::-;17037:2;17032:3;17028:12;17021:19;;16680:366;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17052:419;;;:::o;17477:175::-;17617:27;17613:1;17605:6;17601:14;17594:51;17477:175;:::o;17658:366::-;17800:3;17821:67;17885:2;17880:3;17821:67;:::i;:::-;17814:74;;17897:93;17986:3;17897:93;:::i;:::-;18015:2;18010:3;18006:12;17999:19;;17658:366;;;:::o;18030:419::-;18196:4;18234:2;18223:9;18219:18;18211:26;;18283:9;18277:4;18273:20;18269:1;18258:9;18254:17;18247:47;18311:131;18437:4;18311:131;:::i;:::-;18303:139;;18030:419;;;:::o;18455:176::-;18595:28;18591:1;18583:6;18579:14;18572:52;18455:176;:::o;18637:366::-;18779:3;18800:67;18864:2;18859:3;18800:67;:::i;:::-;18793:74;;18876:93;18965:3;18876:93;:::i;:::-;18994:2;18989:3;18985:12;18978:19;;18637:366;;;:::o;19009:419::-;19175:4;19213:2;19202:9;19198:18;19190:26;;19262:9;19256:4;19252:20;19248:1;19237:9;19233:17;19226:47;19290:131;19416:4;19290:131;:::i;:::-;19282:139;;19009:419;;;:::o;19434:233::-;19473:3;19496:24;19514:5;19496:24;:::i;:::-;19487:33;;19542:66;19535:5;19532:77;19529:103;;19612:18;;:::i;:::-;19529:103;19659:1;19652:5;19648:13;19641:20;;19434:233;;;:::o;19673:180::-;19721:77;19718:1;19711:88;19818:4;19815:1;19808:15;19842:4;19839:1;19832:15;19859:180;19907:77;19904:1;19897:88;20004:4;20001:1;19994:15;20028:4;20025:1;20018:15;20045:143;20102:5;20133:6;20127:13;20118:22;;20149:33;20176:5;20149:33;:::i;:::-;20045:143;;;;:::o;20194:351::-;20264:6;20313:2;20301:9;20292:7;20288:23;20284:32;20281:119;;;20319:79;;:::i;:::-;20281:119;20439:1;20464:64;20520:7;20511:6;20500:9;20496:22;20464:64;:::i;:::-;20454:74;;20410:128;20194:351;;;;:::o;20551:85::-;20596:7;20625:5;20614:16;;20551:85;;;:::o;20642:60::-;20670:3;20691:5;20684:12;;20642:60;;;:::o;20708:158::-;20766:9;20799:61;20817:42;20826:32;20852:5;20826:32;:::i;:::-;20817:42;:::i;:::-;20799:61;:::i;:::-;20786:74;;20708:158;;;:::o;20872:147::-;20967:45;21006:5;20967:45;:::i;:::-;20962:3;20955:58;20872:147;;:::o;21025:114::-;21092:6;21126:5;21120:12;21110:22;;21025:114;;;:::o;21145:184::-;21244:11;21278:6;21273:3;21266:19;21318:4;21313:3;21309:14;21294:29;;21145:184;;;;:::o;21335:132::-;21402:4;21425:3;21417:11;;21455:4;21450:3;21446:14;21438:22;;21335:132;;;:::o;21473:108::-;21550:24;21568:5;21550:24;:::i;:::-;21545:3;21538:37;21473:108;;:::o;21587:179::-;21656:10;21677:46;21719:3;21711:6;21677:46;:::i;:::-;21755:4;21750:3;21746:14;21732:28;;21587:179;;;;:::o;21772:113::-;21842:4;21874;21869:3;21865:14;21857:22;;21772:113;;;:::o;21921:732::-;22040:3;22069:54;22117:5;22069:54;:::i;:::-;22139:86;22218:6;22213:3;22139:86;:::i;:::-;22132:93;;22249:56;22299:5;22249:56;:::i;:::-;22328:7;22359:1;22344:284;22369:6;22366:1;22363:13;22344:284;;;22445:6;22439:13;22472:63;22531:3;22516:13;22472:63;:::i;:::-;22465:70;;22558:60;22611:6;22558:60;:::i;:::-;22548:70;;22404:224;22391:1;22388;22384:9;22379:14;;22344:284;;;22348:14;22644:3;22637:10;;22045:608;;;21921:732;;;;:::o;22659:831::-;22922:4;22960:3;22949:9;22945:19;22937:27;;22974:71;23042:1;23031:9;23027:17;23018:6;22974:71;:::i;:::-;23055:80;23131:2;23120:9;23116:18;23107:6;23055:80;:::i;:::-;23182:9;23176:4;23172:20;23167:2;23156:9;23152:18;23145:48;23210:108;23313:4;23304:6;23210:108;:::i;:::-;23202:116;;23328:72;23396:2;23385:9;23381:18;23372:6;23328:72;:::i;:::-;23410:73;23478:3;23467:9;23463:19;23454:6;23410:73;:::i;:::-;22659:831;;;;;;;;:::o;23496:180::-;23544:77;23541:1;23534:88;23641:4;23638:1;23631:15;23665:4;23662:1;23655:15;23682:185;23722:1;23739:20;23757:1;23739:20;:::i;:::-;23734:25;;23773:20;23791:1;23773:20;:::i;:::-;23768:25;;23812:1;23802:35;;23817:18;;:::i;:::-;23802:35;23859:1;23856;23852:9;23847:14;;23682:185;;;;:::o;23873:220::-;24013:34;24009:1;24001:6;23997:14;23990:58;24082:3;24077:2;24069:6;24065:15;24058:28;23873:220;:::o;24099:366::-;24241:3;24262:67;24326:2;24321:3;24262:67;:::i;:::-;24255:74;;24338:93;24427:3;24338:93;:::i;:::-;24456:2;24451:3;24447:12;24440:19;;24099:366;;;:::o;24471:419::-;24637:4;24675:2;24664:9;24660:18;24652:26;;24724:9;24718:4;24714:20;24710:1;24699:9;24695:17;24688:47;24752:131;24878:4;24752:131;:::i;:::-;24744:139;;24471:419;;;:::o;24896:177::-;25036:29;25032:1;25024:6;25020:14;25013:53;24896:177;:::o;25079:366::-;25221:3;25242:67;25306:2;25301:3;25242:67;:::i;:::-;25235:74;;25318:93;25407:3;25318:93;:::i;:::-;25436:2;25431:3;25427:12;25420:19;;25079:366;;;:::o;25451:419::-;25617:4;25655:2;25644:9;25640:18;25632:26;;25704:9;25698:4;25694:20;25690:1;25679:9;25675:17;25668:47;25732:131;25858:4;25732:131;:::i;:::-;25724:139;;25451:419;;;:::o

Swarm Source

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