ETH Price: $2,517.36 (+2.58%)

Token

Ethereum Cats (ECATS)
 

Overview

Max Total Supply

20,000,000,000 ECATS

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
64,317,319.752206729874040034 ECATS

Value
$0.00
0x36df7e198e428d0429dc6992a14884148803b06e
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:
ECATS

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/***
███████╗████████╗██╗░░██╗███████╗██████╗░███████╗██╗░░░██╗███╗░░░███╗    ░█████╗░░█████╗░████████╗░██████╗
██╔════╝╚══██╔══╝██║░░██║██╔════╝██╔══██╗██╔════╝██║░░░██║████╗░████║    ██╔══██╗██╔══██╗╚══██╔══╝██╔════╝
█████╗░░░░░██║░░░███████║█████╗░░██████╔╝█████╗░░██║░░░██║██╔████╔██║    ██║░░╚═╝███████║░░░██║░░░╚█████╗░
██╔══╝░░░░░██║░░░██╔══██║██╔══╝░░██╔══██╗██╔══╝░░██║░░░██║██║╚██╔╝██║    ██║░░██╗██╔══██║░░░██║░░░░╚═══██╗
███████╗░░░██║░░░██║░░██║███████╗██║░░██║███████╗╚██████╔╝██║░╚═╝░██║    ╚█████╔╝██║░░██║░░░██║░░░██████╔╝
╚══════╝░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚══════╝░╚═════╝░╚═╝░░░░░╚═╝    ░╚════╝░╚═╝░░╚═╝░░░╚═╝░░░╚═════╝░
 ::::::::::::::::::::::................................ 
 ::::::::..+=::::::::.................................. 
 :::::@%-   @#.-:::::.................................. 
 :::- .@@:+*@*==-:..................................... 
 ::=   =#::::::-:...............:...................... 
 ::@*=:+::::::::...............=##:..........:##:...... 
 ::::*@*::::::.................:###+..-=-...*###....... 
 ::.  :=:::::...................#+  .-***#:.  +#....... 
 ::*:*+%:::.....................=.:():=+  *-:()::-..... 
 ::-@%@##:.....................:::..=.:  :.=.::-....... 
 :::+   -=......................-#-.:.nnnnn=...-%:..... 
 ::::**@@@=....................:..-=:+vvvvv:=-=:.=..... 
 :::.:@@#=####.%#.*@+::.......=%*..:. :=*. .: =........ 
 :....-==@.:#=:@--%::##.:#*:@:-*:+=-   :.   ==......... 
 .....*-:##.=%.#:*@--%=.-#:=*.%+.#@#+.:...  =-......... 
 ....:*@.-:-::=++*%-+@%:%%=%@-@%=::::*@# #--*.......... 
 ....-+:++++*.:+%@#=+@::%*:%+.+@=--:::.    +=.......... 
 ....:%@%%%::++.=+%+#@:*@@-%*=-+=-=#@%*#* :#-.......... 
 ....:+--::*#::*#@#.%* -*#::% +@*:::..    :+........... 
 .....#%@@#+#@#*#:-  #: #@   - =%-:=- .**=*............ 
 ....:-:==%%#==@                *+@+.#.= =:............ 
 ....==#%%%:+#+%%-.  *......::::-+:::. -==............. 
 ...=----  -..=:%@@%%............:==*@@#+.............. 
 ..*:=++:*....:==:: #.............#-:: .:.............. 
 ..*-=##*.......==--=:............+*=*- -.............. 
 ..:=     :......+=.    :.........= +:++.::............ 
 ...:   . ........::    ..........+  -      ........... 
 .....................................:+*-............. 
 ...................................................... 
 ...................................................... 

Telegram: https://t.me/EthereumCats_portal

Website: https://ethereumcats.xyz/

Twitter: https://twitter.com/ETHEREUMCATS

Starting with 10/10 tax for initial 10 min then will go to 0/0 before lock & renounce
***/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

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

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    function isOwner() private view returns (bool) {
        return msg.sender == _owner;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMath {

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

        return c;
    }
}

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

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

    function factory() external pure returns (address);

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

contract ECATS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private constant _name = "Ethereum Cats";
    string private constant _symbol = "ECATS";
    uint256 private constant _totalSupply = 20_000_000_000 * 10**18;
    uint256 public maxWalletlimit = 300_000_001 * 10**18; 
    uint256 public maxTxLimit = 300_000_001 * 10**18; 
    uint256 public minSwap = 5_000_000 * 10**18; 
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address immutable uniswapV2Pair;
    address immutable WETH;
    address payable public marketingWallet;
    bool public isOpen = false;
    mapping(address => bool) public _whiteList;
    mapping (address => bool) public _isBlacklisted;

    uint256 public buyTax;
    uint256 public sellTax;
    uint8 private inSwapAndLiquify;

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = uniswapV2Router.WETH();
        buyTax = 10;
        sellTax = 10;


        _whiteList[msg.sender] = true;
        _whiteList[address(this)] = true;

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

        marketingWallet = payable(0xd3011b0aB178E1103f60B6239Eb4A795B1013624);
        _balance[msg.sender] = _totalSupply;
        _isExcludedFromFees[marketingWallet] = true;
        _isExcludedFromFees[msg.sender] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[address(uniswapV2Router)] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
        _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
            .max;

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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()] - amount
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function ExcludeFromFees(address holder, bool exempt) external onlyOwner {
        _isExcludedFromFees[holder] = exempt;
    }
    
    function RemoveLimits() external onlyOwner {
        maxWalletlimit = _totalSupply;
        maxTxLimit = _totalSupply;
    }
    

    function ChangeTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= 10, "Must keep fees at 10% or less");
        require(newSellTax <= 10, "Must keep fees at 10% or less");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }
    
    function ChangeMinSwap(uint256 NewMinSwapAmount) external onlyOwner {
        minSwap = NewMinSwapAmount * 10**18;
    }

    function ChangeMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWallet = payable(newAddress);
    }
    
    function EnableTrading() external onlyOwner {
        isOpen = true;
    }

    

    function includeToWhiteList(address[] memory _users) external onlyOwner {
        for(uint8 i = 0; i < _users.length; i++) {
            _whiteList[_users[i]] = true;
        }
    }
    
        
    function BlackListWallet(address[] calldata addresses) external onlyOwner {
      for (uint256 i; i < addresses.length; ++i) {
        _isBlacklisted[addresses[i]] = true;
      }
    }
     
    function UnBlackListWallet(address[] calldata addresses) external onlyOwner {
      for (uint256 i; i < addresses.length; ++i) {
        _isBlacklisted[addresses[i]] = false;
      }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 1e9, "Min transfer amt");
        require(isOpen || _whiteList[from] || _whiteList[to], "Not Open");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "To/from address is blacklisted!");

        uint256 _tax;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            _tax = 0;
        } else {

            if (inSwapAndLiquify == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;

                emit Transfer(from, to, amount);
                return;
            }

            if (from == uniswapV2Pair) {
                require(balanceOf(to).add(amount) <= maxWalletlimit);
                require(amount <= maxTxLimit, "Buy transfer amount exceeds the maxTxLimit.");
                _tax = buyTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                    inSwapAndLiquify = 1;
                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensToSwap,
                            0,
                            path,
                            marketingWallet,
                            block.timestamp
                        );
                    inSwapAndLiquify = 0;
                }
                _tax = sellTax;
            } else {
                _tax = 0;
            }
        }
        


        //Is there tax for sender|receiver?
        if (_tax != 0) {
            //Tax transfer
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transferAmount = amount - taxTokens;

            _balance[from] -= amount;
            _balance[to] += transferAmount;
            _balance[address(this)] += taxTokens;
            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transferAmount);
        } else {
            //No tax transfer
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"BlackListWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"ChangeMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"NewMinSwapAmount","type":"uint256"}],"name":"ChangeMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"ChangeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"UnBlackListWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_whiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"includeToWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletlimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040526af82778a438dd2c5364000060018190556002556a0422ca8b0a00a4250000006003556004805460ff60a01b1916905534801562000040575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620000d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000f9919062000364565b6001600160a01b0390811660c052600a6007819055600855335f9081526005602090815260408083208054600160ff19918216811790925530855293829020805490941617909255608051825163c45a015560e01b8152925193169263c45a01559260048082019392918290030181865afa1580156200017b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a1919062000364565b60c0516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af1158015620001f0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000216919062000364565b6001600160a01b0390811660a052600480546001600160a01b03191673d3011b0ab178e1103f60b6239eb4a795b1013624178155335f818152600a602090815260408083206b409f9cbc7c4a04c2200000009055845486168352600c8252808320805460ff1990811660019081179092558585528285208054821683179055308086528386208054831684179055608051891680875284872080549093169093179091558452600b80845282852082865284528285205f199081905595855280845282852082865284528285208690559554909616835293815283822094825293909352912055620003053390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b409f9cbc7c4a04c2200000006040516200035691815260200190565b60405180910390a362000393565b5f6020828403121562000375575f80fd5b81516001600160a01b03811681146200038c575f80fd5b9392505050565b60805160a05160c0516116b0620003c55f395f610f8901525f8181610deb0152610ec801525f610fe401526116b05ff3fe6080604052600436106101c8575f3560e01c806359cd9031116100f25780638da5cb5b11610092578063cc1776d311610062578063cc1776d314610542578063d50a72a614610557578063dd62ed3e14610576578063f2fde38b146105ba575f80fd5b80638da5cb5b146104bb57806395d89b41146104d75780639d8f770614610504578063a9059cbb14610523575f80fd5b806374233c06116100cd57806374233c061461043b57806375f0a8741461045a5780638036d5901461049157806389e40cf9146104a6575f80fd5b806359cd9031146103de57806370a08231146103f3578063715018a614610427575f80fd5b80631d97b7cd1161016857806347535d7b1161013857806347535d7b146103765780634f7041a5146103965780635165943f146103ab57806356cd40e7146103ca575f80fd5b80631d97b7cd1461030957806323b872dd1461031d5780632f6bc9e71461033c578063313ce5671461035b575f80fd5b8063095ea7b3116101a3578063095ea7b3146102755780630b6bb6f51461029457806318160ddd146102b35780631cdd3be3146102db575f80fd5b806305d2743f146101d357806305d60ffb146101f457806306fdde0314610237575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101f26101ed3660046112bd565b6105d9565b005b3480156101ff575f80fd5b5061022261020e3660046112bd565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610242575f80fd5b5060408051808201909152600d81526c457468657265756d204361747360981b60208201525b60405161022e91906112d6565b348015610280575f80fd5b5061022261028f366004611322565b610610565b34801561029f575f80fd5b506101f26102ae36600461135e565b610626565b3480156102be575f80fd5b506b409f9cbc7c4a04c2200000005b60405190815260200161022e565b3480156102e6575f80fd5b506102226102f53660046112bd565b60066020525f908152604090205460ff1681565b348015610314575f80fd5b506101f26106aa565b348015610328575f80fd5b5061022261033736600461141e565b6106d4565b348015610347575f80fd5b506101f2610356366004611457565b610724565b348015610366575f80fd5b506040516012815260200161022e565b348015610381575f80fd5b5060045461022290600160a01b900460ff1681565b3480156103a1575f80fd5b506102cd60075481565b3480156103b6575f80fd5b506101f26103c5366004611477565b6107eb565b3480156103d5575f80fd5b506101f2610869565b3480156103e9575f80fd5b506102cd60035481565b3480156103fe575f80fd5b506102cd61040d3660046112bd565b6001600160a01b03165f908152600a602052604090205490565b348015610432575f80fd5b506101f2610895565b348015610446575f80fd5b506101f26104553660046114e6565b6108f2565b348015610465575f80fd5b50600454610479906001600160a01b031681565b6040516001600160a01b03909116815260200161022e565b34801561049c575f80fd5b506102cd60025481565b3480156104b1575f80fd5b506102cd60015481565b3480156104c6575f80fd5b505f546001600160a01b0316610479565b3480156104e2575f80fd5b50604080518082019091526005815264454341545360d81b6020820152610268565b34801561050f575f80fd5b506101f261051e3660046114fd565b61091f565b34801561052e575f80fd5b5061022261053d366004611322565b61095e565b34801561054d575f80fd5b506102cd60085481565b348015610562575f80fd5b506101f2610571366004611477565b61096a565b348015610581575f80fd5b506102cd610590366004611536565b6001600160a01b039182165f908152600b6020908152604080832093909416825291909152205490565b3480156105c5575f80fd5b506101f26105d43660046112bd565b6109e4565b5f546001600160a01b031633146105ee575f80fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f61061c338484610a05565b5060015b92915050565b5f546001600160a01b0316331461063b575f80fd5b5f5b81518160ff1610156106a657600160055f848460ff168151811061066357610663611567565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061069e8161158f565b91505061063d565b5050565b5f546001600160a01b031633146106bf575f80fd5b6004805460ff60a01b1916600160a01b179055565b5f6106e0848484610b28565b6001600160a01b0384165f908152600b602090815260408083203380855292529091205461071a9186916107159086906115ad565b610a05565b5060019392505050565b5f546001600160a01b03163314610739575f80fd5b600a82111561078f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064015b60405180910390fd5b600a8111156107e05760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610786565b600791909155600855565b5f546001600160a01b03163314610800575f80fd5b5f5b81811015610864575f60065f85858581811061082057610820611567565b905060200201602081019061083591906112bd565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610802565b505050565b5f546001600160a01b0316331461087e575f80fd5b6b409f9cbc7c4a04c2200000006001819055600255565b5f546001600160a01b031633146108aa575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610907575f80fd5b61091981670de0b6b3a76400006115c0565b60035550565b5f546001600160a01b03163314610934575f80fd5b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f61061c338484610b28565b5f546001600160a01b0316331461097f575f80fd5b5f5b8181101561086457600160065f8585858181106109a0576109a0611567565b90506020020160208101906109b591906112bd565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610981565b5f546001600160a01b031633146109f9575f80fd5b610a02816111d2565b50565b6001600160a01b038316610a675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610786565b6001600160a01b038216610ac85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610786565b6001600160a01b038381165f818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b8c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610786565b633b9aca008111610bd25760405162461bcd60e51b815260206004820152601060248201526f135a5b881d1c985b9cd9995c88185b5d60821b6044820152606401610786565b600454600160a01b900460ff1680610c0157506001600160a01b0383165f9081526005602052604090205460ff165b80610c2357506001600160a01b0382165f9081526005602052604090205460ff165b610c5a5760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b6044820152606401610786565b6001600160a01b0383165f9081526006602052604090205460ff16158015610c9a57506001600160a01b0382165f9081526006602052604090205460ff16155b610ce65760405162461bcd60e51b815260206004820152601f60248201527f546f2f66726f6d206164647265737320697320626c61636b6c697374656421006044820152606401610786565b6001600160a01b0383165f908152600c602052604081205460ff1680610d2357506001600160a01b0383165f908152600c602052604090205460ff165b15610d2f57505f611067565b60095460ff16600103610de9576001600160a01b0384165f908152600a602052604081208054849290610d639084906115ad565b90915550506001600160a01b0383165f908152600a602052604081208054849290610d8f9084906115d7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ddb91815260200190565b60405180910390a350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610ec657600154610e4d83610e47866001600160a01b03165f908152600a602052604090205490565b9061123d565b1115610e57575f80fd5b600254821115610ebd5760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a3c2634b6b4ba1760a91b6064820152608401610786565b50600754611067565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361106457305f908152600a602052604090205460035481118015610f22575060095460ff16155b1561105a576009805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f6757610f67611567565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610fbb57610fbb611567565b6001600160a01b0392831660209182029290920101526004805460405163791ac94760e01b81527f000000000000000000000000000000000000000000000000000000000000000084169363791ac947936110219388935f9389939216914291016115ea565b5f604051808303815f87803b158015611038575f80fd5b505af115801561104a573d5f803e3d5ffd5b50506009805460ff191690555050505b5050600854611067565b505f5b80156111a5575f606461107a83856115c0565b611084919061165b565b90505f61109182856115ad565b6001600160a01b0387165f908152600a60205260408120805492935086929091906110bd9084906115ad565b90915550506001600160a01b0385165f908152600a6020526040812080548392906110e99084906115d7565b9091555050305f908152600a60205260408120805484929061110c9084906115d7565b909155505060405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119691815260200190565b60405180910390a350506111cc565b6001600160a01b0384165f908152600a602052604081208054849290610d639084906115ad565b50505050565b6001600160a01b0381166111e4575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8061124983856115d7565b90508381101561129b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610786565b9392505050565b80356001600160a01b03811681146112b8575f80fd5b919050565b5f602082840312156112cd575f80fd5b61129b826112a2565b5f602080835283518060208501525f5b81811015611302578581018301518582016040015282016112e6565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611333575f80fd5b61133c836112a2565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561136f575f80fd5b823567ffffffffffffffff80821115611386575f80fd5b818501915085601f830112611399575f80fd5b8135818111156113ab576113ab61134a565b8060051b604051601f19603f830116810181811085821117156113d0576113d061134a565b6040529182528482019250838101850191888311156113ed575f80fd5b938501935b8285101561141257611403856112a2565b845293850193928501926113f2565b98975050505050505050565b5f805f60608486031215611430575f80fd5b611439846112a2565b9250611447602085016112a2565b9150604084013590509250925092565b5f8060408385031215611468575f80fd5b50508035926020909101359150565b5f8060208385031215611488575f80fd5b823567ffffffffffffffff8082111561149f575f80fd5b818501915085601f8301126114b2575f80fd5b8135818111156114c0575f80fd5b8660208260051b85010111156114d4575f80fd5b60209290920196919550909350505050565b5f602082840312156114f6575f80fd5b5035919050565b5f806040838503121561150e575f80fd5b611517836112a2565b91506020830135801515811461152b575f80fd5b809150509250929050565b5f8060408385031215611547575f80fd5b611550836112a2565b915061155e602084016112a2565b90509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff821660ff81036115a4576115a461157b565b60010192915050565b818103818111156106205761062061157b565b80820281158282048414176106205761062061157b565b808201808211156106205761062061157b565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561163a5784516001600160a01b031683529383019391830191600101611615565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261167557634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212203030c242e6ba1e2dffcb7cb8aa78b93ed17935f3e5800927c17e2b948fbbb44064736f6c63430008160033

Deployed Bytecode

0x6080604052600436106101c8575f3560e01c806359cd9031116100f25780638da5cb5b11610092578063cc1776d311610062578063cc1776d314610542578063d50a72a614610557578063dd62ed3e14610576578063f2fde38b146105ba575f80fd5b80638da5cb5b146104bb57806395d89b41146104d75780639d8f770614610504578063a9059cbb14610523575f80fd5b806374233c06116100cd57806374233c061461043b57806375f0a8741461045a5780638036d5901461049157806389e40cf9146104a6575f80fd5b806359cd9031146103de57806370a08231146103f3578063715018a614610427575f80fd5b80631d97b7cd1161016857806347535d7b1161013857806347535d7b146103765780634f7041a5146103965780635165943f146103ab57806356cd40e7146103ca575f80fd5b80631d97b7cd1461030957806323b872dd1461031d5780632f6bc9e71461033c578063313ce5671461035b575f80fd5b8063095ea7b3116101a3578063095ea7b3146102755780630b6bb6f51461029457806318160ddd146102b35780631cdd3be3146102db575f80fd5b806305d2743f146101d357806305d60ffb146101f457806306fdde0314610237575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101f26101ed3660046112bd565b6105d9565b005b3480156101ff575f80fd5b5061022261020e3660046112bd565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610242575f80fd5b5060408051808201909152600d81526c457468657265756d204361747360981b60208201525b60405161022e91906112d6565b348015610280575f80fd5b5061022261028f366004611322565b610610565b34801561029f575f80fd5b506101f26102ae36600461135e565b610626565b3480156102be575f80fd5b506b409f9cbc7c4a04c2200000005b60405190815260200161022e565b3480156102e6575f80fd5b506102226102f53660046112bd565b60066020525f908152604090205460ff1681565b348015610314575f80fd5b506101f26106aa565b348015610328575f80fd5b5061022261033736600461141e565b6106d4565b348015610347575f80fd5b506101f2610356366004611457565b610724565b348015610366575f80fd5b506040516012815260200161022e565b348015610381575f80fd5b5060045461022290600160a01b900460ff1681565b3480156103a1575f80fd5b506102cd60075481565b3480156103b6575f80fd5b506101f26103c5366004611477565b6107eb565b3480156103d5575f80fd5b506101f2610869565b3480156103e9575f80fd5b506102cd60035481565b3480156103fe575f80fd5b506102cd61040d3660046112bd565b6001600160a01b03165f908152600a602052604090205490565b348015610432575f80fd5b506101f2610895565b348015610446575f80fd5b506101f26104553660046114e6565b6108f2565b348015610465575f80fd5b50600454610479906001600160a01b031681565b6040516001600160a01b03909116815260200161022e565b34801561049c575f80fd5b506102cd60025481565b3480156104b1575f80fd5b506102cd60015481565b3480156104c6575f80fd5b505f546001600160a01b0316610479565b3480156104e2575f80fd5b50604080518082019091526005815264454341545360d81b6020820152610268565b34801561050f575f80fd5b506101f261051e3660046114fd565b61091f565b34801561052e575f80fd5b5061022261053d366004611322565b61095e565b34801561054d575f80fd5b506102cd60085481565b348015610562575f80fd5b506101f2610571366004611477565b61096a565b348015610581575f80fd5b506102cd610590366004611536565b6001600160a01b039182165f908152600b6020908152604080832093909416825291909152205490565b3480156105c5575f80fd5b506101f26105d43660046112bd565b6109e4565b5f546001600160a01b031633146105ee575f80fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f61061c338484610a05565b5060015b92915050565b5f546001600160a01b0316331461063b575f80fd5b5f5b81518160ff1610156106a657600160055f848460ff168151811061066357610663611567565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061069e8161158f565b91505061063d565b5050565b5f546001600160a01b031633146106bf575f80fd5b6004805460ff60a01b1916600160a01b179055565b5f6106e0848484610b28565b6001600160a01b0384165f908152600b602090815260408083203380855292529091205461071a9186916107159086906115ad565b610a05565b5060019392505050565b5f546001600160a01b03163314610739575f80fd5b600a82111561078f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064015b60405180910390fd5b600a8111156107e05760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610786565b600791909155600855565b5f546001600160a01b03163314610800575f80fd5b5f5b81811015610864575f60065f85858581811061082057610820611567565b905060200201602081019061083591906112bd565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610802565b505050565b5f546001600160a01b0316331461087e575f80fd5b6b409f9cbc7c4a04c2200000006001819055600255565b5f546001600160a01b031633146108aa575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610907575f80fd5b61091981670de0b6b3a76400006115c0565b60035550565b5f546001600160a01b03163314610934575f80fd5b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f61061c338484610b28565b5f546001600160a01b0316331461097f575f80fd5b5f5b8181101561086457600160065f8585858181106109a0576109a0611567565b90506020020160208101906109b591906112bd565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610981565b5f546001600160a01b031633146109f9575f80fd5b610a02816111d2565b50565b6001600160a01b038316610a675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610786565b6001600160a01b038216610ac85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610786565b6001600160a01b038381165f818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b8c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610786565b633b9aca008111610bd25760405162461bcd60e51b815260206004820152601060248201526f135a5b881d1c985b9cd9995c88185b5d60821b6044820152606401610786565b600454600160a01b900460ff1680610c0157506001600160a01b0383165f9081526005602052604090205460ff165b80610c2357506001600160a01b0382165f9081526005602052604090205460ff165b610c5a5760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b6044820152606401610786565b6001600160a01b0383165f9081526006602052604090205460ff16158015610c9a57506001600160a01b0382165f9081526006602052604090205460ff16155b610ce65760405162461bcd60e51b815260206004820152601f60248201527f546f2f66726f6d206164647265737320697320626c61636b6c697374656421006044820152606401610786565b6001600160a01b0383165f908152600c602052604081205460ff1680610d2357506001600160a01b0383165f908152600c602052604090205460ff165b15610d2f57505f611067565b60095460ff16600103610de9576001600160a01b0384165f908152600a602052604081208054849290610d639084906115ad565b90915550506001600160a01b0383165f908152600a602052604081208054849290610d8f9084906115d7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ddb91815260200190565b60405180910390a350505050565b7f0000000000000000000000005b66aca153cd893811731604f229294e6fdbc28b6001600160a01b0316846001600160a01b031603610ec657600154610e4d83610e47866001600160a01b03165f908152600a602052604090205490565b9061123d565b1115610e57575f80fd5b600254821115610ebd5760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a3c2634b6b4ba1760a91b6064820152608401610786565b50600754611067565b7f0000000000000000000000005b66aca153cd893811731604f229294e6fdbc28b6001600160a01b0316836001600160a01b03160361106457305f908152600a602052604090205460035481118015610f22575060095460ff16155b1561105a576009805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f6757610f67611567565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610fbb57610fbb611567565b6001600160a01b0392831660209182029290920101526004805460405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84169363791ac947936110219388935f9389939216914291016115ea565b5f604051808303815f87803b158015611038575f80fd5b505af115801561104a573d5f803e3d5ffd5b50506009805460ff191690555050505b5050600854611067565b505f5b80156111a5575f606461107a83856115c0565b611084919061165b565b90505f61109182856115ad565b6001600160a01b0387165f908152600a60205260408120805492935086929091906110bd9084906115ad565b90915550506001600160a01b0385165f908152600a6020526040812080548392906110e99084906115d7565b9091555050305f908152600a60205260408120805484929061110c9084906115d7565b909155505060405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119691815260200190565b60405180910390a350506111cc565b6001600160a01b0384165f908152600a602052604081208054849290610d639084906115ad565b50505050565b6001600160a01b0381166111e4575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8061124983856115d7565b90508381101561129b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610786565b9392505050565b80356001600160a01b03811681146112b8575f80fd5b919050565b5f602082840312156112cd575f80fd5b61129b826112a2565b5f602080835283518060208501525f5b81811015611302578581018301518582016040015282016112e6565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611333575f80fd5b61133c836112a2565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561136f575f80fd5b823567ffffffffffffffff80821115611386575f80fd5b818501915085601f830112611399575f80fd5b8135818111156113ab576113ab61134a565b8060051b604051601f19603f830116810181811085821117156113d0576113d061134a565b6040529182528482019250838101850191888311156113ed575f80fd5b938501935b8285101561141257611403856112a2565b845293850193928501926113f2565b98975050505050505050565b5f805f60608486031215611430575f80fd5b611439846112a2565b9250611447602085016112a2565b9150604084013590509250925092565b5f8060408385031215611468575f80fd5b50508035926020909101359150565b5f8060208385031215611488575f80fd5b823567ffffffffffffffff8082111561149f575f80fd5b818501915085601f8301126114b2575f80fd5b8135818111156114c0575f80fd5b8660208260051b85010111156114d4575f80fd5b60209290920196919550909350505050565b5f602082840312156114f6575f80fd5b5035919050565b5f806040838503121561150e575f80fd5b611517836112a2565b91506020830135801515811461152b575f80fd5b809150509250929050565b5f8060408385031215611547575f80fd5b611550836112a2565b915061155e602084016112a2565b90509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff821660ff81036115a4576115a461157b565b60010192915050565b818103818111156106205761062061157b565b80820281158282048414176106205761062061157b565b808201808211156106205761062061157b565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561163a5784516001600160a01b031683529383019391830191600101611615565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261167557634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212203030c242e6ba1e2dffcb7cb8aa78b93ed17935f3e5800927c17e2b948fbbb44064736f6c63430008160033

Deployed Bytecode Sourcemap

6611:8246:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11370:135;;;;;;;;;;-1:-1:-1;11370:135:0;;;;;:::i;:::-;;:::i;:::-;;7281:42;;;;;;;;;;-1:-1:-1;7281:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;548:14:1;;541:22;523:41;;511:2;496:18;7281:42:0;;;;;;;;8815:83;;;;;;;;;;-1:-1:-1;8885:5:0;;;;;;;;;;;;-1:-1:-1;;;8885:5:0;;;;8815:83;;;;;;;:::i;9725:193::-;;;;;;;;;;-1:-1:-1;9725:193:0;;;;;:::i;:::-;;:::i;11609:186::-;;;;;;;;;;-1:-1:-1;11609:186:0;;;;;:::i;:::-;;:::i;9092:100::-;;;;;;;;;;-1:-1:-1;6842:23:0;9092:100;;;2791:25:1;;;2779:2;2764:18;9092:100:0;2645:177:1;7330:47:0;;;;;;;;;;-1:-1:-1;7330:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11517:76;;;;;;;;;;;;;:::i;9926:350::-;;;;;;;;;;-1:-1:-1;9926:350:0;;;;;:::i;:::-;;:::i;10946:282::-;;;;;;;;;;-1:-1:-1;10946:282:0;;;;;:::i;:::-;;:::i;9001:83::-;;;;;;;;;;-1:-1:-1;9001:83:0;;7074:2;3555:36:1;;3543:2;3528:18;9001:83:0;3413:184:1;7248:26:0;;;;;;;;;;-1:-1:-1;7248:26:0;;;;-1:-1:-1;;;7248:26:0;;;;;;7386:21;;;;;;;;;;;;;;;;12019:192;;;;;;;;;;-1:-1:-1;12019:192:0;;;;;:::i;:::-;;:::i;10805:127::-;;;;;;;;;;;;;:::i;6988:43::-;;;;;;;;;;;;;;;;9200:118;;;;;;;;;;-1:-1:-1;9200:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;9293:17:0;9266:7;9293:17;;;:8;:17;;;;;;;9200:118;5420:140;;;;;;;;;;;;;:::i;11240:122::-;;;;;;;;;;-1:-1:-1;11240:122:0;;;;;:::i;:::-;;:::i;7203:38::-;;;;;;;;;;-1:-1:-1;7203:38:0;;;;-1:-1:-1;;;;;7203:38:0;;;;;;-1:-1:-1;;;;;4587:32:1;;;4569:51;;4557:2;4542:18;7203:38:0;4407:219:1;6932:48:0;;;;;;;;;;;;;;;;6872:52;;;;;;;;;;;;;;;;5154:79;;;;;;;;;;-1:-1:-1;5192:7:0;5219:6;-1:-1:-1;;;;;5219:6:0;5154:79;;8906:87;;;;;;;;;;-1:-1:-1;8978:7:0;;;;;;;;;;;;-1:-1:-1;;;8978:7:0;;;;8906:87;;10665:128;;;;;;;;;;-1:-1:-1;10665:128:0;;;;;:::i;:::-;;:::i;9326:199::-;;;;;;;;;;-1:-1:-1;9326:199:0;;;;;:::i;:::-;;:::i;7414:22::-;;;;;;;;;;;;;;;;11817:189;;;;;;;;;;-1:-1:-1;11817:189:0;;;;;:::i;:::-;;:::i;9533:184::-;;;;;;;;;;-1:-1:-1;9533:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9682:18:0;;;9650:7;9682:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9533:184;5568:109;;;;;;;;;;-1:-1:-1;5568:109:0;;;;;:::i;:::-;;:::i;11370:135::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;11460:15:::1;:37:::0;;-1:-1:-1;;;;;;11460:37:0::1;-1:-1:-1::0;;;;;11460:37:0;;;::::1;::::0;;;::::1;::::0;;11370:135::o;9725:193::-;9827:4;9849:39;4063:10;9872:7;9881:6;9849:8;:39::i;:::-;-1:-1:-1;9906:4:0;9725:193;;;;;:::o;11609:186::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;11696:7:::1;11692:96;11713:6;:13;11709:1;:17;;;11692:96;;;11772:4;11748:10;:21;11759:6;11766:1;11759:9;;;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11748:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11748:21:0;:28;;-1:-1:-1;;11748:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11728:3;::::1;::::0;::::1;:::i;:::-;;;;11692:96;;;;11609:186:::0;:::o;11517:76::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;11572:6:::1;:13:::0;;-1:-1:-1;;;;11572:13:0::1;-1:-1:-1::0;;;11572:13:0::1;::::0;;11517:76::o;9926:350::-;10058:4;10075:36;10085:6;10093:9;10104:6;10075:9;:36::i;:::-;-1:-1:-1;;;;;10193:19:0;;;;;;:11;:19;;;;;;;;4063:10;10193:33;;;;;;;;;10122:124;;10145:6;;10193:42;;10229:6;;10193:42;:::i;:::-;10122:8;:124::i;:::-;-1:-1:-1;10264:4:0;9926:350;;;;;:::o;10946:282::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;11055:2:::1;11042:9;:15;;11034:57;;;::::0;-1:-1:-1;;;11034:57:0;;6235:2:1;11034:57:0::1;::::0;::::1;6217:21:1::0;6274:2;6254:18;;;6247:30;6313:31;6293:18;;;6286:59;6362:18;;11034:57:0::1;;;;;;;;;11124:2;11110:10;:16;;11102:58;;;::::0;-1:-1:-1;;;11102:58:0;;6235:2:1;11102:58:0::1;::::0;::::1;6217:21:1::0;6274:2;6254:18;;;6247:30;6313:31;6293:18;;;6286:59;6362:18;;11102:58:0::1;6033:353:1::0;11102:58:0::1;11171:6;:18:::0;;;;11200:7:::1;:20:::0;10946:282::o;12019:192::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;12109:9:::1;12104:100;12120:20:::0;;::::1;12104:100;;;12189:5;12158:14;:28;12173:9;;12183:1;12173:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12158:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12158:28:0;:36;;-1:-1:-1;;12158:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12142:3:0::1;12104:100;;;;12019:192:::0;;:::o;10805:127::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;6842:23:::1;10859:14;:29:::0;;;10899:10:::1;:25:::0;10805:127::o;5420:140::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;5519:1:::1;5503:6:::0;;5482:40:::1;::::0;-1:-1:-1;;;;;5503:6:0;;::::1;::::0;5482:40:::1;::::0;5519:1;;5482:40:::1;5550:1;5533:19:::0;;-1:-1:-1;;;;;;5533:19:0::1;::::0;;5420:140::o;11240:122::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;11329:25:::1;:16:::0;11348:6:::1;11329:25;:::i;:::-;11319:7;:35:::0;-1:-1:-1;11240:122:0:o;10665:128::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;-1:-1:-1;;;;;10749:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;10749:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10665:128::o;9326:199::-;9431:4;9453:42;4063:10;9477:9;9488:6;9453:9;:42::i;11817:189::-;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;11905:9:::1;11900:99;11916:20:::0;;::::1;11900:99;;;11985:4;11954:14;:28;11969:9;;11979:1;11969:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11954:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11954:28:0;:35;;-1:-1:-1;;11954:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11938:3:0::1;11900:99;;5568:109:::0;5360:4;5398:6;-1:-1:-1;;;;;5398:6:0;5384:10;:20;5273:18;;;;;;5641:28:::1;5660:8;5641:18;:28::i;:::-;5568:109:::0;:::o;10284:369::-;-1:-1:-1;;;;;10411:19:0;;10403:68;;;;-1:-1:-1;;;10403:68:0;;6766:2:1;10403:68:0;;;6748:21:1;6805:2;6785:18;;;6778:30;6844:34;6824:18;;;6817:62;-1:-1:-1;;;6895:18:1;;;6888:34;6939:19;;10403:68:0;6564:400:1;10403:68:0;-1:-1:-1;;;;;10490:21:0;;10482:68;;;;-1:-1:-1;;;10482:68:0;;7171:2:1;10482:68:0;;;7153:21:1;7210:2;7190:18;;;7183:30;7249:34;7229:18;;;7222:62;-1:-1:-1;;;7300:18:1;;;7293:32;7342:19;;10482:68:0;6969:398:1;10482:68:0;-1:-1:-1;;;;;10561:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10613:32;;2791:25:1;;;10613:32:0;;2764:18:1;10613:32:0;;;;;;;10284:369;;;:::o;12219:2598::-;-1:-1:-1;;;;;12341:18:0;;12333:68;;;;-1:-1:-1;;;12333:68:0;;7574:2:1;12333:68:0;;;7556:21:1;7613:2;7593:18;;;7586:30;7652:34;7632:18;;;7625:62;-1:-1:-1;;;7703:18:1;;;7696:35;7748:19;;12333:68:0;7372:401:1;12333:68:0;12429:3;12420:6;:12;12412:41;;;;-1:-1:-1;;;12412:41:0;;7980:2:1;12412:41:0;;;7962:21:1;8019:2;7999:18;;;7992:30;-1:-1:-1;;;8038:18:1;;;8031:46;8094:18;;12412:41:0;7778:340:1;12412:41:0;12472:6;;-1:-1:-1;;;12472:6:0;;;;;:26;;-1:-1:-1;;;;;;12482:16:0;;;;;;:10;:16;;;;;;;;12472:26;:44;;;-1:-1:-1;;;;;;12502:14:0;;;;;;:10;:14;;;;;;;;12472:44;12464:65;;;;-1:-1:-1;;;12464:65:0;;8325:2:1;12464:65:0;;;8307:21:1;8364:1;8344:18;;;8337:29;-1:-1:-1;;;8382:18:1;;;8375:38;8430:18;;12464:65:0;8123:331:1;12464:65:0;-1:-1:-1;;;;;12549:20:0;;;;;;:14;:20;;;;;;;;12548:21;:44;;;;-1:-1:-1;;;;;;12574:18:0;;;;;;:14;:18;;;;;;;;12573:19;12548:44;12540:88;;;;-1:-1:-1;;;12540:88:0;;8661:2:1;12540:88:0;;;8643:21:1;8700:2;8680:18;;;8673:30;8739:33;8719:18;;;8712:61;8790:18;;12540:88:0;8459:355:1;12540:88:0;-1:-1:-1;;;;;12668:25:0;;12641:12;12668:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;12697:23:0;;;;;;:19;:23;;;;;;;;12668:52;12664:1484;;;-1:-1:-1;12744:1:0;12664:1484;;;12784:16;;;;;:21;12780:239;;-1:-1:-1;;;;;12861:14:0;;;;;;:8;:14;;;;;:24;;12879:6;;12861:14;:24;;12879:6;;12861:24;:::i;:::-;;;;-1:-1:-1;;;;;;;12904:12:0;;;;;;:8;:12;;;;;:22;;12920:6;;12904:12;:22;;12920:6;;12904:22;:::i;:::-;;;;;;;;12967:2;-1:-1:-1;;;;;12952:26:0;12961:4;-1:-1:-1;;;;;12952:26:0;;12971:6;12952:26;;;;2791:25:1;;2779:2;2764:18;;2645:177;12952:26:0;;;;;;;;12997:7;12219:2598;;;:::o;12780:239::-;13047:13;-1:-1:-1;;;;;13039:21:0;:4;-1:-1:-1;;;;;13039:21:0;;13035:1102;;13118:14;;13089:25;13107:6;13089:13;13099:2;-1:-1:-1;;;;;9293:17:0;9266:7;9293:17;;;:8;:17;;;;;;;9200:118;13089:13;:17;;:25::i;:::-;:43;;13081:52;;;;;;13170:10;;13160:6;:20;;13152:76;;;;-1:-1:-1;;;13152:76:0;;9151:2:1;13152:76:0;;;9133:21:1;9190:2;9170:18;;;9163:30;9229:34;9209:18;;;9202:62;-1:-1:-1;;;9280:18:1;;;9273:41;9331:19;;13152:76:0;8949:407:1;13152:76:0;-1:-1:-1;13254:6:0;;13035:1102;;;13292:13;-1:-1:-1;;;;;13286:19:0;:2;-1:-1:-1;;;;;13286:19:0;;13282:855;;13366:4;13326:20;13349:23;;;:8;:23;;;;;;13410:7;;13395:22;;:47;;;;-1:-1:-1;13421:16:0;;;;:21;13395:47;13391:649;;;13467:16;:20;;-1:-1:-1;;13467:20:0;13486:1;13467:20;;;13534:16;;;13548:1;13534:16;;;;;;;;-1:-1:-1;;13534:16:0;;;;;;;;;;-1:-1:-1;13534:16:0;13510:40;;13591:4;13573;13578:1;13573:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;13573:23:0;;;-1:-1:-1;;;;;13573:23:0;;;;;13629:4;13619;13624:1;13619:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13619:14:0;;;:7;;;;;;;;;:14;13889:15;;;13656:321;;-1:-1:-1;;;13656:321:0;;:15;:92;;;;;:321;;13779:12;;13822:1;;13854:4;;13889:15;;;13935;;13656:321;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14000:16:0;:20;;-1:-1:-1;;14000:20:0;;;-1:-1:-1;;;13391:649:0;-1:-1:-1;;14065:7:0;;13282:855;;;-1:-1:-1;14120:1:0;13282:855;14221:9;;14217:593;;14275:17;14313:3;14296:13;14305:4;14296:6;:13;:::i;:::-;14295:21;;;;:::i;:::-;14275:41;-1:-1:-1;14331:22:0;14356:18;14275:41;14356:6;:18;:::i;:::-;-1:-1:-1;;;;;14391:14:0;;;;;;:8;:14;;;;;:24;;14331:43;;-1:-1:-1;14409:6:0;;14391:14;;;:24;;14409:6;;14391:24;:::i;:::-;;;;-1:-1:-1;;;;;;;14430:12:0;;;;;;:8;:12;;;;;:30;;14446:14;;14430:12;:30;;14446:14;;14430:30;:::i;:::-;;;;-1:-1:-1;;14492:4:0;14475:23;;;;:8;:23;;;;;:36;;14502:9;;14475:23;:36;;14502:9;;14475:36;:::i;:::-;;;;-1:-1:-1;;14531:40:0;;2791:25:1;;;14554:4:0;;-1:-1:-1;;;;;14531:40:0;;;;;2779:2:1;2764:18;14531:40:0;;;;;;;14606:2;-1:-1:-1;;;;;14591:34:0;14600:4;-1:-1:-1;;;;;14591:34:0;;14610:14;14591:34;;;;2791:25:1;;2779:2;2764:18;;2645:177;14591:34:0;;;;;;;;14232:405;;14217:593;;;-1:-1:-1;;;;;14689:14:0;;;;;;:8;:14;;;;;:24;;14707:6;;14689:14;:24;;14707:6;;14689:24;:::i;14217:593::-;12322:2495;12219:2598;;;:::o;5685:187::-;-1:-1:-1;;;;;5759:22:0;;5751:31;;;;;;5819:6;;;5798:38;;-1:-1:-1;;;;;5798:38:0;;;;5819:6;;;5798:38;;;5847:6;:17;;-1:-1:-1;;;;;;5847:17:0;-1:-1:-1;;;;;5847:17:0;;;;;;;;;;5685:187::o;5905:181::-;5963:7;;5995:5;5999:1;5995;:5;:::i;:::-;5983:17;;6024:1;6019;:6;;6011:46;;;;-1:-1:-1;;;6011:46:0;;10778:2:1;6011:46:0;;;10760:21:1;10817:2;10797:18;;;10790:30;10856:29;10836:18;;;10829:57;10903:18;;6011:46:0;10576:351:1;6011:46:0;6077:1;5905:181;-1:-1:-1;;;5905:181:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;575:548::-;687:4;716:2;745;734:9;727:21;777:6;771:13;820:6;815:2;804:9;800:18;793:34;845:1;855:140;869:6;866:1;863:13;855:140;;;964:14;;;960:23;;954:30;930:17;;;949:2;926:26;919:66;884:10;;855:140;;;859:3;1044:1;1039:2;1030:6;1019:9;1015:22;1011:31;1004:42;1114:2;1107;1103:7;1098:2;1090:6;1086:15;1082:29;1071:9;1067:45;1063:54;1055:62;;;;575:548;;;;:::o;1128:254::-;1196:6;1204;1257:2;1245:9;1236:7;1232:23;1228:32;1225:52;;;1273:1;1270;1263:12;1225:52;1296:29;1315:9;1296:29;:::i;:::-;1286:39;1372:2;1357:18;;;;1344:32;;-1:-1:-1;;;1128:254:1:o;1387:127::-;1448:10;1443:3;1439:20;1436:1;1429:31;1479:4;1476:1;1469:15;1503:4;1500:1;1493:15;1519:1121;1603:6;1634:2;1677;1665:9;1656:7;1652:23;1648:32;1645:52;;;1693:1;1690;1683:12;1645:52;1733:9;1720:23;1762:18;1803:2;1795:6;1792:14;1789:34;;;1819:1;1816;1809:12;1789:34;1857:6;1846:9;1842:22;1832:32;;1902:7;1895:4;1891:2;1887:13;1883:27;1873:55;;1924:1;1921;1914:12;1873:55;1960:2;1947:16;1982:2;1978;1975:10;1972:36;;;1988:18;;:::i;:::-;2034:2;2031:1;2027:10;2066:2;2060:9;2129:2;2125:7;2120:2;2116;2112:11;2108:25;2100:6;2096:38;2184:6;2172:10;2169:22;2164:2;2152:10;2149:18;2146:46;2143:72;;;2195:18;;:::i;:::-;2231:2;2224:22;2281:18;;;2315:15;;;;-1:-1:-1;2357:11:1;;;2353:20;;;2385:19;;;2382:39;;;2417:1;2414;2407:12;2382:39;2441:11;;;;2461:148;2477:6;2472:3;2469:15;2461:148;;;2543:23;2562:3;2543:23;:::i;:::-;2531:36;;2494:12;;;;2587;;;;2461:148;;;2628:6;1519:1121;-1:-1:-1;;;;;;;;1519:1121:1:o;2827:328::-;2904:6;2912;2920;2973:2;2961:9;2952:7;2948:23;2944:32;2941:52;;;2989:1;2986;2979:12;2941:52;3012:29;3031:9;3012:29;:::i;:::-;3002:39;;3060:38;3094:2;3083:9;3079:18;3060:38;:::i;:::-;3050:48;;3145:2;3134:9;3130:18;3117:32;3107:42;;2827:328;;;;;:::o;3160:248::-;3228:6;3236;3289:2;3277:9;3268:7;3264:23;3260:32;3257:52;;;3305:1;3302;3295:12;3257:52;-1:-1:-1;;3328:23:1;;;3398:2;3383:18;;;3370:32;;-1:-1:-1;3160:248:1:o;3602:615::-;3688:6;3696;3749:2;3737:9;3728:7;3724:23;3720:32;3717:52;;;3765:1;3762;3755:12;3717:52;3805:9;3792:23;3834:18;3875:2;3867:6;3864:14;3861:34;;;3891:1;3888;3881:12;3861:34;3929:6;3918:9;3914:22;3904:32;;3974:7;3967:4;3963:2;3959:13;3955:27;3945:55;;3996:1;3993;3986:12;3945:55;4036:2;4023:16;4062:2;4054:6;4051:14;4048:34;;;4078:1;4075;4068:12;4048:34;4131:7;4126:2;4116:6;4113:1;4109:14;4105:2;4101:23;4097:32;4094:45;4091:65;;;4152:1;4149;4142:12;4091:65;4183:2;4175:11;;;;;4205:6;;-1:-1:-1;3602:615:1;;-1:-1:-1;;;;3602:615:1:o;4222:180::-;4281:6;4334:2;4322:9;4313:7;4309:23;4305:32;4302:52;;;4350:1;4347;4340:12;4302:52;-1:-1:-1;4373:23:1;;4222:180;-1:-1:-1;4222:180:1:o;4839:347::-;4904:6;4912;4965:2;4953:9;4944:7;4940:23;4936:32;4933:52;;;4981:1;4978;4971:12;4933:52;5004:29;5023:9;5004:29;:::i;:::-;4994:39;;5083:2;5072:9;5068:18;5055:32;5130:5;5123:13;5116:21;5109:5;5106:32;5096:60;;5152:1;5149;5142:12;5096:60;5175:5;5165:15;;;4839:347;;;;;:::o;5191:260::-;5259:6;5267;5320:2;5308:9;5299:7;5295:23;5291:32;5288:52;;;5336:1;5333;5326:12;5288:52;5359:29;5378:9;5359:29;:::i;:::-;5349:39;;5407:38;5441:2;5430:9;5426:18;5407:38;:::i;:::-;5397:48;;5191:260;;;;;:::o;5456:127::-;5517:10;5512:3;5508:20;5505:1;5498:31;5548:4;5545:1;5538:15;5572:4;5569:1;5562:15;5588:127;5649:10;5644:3;5640:20;5637:1;5630:31;5680:4;5677:1;5670:15;5704:4;5701:1;5694:15;5720:175;5757:3;5801:4;5794:5;5790:16;5830:4;5821:7;5818:17;5815:43;;5838:18;;:::i;:::-;5887:1;5874:15;;5720:175;-1:-1:-1;;5720:175:1:o;5900:128::-;5967:9;;;5988:11;;;5985:37;;;6002:18;;:::i;6391:168::-;6464:9;;;6495;;6512:15;;;6506:22;;6492:37;6482:71;;6533:18;;:::i;8819:125::-;8884:9;;;8905:10;;;8902:36;;;8918:18;;:::i;9361:988::-;9631:4;9679:3;9668:9;9664:19;9710:6;9699:9;9692:25;9736:2;9774:6;9769:2;9758:9;9754:18;9747:34;9817:3;9812:2;9801:9;9797:18;9790:31;9841:6;9876;9870:13;9907:6;9899;9892:22;9945:3;9934:9;9930:19;9923:26;;9984:2;9976:6;9972:15;9958:29;;10005:1;10015:195;10029:6;10026:1;10023:13;10015:195;;;10094:13;;-1:-1:-1;;;;;10090:39:1;10078:52;;10185:15;;;;10150:12;;;;10126:1;10044:9;10015:195;;;-1:-1:-1;;;;;;;10266:32:1;;;;10261:2;10246:18;;10239:60;-1:-1:-1;;;10330:3:1;10315:19;10308:35;10227:3;9361:988;-1:-1:-1;;;9361:988:1:o;10354:217::-;10394:1;10420;10410:132;;10464:10;10459:3;10455:20;10452:1;10445:31;10499:4;10496:1;10489:15;10527:4;10524:1;10517:15;10410:132;-1:-1:-1;10556:9:1;;10354:217::o

Swarm Source

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