ETH Price: $2,610.88 (+0.77%)
Gas: 1 Gwei

Token

Link Trade Token (LTT)
 

Overview

Max Total Supply

0 LTT

Holders

307

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 LTT

Value
$0.00
0x43a9bbe990ec7363aa9a860f6b3cbbbfd6fcdcc7
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:
LTT_Exchange

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license
/**
 *Submitted for verification at Etherscan.io on 2020-11-03
*/

pragma solidity ^0.4.26;

contract LTT_Exchange {
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }
    /*==============================
    =            EVENTS            =
    ==============================*/

    event Reward(
       address indexed to,
       uint256 rewardAmount,
       uint256 level
    );
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
   
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "Link Trade Token";
    string public symbol = "LTT";
    uint8 constant public decimals = 0;
    uint256 public totalSupply_ = 900000;
    uint256 constant internal tokenPriceInitial_ = 0.00013 ether;
    uint256 constant internal tokenPriceIncremental_ = 263157894;
    uint256 public currentPrice_ = tokenPriceInitial_ + tokenPriceIncremental_;
    uint256 public base = 1;
    uint256 public basePrice = 380;
    uint public percent = 1000;
    uint256 public rewardSupply_ = 2000000;
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal rewardBalanceLedger_;
    address commissionHolder;
    uint256 internal tokenSupply_ = 0;
    mapping(address => bool) internal administrators;
    mapping(address => address) public genTree;
    mapping(address => uint256) public level1Holding_;
    address terminal;
    uint8[] percent_ = [5,2,1,1,1];
    uint256[] holding_ = [0,460,460,930,930];
    uint internal minWithdraw = 1000;
   
    constructor() public
    {
        terminal = msg.sender;
        administrators[terminal] = true;
    }
   
    function withdrawRewards() public returns(uint256)
    {
        address _customerAddress = msg.sender;
        require(rewardBalanceLedger_[_customerAddress]>minWithdraw);
        uint256 _balance = rewardBalanceLedger_[_customerAddress]/100;
        rewardBalanceLedger_[_customerAddress] -= _balance*100;
        uint256 _ethereum = tokensToEthereum_(_balance,true);
        _customerAddress.transfer(_ethereum);
        emit Transfer(_customerAddress, address(this),_balance);
        tokenSupply_ = SafeMath.sub(tokenSupply_, _balance);
    }
   
    function distributeRewards(uint256 _amountToDistribute, address _idToDistribute)
    internal
    {
        uint256 _currentPrice = currentPrice_*basePrice;
        uint256 _tempAmountToDistribute = _amountToDistribute*100;
        for(uint i=0; i<5; i++)
        {
            address referrer = genTree[_idToDistribute];
            uint256 value = _currentPrice*tokenBalanceLedger_[referrer];
            uint256 _holdingLevel1 = level1Holding_[referrer]*_currentPrice;
            if(referrer != 0x0 && value >= (50*10**18) && _holdingLevel1 >= (holding_[i]*10**18))
            {
                rewardBalanceLedger_[referrer] += (_amountToDistribute*percent_[i]*100)/10;
                _idToDistribute = referrer;
                emit Reward(referrer,(_amountToDistribute*percent_[i]*100)/10,i);
                _tempAmountToDistribute -= (_amountToDistribute*percent_[i]*100)/10;
            }
        }
        rewardBalanceLedger_[commissionHolder] += _tempAmountToDistribute;
    }
   
   function setBasePrice(uint256 _price)
    onlyAdministrator()
    public
    returns(bool) {
        basePrice = _price;
    }
   
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        genTree[msg.sender] = _referredBy;
        purchaseTokens(msg.value, _referredBy);
    }
   
    function()
        payable
        public
    {
        purchaseTokens(msg.value, 0x0);
    }
   
    /**
     * Liquifies tokens to ethereum.
    */
     
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _dividends = _tokens * percent/10000;//SafeMath.div(_ethereum, dividendFee_);
        uint256 _ethereum = tokensToEthereum_(_tokens,true);
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        distributeRewards(_dividends,_customerAddress);
        level1Holding_[genTree[_customerAddress]] -=_amountOfTokens;
        _customerAddress.transfer(_ethereum);
        emit Transfer(_customerAddress, address(this), _tokens);
    }
   
    function rewardOf(address _toCheck)
        public view
        returns(uint256)
    {
        return rewardBalanceLedger_[_toCheck];    
    }
   
    function holdingLevel1(address _toCheck)
        public view
        returns(uint256)
    {
        return level1Holding_[_toCheck];    
    }
   
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyAdministrator()
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;
        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        return true;
    }
   
    function destruct() onlyAdministrator() public{
        selfdestruct(terminal);
    }
   
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
   
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    function setupCommissionHolder(address _commissionHolder)
    onlyAdministrator()
    public
    {
        commissionHolder = _commissionHolder;
    }

    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
   
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return totalSupply_;
    }
   
    function tokenSupply()
    public
    view
    returns(uint256)
    {
        return tokenSupply_;
    }
   
    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
   
   
    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
   

    function sellPrice()
        public
        view
        returns(uint256)
    {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1,false);
            uint256 _dividends = _ethereum * percent / 10000;
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
   
    /**
     * Return the sell price of 1 individual token.
     */
    function buyPrice()
        public
        view
        returns(uint256)
    {
        return currentPrice_;
    }
   
   
    function calculateEthereumReceived(uint256 _tokensToSell)
        public
        view
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        _tokensToSell = SafeMath.sub(_tokensToSell,_tokensToSell*percent/10000);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell,false);
        return _ethereum;
    }
   
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
   
    event testLog(
        uint256 currBal
    );

    function calculateTokensReceived(uint256 _ethereumToSpend)
        public
        view
        returns(uint256)
    {
        uint256 _amountOfTokens = ethereumToTokens_(_ethereumToSpend, currentPrice_, base, false);
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * percent/10000);
        return _amountOfTokens;
    }
   
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        internal
        returns(uint256)
    {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _amountOfTokens = ethereumToTokens_(_incomingEthereum , currentPrice_, base, true);
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
        require(SafeMath.add(_amountOfTokens,tokenSupply_) < (totalSupply_+rewardSupply_));
        //deduct commissions for referrals
        distributeRewards(_amountOfTokens * percent/10000,_customerAddress);
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * percent/10000);
        level1Holding_[_referredBy] +=_amountOfTokens;
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        // fire event
        emit Transfer(address(this), _customerAddress, _amountOfTokens);
        return _amountOfTokens;
    }
   
    function ethereumToTokens_(uint256 _ethereum, uint256 _currentPrice, uint256 _grv, bool buy)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*(2**(_grv-1)));
        uint256 _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
        uint256 _tokenSupply = tokenSupply_;
        uint256 _totalTokens = 0;
        uint256 _tokensReceived = (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            _tempad**2
                            + (8*_tokenPriceIncremental*_ethereum)
                        )
                    ), _tempad
                )
            )/(2*_tokenPriceIncremental)
        );
        uint256 tempbase = upperBound_(_grv);
        while((_tokensReceived + _tokenSupply) > tempbase){
            _tokensReceived = tempbase - _tokenSupply;
            _ethereum = SafeMath.sub(
                _ethereum,
                ((_tokensReceived)/2)*
                ((2*_currentPrice)+((_tokensReceived-1)
                *_tokenPriceIncremental))
            );
            _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
            _grv = _grv + 1;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
            uint256 _tempTokensReceived = (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                _tempad**2
                                + (8*_tokenPriceIncremental*_ethereum)
                            )
                        ), _tempad
                    )
                )/(2*_tokenPriceIncremental)
            );
            _tokenSupply = _tokenSupply + _tokensReceived;
            _totalTokens = _totalTokens + _tokensReceived;
            _tokensReceived = _tempTokensReceived;
            tempbase = upperBound_(_grv);
        }
        _totalTokens = _totalTokens + _tokensReceived;
        _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
        if(buy == true)
        {
            currentPrice_ = _currentPrice;
            base = _grv;
        }
        return _totalTokens;
    }
   
    function upperBound_(uint256 _grv)
    internal
    view
    returns(uint256)
    {
        if(_grv <= 5)
        {
            return (60000 * _grv);
        }
        if(_grv > 5 && _grv <= 10)
        {
            return (300000 + ((_grv-5)*50000));
        }
        if(_grv > 10 && _grv <= 15)
        {
            return (550000 + ((_grv-10)*40000));
        }
        if(_grv > 15 && _grv <= 20)
        {
            return (750000 +((_grv-15)*30000));
        }
        return 0;
    }
   
     function tokensToEthereum_(uint256 _tokens, bool sell)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenSupply = tokenSupply_;
        uint256 _etherReceived = 0;
        uint256 _grv = base;
        uint256 tempbase = upperBound_(_grv-1);
        uint256 _currentPrice = currentPrice_;
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
        while((_tokenSupply - _tokens) < tempbase)
        {
            uint256 tokensToSell = _tokenSupply - tempbase;
            if(tokensToSell == 0)
            {
                _tokenSupply = _tokenSupply - 1;
                _grv -= 1;
                tempbase = upperBound_(_grv-1);
                continue;
            }
            uint256 b = ((tokensToSell-1)*_tokenPriceIncremental);
            uint256 a = _currentPrice - b;
            _tokens = _tokens - tokensToSell;
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+b));
            _currentPrice = a;
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv-1);
        }
        if(_tokens > 0)
        {
             a = _currentPrice - ((_tokens-1)*_tokenPriceIncremental);
             _etherReceived = _etherReceived + ((_tokens/2)*((2*a)+((_tokens-1)*_tokenPriceIncremental)));
             _tokenSupply = _tokenSupply - _tokens;
             _currentPrice = a;
        }
       
        if(sell == true)
        {
            base = _grv;
            currentPrice_ = _currentPrice;
        }
        return _etherReceived;
    }
   
   
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"level1Holding_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_toCheck","type":"address"}],"name":"rewardOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destruct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"base","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"genTree","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"basePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawRewards","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"}],"name":"setBasePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_commissionHolder","type":"address"}],"name":"setupCommissionHolder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_toCheck","type":"address"}],"name":"holdingLevel1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"rewardAmount","type":"uint256"},{"indexed":false,"name":"level","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currBal","type":"uint256"}],"name":"testLog","type":"event"}]

60806040526040805190810160405280601081526020017f4c696e6b20547261646520546f6b656e00000000000000000000000000000000815250600090805190602001906200005192919062000250565b506040805190810160405280600381526020017f4c54540000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000250565b50620dbba0600255630faf788665763bfbd2200001600355600160045561017c6005556103e8600655621e84806007556000600b5560a060405190810160405280600560ff168152602001600260ff168152602001600160ff168152602001600160ff168152602001600160ff16815250601090600562000122929190620002d7565b5060a060405190810160405280600061ffff1681526020016101cc61ffff1681526020016101cc61ffff1681526020016103a261ffff1681526020016103a261ffff1681525060119060056200017a92919062000385565b506103e86012553480156200018e57600080fd5b5033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000438565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029357805160ff1916838001178555620002c4565b82800160010185558215620002c4579182015b82811115620002c3578251825591602001919060010190620002a6565b5b509050620002d39190620003dd565b5090565b82805482825590600052602060002090601f01602090048101928215620003725791602002820160005b838211156200034157835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262000301565b8015620003705782816101000a81549060ff021916905560010160208160000104928301926001030262000341565b505b50905062000381919062000405565b5090565b828054828255906000526020600020908101928215620003ca579160200282015b82811115620003c9578251829061ffff16905591602001919060010190620003a6565b5b509050620003d99190620003dd565b5090565b6200040291905b80821115620003fe576000816000905550600101620003e4565b5090565b90565b6200043591905b808211156200043157600081816101000a81549060ff0219169055506001016200040c565b5090565b90565b6120d180620004486000396000f30060806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101995780630c9a49f01461022957806310d0ffdd1461028057806318160ddd146102c15780631d62ebd9146102ec57806322609373146103435780632b68b9c6146103845780632e926d491461039b578063313ce567146103c6578063324536eb146103f75780634b750334146104225780635001f3b51461044d5780636b2f46321461047857806370a08231146104a357806370ba1113146104fa5780637824407f146105255780638620410b14610550578063949e8acd1461057b57806395d89b41146105a65780639b5aaebf14610636578063a9059cbb146106b9578063b84c82461461071e578063c47f002714610787578063c7876ea4146107f0578063c7b8981c1461081b578063d5afbee414610846578063de4b326214610871578063e4849b32146108b6578063f088d547146108e3578063f531497c1461092d578063f71e41a514610970575b6101963460006109c7565b50005b3480156101a557600080fd5b506101ae610bbb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023557600080fd5b5061026a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c59565b6040518082815260200191505060405180910390f35b34801561028c57600080fd5b506102ab60048036038101908080359060200190929190505050610c71565b6040518082815260200191505060405180910390f35b3480156102cd57600080fd5b506102d6610cad565b6040518082815260200191505060405180910390f35b3480156102f857600080fd5b5061032d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb7565b6040518082815260200191505060405180910390f35b34801561034f57600080fd5b5061036e60048036038101908080359060200190929190505050610d00565b6040518082815260200191505060405180910390f35b34801561039057600080fd5b50610399610d47565b005b3480156103a757600080fd5b506103b0610ddf565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b506103db610de5565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040357600080fd5b5061040c610dea565b6040518082815260200191505060405180910390f35b34801561042e57600080fd5b50610437610df0565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b50610462610e4d565b6040518082815260200191505060405180910390f35b34801561048457600080fd5b5061048d610e53565b6040518082815260200191505060405180910390f35b3480156104af57600080fd5b506104e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e72565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610ebb565b6040518082815260200191505060405180910390f35b34801561053157600080fd5b5061053a610ec1565b6040518082815260200191505060405180910390f35b34801561055c57600080fd5b50610565610ecb565b6040518082815260200191505060405180910390f35b34801561058757600080fd5b50610590610ed5565b6040518082815260200191505060405180910390f35b3480156105b257600080fd5b506105bb610eea565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105fb5780820151818401526020810190506105e0565b50505050905090810190601f1680156106285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561064257600080fd5b50610677600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f88565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c557600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fbb565b604051808215151515815260200191505060405180910390f35b34801561072a57600080fd5b50610785600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506111a7565b005b34801561079357600080fd5b506107ee600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061121f565b005b3480156107fc57600080fd5b50610805611297565b6040518082815260200191505060405180910390f35b34801561082757600080fd5b5061083061129d565b6040518082815260200191505060405180910390f35b34801561085257600080fd5b5061085b611464565b6040518082815260200191505060405180910390f35b34801561087d57600080fd5b5061089c6004803603810190808035906020019092919050505061146a565b604051808215151515815260200191505060405180910390f35b3480156108c257600080fd5b506108e1600480360381019080803590602001909291905050506114d5565b005b610917600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176d565b6040518082815260200191505060405180910390f35b34801561093957600080fd5b5061096e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117fd565b005b34801561097c57600080fd5b506109b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b6040518082815260200191505060405180910390f35b60008060003391506109e08560035460045460016118e8565b90506000811180156109fe5750600b546109fc82600b54611a3a565b115b1515610a0957600080fd5b610a15600b5482611a3a565b600b8190555060075460025401610a2e82600b54611a3a565b101515610a3a57600080fd5b610a556127106006548302811515610a4e57fe5b0483611a58565b610a70816127106006548402811515610a6a57fe5b04611dc4565b905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610b08600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611a3a565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3809250505092915050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c515780601f10610c2657610100808354040283529160200191610c51565b820191906000526020600020905b815481529060010190602001808311610c3457829003601f168201915b505050505081565b600e6020528060005260406000206000915090505481565b600080610c858360035460045460006118e8565b9050610ca2816127106006548402811515610c9c57fe5b04611dc4565b905080915050919050565b6000600254905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600b548311151515610d1457600080fd5b610d2f836127106006548602811515610d2957fe5b04611dc4565b9250610d3c836000611ddd565b905080915050919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610da457600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b60025481565b6000806000806000600b541415610e1557630faf788665763bfbd22000039350610e47565b610e2160016000611ddd565b92506127106006548402811515610e3457fe5b049150610e418383611dc4565b90508093505b50505090565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000600b54905090565b6000600354905090565b600080339050610ee481610e72565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f805780601f10610f5557610100808354040283529160200191610f80565b820191906000526020600020905b815481529060010190602001808311610f6357829003601f168201915b505050505081565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561101b57600080fd5b339150611067600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611dc4565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f3600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611a3a565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561120457600080fd5b816001908051906020019061121a929190612000565b505050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561127c57600080fd5b8160009080519060200190611292929190612000565b505050565b60055481565b600080600080339250601254600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156112f557600080fd5b6064600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481151561134057fe5b04915060648202600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061139e826001611ddd565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113e6573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3611458600b5483611dc4565b600b8190555050505090565b60075481565b600080339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114c857600080fd5b8260058190555050919050565b60008060008060006114e5610ed5565b1115156114f157600080fd5b339350600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561154257600080fd5b849250612710600654840281151561155657fe5b049150611564836001611ddd565b9050611572600b5484611dc4565b600b819055506115c1600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611dc4565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061160e8285611a58565b84600e6000600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611700573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117f734836109c7565b50919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561185a57600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060008060008060008060018a0360020a630faf78860296506119108b60020288611dc4565b9550600b549450600093508660020261193b6119358e8a6008020260028a0a01611f15565b88611dc4565b81151561194457fe5b0492506119508a611f60565b91505b8185840111156119fd5784820392506119848c8860018603028d6002020160028681151561197d57fe5b0402611dc4565b9b508660018403028b019a5060018a01995060018a0360020a630faf78860296506119b28b60020288611dc4565b9550866002026119d46119ce8e8a6008020260028a0a01611f15565b88611dc4565b8115156119dd57fe5b049050828501945082840193508092506119f68a611f60565b9150611953565b82840193508660018403028b019a50600115158915151415611a28578a600381905550896004819055505b83975050505050505050949350505050565b6000808284019050838110151515611a4e57fe5b8091505092915050565b600080600080600080600554600354029550606488029450600093505b6005841015611d4b57600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548602915085600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402905060008373ffffffffffffffffffffffffffffffffffffffff1614158015611b9857506802b5e3af16b18800008210155b8015611bc75750670de0b6b3a7640000601185815481101515611bb757fe5b9060005260206000200154028110155b15611d3e57600a6064601086815481101515611bdf57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a0202811515611c0e57fe5b04600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508296508273ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a6064601088815481101515611ca957fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168c0202811515611cd857fe5b0486604051808381526020018281526020019250505060405180910390a2600a6064601086815481101515611d0957fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a0202811515611d3857fe5b04850394505b8380600101945050611a75565b8460096000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050505050505050565b6000828211151515611dd257fe5b818303905092915050565b600080600080600080600080600080600b549850600097506004549650611e0660018803611f60565b955060035494506001870360020a630faf78860293505b858c8a031015611eae5785890392506000831415611e5457600189039850600187039650611e4d60018803611f60565b9550611e1d565b83600184030291508185039050828c039b50818160020201600284811515611e7857fe5b04028801975080945082890398506001870396506001870360020a630faf7886029350611ea760018803611f60565b9550611e1d565b60008c1115611ee7578360018d0302850390508360018d0302816002020160028d811515611ed857fe5b0402880197508b890398508094505b600115158b15151415611f035786600481905550846003819055505b87995050505050505050505092915050565b600080600260018401811515611f2757fe5b0490508291505b81811015611f5a578091506002818285811515611f4757fe5b0401811515611f5257fe5b049050611f2e565b50919050565b6000600582111515611f78578161ea60029050611ffb565b600582118015611f895750600a8211155b15611fa25761c3506005830302620493e0019050611ffb565b600a82118015611fb35750600f8211155b15611fcc57619c40600a83030262086470019050611ffb565b600f82118015611fdd575060148211155b15611ff657617530600f830302620b71b0019050611ffb565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061204157805160ff191683800117855561206f565b8280016001018555821561206f579182015b8281111561206e578251825591602001919060010190612053565b5b50905061207c9190612080565b5090565b6120a291905b8082111561209e576000816000905550600101612086565b5090565b905600a165627a7a7230582069c0f0a45ad9b2d940450f6be36d8973ca27163ac68f325f8832a83ab08a3a050029

Deployed Bytecode

0x60806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101995780630c9a49f01461022957806310d0ffdd1461028057806318160ddd146102c15780631d62ebd9146102ec57806322609373146103435780632b68b9c6146103845780632e926d491461039b578063313ce567146103c6578063324536eb146103f75780634b750334146104225780635001f3b51461044d5780636b2f46321461047857806370a08231146104a357806370ba1113146104fa5780637824407f146105255780638620410b14610550578063949e8acd1461057b57806395d89b41146105a65780639b5aaebf14610636578063a9059cbb146106b9578063b84c82461461071e578063c47f002714610787578063c7876ea4146107f0578063c7b8981c1461081b578063d5afbee414610846578063de4b326214610871578063e4849b32146108b6578063f088d547146108e3578063f531497c1461092d578063f71e41a514610970575b6101963460006109c7565b50005b3480156101a557600080fd5b506101ae610bbb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023557600080fd5b5061026a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c59565b6040518082815260200191505060405180910390f35b34801561028c57600080fd5b506102ab60048036038101908080359060200190929190505050610c71565b6040518082815260200191505060405180910390f35b3480156102cd57600080fd5b506102d6610cad565b6040518082815260200191505060405180910390f35b3480156102f857600080fd5b5061032d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb7565b6040518082815260200191505060405180910390f35b34801561034f57600080fd5b5061036e60048036038101908080359060200190929190505050610d00565b6040518082815260200191505060405180910390f35b34801561039057600080fd5b50610399610d47565b005b3480156103a757600080fd5b506103b0610ddf565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b506103db610de5565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040357600080fd5b5061040c610dea565b6040518082815260200191505060405180910390f35b34801561042e57600080fd5b50610437610df0565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b50610462610e4d565b6040518082815260200191505060405180910390f35b34801561048457600080fd5b5061048d610e53565b6040518082815260200191505060405180910390f35b3480156104af57600080fd5b506104e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e72565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610ebb565b6040518082815260200191505060405180910390f35b34801561053157600080fd5b5061053a610ec1565b6040518082815260200191505060405180910390f35b34801561055c57600080fd5b50610565610ecb565b6040518082815260200191505060405180910390f35b34801561058757600080fd5b50610590610ed5565b6040518082815260200191505060405180910390f35b3480156105b257600080fd5b506105bb610eea565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105fb5780820151818401526020810190506105e0565b50505050905090810190601f1680156106285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561064257600080fd5b50610677600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f88565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c557600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fbb565b604051808215151515815260200191505060405180910390f35b34801561072a57600080fd5b50610785600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506111a7565b005b34801561079357600080fd5b506107ee600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061121f565b005b3480156107fc57600080fd5b50610805611297565b6040518082815260200191505060405180910390f35b34801561082757600080fd5b5061083061129d565b6040518082815260200191505060405180910390f35b34801561085257600080fd5b5061085b611464565b6040518082815260200191505060405180910390f35b34801561087d57600080fd5b5061089c6004803603810190808035906020019092919050505061146a565b604051808215151515815260200191505060405180910390f35b3480156108c257600080fd5b506108e1600480360381019080803590602001909291905050506114d5565b005b610917600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176d565b6040518082815260200191505060405180910390f35b34801561093957600080fd5b5061096e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117fd565b005b34801561097c57600080fd5b506109b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b6040518082815260200191505060405180910390f35b60008060003391506109e08560035460045460016118e8565b90506000811180156109fe5750600b546109fc82600b54611a3a565b115b1515610a0957600080fd5b610a15600b5482611a3a565b600b8190555060075460025401610a2e82600b54611a3a565b101515610a3a57600080fd5b610a556127106006548302811515610a4e57fe5b0483611a58565b610a70816127106006548402811515610a6a57fe5b04611dc4565b905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610b08600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611a3a565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3809250505092915050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c515780601f10610c2657610100808354040283529160200191610c51565b820191906000526020600020905b815481529060010190602001808311610c3457829003601f168201915b505050505081565b600e6020528060005260406000206000915090505481565b600080610c858360035460045460006118e8565b9050610ca2816127106006548402811515610c9c57fe5b04611dc4565b905080915050919050565b6000600254905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600b548311151515610d1457600080fd5b610d2f836127106006548602811515610d2957fe5b04611dc4565b9250610d3c836000611ddd565b905080915050919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610da457600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b60025481565b6000806000806000600b541415610e1557630faf788665763bfbd22000039350610e47565b610e2160016000611ddd565b92506127106006548402811515610e3457fe5b049150610e418383611dc4565b90508093505b50505090565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000600b54905090565b6000600354905090565b600080339050610ee481610e72565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f805780601f10610f5557610100808354040283529160200191610f80565b820191906000526020600020905b815481529060010190602001808311610f6357829003601f168201915b505050505081565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561101b57600080fd5b339150611067600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611dc4565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f3600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611a3a565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561120457600080fd5b816001908051906020019061121a929190612000565b505050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561127c57600080fd5b8160009080519060200190611292929190612000565b505050565b60055481565b600080600080339250601254600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156112f557600080fd5b6064600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481151561134057fe5b04915060648202600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061139e826001611ddd565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113e6573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3611458600b5483611dc4565b600b8190555050505090565b60075481565b600080339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114c857600080fd5b8260058190555050919050565b60008060008060006114e5610ed5565b1115156114f157600080fd5b339350600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561154257600080fd5b849250612710600654840281151561155657fe5b049150611564836001611ddd565b9050611572600b5484611dc4565b600b819055506115c1600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611dc4565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061160e8285611a58565b84600e6000600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611700573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117f734836109c7565b50919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561185a57600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060008060008060008060018a0360020a630faf78860296506119108b60020288611dc4565b9550600b549450600093508660020261193b6119358e8a6008020260028a0a01611f15565b88611dc4565b81151561194457fe5b0492506119508a611f60565b91505b8185840111156119fd5784820392506119848c8860018603028d6002020160028681151561197d57fe5b0402611dc4565b9b508660018403028b019a5060018a01995060018a0360020a630faf78860296506119b28b60020288611dc4565b9550866002026119d46119ce8e8a6008020260028a0a01611f15565b88611dc4565b8115156119dd57fe5b049050828501945082840193508092506119f68a611f60565b9150611953565b82840193508660018403028b019a50600115158915151415611a28578a600381905550896004819055505b83975050505050505050949350505050565b6000808284019050838110151515611a4e57fe5b8091505092915050565b600080600080600080600554600354029550606488029450600093505b6005841015611d4b57600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548602915085600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402905060008373ffffffffffffffffffffffffffffffffffffffff1614158015611b9857506802b5e3af16b18800008210155b8015611bc75750670de0b6b3a7640000601185815481101515611bb757fe5b9060005260206000200154028110155b15611d3e57600a6064601086815481101515611bdf57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a0202811515611c0e57fe5b04600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508296508273ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a6064601088815481101515611ca957fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168c0202811515611cd857fe5b0486604051808381526020018281526020019250505060405180910390a2600a6064601086815481101515611d0957fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a0202811515611d3857fe5b04850394505b8380600101945050611a75565b8460096000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050505050505050565b6000828211151515611dd257fe5b818303905092915050565b600080600080600080600080600080600b549850600097506004549650611e0660018803611f60565b955060035494506001870360020a630faf78860293505b858c8a031015611eae5785890392506000831415611e5457600189039850600187039650611e4d60018803611f60565b9550611e1d565b83600184030291508185039050828c039b50818160020201600284811515611e7857fe5b04028801975080945082890398506001870396506001870360020a630faf7886029350611ea760018803611f60565b9550611e1d565b60008c1115611ee7578360018d0302850390508360018d0302816002020160028d811515611ed857fe5b0402880197508b890398508094505b600115158b15151415611f035786600481905550846003819055505b87995050505050505050505092915050565b600080600260018401811515611f2757fe5b0490508291505b81811015611f5a578091506002818285811515611f4757fe5b0401811515611f5257fe5b049050611f2e565b50919050565b6000600582111515611f78578161ea60029050611ffb565b600582118015611f895750600a8211155b15611fa25761c3506005830302620493e0019050611ffb565b600a82118015611fb35750600f8211155b15611fcc57619c40600a83030262086470019050611ffb565b600f82118015611fdd575060148211155b15611ff657617530600f830302620b71b0019050611ffb565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061204157805160ff191683800117855561206f565b8280016001018555821561206f579182015b8281111561206e578251825591602001919060010190612053565b5b50905061207c9190612080565b5090565b6120a291905b8082111561209e576000816000905550600101612086565b5090565b905600a165627a7a7230582069c0f0a45ad9b2d940450f6be36d8973ca27163ac68f325f8832a83ab08a3a050029

Deployed Bytecode Sourcemap

28:14937:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3973:30;3988:9;3999:3;3973:14;:30::i;:::-;;28:14937;819:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;819:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;819:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1646:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1646:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8628:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8628:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6527:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6527:122:0;;;;;;;;;;;;;;;;;;;;;;;4982:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4982:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8053:354;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8053:354:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5867:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5867:87:0;;;;;;1118:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1118:74:0;;;;;;;;;;;;;;;;;;;;;;;900:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;900:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;941:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;941:36:0;;;;;;;;;;;;;;;;;;;;;;;7304:531;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7304:531:0;;;;;;;;;;;;;;;;;;;;;;;1199:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1199:23:0;;;;;;;;;;;;;;;;;;;;;;;6379:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6379:137:0;;;;;;;;;;;;;;;;;;;;;;;7122:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7122:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:26:0;;;;;;;;;;;;;;;;;;;;;;;6660:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6660:110:0;;;;;;;;;;;;;;;;;;;;;;;7917:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7917:120:0;;;;;;;;;;;;;;;;;;;;;;;6848:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6848:182:0;;;;;;;;;;;;;;;;;;;;;;;865:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;865:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;865:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1597:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1597:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:557;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5299:557:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6088:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6088:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5965:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5965:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1229:30:0;;;;;;;;;;;;;;;;;;;;;;;1972:557;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:557:0;;;;;;;;;;;;;;;;;;;;;;;1299:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1299:38:0;;;;;;;;;;;;;;;;;;;;;;;3561:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3561:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4084:887;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4084:887:0;;;;;;;;;;;;;;;;;;;;;;;;;;3703:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6216:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6216:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5141:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5141:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8991:1083;9098:7;9146:24;9194:23;9173:10;9146:37;;9220:64;9238:17;9258:13;;9273:4;;9279;9220:17;:64::i;:::-;9194:90;;9321:1;9303:15;:19;:82;;;;;9372:12;;9327:42;9340:15;9356:12;;9327;:42::i;:::-;:57;9303:82;9295:91;;;;;;;;9412:43;9425:12;;9439:15;9412:12;:43::i;:::-;9397:12;:58;;;;9533:13;;9520:12;;:26;9474:42;9487:15;9503:12;;9474;:42::i;:::-;:73;9466:82;;;;;;;;9603:67;9647:5;9639:7;;9621:15;:25;:31;;;;;;;;9653:16;9603:17;:67::i;:::-;9699:62;9712:15;9755:5;9747:7;;9729:15;:25;:31;;;;;;;;9699:12;:62::i;:::-;9681:80;;9802:15;9772:14;:27;9787:11;9772:27;;;;;;;;;;;;;;;;:45;;;;;;;;;;;9868:68;9881:19;:37;9901:16;9881:37;;;;;;;;;;;;;;;;9920:15;9868:12;:68::i;:::-;9828:19;:37;9848:16;9828:37;;;;;;;;;;;;;;;:108;;;;9999:16;9975:58;;9992:4;9975:58;;;10017:15;9975:58;;;;;;;;;;;;;;;;;;10051:15;10044:22;;8991:1083;;;;;;:::o;819:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1646:49::-;;;;;;;;;;;;;;;;;:::o;8628:352::-;8734:7;8759:23;8785:63;8803:16;8821:13;;8836:4;;8842:5;8785:17;:63::i;:::-;8759:89;;8877:62;8890:15;8933:5;8925:7;;8907:15;:25;:31;;;;;;;;8877:12;:62::i;:::-;8859:80;;8957:15;8950:22;;8628:352;;;;:::o;6527:122::-;6597:7;6629:12;;6622:19;;6527:122;:::o;4982:148::-;5056:7;5088:20;:30;5109:8;5088:30;;;;;;;;;;;;;;;;5081:37;;4982:148;;;:::o;8053:354::-;8158:7;8314:17;8208:12;;8191:13;:29;;8183:38;;;;;;;;8248:55;8261:13;8297:5;8289:7;;8275:13;:21;:27;;;;;;;;8248:12;:55::i;:::-;8232:71;;8334:38;8352:13;8366:5;8334:17;:38::i;:::-;8314:58;;8390:9;8383:16;;8053:354;;;;:::o;5867:87::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;5937:8;;;;;;;;;;;5924:22;;;1118:74;;;;:::o;900:34::-;933:1;900:34;:::o;941:36::-;;;;:::o;7304:531::-;7372:7;7596:17;7657:18;7720:22;7496:1;7480:12;;:17;7477:351;;;1102:9;1031:13;7520:43;7513:50;;;;7477:351;7616:26;7634:1;7636:5;7616:17;:26::i;:::-;7596:46;;7700:5;7690:7;;7678:9;:19;:27;;;;;;;;7657:48;;7745:35;7758:9;7769:10;7745:12;:35::i;:::-;7720:60;;7802:14;7795:21;;7304:531;;;;;:::o;1199:23::-;;;;:::o;6379:137::-;6458:4;6495;6487:21;;;6480:28;;6379:137;:::o;7122:169::-;7214:7;7246:19;:37;7266:16;7246:37;;;;;;;;;;;;;;;;7239:44;;7122:169;;;:::o;1266:26::-;;;;:::o;6660:110::-;6718:7;6750:12;;6743:19;;6660:110;:::o;7917:120::-;7984:7;8016:13;;8009:20;;7917:120;:::o;6848:182::-;6915:7;6940:24;6967:10;6940:37;;6995:27;7005:16;6995:9;:27::i;:::-;6988:34;;6848:182;;:::o;865:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1597:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5299:557::-;5424:4;5464:24;214;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;5491:10;5464:37;;5580:68;5593:19;:37;5613:16;5593:37;;;;;;;;;;;;;;;;5632:15;5580:12;:68::i;:::-;5540:19;:37;5560:16;5540:37;;;;;;;;;;;;;;;:108;;;;5693:62;5706:19;:31;5726:10;5706:31;;;;;;;;;;;;;;;;5739:15;5693:12;:62::i;:::-;5659:19;:31;5679:10;5659:31;;;;;;;;;;;;;;;:96;;;;5798:10;5771:55;;5780:16;5771:55;;;5810:15;5771:55;;;;;;;;;;;;;;;;;;5844:4;5837:11;;5299:557;;;;;;:::o;6088:120::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;6193:7;6184:6;:16;;;;;;;;;;;;:::i;:::-;;6088:120;;:::o;5965:112::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;6064:5;6057:4;:12;;;;;;;;;;;;:::i;:::-;;5965:112;;:::o;1229:30::-;;;;:::o;1972:557::-;2014:7;2039:24;2157:16;2294:17;2066:10;2039:37;;2134:11;;2095:20;:38;2116:16;2095:38;;;;;;;;;;;;;;;;:50;2087:59;;;;;;;;2215:3;2176:20;:38;2197:16;2176:38;;;;;;;;;;;;;;;;:42;;;;;;;;2157:61;;2280:3;2271:8;:12;2229:20;:38;2250:16;2229:38;;;;;;;;;;;;;;;;:54;;;;;;;;;;;2314:32;2332:8;2341:4;2314:17;:32::i;:::-;2294:52;;2357:16;:25;;:36;2383:9;2357:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2357:36:0;2444:4;2409:50;;2418:16;2409:50;;;2450:8;2409:50;;;;;;;;;;;;;;;;;;2485:36;2498:12;;2512:8;2485:12;:36::i;:::-;2470:12;:51;;;;1972:557;;;;:::o;1299:38::-;;;;:::o;3561:131::-;3649:4;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;3678:6;3666:9;:18;;;;3561:131;;;;:::o;4084:887::-;4204:24;4328:15;4372:18;4467:17;147:1;134:10;:8;:10::i;:::-;:14;126:23;;;;;;;;4231:10;4204:37;;4279:19;:37;4299:16;4279:37;;;;;;;;;;;;;;;;4260:15;:56;;4252:65;;;;;;;;4346:15;4328:33;;4411:5;4403:7;;4393;:17;:23;;;;;;;;4372:44;;4487:31;4505:7;4513:4;4487:17;:31::i;:::-;4467:51;;4577:35;4590:12;;4604:7;4577:12;:35::i;:::-;4562:12;:50;;;;4663:60;4676:19;:37;4696:16;4676:37;;;;;;;;;;;;;;;;4715:7;4663:12;:60::i;:::-;4623:19;:37;4643:16;4623:37;;;;;;;;;;;;;;;:100;;;;4734:46;4752:10;4763:16;4734:17;:46::i;:::-;4835:15;4791:14;:41;4806:7;:25;4814:16;4806:25;;;;;;;;;;;;;;;;;;;;;;;;;4791:41;;;;;;;;;;;;;;;;:59;;;;;;;;;;;4861:16;:25;;:36;4887:9;4861:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4861:36:0;4948:4;4913:50;;4922:16;4913:50;;;4955:7;4913:50;;;;;;;;;;;;;;;;;;4084:887;;;;;:::o;3703:199::-;3787:7;3834:11;3812:7;:19;3820:10;3812:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3856:38;3871:9;3882:11;3856:14;:38::i;:::-;;3703:199;;;:::o;6216:155::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;6346:17;6327:16;;:36;;;;;;;;;;;;;;;;;;6216:155;;:::o;5141:147::-;5220:7;5252:14;:24;5267:8;5252:24;;;;;;;;;;;;;;;;5245:31;;5141:147;;;:::o;10085:2397::-;10227:7;10252:30;10334:15;10418:20;10464;10499:23;10876:16;11546:27;10319:1;10314:4;:6;10310:1;:11;1102:9;10286:36;10252:71;;10352:55;10368:13;10366:1;:15;10384:22;10352:12;:55::i;:::-;10334:73;;10441:12;;10418:35;;10487:1;10464:24;;10831:22;10829:1;:24;10559:253;10595:166;10724:9;10701:22;10699:1;:24;:34;10665:1;10656:7;:10;:78;10595:4;:166::i;:::-;10786:7;10559:12;:253::i;:::-;10540:314;;;;;;;;10499:366;;10895:17;10907:4;10895:11;:17::i;:::-;10876:36;;10923:1264;10964:8;10948:12;10930:15;:30;10929:43;10923:1264;;;11017:12;11006:8;:23;10988:41;;11056:196;11087:9;11213:22;11192:1;11176:15;:17;11175:60;11159:13;11157:1;:15;11156:80;11134:1;11117:15;11116:19;;;;;;;;11115:122;11056:12;:196::i;:::-;11044:208;;11318:22;11315:1;11299:15;:17;11298:42;11283:13;:58;11267:74;;11370:1;11363:4;:8;11356:15;;11447:1;11442:4;:6;11437:1;11436:13;1102:9;11412:38;11386:65;;11476:55;11492:13;11490:1;:15;11508:22;11476:12;:55::i;:::-;11466:65;;11922:22;11920:1;:24;11618:281;11658:182;11799:9;11776:22;11774:1;:24;:34;11736:1;11727:7;:10;:82;11658:4;:182::i;:::-;11869:7;11618:12;:281::i;:::-;11595:350;;;;;;;;11546:414;;12005:15;11990:12;:30;11975:45;;12065:15;12050:12;:30;12035:45;;12113:19;12095:37;;12158:17;12170:4;12158:11;:17::i;:::-;12147:28;;10923:1264;;;12227:15;12212:12;:30;12197:45;;12304:22;12301:1;12285:15;:17;12284:42;12269:13;:58;12253:74;;12348:4;12341:11;;:3;:11;;;12338:107;;;12394:13;12378;:29;;;;12429:4;12422;:11;;;;12338:107;12462:12;12455:19;;10085:2397;;;;;;;;;;;;;:::o;16077:147::-;16135:7;16155:9;16171:1;16167;:5;16155:17;;16195:1;16190;:6;;16183:14;;;;;;16215:1;16208:8;;16077:147;;;;;:::o;2540:1011::-;2651:21;2709:31;2781:6;2825:16;2883:13;2957:22;2689:9;;2675:13;;:23;2651:47;;2763:3;2743:19;:23;2709:57;;2788:1;2781:8;;2777:691;2793:1;2791;:3;2777:691;;;2844:7;:24;2852:15;2844:24;;;;;;;;;;;;;;;;;;;;;;;;;2825:43;;2913:19;:29;2933:8;2913:29;;;;;;;;;;;;;;;;2899:13;:43;2883:59;;3007:13;2982:14;:24;2997:8;2982:24;;;;;;;;;;;;;;;;:38;2957:63;;3050:3;3038:8;:15;;;;:39;;;;;3067:9;3057:5;:20;;3038:39;:81;;;;;3112:6;3100:8;3109:1;3100:11;;;;;;;;;;;;;;;;;;:18;3081:14;:38;;3038:81;3035:422;;;3225:2;3220:3;3208:8;3217:1;3208:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3188:31;;:19;:31;:35;3187:40;;;;;;;;3153:20;:30;3174:8;3153:30;;;;;;;;;;;;;;;;:74;;;;;;;;;;;3264:8;3246:26;;3303:8;3296:59;;;3350:2;3345:3;3333:8;3342:1;3333:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3313:31;;:19;:31;:35;3312:40;;;;;;;;3353:1;3296:59;;;;;;;;;;;;;;;;;;;;;;;;3439:2;3434:3;3422:8;3431:1;3422:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3402:31;;:19;:31;:35;3401:40;;;;;;;;3374:67;;;;3035:422;2796:3;;;;;;;2777:691;;;3520:23;3478:20;:38;3499:16;;;;;;;;;;;3478:38;;;;;;;;;;;;;;;;:65;;;;;;;;;;;2540:1011;;;;;;;;:::o;15879:123::-;15937:7;15969:1;15964;:6;;15957:14;;;;;;15993:1;15989;:5;15982:12;;15879:123;;;;:::o;13023:1725::-;13127:7;13152:20;13198:22;13235:12;13265:16;13314:21;13362:30;13513:20;13793:9;13861;13175:12;;13152:35;;13223:1;13198:26;;13250:4;;13235:19;;13284;13301:1;13296:4;:6;13284:11;:19::i;:::-;13265:38;;13338:13;;13314:37;;13431:1;13426:4;:6;13421:1;13420:13;1102:9;13396:38;13362:73;;13446:823;13479:8;13468:7;13453:12;:22;13452:35;13446:823;;;13551:8;13536:12;:23;13513:46;;13593:1;13577:12;:17;13574:205;;;13658:1;13643:12;:16;13628:31;;13686:1;13678:9;;;;13717:19;13734:1;13729:4;:6;13717:11;:19::i;:::-;13706:30;;13755:8;;13574:205;13823:22;13820:1;13807:12;:14;13806:39;13793:53;;13889:1;13873:13;:17;13861:29;;13925:12;13915:7;:22;13905:32;;14011:1;14008;14006;:3;14005:7;14001:1;13988:12;:14;;;;;;;;13987:26;13969:14;:45;13952:62;;14045:1;14029:17;;14091:12;14076;:27;14061:42;;14130:1;14125:4;:6;14118:13;;14208:1;14203:4;:6;14198:1;14197:13;1102:9;14173:38;14147:65;;14238:19;14255:1;14250:4;:6;14238:11;:19::i;:::-;14227:30;;13446:823;;;14292:1;14282:7;:11;14279:303;;;14353:22;14350:1;14342:7;:9;14341:34;14324:13;:52;14320:56;;14459:22;14456:1;14448:7;:9;14447:34;14443:1;14441;:3;14440:42;14436:1;14428:7;:9;;;;;;;;14427:56;14409:14;:75;14392:92;;14530:7;14515:12;:22;14500:37;;14569:1;14553:17;;14279:303;14612:4;14604:12;;:4;:12;;;14601:108;;;14649:4;14642;:11;;;;14684:13;14668;:29;;;;14601:108;14726:14;14719:21;;13023:1725;;;;;;;;;;;;;:::o;14764:198::-;14809:6;14828;14847:1;14842;14838;:5;14837:11;;;;;;;;14828:20;;14863:1;14859:5;;14875:80;14886:1;14882;:5;14875:80;;;14908:1;14904:5;;14942:1;14937;14933;14929;:5;;;;;;;;:9;14928:15;;;;;;;;14924:19;;14875:80;;;14764:198;;;;:::o;12493:518::-;12565:7;12601:1;12593:4;:9;;12590:71;;;12644:4;12636:5;:12;12628:21;;;;12590:71;12681:1;12674:4;:8;:22;;;;;12694:2;12686:4;:10;;12674:22;12671:97;;;12749:5;12746:1;12741:4;:6;12740:14;12730:6;:25;12722:34;;;;12671:97;12788:2;12781:4;:9;:23;;;;;12802:2;12794:4;:10;;12781:23;12778:99;;;12858:5;12854:2;12849:4;:7;12848:15;12838:6;:26;12830:35;;;;12778:99;12897:2;12890:4;:9;:23;;;;;12911:2;12903:4;:10;;12890:23;12887:98;;;12966:5;12962:2;12957:4;:7;12956:15;12947:6;:25;12939:34;;;;12887:98;13002:1;12995:8;;12493:518;;;;:::o;28:14937::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://69c0f0a45ad9b2d940450f6be36d8973ca27163ac68f325f8832a83ab08a3a05
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.