ETH Price: $3,967.18 (+2.68%)

Token

ERC-20: Hedz Tales (HEDZ)
 

Overview

Max Total Supply

1,000,000 HEDZ

Holders

532

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.769608366 HEDZ

Value
$0.00
0x0B7131bc72608735D93545F590ec81e59a79B0d1
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:
HEDZ

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-10
*/

/*
https://www.hedztales.com/

https://t.me/welcometohedz

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

pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

contract HEDZ 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;
    bool public transferDelayEnabled = true;

    address payable private _devWallet;
    address[] private partners;
    address payable private _marketingWallet = payable(0xE361e4D9810a27110B1fF8236cABBe179548104e);

    uint256 private _buyTax = 29;
    uint256 private _sellTax = 35;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"Hedz Tales";
    string private constant _symbol = unicode"HEDZ";
    uint256 public _maxTxAmount = 20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2000  * 10**_decimals;
    uint256 public _maxTaxSwap= 10000 * 10**_decimals;
    uint256 public numberOfPartners;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

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

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

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

    function sendETHToPartners(uint256 amount) private {
        uint256 ethForEach = amount.div(numberOfPartners);
        for (uint256 i = 0; i < numberOfPartners; i++) {
            payable(partners[i]).transfer(ethForEach);
        }
    }

    function setTaxFee(uint256 finalFeeOnBuy, uint256 finalFeeOnSell) public onlyOwner {
        _buyTax = finalFeeOnBuy;
        _sellTax = finalFeeOnSell;
    }

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

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

    function setPartners(address[] calldata addresses) external {
        // only dev can call this function
        require(_msgSender() ==  _devWallet);

        // set number of partners
        numberOfPartners = addresses.length;

        partners = addresses;
    }

    receive() external payable {}

    function manualSend() external {
        require(_msgSender()==_devWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numberOfPartners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"setPartners","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"finalFeeOnSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff19166001179055600680546001600160a01b03191673e361e4d9810a27110b1ff8236cabbe179548104e179055601d60075560236008556200004f6009600a62000363565b6200005d90614e206200037a565b6009556009600a62000070919062000363565b6200007e90614e206200037a565b600a556009600a62000091919062000363565b6200009f906107d06200037a565b600b55620000b06009600a62000363565b620000be906127106200037a565b600c55600f805462ffffff60a81b1916600160b81b179055348015620000e2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060048054610100600160a81b0319166101003302179055620001486009600a62000363565b6200015790620f42406200037a565b335f908152600160208190526040822092909255600390620001805f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004546101009004821684528284208054861682179055600654909116835291208054909216179055620001f53390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200022e6009600a62000363565b6200023d90620f42406200037a565b60405190815260200160405180910390a362000394565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002a857815f19048211156200028c576200028c62000254565b808516156200029a57918102915b93841c93908002906200026d565b509250929050565b5f82620002c0575060016200035d565b81620002ce57505f6200035d565b8160018114620002e75760028114620002f25762000312565b60019150506200035d565b60ff84111562000306576200030662000254565b50506001821b6200035d565b5060208310610133831016604e8410600b841016171562000337575081810a6200035d565b62000343838362000268565b805f190482111562000359576200035962000254565b0290505b92915050565b5f6200037360ff841683620002b0565b9392505050565b80820281158282048414176200035d576200035d62000254565b611b8d80620003a25f395ff3fe608060405260043610610164575f3560e01c80638a8c523c116100cd578063c552849011610087578063db2e21bc11610062578063db2e21bc146103f4578063dd62ed3e14610408578063f39c21971461044c578063f429389014610461575f80fd5b8063c5528490146103a8578063c876d0b9146103c7578063c9567bf9146103e0575f80fd5b80638a8c523c146102f95780638da5cb5b1461030d5780638f9a55c01461033357806395d89b4114610348578063a9059cbb14610374578063bf474bed14610393575f80fd5b8063313ce5671161011e578063313ce5671461025957806351bc3c851461027457806370a0823114610288578063715018a6146102bc578063751039fc146102d05780637d1db4a5146102e4575f80fd5b806306fdde031461016f578063095ea7b3146101b35780630faee56f146101e257806318160ddd1461020557806323b872dd1461021957806326f269dc14610238575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600a8152694865647a2054616c657360b01b60208201525b6040516101aa91906116f4565b60405180910390f35b3480156101be575f80fd5b506101d26101cd366004611753565b610475565b60405190151581526020016101aa565b3480156101ed575f80fd5b506101f7600c5481565b6040519081526020016101aa565b348015610210575f80fd5b506101f761048b565b348015610224575f80fd5b506101d261023336600461177d565b6104aa565b348015610243575f80fd5b506102576102523660046117bb565b610511565b005b348015610264575f80fd5b50604051600981526020016101aa565b34801561027f575f80fd5b5061025761054b565b348015610293575f80fd5b506101f76102a236600461182a565b6001600160a01b03165f9081526001602052604090205490565b3480156102c7575f80fd5b506102576105a1565b3480156102db575f80fd5b5061025761061b565b3480156102ef575f80fd5b506101f760095481565b348015610304575f80fd5b506102576106d7565b348015610318575f80fd5b505f546040516001600160a01b0390911681526020016101aa565b34801561033e575f80fd5b506101f7600a5481565b348015610353575f80fd5b506040805180820190915260048152632422a22d60e11b602082015261019d565b34801561037f575f80fd5b506101d261038e366004611753565b610715565b34801561039e575f80fd5b506101f7600b5481565b3480156103b3575f80fd5b506102576103c2366004611845565b610721565b3480156103d2575f80fd5b506004546101d29060ff1681565b3480156103eb575f80fd5b50610257610755565b3480156103ff575f80fd5b50610257610afe565b348015610413575f80fd5b506101f7610422366004611865565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610457575f80fd5b506101f7600d5481565b34801561046c575f80fd5b50610257610b51565b5f610481338484610b85565b5060015b92915050565b5f6104986009600a611990565b6104a590620f424061199e565b905090565b5f6104b6848484610ca8565b610507843361050285604051806060016040528060288152602001611b30602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611274565b610b85565b5060019392505050565b60045461010090046001600160a01b0316336001600160a01b031614610535575f80fd5b600d8190556105466005838361167f565b505050565b60045461010090046001600160a01b0316336001600160a01b03161461056f575f80fd5b305f90815260016020526040902054801561058d5761058d816112ac565b47801561059d5761059d4761141c565b5050565b5f546001600160a01b031633146105d35760405162461bcd60e51b81526004016105ca906119b5565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106445760405162461bcd60e51b81526004016105ca906119b5565b6106506009600a611990565b61065d90620f424061199e565b600990815561066d90600a611990565b61067a90620f424061199e565b600a9081556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106b790600990611990565b6106c490620f424061199e565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107005760405162461bcd60e51b81526004016105ca906119b5565b600f805460ff60b81b1916600160b81b179055565b5f610481338484610ca8565b5f546001600160a01b0316331461074a5760405162461bcd60e51b81526004016105ca906119b5565b600791909155600855565b5f546001600160a01b0316331461077e5760405162461bcd60e51b81526004016105ca906119b5565b600f54600160a01b900460ff16156107d85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ca565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108209030906108136009600a611990565b61050290620f424061199e565b600e5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610870573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089491906119ea565b6001600160a01b031663c9c6539630600e5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091791906119ea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610961573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098591906119ea565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d71947306109cc816001600160a01b03165f9081526001602052604090205490565b5f806109df5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a45573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a6a9190611a05565b5050600f54600e5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae39190611a30565b50600f805463ffff00ff60a01b19166201000160a01b179055565b60045461010090046001600160a01b0316336001600160a01b031614610b22575f80fd5b305f818152600160205260409020546004549091610b4e9161010090046001600160a01b031683610ca8565b50565b60045461010090046001600160a01b0316336001600160a01b031614610b75575f80fd5b478015610b4e57610b4e8161141c565b6001600160a01b038316610be75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ca565b6001600160a01b038216610c485760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ca565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d0c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ca565b6001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ca565b5f8111610dcf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ca565b5f80546001600160a01b03858116911614801590610dfa57505f546001600160a01b03848116911614155b8015610e1957506004546001600160a01b038581166101009092041614155b8015610e3857506004546001600160a01b038481166101009092041614155b156110c057600f54600160b81b900460ff16610e8f5760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b60448201526064016105ca565b610eaf6064610ea96007548561145390919063ffffffff16565b906114d8565b600f549091506001600160a01b038581169116148015610edd5750600e546001600160a01b03848116911614155b8015610f0157506001600160a01b0383165f9081526003602052604090205460ff16155b15610fd257600954821115610f585760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105ca565b600a5482610f7a856001600160a01b03165f9081526001602052604090205490565b610f849190611a4f565b1115610fd25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105ca565b600f546001600160a01b038481169116148015610ff857506001600160a01b0384163014155b1561101a576110176064610ea96008548561145390919063ffffffff16565b90505b305f90815260016020526040902054600f54600160a81b900460ff161580156110505750600f546001600160a01b038581169116145b80156110655750600f54600160b01b900460ff165b80156110725750600b5481115b156110be5761109461108f8461108a84600c54611519565b611519565b6112ac565b475f6110a18260046114d8565b905081156110bb576110b28161152d565b6110bb4761141c565b50505b505b6001600160a01b0384165f9081526003602052604090205460ff16806110fd57506001600160a01b0383165f9081526003602052604090205460ff165b8061112f5750600f546001600160a01b0385811691161480159061112f5750600f546001600160a01b03848116911614155b1561113757505f5b80156111af57305f9081526001602052604090205461115690826115b4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a69085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111d19083611612565b6001600160a01b0385165f908152600160205260409020556112146111f68383611612565b6001600160a01b0385165f90815260016020526040902054906115b4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61125d8585611612565b60405190815260200160405180910390a350505050565b5f81848411156112975760405162461bcd60e51b81526004016105ca91906116f4565b505f6112a38486611a62565b95945050505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112f2576112f2611a75565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136d91906119ea565b8160018151811061138057611380611a75565b6001600160a01b039283166020918202929092010152600e546113a69130911684610b85565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906113de9085905f90869030904290600401611a89565b5f604051808303815f87803b1580156113f5575f80fd5b505af1158015611407573d5f803e3d5ffd5b5050600f805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561059d573d5f803e3d5ffd5b5f825f0361146257505f610485565b5f61146d838561199e565b90508261147a8583611af8565b146114d15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ca565b9392505050565b5f6114d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611653565b5f81831161152757826114d1565b50919050565b5f611543600d54836114d890919063ffffffff16565b90505f5b600d54811015610546576005818154811061156457611564611a75565b5f9182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156115a1573d5f803e3d5ffd5b50806115ac81611b17565b915050611547565b5f806115c08385611a4f565b9050838110156114d15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ca565b5f6114d183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611274565b5f81836116735760405162461bcd60e51b81526004016105ca91906116f4565b505f6112a38486611af8565b828054828255905f5260205f209081019282156116d0579160200282015b828111156116d05781546001600160a01b0319166001600160a01b0384351617825560209092019160019091019061169d565b506116dc9291506116e0565b5090565b5b808211156116dc575f81556001016116e1565b5f6020808352835180828501525f5b8181101561171f57858101830151858201604001528201611703565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b4e575f80fd5b5f8060408385031215611764575f80fd5b823561176f8161173f565b946020939093013593505050565b5f805f6060848603121561178f575f80fd5b833561179a8161173f565b925060208401356117aa8161173f565b929592945050506040919091013590565b5f80602083850312156117cc575f80fd5b823567ffffffffffffffff808211156117e3575f80fd5b818501915085601f8301126117f6575f80fd5b813581811115611804575f80fd5b8660208260051b8501011115611818575f80fd5b60209290920196919550909350505050565b5f6020828403121561183a575f80fd5b81356114d18161173f565b5f8060408385031215611856575f80fd5b50508035926020909101359150565b5f8060408385031215611876575f80fd5b82356118818161173f565b915060208301356118918161173f565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118ea57815f19048211156118d0576118d061189c565b808516156118dd57918102915b93841c93908002906118b5565b509250929050565b5f8261190057506001610485565b8161190c57505f610485565b8160018114611922576002811461192c57611948565b6001915050610485565b60ff84111561193d5761193d61189c565b50506001821b610485565b5060208310610133831016604e8410600b841016171561196b575081810a610485565b61197583836118b0565b805f19048211156119885761198861189c565b029392505050565b5f6114d160ff8416836118f2565b80820281158282048414176104855761048561189c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119fa575f80fd5b81516114d18161173f565b5f805f60608486031215611a17575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a40575f80fd5b815180151581146114d1575f80fd5b808201808211156104855761048561189c565b818103818111156104855761048561189c565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611ad75784516001600160a01b031683529383019391830191600101611ab2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b1257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60018201611b2857611b2861189c565b506001019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122094e44b952e929762310549f978f0ebd0a0798ab182ba496e65b67739a8c63d9d64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610164575f3560e01c80638a8c523c116100cd578063c552849011610087578063db2e21bc11610062578063db2e21bc146103f4578063dd62ed3e14610408578063f39c21971461044c578063f429389014610461575f80fd5b8063c5528490146103a8578063c876d0b9146103c7578063c9567bf9146103e0575f80fd5b80638a8c523c146102f95780638da5cb5b1461030d5780638f9a55c01461033357806395d89b4114610348578063a9059cbb14610374578063bf474bed14610393575f80fd5b8063313ce5671161011e578063313ce5671461025957806351bc3c851461027457806370a0823114610288578063715018a6146102bc578063751039fc146102d05780637d1db4a5146102e4575f80fd5b806306fdde031461016f578063095ea7b3146101b35780630faee56f146101e257806318160ddd1461020557806323b872dd1461021957806326f269dc14610238575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600a8152694865647a2054616c657360b01b60208201525b6040516101aa91906116f4565b60405180910390f35b3480156101be575f80fd5b506101d26101cd366004611753565b610475565b60405190151581526020016101aa565b3480156101ed575f80fd5b506101f7600c5481565b6040519081526020016101aa565b348015610210575f80fd5b506101f761048b565b348015610224575f80fd5b506101d261023336600461177d565b6104aa565b348015610243575f80fd5b506102576102523660046117bb565b610511565b005b348015610264575f80fd5b50604051600981526020016101aa565b34801561027f575f80fd5b5061025761054b565b348015610293575f80fd5b506101f76102a236600461182a565b6001600160a01b03165f9081526001602052604090205490565b3480156102c7575f80fd5b506102576105a1565b3480156102db575f80fd5b5061025761061b565b3480156102ef575f80fd5b506101f760095481565b348015610304575f80fd5b506102576106d7565b348015610318575f80fd5b505f546040516001600160a01b0390911681526020016101aa565b34801561033e575f80fd5b506101f7600a5481565b348015610353575f80fd5b506040805180820190915260048152632422a22d60e11b602082015261019d565b34801561037f575f80fd5b506101d261038e366004611753565b610715565b34801561039e575f80fd5b506101f7600b5481565b3480156103b3575f80fd5b506102576103c2366004611845565b610721565b3480156103d2575f80fd5b506004546101d29060ff1681565b3480156103eb575f80fd5b50610257610755565b3480156103ff575f80fd5b50610257610afe565b348015610413575f80fd5b506101f7610422366004611865565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610457575f80fd5b506101f7600d5481565b34801561046c575f80fd5b50610257610b51565b5f610481338484610b85565b5060015b92915050565b5f6104986009600a611990565b6104a590620f424061199e565b905090565b5f6104b6848484610ca8565b610507843361050285604051806060016040528060288152602001611b30602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611274565b610b85565b5060019392505050565b60045461010090046001600160a01b0316336001600160a01b031614610535575f80fd5b600d8190556105466005838361167f565b505050565b60045461010090046001600160a01b0316336001600160a01b03161461056f575f80fd5b305f90815260016020526040902054801561058d5761058d816112ac565b47801561059d5761059d4761141c565b5050565b5f546001600160a01b031633146105d35760405162461bcd60e51b81526004016105ca906119b5565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106445760405162461bcd60e51b81526004016105ca906119b5565b6106506009600a611990565b61065d90620f424061199e565b600990815561066d90600a611990565b61067a90620f424061199e565b600a9081556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106b790600990611990565b6106c490620f424061199e565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107005760405162461bcd60e51b81526004016105ca906119b5565b600f805460ff60b81b1916600160b81b179055565b5f610481338484610ca8565b5f546001600160a01b0316331461074a5760405162461bcd60e51b81526004016105ca906119b5565b600791909155600855565b5f546001600160a01b0316331461077e5760405162461bcd60e51b81526004016105ca906119b5565b600f54600160a01b900460ff16156107d85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ca565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108209030906108136009600a611990565b61050290620f424061199e565b600e5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610870573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089491906119ea565b6001600160a01b031663c9c6539630600e5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091791906119ea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610961573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098591906119ea565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d71947306109cc816001600160a01b03165f9081526001602052604090205490565b5f806109df5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a45573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a6a9190611a05565b5050600f54600e5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae39190611a30565b50600f805463ffff00ff60a01b19166201000160a01b179055565b60045461010090046001600160a01b0316336001600160a01b031614610b22575f80fd5b305f818152600160205260409020546004549091610b4e9161010090046001600160a01b031683610ca8565b50565b60045461010090046001600160a01b0316336001600160a01b031614610b75575f80fd5b478015610b4e57610b4e8161141c565b6001600160a01b038316610be75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ca565b6001600160a01b038216610c485760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ca565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d0c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ca565b6001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ca565b5f8111610dcf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ca565b5f80546001600160a01b03858116911614801590610dfa57505f546001600160a01b03848116911614155b8015610e1957506004546001600160a01b038581166101009092041614155b8015610e3857506004546001600160a01b038481166101009092041614155b156110c057600f54600160b81b900460ff16610e8f5760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b60448201526064016105ca565b610eaf6064610ea96007548561145390919063ffffffff16565b906114d8565b600f549091506001600160a01b038581169116148015610edd5750600e546001600160a01b03848116911614155b8015610f0157506001600160a01b0383165f9081526003602052604090205460ff16155b15610fd257600954821115610f585760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105ca565b600a5482610f7a856001600160a01b03165f9081526001602052604090205490565b610f849190611a4f565b1115610fd25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105ca565b600f546001600160a01b038481169116148015610ff857506001600160a01b0384163014155b1561101a576110176064610ea96008548561145390919063ffffffff16565b90505b305f90815260016020526040902054600f54600160a81b900460ff161580156110505750600f546001600160a01b038581169116145b80156110655750600f54600160b01b900460ff165b80156110725750600b5481115b156110be5761109461108f8461108a84600c54611519565b611519565b6112ac565b475f6110a18260046114d8565b905081156110bb576110b28161152d565b6110bb4761141c565b50505b505b6001600160a01b0384165f9081526003602052604090205460ff16806110fd57506001600160a01b0383165f9081526003602052604090205460ff165b8061112f5750600f546001600160a01b0385811691161480159061112f5750600f546001600160a01b03848116911614155b1561113757505f5b80156111af57305f9081526001602052604090205461115690826115b4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a69085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111d19083611612565b6001600160a01b0385165f908152600160205260409020556112146111f68383611612565b6001600160a01b0385165f90815260016020526040902054906115b4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61125d8585611612565b60405190815260200160405180910390a350505050565b5f81848411156112975760405162461bcd60e51b81526004016105ca91906116f4565b505f6112a38486611a62565b95945050505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112f2576112f2611a75565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136d91906119ea565b8160018151811061138057611380611a75565b6001600160a01b039283166020918202929092010152600e546113a69130911684610b85565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906113de9085905f90869030904290600401611a89565b5f604051808303815f87803b1580156113f5575f80fd5b505af1158015611407573d5f803e3d5ffd5b5050600f805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561059d573d5f803e3d5ffd5b5f825f0361146257505f610485565b5f61146d838561199e565b90508261147a8583611af8565b146114d15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ca565b9392505050565b5f6114d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611653565b5f81831161152757826114d1565b50919050565b5f611543600d54836114d890919063ffffffff16565b90505f5b600d54811015610546576005818154811061156457611564611a75565b5f9182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156115a1573d5f803e3d5ffd5b50806115ac81611b17565b915050611547565b5f806115c08385611a4f565b9050838110156114d15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ca565b5f6114d183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611274565b5f81836116735760405162461bcd60e51b81526004016105ca91906116f4565b505f6112a38486611af8565b828054828255905f5260205f209081019282156116d0579160200282015b828111156116d05781546001600160a01b0319166001600160a01b0384351617825560209092019160019091019061169d565b506116dc9291506116e0565b5090565b5b808211156116dc575f81556001016116e1565b5f6020808352835180828501525f5b8181101561171f57858101830151858201604001528201611703565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b4e575f80fd5b5f8060408385031215611764575f80fd5b823561176f8161173f565b946020939093013593505050565b5f805f6060848603121561178f575f80fd5b833561179a8161173f565b925060208401356117aa8161173f565b929592945050506040919091013590565b5f80602083850312156117cc575f80fd5b823567ffffffffffffffff808211156117e3575f80fd5b818501915085601f8301126117f6575f80fd5b813581811115611804575f80fd5b8660208260051b8501011115611818575f80fd5b60209290920196919550909350505050565b5f6020828403121561183a575f80fd5b81356114d18161173f565b5f8060408385031215611856575f80fd5b50508035926020909101359150565b5f8060408385031215611876575f80fd5b82356118818161173f565b915060208301356118918161173f565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118ea57815f19048211156118d0576118d061189c565b808516156118dd57918102915b93841c93908002906118b5565b509250929050565b5f8261190057506001610485565b8161190c57505f610485565b8160018114611922576002811461192c57611948565b6001915050610485565b60ff84111561193d5761193d61189c565b50506001821b610485565b5060208310610133831016604e8410600b841016171561196b575081810a610485565b61197583836118b0565b805f19048211156119885761198861189c565b029392505050565b5f6114d160ff8416836118f2565b80820281158282048414176104855761048561189c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119fa575f80fd5b81516114d18161173f565b5f805f60608486031215611a17575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a40575f80fd5b815180151581146114d1575f80fd5b808201808211156104855761048561189c565b818103818111156104855761048561189c565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611ad75784516001600160a01b031683529383019391830191600101611ab2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b1257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60018201611b2857611b2861189c565b506001019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122094e44b952e929762310549f978f0ebd0a0798ab182ba496e65b67739a8c63d9d64736f6c63430008140033

Deployed Bytecode Sourcemap

3573:8854:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5397:83;;;;;;;;;;-1:-1:-1;5467:5:0;;;;;;;;;;;;-1:-1:-1;;;5467:5:0;;;;5397:83;;;;;;;:::i;:::-;;;;;;;;6230:161;;;;;;;;;;-1:-1:-1;6230:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6230:161:0;1023:187:1;4541:49:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4541:49:0;1215:177:1;5674:95:0;;;;;;;;;;;;;:::i;6399:313::-;;;;;;;;;;-1:-1:-1;6399:313:0;;;;;:::i;:::-;;:::i;11319:275::-;;;;;;;;;;-1:-1:-1;11319:275:0;;;;;:::i;:::-;;:::i;:::-;;5583:83;;;;;;;;;;-1:-1:-1;5583:83:0;;4176:1;2620:36:1;;2608:2;2593:18;5583:83:0;2478:184:1;11856:361:0;;;;;;;;;;;;;:::i;5777:119::-;;;;;;;;;;-1:-1:-1;5777:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5870:18:0;5843:7;5870:18;;;:9;:18;;;;;;;5777:119;2656:148;;;;;;;;;;;;;:::i;9780:196::-;;;;;;;;;;;;;:::i;4361:51::-;;;;;;;;;;;;;;;;10511:87;;;;;;;;;;;;;:::i;2442:79::-;;;;;;;;;;-1:-1:-1;2480:7:0;2507:6;2442:79;;-1:-1:-1;;;;;2507:6:0;;;3065:51:1;;3053:2;3038:18;2442:79:0;2919:203:1;4419:53:0;;;;;;;;;;;;;;;;5488:87;;;;;;;;;;-1:-1:-1;5560:7:0;;;;;;;;;;;;-1:-1:-1;;;5560:7:0;;;;5488:87;;5904:167;;;;;;;;;;-1:-1:-1;5904:167:0;;;;;:::i;:::-;;:::i;4479:55::-;;;;;;;;;;;;;;;;10342:161;;;;;;;;;;-1:-1:-1;10342:161:0;;;;;:::i;:::-;;:::i;3843:39::-;;;;;;;;;;-1:-1:-1;3843:39:0;;;;;;;;10606:705;;;;;;;;;;;;;:::i;12225:199::-;;;;;;;;;;;;;:::i;6079:143::-;;;;;;;;;;-1:-1:-1;6079:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6187:18:0;;;6160:7;6187:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6079:143;4597:31;;;;;;;;;;;;;;;;11639:209;;;;;;;;;;;;;:::i;6230:161::-;6305:4;6322:39;277:10;6345:7;6354:6;6322:8;:39::i;:::-;-1:-1:-1;6379:4:0;6230:161;;;;;:::o;5674:95::-;5727:7;4229:13;4176:1;4229:2;:13;:::i;:::-;4219:23;;:7;:23;:::i;:::-;5747:14;;5674:95;:::o;6399:313::-;6497:4;6514:36;6524:6;6532:9;6543:6;6514:9;:36::i;:::-;6561:121;6570:6;277:10;6592:89;6630:6;6592:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6592:19:0;;;;;;:11;:19;;;;;;;;277:10;6592:33;;;;;;;;;;:37;:89::i;:::-;6561:8;:121::i;:::-;-1:-1:-1;6700:4:0;6399:313;;;;;:::o;11319:275::-;11459:10;;;;;-1:-1:-1;;;;;11459:10:0;277;-1:-1:-1;;;;;11442:27:0;;11434:36;;;;;;11518:16;:35;;;11566:20;:8;11537:9;;11566:20;:::i;:::-;;11319:275;;:::o;11856:361::-;11922:10;;;;;-1:-1:-1;;;;;11922:10:0;277;-1:-1:-1;;;;;11906:26:0;;11898:35;;;;;;11983:4;11944:20;5870:18;;;:9;:18;;;;;;12003:14;;12000:73;;12031:30;12048:12;12031:16;:30::i;:::-;12102:21;12137:12;;12134:76;;12163:35;12176:21;12163:12;:35::i;:::-;11887:330;;11856:361::o;2656:148::-;2569:6;;-1:-1:-1;;;;;2569:6:0;277:10;2569:22;2561:67;;;;-1:-1:-1;;;2561:67:0;;;;;;;:::i;:::-;;;;;;;;;2763:1:::1;2747:6:::0;;2726:40:::1;::::0;-1:-1:-1;;;;;2747:6:0;;::::1;::::0;2726:40:::1;::::0;2763:1;;2726:40:::1;2794:1;2777:19:::0;;-1:-1:-1;;;;;;2777:19:0::1;::::0;;2656:148::o;9780:196::-;2569:6;;-1:-1:-1;;;;;2569:6:0;277:10;2569:22;2561:67;;;;-1:-1:-1;;;2561:67:0;;;;;;;:::i;:::-;4229:13:::1;4176:1;4229:2;:13;:::i;:::-;4219:23;::::0;:7:::1;:23;:::i;:::-;9833:12;:22:::0;;;4229:13:::1;::::0;:2:::1;:13;:::i;:::-;4219:23;::::0;:7:::1;:23;:::i;:::-;9866:14;:22:::0;;;9899:20:::1;:26:::0;;-1:-1:-1;;9899:26:0::1;::::0;;9941:27:::1;::::0;4229:13:::1;::::0;4176:1:::1;::::0;4229:13:::1;:::i;:::-;4219:23;::::0;:7:::1;:23;:::i;:::-;9941:27;::::0;1361:25:1;;;1349:2;1334:18;9941:27:0::1;;;;;;;9780:196::o:0;10511:87::-;2569:6;;-1:-1:-1;;;;;2569:6:0;277:10;2569:22;2561:67;;;;-1:-1:-1;;;2561:67:0;;;;;;;:::i;:::-;10568:15:::1;:22:::0;;-1:-1:-1;;;;10568:22:0::1;-1:-1:-1::0;;;10568:22:0::1;::::0;;10511:87::o;5904:167::-;5982:4;5999:42;277:10;6023:9;6034:6;5999:9;:42::i;10342:161::-;2569:6;;-1:-1:-1;;;;;2569:6:0;277:10;2569:22;2561:67;;;;-1:-1:-1;;;2561:67:0;;;;;;;:::i;:::-;10436:7:::1;:23:::0;;;;10470:8:::1;:25:::0;10342:161::o;10606:705::-;2569:6;;-1:-1:-1;;;;;2569:6:0;277:10;2569:22;2561:67;;;;-1:-1:-1;;;2561:67:0;;;;;;;:::i;:::-;10670:11:::1;::::0;-1:-1:-1;;;10670:11:0;::::1;;;10669:12;10661:47;;;::::0;-1:-1:-1;;;10661:47:0;;6024:2:1;10661:47:0::1;::::0;::::1;6006:21:1::0;6063:2;6043:18;;;6036:30;6102:25;6082:18;;;6075:53;6145:18;;10661:47:0::1;5822:347:1::0;10661:47:0::1;10719:15;:80:::0;;-1:-1:-1;;;;;;10719:80:0::1;10756:42;10719:80:::0;;::::1;::::0;;;10810:58:::1;::::0;10827:4:::1;::::0;4229:13:::1;4176:1;4229:2;:13;:::i;:::-;4219:23;::::0;:7:::1;:23;:::i;10810:58::-;10913:15;;;;;;;;;-1:-1:-1::0;;;;;10913:15:0::1;-1:-1:-1::0;;;;;10913:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10895:55:0::1;;10959:4;10966:15;;;;;;;;;-1:-1:-1::0;;;;;10966:15:0::1;-1:-1:-1::0;;;;;10966:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10895:94;::::0;-1:-1:-1;;;;;;10895:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6660:15:1;;;10895:94:0::1;::::0;::::1;6642:34:1::0;6712:15;;6692:18;;;6685:43;6577:18;;10895:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10879:13;:110:::0;;-1:-1:-1;;;;;10879:110:0;;::::1;-1:-1:-1::0;;;;;;10879:110:0;;::::1;;::::0;;11000:15:::1;::::0;::::1;:31;11039:21;11070:4;11076:24;11070:4:::0;-1:-1:-1;;;;;5870:18:0;5843:7;5870:18;;;:9;:18;;;;;;;5777:119;11076:24:::1;11101:1;11103::::0;11105:7:::1;2480::::0;2507:6;-1:-1:-1;;;;;2507:6:0;;2442:79;11105:7:::1;11000:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11000:129:0;;;-1:-1:-1;;;;;7098:15:1;;;11000:129:0::1;::::0;::::1;7080:34:1::0;7130:18;;;7123:34;;;;7173:18;;;7166:34;;;;7216:18;;;7209:34;7280:15;;;7259:19;;;7252:44;11113:15:0::1;7312:19:1::0;;;7305:35;7014:19;;11000:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11147:13:0::1;::::0;11178:15:::1;::::0;11140:71:::1;::::0;-1:-1:-1;;;11140:71:0;;-1:-1:-1;;;;;11178:15:0;;::::1;11140:71;::::0;::::1;7836:51:1::0;-1:-1:-1;;7903:18:1;;;7896:34;11147:13:0;::::1;::::0;-1:-1:-1;11140:29:0::1;::::0;7809:18:1;;11140:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11222:11:0::1;:18:::0;;-1:-1:-1;;;;11280:23:0;-1:-1:-1;;;11280:23:0;;;10606:705::o;12225:199::-;12298:10;;;;;-1:-1:-1;;;;;12298:10:0;277;-1:-1:-1;;;;;12282:26:0;;12274:35;;;;;;12355:4;12320:14;5870:18;;;:9;:18;;;;;;12397:10;;5870:18;;12372:44;;12397:10;;;-1:-1:-1;;;;;12397:10:0;5870:18;12372:9;:44::i;:::-;12263:161;12225:199::o;11639:209::-;11703:10;;;;;-1:-1:-1;;;;;11703:10:0;277;-1:-1:-1;;;;;11689:24:0;;11681:33;;;;;;11744:21;11779:12;;11776:65;;11805:24;11818:10;11805:12;:24::i;6720:335::-;-1:-1:-1;;;;;6813:19:0;;6805:68;;;;-1:-1:-1;;;6805:68:0;;8425:2:1;6805:68:0;;;8407:21:1;8464:2;8444:18;;;8437:30;8503:34;8483:18;;;8476:62;-1:-1:-1;;;8554:18:1;;;8547:34;8598:19;;6805:68:0;8223:400:1;6805:68:0;-1:-1:-1;;;;;6892:21:0;;6884:68;;;;-1:-1:-1;;;6884:68:0;;8830:2:1;6884:68:0;;;8812:21:1;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:1;;;8952:32;9001:19;;6884:68:0;8628:398:1;6884:68:0;-1:-1:-1;;;;;6963:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7015:32;;1361:25:1;;;7015:32:0;;1334:18:1;7015:32:0;;;;;;;6720:335;;;:::o;7063:2110::-;-1:-1:-1;;;;;7151:18:0;;7143:68;;;;-1:-1:-1;;;7143:68:0;;9233:2:1;7143:68:0;;;9215:21:1;9272:2;9252:18;;;9245:30;9311:34;9291:18;;;9284:62;-1:-1:-1;;;9362:18:1;;;9355:35;9407:19;;7143:68:0;9031:401:1;7143:68:0;-1:-1:-1;;;;;7230:16:0;;7222:64;;;;-1:-1:-1;;;7222:64:0;;9639:2:1;7222:64:0;;;9621:21:1;9678:2;9658:18;;;9651:30;9717:34;9697:18;;;9690:62;-1:-1:-1;;;9768:18:1;;;9761:33;9811:19;;7222:64:0;9437:399:1;7222:64:0;7314:1;7305:6;:10;7297:64;;;;-1:-1:-1;;;7297:64:0;;10043:2:1;7297:64:0;;;10025:21:1;10082:2;10062:18;;;10055:30;10121:34;10101:18;;;10094:62;-1:-1:-1;;;10172:18:1;;;10165:39;10221:19;;7297:64:0;9841:405:1;7297:64:0;7372:17;2507:6;;-1:-1:-1;;;;;7406:15:0;;;2507:6;;7406:15;;;;:32;;-1:-1:-1;2480:7:0;2507:6;-1:-1:-1;;;;;7425:13:0;;;2507:6;;7425:13;;7406:32;:54;;;;-1:-1:-1;7450:10:0;;-1:-1:-1;;;;;7442:18:0;;;7450:10;;;;;7442:18;;7406:54;:74;;;;-1:-1:-1;7470:10:0;;-1:-1:-1;;;;;7464:16:0;;;7470:10;;;;;7464:16;;7406:74;7402:1251;;;7505:15;;-1:-1:-1;;;7505:15:0;;;;7497:50;;;;-1:-1:-1;;;7497:50:0;;10453:2:1;7497:50:0;;;10435:21:1;10492:2;10472:18;;;10465:30;-1:-1:-1;;;10511:18:1;;;10504:52;10573:18;;7497:50:0;10251:346:1;7497:50:0;7574:28;7598:3;7574:19;7585:7;;7574:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;7631:13;;7562:40;;-1:-1:-1;;;;;;7623:21:0;;;7631:13;;7623:21;:55;;;;-1:-1:-1;7662:15:0;;-1:-1:-1;;;;;7648:30:0;;;7662:15;;7648:30;;7623:55;:83;;;;-1:-1:-1;;;;;;7684:22:0;;;;;;:18;:22;;;;;;;;7682:24;7623:83;7619:283;;;7746:12;;7736:6;:22;;7728:60;;;;-1:-1:-1;;;7728:60:0;;10804:2:1;7728:60:0;;;10786:21:1;10843:2;10823:18;;;10816:30;10882:27;10862:18;;;10855:55;10927:18;;7728:60:0;10602:349:1;7728:60:0;7841:14;;7831:6;7815:13;7825:2;-1:-1:-1;;;;;5870:18:0;5843:7;5870:18;;;:9;:18;;;;;;;5777:119;7815:13;:22;;;;:::i;:::-;:40;;7807:79;;;;-1:-1:-1;;;7807:79:0;;11288:2:1;7807:79:0;;;11270:21:1;11327:2;11307:18;;;11300:30;11366:28;11346:18;;;11339:56;11412:18;;7807:79:0;11086:350:1;7807:79:0;7927:13;;-1:-1:-1;;;;;7921:19:0;;;7927:13;;7921:19;:43;;;;-1:-1:-1;;;;;;7944:20:0;;7959:4;7944:20;;7921:43;7918:124;;;7997:29;8022:3;7997:20;8008:8;;7997:6;:10;;:20;;;;:::i;:29::-;7985:41;;7918:124;8107:4;8058:28;5870:18;;;:9;:18;;;;;;8133:6;;-1:-1:-1;;;8133:6:0;;;;8132:7;:32;;;;-1:-1:-1;8151:13:0;;-1:-1:-1;;;;;8143:21:0;;;8151:13;;8143:21;8132:32;:47;;;;-1:-1:-1;8168:11:0;;-1:-1:-1;;;8168:11:0;;;;8132:47;:89;;;;;8204:17;;8183:20;:38;8132:89;8128:514;;;8242:67;8259:49;8263:6;8270:37;8274:20;8295:11;;8270:3;:37::i;:::-;8259:3;:49::i;:::-;8242:16;:67::i;:::-;8357:21;8328:26;8422:25;8357:21;8445:1;8422:22;:25::i;:::-;8397:50;-1:-1:-1;8469:22:0;;8466:161;;8516:33;8534:14;8516:17;:33::i;:::-;8572:35;8585:21;8572:12;:35::i;:::-;8223:419;;8128:514;7482:1171;7402:1251;-1:-1:-1;;;;;8670:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8698:22:0;;;;;;:18;:22;;;;;;;;8670:50;8669:102;;;-1:-1:-1;8734:13:0;;-1:-1:-1;;;;;8726:21:0;;;8734:13;;8726:21;;;;:44;;-1:-1:-1;8757:13:0;;-1:-1:-1;;;;;8751:19:0;;;8757:13;;8751:19;;8726:44;8665:148;;;-1:-1:-1;8800:1:0;8665:148;8828:13;;8825:163;;8898:4;8880:24;;;;:9;:24;;;;;;:39;;8909:9;8880:28;:39::i;:::-;8873:4;8855:24;;;;:9;:24;;;;;;;:64;;;;8937:39;;-1:-1:-1;;;;;8937:39:0;;;;;;;8966:9;1361:25:1;;1349:2;1334:18;;1215:177;8937:39:0;;;;;;;;8825:163;-1:-1:-1;;;;;9016:15:0;;;;;;:9;:15;;;;;;:27;;9036:6;9016:19;:27::i;:::-;-1:-1:-1;;;;;9000:15:0;;;;;;:9;:15;;;;;:43;9068:40;9086:21;:6;9097:9;9086:10;:21::i;:::-;-1:-1:-1;;;;;9068:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9054:13:0;;;;;;;:9;:13;;;;;:54;;;;9124:41;;;9143:21;:6;9154:9;9143:10;:21::i;:::-;9124:41;;1361:25:1;;;1349:2;1334:18;9124:41:0;;;;;;;7132:2041;7063:2110;;;:::o;1334:190::-;1420:7;1456:12;1448:6;;;;1440:29;;;;-1:-1:-1;;;1440:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1480:9:0;1492:5;1496:1;1492;:5;:::i;:::-;1480:17;1334:190;-1:-1:-1;;;;;1334:190:0:o;9289:483::-;4952:6;:13;;-1:-1:-1;;;;4952:13:0;-1:-1:-1;;;4952:13:0;;;9391:16:::1;::::0;;9405:1:::1;9391:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9391:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9391:16:0::1;9367:40;;9436:4;9418;9423:1;9418:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9418:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9462:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9462:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9418:7;;9462:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9452:4;9457:1;9452:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9452:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9527:15:::1;::::0;9495:62:::1;::::0;9512:4:::1;::::0;9527:15:::1;9545:11:::0;9495:8:::1;:62::i;:::-;9568:15;::::0;:196:::1;::::0;-1:-1:-1;;;9568:196:0;;-1:-1:-1;;;;;9568:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9649:11;;9568:15:::1;::::0;9691:4;;9718::::1;::::0;9738:15:::1;::::0;9568:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4988:6:0;:14;;-1:-1:-1;;;;4988:14:0;;;-1:-1:-1;;;;9289:483:0:o;9984:98::-;10041:16;;:33;;-1:-1:-1;;;;;10041:16:0;;;;:33;;;;;10067:6;;10041:16;:33;:16;:33;10067:6;10041:16;:33;;;;;;;;;;;;;;;;;;;1532:246;1590:7;1614:1;1619;1614:6;1610:47;;-1:-1:-1;1644:1:0;1637:8;;1610:47;1667:9;1679:5;1683:1;1679;:5;:::i;:::-;1667:17;-1:-1:-1;1712:1:0;1703:5;1707:1;1667:17;1703:5;:::i;:::-;:10;1695:56;;;;-1:-1:-1;;;1695:56:0;;13247:2:1;1695:56:0;;;13229:21:1;13286:2;13266:18;;;13259:30;13325:34;13305:18;;;13298:62;-1:-1:-1;;;13376:18:1;;;13369:31;13417:19;;1695:56:0;13045:397:1;1695:56:0;1769:1;1532:246;-1:-1:-1;;;1532:246:0:o;1786:132::-;1844:7;1871:39;1875:1;1878;1871:39;;;;;;;;;;;;;;;;;:3;:39::i;9183:98::-;9240:7;9267:1;9265;:3;9264:9;;9272:1;9264:9;;;-1:-1:-1;9270:1:0;9183:98;-1:-1:-1;9183:98:0:o;10090:244::-;10152:18;10173:28;10184:16;;10173:6;:10;;:28;;;;:::i;:::-;10152:49;;10217:9;10212:115;10236:16;;10232:1;:20;10212:115;;;10282:8;10291:1;10282:11;;;;;;;;:::i;:::-;;;;;;;;;;10274:41;;-1:-1:-1;;;;;10282:11:0;;;;10274:41;;;;;10304:10;;10274:41;10282:11;10274:41;10304:10;10282:11;10274:41;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10254:3:0;;;;:::i;:::-;;;;10212:115;;1003:179;1061:7;;1093:5;1097:1;1093;:5;:::i;:::-;1081:17;;1122:1;1117;:6;;1109:46;;;;-1:-1:-1;;;1109:46:0;;13789:2:1;1109:46:0;;;13771:21:1;13828:2;13808:18;;;13801:30;13867:29;13847:18;;;13840:57;13914:18;;1109:46:0;13587:351:1;1190:136:0;1248:7;1275:43;1279:1;1282;1275:43;;;;;;;;;;;;;;;;;:3;:43::i;1926:189::-;2012:7;2047:12;2040:5;2032:28;;;;-1:-1:-1;;;2032:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2071:9:0;2083:5;2087:1;2083;:5;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;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;1858:615::-;1944:6;1952;2005:2;1993:9;1984:7;1980:23;1976:32;1973:52;;;2021:1;2018;2011:12;1973:52;2061:9;2048:23;2090:18;2131:2;2123:6;2120:14;2117:34;;;2147:1;2144;2137:12;2117:34;2185:6;2174:9;2170:22;2160:32;;2230:7;2223:4;2219:2;2215:13;2211:27;2201:55;;2252:1;2249;2242:12;2201:55;2292:2;2279:16;2318:2;2310:6;2307:14;2304:34;;;2334:1;2331;2324:12;2304:34;2387:7;2382:2;2372:6;2369:1;2365:14;2361:2;2357:23;2353:32;2350:45;2347:65;;;2408:1;2405;2398:12;2347:65;2439:2;2431:11;;;;;2461:6;;-1:-1:-1;1858:615:1;;-1:-1:-1;;;;1858:615:1:o;2667:247::-;2726:6;2779:2;2767:9;2758:7;2754:23;2750:32;2747:52;;;2795:1;2792;2785:12;2747:52;2834:9;2821:23;2853:31;2878:5;2853:31;:::i;3127:248::-;3195:6;3203;3256:2;3244:9;3235:7;3231:23;3227:32;3224:52;;;3272:1;3269;3262:12;3224:52;-1:-1:-1;;3295:23:1;;;3365:2;3350:18;;;3337:32;;-1:-1:-1;3127:248:1:o;3380:388::-;3448:6;3456;3509:2;3497:9;3488:7;3484:23;3480:32;3477:52;;;3525:1;3522;3515:12;3477:52;3564:9;3551:23;3583:31;3608:5;3583:31;:::i;:::-;3633:5;-1:-1:-1;3690:2:1;3675:18;;3662:32;3703:33;3662:32;3703:33;:::i;:::-;3755:7;3745:17;;;3380:388;;;;;:::o;3773:127::-;3834:10;3829:3;3825:20;3822:1;3815:31;3865:4;3862:1;3855:15;3889:4;3886:1;3879:15;3905:422;3994:1;4037:5;3994:1;4051:270;4072:7;4062:8;4059:21;4051:270;;;4131:4;4127:1;4123:6;4119:17;4113:4;4110:27;4107:53;;;4140:18;;:::i;:::-;4190:7;4180:8;4176:22;4173:55;;;4210:16;;;;4173:55;4289:22;;;;4249:15;;;;4051:270;;;4055:3;3905:422;;;;;:::o;4332:806::-;4381:5;4411:8;4401:80;;-1:-1:-1;4452:1:1;4466:5;;4401:80;4500:4;4490:76;;-1:-1:-1;4537:1:1;4551:5;;4490:76;4582:4;4600:1;4595:59;;;;4668:1;4663:130;;;;4575:218;;4595:59;4625:1;4616:10;;4639:5;;;4663:130;4700:3;4690:8;4687:17;4684:43;;;4707:18;;:::i;:::-;-1:-1:-1;;4763:1:1;4749:16;;4778:5;;4575:218;;4877:2;4867:8;4864:16;4858:3;4852:4;4849:13;4845:36;4839:2;4829:8;4826:16;4821:2;4815:4;4812:12;4808:35;4805:77;4802:159;;;-1:-1:-1;4914:19:1;;;4946:5;;4802:159;4993:34;5018:8;5012:4;4993:34;:::i;:::-;5063:6;5059:1;5055:6;5051:19;5042:7;5039:32;5036:58;;;5074:18;;:::i;:::-;5112:20;;4332:806;-1:-1:-1;;;4332:806:1:o;5143:140::-;5201:5;5230:47;5271:4;5261:8;5257:19;5251:4;5230:47;:::i;5288:168::-;5361:9;;;5392;;5409:15;;;5403:22;;5389:37;5379:71;;5430:18;;:::i;5461:356::-;5663:2;5645:21;;;5682:18;;;5675:30;5741:34;5736:2;5721:18;;5714:62;5808:2;5793:18;;5461:356::o;6174:251::-;6244:6;6297:2;6285:9;6276:7;6272:23;6268:32;6265:52;;;6313:1;6310;6303:12;6265:52;6345:9;6339:16;6364:31;6389:5;6364:31;:::i;7351:306::-;7439:6;7447;7455;7508:2;7496:9;7487:7;7483:23;7479:32;7476:52;;;7524:1;7521;7514:12;7476:52;7553:9;7547:16;7537:26;;7603:2;7592:9;7588:18;7582:25;7572:35;;7647:2;7636:9;7632:18;7626:25;7616:35;;7351:306;;;;;:::o;7941:277::-;8008:6;8061:2;8049:9;8040:7;8036:23;8032:32;8029:52;;;8077:1;8074;8067:12;8029:52;8109:9;8103:16;8162:5;8155:13;8148:21;8141:5;8138:32;8128:60;;8184:1;8181;8174:12;10956:125;11021:9;;;11042:10;;;11039:36;;;11055:18;;:::i;11441:128::-;11508:9;;;11529:11;;;11526:37;;;11543:18;;:::i;11706:127::-;11767:10;11762:3;11758:20;11755:1;11748:31;11798:4;11795:1;11788:15;11822:4;11819:1;11812:15;11838:980;12100:4;12148:3;12137:9;12133:19;12179:6;12168:9;12161:25;12205:2;12243:6;12238:2;12227:9;12223:18;12216:34;12286:3;12281:2;12270:9;12266:18;12259:31;12310:6;12345;12339:13;12376:6;12368;12361:22;12414:3;12403:9;12399:19;12392:26;;12453:2;12445:6;12441:15;12427:29;;12474:1;12484:195;12498:6;12495:1;12492:13;12484:195;;;12563:13;;-1:-1:-1;;;;;12559:39:1;12547:52;;12654:15;;;;12619:12;;;;12595:1;12513:9;12484:195;;;-1:-1:-1;;;;;;;12735:32:1;;;;12730:2;12715:18;;12708:60;-1:-1:-1;;;12799:3:1;12784:19;12777:35;12696:3;11838:980;-1:-1:-1;;;11838:980:1:o;12823:217::-;12863:1;12889;12879:132;;12933:10;12928:3;12924:20;12921:1;12914:31;12968:4;12965:1;12958:15;12996:4;12993:1;12986:15;12879:132;-1:-1:-1;13025:9:1;;12823:217::o;13447:135::-;13486:3;13507:17;;;13504:43;;13527:18;;:::i;:::-;-1:-1:-1;13574:1:1;13563:13;;13447:135::o

Swarm Source

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