ETH Price: $3,584.06 (-2.74%)

Token

ERC-20: Alpha (ALPHA)
 

Overview

Max Total Supply

420,690,000,000 ALPHA

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,478,626,000 ALPHA

Value
$0.00
0x785611093db81046ee45bb9046d4d8b099bba421
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:
Coin

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-16
*/

/*

https://x.com/BillyM2k/status/1846553977045090417
https://t.me/ALPHAERC20
*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

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

interface IUniswapV2Router02 {
    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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        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);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract Coin is ERC20, Ownable {
    IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public uniswapV2Pair;
    address public immutable feeReceiver;

    uint256 private maxWalletSize = 8413800000 * 1e9;
    uint256 private swapbackMax = 8413800000 * 1e9;
    uint256 private swapbackMin = 1262070000 * 1e9;  
    uint32 private _buyCount;
    uint32 private _sellCount;
    uint32 private _lastSellBlock;
    uint32 private _preventSwapBefore = 20;
    uint32 private _lowerFeesAt = 20;
    uint32 private _finalBuyFee = 0;
    uint32 private _finalSellFee = 0;
    bool private _inSwap;

    uint256 public buyFeeProcent;
    uint256 public sellFeeProcent;

    mapping (address => bool) private excludedFromTxLimits;

    constructor() ERC20("Alpha", "ALPHA") payable {
        uint256 totalSupply = 420690000000 * 1e9;

        feeReceiver = payable(_msgSender());
        buyFeeProcent = 23;
        sellFeeProcent = 23;

        excludedFromTxLimits[feeReceiver] = true;
        excludedFromTxLimits[msg.sender] = true;
        excludedFromTxLimits[address(this)] = true;
        excludedFromTxLimits[address(0xdead)] = true;
        
        _approve(address(this), address(_router), totalSupply);
        _approve(msg.sender, address(_router), totalSupply);
        _mint(msg.sender, totalSupply);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address not allowed.");
        require(to != address(0), "Transfer to the zero address not allowed.");
        require(amount > 0, 'Transfer amount must be greater than zero.');

        bool excluded = excludedFromTxLimits[from] || excludedFromTxLimits[to];
        require(uniswapV2Pair != address(0) || excluded, "Liquidity pair not yet created.");

        bool isSell = to == uniswapV2Pair;
        bool isBuy = from == uniswapV2Pair;

        if(isBuy && !excluded){
            require(balanceOf(to) + amount <= maxWalletSize ||
                to == address(_router), "Max wallet exceeded");
            if(_buyCount <= _lowerFeesAt)
                _buyCount++;
            if(_buyCount == _lowerFeesAt){
                buyFeeProcent = _finalBuyFee;
                sellFeeProcent = _finalSellFee;
            }
        }            

        uint256 contractTokenBalance = balanceOf(address(this));
        if (isSell && !_inSwap && contractTokenBalance >= swapbackMin &&
          !excluded && _buyCount > _preventSwapBefore
        ) {
            if (block.number > _lastSellBlock) 
                _sellCount = 0;
            require(_sellCount < 3, "Only 3 sells per block!");
            _inSwap = true;
            swapTokensForEth(min(amount, min(contractTokenBalance, swapbackMax)));
            _inSwap = false;
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) 
                sendETHToFee(contractETHBalance);        
            _sellCount++;
            _lastSellBlock = uint32(block.number);
        }

        uint256 fee = isBuy ? buyFeeProcent : sellFeeProcent;

        if (fee > 0 && !excluded && !_inSwap && (isBuy || isSell)) {
            uint256 fees = amount * fee / 100;
            if (fees > 0){
                super._transfer(from, address(this), fees);
                amount-= fees;
            }
        }
        super._transfer(from, to, amount);
    }

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

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

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

    function startTrading() external payable onlyOwner {
        super._transfer(msg.sender, address(this), totalSupply());
        _router.addLiquidityETH{value: 1000000000000000000}(address(this), 304621000000000000000, 0, 0, msg.sender, block.timestamp);
        uniswapV2Pair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        buyFeeProcent = newBuyFee;
        sellFeeProcent = newSellFee;
    }

    function removeLimits() external onlyOwner {                
        maxWalletSize = totalSupply();
    }

    function setSwapSettings(uint256 maxAmount, uint256 minAmount) external onlyOwner {                
        swapbackMax = maxAmount;
        swapbackMin = minAmount;
    }

    function sweepStuckEther() external onlyOwner {
        payable(feeReceiver).transfer(address(this).balance);
    }

    function transferStuckTokens(IERC20 token) external onlyOwner {
        token.transfer(feeReceiver, token.balanceOf(address(this)));
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"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":"buyFeeProcent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"sellFeeProcent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sweepStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"transferStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6774c3d285932e80006007819055600855671183c5fa6fad6000600955600a8054600160601b600160e01b031916701400000014000000000000000000000000179055600560a081815264416c70686160d81b60c05261012060405260e091825264414c50484160d81b610100529060036200007c838262000478565b5060046200008b828262000478565b505050620000a8620000a26200017460201b60201c565b62000178565b3360808190526017600b819055600c555f908152600d60205260408082208054600160ff19918216811790925530808552928420805482168317905561dead9093527fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a8054909316179091556816ce3f1e16bf150000906200014090737a250d5630b4cf539739df2c5dacb4c659f2488d83620001c9565b6200016133737a250d5630b4cf539739df2c5dacb4c659f2488d83620001c9565b6200016d3382620002f4565b506200056a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316620002315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620002945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000228565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166200034c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000228565b8060025f8282546200035f919062000544565b90915550506001600160a01b0382165f90815260208190526040812080548392906200038d90849062000544565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200040457607f821691505b6020821081036200042357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003d657805f5260205f20601f840160051c81016020851015620004505750805b601f840160051c820191505b8181101562000471575f81556001016200045c565b5050505050565b81516001600160401b03811115620004945762000494620003db565b620004ac81620004a58454620003ef565b8462000429565b602080601f831160018114620004e2575f8415620004ca5750858301515b5f19600386901b1c1916600185901b1785556200053c565b5f85815260208120601f198616915b828110156200051257888601518255948401946001909101908401620004f1565b50858210156200053057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200056457634e487b7160e01b5f52601160045260245ffd5b92915050565b608051611a2a620005985f395f81816103ad0152818161058401528181610a3101526116740152611a2a5ff3fe60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb1461037d578063b3f006741461039c578063d0811807146103cf578063dbc3889f146103e4578063dd62ed3e14610403578063f2fde38b14610447575f80fd5b8063715018a6146102e6578063751039fc146102fa5780638da5cb5b1461030e5780638f4590d21461032b57806395d89b411461034a578063a457c2d71461035e575f80fd5b806323b872dd1161010457806323b872dd1461021a578063293230b814610239578063313ce56714610241578063395093511461025c57806349bd5a5e1461027b57806370a08231146102b2575f80fd5b806306fdde0314610155578063095ea7b31461017f5780630b78f9c0146101ae5780631678e6f8146101cf57806317ccb1bf146101f257806318160ddd14610206575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610466565b60405161017691906116ba565b60405180910390f35b34801561018a575f80fd5b5061019e61019936600461171a565b6104f6565b6040519015158152602001610176565b3480156101b9575f80fd5b506101cd6101c8366004611744565b61050f565b005b3480156101da575f80fd5b506101e4600c5481565b604051908152602001610176565b3480156101fd575f80fd5b506101cd61054d565b348015610211575f80fd5b506002546101e4565b348015610225575f80fd5b5061019e610234366004611764565b6105cc565b6101cd6105ef565b34801561024c575f80fd5b5060405160098152602001610176565b348015610267575f80fd5b5061019e61027636600461171a565b61085a565b348015610286575f80fd5b5060065461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b3480156102bd575f80fd5b506101e46102cc3660046117a2565b6001600160a01b03165f9081526020819052604090205490565b3480156102f1575f80fd5b506101cd610898565b348015610305575f80fd5b506101cd6108cd565b348015610319575f80fd5b506005546001600160a01b031661029a565b348015610336575f80fd5b506101cd610345366004611744565b6108ff565b348015610355575f80fd5b50610169610934565b348015610369575f80fd5b5061019e61037836600461171a565b610943565b348015610388575f80fd5b5061019e61039736600461171a565b6109d4565b3480156103a7575f80fd5b5061029a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103da575f80fd5b506101e4600b5481565b3480156103ef575f80fd5b506101cd6103fe3660046117a2565b6109e1565b34801561040e575f80fd5b506101e461041d3660046117bd565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610452575f80fd5b506101cd6104613660046117a2565b610b0b565b606060038054610475906117f4565b80601f01602080910402602001604051908101604052809291908181526020018280546104a1906117f4565b80156104ec5780601f106104c3576101008083540402835291602001916104ec565b820191905f5260205f20905b8154815290600101906020018083116104cf57829003601f168201915b5050505050905090565b5f33610503818585610ba3565b60019150505b92915050565b6005546001600160a01b031633146105425760405162461bcd60e51b81526004016105399061182c565b60405180910390fd5b600b91909155600c55565b6005546001600160a01b031633146105775760405162461bcd60e51b81526004016105399061182c565b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016904780156108fc02915f818181858888f193505050501580156105c9573d5f803e3d5ffd5b50565b5f336105d9858285610cc6565b6105e4858585610d56565b506001949350505050565b6005546001600160a01b031633146106195760405162461bcd60e51b81526004016105399061182c565b61062c333061062760025490565b6112aa565b60405163f305d71960e01b815230600482015268108377318c7c44800060248201525f6044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990670de0b6b3a76400009060c40160606040518083038185885af11580156106ac573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106d19190611861565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610724573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610748919061188c565b6001600160a01b031663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107cb919061188c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610814573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610838919061188c565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061050390829086906108939087906118bb565b610ba3565b6005546001600160a01b031633146108c25760405162461bcd60e51b81526004016105399061182c565b6108cb5f611476565b565b6005546001600160a01b031633146108f75760405162461bcd60e51b81526004016105399061182c565b600254600755565b6005546001600160a01b031633146109295760405162461bcd60e51b81526004016105399061182c565b600891909155600955565b606060048054610475906117f4565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156109c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610539565b6105e48286868403610ba3565b5f33610503818585610d56565b6005546001600160a01b03163314610a0b5760405162461bcd60e51b81526004016105399061182c565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb907f00000000000000000000000000000000000000000000000000000000000000009083906370a0823190602401602060405180830381865afa158015610a77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b91906118ce565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610ae3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0791906118e5565b5050565b6005546001600160a01b03163314610b355760405162461bcd60e51b81526004016105399061182c565b6001600160a01b038116610b9a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610539565b6105c981611476565b6001600160a01b038316610c055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610539565b6001600160a01b038216610c665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610539565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610d505781811015610d435760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610539565b610d508484848403610ba3565b50505050565b6001600160a01b038316610dc05760405162461bcd60e51b815260206004820152602b60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60448201526a37ba1030b63637bbb2b21760a91b6064820152608401610539565b6001600160a01b038216610e285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220746f20746865207a65726f2061646472657373206e6f746044820152681030b63637bbb2b21760b91b6064820152608401610539565b5f8111610e8a5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152693a3430b7103d32b9379760b11b6064820152608401610539565b6001600160a01b0383165f908152600d602052604081205460ff1680610ec757506001600160a01b0383165f908152600d602052604090205460ff165b6006549091506001600160a01b0316151580610ee05750805b610f2c5760405162461bcd60e51b815260206004820152601f60248201527f4c69717569646974792070616972206e6f742079657420637265617465642e006044820152606401610539565b6006546001600160a01b03908116848216811491861614808015610f4e575082155b156110705760075484610f75876001600160a01b03165f9081526020819052604090205490565b610f7f91906118bb565b111580610fa857506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b610fea5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610539565b600a5463ffffffff600160801b8204811691161161103757600a805463ffffffff16905f61101783611904565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600a5463ffffffff600160801b8204811691160361107057600a5463ffffffff600160a01b82048116600b55600160c01b90910416600c555b305f908152602081905260409020548280156110965750600a54600160e01b900460ff16155b80156110a457506009548110155b80156110ae575083155b80156110ca5750600a5463ffffffff600160601b820481169116115b1561121057600a5468010000000000000000900463ffffffff164311156110fd57600a805467ffffffff00000000191690555b600a54600364010000000090910463ffffffff161061115e5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610539565b600a805460ff60e01b1916600160e01b1790556008546111939061118e9087906111899085906114c7565b6114c7565b6114de565b600a805460ff60e01b191690554780156111b0576111b081611667565b600a8054640100000000900463ffffffff169060046111ce83611904565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f8261121e57600c54611222565b600b545b90505f81118015611231575084155b80156112475750600a54600160e01b900460ff16155b8015611257575082806112575750835b15611295575f60646112698389611926565b611273919061193d565b90508015611293576112868930836112aa565b611290818861195c565b96505b505b6112a08888886112aa565b5050505050505050565b6001600160a01b03831661130e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610539565b6001600160a01b0382166113705760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610539565b6001600160a01b0383165f90815260208190526040902054818110156113e75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610539565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061141d9084906118bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161146991815260200190565b60405180910390a3610d50565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8183116114d557826114d7565b815b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115115761151161196f565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611581573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a5919061188c565b816001815181106115b8576115b861196f565b60200260200101906001600160a01b031690816001600160a01b0316815250506115f730737a250d5630b4cf539739df2c5dacb4c659f2488d84610ba3565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116369085905f90869030904290600401611983565b5f604051808303815f87803b15801561164d575f80fd5b505af115801561165f573d5f803e3d5ffd5b505050505050565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083905f818181858888f19350505050158015610b07573d5f803e3d5ffd5b5f602080835283518060208501525f5b818110156116e6578581018301518582016040015282016116ca565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105c9575f80fd5b5f806040838503121561172b575f80fd5b823561173681611706565b946020939093013593505050565b5f8060408385031215611755575f80fd5b50508035926020909101359150565b5f805f60608486031215611776575f80fd5b833561178181611706565b9250602084013561179181611706565b929592945050506040919091013590565b5f602082840312156117b2575f80fd5b81356114d781611706565b5f80604083850312156117ce575f80fd5b82356117d981611706565b915060208301356117e981611706565b809150509250929050565b600181811c9082168061180857607f821691505b60208210810361182657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611873575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561189c575f80fd5b81516114d781611706565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610509576105096118a7565b5f602082840312156118de575f80fd5b5051919050565b5f602082840312156118f5575f80fd5b815180151581146114d7575f80fd5b5f63ffffffff80831681810361191c5761191c6118a7565b6001019392505050565b8082028115828204841417610509576105096118a7565b5f8261195757634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610509576105096118a7565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119d35784516001600160a01b0316835293830193918301916001016119ae565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dc30a781c8f6a4456d36332e0b4883264c28c996e7685a43b23122dee2d760ed64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb1461037d578063b3f006741461039c578063d0811807146103cf578063dbc3889f146103e4578063dd62ed3e14610403578063f2fde38b14610447575f80fd5b8063715018a6146102e6578063751039fc146102fa5780638da5cb5b1461030e5780638f4590d21461032b57806395d89b411461034a578063a457c2d71461035e575f80fd5b806323b872dd1161010457806323b872dd1461021a578063293230b814610239578063313ce56714610241578063395093511461025c57806349bd5a5e1461027b57806370a08231146102b2575f80fd5b806306fdde0314610155578063095ea7b31461017f5780630b78f9c0146101ae5780631678e6f8146101cf57806317ccb1bf146101f257806318160ddd14610206575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610466565b60405161017691906116ba565b60405180910390f35b34801561018a575f80fd5b5061019e61019936600461171a565b6104f6565b6040519015158152602001610176565b3480156101b9575f80fd5b506101cd6101c8366004611744565b61050f565b005b3480156101da575f80fd5b506101e4600c5481565b604051908152602001610176565b3480156101fd575f80fd5b506101cd61054d565b348015610211575f80fd5b506002546101e4565b348015610225575f80fd5b5061019e610234366004611764565b6105cc565b6101cd6105ef565b34801561024c575f80fd5b5060405160098152602001610176565b348015610267575f80fd5b5061019e61027636600461171a565b61085a565b348015610286575f80fd5b5060065461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b3480156102bd575f80fd5b506101e46102cc3660046117a2565b6001600160a01b03165f9081526020819052604090205490565b3480156102f1575f80fd5b506101cd610898565b348015610305575f80fd5b506101cd6108cd565b348015610319575f80fd5b506005546001600160a01b031661029a565b348015610336575f80fd5b506101cd610345366004611744565b6108ff565b348015610355575f80fd5b50610169610934565b348015610369575f80fd5b5061019e61037836600461171a565b610943565b348015610388575f80fd5b5061019e61039736600461171a565b6109d4565b3480156103a7575f80fd5b5061029a7f000000000000000000000000e76f09e7f6a6a4951d5670562f73d10f3100933681565b3480156103da575f80fd5b506101e4600b5481565b3480156103ef575f80fd5b506101cd6103fe3660046117a2565b6109e1565b34801561040e575f80fd5b506101e461041d3660046117bd565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610452575f80fd5b506101cd6104613660046117a2565b610b0b565b606060038054610475906117f4565b80601f01602080910402602001604051908101604052809291908181526020018280546104a1906117f4565b80156104ec5780601f106104c3576101008083540402835291602001916104ec565b820191905f5260205f20905b8154815290600101906020018083116104cf57829003601f168201915b5050505050905090565b5f33610503818585610ba3565b60019150505b92915050565b6005546001600160a01b031633146105425760405162461bcd60e51b81526004016105399061182c565b60405180910390fd5b600b91909155600c55565b6005546001600160a01b031633146105775760405162461bcd60e51b81526004016105399061182c565b6040516001600160a01b037f000000000000000000000000e76f09e7f6a6a4951d5670562f73d10f3100933616904780156108fc02915f818181858888f193505050501580156105c9573d5f803e3d5ffd5b50565b5f336105d9858285610cc6565b6105e4858585610d56565b506001949350505050565b6005546001600160a01b031633146106195760405162461bcd60e51b81526004016105399061182c565b61062c333061062760025490565b6112aa565b60405163f305d71960e01b815230600482015268108377318c7c44800060248201525f6044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990670de0b6b3a76400009060c40160606040518083038185885af11580156106ac573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106d19190611861565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610724573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610748919061188c565b6001600160a01b031663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107cb919061188c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610814573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610838919061188c565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061050390829086906108939087906118bb565b610ba3565b6005546001600160a01b031633146108c25760405162461bcd60e51b81526004016105399061182c565b6108cb5f611476565b565b6005546001600160a01b031633146108f75760405162461bcd60e51b81526004016105399061182c565b600254600755565b6005546001600160a01b031633146109295760405162461bcd60e51b81526004016105399061182c565b600891909155600955565b606060048054610475906117f4565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156109c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610539565b6105e48286868403610ba3565b5f33610503818585610d56565b6005546001600160a01b03163314610a0b5760405162461bcd60e51b81526004016105399061182c565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb907f000000000000000000000000e76f09e7f6a6a4951d5670562f73d10f310093369083906370a0823190602401602060405180830381865afa158015610a77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b91906118ce565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610ae3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0791906118e5565b5050565b6005546001600160a01b03163314610b355760405162461bcd60e51b81526004016105399061182c565b6001600160a01b038116610b9a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610539565b6105c981611476565b6001600160a01b038316610c055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610539565b6001600160a01b038216610c665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610539565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610d505781811015610d435760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610539565b610d508484848403610ba3565b50505050565b6001600160a01b038316610dc05760405162461bcd60e51b815260206004820152602b60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60448201526a37ba1030b63637bbb2b21760a91b6064820152608401610539565b6001600160a01b038216610e285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220746f20746865207a65726f2061646472657373206e6f746044820152681030b63637bbb2b21760b91b6064820152608401610539565b5f8111610e8a5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152693a3430b7103d32b9379760b11b6064820152608401610539565b6001600160a01b0383165f908152600d602052604081205460ff1680610ec757506001600160a01b0383165f908152600d602052604090205460ff165b6006549091506001600160a01b0316151580610ee05750805b610f2c5760405162461bcd60e51b815260206004820152601f60248201527f4c69717569646974792070616972206e6f742079657420637265617465642e006044820152606401610539565b6006546001600160a01b03908116848216811491861614808015610f4e575082155b156110705760075484610f75876001600160a01b03165f9081526020819052604090205490565b610f7f91906118bb565b111580610fa857506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b610fea5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610539565b600a5463ffffffff600160801b8204811691161161103757600a805463ffffffff16905f61101783611904565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600a5463ffffffff600160801b8204811691160361107057600a5463ffffffff600160a01b82048116600b55600160c01b90910416600c555b305f908152602081905260409020548280156110965750600a54600160e01b900460ff16155b80156110a457506009548110155b80156110ae575083155b80156110ca5750600a5463ffffffff600160601b820481169116115b1561121057600a5468010000000000000000900463ffffffff164311156110fd57600a805467ffffffff00000000191690555b600a54600364010000000090910463ffffffff161061115e5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610539565b600a805460ff60e01b1916600160e01b1790556008546111939061118e9087906111899085906114c7565b6114c7565b6114de565b600a805460ff60e01b191690554780156111b0576111b081611667565b600a8054640100000000900463ffffffff169060046111ce83611904565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f8261121e57600c54611222565b600b545b90505f81118015611231575084155b80156112475750600a54600160e01b900460ff16155b8015611257575082806112575750835b15611295575f60646112698389611926565b611273919061193d565b90508015611293576112868930836112aa565b611290818861195c565b96505b505b6112a08888886112aa565b5050505050505050565b6001600160a01b03831661130e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610539565b6001600160a01b0382166113705760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610539565b6001600160a01b0383165f90815260208190526040902054818110156113e75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610539565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061141d9084906118bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161146991815260200190565b60405180910390a3610d50565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8183116114d557826114d7565b815b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115115761151161196f565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611581573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a5919061188c565b816001815181106115b8576115b861196f565b60200260200101906001600160a01b031690816001600160a01b0316815250506115f730737a250d5630b4cf539739df2c5dacb4c659f2488d84610ba3565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116369085905f90869030904290600401611983565b5f604051808303815f87803b15801561164d575f80fd5b505af115801561165f573d5f803e3d5ffd5b505050505050565b6040516001600160a01b037f000000000000000000000000e76f09e7f6a6a4951d5670562f73d10f31009336169082156108fc029083905f818181858888f19350505050158015610b07573d5f803e3d5ffd5b5f602080835283518060208501525f5b818110156116e6578581018301518582016040015282016116ca565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105c9575f80fd5b5f806040838503121561172b575f80fd5b823561173681611706565b946020939093013593505050565b5f8060408385031215611755575f80fd5b50508035926020909101359150565b5f805f60608486031215611776575f80fd5b833561178181611706565b9250602084013561179181611706565b929592945050506040919091013590565b5f602082840312156117b2575f80fd5b81356114d781611706565b5f80604083850312156117ce575f80fd5b82356117d981611706565b915060208301356117e981611706565b809150509250929050565b600181811c9082168061180857607f821691505b60208210810361182657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611873575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561189c575f80fd5b81516114d781611706565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610509576105096118a7565b5f602082840312156118de575f80fd5b5051919050565b5f602082840312156118f5575f80fd5b815180151581146114d7575f80fd5b5f63ffffffff80831681810361191c5761191c6118a7565b6001019392505050565b8082028115828204841417610509576105096118a7565b5f8261195757634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610509576105096118a7565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119d35784516001600160a01b0316835293830193918301916001016119ae565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dc30a781c8f6a4456d36332e0b4883264c28c996e7685a43b23122dee2d760ed64736f6c63430008170033

Deployed Bytecode Sourcemap

8406:5430:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2490:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3421:201;;;;;;;;;;-1:-1:-1;3421:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3421:201:0;1023:187:1;13069:157:0;;;;;;;;;;-1:-1:-1;13069:157:0;;;;;:::i;:::-;;:::i;:::-;;9129:29;;;;;;;;;;;;;;;;;;;1614:25:1;;;1602:2;1587:18;9129:29:0;1468:177:1;13531:117:0;;;;;;;;;;;;;:::i;2810:108::-;;;;;;;;;;-1:-1:-1;2898:12:0;;2810:108;;3630:295;;;;;;;;;;-1:-1:-1;3630:295:0;;;;;:::i;:::-;;:::i;12697:364::-;;;:::i;2710:92::-;;;;;;;;;;-1:-1:-1;2710:92:0;;2793:1;2253:36:1;;2241:2;2226:18;2710:92:0;2111:184:1;3933:240:0;;;;;;;;;;-1:-1:-1;3933:240:0;;;;;:::i;:::-;;:::i;8562:28::-;;;;;;;;;;-1:-1:-1;8562:28:0;;;;-1:-1:-1;;;;;8562:28:0;;;;;;-1:-1:-1;;;;;2464:32:1;;;2446:51;;2434:2;2419:18;8562:28:0;2300:203:1;2926:127:0;;;;;;;;;;-1:-1:-1;2926:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3027:18:0;3000:7;3027:18;;;;;;;;;;;;2926:127;7888:103;;;;;;;;;;;;;:::i;13234:107::-;;;;;;;;;;;;;:::i;7665:87::-;;;;;;;;;;-1:-1:-1;7738:6:0;;-1:-1:-1;;;;;7738:6:0;7665:87;;13349:174;;;;;;;;;;-1:-1:-1;13349:174:0;;;;;:::i;:::-;;:::i;2598:104::-;;;;;;;;;;;;;:::i;4181:438::-;;;;;;;;;;-1:-1:-1;4181:438:0;;;;;:::i;:::-;;:::i;3061:193::-;;;;;;;;;;-1:-1:-1;3061:193:0;;;;;:::i;:::-;;:::i;8597:36::-;;;;;;;;;;;;;;;9094:28;;;;;;;;;;;;;;;;13656:140;;;;;;;;;;-1:-1:-1;13656:140:0;;;;;:::i;:::-;;:::i;3262:151::-;;;;;;;;;;-1:-1:-1;3262:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3378:18:0;;;3351:7;3378:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3262:151;7999:201;;;;;;;;;;-1:-1:-1;7999:201:0;;;;;:::i;:::-;;:::i;2490:100::-;2544:13;2577:5;2570:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2490:100;:::o;3421:201::-;3504:4;1034:10;3560:32;1034:10;3576:7;3585:6;3560:8;:32::i;:::-;3610:4;3603:11;;;3421:201;;;;;:::o;13069:157::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;;;;;;;;;13155:13:::1;:25:::0;;;;13191:14:::1;:27:::0;13069:157::o;13531:117::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;13588:52:::1;::::0;-1:-1:-1;;;;;13596:11:0::1;13588:29;::::0;13618:21:::1;13588:52:::0;::::1;;;::::0;::::1;::::0;;;13618:21;13588:29;:52;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13531:117::o:0;3630:295::-;3761:4;1034:10;3819:38;3835:4;1034:10;3850:6;3819:15;:38::i;:::-;3868:27;3878:4;3884:2;3888:6;3868:9;:27::i;:::-;-1:-1:-1;3913:4:0;;3630:295;-1:-1:-1;;;;3630:295:0:o;12697:364::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;12759:57:::1;12775:10;12795:4;12802:13;2898:12:::0;;;2810:108;12802:13:::1;12759:15;:57::i;:::-;12827:124;::::0;-1:-1:-1;;;12827:124:0;;12887:4:::1;12827:124;::::0;::::1;4534:34:1::0;12894:21:0::1;4584:18:1::0;;;4577:34;12917:1:0::1;4627:18:1::0;;;4620:34;;;4670:18;;;4663:34;12923:10:0::1;4713:19:1::0;;;4706:44;12935:15:0::1;4766:19:1::0;;;4759:35;8510:42:0::1;::::0;12827:23:::1;::::0;12858:19:::1;::::0;4468::1;;12827:124:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8510:42;-1:-1:-1::0;;;;;12996:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12978:44:0::1;;13031:4;8510:42;-1:-1:-1::0;;;;;13038:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12978:75;::::0;-1:-1:-1;;;;;;12978:75:0::1;::::0;;;;;;-1:-1:-1;;;;;5602:15:1;;;12978:75:0::1;::::0;::::1;5584:34:1::0;5654:15;;5634:18;;;5627:43;5519:18;;12978:75:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12962:13;:91:::0;;-1:-1:-1;;;;;;12962:91:0::1;-1:-1:-1::0;;;;;12962:91:0;;;::::1;::::0;;;::::1;::::0;;12697:364::o;3933:240::-;1034:10;4021:4;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:0;;;;;;;;;;4021:4;;1034:10;4077:66;;1034:10;;4102:27;;:40;;4132:10;;4102:40;:::i;:::-;4077:8;:66::i;7888:103::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;7953:30:::1;7980:1;7953:18;:30::i;:::-;7888:103::o:0;13234:107::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;2898:12;;13304:13:::1;:29:::0;13234:107::o;13349:174::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;13458:11:::1;:23:::0;;;;13492:11:::1;:23:::0;13349:174::o;2598:104::-;2654:13;2687:7;2680:14;;;;;:::i;4181:438::-;1034:10;4274:4;4357:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4357:27:0;;;;;;;;;;4274:4;;1034:10;4403:35;;;;4395:85;;;;-1:-1:-1;;;4395:85:0;;6145:2:1;4395:85:0;;;6127:21:1;6184:2;6164:18;;;6157:30;6223:34;6203:18;;;6196:62;-1:-1:-1;;;6274:18:1;;;6267:35;6319:19;;4395:85:0;5943:401:1;4395:85:0;4516:60;4525:5;4532:7;4560:15;4541:16;:34;4516:8;:60::i;3061:193::-;3140:4;1034:10;3196:28;1034:10;3213:2;3217:6;3196:9;:28::i;13656:140::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;13757:30:::1;::::0;-1:-1:-1;;;13757:30:0;;13781:4:::1;13757:30;::::0;::::1;2446:51:1::0;-1:-1:-1;;;;;13729:14:0;::::1;::::0;::::1;::::0;13744:11:::1;::::0;13729:14;;13757:15:::1;::::0;2419:18:1;;13757:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13729:59;::::0;-1:-1:-1;;;;;;13729:59:0::1;::::0;;;;;;-1:-1:-1;;;;;6730:32:1;;;13729:59:0::1;::::0;::::1;6712:51:1::0;6779:18;;;6772:34;6685:18;;13729:59:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13656:140:::0;:::o;7999:201::-;7738:6;;-1:-1:-1;;;;;7738:6:0;1034:10;7800:23;7792:68;;;;-1:-1:-1;;;7792:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8088:22:0;::::1;8080:73;;;::::0;-1:-1:-1;;;8080:73:0;;7301:2:1;8080:73:0::1;::::0;::::1;7283:21:1::0;7340:2;7320:18;;;7313:30;7379:34;7359:18;;;7352:62;-1:-1:-1;;;7430:18:1;;;7423:36;7476:19;;8080:73:0::1;7099:402:1::0;8080:73:0::1;8164:28;8183:8;8164:18;:28::i;6312:380::-:0;-1:-1:-1;;;;;6448:19:0;;6440:68;;;;-1:-1:-1;;;6440:68:0;;7708:2:1;6440:68:0;;;7690:21:1;7747:2;7727:18;;;7720:30;7786:34;7766:18;;;7759:62;-1:-1:-1;;;7837:18:1;;;7830:34;7881:19;;6440:68:0;7506:400:1;6440:68:0;-1:-1:-1;;;;;6527:21:0;;6519:68;;;;-1:-1:-1;;;6519:68:0;;8113:2:1;6519:68:0;;;8095:21:1;8152:2;8132:18;;;8125:30;8191:34;8171:18;;;8164:62;-1:-1:-1;;;8242:18:1;;;8235:32;8284:19;;6519:68:0;7911:398:1;6519:68:0;-1:-1:-1;;;;;6600:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6652:32;;1614:25:1;;;6652:32:0;;1587:18:1;6652:32:0;;;;;;;6312:380;;;:::o;6700:453::-;-1:-1:-1;;;;;3378:18:0;;;6835:24;3378:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6902:37:0;;6898:248;;6984:6;6964:16;:26;;6956:68;;;;-1:-1:-1;;;6956:68:0;;8516:2:1;6956:68:0;;;8498:21:1;8555:2;8535:18;;;8528:30;8594:31;8574:18;;;8567:59;8643:18;;6956:68:0;8314:353:1;6956:68:0;7068:51;7077:5;7084:7;7112:6;7093:16;:25;7068:8;:51::i;:::-;6824:329;6700:453;;;:::o;9839:2178::-;-1:-1:-1;;;;;9971:18:0;;9963:74;;;;-1:-1:-1;;;9963:74:0;;8874:2:1;9963:74:0;;;8856:21:1;8913:2;8893:18;;;8886:30;8952:34;8932:18;;;8925:62;-1:-1:-1;;;9003:18:1;;;8996:41;9054:19;;9963:74:0;8672:407:1;9963:74:0;-1:-1:-1;;;;;10056:16:0;;10048:70;;;;-1:-1:-1;;;10048:70:0;;9286:2:1;10048:70:0;;;9268:21:1;9325:2;9305:18;;;9298:30;9364:34;9344:18;;;9337:62;-1:-1:-1;;;9415:18:1;;;9408:39;9464:19;;10048:70:0;9084:405:1;10048:70:0;10146:1;10137:6;:10;10129:65;;;;-1:-1:-1;;;10129:65:0;;9696:2:1;10129:65:0;;;9678:21:1;9735:2;9715:18;;;9708:30;9774:34;9754:18;;;9747:62;-1:-1:-1;;;9825:18:1;;;9818:40;9875:19;;10129:65:0;9494:406:1;10129:65:0;-1:-1:-1;;;;;10223:26:0;;10207:13;10223:26;;;:20;:26;;;;;;;;;:54;;-1:-1:-1;;;;;;10253:24:0;;;;;;:20;:24;;;;;;;;10223:54;10296:13;;10207:70;;-1:-1:-1;;;;;;10296:13:0;:27;;;:39;;;10327:8;10296:39;10288:83;;;;-1:-1:-1;;;10288:83:0;;10107:2:1;10288:83:0;;;10089:21:1;10146:2;10126:18;;;10119:30;10185:33;10165:18;;;10158:61;10236:18;;10288:83:0;9905:355:1;10288:83:0;10404:13;;-1:-1:-1;;;;;10404:13:0;;;10398:19;;;;;;10441:21;;;;10478:18;;;;;10488:8;10487:9;10478:18;10475:391;;;10546:13;;10536:6;10520:13;10530:2;-1:-1:-1;;;;;3027:18:0;3000:7;3027:18;;;;;;;;;;;;2926:127;10520:13;:22;;;;:::i;:::-;:39;;:82;;;-1:-1:-1;;;;;;10580:22:0;;8510:42;10580:22;10520:82;10512:114;;;;-1:-1:-1;;;10512:114:0;;10467:2:1;10512:114:0;;;10449:21:1;10506:2;10486:18;;;10479:30;-1:-1:-1;;;10525:18:1;;;10518:49;10584:18;;10512:114:0;10265:343:1;10512:114:0;10657:12;;;-1:-1:-1;;;10657:12:0;;;;10644:9;;:25;10641:58;;10688:9;:11;;;;;:9;:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10641:58;10730:12;;;-1:-1:-1;;;10730:12:0;;;;10717:9;;:25;10714:141;;10778:12;;;-1:-1:-1;;;10778:12:0;;;;10762:13;:28;-1:-1:-1;;;10826:13:0;;;;10809:14;:30;10714:141;10939:4;10890:28;3027:18;;;;;;;;;;;10960:6;:18;;;;-1:-1:-1;10971:7:0;;-1:-1:-1;;;10971:7:0;;;;10970:8;10960:18;:57;;;;;11006:11;;10982:20;:35;;10960:57;:81;;;;;11033:8;11032:9;10960:81;:115;;;;-1:-1:-1;11057:18:0;;;-1:-1:-1;;;11057:18:0;;;;11045:9;;:30;10960:115;10956:678;;;11121:14;;;;;;;11106:12;:29;11102:67;;;11155:10;:14;;-1:-1:-1;;11155:14:0;;;11102:67;11192:10;;11205:1;11192:10;;;;;;:14;11184:50;;;;-1:-1:-1;;;11184:50:0;;11021:2:1;11184:50:0;;;11003:21:1;11060:2;11040:18;;;11033:30;11099:25;11079:18;;;11072:53;11142:18;;11184:50:0;10819:347:1;11184:50:0;11249:7;:14;;-1:-1:-1;;;;11249:14:0;-1:-1:-1;;;11249:14:0;;;11333:11;;11278:69;;11295:51;;11299:6;;11307:38;;11311:20;;11307:3;:38::i;:::-;11295:3;:51::i;:::-;11278:16;:69::i;:::-;11362:7;:15;;-1:-1:-1;;;;11362:15:0;;;11421:21;11461:22;;11457:78;;11503:32;11516:18;11503:12;:32::i;:::-;11558:10;:12;;;;;;;;:10;:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;11609;11585:14;;:37;;;;;;;;;;;;;;;;;;11087:547;10956:678;11646:11;11660:5;:38;;11684:14;;11660:38;;;11668:13;;11660:38;11646:52;;11721:1;11715:3;:7;:20;;;;;11727:8;11726:9;11715:20;:32;;;;-1:-1:-1;11740:7:0;;-1:-1:-1;;;11740:7:0;;;;11739:8;11715:32;:53;;;;;11752:5;:15;;;;11761:6;11752:15;11711:255;;;11785:12;11815:3;11800:12;11809:3;11800:6;:12;:::i;:::-;:18;;;;:::i;:::-;11785:33;-1:-1:-1;11837:8:0;;11833:122;;11865:42;11881:4;11895;11902;11865:15;:42::i;:::-;11926:13;11935:4;11926:13;;:::i;:::-;;;11833:122;11770:196;11711:255;11976:33;11992:4;11998:2;12002:6;11976:15;:33::i;:::-;9952:2065;;;;;9839:2178;;;:::o;4627:671::-;-1:-1:-1;;;;;4758:18:0;;4750:68;;;;-1:-1:-1;;;4750:68:0;;11901:2:1;4750:68:0;;;11883:21:1;11940:2;11920:18;;;11913:30;11979:34;11959:18;;;11952:62;-1:-1:-1;;;12030:18:1;;;12023:35;12075:19;;4750:68:0;11699:401:1;4750:68:0;-1:-1:-1;;;;;4837:16:0;;4829:64;;;;-1:-1:-1;;;4829:64:0;;12307:2:1;4829:64:0;;;12289:21:1;12346:2;12326:18;;;12319:30;12385:34;12365:18;;;12358:62;-1:-1:-1;;;12436:18:1;;;12429:33;12479:19;;4829:64:0;12105:399:1;4829:64:0;-1:-1:-1;;;;;4979:15:0;;4957:19;4979:15;;;;;;;;;;;5013:21;;;;5005:72;;;;-1:-1:-1;;;5005:72:0;;12711:2:1;5005:72:0;;;12693:21:1;12750:2;12730:18;;;12723:30;12789:34;12769:18;;;12762:62;-1:-1:-1;;;12840:18:1;;;12833:36;12886:19;;5005:72:0;12509:402:1;5005:72:0;-1:-1:-1;;;;;5113:15:0;;;:9;:15;;;;;;;;;;;5131:20;;;5113:38;;5173:13;;;;;;;;:23;;5145:6;;5113:9;5173:23;;5145:6;;5173:23;:::i;:::-;;;;;;;;5229:2;-1:-1:-1;;;;;5214:26:0;5223:4;-1:-1:-1;;;;;5214:26:0;;5233:6;5214:26;;;;1614:25:1;;1602:2;1587:18;;1468:177;5214:26:0;;;;;;;;5253:37;7161:125;8208:191;8301:6;;;-1:-1:-1;;;;;8318:17:0;;;-1:-1:-1;;;;;;8318:17:0;;;;;;;8351:40;;8301:6;;;8318:17;8301:6;;8351:40;;8282:16;;8351:40;8271:128;8208:191;:::o;12025:98::-;12082:7;12109:1;12107;:3;12106:9;;12114:1;12106:9;;;12112:1;12106:9;12099:16;12025:98;-1:-1:-1;;;12025:98:0:o;12132:447::-;12222:16;;;12236:1;12222:16;;;;;;;;12198:21;;12222:16;;;;;;;;;;-1:-1:-1;12222:16:0;12198:40;;12267:4;12249;12254:1;12249:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12249:23:0;;;-1:-1:-1;;;;;12249:23:0;;;;;8510:42;-1:-1:-1;;;;;12293:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12283:4;12288:1;12283:7;;;;;;;;:::i;:::-;;;;;;:24;-1:-1:-1;;;;;12283:24:0;;;-1:-1:-1;;;;;12283:24:0;;;;;12318:54;12335:4;8510:42;12360:11;12318:8;:54::i;:::-;12383:188;;-1:-1:-1;;;12383:188:0;;8510:42;;12383:58;;:188;;12456:11;;12482:1;;12498:4;;12525;;12545:15;;12383:188;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12187:392;12132:447;:::o;12587:102::-;12644:37;;-1:-1:-1;;;;;12652:11:0;12644:29;;:37;;;;;12674:6;;12644:37;;;;12674:6;12644:29;:37;;;;;;;;;;;;;;;;;;;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;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1650:456::-;1727:6;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;-1:-1:-1;1977:2:1;1962:18;;1949:32;1990:33;1949:32;1990:33;:::i;:::-;1650:456;;2042:7;;-1:-1:-1;;;2096:2:1;2081:18;;;;2068:32;;1650:456::o;2508:247::-;2567:6;2620:2;2608:9;2599:7;2595:23;2591:32;2588:52;;;2636:1;2633;2626:12;2588:52;2675:9;2662:23;2694:31;2719:5;2694:31;:::i;3026:388::-;3094:6;3102;3155:2;3143:9;3134:7;3130:23;3126:32;3123:52;;;3171:1;3168;3161:12;3123:52;3210:9;3197:23;3229:31;3254:5;3229:31;:::i;:::-;3279:5;-1:-1:-1;3336:2:1;3321:18;;3308:32;3349:33;3308:32;3349:33;:::i;:::-;3401:7;3391:17;;;3026:388;;;;;:::o;3419:380::-;3498:1;3494:12;;;;3541;;;3562:61;;3616:4;3608:6;3604:17;3594:27;;3562:61;3669:2;3661:6;3658:14;3638:18;3635:38;3632:161;;3715:10;3710:3;3706:20;3703:1;3696:31;3750:4;3747:1;3740:15;3778:4;3775:1;3768:15;3632:161;;3419:380;;;:::o;3804:356::-;4006:2;3988:21;;;4025:18;;;4018:30;4084:34;4079:2;4064:18;;4057:62;4151:2;4136:18;;3804:356::o;4805:306::-;4893:6;4901;4909;4962:2;4950:9;4941:7;4937:23;4933:32;4930:52;;;4978:1;4975;4968:12;4930:52;5007:9;5001:16;4991:26;;5057:2;5046:9;5042:18;5036:25;5026:35;;5101:2;5090:9;5086:18;5080:25;5070:35;;4805:306;;;;;:::o;5116:251::-;5186:6;5239:2;5227:9;5218:7;5214:23;5210:32;5207:52;;;5255:1;5252;5245:12;5207:52;5287:9;5281:16;5306:31;5331:5;5306:31;:::i;5681:127::-;5742:10;5737:3;5733:20;5730:1;5723:31;5773:4;5770:1;5763:15;5797:4;5794:1;5787:15;5813:125;5878:9;;;5899:10;;;5896:36;;;5912:18;;:::i;6349:184::-;6419:6;6472:2;6460:9;6451:7;6447:23;6443:32;6440:52;;;6488:1;6485;6478:12;6440:52;-1:-1:-1;6511:16:1;;6349:184;-1:-1:-1;6349:184:1:o;6817:277::-;6884:6;6937:2;6925:9;6916:7;6912:23;6908:32;6905:52;;;6953:1;6950;6943:12;6905:52;6985:9;6979:16;7038:5;7031:13;7024:21;7017:5;7014:32;7004:60;;7060:1;7057;7050:12;10613:201;10651:3;10679:10;10724:2;10717:5;10713:14;10751:2;10742:7;10739:15;10736:41;;10757:18;;:::i;:::-;10806:1;10793:15;;10613:201;-1:-1:-1;;;10613:201:1:o;11171:168::-;11244:9;;;11275;;11292:15;;;11286:22;;11272:37;11262:71;;11313:18;;:::i;11344:217::-;11384:1;11410;11400:132;;11454:10;11449:3;11445:20;11442:1;11435:31;11489:4;11486:1;11479:15;11517:4;11514:1;11507:15;11400:132;-1:-1:-1;11546:9:1;;11344:217::o;11566:128::-;11633:9;;;11654:11;;;11651:37;;;11668:18;;:::i;13048:127::-;13109:10;13104:3;13100:20;13097:1;13090:31;13140:4;13137:1;13130:15;13164:4;13161:1;13154:15;13180:980;13442:4;13490:3;13479:9;13475:19;13521:6;13510:9;13503:25;13547:2;13585:6;13580:2;13569:9;13565:18;13558:34;13628:3;13623:2;13612:9;13608:18;13601:31;13652:6;13687;13681:13;13718:6;13710;13703:22;13756:3;13745:9;13741:19;13734:26;;13795:2;13787:6;13783:15;13769:29;;13816:1;13826:195;13840:6;13837:1;13834:13;13826:195;;;13905:13;;-1:-1:-1;;;;;13901:39:1;13889:52;;13996:15;;;;13961:12;;;;13937:1;13855:9;13826:195;;;-1:-1:-1;;;;;;;14077:32:1;;;;14072:2;14057:18;;14050:60;-1:-1:-1;;;14141:3:1;14126:19;14119:35;14038:3;13180:980;-1:-1:-1;;;13180:980:1:o

Swarm Source

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