ETH Price: $2,470.37 (+0.64%)
 

Overview

Max Total Supply

100,000,000 TC

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
20,608.69841835 TC

Value
$0.00
0xe04cf891321ba0ab1a5e50e7d9bfaf58397d6684
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:
TetherChain

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-07
*/

// SPDX-License-Identifier: MIT
/**

Tether Chain - First EVM compatible blockchain fueled by stable coin

Official website: https://tetherchain.org
Tether USD bridge: https://bridge.tetherchain.org
Block explorer: https://explorer.tetherchain.org

** Add TetherChain in Metamask **
RPC endpoint: https://rpc.tetherchain.org
Chain ID: 32
Currency symbol on TetherChain: U

**/
pragma solidity 0.8.16;

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;
    address private _previousOwner;
    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 TetherChain is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Tether Chain";
    string private constant _symbol = "TC";


    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 public _maxTxAmount = 1_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 2_000_000 * 10**_decimals;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=7;
        _finalTax=3;
        _reduceTaxCountdown=60;

        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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0 && _reduceTaxCountdown<45) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }

    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }



    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_feeAddrWallet);
      require(_newFee<2);
      _finalTax=_newFee;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"_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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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":[{"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"}]

6080604052620000126008600a62000304565b62000022906305f5e1006200031c565b62000030906000196200033e565b6200003e9060001962000361565b60089081556011805462ffffff60a81b191690556200005f90600a62000304565b6200006e90620f42406200031c565b6012556200007f6008600a62000304565b6200008e90621e84806200031c565b6013553480156200009e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b03191633908117909155600854600091825260026020526040822055600190600590620001206000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600f549091168352912080549092161790556007600c556003600d55603c600e556200018e3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c86008600a62000304565b620001d8906305f5e1006200031c565b60405190815260200160405180910390a362000377565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002465781600019048211156200022a576200022a620001ef565b808516156200023857918102915b93841c93908002906200020a565b509250929050565b6000826200025f57506001620002fe565b816200026e57506000620002fe565b81600181146200028757600281146200029257620002b2565b6001915050620002fe565b60ff841115620002a657620002a6620001ef565b50506001821b620002fe565b5060208310610133831016604e8410600b8410161715620002d7575081810a620002fe565b620002e3838362000205565b8060001904821115620002fa57620002fa620001ef565b0290505b92915050565b60006200031560ff8416836200024e565b9392505050565b6000816000190483118215151615620003395762000339620001ef565b500290565b6000826200035c57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620002fe57620002fe620001ef565b611c9280620003876000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610330578063c3c8cd8014610350578063c9567bf914610365578063d34628cc1461037a578063dd62ed3e1461039a578063ec1f3f63146103e057600080fd5b8063751039fc1461029c5780637d1db4a5146102b15780638da5cb5b146102c75780638f9a55c0146102ef57806395d89b411461030557600080fd5b806331c2d847116100f257806331c2d847146102105780635932ead1146102325780636fc3eaec1461025257806370a0823114610267578063715018a61461028757600080fd5b806306fdde031461013a578063095ea7b31461018157806318160ddd146101b157806323b872dd146101d4578063313ce567146101f457600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600c81526b2a32ba3432b91021b430b4b760a11b60208201525b604051610178919061171b565b60405180910390f35b34801561018d57600080fd5b506101a161019c36600461178e565b610400565b6040519015158152602001610178565b3480156101bd57600080fd5b506101c6610417565b604051908152602001610178565b3480156101e057600080fd5b506101a16101ef3660046117ba565b610438565b34801561020057600080fd5b5060405160088152602001610178565b34801561021c57600080fd5b5061023061022b366004611811565b6104a1565b005b34801561023e57600080fd5b5061023061024d3660046118e4565b610540565b34801561025e57600080fd5b50610230610588565b34801561027357600080fd5b506101c6610282366004611901565b6105b5565b34801561029357600080fd5b506102306105d7565b3480156102a857600080fd5b5061023061064b565b3480156102bd57600080fd5b506101c660125481565b3480156102d357600080fd5b506000546040516001600160a01b039091168152602001610178565b3480156102fb57600080fd5b506101c660135481565b34801561031157600080fd5b50604080518082019091526002815261544360f01b602082015261016b565b34801561033c57600080fd5b506101a161034b36600461178e565b6106b1565b34801561035c57600080fd5b506102306106be565b34801561037157600080fd5b506102306106f4565b34801561038657600080fd5b50610230610395366004611811565b610a6b565b3480156103a657600080fd5b506101c66103b536600461191e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103ec57600080fd5b506102306103fb366004611957565b610afd565b600061040d338484610b2f565b5060015b92915050565b60006104256008600a611a6a565b610433906305f5e100611a79565b905090565b6000610445848484610c53565b610497843361049285604051806060016040528060288152602001611c35602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ff8565b610b2f565b5060019392505050565b6000546001600160a01b031633146104d45760405162461bcd60e51b81526004016104cb90611a98565b60405180910390fd5b60005b815181101561053c576000600660008484815181106104f8576104f8611acd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061053481611ae3565b9150506104d7565b5050565b6000546001600160a01b0316331461056a5760405162461bcd60e51b81526004016104cb90611a98565b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b0316146105a857600080fd5b476105b281611032565b50565b6001600160a01b0381166000908152600260205260408120546104119061106c565b6000546001600160a01b031633146106015760405162461bcd60e51b81526004016104cb90611a98565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106755760405162461bcd60e51b81526004016104cb90611a98565b6106816008600a611a6a565b61068f906305f5e100611a79565b60125561069e6008600a611a6a565b6106ac906305f5e100611a79565b601355565b600061040d338484610c53565b600f546001600160a01b0316336001600160a01b0316146106de57600080fd5b60006106e9306105b5565b90506105b2816110f0565b6000546001600160a01b0316331461071e5760405162461bcd60e51b81526004016104cb90611a98565b601154600160a01b900460ff16156107785760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104cb565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107c030826107b26008600a611a6a565b610492906305f5e100611a79565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108229190611afc565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108939190611afc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190611afc565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610934816105b5565b6000806109496000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109b1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d69190611b19565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a47573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053c9190611b47565b6000546001600160a01b03163314610a955760405162461bcd60e51b81526004016104cb90611a98565b60005b815181101561053c57600160066000848481518110610ab957610ab9611acd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610af581611ae3565b915050610a98565b600f546001600160a01b0316336001600160a01b031614610b1d57600080fd5b60028110610b2a57600080fd5b600d55565b6001600160a01b038316610b915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104cb565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104cb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104cb565b6001600160a01b038216610d195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104cb565b60008111610d7b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104cb565b6000546001600160a01b03848116911614801590610da757506000546001600160a01b03838116911614155b15610fdd576001600160a01b03831660009081526006602052604090205460ff16158015610dee57506001600160a01b03821660009081526006602052604090205460ff16155b610df757600080fd5b6000600a55600e5415610e0c57600c54610e10565b600d545b600b556011546001600160a01b038481169116148015610e3e57506010546001600160a01b03838116911614155b8015610e6357506001600160a01b03821660009081526005602052604090205460ff16155b8015610e785750601154600160b81b900460ff165b15610f5257601254811115610ecf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104cb565b60135481610edc846105b5565b610ee69190611b64565b1115610f345760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104cb565b600e5415610f5257600e8054906000610f4c83611b77565b91905055505b6000610f5d306105b5565b601154909150600160a81b900460ff16158015610f8857506011546001600160a01b03858116911614155b8015610f9d5750601154600160b01b900460ff165b8015610fa95750600081115b8015610fb75750602d600e54105b15610fd757610fc5816110f0565b478015610fd557610fd547611032565b505b50610fe8565b6000600a819055600b555b610ff383838361126a565b505050565b6000818484111561101c5760405162461bcd60e51b81526004016104cb919061171b565b5060006110298486611b8e565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561053c573d6000803e3d6000fd5b60006008548211156110d35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104cb565b60006110dd611275565b90506110e98382611298565b9392505050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061113857611138611acd565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b59190611afc565b816001815181106111c8576111c8611acd565b6001600160a01b0392831660209182029290920101526010546111ee9130911684610b2f565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790611227908590600090869030904290600401611ba1565b600060405180830381600087803b15801561124157600080fd5b505af1158015611255573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610ff38383836112da565b60008060006112826113d1565b90925090506112918282611298565b9250505090565b60006110e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061145a565b6000806000806000806112ec87611488565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061131e90876114e5565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461134d9086611527565b6001600160a01b03891660009081526002602052604090205561136f81611586565b61137984836115d0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113be91815260200190565b60405180910390a3505050505050505050565b6000806000600854905060006008600a6113eb9190611a6a565b6113f9906305f5e100611a79565b905061142161140a6008600a611a6a565b611418906305f5e100611a79565b60085490611298565b821015611451576008546008600a6114399190611a6a565b611447906305f5e100611a79565b9350935050509091565b90939092509050565b6000818361147b5760405162461bcd60e51b81526004016104cb919061171b565b5060006110298486611c12565b60008060008060008060008060006114a58a600a54600b546115f4565b92509250925060006114b5611275565b905060008060006114c88e878787611649565b919e509c509a509598509396509194505050505091939550919395565b60006110e983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff8565b6000806115348385611b64565b9050838110156110e95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104cb565b6000611590611275565b9050600061159e8383611699565b306000908152600260205260409020549091506115bb9082611527565b30600090815260026020526040902055505050565b6008546115dd90836114e5565b6008556009546115ed9082611527565b6009555050565b600080808061160e60646116088989611699565b90611298565b9050600061162160646116088a89611699565b90506000611639826116338b866114e5565b906114e5565b9992985090965090945050505050565b60008080806116588886611699565b905060006116668887611699565b905060006116748888611699565b905060006116868261163386866114e5565b939b939a50919850919650505050505050565b6000826000036116ab57506000610411565b60006116b78385611a79565b9050826116c48583611c12565b146110e95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104cb565b600060208083528351808285015260005b818110156117485785810183015185820160400152820161172c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105b257600080fd5b803561178981611769565b919050565b600080604083850312156117a157600080fd5b82356117ac81611769565b946020939093013593505050565b6000806000606084860312156117cf57600080fd5b83356117da81611769565b925060208401356117ea81611769565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561182457600080fd5b823567ffffffffffffffff8082111561183c57600080fd5b818501915085601f83011261185057600080fd5b813581811115611862576118626117fb565b8060051b604051601f19603f83011681018181108582111715611887576118876117fb565b6040529182528482019250838101850191888311156118a557600080fd5b938501935b828510156118ca576118bb8561177e565b845293850193928501926118aa565b98975050505050505050565b80151581146105b257600080fd5b6000602082840312156118f657600080fd5b81356110e9816118d6565b60006020828403121561191357600080fd5b81356110e981611769565b6000806040838503121561193157600080fd5b823561193c81611769565b9150602083013561194c81611769565b809150509250929050565b60006020828403121561196957600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119c15781600019048211156119a7576119a7611970565b808516156119b457918102915b93841c939080029061198b565b509250929050565b6000826119d857506001610411565b816119e557506000610411565b81600181146119fb5760028114611a0557611a21565b6001915050610411565b60ff841115611a1657611a16611970565b50506001821b610411565b5060208310610133831016604e8410600b8410161715611a44575081810a610411565b611a4e8383611986565b8060001904821115611a6257611a62611970565b029392505050565b60006110e960ff8416836119c9565b6000816000190483118215151615611a9357611a93611970565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611af557611af5611970565b5060010190565b600060208284031215611b0e57600080fd5b81516110e981611769565b600080600060608486031215611b2e57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b5957600080fd5b81516110e9816118d6565b8082018082111561041157610411611970565b600081611b8657611b86611970565b506000190190565b8181038181111561041157610411611970565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bf15784516001600160a01b031683529383019391830191600101611bcc565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c2f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122061b5f3c7ad6e893128416cc9c09c664ab13e2560ce82ca76a35f2cd4f707108d64736f6c63430008100033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610330578063c3c8cd8014610350578063c9567bf914610365578063d34628cc1461037a578063dd62ed3e1461039a578063ec1f3f63146103e057600080fd5b8063751039fc1461029c5780637d1db4a5146102b15780638da5cb5b146102c75780638f9a55c0146102ef57806395d89b411461030557600080fd5b806331c2d847116100f257806331c2d847146102105780635932ead1146102325780636fc3eaec1461025257806370a0823114610267578063715018a61461028757600080fd5b806306fdde031461013a578063095ea7b31461018157806318160ddd146101b157806323b872dd146101d4578063313ce567146101f457600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600c81526b2a32ba3432b91021b430b4b760a11b60208201525b604051610178919061171b565b60405180910390f35b34801561018d57600080fd5b506101a161019c36600461178e565b610400565b6040519015158152602001610178565b3480156101bd57600080fd5b506101c6610417565b604051908152602001610178565b3480156101e057600080fd5b506101a16101ef3660046117ba565b610438565b34801561020057600080fd5b5060405160088152602001610178565b34801561021c57600080fd5b5061023061022b366004611811565b6104a1565b005b34801561023e57600080fd5b5061023061024d3660046118e4565b610540565b34801561025e57600080fd5b50610230610588565b34801561027357600080fd5b506101c6610282366004611901565b6105b5565b34801561029357600080fd5b506102306105d7565b3480156102a857600080fd5b5061023061064b565b3480156102bd57600080fd5b506101c660125481565b3480156102d357600080fd5b506000546040516001600160a01b039091168152602001610178565b3480156102fb57600080fd5b506101c660135481565b34801561031157600080fd5b50604080518082019091526002815261544360f01b602082015261016b565b34801561033c57600080fd5b506101a161034b36600461178e565b6106b1565b34801561035c57600080fd5b506102306106be565b34801561037157600080fd5b506102306106f4565b34801561038657600080fd5b50610230610395366004611811565b610a6b565b3480156103a657600080fd5b506101c66103b536600461191e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103ec57600080fd5b506102306103fb366004611957565b610afd565b600061040d338484610b2f565b5060015b92915050565b60006104256008600a611a6a565b610433906305f5e100611a79565b905090565b6000610445848484610c53565b610497843361049285604051806060016040528060288152602001611c35602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ff8565b610b2f565b5060019392505050565b6000546001600160a01b031633146104d45760405162461bcd60e51b81526004016104cb90611a98565b60405180910390fd5b60005b815181101561053c576000600660008484815181106104f8576104f8611acd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061053481611ae3565b9150506104d7565b5050565b6000546001600160a01b0316331461056a5760405162461bcd60e51b81526004016104cb90611a98565b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b0316146105a857600080fd5b476105b281611032565b50565b6001600160a01b0381166000908152600260205260408120546104119061106c565b6000546001600160a01b031633146106015760405162461bcd60e51b81526004016104cb90611a98565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106755760405162461bcd60e51b81526004016104cb90611a98565b6106816008600a611a6a565b61068f906305f5e100611a79565b60125561069e6008600a611a6a565b6106ac906305f5e100611a79565b601355565b600061040d338484610c53565b600f546001600160a01b0316336001600160a01b0316146106de57600080fd5b60006106e9306105b5565b90506105b2816110f0565b6000546001600160a01b0316331461071e5760405162461bcd60e51b81526004016104cb90611a98565b601154600160a01b900460ff16156107785760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104cb565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107c030826107b26008600a611a6a565b610492906305f5e100611a79565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108229190611afc565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108939190611afc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190611afc565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610934816105b5565b6000806109496000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109b1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d69190611b19565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a47573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053c9190611b47565b6000546001600160a01b03163314610a955760405162461bcd60e51b81526004016104cb90611a98565b60005b815181101561053c57600160066000848481518110610ab957610ab9611acd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610af581611ae3565b915050610a98565b600f546001600160a01b0316336001600160a01b031614610b1d57600080fd5b60028110610b2a57600080fd5b600d55565b6001600160a01b038316610b915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104cb565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104cb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104cb565b6001600160a01b038216610d195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104cb565b60008111610d7b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104cb565b6000546001600160a01b03848116911614801590610da757506000546001600160a01b03838116911614155b15610fdd576001600160a01b03831660009081526006602052604090205460ff16158015610dee57506001600160a01b03821660009081526006602052604090205460ff16155b610df757600080fd5b6000600a55600e5415610e0c57600c54610e10565b600d545b600b556011546001600160a01b038481169116148015610e3e57506010546001600160a01b03838116911614155b8015610e6357506001600160a01b03821660009081526005602052604090205460ff16155b8015610e785750601154600160b81b900460ff165b15610f5257601254811115610ecf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104cb565b60135481610edc846105b5565b610ee69190611b64565b1115610f345760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104cb565b600e5415610f5257600e8054906000610f4c83611b77565b91905055505b6000610f5d306105b5565b601154909150600160a81b900460ff16158015610f8857506011546001600160a01b03858116911614155b8015610f9d5750601154600160b01b900460ff165b8015610fa95750600081115b8015610fb75750602d600e54105b15610fd757610fc5816110f0565b478015610fd557610fd547611032565b505b50610fe8565b6000600a819055600b555b610ff383838361126a565b505050565b6000818484111561101c5760405162461bcd60e51b81526004016104cb919061171b565b5060006110298486611b8e565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561053c573d6000803e3d6000fd5b60006008548211156110d35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104cb565b60006110dd611275565b90506110e98382611298565b9392505050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061113857611138611acd565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b59190611afc565b816001815181106111c8576111c8611acd565b6001600160a01b0392831660209182029290920101526010546111ee9130911684610b2f565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790611227908590600090869030904290600401611ba1565b600060405180830381600087803b15801561124157600080fd5b505af1158015611255573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610ff38383836112da565b60008060006112826113d1565b90925090506112918282611298565b9250505090565b60006110e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061145a565b6000806000806000806112ec87611488565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061131e90876114e5565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461134d9086611527565b6001600160a01b03891660009081526002602052604090205561136f81611586565b61137984836115d0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113be91815260200190565b60405180910390a3505050505050505050565b6000806000600854905060006008600a6113eb9190611a6a565b6113f9906305f5e100611a79565b905061142161140a6008600a611a6a565b611418906305f5e100611a79565b60085490611298565b821015611451576008546008600a6114399190611a6a565b611447906305f5e100611a79565b9350935050509091565b90939092509050565b6000818361147b5760405162461bcd60e51b81526004016104cb919061171b565b5060006110298486611c12565b60008060008060008060008060006114a58a600a54600b546115f4565b92509250925060006114b5611275565b905060008060006114c88e878787611649565b919e509c509a509598509396509194505050505091939550919395565b60006110e983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff8565b6000806115348385611b64565b9050838110156110e95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104cb565b6000611590611275565b9050600061159e8383611699565b306000908152600260205260409020549091506115bb9082611527565b30600090815260026020526040902055505050565b6008546115dd90836114e5565b6008556009546115ed9082611527565b6009555050565b600080808061160e60646116088989611699565b90611298565b9050600061162160646116088a89611699565b90506000611639826116338b866114e5565b906114e5565b9992985090965090945050505050565b60008080806116588886611699565b905060006116668887611699565b905060006116748888611699565b905060006116868261163386866114e5565b939b939a50919850919650505050505050565b6000826000036116ab57506000610411565b60006116b78385611a79565b9050826116c48583611c12565b146110e95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104cb565b600060208083528351808285015260005b818110156117485785810183015185820160400152820161172c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105b257600080fd5b803561178981611769565b919050565b600080604083850312156117a157600080fd5b82356117ac81611769565b946020939093013593505050565b6000806000606084860312156117cf57600080fd5b83356117da81611769565b925060208401356117ea81611769565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561182457600080fd5b823567ffffffffffffffff8082111561183c57600080fd5b818501915085601f83011261185057600080fd5b813581811115611862576118626117fb565b8060051b604051601f19603f83011681018181108582111715611887576118876117fb565b6040529182528482019250838101850191888311156118a557600080fd5b938501935b828510156118ca576118bb8561177e565b845293850193928501926118aa565b98975050505050505050565b80151581146105b257600080fd5b6000602082840312156118f657600080fd5b81356110e9816118d6565b60006020828403121561191357600080fd5b81356110e981611769565b6000806040838503121561193157600080fd5b823561193c81611769565b9150602083013561194c81611769565b809150509250929050565b60006020828403121561196957600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119c15781600019048211156119a7576119a7611970565b808516156119b457918102915b93841c939080029061198b565b509250929050565b6000826119d857506001610411565b816119e557506000610411565b81600181146119fb5760028114611a0557611a21565b6001915050610411565b60ff841115611a1657611a16611970565b50506001821b610411565b5060208310610133831016604e8410600b8410161715611a44575081810a610411565b611a4e8383611986565b8060001904821115611a6257611a62611970565b029392505050565b60006110e960ff8416836119c9565b6000816000190483118215151615611a9357611a93611970565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611af557611af5611970565b5060010190565b600060208284031215611b0e57600080fd5b81516110e981611769565b600080600060608486031215611b2e57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b5957600080fd5b81516110e9816118d6565b8082018082111561041157610411611970565b600081611b8657611b86611970565b506000190190565b8181038181111561041157610411611970565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bf15784516001600160a01b031683529383019391830191600101611bcc565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c2f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122061b5f3c7ad6e893128416cc9c09c664ab13e2560ce82ca76a35f2cd4f707108d64736f6c63430008100033

Deployed Bytecode Sourcemap

3867:10633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5776:83;;;;;;;;;;-1:-1:-1;5846:5:0;;;;;;;;;;;;-1:-1:-1;;;5846:5:0;;;;5776:83;;;;;;;:::i;:::-;;;;;;;;6628:161;;;;;;;;;;-1:-1:-1;6628:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6628:161:0;1162:187:1;6053:95:0;;;;;;;;;;;;;:::i;:::-;;;1500:25:1;;;1488:2;1473:18;6053:95:0;1354:177:1;6797:313:0;;;;;;;;;;-1:-1:-1;6797:313:0;;;;;:::i;:::-;;:::i;5962:83::-;;;;;;;;;;-1:-1:-1;5962:83:0;;4371:1;2139:36:1;;2127:2;2112:18;5962:83:0;1997:184:1;10236:164:0;;;;;;;;;;-1:-1:-1;10236:164:0;;;;;:::i;:::-;;:::i;:::-;;7118:103;;;;;;;;;;-1:-1:-1;7118:103:0;;;;;:::i;:::-;;:::i;12615:193::-;;;;;;;;;;;;;:::i;6156:138::-;;;;;;;;;;-1:-1:-1;6156:138:0;;;;;:::i;:::-;;:::i;2948:148::-;;;;;;;;;;;;;:::i;9834:118::-;;;;;;;;;;;;;:::i;5092:55::-;;;;;;;;;;;;;;;;2734:79;;;;;;;;;;-1:-1:-1;2772:7:0;2799:6;2734:79;;-1:-1:-1;;;;;2799:6:0;;;4211:51:1;;4199:2;4184:18;2734:79:0;4065:203:1;5154:57:0;;;;;;;;;;;;;;;;5867:87;;;;;;;;;;-1:-1:-1;5939:7:0;;;;;;;;;;;;-1:-1:-1;;;5939:7:0;;;;5867:87;;6302:167;;;;;;;;;;-1:-1:-1;6302:167:0;;;;;:::i;:::-;;:::i;12413:194::-;;;;;;;;;;;;;:::i;10408:773::-;;;;;;;;;;;;;:::i;10064:164::-;;;;;;;;;;-1:-1:-1;10064:164:0;;;;;:::i;:::-;;:::i;6477:143::-;;;;;;;;;;-1:-1:-1;6477:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6585:18:0;;;6558:7;6585:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6477:143;11347:151;;;;;;;;;;-1:-1:-1;11347:151:0;;;;;:::i;:::-;;:::i;6628:161::-;6703:4;6720:39;532:10;6743:7;6752:6;6720:8;:39::i;:::-;-1:-1:-1;6777:4:0;6628:161;;;;;:::o;6053:95::-;6106:7;4428:13;4371:1;4428:2;:13;:::i;:::-;4414:27;;:11;:27;:::i;:::-;6126:14;;6053:95;:::o;6797:313::-;6895:4;6912:36;6922:6;6930:9;6941:6;6912:9;:36::i;:::-;6959:121;6968:6;532:10;6990:89;7028:6;6990:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6990:19:0;;;;;;:11;:19;;;;;;;;532:10;6990:33;;;;;;;;;;:37;:89::i;:::-;6959:8;:121::i;:::-;-1:-1:-1;7098:4:0;6797:313;;;;;:::o;10236:164::-;2861:6;;-1:-1:-1;;;;;2861:6:0;532:10;2861:22;2853:67;;;;-1:-1:-1;;;2853:67:0;;;;;;;:::i;:::-;;;;;;;;;10309:6:::1;10304:87;10325:6;:13;10321:1;:17;10304:87;;;10376:5;10358:4;:15;10363:6;10370:1;10363:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10358:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10358:15:0;:23;;-1:-1:-1;;10358:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10340:3;::::1;::::0;::::1;:::i;:::-;;;;10304:87;;;;10236:164:::0;:::o;7118:103::-;2861:6;;-1:-1:-1;;;;;2861:6:0;532:10;2861:22;2853:67;;;;-1:-1:-1;;;2853:67:0;;;;;;;:::i;:::-;7190:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7190:23:0::1;-1:-1:-1::0;;;;7190:23:0;;::::1;::::0;;;::::1;::::0;;7118:103::o;12615:193::-;12681:14;;-1:-1:-1;;;;;12681:14:0;532:10;-1:-1:-1;;;;;12665:30:0;;12657:39;;;;;;12736:21;12768:32;12736:21;12768:12;:32::i;:::-;12646:162;12615:193::o;6156:138::-;-1:-1:-1;;;;;6269:16:0;;6222:7;6269:16;;;:7;:16;;;;;;6249:37;;:19;:37::i;2948:148::-;2861:6;;-1:-1:-1;;;;;2861:6:0;532:10;2861:22;2853:67;;;;-1:-1:-1;;;2853:67:0;;;;;;;:::i;:::-;3055:1:::1;3039:6:::0;;3018:40:::1;::::0;-1:-1:-1;;;;;3039:6:0;;::::1;::::0;3018:40:::1;::::0;3055:1;;3018:40:::1;3086:1;3069:19:::0;;-1:-1:-1;;;;;;3069:19:0::1;::::0;;2948:148::o;9834:118::-;2861:6;;-1:-1:-1;;;;;2861:6:0;532:10;2861:22;2853:67;;;;-1:-1:-1;;;2853:67:0;;;;;;;:::i;:::-;4428:13:::1;4371:1;4428:2;:13;:::i;:::-;4414:27;::::0;:11:::1;:27;:::i;:::-;9887:12;:22:::0;4428:13:::1;4371:1;4428:2;:13;:::i;:::-;4414:27;::::0;:11:::1;:27;:::i;:::-;9920:14;:24:::0;9834:118::o;6302:167::-;6380:4;6397:42;532:10;6421:9;6432:6;6397:9;:42::i;12413:194::-;12479:14;;-1:-1:-1;;;;;12479:14:0;532:10;-1:-1:-1;;;;;12463:30:0;;12455:39;;;;;;12505:23;12531:24;12549:4;12531:9;:24::i;:::-;12505:50;;12566:33;12583:15;12566:16;:33::i;10408:773::-;2861:6;;-1:-1:-1;;;;;2861:6:0;532:10;2861:22;2853:67;;;;-1:-1:-1;;;2853:67:0;;;;;;;:::i;:::-;10472:11:::1;::::0;-1:-1:-1;;;10472:11:0;::::1;;;10471:12;10463:47;;;::::0;-1:-1:-1;;;10463:47:0;;7374:2:1;10463:47:0::1;::::0;::::1;7356:21:1::0;7413:2;7393:18;;;7386:30;7452:25;7432:18;;;7425:53;7495:18;;10463:47:0::1;7172:347:1::0;10463:47:0::1;10632:15;:34:::0;;-1:-1:-1;;;;;;10632:34:0::1;10578:42;10632:34:::0;;::::1;::::0;;;10677:58:::1;10694:4;10578:42:::0;4428:13:::1;4371:1;4428:2;:13;:::i;:::-;4414:27;::::0;:11:::1;:27;:::i;10677:58::-;10780:16;-1:-1:-1::0;;;;;10780:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10762:56:0::1;;10827:4;10834:16;-1:-1:-1::0;;;;;10834:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10762:96;::::0;-1:-1:-1;;;;;;10762:96:0::1;::::0;;;;;;-1:-1:-1;;;;;8010:15:1;;;10762:96:0::1;::::0;::::1;7992:34:1::0;8062:15;;8042:18;;;8035:43;7927:18;;10762:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10746:13;:112:::0;;-1:-1:-1;;;;;;10746:112:0::1;-1:-1:-1::0;;;;;10746:112:0;;::::1;;::::0;;10869:15:::1;::::0;::::1;:31;10908:21;10939:4;10945:24;10939:4:::0;10945:9:::1;:24::i;:::-;10970:1;10972::::0;10974:7:::1;2772::::0;2799:6;-1:-1:-1;;;;;2799:6:0;;2734:79;10974:7:::1;10869:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10869:129:0;;;-1:-1:-1;;;;;8448:15:1;;;10869:129:0::1;::::0;::::1;8430:34:1::0;8480:18;;;8473:34;;;;8523:18;;;8516:34;;;;8566:18;;;8559:34;8630:15;;;8609:19;;;8602:44;10982:15:0::1;8662:19:1::0;;;8655:35;8364:19;;10869:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11009:11:0::1;:18:::0;;-1:-1:-1;;;;11073:18:0;;-1:-1:-1;;;11073:18:0;;;;11140:15:::1;::::0;11102:71:::1;::::0;-1:-1:-1;;;11102:71:0;;-1:-1:-1;;;;;11140:15:0;;::::1;11102:71;::::0;::::1;9186:51:1::0;-1:-1:-1;;9253:18:1;;;9246:34;11109:13:0;;;-1:-1:-1;11102:29:0::1;::::0;9159:18:1;;11102:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10064:164::-:0;2861:6;;-1:-1:-1;;;;;2861:6:0;532:10;2861:22;2853:67;;;;-1:-1:-1;;;2853:67:0;;;;;;;:::i;:::-;10138:6:::1;10133:88;10154:5;:12;10150:1;:16;10133:88;;;10205:4;10188;:14;10193:5;10199:1;10193:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10188:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10188:14:0;:21;;-1:-1:-1;;10188:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10168:3;::::1;::::0;::::1;:::i;:::-;;;;10133:88;;11347:151:::0;11422:14;;-1:-1:-1;;;;;11422:14:0;532:10;-1:-1:-1;;;;;11408:28:0;;11400:37;;;;;;11462:1;11454:7;:9;11446:18;;;;;;11473:9;:17;11347:151::o;7491:335::-;-1:-1:-1;;;;;7584:19:0;;7576:68;;;;-1:-1:-1;;;7576:68:0;;9743:2:1;7576:68:0;;;9725:21:1;9782:2;9762:18;;;9755:30;9821:34;9801:18;;;9794:62;-1:-1:-1;;;9872:18:1;;;9865:34;9916:19;;7576:68:0;9541:400:1;7576:68:0;-1:-1:-1;;;;;7663:21:0;;7655:68;;;;-1:-1:-1;;;7655:68:0;;10148:2:1;7655:68:0;;;10130:21:1;10187:2;10167:18;;;10160:30;10226:34;10206:18;;;10199:62;-1:-1:-1;;;10277:18:1;;;10270:32;10319:19;;7655:68:0;9946:398:1;7655:68:0;-1:-1:-1;;;;;7734:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7786:32;;1500:25:1;;;7786:32:0;;1473:18:1;7786:32:0;;;;;;;7491:335;;;:::o;7834:1499::-;-1:-1:-1;;;;;7922:18:0;;7914:68;;;;-1:-1:-1;;;7914:68:0;;10551:2:1;7914:68:0;;;10533:21:1;10590:2;10570:18;;;10563:30;10629:34;10609:18;;;10602:62;-1:-1:-1;;;10680:18:1;;;10673:35;10725:19;;7914:68:0;10349:401:1;7914:68:0;-1:-1:-1;;;;;8001:16:0;;7993:64;;;;-1:-1:-1;;;7993:64:0;;10957:2:1;7993:64:0;;;10939:21:1;10996:2;10976:18;;;10969:30;11035:34;11015:18;;;11008:62;-1:-1:-1;;;11086:18:1;;;11079:33;11129:19;;7993:64:0;10755:399:1;7993:64:0;8085:1;8076:6;:10;8068:64;;;;-1:-1:-1;;;8068:64:0;;11361:2:1;8068:64:0;;;11343:21:1;11400:2;11380:18;;;11373:30;11439:34;11419:18;;;11412:62;-1:-1:-1;;;11490:18:1;;;11483:39;11539:19;;8068:64:0;11159:405:1;8068:64:0;2772:7;2799:6;-1:-1:-1;;;;;8151:15:0;;;2799:6;;8151:15;;;;:32;;-1:-1:-1;2772:7:0;2799:6;-1:-1:-1;;;;;8170:13:0;;;2799:6;;8170:13;;8151:32;8147:1136;;;-1:-1:-1;;;;;8209:10:0;;;;;;:4;:10;;;;;;;;8208:11;:24;;;;-1:-1:-1;;;;;;8224:8:0;;;;;;:4;:8;;;;;;;;8223:9;8208:24;8200:33;;;;;;8260:1;8248:9;:13;8289:19;;:22;8288:46;;8323:11;;8288:46;;;8313:9;;8288:46;8276:9;:58;8361:13;;-1:-1:-1;;;;;8353:21:0;;;8361:13;;8353:21;:55;;;;-1:-1:-1;8392:15:0;;-1:-1:-1;;;;;8378:30:0;;;8392:15;;8378:30;;8353:55;:83;;;;-1:-1:-1;;;;;;8414:22:0;;;;;;:18;:22;;;;;;;;8412:24;8353:83;:102;;;;-1:-1:-1;8440:15:0;;-1:-1:-1;;;8440:15:0;;;;8353:102;8349:397;;;8523:12;;8513:6;:22;;8505:60;;;;-1:-1:-1;;;8505:60:0;;11771:2:1;8505:60:0;;;11753:21:1;11810:2;11790:18;;;11783:30;11849:27;11829:18;;;11822:55;11894:18;;8505:60:0;11569:349:1;8505:60:0;8618:14;;8608:6;8592:13;8602:2;8592:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8584:79;;;;-1:-1:-1;;;8584:79:0;;12255:2:1;8584:79:0;;;12237:21:1;12294:2;12274:18;;;12267:30;12333:28;12313:18;;;12306:56;12379:18;;8584:79:0;12053:350:1;8584:79:0;8685:19;;:21;8682:49;;8708:19;:21;;;:19;:21;;;:::i;:::-;;;;;;8682:49;8764:28;8795:24;8813:4;8795:9;:24::i;:::-;8839:6;;8764:55;;-1:-1:-1;;;;8839:6:0;;;;8838:7;:32;;;;-1:-1:-1;8857:13:0;;-1:-1:-1;;;;;8849:21:0;;;8857:13;;8849:21;;8838:32;:47;;;;-1:-1:-1;8874:11:0;;-1:-1:-1;;;8874:11:0;;;;8838:47;:73;;;;;8910:1;8889:20;:22;8838:73;:99;;;;;8935:2;8915:19;;:22;8838:99;8834:370;;;8958:38;8975:20;8958:16;:38::i;:::-;9044:21;9087:22;;9084:105;;9134:35;9147:21;9134:12;:35::i;:::-;8939:265;8834:370;8185:1030;8147:1136;;;9244:1;9232:9;:13;;;9258:9;:13;8147:1136;9295:30;9310:4;9315:2;9318:6;9295:14;:30::i;:::-;7834:1499;;;:::o;1589:190::-;1675:7;1711:12;1703:6;;;;1695:29;;;;-1:-1:-1;;;1695:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1735:9:0;1747:5;1751:1;1747;:5;:::i;:::-;1735:17;1589:190;-1:-1:-1;;;;;1589:190:0:o;9960:96::-;10017:14;;:31;;-1:-1:-1;;;;;10017:14:0;;;;:31;;;;;10041:6;;10017:14;:31;:14;:31;10041:6;10017:14;:31;;;;;;;;;;;;;;;;;;;7229:254;7296:7;7335;;7324;:18;;7316:73;;;;-1:-1:-1;;;7316:73:0;;12884:2:1;7316:73:0;;;12866:21:1;12923:2;12903:18;;;12896:30;12962:34;12942:18;;;12935:62;-1:-1:-1;;;13013:18:1;;;13006:40;13063:19;;7316:73:0;12682:406:1;7316:73:0;7400:19;7423:10;:8;:10::i;:::-;7400:33;-1:-1:-1;7451:24:0;:7;7400:33;7451:11;:24::i;:::-;7444:31;7229:254;-1:-1:-1;;;7229:254:0:o;9341:483::-;5300:6;:13;;-1:-1:-1;;;;5300:13:0;-1:-1:-1;;;5300:13:0;;;9443:16:::1;::::0;;9457:1:::1;9443:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9443:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9443:16:0::1;9419:40;;9488:4;9470;9475:1;9470:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9470:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9514:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9514:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9470:7;;9514:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9504:4;9509:1;9504:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9504:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9579:15:::1;::::0;9547:62:::1;::::0;9564:4:::1;::::0;9579:15:::1;9597:11:::0;9547:8:::1;:62::i;:::-;9620:15;::::0;:196:::1;::::0;-1:-1:-1;;;9620:196:0;;-1:-1:-1;;;;;9620:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9701:11;;9620:15:::1;::::0;9743:4;;9770::::1;::::0;9790:15:::1;::::0;9620:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5336:6:0;:14;;-1:-1:-1;;;;5336:14:0;;;-1:-1:-1;;;;9341:483:0:o;11189:146::-;11283:44;11301:6;11309:9;11320:6;11283:17;:44::i;14070:163::-;14111:7;14132:15;14149;14168:19;:17;:19::i;:::-;14131:56;;-1:-1:-1;14131:56:0;-1:-1:-1;14205:20:0;14131:56;;14205:11;:20::i;:::-;14198:27;;;;14070:163;:::o;2041:132::-;2099:7;2126:39;2130:1;2133;2126:39;;;;;;;;;;;;;;;;;:3;:39::i;11506:487::-;11605:15;11622:23;11647:12;11661:23;11686:12;11700:13;11717:19;11728:7;11717:10;:19::i;:::-;-1:-1:-1;;;;;11765:15:0;;;;;;:7;:15;;;;;;11604:132;;-1:-1:-1;11604:132:0;;-1:-1:-1;11604:132:0;;-1:-1:-1;11604:132:0;-1:-1:-1;11604:132:0;-1:-1:-1;11604:132:0;-1:-1:-1;11765:28:0;;11604:132;11765:19;:28::i;:::-;-1:-1:-1;;;;;11747:15:0;;;;;;;:7;:15;;;;;;:46;;;;11825:18;;;;;;;:39;;11848:15;11825:22;:39::i;:::-;-1:-1:-1;;;;;11804:18:0;;;;;;:7;:18;;;;;:60;11875:16;11885:5;11875:9;:16::i;:::-;11902:23;11914:4;11920;11902:11;:23::i;:::-;11958:9;-1:-1:-1;;;;;11941:44:0;11950:6;-1:-1:-1;;;;;11941:44:0;;11969:15;11941:44;;;;1500:25:1;;1488:2;1473:18;;1354:177;11941:44:0;;;;;;;;11593:400;;;;;;11506:487;;;:::o;14241:256::-;14291:7;14300;14320:15;14338:7;;14320:25;;14356:15;4371:1;4428:2;:13;;;;:::i;:::-;4414:27;;:11;:27;:::i;:::-;14356:25;-1:-1:-1;14406:20:0;4428:13;4371:1;4428:2;:13;:::i;:::-;4414:27;;:11;:27;:::i;:::-;14406:7;;;:11;:20::i;:::-;14396:7;:30;14392:61;;;14436:7;;4371:1;4428:2;:13;;;;:::i;:::-;4414:27;;:11;:27;:::i;:::-;14428:25;;;;;;14241:256;;:::o;14392:61::-;14472:7;;14481;;-1:-1:-1;14241:256:0;-1:-1:-1;14241:256:0:o;2181:189::-;2267:7;2302:12;2295:5;2287:28;;;;-1:-1:-1;;;2287:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2326:9:0;2338:5;2342:1;2338;:5;:::i;12818:471::-;12877:7;12886;12895;12904;12913;12922;12943:23;12968:12;12982:13;12999:42;13011:7;13020:9;;13031;;12999:11;:42::i;:::-;12942:99;;;;;;13052:19;13075:10;:8;:10::i;:::-;13052:33;;13097:15;13114:23;13139:12;13155:46;13167:7;13176:4;13182:5;13189:11;13155;:46::i;:::-;13096:105;;-1:-1:-1;13096:105:0;-1:-1:-1;13096:105:0;-1:-1:-1;13252:15:0;;-1:-1:-1;13269:4:0;;-1:-1:-1;13275:5:0;;-1:-1:-1;;;;;12818:471:0;;;;;;;:::o;1445:136::-;1503:7;1530:43;1534:1;1537;1530:43;;;;;;;;;;;;;;;;;:3;:43::i;1258:179::-;1316:7;;1348:5;1352:1;1348;:5;:::i;:::-;1336:17;;1377:1;1372;:6;;1364:46;;;;-1:-1:-1;;;1364:46:0;;14502:2:1;1364:46:0;;;14484:21:1;14541:2;14521:18;;;14514:30;14580:29;14560:18;;;14553:57;14627:18;;1364:46:0;14300:351:1;12001:212:0;12054:19;12077:10;:8;:10::i;:::-;12054:33;-1:-1:-1;12098:13:0;12114:22;:5;12054:33;12114:9;:22::i;:::-;12188:4;12172:22;;;;:7;:22;;;;;;12098:38;;-1:-1:-1;12172:33:0;;12098:38;12172:26;:33::i;:::-;12163:4;12147:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12001:212:0:o;12221:147::-;12299:7;;:17;;12311:4;12299:11;:17::i;:::-;12289:7;:27;12340:10;;:20;;12355:4;12340:14;:20::i;:::-;12327:10;:33;-1:-1:-1;;12221:147:0:o;13297:351::-;13390:7;;;;13443:28;13467:3;13443:19;:7;13455:6;13443:11;:19::i;:::-;:23;;:28::i;:::-;13428:43;-1:-1:-1;13482:13:0;13498:29;13523:3;13498:20;:7;13510;13498:11;:20::i;:29::-;13482:45;-1:-1:-1;13538:23:0;13564:28;13482:45;13564:17;:7;13576:4;13564:11;:17::i;:::-;:21;;:28::i;:::-;13538:54;13628:4;;-1:-1:-1;13634:5:0;;-1:-1:-1;13297:351:0;;-1:-1:-1;;;;;13297:351:0:o;13656:409::-;13766:7;;;;13822:24;:7;13834:11;13822;:24::i;:::-;13804:42;-1:-1:-1;13857:12:0;13872:21;:4;13881:11;13872:8;:21::i;:::-;13857:36;-1:-1:-1;13904:13:0;13920:22;:5;13930:11;13920:9;:22::i;:::-;13904:38;-1:-1:-1;13953:23:0;13979:28;13904:38;13979:17;:7;13991:4;13979:11;:17::i;:28::-;14026:7;;;;-1:-1:-1;14052:4:0;;-1:-1:-1;13656:409:0;;-1:-1:-1;;;;;;;13656:409:0:o;1787:246::-;1845:7;1869:1;1874;1869:6;1865:47;;-1:-1:-1;1899:1:0;1892:8;;1865:47;1922:9;1934:5;1938:1;1934;:5;:::i;:::-;1922:17;-1:-1:-1;1967:1:0;1958:5;1962:1;1922:17;1958:5;:::i;:::-;:10;1950:56;;;;-1:-1:-1;;;1950:56:0;;14858:2:1;1950:56:0;;;14840:21:1;14897:2;14877:18;;;14870:30;14936:34;14916:18;;;14909:62;-1:-1:-1;;;14987:18:1;;;14980:31;15028:19;;1950:56:0;14656:397:1;14:548;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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:118::-;3530:5;3523:13;3516:21;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3567:241;3623:6;3676:2;3664:9;3655:7;3651:23;3647:32;3644:52;;;3692:1;3689;3682:12;3644:52;3731:9;3718:23;3750:28;3772:5;3750:28;:::i;3813:247::-;3872:6;3925:2;3913:9;3904:7;3900:23;3896:32;3893:52;;;3941:1;3938;3931:12;3893:52;3980:9;3967:23;3999:31;4024:5;3999:31;:::i;4273:388::-;4341:6;4349;4402:2;4390:9;4381:7;4377:23;4373:32;4370:52;;;4418:1;4415;4408:12;4370:52;4457:9;4444:23;4476:31;4501:5;4476:31;:::i;:::-;4526:5;-1:-1:-1;4583:2:1;4568:18;;4555:32;4596:33;4555:32;4596:33;:::i;:::-;4648:7;4638:17;;;4273:388;;;;;:::o;4666:180::-;4725:6;4778:2;4766:9;4757:7;4753:23;4749:32;4746:52;;;4794:1;4791;4784:12;4746:52;-1:-1:-1;4817:23:1;;4666:180;-1:-1:-1;4666:180:1:o;4851:127::-;4912:10;4907:3;4903:20;4900:1;4893:31;4943:4;4940:1;4933:15;4967:4;4964:1;4957:15;4983:422;5072:1;5115:5;5072:1;5129:270;5150:7;5140:8;5137:21;5129:270;;;5209:4;5205:1;5201:6;5197:17;5191:4;5188:27;5185:53;;;5218:18;;:::i;:::-;5268:7;5258:8;5254:22;5251:55;;;5288:16;;;;5251:55;5367:22;;;;5327:15;;;;5129:270;;;5133:3;4983:422;;;;;:::o;5410:806::-;5459:5;5489:8;5479:80;;-1:-1:-1;5530:1:1;5544:5;;5479:80;5578:4;5568:76;;-1:-1:-1;5615:1:1;5629:5;;5568:76;5660:4;5678:1;5673:59;;;;5746:1;5741:130;;;;5653:218;;5673:59;5703:1;5694:10;;5717:5;;;5741:130;5778:3;5768:8;5765:17;5762:43;;;5785:18;;:::i;:::-;-1:-1:-1;;5841:1:1;5827:16;;5856:5;;5653:218;;5955:2;5945:8;5942:16;5936:3;5930:4;5927:13;5923:36;5917:2;5907:8;5904:16;5899:2;5893:4;5890:12;5886:35;5883:77;5880:159;;;-1:-1:-1;5992:19:1;;;6024:5;;5880:159;6071:34;6096:8;6090:4;6071:34;:::i;:::-;6141:6;6137:1;6133:6;6129:19;6120:7;6117:32;6114:58;;;6152:18;;:::i;:::-;6190:20;;5410:806;-1:-1:-1;;;5410:806:1:o;6221:140::-;6279:5;6308:47;6349:4;6339:8;6335:19;6329:4;6308:47;:::i;6366:168::-;6406:7;6472:1;6468;6464:6;6460:14;6457:1;6454:21;6449:1;6442:9;6435:17;6431:45;6428:71;;;6479:18;;:::i;:::-;-1:-1:-1;6519:9:1;;6366:168::o;6539:356::-;6741:2;6723:21;;;6760:18;;;6753:30;6819:34;6814:2;6799:18;;6792:62;6886:2;6871:18;;6539:356::o;6900:127::-;6961:10;6956:3;6952:20;6949:1;6942:31;6992:4;6989:1;6982:15;7016:4;7013:1;7006:15;7032:135;7071:3;7092:17;;;7089:43;;7112:18;;:::i;:::-;-1:-1:-1;7159:1:1;7148:13;;7032:135::o;7524:251::-;7594:6;7647:2;7635:9;7626:7;7622:23;7618:32;7615:52;;;7663:1;7660;7653:12;7615:52;7695:9;7689:16;7714:31;7739:5;7714:31;:::i;8701:306::-;8789:6;8797;8805;8858:2;8846:9;8837:7;8833:23;8829:32;8826:52;;;8874:1;8871;8864:12;8826:52;8903:9;8897:16;8887:26;;8953:2;8942:9;8938:18;8932:25;8922:35;;8997:2;8986:9;8982:18;8976:25;8966:35;;8701:306;;;;;:::o;9291:245::-;9358:6;9411:2;9399:9;9390:7;9386:23;9382:32;9379:52;;;9427:1;9424;9417:12;9379:52;9459:9;9453:16;9478:28;9500:5;9478:28;:::i;11923:125::-;11988:9;;;12009:10;;;12006:36;;;12022:18;;:::i;12408:136::-;12447:3;12475:5;12465:39;;12484:18;;:::i;:::-;-1:-1:-1;;;12520:18:1;;12408:136::o;12549:128::-;12616:9;;;12637:11;;;12634:37;;;12651:18;;:::i;13093:980::-;13355:4;13403:3;13392:9;13388:19;13434:6;13423:9;13416:25;13460:2;13498:6;13493:2;13482:9;13478:18;13471:34;13541:3;13536:2;13525:9;13521:18;13514:31;13565:6;13600;13594:13;13631:6;13623;13616:22;13669:3;13658:9;13654:19;13647:26;;13708:2;13700:6;13696:15;13682:29;;13729:1;13739:195;13753:6;13750:1;13747:13;13739:195;;;13818:13;;-1:-1:-1;;;;;13814:39:1;13802:52;;13909:15;;;;13874:12;;;;13850:1;13768:9;13739:195;;;-1:-1:-1;;;;;;;13990:32:1;;;;13985:2;13970:18;;13963:60;-1:-1:-1;;;14054:3:1;14039:19;14032:35;13951:3;13093:980;-1:-1:-1;;;13093:980:1:o;14078:217::-;14118:1;14144;14134:132;;14188:10;14183:3;14179:20;14176:1;14169:31;14223:4;14220:1;14213:15;14251:4;14248:1;14241:15;14134:132;-1:-1:-1;14280:9:1;;14078:217::o

Swarm Source

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