ETH Price: $2,479.89 (-7.72%)

Token

Black Pepe (BLACKPEPE)
 

Overview

Max Total Supply

100,000,000,000 BLACKPEPE

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 BLACKPEPE

Value
$0.00
0xa7311083c896f0a2efccc6315c8c06990c773ae2
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:
BLACKPEPE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
https://theblackpepe.xyz

https://t.me/theblackpepe

https://twitter.com/theblackpepe
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

    address payable private _developerWallet;
    address payable private _marketingWallet = payable(0x354612329Fb37F7eb44cf776eBcdD43b6D637754);

    bool public transferDelayEnabled = true;

    uint256 private _buyFeeTax = 25;
    uint256 private _sellFeeTax = 30;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"Black Pepe";
    string private constant _symbol = unicode"BLACKPEPE";
    uint256 public _maxTxAmount = 2000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 200000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1000000000 * 10**_decimals;

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

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

    constructor () {
        _developerWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developerWallet] = true;
        _isExcludedFromFee[_marketingWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && from != _developerWallet && to != _developerWallet) {
            require(enableTransfers, "Transfers are disabled");
            taxAmount = amount.mul(_buyFeeTax).div(100);

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_sellFeeTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    uint256 ethForMarketing = contractETHBalance.div(4);
                    sendETHToMarketing(ethForMarketing);
                    sendETHToDev(address(this).balance);
                }
            }
        }

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            taxAmount = 0;
        }

        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);
        transferDelayEnabled=false;
    }

    function sendETHToMarketing(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function sendETHToDev(uint256 amount) private {
        _developerWallet.transfer(amount);
    }

    function finalTaxFee() public onlyOwner {
        _buyFeeTax = 0;
        _sellFeeTax = 0;
    }

    function enableTrading() external onlyOwner() {
        enableTransfers = true;
    }

    function openTrading() 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;
        enableTransfers = false;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
        require(_msgSender() ==  _developerWallet);
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10 ** 9));
        }
    }

    receive() external payable {}

    function manualSendEth() external {
        require(_msgSender() == _developerWallet);
        uint256 ethBalance = address(this).balance;
        if(ethBalance>0){
          sendETHToDev(address(this).balance);
        }
    }

    function manualSend() external {
        require(_msgSender() == _developerWallet);
        uint256 amount = balanceOf(address(this));
        _transfer(address(this), _developerWallet, amount);
    }
}

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":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","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":"finalTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSendEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600580546001600160a81b0319167401354612329fb37f7eb44cf776ebcdd43b6d6377541790556019600655601e600755620000436009600a62000359565b6200005390637735940062000370565b600855620000646009600a62000359565b6200007490637735940062000370565b6009556009600a62000087919062000359565b6200009790630bebc20062000370565b600a556009600a620000aa919062000359565b620000ba90633b9aca0062000370565b600b55600d805462ffffff60a81b1916600160b81b179055348015620000de575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556200013f6009600a62000359565b620001509064174876e80062000370565b335f908152600160208190526040822092909255600390620001795f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454821684528284208054861682179055600554909116835291208054909216179055620001e93390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002226009600a62000359565b620002339064174876e80062000370565b60405190815260200160405180910390a36200038a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029e57815f19048211156200028257620002826200024a565b808516156200029057918102915b93841c939080029062000263565b509250929050565b5f82620002b65750600162000353565b81620002c457505f62000353565b8160018114620002dd5760028114620002e85762000308565b600191505062000353565b60ff841115620002fc57620002fc6200024a565b50506001821b62000353565b5060208310610133831016604e8410600b84101617156200032d575081810a62000353565b6200033983836200025e565b805f19048211156200034f576200034f6200024a565b0290505b92915050565b5f6200036960ff841683620002a6565b9392505050565b80820281158282048414176200035357620003536200024a565b611ab480620003985f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb14610368578063bf474bed14610387578063c876d0b91461039c578063c9567bf9146103bc578063dd62ed3e146103d0578063f429389014610414575f80fd5b8063751039fc146102bf5780637d1db4a5146102d35780638a8c523c146102e85780638da5cb5b146102fc5780638f9a55c01461032257806395d89b4114610337575f80fd5b80631deff216116101045780631deff2161461020a57806323b872dd1461021e578063313ce5671461023d578063672434821461025857806370a0823114610277578063715018a6146102ab575f80fd5b806306fdde031461014a578063095ea7b31461018e5780630faee56f146101bd578063162aa267146101e057806318160ddd146101f6575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600a815269426c61636b205065706560b01b60208201525b60405161018591906115fb565b60405180910390f35b348015610199575f80fd5b506101ad6101a836600461165a565b610428565b6040519015158152602001610185565b3480156101c8575f80fd5b506101d2600b5481565b604051908152602001610185565b3480156101eb575f80fd5b506101f461043e565b005b348015610201575f80fd5b506101d261047b565b348015610215575f80fd5b506101f461049c565b348015610229575f80fd5b506101ad610238366004611684565b6104ce565b348015610248575f80fd5b5060405160098152602001610185565b348015610263575f80fd5b506101f461027236600461170a565b610535565b348015610282575f80fd5b506101d2610291366004611771565b6001600160a01b03165f9081526001602052604090205490565b3480156102b6575f80fd5b506101f46105e7565b3480156102ca575f80fd5b506101f4610658565b3480156102de575f80fd5b506101d260085481565b3480156102f3575f80fd5b506101f461071b565b348015610307575f80fd5b505f546040516001600160a01b039091168152602001610185565b34801561032d575f80fd5b506101d260095481565b348015610342575f80fd5b50604080518082019091526009815268424c41434b5045504560b81b6020820152610178565b348015610373575f80fd5b506101ad61038236600461165a565b610759565b348015610392575f80fd5b506101d2600a5481565b3480156103a7575f80fd5b506005546101ad90600160a01b900460ff1681565b3480156103c7575f80fd5b506101f4610765565b3480156103db575f80fd5b506101d26103ea36600461178c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041f575f80fd5b506101f4610b10565b5f610434338484610b56565b5060015b92915050565b5f546001600160a01b031633146104705760405162461bcd60e51b8152600401610467906117c3565b60405180910390fd5b5f6006819055600755565b5f6104886009600a6118ec565b6104979064174876e8006118fa565b905090565b6004546001600160a01b0316336001600160a01b0316146104bb575f80fd5b4780156104cb576104cb47610c79565b50565b5f6104da848484610cb4565b61052b843361052685604051806060016040528060288152602001611a57602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611277565b610b56565b5060019392505050565b6004546001600160a01b0316336001600160a01b031614610554575f80fd5b821580159061056257508083145b61056a575f80fd5b335f5b848110156105df576105cd8287878481811061058b5761058b611911565b90506020020160208101906105a09190611771565b8686858181106105b2576105b2611911565b90506020020135633b9aca006105c891906118fa565b610cb4565b806105d781611925565b91505061056d565b505050505050565b5f546001600160a01b031633146106105760405162461bcd60e51b8152600401610467906117c3565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106815760405162461bcd60e51b8152600401610467906117c3565b61068d6009600a6118ec565b61069c9064174876e8006118fa565b6008556106ab6009600a6118ec565b6106ba9064174876e8006118fa565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106ec90600a6118ec565b6106fb9064174876e8006118fa565b60405190815260200160405180910390a16005805460ff60a01b19169055565b5f546001600160a01b031633146107445760405162461bcd60e51b8152600401610467906117c3565b600d805460ff60b81b1916600160b81b179055565b5f610434338484610cb4565b5f546001600160a01b0316331461078e5760405162461bcd60e51b8152600401610467906117c3565b600d54600160a01b900460ff16156107e85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610467565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108329030906108236009600a6118ec565b6105269064174876e8006118fa565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610882573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a6919061193d565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610929919061193d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610973573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610997919061193d565b600d80546001600160a01b039283166001600160a01b0319909116179055600c541663f305d71947306109de816001600160a01b03165f9081526001602052604090205490565b5f806109f15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a57573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a7c9190611958565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ad1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af59190611983565b50600d805463ffff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610b2f575f80fd5b305f8181526001602052604090205460045490916104cb916001600160a01b031683610cb4565b6001600160a01b038316610bb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610c195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610cb0573d5f803e3d5ffd5b5050565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610d7a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610ddb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b5f80546001600160a01b03858116911614801590610e0657505f546001600160a01b03848116911614155b8015610e2057506004546001600160a01b03858116911614155b8015610e3a57506004546001600160a01b03848116911614155b156110c357600d54600160b81b900460ff16610e915760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b6044820152606401610467565b610eb16064610eab600654856112af90919063ffffffff16565b90611334565b600d549091506001600160a01b038581169116148015610edf5750600c546001600160a01b03848116911614155b8015610f0357506001600160a01b0383165f9081526003602052604090205460ff16155b15610fd457600854821115610f5a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b60095482610f7c856001600160a01b03165f9081526001602052604090205490565b610f8691906119a2565b1115610fd45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b600d546001600160a01b038481169116148015610ffa57506001600160a01b0384163014155b1561101c576110196064610eab600754856112af90919063ffffffff16565b90505b305f90815260016020526040902054600d54600160a81b900460ff161580156110525750600d546001600160a01b038581169116145b80156110675750600d54600160b01b900460ff165b80156110745750600a5481115b156110c1576110966110918461108c84600b54611375565b611375565b611389565b4780156110bf575f6110a9826004611334565b90506110b4816114f9565b6110bd47610c79565b505b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061110057506001600160a01b0383165f9081526003602052604090205460ff165b806111325750600d546001600160a01b038581169116148015906111325750600d546001600160a01b03848116911614155b1561113a57505f5b80156111b257305f908152600160205260409020546111599082611530565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a99085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111d4908361158e565b6001600160a01b0385165f908152600160205260409020556112176111f9838361158e565b6001600160a01b0385165f9081526001602052604090205490611530565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611260858561158e565b60405190815260200160405180910390a350505050565b5f818484111561129a5760405162461bcd60e51b815260040161046791906115fb565b505f6112a684866119b5565b95945050505050565b5f825f036112be57505f610438565b5f6112c983856118fa565b9050826112d685836119c8565b1461132d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b9392505050565b5f61132d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115cf565b5f818311611383578261132d565b50919050565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113cf576113cf611911565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611426573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144a919061193d565b8160018151811061145d5761145d611911565b6001600160a01b039283166020918202929092010152600c546114839130911684610b56565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114bb9085905f908690309042906004016119e7565b5f604051808303815f87803b1580156114d2575f80fd5b505af11580156114e4573d5f803e3d5ffd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610cb0573d5f803e3d5ffd5b5f8061153c83856119a2565b90508381101561132d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f61132d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611277565b5f81836115ef5760405162461bcd60e51b815260040161046791906115fb565b505f6112a684866119c8565b5f6020808352835180828501525f5b818110156116265785810183015185820160400152820161160a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104cb575f80fd5b5f806040838503121561166b575f80fd5b823561167681611646565b946020939093013593505050565b5f805f60608486031215611696575f80fd5b83356116a181611646565b925060208401356116b181611646565b929592945050506040919091013590565b5f8083601f8401126116d2575f80fd5b50813567ffffffffffffffff8111156116e9575f80fd5b6020830191508360208260051b8501011115611703575f80fd5b9250929050565b5f805f806040858703121561171d575f80fd5b843567ffffffffffffffff80821115611734575f80fd5b611740888389016116c2565b90965094506020870135915080821115611758575f80fd5b50611765878288016116c2565b95989497509550505050565b5f60208284031215611781575f80fd5b813561132d81611646565b5f806040838503121561179d575f80fd5b82356117a881611646565b915060208301356117b881611646565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561184657815f190482111561182c5761182c6117f8565b8085161561183957918102915b93841c9390800290611811565b509250929050565b5f8261185c57506001610438565b8161186857505f610438565b816001811461187e5760028114611888576118a4565b6001915050610438565b60ff841115611899576118996117f8565b50506001821b610438565b5060208310610133831016604e8410600b84101617156118c7575081810a610438565b6118d1838361180c565b805f19048211156118e4576118e46117f8565b029392505050565b5f61132d60ff84168361184e565b8082028115828204841417610438576104386117f8565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611936576119366117f8565b5060010190565b5f6020828403121561194d575f80fd5b815161132d81611646565b5f805f6060848603121561196a575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611993575f80fd5b8151801515811461132d575f80fd5b80820180821115610438576104386117f8565b81810381811115610438576104386117f8565b5f826119e257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a355784516001600160a01b031683529383019391830191600101611a10565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdd438d6a53046a242538b263bc89dba65da6604f0ac1339352d0a62b673855064736f6c63430008140033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb14610368578063bf474bed14610387578063c876d0b91461039c578063c9567bf9146103bc578063dd62ed3e146103d0578063f429389014610414575f80fd5b8063751039fc146102bf5780637d1db4a5146102d35780638a8c523c146102e85780638da5cb5b146102fc5780638f9a55c01461032257806395d89b4114610337575f80fd5b80631deff216116101045780631deff2161461020a57806323b872dd1461021e578063313ce5671461023d578063672434821461025857806370a0823114610277578063715018a6146102ab575f80fd5b806306fdde031461014a578063095ea7b31461018e5780630faee56f146101bd578063162aa267146101e057806318160ddd146101f6575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600a815269426c61636b205065706560b01b60208201525b60405161018591906115fb565b60405180910390f35b348015610199575f80fd5b506101ad6101a836600461165a565b610428565b6040519015158152602001610185565b3480156101c8575f80fd5b506101d2600b5481565b604051908152602001610185565b3480156101eb575f80fd5b506101f461043e565b005b348015610201575f80fd5b506101d261047b565b348015610215575f80fd5b506101f461049c565b348015610229575f80fd5b506101ad610238366004611684565b6104ce565b348015610248575f80fd5b5060405160098152602001610185565b348015610263575f80fd5b506101f461027236600461170a565b610535565b348015610282575f80fd5b506101d2610291366004611771565b6001600160a01b03165f9081526001602052604090205490565b3480156102b6575f80fd5b506101f46105e7565b3480156102ca575f80fd5b506101f4610658565b3480156102de575f80fd5b506101d260085481565b3480156102f3575f80fd5b506101f461071b565b348015610307575f80fd5b505f546040516001600160a01b039091168152602001610185565b34801561032d575f80fd5b506101d260095481565b348015610342575f80fd5b50604080518082019091526009815268424c41434b5045504560b81b6020820152610178565b348015610373575f80fd5b506101ad61038236600461165a565b610759565b348015610392575f80fd5b506101d2600a5481565b3480156103a7575f80fd5b506005546101ad90600160a01b900460ff1681565b3480156103c7575f80fd5b506101f4610765565b3480156103db575f80fd5b506101d26103ea36600461178c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041f575f80fd5b506101f4610b10565b5f610434338484610b56565b5060015b92915050565b5f546001600160a01b031633146104705760405162461bcd60e51b8152600401610467906117c3565b60405180910390fd5b5f6006819055600755565b5f6104886009600a6118ec565b6104979064174876e8006118fa565b905090565b6004546001600160a01b0316336001600160a01b0316146104bb575f80fd5b4780156104cb576104cb47610c79565b50565b5f6104da848484610cb4565b61052b843361052685604051806060016040528060288152602001611a57602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611277565b610b56565b5060019392505050565b6004546001600160a01b0316336001600160a01b031614610554575f80fd5b821580159061056257508083145b61056a575f80fd5b335f5b848110156105df576105cd8287878481811061058b5761058b611911565b90506020020160208101906105a09190611771565b8686858181106105b2576105b2611911565b90506020020135633b9aca006105c891906118fa565b610cb4565b806105d781611925565b91505061056d565b505050505050565b5f546001600160a01b031633146106105760405162461bcd60e51b8152600401610467906117c3565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106815760405162461bcd60e51b8152600401610467906117c3565b61068d6009600a6118ec565b61069c9064174876e8006118fa565b6008556106ab6009600a6118ec565b6106ba9064174876e8006118fa565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106ec90600a6118ec565b6106fb9064174876e8006118fa565b60405190815260200160405180910390a16005805460ff60a01b19169055565b5f546001600160a01b031633146107445760405162461bcd60e51b8152600401610467906117c3565b600d805460ff60b81b1916600160b81b179055565b5f610434338484610cb4565b5f546001600160a01b0316331461078e5760405162461bcd60e51b8152600401610467906117c3565b600d54600160a01b900460ff16156107e85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610467565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108329030906108236009600a6118ec565b6105269064174876e8006118fa565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610882573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a6919061193d565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610929919061193d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610973573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610997919061193d565b600d80546001600160a01b039283166001600160a01b0319909116179055600c541663f305d71947306109de816001600160a01b03165f9081526001602052604090205490565b5f806109f15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a57573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a7c9190611958565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ad1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af59190611983565b50600d805463ffff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610b2f575f80fd5b305f8181526001602052604090205460045490916104cb916001600160a01b031683610cb4565b6001600160a01b038316610bb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610c195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610cb0573d5f803e3d5ffd5b5050565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610d7a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610ddb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b5f80546001600160a01b03858116911614801590610e0657505f546001600160a01b03848116911614155b8015610e2057506004546001600160a01b03858116911614155b8015610e3a57506004546001600160a01b03848116911614155b156110c357600d54600160b81b900460ff16610e915760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b6044820152606401610467565b610eb16064610eab600654856112af90919063ffffffff16565b90611334565b600d549091506001600160a01b038581169116148015610edf5750600c546001600160a01b03848116911614155b8015610f0357506001600160a01b0383165f9081526003602052604090205460ff16155b15610fd457600854821115610f5a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b60095482610f7c856001600160a01b03165f9081526001602052604090205490565b610f8691906119a2565b1115610fd45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b600d546001600160a01b038481169116148015610ffa57506001600160a01b0384163014155b1561101c576110196064610eab600754856112af90919063ffffffff16565b90505b305f90815260016020526040902054600d54600160a81b900460ff161580156110525750600d546001600160a01b038581169116145b80156110675750600d54600160b01b900460ff165b80156110745750600a5481115b156110c1576110966110918461108c84600b54611375565b611375565b611389565b4780156110bf575f6110a9826004611334565b90506110b4816114f9565b6110bd47610c79565b505b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061110057506001600160a01b0383165f9081526003602052604090205460ff165b806111325750600d546001600160a01b038581169116148015906111325750600d546001600160a01b03848116911614155b1561113a57505f5b80156111b257305f908152600160205260409020546111599082611530565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a99085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111d4908361158e565b6001600160a01b0385165f908152600160205260409020556112176111f9838361158e565b6001600160a01b0385165f9081526001602052604090205490611530565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611260858561158e565b60405190815260200160405180910390a350505050565b5f818484111561129a5760405162461bcd60e51b815260040161046791906115fb565b505f6112a684866119b5565b95945050505050565b5f825f036112be57505f610438565b5f6112c983856118fa565b9050826112d685836119c8565b1461132d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b9392505050565b5f61132d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115cf565b5f818311611383578261132d565b50919050565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113cf576113cf611911565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611426573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144a919061193d565b8160018151811061145d5761145d611911565b6001600160a01b039283166020918202929092010152600c546114839130911684610b56565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114bb9085905f908690309042906004016119e7565b5f604051808303815f87803b1580156114d2575f80fd5b505af11580156114e4573d5f803e3d5ffd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610cb0573d5f803e3d5ffd5b5f8061153c83856119a2565b90508381101561132d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f61132d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611277565b5f81836115ef5760405162461bcd60e51b815260040161046791906115fb565b505f6112a684866119c8565b5f6020808352835180828501525f5b818110156116265785810183015185820160400152820161160a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104cb575f80fd5b5f806040838503121561166b575f80fd5b823561167681611646565b946020939093013593505050565b5f805f60608486031215611696575f80fd5b83356116a181611646565b925060208401356116b181611646565b929592945050506040919091013590565b5f8083601f8401126116d2575f80fd5b50813567ffffffffffffffff8111156116e9575f80fd5b6020830191508360208260051b8501011115611703575f80fd5b9250929050565b5f805f806040858703121561171d575f80fd5b843567ffffffffffffffff80821115611734575f80fd5b611740888389016116c2565b90965094506020870135915080821115611758575f80fd5b50611765878288016116c2565b95989497509550505050565b5f60208284031215611781575f80fd5b813561132d81611646565b5f806040838503121561179d575f80fd5b82356117a881611646565b915060208301356117b881611646565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561184657815f190482111561182c5761182c6117f8565b8085161561183957918102915b93841c9390800290611811565b509250929050565b5f8261185c57506001610438565b8161186857505f610438565b816001811461187e5760028114611888576118a4565b6001915050610438565b60ff841115611899576118996117f8565b50506001821b610438565b5060208310610133831016604e8410600b84101617156118c7575081810a610438565b6118d1838361180c565b805f19048211156118e4576118e46117f8565b029392505050565b5f61132d60ff84168361184e565b8082028115828204841417610438576104386117f8565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611936576119366117f8565b5060010190565b5f6020828403121561194d575f80fd5b815161132d81611646565b5f805f6060848603121561196a575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611993575f80fd5b8151801515811461132d575f80fd5b80820180821115610438576104386117f8565b81810381811115610438576104386117f8565b5f826119e257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a355784516001600160a01b031683529383019391830191600101611a10565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdd438d6a53046a242538b263bc89dba65da6604f0ac1339352d0a62b673855064736f6c63430008140033

Deployed Bytecode Sourcemap

3570:8453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5385:83;;;;;;;;;;-1:-1:-1;5455:5:0;;;;;;;;;;;;-1:-1:-1;;;5455:5:0;;;;5385:83;;;;;;;:::i;:::-;;;;;;;;6218:161;;;;;;;;;;-1:-1:-1;6218:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6218:161:0;1023:187:1;4549:55:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4549:55:0;1215:177:1;10217:99:0;;;;;;;;;;;;;:::i;:::-;;5662:95;;;;;;;;;;;;;:::i;11575:233::-;;;;;;;;;;;;;:::i;6387:313::-;;;;;;;;;;-1:-1:-1;6387:313:0;;;;;:::i;:::-;;:::i;5571:83::-;;;;;;;;;;-1:-1:-1;5571:83:0;;4159:1;2000:36:1;;1988:2;1973:18;5571:83:0;1858:184:1;11132:398:0;;;;;;;;;;-1:-1:-1;11132:398:0;;;;;:::i;:::-;;:::i;5765:119::-;;;;;;;;;;-1:-1:-1;5765:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5858:18:0;5831:7;5858:18;;;:9;:18;;;;;;;5765:119;2653:148;;;;;;;;;;;;;:::i;9793:198::-;;;;;;;;;;;;;:::i;4354:56::-;;;;;;;;;;;;;;;;10324:87;;;;;;;;;;;;;:::i;2439:79::-;;;;;;;;;;-1:-1:-1;2477:7:0;2504:6;2439:79;;-1:-1:-1;;;;;2504:6:0;;;3595:51:1;;3583:2;3568:18;2439:79:0;3449:203:1;4417:58:0;;;;;;;;;;;;;;;;5476:87;;;;;;;;;;-1:-1:-1;5548:7:0;;;;;;;;;;;;-1:-1:-1;;;5548:7:0;;;;5476:87;;5892:167;;;;;;;;;;-1:-1:-1;5892:167:0;;;;;:::i;:::-;;:::i;4482:60::-;;;;;;;;;;;;;;;;3997:39;;;;;;;;;;-1:-1:-1;3997:39:0;;;;-1:-1:-1;;;3997:39:0;;;;;;10419:705;;;;;;;;;;;;;:::i;6067:143::-;;;;;;;;;;-1:-1:-1;6067:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6175:18:0;;;6148:7;6175:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6067:143;11816:204;;;;;;;;;;;;;:::i;6218:161::-;6293:4;6310:39;274:10;6333:7;6342:6;6310:8;:39::i;:::-;-1:-1:-1;6367:4:0;6218:161;;;;;:::o;10217:99::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;;;;;;;;;10281:1:::1;10268:10;:14:::0;;;10293:11:::1;:15:::0;10217:99::o;5662:95::-;5715:7;4217:13;4159:1;4217:2;:13;:::i;:::-;4202:28;;:12;:28;:::i;:::-;5735:14;;5662:95;:::o;11575:233::-;11644:16;;-1:-1:-1;;;;;11644:16:0;274:10;-1:-1:-1;;;;;11628:32:0;;11620:41;;;;;;11693:21;11728:12;;11725:76;;11754:35;11767:21;11754:12;:35::i;:::-;11609:199;11575:233::o;6387:313::-;6485:4;6502:36;6512:6;6520:9;6531:6;6502:9;:36::i;:::-;6549:121;6558:6;274:10;6580:89;6618:6;6580:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6580:19:0;;;;;;:11;:19;;;;;;;;274:10;6580:33;;;;;;;;;;:37;:89::i;:::-;6549:8;:121::i;:::-;-1:-1:-1;6688:4:0;6387:313;;;;;:::o;11132:398::-;11252:16;;-1:-1:-1;;;;;11252:16:0;274:10;-1:-1:-1;;;;;11235:33:0;;11227:42;;;;;;11288:20;;;;;:58;;-1:-1:-1;11312:34:0;;;11288:58;11280:67;;;;;;11373:10;11358:12;11396:127;11416:20;;;11396:127;;;11458:53;11468:4;11474:9;;11484:1;11474:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11488:7;;11496:1;11488:10;;;;;;;:::i;:::-;;;;;;;11502:7;11488:22;;;;:::i;:::-;11458:9;:53::i;:::-;11438:3;;;;:::i;:::-;;;;11396:127;;;;11216:314;11132:398;;;;:::o;2653:148::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;2760:1:::1;2744:6:::0;;2723:40:::1;::::0;-1:-1:-1;;;;;2744:6:0;;::::1;::::0;2723:40:::1;::::0;2760:1;;2723:40:::1;2791:1;2774:19:::0;;-1:-1:-1;;;;;;2774:19:0::1;::::0;;2653:148::o;9793:198::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;4217:13:::1;4159:1;4217:2;:13;:::i;:::-;4202:28;::::0;:12:::1;:28;:::i;:::-;9846:12;:22:::0;4217:13:::1;4159:1;4217:2;:13;:::i;:::-;4202:28;::::0;:12:::1;:28;:::i;:::-;9879:14;:24:::0;;;9919:27:::1;::::0;4217:13:::1;::::0;:2:::1;:13;:::i;:::-;4202:28;::::0;:12:::1;:28;:::i;:::-;9919:27;::::0;1361:25:1;;;1349:2;1334:18;9919:27:0::1;;;;;;;9957:20;:26:::0;;-1:-1:-1;;;;9957:26:0::1;::::0;;9793:198::o;10324:87::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;10381:15:::1;:22:::0;;-1:-1:-1;;;;10381:22:0::1;-1:-1:-1::0;;;10381:22:0::1;::::0;;10324:87::o;5892:167::-;5970:4;5987:42;274:10;6011:9;6022:6;5987:9;:42::i;10419:705::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;10483:11:::1;::::0;-1:-1:-1;;;10483:11:0;::::1;;;10482:12;10474:47;;;::::0;-1:-1:-1;;;10474:47:0;;6573:2:1;10474:47:0::1;::::0;::::1;6555:21:1::0;6612:2;6592:18;;;6585:30;6651:25;6631:18;;;6624:53;6694:18;;10474:47:0::1;6371:347:1::0;10474:47:0::1;10532:15;:80:::0;;-1:-1:-1;;;;;;10532:80:0::1;10569:42;10532:80:::0;;::::1;::::0;;;10623:58:::1;::::0;10640:4:::1;::::0;4217:13:::1;4159:1;4217:2;:13;:::i;:::-;4202:28;::::0;:12:::1;:28;:::i;10623:58::-;10726:15;;;;;;;;;-1:-1:-1::0;;;;;10726:15:0::1;-1:-1:-1::0;;;;;10726:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10708:55:0::1;;10772:4;10779:15;;;;;;;;;-1:-1:-1::0;;;;;10779:15:0::1;-1:-1:-1::0;;;;;10779:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10708:94;::::0;-1:-1:-1;;;;;;10708:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7209:15:1;;;10708:94:0::1;::::0;::::1;7191:34:1::0;7261:15;;7241:18;;;7234:43;7126:18;;10708:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10692:13;:110:::0;;-1:-1:-1;;;;;10692:110:0;;::::1;-1:-1:-1::0;;;;;;10692:110:0;;::::1;;::::0;;10813:15:::1;::::0;::::1;:31;10852:21;10883:4;10889:24;10883:4:::0;-1:-1:-1;;;;;5858:18:0;5831:7;5858:18;;;:9;:18;;;;;;;5765:119;10889:24:::1;10914:1;10916::::0;10918:7:::1;2477::::0;2504:6;-1:-1:-1;;;;;2504:6:0;;2439:79;10918:7:::1;10813:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10813:129:0;;;-1:-1:-1;;;;;7647:15:1;;;10813:129:0::1;::::0;::::1;7629:34:1::0;7679:18;;;7672:34;;;;7722:18;;;7715:34;;;;7765:18;;;7758:34;7829:15;;;7808:19;;;7801:44;10926:15:0::1;7861:19:1::0;;;7854:35;7563:19;;10813:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10960:13:0::1;::::0;10991:15:::1;::::0;10953:71:::1;::::0;-1:-1:-1;;;10953:71:0;;-1:-1:-1;;;;;10991:15:0;;::::1;10953:71;::::0;::::1;8385:51:1::0;-1:-1:-1;;8452:18:1;;;8445:34;10960:13:0;::::1;::::0;-1:-1:-1;10953:29:0::1;::::0;8358:18:1;;10953:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11035:11:0::1;:18:::0;;-1:-1:-1;;;;11093:23:0;-1:-1:-1;;;11093:23:0;;;10419:705::o;11816:204::-;11882:16;;-1:-1:-1;;;;;11882:16:0;274:10;-1:-1:-1;;;;;11866:32:0;;11858:41;;;;;;11945:4;11910:14;5858:18;;;:9;:18;;;;;;11987:16;;5858:18;;11962:50;;-1:-1:-1;;;;;11987:16:0;5858:18;11962:9;:50::i;6708:335::-;-1:-1:-1;;;;;6801:19:0;;6793:68;;;;-1:-1:-1;;;6793:68:0;;8974:2:1;6793:68:0;;;8956:21:1;9013:2;8993:18;;;8986:30;9052:34;9032:18;;;9025:62;-1:-1:-1;;;9103:18:1;;;9096:34;9147:19;;6793:68:0;8772:400:1;6793:68:0;-1:-1:-1;;;;;6880:21:0;;6872:68;;;;-1:-1:-1;;;6872:68:0;;9379:2:1;6872:68:0;;;9361:21:1;9418:2;9398:18;;;9391:30;9457:34;9437:18;;;9430:62;-1:-1:-1;;;9508:18:1;;;9501:32;9550:19;;6872:68:0;9177:398:1;6872:68:0;-1:-1:-1;;;;;6951:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7003:32;;1361:25:1;;;7003:32:0;;1334:18:1;7003:32:0;;;;;;;6708:335;;;:::o;10111:98::-;10168:16;;:33;;-1:-1:-1;;;;;10168:16:0;;;;:33;;;;;10194:6;;10168:16;:33;:16;:33;10194:6;10168:16;:33;;;;;;;;;;;;;;;;;;;;;10111:98;:::o;7051:2135::-;-1:-1:-1;;;;;7139:18:0;;7131:68;;;;-1:-1:-1;;;7131:68:0;;9782:2:1;7131:68:0;;;9764:21:1;9821:2;9801:18;;;9794:30;9860:34;9840:18;;;9833:62;-1:-1:-1;;;9911:18:1;;;9904:35;9956:19;;7131:68:0;9580:401:1;7131:68:0;-1:-1:-1;;;;;7218:16:0;;7210:64;;;;-1:-1:-1;;;7210:64:0;;10188:2:1;7210:64:0;;;10170:21:1;10227:2;10207:18;;;10200:30;10266:34;10246:18;;;10239:62;-1:-1:-1;;;10317:18:1;;;10310:33;10360:19;;7210:64:0;9986:399:1;7210:64:0;7302:1;7293:6;:10;7285:64;;;;-1:-1:-1;;;7285:64:0;;10592:2:1;7285:64:0;;;10574:21:1;10631:2;10611:18;;;10604:30;10670:34;10650:18;;;10643:62;-1:-1:-1;;;10721:18:1;;;10714:39;10770:19;;7285:64:0;10390:405:1;7285:64:0;7360:17;2504:6;;-1:-1:-1;;;;;7394:15:0;;;2504:6;;7394:15;;;;:32;;-1:-1:-1;2477:7:0;2504:6;-1:-1:-1;;;;;7413:13:0;;;2504:6;;7413:13;;7394:32;:60;;;;-1:-1:-1;7438:16:0;;-1:-1:-1;;;;;7430:24:0;;;7438:16;;7430:24;;7394:60;:86;;;;-1:-1:-1;7464:16:0;;-1:-1:-1;;;;;7458:22:0;;;7464:16;;7458:22;;7394:86;7390:1276;;;7505:15;;-1:-1:-1;;;7505:15:0;;;;7497:50;;;;-1:-1:-1;;;7497:50:0;;11002:2:1;7497:50:0;;;10984:21:1;11041:2;11021:18;;;11014:30;-1:-1:-1;;;11060:18:1;;;11053:52;11122:18;;7497:50:0;10800:346:1;7497:50:0;7574:31;7601:3;7574:22;7585:10;;7574:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;7634:13;;7562:43;;-1:-1:-1;;;;;;7626:21:0;;;7634:13;;7626:21;:55;;;;-1:-1:-1;7665:15:0;;-1:-1:-1;;;;;7651:30:0;;;7665:15;;7651:30;;7626:55;:83;;;;-1:-1:-1;;;;;;7687:22:0;;;;;;:18;:22;;;;;;;;7685:24;7626:83;7622:283;;;7749:12;;7739:6;:22;;7731:60;;;;-1:-1:-1;;;7731:60:0;;11353:2:1;7731:60:0;;;11335:21:1;11392:2;11372:18;;;11365:30;11431:27;11411:18;;;11404:55;11476:18;;7731:60:0;11151:349:1;7731:60:0;7844:14;;7834:6;7818:13;7828:2;-1:-1:-1;;;;;5858:18:0;5831:7;5858:18;;;:9;:18;;;;;;;5765:119;7818:13;:22;;;;:::i;:::-;:40;;7810:79;;;;-1:-1:-1;;;7810:79:0;;11837:2:1;7810:79:0;;;11819:21:1;11876:2;11856:18;;;11849:30;11915:28;11895:18;;;11888:56;11961:18;;7810:79:0;11635:350:1;7810:79:0;7930:13;;-1:-1:-1;;;;;7924:19:0;;;7930:13;;7924:19;:43;;;;-1:-1:-1;;;;;;7947:20:0;;7962:4;7947:20;;7924:43;7921:127;;;8000:32;8028:3;8000:23;8011:11;;8000:6;:10;;:23;;;;:::i;:32::-;7988:44;;7921:127;8113:4;8064:28;5858:18;;;:9;:18;;;;;;8139:6;;-1:-1:-1;;;8139:6:0;;;;8138:7;:32;;;;-1:-1:-1;8157:13:0;;-1:-1:-1;;;;;8149:21:0;;;8157:13;;8149:21;8138:32;:47;;;;-1:-1:-1;8174:11:0;;-1:-1:-1;;;8174:11:0;;;;8138:47;:89;;;;;8210:17;;8189:20;:38;8138:89;8134:521;;;8248:67;8265:49;8269:6;8276:37;8280:20;8301:11;;8276:3;:37::i;:::-;8265:3;:49::i;:::-;8248:16;:67::i;:::-;8363:21;8406:22;;8403:237;;8453:23;8479:25;:18;8502:1;8479:22;:25::i;:::-;8453:51;;8527:35;8546:15;8527:18;:35::i;:::-;8585;8598:21;8585:12;:35::i;:::-;8430:210;8403:237;8229:426;8134:521;7482:1184;7390:1276;-1:-1:-1;;;;;8683:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8711:22:0;;;;;;:18;:22;;;;;;;;8683:50;8682:102;;;-1:-1:-1;8747:13:0;;-1:-1:-1;;;;;8739:21:0;;;8747:13;;8739:21;;;;:44;;-1:-1:-1;8770:13:0;;-1:-1:-1;;;;;8764:19:0;;;8770:13;;8764:19;;8739:44;8678:148;;;-1:-1:-1;8813:1:0;8678:148;8841:13;;8838:163;;8911:4;8893:24;;;;:9;:24;;;;;;:39;;8922:9;8893:28;:39::i;:::-;8886:4;8868:24;;;;:9;:24;;;;;;;:64;;;;8950:39;;-1:-1:-1;;;;;8950:39:0;;;;;;;8979:9;1361:25:1;;1349:2;1334:18;;1215:177;8950:39:0;;;;;;;;8838:163;-1:-1:-1;;;;;9029:15:0;;;;;;:9;:15;;;;;;:27;;9049:6;9029:19;:27::i;:::-;-1:-1:-1;;;;;9013:15:0;;;;;;:9;:15;;;;;:43;9081:40;9099:21;:6;9110:9;9099:10;:21::i;:::-;-1:-1:-1;;;;;9081:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9067:13:0;;;;;;;:9;:13;;;;;:54;;;;9137:41;;;9156:21;:6;9167:9;9156:10;:21::i;:::-;9137:41;;1361:25:1;;;1349:2;1334:18;9137:41:0;;;;;;;7120:2066;7051:2135;;;:::o;1331:190::-;1417:7;1453:12;1445:6;;;;1437:29;;;;-1:-1:-1;;;1437:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1477:9:0;1489:5;1493:1;1489;:5;:::i;:::-;1477:17;1331:190;-1:-1:-1;;;;;1331:190:0:o;1529:246::-;1587:7;1611:1;1616;1611:6;1607:47;;-1:-1:-1;1641:1:0;1634:8;;1607:47;1664:9;1676:5;1680:1;1676;:5;:::i;:::-;1664:17;-1:-1:-1;1709:1:0;1700:5;1704:1;1664:17;1700:5;:::i;:::-;:10;1692:56;;;;-1:-1:-1;;;1692:56:0;;12547:2:1;1692:56:0;;;12529:21:1;12586:2;12566:18;;;12559:30;12625:34;12605:18;;;12598:62;-1:-1:-1;;;12676:18:1;;;12669:31;12717:19;;1692:56:0;12345:397:1;1692:56:0;1766:1;1529:246;-1:-1:-1;;;1529:246:0:o;1783:132::-;1841:7;1868:39;1872:1;1875;1868:39;;;;;;;;;;;;;;;;;:3;:39::i;9196:98::-;9253:7;9280:1;9278;:3;9277:9;;9285:1;9277:9;;;-1:-1:-1;9283:1:0;9196:98;-1:-1:-1;9196:98:0:o;9302:483::-;4928:6;:13;;-1:-1:-1;;;;4928:13:0;-1:-1:-1;;;4928:13:0;;;9404:16:::1;::::0;;9418:1:::1;9404:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9404:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9404:16:0::1;9380:40;;9449:4;9431;9436:1;9431:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9431:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9475:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9475:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9431:7;;9475:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9465:4;9470:1;9465:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9465:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9540:15:::1;::::0;9508:62:::1;::::0;9525:4:::1;::::0;9540:15:::1;9558:11:::0;9508:8:::1;:62::i;:::-;9581:15;::::0;:196:::1;::::0;-1:-1:-1;;;9581:196:0;;-1:-1:-1;;;;;9581:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9662:11;;9581:15:::1;::::0;9704:4;;9731::::1;::::0;9751:15:::1;::::0;9581:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4964:6:0;:14;;-1:-1:-1;;;;4964:14:0;;;-1:-1:-1;;;;9302:483:0:o;9999:104::-;10062:16;;:33;;-1:-1:-1;;;;;10062:16:0;;;;:33;;;;;10088:6;;10062:16;:33;:16;:33;10088:6;10062:16;:33;;;;;;;;;;;;;;;;;;;1000:179;1058:7;;1090:5;1094:1;1090;:5;:::i;:::-;1078:17;;1119:1;1114;:6;;1106:46;;;;-1:-1:-1;;;1106:46:0;;14066:2:1;1106:46:0;;;14048:21:1;14105:2;14085:18;;;14078:30;14144:29;14124:18;;;14117:57;14191:18;;1106:46:0;13864:351:1;1187:136:0;1245:7;1272:43;1276:1;1279;1272:43;;;;;;;;;;;;;;;;;:3;:43::i;1923:189::-;2009:7;2044:12;2037:5;2029:28;;;;-1:-1:-1;;;2029:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2068:9:0;2080:5;2084:1;2080;: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;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:367::-;2110:8;2120:6;2174:3;2167:4;2159:6;2155:17;2151:27;2141:55;;2192:1;2189;2182:12;2141:55;-1:-1:-1;2215:20:1;;2258:18;2247:30;;2244:50;;;2290:1;2287;2280:12;2244:50;2327:4;2319:6;2315:17;2303:29;;2387:3;2380:4;2370:6;2367:1;2363:14;2355:6;2351:27;2347:38;2344:47;2341:67;;;2404:1;2401;2394:12;2341:67;2047:367;;;;;:::o;2419:773::-;2541:6;2549;2557;2565;2618:2;2606:9;2597:7;2593:23;2589:32;2586:52;;;2634:1;2631;2624:12;2586:52;2674:9;2661:23;2703:18;2744:2;2736:6;2733:14;2730:34;;;2760:1;2757;2750:12;2730:34;2799:70;2861:7;2852:6;2841:9;2837:22;2799:70;:::i;:::-;2888:8;;-1:-1:-1;2773:96:1;-1:-1:-1;2976:2:1;2961:18;;2948:32;;-1:-1:-1;2992:16:1;;;2989:36;;;3021:1;3018;3011:12;2989:36;;3060:72;3124:7;3113:8;3102:9;3098:24;3060:72;:::i;:::-;2419:773;;;;-1:-1:-1;3151:8:1;-1:-1:-1;;;;2419:773:1:o;3197:247::-;3256:6;3309:2;3297:9;3288:7;3284:23;3280:32;3277:52;;;3325:1;3322;3315:12;3277:52;3364:9;3351:23;3383:31;3408:5;3383:31;:::i;3657:388::-;3725:6;3733;3786:2;3774:9;3765:7;3761:23;3757:32;3754:52;;;3802:1;3799;3792:12;3754:52;3841:9;3828:23;3860:31;3885:5;3860:31;:::i;:::-;3910:5;-1:-1:-1;3967:2:1;3952:18;;3939:32;3980:33;3939:32;3980:33;:::i;:::-;4032:7;4022:17;;;3657:388;;;;;:::o;4050:356::-;4252:2;4234:21;;;4271:18;;;4264:30;4330:34;4325:2;4310:18;;4303:62;4397:2;4382:18;;4050:356::o;4411:127::-;4472:10;4467:3;4463:20;4460:1;4453:31;4503:4;4500:1;4493:15;4527:4;4524:1;4517:15;4543:422;4632:1;4675:5;4632:1;4689:270;4710:7;4700:8;4697:21;4689:270;;;4769:4;4765:1;4761:6;4757:17;4751:4;4748:27;4745:53;;;4778:18;;:::i;:::-;4828:7;4818:8;4814:22;4811:55;;;4848:16;;;;4811:55;4927:22;;;;4887:15;;;;4689:270;;;4693:3;4543:422;;;;;:::o;4970:806::-;5019:5;5049:8;5039:80;;-1:-1:-1;5090:1:1;5104:5;;5039:80;5138:4;5128:76;;-1:-1:-1;5175:1:1;5189:5;;5128:76;5220:4;5238:1;5233:59;;;;5306:1;5301:130;;;;5213:218;;5233:59;5263:1;5254:10;;5277:5;;;5301:130;5338:3;5328:8;5325:17;5322:43;;;5345:18;;:::i;:::-;-1:-1:-1;;5401:1:1;5387:16;;5416:5;;5213:218;;5515:2;5505:8;5502:16;5496:3;5490:4;5487:13;5483:36;5477:2;5467:8;5464:16;5459:2;5453:4;5450:12;5446:35;5443:77;5440:159;;;-1:-1:-1;5552:19:1;;;5584:5;;5440:159;5631:34;5656:8;5650:4;5631:34;:::i;:::-;5701:6;5697:1;5693:6;5689:19;5680:7;5677:32;5674:58;;;5712:18;;:::i;:::-;5750:20;;4970:806;-1:-1:-1;;;4970:806:1:o;5781:140::-;5839:5;5868:47;5909:4;5899:8;5895:19;5889:4;5868:47;:::i;5926:168::-;5999:9;;;6030;;6047:15;;;6041:22;;6027:37;6017:71;;6068:18;;:::i;6099:127::-;6160:10;6155:3;6151:20;6148:1;6141:31;6191:4;6188:1;6181:15;6215:4;6212:1;6205:15;6231:135;6270:3;6291:17;;;6288:43;;6311:18;;:::i;:::-;-1:-1:-1;6358:1:1;6347:13;;6231:135::o;6723:251::-;6793:6;6846:2;6834:9;6825:7;6821:23;6817:32;6814:52;;;6862:1;6859;6852:12;6814:52;6894:9;6888:16;6913:31;6938:5;6913:31;:::i;7900:306::-;7988:6;7996;8004;8057:2;8045:9;8036:7;8032:23;8028:32;8025:52;;;8073:1;8070;8063:12;8025:52;8102:9;8096:16;8086:26;;8152:2;8141:9;8137:18;8131:25;8121:35;;8196:2;8185:9;8181:18;8175:25;8165:35;;7900:306;;;;;:::o;8490:277::-;8557:6;8610:2;8598:9;8589:7;8585:23;8581:32;8578:52;;;8626:1;8623;8616:12;8578:52;8658:9;8652:16;8711:5;8704:13;8697:21;8690:5;8687:32;8677:60;;8733:1;8730;8723:12;11505:125;11570:9;;;11591:10;;;11588:36;;;11604:18;;:::i;11990:128::-;12057:9;;;12078:11;;;12075:37;;;12092:18;;:::i;12123:217::-;12163:1;12189;12179:132;;12233:10;12228:3;12224:20;12221:1;12214:31;12268:4;12265:1;12258:15;12296:4;12293:1;12286:15;12179:132;-1:-1:-1;12325:9:1;;12123:217::o;12879:980::-;13141:4;13189:3;13178:9;13174:19;13220:6;13209:9;13202:25;13246:2;13284:6;13279:2;13268:9;13264:18;13257:34;13327:3;13322:2;13311:9;13307:18;13300:31;13351:6;13386;13380:13;13417:6;13409;13402:22;13455:3;13444:9;13440:19;13433:26;;13494:2;13486:6;13482:15;13468:29;;13515:1;13525:195;13539:6;13536:1;13533:13;13525:195;;;13604:13;;-1:-1:-1;;;;;13600:39:1;13588:52;;13695:15;;;;13660:12;;;;13636:1;13554:9;13525:195;;;-1:-1:-1;;;;;;;13776:32:1;;;;13771:2;13756:18;;13749:60;-1:-1:-1;;;13840:3:1;13825:19;13818:35;13737:3;12879:980;-1:-1:-1;;;12879:980:1:o

Swarm Source

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