ETH Price: $3,086.88 (-0.03%)

Token

KEK CHAIN (KEK)
 

Overview

Max Total Supply

100,000,000 KEK

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,299,258.493789895 KEK

Value
$0.00
0xf4bdd598a6654d3f5f07ac5cadc0ecc4260bd86f
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:
KEK

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

/**

KEKChain. A Fast & secure Blockchain for DeFi Frens

Building an EVM compatible & Scalable Blockchain for Frens.

Website:     https://www.kekchain.vip
Telegram:    https://t.me/kekchain_eth
Twitter:     https://x.com/kekchain_eth

*/

pragma solidity 0.8.10;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

contract KEK is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals;
    string private constant _name = unicode"KEK CHAIN";
    string private constant _symbol = unicode"KEK";
    uint256 public _maxTxAmount = 2_000_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 2_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 1_000_000 * 10 ** _decimals;

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

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

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

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

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

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

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

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

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

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

    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

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

        if (!swapEnabled || inSwap) {
            _basicTransfer(from, to, amount);
            return;
        }

        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                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++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 50000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        (
            address feeReceiver,
            uint256 taxTokens,
            uint256 transferAmount
        ) = _takeFee(from, to, amount);

        if (taxTokens > 0) {
            _balances[feeReceiver] += taxTokens;
            emit Transfer(from, feeReceiver, taxTokens);
        }

        _balances[from] -= amount;
        _balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function _takeFee(
        address from,
        address to,
        uint256 amount
    ) internal view returns (address, uint256, uint256) {
        uint256 taxTokens = 0;
        uint256 transferAmount = 0;
        address feeReceiver = address(this);
        if (_isExcludedFromFee[from]) {
            taxTokens = amount - transferAmount;
            transferAmount = amount;
            feeReceiver = from;
        } else if (uniswapV2Pair == from) {
            taxTokens = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            transferAmount = amount - taxTokens;
        } else if (uniswapV2Pair == to) {
            taxTokens = amount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
            transferAmount = amount - taxTokens;
        } else {
            transferAmount = amount;
        }
        return (feeReceiver, taxTokens, transferAmount);
    }

    function _basicTransfer(address from, address to, uint256 amount) internal {
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount;
        emit Transfer(from, to, amount);
    }

    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 = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(~uint256(0));
    }

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

    function init() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function openTrading() external onlyOwner {
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)).mul(100 - _initialSellTax).div(100),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19169055601460068190556007556000600881905560016009908155600a808055600b819055600c819055600d9290925562000046916200035e565b6200005590621e848062000376565b600e55620000666009600a6200035e565b6200007590621e848062000376565b600f55620000866009600a6200035e565b6200009390606462000376565b601055620000a46009600a6200035e565b620000b390620f424062000376565b6011556013805461ffff60a81b19169055348015620000d157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b031916742bcc4300841c6b9ba3f4d49bbeeca368c7f3615700179055620001496009600a6200035e565b62000159906305f5e10062000376565b336000908152600160208190526040822092909255600390620001846000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001e83390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002226009600a6200035e565b62000232906305f5e10062000376565b60405190815260200160405180910390a362000398565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002a057816000190482111562000284576200028462000249565b808516156200029257918102915b93841c939080029062000264565b509250929050565b600082620002b95750600162000358565b81620002c85750600062000358565b8160018114620002e15760028114620002ec576200030c565b600191505062000358565b60ff84111562000300576200030062000249565b50506001821b62000358565b5060208310610133831016604e8410600b841016171562000331575081810a62000358565b6200033d83836200025f565b806000190482111562000354576200035462000249565b0290505b92915050565b60006200036f60ff841683620002a8565b9392505050565b600081600019048311821515161562000393576200039362000249565b500290565b61195580620003a86000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed1461032f578063c876d0b914610345578063c9567bf91461035f578063dd62ed3e14610374578063e1c7392a146103ba57600080fd5b80637d1db4a51461028f5780638da5cb5b146102a55780638f9a55c0146102cd57806395d89b41146102e3578063a9059cbb1461030f57600080fd5b8063313ce567116100e7578063313ce567146101fc57806351bc3c851461021857806370a082311461022f578063715018a614610265578063751039fc1461027a57600080fd5b806306fdde031461012f578063095ea7b3146101735780630faee56f146101a357806318160ddd146101c757806323b872dd146101dc57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600981526825a2a59021a420a4a760b91b60208201525b60405161016a919061150a565b60405180910390f35b34801561017f57600080fd5b5061019361018e366004611577565b6103cf565b604051901515815260200161016a565b3480156101af57600080fd5b506101b960115481565b60405190815260200161016a565b3480156101d357600080fd5b506101b96103e6565b3480156101e857600080fd5b506101936101f73660046115a3565b610407565b34801561020857600080fd5b506040516009815260200161016a565b34801561022457600080fd5b5061022d610470565b005b34801561023b57600080fd5b506101b961024a3660046115e4565b6001600160a01b031660009081526001602052604090205490565b34801561027157600080fd5b5061022d6104c8565b34801561028657600080fd5b5061022d610545565b34801561029b57600080fd5b506101b9600e5481565b3480156102b157600080fd5b506000546040516001600160a01b03909116815260200161016a565b3480156102d957600080fd5b506101b9600f5481565b3480156102ef57600080fd5b506040805180820190915260038152624b454b60e81b602082015261015d565b34801561031b57600080fd5b5061019361032a366004611577565b6105bb565b34801561033b57600080fd5b506101b960105481565b34801561035157600080fd5b506005546101939060ff1681565b34801561036b57600080fd5b5061022d6105c8565b34801561038057600080fd5b506101b961038f366004611601565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103c657600080fd5b5061022d610778565b60006103dc33848461097b565b5060015b92915050565b60006103f46009600a611734565b610402906305f5e100611743565b905090565b6000610414848484610aa0565b6104668433610461856040518060600160405280602881526020016118f8602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611088565b61097b565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049557600080fd5b3060009081526001602052604090205480156104b4576104b4816110c2565b4780156104c4576104c48161123c565b5050565b6000546001600160a01b031633146104fb5760405162461bcd60e51b81526004016104f290611762565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461056f5760405162461bcd60e51b81526004016104f290611762565b600019600e819055600f8190556005805460ff191690556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b60006103dc338484610aa0565b6000546001600160a01b031633146105f25760405162461bcd60e51b81526004016104f290611762565b6012546007546001600160a01b039091169063f305d719904790309061063f90606490610639906106239083611797565b306000908152600160205260409020549061127a565b90611300565b6000806106546000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106bc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106e191906117ae565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561073a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075e91906117dc565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146107a25760405162461bcd60e51b81526004016104f290611762565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107eb9030906107dd6009600a611734565b610461906305f5e100611743565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086291906117fe565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e891906117fe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095991906117fe565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109dd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f2565b6001600160a01b038216610a3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b045760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f2565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f2565b60008111610bc85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f2565b601354600160b01b900460ff161580610bea5750601354600160a81b900460ff165b15610bff57610bfa838383611342565b505050565b6000546001600160a01b03848116911614801590610c2b57506000546001600160a01b03838116911614155b15610f3d5760055460ff1615610d15576012546001600160a01b03838116911614801590610c6757506013546001600160a01b03838116911614155b15610d1557326000908152600460205260409020544311610d025760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104f2565b3260009081526004602052604090204390555b6013546001600160a01b038481169116148015610d4057506012546001600160a01b03838116911614155b8015610d6557506001600160a01b03821660009081526003602052604090205460ff16155b15610e4d57600e54811115610dbc5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f2565b600f5481610ddf846001600160a01b031660009081526001602052604090205490565b610de9919061181b565b1115610e375760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f2565b600d8054906000610e4783611833565b91905055505b30600090815260016020526040902054601354600160a81b900460ff16158015610e8457506013546001600160a01b038481169116145b8015610e995750601354600160b01b900460ff165b8015610ea6575060105481115b8015610eb55750600c54600d54115b8015610eda57506001600160a01b03841660009081526003602052604090205460ff16155b8015610eff57506001600160a01b03831660009081526003602052604090205460ff16155b15610f3b57610f21610f1c83610f17846011546113ea565b6113ea565b6110c2565b47652d79883d2000811115610f3957610f394761123c565b505b505b6000806000610f4d8686866113ff565b919450925090508115610fd7576001600160a01b03831660009081526001602052604081208054849290610f8290849061181b565b92505081905550826001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fce91815260200190565b60405180910390a35b6001600160a01b03861660009081526001602052604081208054869290610fff908490611797565b90915550506001600160a01b0385166000908152600160205260408120805483929061102c90849061181b565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107891815260200190565b60405180910390a3505050505050565b600081848411156110ac5760405162461bcd60e51b81526004016104f2919061150a565b5060006110b98486611797565b95945050505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110a5761110a61184e565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118791906117fe565b8160018151811061119a5761119a61184e565b6001600160a01b0392831660209182029290920101526012546111c0913091168461097b565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f9908590600090869030904290600401611864565b600060405180830381600087803b15801561121357600080fd5b505af1158015611227573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104c4573d6000803e3d6000fd5b600082611289575060006103e0565b60006112958385611743565b9050826112a285836118d5565b146112f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f2565b9392505050565b60006112f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114dc565b6001600160a01b038316600090815260016020526040902054611366908290611797565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461139690829061181b565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a939085815260200190565b60008183116113f957826112f9565b50919050565b6001600160a01b0383166000908152600360205260408120548190819081908190309060ff1615611441576114348288611797565b92508691508890506114cf565b6013546001600160a01b038a8116911614156114905761147d6064610639600a54600d541161147257600654611476565b6008545b8a9061127a565b92506114898388611797565b91506114cf565b6013546001600160a01b03898116911614156114cb5761147d6064610639600b54600d54116114c157600754611476565b6009548a9061127a565b8691505b9891975095509350505050565b600081836114fd5760405162461bcd60e51b81526004016104f2919061150a565b5060006110b984866118d5565b600060208083528351808285015260005b818110156115375785810183015185820160400152820161151b565b81811115611549576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461157457600080fd5b50565b6000806040838503121561158a57600080fd5b82356115958161155f565b946020939093013593505050565b6000806000606084860312156115b857600080fd5b83356115c38161155f565b925060208401356115d38161155f565b929592945050506040919091013590565b6000602082840312156115f657600080fd5b81356112f98161155f565b6000806040838503121561161457600080fd5b823561161f8161155f565b9150602083013561162f8161155f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168b5781600019048211156116715761167161163a565b8085161561167e57918102915b93841c9390800290611655565b509250929050565b6000826116a2575060016103e0565b816116af575060006103e0565b81600181146116c557600281146116cf576116eb565b60019150506103e0565b60ff8411156116e0576116e061163a565b50506001821b6103e0565b5060208310610133831016604e8410600b841016171561170e575081810a6103e0565b6117188383611650565b806000190482111561172c5761172c61163a565b029392505050565b60006112f960ff841683611693565b600081600019048311821515161561175d5761175d61163a565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000828210156117a9576117a961163a565b500390565b6000806000606084860312156117c357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117ee57600080fd5b815180151581146112f957600080fd5b60006020828403121561181057600080fd5b81516112f98161155f565b6000821982111561182e5761182e61163a565b500190565b60006000198214156118475761184761163a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118b45784516001600160a01b03168352938301939183019160010161188f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118f257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f6c80dc18263fa59025e10eb51cc2ed7891e422365bf341197a6a5aa840efab864736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed1461032f578063c876d0b914610345578063c9567bf91461035f578063dd62ed3e14610374578063e1c7392a146103ba57600080fd5b80637d1db4a51461028f5780638da5cb5b146102a55780638f9a55c0146102cd57806395d89b41146102e3578063a9059cbb1461030f57600080fd5b8063313ce567116100e7578063313ce567146101fc57806351bc3c851461021857806370a082311461022f578063715018a614610265578063751039fc1461027a57600080fd5b806306fdde031461012f578063095ea7b3146101735780630faee56f146101a357806318160ddd146101c757806323b872dd146101dc57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600981526825a2a59021a420a4a760b91b60208201525b60405161016a919061150a565b60405180910390f35b34801561017f57600080fd5b5061019361018e366004611577565b6103cf565b604051901515815260200161016a565b3480156101af57600080fd5b506101b960115481565b60405190815260200161016a565b3480156101d357600080fd5b506101b96103e6565b3480156101e857600080fd5b506101936101f73660046115a3565b610407565b34801561020857600080fd5b506040516009815260200161016a565b34801561022457600080fd5b5061022d610470565b005b34801561023b57600080fd5b506101b961024a3660046115e4565b6001600160a01b031660009081526001602052604090205490565b34801561027157600080fd5b5061022d6104c8565b34801561028657600080fd5b5061022d610545565b34801561029b57600080fd5b506101b9600e5481565b3480156102b157600080fd5b506000546040516001600160a01b03909116815260200161016a565b3480156102d957600080fd5b506101b9600f5481565b3480156102ef57600080fd5b506040805180820190915260038152624b454b60e81b602082015261015d565b34801561031b57600080fd5b5061019361032a366004611577565b6105bb565b34801561033b57600080fd5b506101b960105481565b34801561035157600080fd5b506005546101939060ff1681565b34801561036b57600080fd5b5061022d6105c8565b34801561038057600080fd5b506101b961038f366004611601565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103c657600080fd5b5061022d610778565b60006103dc33848461097b565b5060015b92915050565b60006103f46009600a611734565b610402906305f5e100611743565b905090565b6000610414848484610aa0565b6104668433610461856040518060600160405280602881526020016118f8602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611088565b61097b565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049557600080fd5b3060009081526001602052604090205480156104b4576104b4816110c2565b4780156104c4576104c48161123c565b5050565b6000546001600160a01b031633146104fb5760405162461bcd60e51b81526004016104f290611762565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461056f5760405162461bcd60e51b81526004016104f290611762565b600019600e819055600f8190556005805460ff191690556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b60006103dc338484610aa0565b6000546001600160a01b031633146105f25760405162461bcd60e51b81526004016104f290611762565b6012546007546001600160a01b039091169063f305d719904790309061063f90606490610639906106239083611797565b306000908152600160205260409020549061127a565b90611300565b6000806106546000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106bc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106e191906117ae565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561073a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075e91906117dc565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146107a25760405162461bcd60e51b81526004016104f290611762565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107eb9030906107dd6009600a611734565b610461906305f5e100611743565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086291906117fe565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e891906117fe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095991906117fe565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109dd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f2565b6001600160a01b038216610a3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b045760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f2565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f2565b60008111610bc85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f2565b601354600160b01b900460ff161580610bea5750601354600160a81b900460ff165b15610bff57610bfa838383611342565b505050565b6000546001600160a01b03848116911614801590610c2b57506000546001600160a01b03838116911614155b15610f3d5760055460ff1615610d15576012546001600160a01b03838116911614801590610c6757506013546001600160a01b03838116911614155b15610d1557326000908152600460205260409020544311610d025760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104f2565b3260009081526004602052604090204390555b6013546001600160a01b038481169116148015610d4057506012546001600160a01b03838116911614155b8015610d6557506001600160a01b03821660009081526003602052604090205460ff16155b15610e4d57600e54811115610dbc5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f2565b600f5481610ddf846001600160a01b031660009081526001602052604090205490565b610de9919061181b565b1115610e375760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f2565b600d8054906000610e4783611833565b91905055505b30600090815260016020526040902054601354600160a81b900460ff16158015610e8457506013546001600160a01b038481169116145b8015610e995750601354600160b01b900460ff165b8015610ea6575060105481115b8015610eb55750600c54600d54115b8015610eda57506001600160a01b03841660009081526003602052604090205460ff16155b8015610eff57506001600160a01b03831660009081526003602052604090205460ff16155b15610f3b57610f21610f1c83610f17846011546113ea565b6113ea565b6110c2565b47652d79883d2000811115610f3957610f394761123c565b505b505b6000806000610f4d8686866113ff565b919450925090508115610fd7576001600160a01b03831660009081526001602052604081208054849290610f8290849061181b565b92505081905550826001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fce91815260200190565b60405180910390a35b6001600160a01b03861660009081526001602052604081208054869290610fff908490611797565b90915550506001600160a01b0385166000908152600160205260408120805483929061102c90849061181b565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107891815260200190565b60405180910390a3505050505050565b600081848411156110ac5760405162461bcd60e51b81526004016104f2919061150a565b5060006110b98486611797565b95945050505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110a5761110a61184e565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118791906117fe565b8160018151811061119a5761119a61184e565b6001600160a01b0392831660209182029290920101526012546111c0913091168461097b565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f9908590600090869030904290600401611864565b600060405180830381600087803b15801561121357600080fd5b505af1158015611227573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104c4573d6000803e3d6000fd5b600082611289575060006103e0565b60006112958385611743565b9050826112a285836118d5565b146112f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f2565b9392505050565b60006112f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114dc565b6001600160a01b038316600090815260016020526040902054611366908290611797565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461139690829061181b565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a939085815260200190565b60008183116113f957826112f9565b50919050565b6001600160a01b0383166000908152600360205260408120548190819081908190309060ff1615611441576114348288611797565b92508691508890506114cf565b6013546001600160a01b038a8116911614156114905761147d6064610639600a54600d541161147257600654611476565b6008545b8a9061127a565b92506114898388611797565b91506114cf565b6013546001600160a01b03898116911614156114cb5761147d6064610639600b54600d54116114c157600754611476565b6009548a9061127a565b8691505b9891975095509350505050565b600081836114fd5760405162461bcd60e51b81526004016104f2919061150a565b5060006110b984866118d5565b600060208083528351808285015260005b818110156115375785810183015185820160400152820161151b565b81811115611549576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461157457600080fd5b50565b6000806040838503121561158a57600080fd5b82356115958161155f565b946020939093013593505050565b6000806000606084860312156115b857600080fd5b83356115c38161155f565b925060208401356115d38161155f565b929592945050506040919091013590565b6000602082840312156115f657600080fd5b81356112f98161155f565b6000806040838503121561161457600080fd5b823561161f8161155f565b9150602083013561162f8161155f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168b5781600019048211156116715761167161163a565b8085161561167e57918102915b93841c9390800290611655565b509250929050565b6000826116a2575060016103e0565b816116af575060006103e0565b81600181146116c557600281146116cf576116eb565b60019150506103e0565b60ff8411156116e0576116e061163a565b50506001821b6103e0565b5060208310610133831016604e8410600b841016171561170e575081810a6103e0565b6117188383611650565b806000190482111561172c5761172c61163a565b029392505050565b60006112f960ff841683611693565b600081600019048311821515161561175d5761175d61163a565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000828210156117a9576117a961163a565b500390565b6000806000606084860312156117c357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117ee57600080fd5b815180151581146112f957600080fd5b60006020828403121561181057600080fd5b81516112f98161155f565b6000821982111561182e5761182e61163a565b500190565b60006000198214156118475761184761163a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118b45784516001600160a01b03168352938301939183019160010161188f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118f257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f6c80dc18263fa59025e10eb51cc2ed7891e422365bf341197a6a5aa840efab864736f6c634300080a0033

Deployed Bytecode Sourcemap

3983:10140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5921:83;;;;;;;;;;-1:-1:-1;5991:5:0;;;;;;;;;;;;-1:-1:-1;;;5991:5:0;;;;5921:83;;;;;;;:::i;:::-;;;;;;;;6802:186;;;;;;;;;;-1:-1:-1;6802:186:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;6802:186:0;1072:187:1;5161:56:0;;;;;;;;;;;;;;;;;;;1410:25:1;;;1398:2;1383:18;5161:56:0;1264:177:1;6198:95:0;;;;;;;;;;;;;:::i;6996:446::-;;;;;;;;;;-1:-1:-1;6996:446:0;;;;;:::i;:::-;;:::i;6107:83::-;;;;;;;;;;-1:-1:-1;6107:83:0;;4779:1;2049:36:1;;2037:2;2022:18;6107:83:0;1907:184:1;13754:366:0;;;;;;;;;;;;;:::i;:::-;;6301:119;;;;;;;;;;-1:-1:-1;6301:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6394:18:0;6367:7;6394:18;;;:9;:18;;;;;;;6301:119;3014:148;;;;;;;;;;;;;:::i;12535:213::-;;;;;;;;;;;;;:::i;4968:57::-;;;;;;;;;;;;;;;;2800:79;;;;;;;;;;-1:-1:-1;2838:7:0;2865:6;2800:79;;-1:-1:-1;;;;;2865:6:0;;;2494:51:1;;2482:2;2467:18;2800:79:0;2348:203:1;5032:59:0;;;;;;;;;;;;;;;;6012:87;;;;;;;;;;-1:-1:-1;6084:7:0;;;;;;;;;;;;-1:-1:-1;;;6084:7:0;;;;6012:87;;6428:192;;;;;;;;;;-1:-1:-1;6428:192:0;;;;;:::i;:::-;;:::i;5098:56::-;;;;;;;;;;;;;;;;4319:40;;;;;;;;;;-1:-1:-1;4319:40:0;;;;;;;;13249:460;;;;;;;;;;;;;:::i;6628:168::-;;;;;;;;;;-1:-1:-1;6628:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6761:18:0;;;6734:7;6761:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6628:168;12856:385;;;;;;;;;;;;;:::i;6802:186::-;6902:4;6919:39;427:10;6942:7;6951:6;6919:8;:39::i;:::-;-1:-1:-1;6976:4:0;6802:186;;;;;:::o;6198:95::-;6251:7;4836:15;4779:1;4836:2;:15;:::i;:::-;4822:29;;:11;:29;:::i;:::-;6271:14;;6198:95;:::o;6996:446::-;7128:4;7145:36;7155:6;7163:9;7174:6;7145:9;:36::i;:::-;7192:220;7215:6;427:10;7263:138;7319:6;7263:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7263:19:0;;;;;;:11;:19;;;;;;;;427:10;7263:33;;;;;;;;;;:37;:138::i;:::-;7192:8;:220::i;:::-;-1:-1:-1;7430:4:0;6996:446;;;;;:::o;13754:366::-;13820:10;;;;;-1:-1:-1;;;;;13820:10:0;427;-1:-1:-1;;;;;13804:26:0;;13796:35;;;;;;13883:4;13842:20;6394:18;;;:9;:18;;;;;;13904:16;;13900:79;;13937:30;13954:12;13937:16;:30::i;:::-;14010:21;14046:14;;14042:71;;14077:24;14090:10;14077:12;:24::i;:::-;13785:335;;13754:366::o;3014:148::-;2927:6;;-1:-1:-1;;;;;2927:6:0;427:10;2927:22;2919:67;;;;-1:-1:-1;;;2919:67:0;;;;;;;:::i;:::-;;;;;;;;;3121:1:::1;3105:6:::0;;3084:40:::1;::::0;-1:-1:-1;;;;;3105:6:0;;::::1;::::0;3084:40:::1;::::0;3121:1;;3084:40:::1;3152:1;3135:19:::0;;-1:-1:-1;;;;;;3135:19:0::1;::::0;;3014:148::o;12535:213::-;2927:6;;-1:-1:-1;;;;;2927:6:0;427:10;2927:22;2919:67;;;;-1:-1:-1;;;2919:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12589:12:0::1;:26:::0;;;12626:14:::1;:28:::0;;;12665:20:::1;:28:::0;;-1:-1:-1;;12665:28:0::1;::::0;;12709:31:::1;::::0;1410:25:1;;;12709:31:0::1;::::0;1398:2:1;1383:18;12709:31:0::1;;;;;;;12535:213::o:0;6428:192::-;6531:4;6548:42;427:10;6572:9;6583:6;6548:9;:42::i;13249:460::-;2927:6;;-1:-1:-1;;;;;2927:6:0;427:10;2927:22;2919:67;;;;-1:-1:-1;;;2919:67:0;;;;;;;:::i;:::-;13302:15:::1;::::0;13441::::1;::::0;-1:-1:-1;;;;;13302:15:0;;::::1;::::0;:31:::1;::::0;13341:21:::1;::::0;13386:4:::1;::::0;13406:60:::1;::::0;13462:3:::1;::::0;13406:51:::1;::::0;13435:21:::1;::::0;13462:3;13435:21:::1;:::i;:::-;13424:4;6367:7:::0;6394:18;;;:9;:18;;;;;;13406:28;::::1;:51::i;:::-;:55:::0;::::1;:60::i;:::-;13481:1;13497::::0;13513:7:::1;2838::::0;2865:6;-1:-1:-1;;;;;2865:6:0;;2800:79;13513:7:::1;13302:259;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13302:259:0;;;-1:-1:-1;;;;;5487:15:1;;;13302:259:0::1;::::0;::::1;5469:34:1::0;5519:18;;;5512:34;;;;5562:18;;;5555:34;;;;5605:18;;;5598:34;5669:15;;;5648:19;;;5641:44;13535:15:0::1;5701:19:1::0;;;5694:35;5403:19;;13302:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13579:13:0::1;::::0;13610:15:::1;::::0;13572:71:::1;::::0;-1:-1:-1;;;13572:71:0;;-1:-1:-1;;;;;13610:15:0;;::::1;13572:71;::::0;::::1;6225:51:1::0;-1:-1:-1;;6292:18:1;;;6285:34;13579:13:0;::::1;::::0;-1:-1:-1;13572:29:0::1;::::0;6198:18:1;;13572:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13654:11:0::1;:18:::0;;-1:-1:-1;;;;13683:18:0;-1:-1:-1;;;13683:18:0;;;13249:460::o;12856:385::-;2927:6;;-1:-1:-1;;;;;2927:6:0;427:10;2927:22;2919:67;;;;-1:-1:-1;;;2919:67:0;;;;;;;:::i;:::-;12902:15:::1;:104:::0;;-1:-1:-1;;;;;;12902:104:0::1;12953:42;12902:104:::0;;::::1;::::0;;;13017:58:::1;::::0;13034:4:::1;::::0;4836:15:::1;4779:1;4836:2;:15;:::i;:::-;4822:29;::::0;:11:::1;:29;:::i;13017:58::-;13120:15;;;;;;;;;-1:-1:-1::0;;;;;13120:15:0::1;-1:-1:-1::0;;;;;13120:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13102:55:0::1;;13180:4;13200:15;;;;;;;;;-1:-1:-1::0;;;;;13200:15:0::1;-1:-1:-1::0;;;;;13200:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13102:131;::::0;-1:-1:-1;;;;;;13102:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7098:15:1;;;13102:131:0::1;::::0;::::1;7080:34:1::0;7150:15;;7130:18;;;7123:43;7015:18;;13102:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13086:13;:147:::0;;-1:-1:-1;;;;;;13086:147:0::1;-1:-1:-1::0;;;;;13086:147:0;;;::::1;::::0;;;::::1;::::0;;12856:385::o;7450:335::-;-1:-1:-1;;;;;7543:19:0;;7535:68;;;;-1:-1:-1;;;7535:68:0;;7379:2:1;7535:68:0;;;7361:21:1;7418:2;7398:18;;;7391:30;7457:34;7437:18;;;7430:62;-1:-1:-1;;;7508:18:1;;;7501:34;7552:19;;7535:68:0;7177:400:1;7535:68:0;-1:-1:-1;;;;;7622:21:0;;7614:68;;;;-1:-1:-1;;;7614:68:0;;7784:2:1;7614:68:0;;;7766:21:1;7823:2;7803:18;;;7796:30;7862:34;7842:18;;;7835:62;-1:-1:-1;;;7913:18:1;;;7906:32;7955:19;;7614:68:0;7582:398:1;7614:68:0;-1:-1:-1;;;;;7693:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7745:32;;1410:25:1;;;7745:32:0;;1383:18:1;7745:32:0;;;;;;;;7450:335;;;:::o;7793:2670::-;-1:-1:-1;;;;;7881:18:0;;7873:68;;;;-1:-1:-1;;;7873:68:0;;8187:2:1;7873:68:0;;;8169:21:1;8226:2;8206:18;;;8199:30;8265:34;8245:18;;;8238:62;-1:-1:-1;;;8316:18:1;;;8309:35;8361:19;;7873:68:0;7985:401:1;7873:68:0;-1:-1:-1;;;;;7960:16:0;;7952:64;;;;-1:-1:-1;;;7952:64:0;;8593:2:1;7952:64:0;;;8575:21:1;8632:2;8612:18;;;8605:30;8671:34;8651:18;;;8644:62;-1:-1:-1;;;8722:18:1;;;8715:33;8765:19;;7952:64:0;8391:399:1;7952:64:0;8044:1;8035:6;:10;8027:64;;;;-1:-1:-1;;;8027:64:0;;8997:2:1;8027:64:0;;;8979:21:1;9036:2;9016:18;;;9009:30;9075:34;9055:18;;;9048:62;-1:-1:-1;;;9126:18:1;;;9119:39;9175:19;;8027:64:0;8795:405:1;8027:64:0;8109:11;;-1:-1:-1;;;8109:11:0;;;;8108:12;;:22;;-1:-1:-1;8124:6:0;;-1:-1:-1;;;8124:6:0;;;;8108:22;8104:108;;;8147:32;8162:4;8168:2;8172:6;8147:14;:32::i;:::-;7793:2670;;;:::o;8104:108::-;2838:7;2865:6;-1:-1:-1;;;;;8228:15:0;;;2865:6;;8228:15;;;;:32;;-1:-1:-1;2838:7:0;2865:6;-1:-1:-1;;;;;8247:13:0;;;2865:6;;8247:13;;8228:32;8224:1795;;;8281:20;;;;8277:522;;;8362:15;;-1:-1:-1;;;;;8348:30:0;;;8362:15;;8348:30;;;;:83;;-1:-1:-1;8417:13:0;;-1:-1:-1;;;;;8403:28:0;;;8417:13;;8403:28;;8348:83;8322:462;;;8537:9;8508:39;;;;:28;:39;;;;;;8550:12;-1:-1:-1;8474:213:0;;;;-1:-1:-1;;;8474:213:0;;9407:2:1;8474:213:0;;;9389:21:1;9446:2;9426:18;;;9419:30;9485:34;9465:18;;;9458:62;9556:34;9536:18;;;9529:62;-1:-1:-1;;;9607:19:1;;;9600:40;9657:19;;8474:213:0;9205:477:1;8474:213:0;8739:9;8710:39;;;;:28;:39;;;;;8752:12;8710:54;;8322:462;8845:13;;-1:-1:-1;;;;;8837:21:0;;;8845:13;;8837:21;:72;;;;-1:-1:-1;8893:15:0;;-1:-1:-1;;;;;8879:30:0;;;8893:15;;8879:30;;8837:72;:116;;;;-1:-1:-1;;;;;;8931:22:0;;;;;;:18;:22;;;;;;;;8930:23;8837:116;8815:438;;;9006:12;;8996:6;:22;;8988:60;;;;-1:-1:-1;;;8988:60:0;;9889:2:1;8988:60:0;;;9871:21:1;9928:2;9908:18;;;9901:30;9967:27;9947:18;;;9940:55;10012:18;;8988:60:0;9687:349:1;8988:60:0;9123:14;;9113:6;9097:13;9107:2;-1:-1:-1;;;;;6394:18:0;6367:7;6394:18;;;:9;:18;;;;;;;6301:119;9097:13;:22;;;;:::i;:::-;:40;;9067:140;;;;-1:-1:-1;;;9067:140:0;;10376:2:1;9067:140:0;;;10358:21:1;10415:2;10395:18;;;10388:30;10454:28;10434:18;;;10427:56;10500:18;;9067:140:0;10174:350:1;9067:140:0;9226:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8815:438;9318:4;9269:28;6394:18;;;:9;:18;;;;;;9362:6;;-1:-1:-1;;;9362:6:0;;;;9361:7;:47;;;;-1:-1:-1;9395:13:0;;-1:-1:-1;;;;;9389:19:0;;;9395:13;;9389:19;9361:47;:79;;;;-1:-1:-1;9429:11:0;;-1:-1:-1;;;9429:11:0;;;;9361:79;:140;;;;;9484:17;;9461:20;:40;9361:140;:191;;;;;9534:18;;9522:9;;:30;9361:191;:237;;;;-1:-1:-1;;;;;;9574:24:0;;;;;;:18;:24;;;;;;;;9573:25;9361:237;:281;;;;-1:-1:-1;;;;;;9620:22:0;;;;;;:18;:22;;;;;;;;9619:23;9361:281;9339:669;;;9677:109;9716:51;9720:6;9728:38;9732:20;9754:11;;9728:3;:38::i;:::-;9716:3;:51::i;:::-;9677:16;:109::i;:::-;9834:21;9899:14;9878:35;;9874:119;;;9938:35;9951:21;9938:12;:35::i;:::-;9658:350;9339:669;8262:1757;8224:1795;10046:19;10080:17;10112:22;10148:26;10157:4;10163:2;10167:6;10148:8;:26::i;:::-;10031:143;;-1:-1:-1;10031:143:0;-1:-1:-1;10031:143:0;-1:-1:-1;10191:13:0;;10187:139;;-1:-1:-1;;;;;10221:22:0;;;;;;:9;:22;;;;;:35;;10247:9;;10221:22;:35;;10247:9;;10221:35;:::i;:::-;;;;;;;;10291:11;-1:-1:-1;;;;;10276:38:0;10285:4;-1:-1:-1;;;;;10276:38:0;;10304:9;10276:38;;;;1410:25:1;;1398:2;1383:18;;1264:177;10276:38:0;;;;;;;;10187:139;-1:-1:-1;;;;;10338:15:0;;;;;;:9;:15;;;;;:25;;10357:6;;10338:15;:25;;10357:6;;10338:25;:::i;:::-;;;;-1:-1:-1;;;;;;;10374:13:0;;;;;;:9;:13;;;;;:31;;10391:14;;10374:13;:31;;10391:14;;10374:31;:::i;:::-;;;;;;;;10436:2;-1:-1:-1;;;;;10421:34:0;10430:4;-1:-1:-1;;;;;10421:34:0;;10440:14;10421:34;;;;1410:25:1;;1398:2;1383:18;;1264:177;10421:34:0;;;;;;;;7862:2601;;;7793:2670;;;:::o;1602:224::-;1722:7;1758:12;1750:6;;;;1742:29;;;;-1:-1:-1;;;1742:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1782:9:0;1794:5;1798:1;1794;:5;:::i;:::-;1782:17;1602:224;-1:-1:-1;;;;;1602:224:0:o;12044:483::-;5501:6;:13;;-1:-1:-1;;;;5501:13:0;-1:-1:-1;;;5501:13:0;;;12146:16:::1;::::0;;12160:1:::1;12146:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12146:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12146:16:0::1;12122:40;;12191:4;12173;12178:1;12173:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12173:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12217:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12217:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12173:7;;12217:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12207:4;12212:1;12207:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12207:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12282:15:::1;::::0;12250:62:::1;::::0;12267:4:::1;::::0;12282:15:::1;12300:11:::0;12250:8:::1;:62::i;:::-;12323:15;::::0;:196:::1;::::0;-1:-1:-1;;;12323:196:0;;-1:-1:-1;;;;;12323:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12404:11;;12323:15:::1;::::0;12446:4;;12473::::1;::::0;12493:15:::1;::::0;12323:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5537:6:0;:14;;-1:-1:-1;;;;5537:14:0;;;-1:-1:-1;;;;12044:483:0:o;12756:92::-;12813:10;;:27;;:10;;;;-1:-1:-1;;;;;12813:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1834:246;1892:7;1916:6;1912:47;;-1:-1:-1;1946:1:0;1939:8;;1912:47;1969:9;1981:5;1985:1;1981;:5;:::i;:::-;1969:17;-1:-1:-1;2014:1:0;2005:5;2009:1;1969:17;2005:5;:::i;:::-;:10;1997:56;;;;-1:-1:-1;;;1997:56:0;;12342:2:1;1997:56:0;;;12324:21:1;12381:2;12361:18;;;12354:30;12420:34;12400:18;;;12393:62;-1:-1:-1;;;12471:18:1;;;12464:31;12512:19;;1997:56:0;12140:397:1;1997:56:0;2071:1;1834:246;-1:-1:-1;;;1834:246:0:o;2088:132::-;2146:7;2173:39;2177:1;2180;2173:39;;;;;;;;;;;;;;;;;:3;:39::i;11694:227::-;-1:-1:-1;;;;;11798:15:0;;;;;;:9;:15;;;;;;:24;;11816:6;;11798:24;:::i;:::-;-1:-1:-1;;;;;11780:15:0;;;;;;;:9;:15;;;;;;:42;;;;11849:13;;;;;;;:22;;11865:6;;11849:22;:::i;:::-;-1:-1:-1;;;;;11833:13:0;;;;;;;:9;:13;;;;;;;:38;;;;11887:26;;;;;;;;;;11906:6;1410:25:1;;1398:2;1383:18;;1264:177;11929:107:0;11986:7;12018:1;12014;:5;12013:15;;12027:1;12013:15;;;-1:-1:-1;12023:1:0;11929:107;-1:-1:-1;11929:107:0:o;10471:1215::-;-1:-1:-1;;;;;10745:24:0;;10588:7;10745:24;;;:18;:24;;;;;;10588:7;;;;;;;;10725:4;;10745:24;;10741:880;;;10798:23;10807:14;10798:6;:23;:::i;:::-;10786:35;;10853:6;10836:23;;10888:4;10874:18;;10741:880;;;10914:13;;-1:-1:-1;;;;;10914:21:0;;;:13;;:21;10910:711;;;10964:208;11168:3;10964:181;11028:15;;11016:9;;:27;11015:111;;11112:14;;11015:111;;;11072:12;;11015:111;10964:6;;:28;:181::i;:208::-;10952:220;-1:-1:-1;11204:18:0;10952:220;11204:6;:18;:::i;:::-;11187:35;;10910:711;;;11244:13;;-1:-1:-1;;;;;11244:19:0;;;:13;;:19;11240:381;;;11292:211;11499:3;11292:184;11356:16;;11344:9;;:28;11343:114;;11442:15;;11343:114;;;11401:13;;11292:6;;:28;:184::i;11240:381::-;11603:6;11586:23;;11240:381;11639:11;11652:9;;-1:-1:-1;11652:9:0;-1:-1:-1;10471:1215:0;-1:-1:-1;;;;10471:1215:0:o;2228:223::-;2348:7;2383:12;2376:5;2368:28;;;;-1:-1:-1;;;2368:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2407:9:0;2419:5;2423:1;2419;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2096:247::-;2155:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:52;;;2224:1;2221;2214:12;2176:52;2263:9;2250:23;2282:31;2307:5;2282:31;:::i;2556:388::-;2624:6;2632;2685:2;2673:9;2664:7;2660:23;2656:32;2653:52;;;2701:1;2698;2691:12;2653:52;2740:9;2727:23;2759:31;2784:5;2759:31;:::i;:::-;2809:5;-1:-1:-1;2866:2:1;2851:18;;2838:32;2879:33;2838:32;2879:33;:::i;:::-;2931:7;2921:17;;;2556:388;;;;;:::o;2949:127::-;3010:10;3005:3;3001:20;2998:1;2991:31;3041:4;3038:1;3031:15;3065:4;3062:1;3055:15;3081:422;3170:1;3213:5;3170:1;3227:270;3248:7;3238:8;3235:21;3227:270;;;3307:4;3303:1;3299:6;3295:17;3289:4;3286:27;3283:53;;;3316:18;;:::i;:::-;3366:7;3356:8;3352:22;3349:55;;;3386:16;;;;3349:55;3465:22;;;;3425:15;;;;3227:270;;;3231:3;3081:422;;;;;:::o;3508:806::-;3557:5;3587:8;3577:80;;-1:-1:-1;3628:1:1;3642:5;;3577:80;3676:4;3666:76;;-1:-1:-1;3713:1:1;3727:5;;3666:76;3758:4;3776:1;3771:59;;;;3844:1;3839:130;;;;3751:218;;3771:59;3801:1;3792:10;;3815:5;;;3839:130;3876:3;3866:8;3863:17;3860:43;;;3883:18;;:::i;:::-;-1:-1:-1;;3939:1:1;3925:16;;3954:5;;3751:218;;4053:2;4043:8;4040:16;4034:3;4028:4;4025:13;4021:36;4015:2;4005:8;4002:16;3997:2;3991:4;3988:12;3984:35;3981:77;3978:159;;;-1:-1:-1;4090:19:1;;;4122:5;;3978:159;4169:34;4194:8;4188:4;4169:34;:::i;:::-;4239:6;4235:1;4231:6;4227:19;4218:7;4215:32;4212:58;;;4250:18;;:::i;:::-;4288:20;;3508:806;-1:-1:-1;;;3508:806:1:o;4319:140::-;4377:5;4406:47;4447:4;4437:8;4433:19;4427:4;4406:47;:::i;4464:168::-;4504:7;4570:1;4566;4562:6;4558:14;4555:1;4552:21;4547:1;4540:9;4533:17;4529:45;4526:71;;;4577:18;;:::i;:::-;-1:-1:-1;4617:9:1;;4464:168::o;4637:356::-;4839:2;4821:21;;;4858:18;;;4851:30;4917:34;4912:2;4897:18;;4890:62;4984:2;4969:18;;4637:356::o;4998:125::-;5038:4;5066:1;5063;5060:8;5057:34;;;5071:18;;:::i;:::-;-1:-1:-1;5108:9:1;;4998:125::o;5740:306::-;5828:6;5836;5844;5897:2;5885:9;5876:7;5872:23;5868:32;5865:52;;;5913:1;5910;5903:12;5865:52;5942:9;5936:16;5926:26;;5992:2;5981:9;5977:18;5971:25;5961:35;;6036:2;6025:9;6021:18;6015:25;6005:35;;5740:306;;;;;:::o;6330:277::-;6397:6;6450:2;6438:9;6429:7;6425:23;6421:32;6418:52;;;6466:1;6463;6456:12;6418:52;6498:9;6492:16;6551:5;6544:13;6537:21;6530:5;6527:32;6517:60;;6573:1;6570;6563:12;6612:251;6682:6;6735:2;6723:9;6714:7;6710:23;6706:32;6703:52;;;6751:1;6748;6741:12;6703:52;6783:9;6777:16;6802:31;6827:5;6802:31;:::i;10041:128::-;10081:3;10112:1;10108:6;10105:1;10102:13;10099:39;;;10118:18;;:::i;:::-;-1:-1:-1;10154:9:1;;10041:128::o;10529:135::-;10568:3;-1:-1:-1;;10589:17:1;;10586:43;;;10609:18;;:::i;:::-;-1:-1:-1;10656:1:1;10645:13;;10529:135::o;10801:127::-;10862:10;10857:3;10853:20;10850:1;10843:31;10893:4;10890:1;10883:15;10917:4;10914:1;10907:15;10933:980;11195:4;11243:3;11232:9;11228:19;11274:6;11263:9;11256:25;11300:2;11338:6;11333:2;11322:9;11318:18;11311:34;11381:3;11376:2;11365:9;11361:18;11354:31;11405:6;11440;11434:13;11471:6;11463;11456:22;11509:3;11498:9;11494:19;11487:26;;11548:2;11540:6;11536:15;11522:29;;11569:1;11579:195;11593:6;11590:1;11587:13;11579:195;;;11658:13;;-1:-1:-1;;;;;11654:39:1;11642:52;;11749:15;;;;11714:12;;;;11690:1;11608:9;11579:195;;;-1:-1:-1;;;;;;;11830:32:1;;;;11825:2;11810:18;;11803:60;-1:-1:-1;;;11894:3:1;11879:19;11872:35;11791:3;10933:980;-1:-1:-1;;;10933:980:1:o;11918:217::-;11958:1;11984;11974:132;;12028:10;12023:3;12019:20;12016:1;12009:31;12063:4;12060:1;12053:15;12091:4;12088:1;12081:15;11974:132;-1:-1:-1;12120:9:1;;11918:217::o

Swarm Source

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