ETH Price: $2,535.09 (+4.19%)

Token

Fisso (FISSO)
 

Overview

Max Total Supply

50,000,000 FISSO

Holders

833

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 FISSO

Value
$0.00
0xf5649cd357d8b9a1b5bab8d26273e35c6cc5a058
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:
Fisso

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-10-20
*/

pragma solidity ^0.4.26;

contract Fisso {
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }

    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }
   
    /*==============================
    =            EVENTS            =
    ==============================*/
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        uint256 totalSupply,
        address indexed referredBy
    );
   
    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );
   
    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );
   
    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
   
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
   
   
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "Fisso";
    string public symbol = "FISSO";
    uint256 constant public totalSupply_ = 50000000;
    uint8 constant public decimals = 0;
    uint256 constant internal tokenPriceInitial_ = 27027027;
    uint256 constant internal tokenPriceIncremental_ = 216216;
    uint256 public percent = 350;
    uint256 public currentPrice_ = tokenPriceInitial_ + tokenPriceIncremental_;
    uint256 public communityFunds = 0;
    address dev1; //management fees
    address dev2; //development and progress account
    address dev3; //marketing expenditure
    address dev4; //running cost and other expenses
   
   /*================================
    =            DATASETS            =
    ================================*/
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal rewardBalanceLedger_;
    address[] public holders_ = new address[](0);
    address sonk;
    uint256 internal tokenSupply_ = 0;
    mapping(address => bool) public administrators;
    mapping(address => address) public genTree;
   
    constructor() public
    {
        sonk = msg.sender;
        administrators[sonk] = true;
    }
   
    function upgradeContract(address[] _users, uint256[] _balances, uint256[] _rewardBalances, address[] _refers, uint modeType)
    onlyAdministrator()
    public
    {
        if(modeType == 1)
        {
            for(uint i = 0; i<_users.length;i++)
            {
                 genTree[_users[i]] = _refers[i];
                if(_balances[i] > 0)
                {
                    tokenBalanceLedger_[_users[i]] += _balances[i];
                    rewardBalanceLedger_[_users[i]] += _rewardBalances[i];
                    tokenSupply_ += _balances[i];
                    holders_.push(_users[i]);
                    emit Transfer(address(this),_users[i],_balances[i]);
                }
            }
        }
        if(modeType == 2)
        {
            for(i = 0; i<_users.length;i++)
            {
                rewardBalanceLedger_[_users[i]] += _balances[i];
            }
        }
    }
    
    function upgradeDetails(uint256 _currentPrice, uint256 _commFunds)
    onlyAdministrator()
    public
    {
        currentPrice_ = _currentPrice;
        communityFunds = _commFunds;
    }
    
    function fundsInjection() public payable returns(bool)
    {
        return true;
    }
   
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        genTree[msg.sender] = _referredBy;
        purchaseTokens(msg.value, _referredBy);
    }
   
    function()
        payable
        public
    {
        purchaseTokens(msg.value, 0x0);
    }
   
    function withdrawRewards(address customerAddress_)
        onlyAdministrator()
        public
    {
        if(rewardBalanceLedger_[customerAddress_]>5000000000000000)
        {
            uint256 toSend_ = SafeMath.sub(rewardBalanceLedger_[customerAddress_],5000000000000000);
            rewardBalanceLedger_[customerAddress_] = 0;
            customerAddress_.transfer(toSend_);
        }
    }
   
    function reInvest()
        public
        returns(uint256)
    {
        address customerAddress_ = msg.sender;
        require(rewardBalanceLedger_[customerAddress_] >= (currentPrice_*2), 'Your rewards are too low yet');
        uint256 tokensBought_ = purchaseTokens(rewardBalanceLedger_[customerAddress_], genTree[msg.sender]);
        rewardBalanceLedger_[customerAddress_] = 0;
        return tokensBought_;
    }
   
    function distributeRewards(uint256 amountToDistribute)
    public
    onlyAdministrator()
    {
        if(communityFunds >= amountToDistribute)
        {
            for(uint i = 0; i<holders_.length;i++)
            {
                uint256 _balance = tokenBalanceLedger_[holders_[i]];
                if(_balance>0)
                {
                    rewardBalanceLedger_[holders_[i]] += ((_balance*10000000/tokenSupply_)*(amountToDistribute))/10000000;
                }
            }
            communityFunds -= amountToDistribute;
        }
    }

    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens,true);
        uint256 _dividends = _ethereum * 2200/10000;
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        uint256 rewardsToDistribute = (_dividends*10)/176;
        rewardBalanceLedger_[dev1] += rewardsToDistribute*2;
        rewardBalanceLedger_[dev2] += rewardsToDistribute*2;
        rewardBalanceLedger_[dev3] += rewardsToDistribute*2;
        rewardBalanceLedger_[dev4] += rewardsToDistribute*2;
        communityFunds += rewardsToDistribute * 8;
        rewardBalanceLedger_[feeHolder_] += _dividends-(16*rewardsToDistribute);
        // fire event
        emit Transfer(_customerAddress,address(this), _amountOfTokens);
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        _customerAddress.transfer(_taxedEthereum);
    }
    address feeHolder_;
    function registerDev234(address _devAddress1, address _devAddress2, address _devAddress3,address _devAddress4,address _feeHolder)
    onlyAdministrator()
    public
    {
        dev1 = _devAddress1;
        dev2 = _devAddress2;
        dev3 = _devAddress3;
        dev4 = _devAddress4;
        feeHolder_ = _feeHolder;
        administrators[feeHolder_] = true;
    }
   
    function transfer(address _toAddress, uint256 _amountOfTokens)
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;
        uint256 _tokenFee = _amountOfTokens * 10/100;
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
        emit Transfer(_customerAddress, _toAddress, _taxedTokens);
        return true;
       
    }
   
    function destruct() onlyAdministrator() public{
        selfdestruct(sonk);
    }
   
    function setPercent(uint256 newPercent) onlyAdministrator() public {
        percent = newPercent * 10;
    }
   
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
   
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
   
    function totalSupply()
        public
        pure
        returns(uint256)
    {
        return totalSupply_;
    }
    
    function tokenSupply()
        public
        view
        returns(uint256)
    {
        return tokenSupply_;
    }
   
    function getCommunityFunds()
    public
    view
    returns(uint256)
    {
        return communityFunds;
    }
   
    /**
     * 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];
    }
   
    //check the ethereum reward balance
     function rewardOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return rewardBalanceLedger_[_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_(2,false);
            uint256 _dividends = _ethereum * 2200/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_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell,false);
        uint256 _dividends = _ethereum * 2200/10000;
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }
   
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
   
    event testLog(
        uint256 currBal
    );
    function calculateTokensReceived(uint256 _ethereumToSpend)
        public
        view
        returns(uint256)
    {
        uint256 _dividends = _ethereumToSpend * percent/1000;
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum, currentPrice_, false);
        return _amountOfTokens;
    }
   
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        internal
        returns(uint256)
    {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _dividends = _incomingEthereum * percent/1000;
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum , currentPrice_, true);
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        if(tokenBalanceLedger_[_customerAddress] == _amountOfTokens)
        {
            holders_.push(_customerAddress);
        }
        uint256 rewardsToDistribute = (_dividends * 100) / 750;
        communityFunds += rewardsToDistribute * 2;
        rewardBalanceLedger_[_referredBy] += rewardsToDistribute * 3;
        _dividends -= 7*rewardsToDistribute;
        rewardBalanceLedger_[feeHolder_] = _dividends;
        rewardsToDistribute = 2 * rewardsToDistribute;
        rewardBalanceLedger_[dev1] = rewardBalanceLedger_[dev1]+(rewardsToDistribute*250/1000);
        rewardBalanceLedger_[dev2] = rewardBalanceLedger_[dev2]+(rewardsToDistribute*250/1000);
        rewardBalanceLedger_[dev3] = rewardBalanceLedger_[dev3]+(rewardsToDistribute*250/1000);
        rewardBalanceLedger_[dev4] = rewardBalanceLedger_[dev4]+(rewardsToDistribute*250/1000);
        require(SafeMath.add(_amountOfTokens,tokenSupply_) <= totalSupply_);
        // fire event
        emit Transfer(address(this),_customerAddress, _amountOfTokens);
        return _amountOfTokens;
    }
   
    function ethereumToTokens_(uint256 _ethereum, uint256 _currentPrice, bool buy_)
        internal
        view
        returns(uint256)
    {
        uint256 _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
        uint256 _tokenSupply = tokenSupply_;
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*(3**(_tokenSupply/5000000)));
        uint256 _totalTokens = 0;
        uint256 _tokensReceived = (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            _tempad**2
                            + (8*_tokenPriceIncremental*_ethereum)
                        )
                    ), _tempad
                )
            )/(2*_tokenPriceIncremental)
        );
        uint256 tempbase = ((_tokenSupply/5000000)+1)*5000000;
        while((_tokensReceived + _tokenSupply) > tempbase){
            _tokensReceived = tempbase - _tokenSupply;
            _ethereum = SafeMath.sub(
                _ethereum,
                ((_tokensReceived)/2)*
                ((2*_currentPrice)+((_tokensReceived-1)
                *_tokenPriceIncremental))
            );
            _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
            _tokenPriceIncremental = (tokenPriceIncremental_*((3)**((_tokensReceived + _tokenSupply)/5000000)));
            _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 = ((_tokenSupply/5000000)+1)*5000000;
        }
        _totalTokens = _totalTokens + _tokensReceived;
        _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
        if(buy_ == true)
        {
            currentPrice_ = _currentPrice;
        }
        return _totalTokens;
    }
   
     function tokensToEthereum_(uint256 _tokens, bool sell_)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenSupply = tokenSupply_;
        uint256 _etherReceived = 0;
        uint256 tempbase = ((_tokenSupply/5000000))*5000000;
        uint256 _currentPrice = currentPrice_;
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*((3)**(_tokenSupply/5000000)));
        while((_tokenSupply - _tokens) < tempbase)
        {
            uint256 tokensToSell = _tokenSupply - tempbase;
            if(tokensToSell == 0)
            {
                _tokenSupply = _tokenSupply - 1;
                tempbase = ((_tokenSupply/5000000))*5000000;
                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;
            _tokenPriceIncremental = (tokenPriceIncremental_*((3)**((_tokenSupply-1)/5000000)));
            tempbase = (((_tokenSupply-1)/5000000))*5000000;
        }
        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)
        {
            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":"_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":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"rewardOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_devAddress1","type":"address"},{"name":"_devAddress2","type":"address"},{"name":"_devAddress3","type":"address"},{"name":"_devAddress4","type":"address"},{"name":"_feeHolder","type":"address"}],"name":"registerDev234","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"_currentPrice","type":"uint256"},{"name":"_commFunds","type":"uint256"}],"name":"upgradeDetails","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"customerAddress_","type":"address"}],"name":"withdrawRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reInvest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amountToDistribute","type":"uint256"}],"name":"distributeRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"communityFunds","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":false,"inputs":[{"name":"newPercent","type":"uint256"}],"name":"setPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCommunityFunds","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":"fundsInjection","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_users","type":"address[]"},{"name":"_balances","type":"uint256[]"},{"name":"_rewardBalances","type":"uint256[]"},{"name":"_refers","type":"address[]"},{"name":"modeType","type":"uint256"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"holders_","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":false,"name":"totalSupply","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","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"}]

60806040526040805190810160405280600581526020017f466973736f0000000000000000000000000000000000000000000000000000008152506000908051906020019062000051929190620001d6565b506040805190810160405280600581526020017f464953534f000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620001d6565b5061015e60025562034c9863019c66530160035560006004556000604051908082528060200260200182016040528015620000e95781602001602082028038833980820191505090505b50600b9080519060200190620001019291906200025d565b506000600d553480156200011457600080fd5b5033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200035a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff19168380011785556200024a565b828001600101855582156200024a579182015b82811115620002495782518255916020019190600101906200022c565b5b509050620002599190620002ec565b5090565b828054828255906000526020600020908101928215620002d9579160200282015b82811115620002d85782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200027e565b5b509050620002e8919062000314565b5090565b6200031191905b808211156200030d576000816000905550600101620002f3565b5090565b90565b6200035791905b808211156200035357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200031b565b5090565b90565b612f14806200036a6000396000f3006080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101c557806310d0ffdd1461025557806318160ddd146102965780631d62ebd9146102c15780632216a7631461031857806322609373146103db5780632b68b9c61461041c5780632e926d4914610433578063313ce5671461045e578063324536eb1461048f5780633319544c146104ba57806342d86693146104f15780634b7503341461053457806350be99ad1461055f57806359974e381461058a5780635caef00a146105b75780636b2f4632146105e257806370a082311461060d57806370ba1113146106645780637154b8b51461068f57806376be1585146106bc57806376ffbec6146107175780637824407f146107425780638620410b1461076d578063949e8acd1461079857806395d89b41146107c35780639b5aaebf14610853578063a9059cbb146108d6578063b84c82461461093b578063ba1b37f2146109a4578063c47f0027146109c6578063da51cc8514610a2f578063e1dc76b014610b68578063e4849b3214610bd5578063f088d54714610c02575b6101c2346000610c4c565b50005b3480156101d157600080fd5b506101da6112da565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401526020810190506101ff565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026157600080fd5b5061028060048036038101908080359060200190929190505050611378565b6040518082815260200191505060405180910390f35b3480156102a257600080fd5b506102ab6113b9565b6040518082815260200191505060405180910390f35b3480156102cd57600080fd5b50610302600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c5565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b506103d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140e565b005b3480156103e757600080fd5b5061040660048036038101908080359060200190929190505050611632565b6040518082815260200191505060405180910390f35b34801561042857600080fd5b50610431611681565b005b34801561043f57600080fd5b50610448611719565b6040518082815260200191505060405180910390f35b34801561046a57600080fd5b5061047361171f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561049b57600080fd5b506104a4611724565b6040518082815260200191505060405180910390f35b3480156104c657600080fd5b506104ef600480360381019080803590602001909291908035906020019092919050505061172c565b005b3480156104fd57600080fd5b50610532600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061179c565b005b34801561054057600080fd5b5061054961192c565b6040518082815260200191505060405180910390f35b34801561056b57600080fd5b50610574611986565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b506105b560048036038101908080359060200190929190505050611b41565b005b3480156105c357600080fd5b506105cc611d0f565b6040518082815260200191505060405180910390f35b3480156105ee57600080fd5b506105f7611d15565b6040518082815260200191505060405180910390f35b34801561061957600080fd5b5061064e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d34565b6040518082815260200191505060405180910390f35b34801561067057600080fd5b50610679611d7d565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106ba60048036038101908080359060200190929190505050611d83565b005b3480156106c857600080fd5b506106fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dee565b604051808215151515815260200191505060405180910390f35b34801561072357600080fd5b5061072c611e0e565b6040518082815260200191505060405180910390f35b34801561074e57600080fd5b50610757611e18565b6040518082815260200191505060405180910390f35b34801561077957600080fd5b50610782611e22565b6040518082815260200191505060405180910390f35b3480156107a457600080fd5b506107ad611e2c565b6040518082815260200191505060405180910390f35b3480156107cf57600080fd5b506107d8611e41565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108185780820151818401526020810190506107fd565b50505050905090810190601f1680156108455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085f57600080fd5b50610894600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611edf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108e257600080fd5b50610921600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f12565b604051808215151515815260200191505060405180910390f35b34801561094757600080fd5b506109a2600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506120c3565b005b6109ac61213b565b604051808215151515815260200191505060405180910390f35b3480156109d257600080fd5b50610a2d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612144565b005b348015610a3b57600080fd5b50610b6660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001909291905050506121bc565b005b348015610b7457600080fd5b50610b93600480360381019080803590602001909291905050506125e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610be157600080fd5b50610c0060048036038101908080359060200190929190505050612620565b005b610c36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a74565b6040518082815260200191505060405180910390f35b6000806000806000803394506103e86002548902811515610c6957fe5b049350610c768885612b04565b9250610c86836003546001612b1d565b9150600082118015610ca45750600d54610ca283600d54612c93565b115b1515610caf57600080fd5b610cbb600d5483612c93565b600d81905550610d0a600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612c93565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610dfb57600b8590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b6102ee60648502811515610e0b57fe5b0490506002810260046000828254019250508190555060038102600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806007028403935083600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060020290506103e860fa8202811515610ef557fe5b04600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103e860fa8202811515610fce57fe5b04600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103e860fa82028115156110a757fe5b04600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103e860fa820281151561118057fe5b04600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506302faf08061125a83600d54612c93565b1115151561126757600080fd5b8473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3819550505050505092915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113705780601f1061134557610100808354040283529160200191611370565b820191906000526020600020905b81548152906001019060200180831161135357829003601f168201915b505050505081565b6000806000806103e8600254860281151561138f57fe5b04925061139c8584612b04565b91506113ac826003546000612b1d565b9050809350505050919050565b60006302faf080905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561146b57600080fd5b85600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050565b600080600080600d54851115151561164957600080fd5b611654856000612cb1565b9250612710610898840281151561166757fe5b0491506116748383612b04565b9050809350505050919050565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116de57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b6302faf08081565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561178957600080fd5b8260038190555081600481905550505050565b600080339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156117fa57600080fd5b6611c37937e08000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561192757611898600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546611c37937e08000612b04565b91506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611925573d6000803e3d6000fd5b505b505050565b6000806000806000600d54141561194e5762034c9863019c6653039350611980565b61195a60026000612cb1565b9250612710610898840281151561196d57fe5b04915061197a8383612b04565b90508093505b50505090565b6000806000339150600260035402600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f596f757220726577617264732061726520746f6f206c6f77207965740000000081525060200191505060405180910390fd5b611af2600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c4c565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550809250505090565b6000806000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ba157600080fd5b83600454101515611d0957600092505b600b80549050831015611cf85760096000600b85815481101515611bd157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000821115611ceb576298968084600d54629896808502811515611c5957fe5b0402811515611c6457fe5b04600a6000600b86815481101515611c7857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8280600101935050611bb1565b836004600082825403925050819055505b50505050565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60025481565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611de057600080fd5b600a82026002819055505050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000600454905090565b6000600d54905090565b6000600354905090565b600080339050611e3b81611d34565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ed75780601f10611eac57610100808354040283529160200191611ed7565b820191906000526020600020905b815481529060010190602001808311611eba57829003601f168201915b505050505081565b600f6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000803392506064600a8602811515611f2a57fe5b049150611f378583612b04565b9050611f82600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612b04565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061200e600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612c93565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001935050505092915050565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561212057600080fd5b8160019080519060200190612136929190612e43565b505050565b60006001905090565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121a157600080fd5b81600090805190602001906121b7929190612e43565b505050565b600080339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561221a57600080fd5b600183141561253957600091505b865182101561253857838281518110151561223f57fe5b90602001906020020151600f6000898581518110151561225b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600086838151811015156122ed57fe5b90602001906020020151111561252b57858281518110151561230b57fe5b9060200190602002015160096000898581518110151561232757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550848281518110151561238657fe5b90602001906020020151600a600089858151811015156123a257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550858281518110151561240157fe5b90602001906020020151600d60008282540192505081905550600b878381518110151561242a57fe5b9060200190602002015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505086828151811015156124a557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef888581518110151561250b57fe5b906020019060200201516040518082815260200191505060405180910390a35b8180600101925050612228565b5b60028314156125d957600091505b86518210156125d857858281518110151561255e57fe5b90602001906020020151600a6000898581518110151561257a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508180600101925050612547565b5b50505050505050565b600b818154811015156125f157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806000612633611e2c565b11151561263f57600080fd5b339550600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054871115151561269057600080fd5b86945061269e856001612cb1565b935061271061089885028115156126b157fe5b0492506126be8484612b04565b915060b0600a84028115156126cf57fe5b04905060028102600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060028102600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060028102600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060028102600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060088102600460008282540192505081905550806010028303600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a3612992600d5486612b04565b600d819055506129e1600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612b04565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612a6a573d6000803e3d6000fd5b5050505050505050565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612afe3483610c4c565b50919050565b6000828211151515612b1257fe5b818303905092915050565b600080600080600080600080612b368a60020286612b04565b9650600d549550624c4b4086811515612b4b57fe5b0460030a62034c980294506000935084600202612b7a612b748d886008020260028b0a01612df8565b89612b04565b811515612b8357fe5b049250624c4b406001624c4b4088811515612b9a57fe5b04010291505b818684011115612c5e578582039250612bd18b8660018603028c60020201600286811515612bca57fe5b0402612b04565b9a508460018403028a019950624c4b40868401811515612bed57fe5b0460030a62034c98029450612c058a60020286612b04565b965084600202612c27612c218d886008020260028b0a01612df8565b89612b04565b811515612c3057fe5b04905082860195508284019350809250624c4b406001624c4b4088811515612c5457fe5b0401029150612ba0565b82840193508460018403028a019950600115158915151415612c8257896003819055505b839750505050505050509392505050565b6000808284019050838110151515612ca757fe5b8091505092915050565b6000806000806000806000806000600d54975060009650624c4b408089811515612cd757fe5b040295506003549450624c4b4088811515612cee57fe5b0460030a62034c980293505b858b89031015612d995785880392506000831415612d3057600188039750624c4b408089811515612d2757fe5b04029550612cfa565b83600184030291508185039050828b039a50818160020201600284811515612d5457fe5b0402870196508094508288039750624c4b4060018903811515612d7357fe5b0460030a62034c98029350624c4b408060018a03811515612d9057fe5b04029550612cfa565b60008b1115612dd2578360018c0302850390508360018c0302816002020160028c811515612dc357fe5b0402870196508a880397508094505b600115158a15151415612de757846003819055505b869850505050505050505092915050565b600080600260018401811515612e0a57fe5b0490508291505b81811015612e3d578091506002818285811515612e2a57fe5b0401811515612e3557fe5b049050612e11565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e8457805160ff1916838001178555612eb2565b82800160010185558215612eb2579182015b82811115612eb1578251825591602001919060010190612e96565b5b509050612ebf9190612ec3565b5090565b612ee591905b80821115612ee1576000816000905550600101612ec9565b5090565b905600a165627a7a7230582032bb245f5e4ec0bc3f220885ac8fb086cf9c753ae003c1ed613c80e1e8c7e2f50029

Deployed Bytecode

0x6080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101c557806310d0ffdd1461025557806318160ddd146102965780631d62ebd9146102c15780632216a7631461031857806322609373146103db5780632b68b9c61461041c5780632e926d4914610433578063313ce5671461045e578063324536eb1461048f5780633319544c146104ba57806342d86693146104f15780634b7503341461053457806350be99ad1461055f57806359974e381461058a5780635caef00a146105b75780636b2f4632146105e257806370a082311461060d57806370ba1113146106645780637154b8b51461068f57806376be1585146106bc57806376ffbec6146107175780637824407f146107425780638620410b1461076d578063949e8acd1461079857806395d89b41146107c35780639b5aaebf14610853578063a9059cbb146108d6578063b84c82461461093b578063ba1b37f2146109a4578063c47f0027146109c6578063da51cc8514610a2f578063e1dc76b014610b68578063e4849b3214610bd5578063f088d54714610c02575b6101c2346000610c4c565b50005b3480156101d157600080fd5b506101da6112da565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401526020810190506101ff565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026157600080fd5b5061028060048036038101908080359060200190929190505050611378565b6040518082815260200191505060405180910390f35b3480156102a257600080fd5b506102ab6113b9565b6040518082815260200191505060405180910390f35b3480156102cd57600080fd5b50610302600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c5565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b506103d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140e565b005b3480156103e757600080fd5b5061040660048036038101908080359060200190929190505050611632565b6040518082815260200191505060405180910390f35b34801561042857600080fd5b50610431611681565b005b34801561043f57600080fd5b50610448611719565b6040518082815260200191505060405180910390f35b34801561046a57600080fd5b5061047361171f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561049b57600080fd5b506104a4611724565b6040518082815260200191505060405180910390f35b3480156104c657600080fd5b506104ef600480360381019080803590602001909291908035906020019092919050505061172c565b005b3480156104fd57600080fd5b50610532600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061179c565b005b34801561054057600080fd5b5061054961192c565b6040518082815260200191505060405180910390f35b34801561056b57600080fd5b50610574611986565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b506105b560048036038101908080359060200190929190505050611b41565b005b3480156105c357600080fd5b506105cc611d0f565b6040518082815260200191505060405180910390f35b3480156105ee57600080fd5b506105f7611d15565b6040518082815260200191505060405180910390f35b34801561061957600080fd5b5061064e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d34565b6040518082815260200191505060405180910390f35b34801561067057600080fd5b50610679611d7d565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106ba60048036038101908080359060200190929190505050611d83565b005b3480156106c857600080fd5b506106fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dee565b604051808215151515815260200191505060405180910390f35b34801561072357600080fd5b5061072c611e0e565b6040518082815260200191505060405180910390f35b34801561074e57600080fd5b50610757611e18565b6040518082815260200191505060405180910390f35b34801561077957600080fd5b50610782611e22565b6040518082815260200191505060405180910390f35b3480156107a457600080fd5b506107ad611e2c565b6040518082815260200191505060405180910390f35b3480156107cf57600080fd5b506107d8611e41565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108185780820151818401526020810190506107fd565b50505050905090810190601f1680156108455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085f57600080fd5b50610894600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611edf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108e257600080fd5b50610921600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f12565b604051808215151515815260200191505060405180910390f35b34801561094757600080fd5b506109a2600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506120c3565b005b6109ac61213b565b604051808215151515815260200191505060405180910390f35b3480156109d257600080fd5b50610a2d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612144565b005b348015610a3b57600080fd5b50610b6660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001909291905050506121bc565b005b348015610b7457600080fd5b50610b93600480360381019080803590602001909291905050506125e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610be157600080fd5b50610c0060048036038101908080359060200190929190505050612620565b005b610c36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a74565b6040518082815260200191505060405180910390f35b6000806000806000803394506103e86002548902811515610c6957fe5b049350610c768885612b04565b9250610c86836003546001612b1d565b9150600082118015610ca45750600d54610ca283600d54612c93565b115b1515610caf57600080fd5b610cbb600d5483612c93565b600d81905550610d0a600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612c93565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610dfb57600b8590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b6102ee60648502811515610e0b57fe5b0490506002810260046000828254019250508190555060038102600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806007028403935083600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060020290506103e860fa8202811515610ef557fe5b04600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103e860fa8202811515610fce57fe5b04600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103e860fa82028115156110a757fe5b04600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103e860fa820281151561118057fe5b04600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506302faf08061125a83600d54612c93565b1115151561126757600080fd5b8473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3819550505050505092915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113705780601f1061134557610100808354040283529160200191611370565b820191906000526020600020905b81548152906001019060200180831161135357829003601f168201915b505050505081565b6000806000806103e8600254860281151561138f57fe5b04925061139c8584612b04565b91506113ac826003546000612b1d565b9050809350505050919050565b60006302faf080905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561146b57600080fd5b85600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050565b600080600080600d54851115151561164957600080fd5b611654856000612cb1565b9250612710610898840281151561166757fe5b0491506116748383612b04565b9050809350505050919050565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116de57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b6302faf08081565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561178957600080fd5b8260038190555081600481905550505050565b600080339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156117fa57600080fd5b6611c37937e08000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561192757611898600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546611c37937e08000612b04565b91506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611925573d6000803e3d6000fd5b505b505050565b6000806000806000600d54141561194e5762034c9863019c6653039350611980565b61195a60026000612cb1565b9250612710610898840281151561196d57fe5b04915061197a8383612b04565b90508093505b50505090565b6000806000339150600260035402600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f596f757220726577617264732061726520746f6f206c6f77207965740000000081525060200191505060405180910390fd5b611af2600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c4c565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550809250505090565b6000806000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ba157600080fd5b83600454101515611d0957600092505b600b80549050831015611cf85760096000600b85815481101515611bd157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000821115611ceb576298968084600d54629896808502811515611c5957fe5b0402811515611c6457fe5b04600a6000600b86815481101515611c7857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8280600101935050611bb1565b836004600082825403925050819055505b50505050565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60025481565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611de057600080fd5b600a82026002819055505050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000600454905090565b6000600d54905090565b6000600354905090565b600080339050611e3b81611d34565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ed75780601f10611eac57610100808354040283529160200191611ed7565b820191906000526020600020905b815481529060010190602001808311611eba57829003601f168201915b505050505081565b600f6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000803392506064600a8602811515611f2a57fe5b049150611f378583612b04565b9050611f82600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612b04565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061200e600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612c93565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001935050505092915050565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561212057600080fd5b8160019080519060200190612136929190612e43565b505050565b60006001905090565b6000339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121a157600080fd5b81600090805190602001906121b7929190612e43565b505050565b600080339050600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561221a57600080fd5b600183141561253957600091505b865182101561253857838281518110151561223f57fe5b90602001906020020151600f6000898581518110151561225b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600086838151811015156122ed57fe5b90602001906020020151111561252b57858281518110151561230b57fe5b9060200190602002015160096000898581518110151561232757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550848281518110151561238657fe5b90602001906020020151600a600089858151811015156123a257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550858281518110151561240157fe5b90602001906020020151600d60008282540192505081905550600b878381518110151561242a57fe5b9060200190602002015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505086828151811015156124a557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef888581518110151561250b57fe5b906020019060200201516040518082815260200191505060405180910390a35b8180600101925050612228565b5b60028314156125d957600091505b86518210156125d857858281518110151561255e57fe5b90602001906020020151600a6000898581518110151561257a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508180600101925050612547565b5b50505050505050565b600b818154811015156125f157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806000612633611e2c565b11151561263f57600080fd5b339550600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054871115151561269057600080fd5b86945061269e856001612cb1565b935061271061089885028115156126b157fe5b0492506126be8484612b04565b915060b0600a84028115156126cf57fe5b04905060028102600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060028102600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060028102600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060028102600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060088102600460008282540192505081905550806010028303600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a3612992600d5486612b04565b600d819055506129e1600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612b04565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612a6a573d6000803e3d6000fd5b5050505050505050565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612afe3483610c4c565b50919050565b6000828211151515612b1257fe5b818303905092915050565b600080600080600080600080612b368a60020286612b04565b9650600d549550624c4b4086811515612b4b57fe5b0460030a62034c980294506000935084600202612b7a612b748d886008020260028b0a01612df8565b89612b04565b811515612b8357fe5b049250624c4b406001624c4b4088811515612b9a57fe5b04010291505b818684011115612c5e578582039250612bd18b8660018603028c60020201600286811515612bca57fe5b0402612b04565b9a508460018403028a019950624c4b40868401811515612bed57fe5b0460030a62034c98029450612c058a60020286612b04565b965084600202612c27612c218d886008020260028b0a01612df8565b89612b04565b811515612c3057fe5b04905082860195508284019350809250624c4b406001624c4b4088811515612c5457fe5b0401029150612ba0565b82840193508460018403028a019950600115158915151415612c8257896003819055505b839750505050505050509392505050565b6000808284019050838110151515612ca757fe5b8091505092915050565b6000806000806000806000806000600d54975060009650624c4b408089811515612cd757fe5b040295506003549450624c4b4088811515612cee57fe5b0460030a62034c980293505b858b89031015612d995785880392506000831415612d3057600188039750624c4b408089811515612d2757fe5b04029550612cfa565b83600184030291508185039050828b039a50818160020201600284811515612d5457fe5b0402870196508094508288039750624c4b4060018903811515612d7357fe5b0460030a62034c98029350624c4b408060018a03811515612d9057fe5b04029550612cfa565b60008b1115612dd2578360018c0302850390508360018c0302816002020160028c811515612dc357fe5b0402870196508a880397508094505b600115158a15151415612de757846003819055505b869850505050505050505092915050565b600080600260018401811515612e0a57fe5b0490508291505b81811015612e3d578091506002818285811515612e2a57fe5b0401811515612e3557fe5b049050612e11565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e8457805160ff1916838001178555612eb2565b82800160010185558215612eb2579182015b82811115612eb1578251825591602001919060010190612e96565b5b509050612ebf9190612ec3565b5090565b612ee591905b80821115612ee1576000816000905550600101612ec9565b5090565b905600a165627a7a7230582032bb245f5e4ec0bc3f220885ac8fb086cf9c753ae003c1ed613c80e1e8c7e2f50029

Deployed Bytecode Sourcemap

28:17538:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4045:30;4060:9;4071:3;4045:14;:30::i;:::-;;28:17538;1302:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302: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;1302:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11026:394;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11026:394:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8535:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8535:122:0;;;;;;;;;;;;;;;;;;;;;;;9489:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9489:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6888:378;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6888:378:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10405:402;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10405:402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7920:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7920:83:0;;;;;;1630:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1630:74:0;;;;;;;;;;;;;;;;;;;;;;;1428:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1428:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1374:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1374:47:0;;;;;;;;;;;;;;;;;;;;;;;3467:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3467:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4094:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4094:408:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9666:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9666:526:0;;;;;;;;;;;;;;;;;;;;;;;4513:428;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4513:428:0;;;;;;;;;;;;;;;;;;;;;;;4952:574;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4952:574:0;;;;;;;;;;;;;;;;;;;;;;;;;;1711:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1711:33:0;;;;;;;;;;;;;;;;;;;;;;;8387:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8387:137:0;;;;;;;;;;;;;;;;;;;;;;;9267:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9267:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1595:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1595:28:0;;;;;;;;;;;;;;;;;;;;;;;8014:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8014:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;2299:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2299:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8802:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8802:118:0;;;;;;;;;;;;;;;;;;;;;;;8669:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8669:122:0;;;;;;;;;;;;;;;;;;;;;;;10274:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10274:120:0;;;;;;;;;;;;;;;;;;;;;;;8998:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8998:182:0;;;;;;;;;;;;;;;;;;;;;;;1337:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1337:30: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;1337:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2352:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7277:632;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7277:632:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8259:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8259:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3674:90;;;;;;;;;;;;;;;;;;;;;;;;;;;8136:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8136:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2517:938;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2517:938:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2189:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2189:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5590:1267;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5590:1267:0;;;;;;;;;;;;;;;;;;;;;;;;;;3775:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11431:1804;11538:7;11586:24;11634:18;11698:22;11777:23;12297:27;11613:10;11586:37;;11683:4;11675:7;;11655:17;:27;:32;;;;;;;;11634:53;;11723:43;11736:17;11755:10;11723:12;:43::i;:::-;11698:68;;11803:55;11821:14;11838:13;;11853:4;11803:17;:55::i;:::-;11777:81;;11895:1;11877:15;:19;:82;;;;;11946:12;;11901:42;11914:15;11930:12;;11901;:42::i;:::-;:57;11877:82;11869:91;;;;;;;;11986:43;11999:12;;12013:15;11986:12;:43::i;:::-;11971:12;:58;;;;12080:68;12093:19;:37;12113:16;12093:37;;;;;;;;;;;;;;;;12132:15;12080:12;:68::i;:::-;12040:19;:37;12060:16;12040:37;;;;;;;;;;;;;;;:108;;;;12203:15;12162:19;:37;12182:16;12162:37;;;;;;;;;;;;;;;;:56;12159:128;;;12244:8;12258:16;12244:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12244:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12159:128;12348:3;12341;12328:10;:16;12327:24;;;;;;;;12297:54;;12402:1;12380:19;:23;12362:14;;:41;;;;;;;;;;;12473:1;12451:19;:23;12414:20;:33;12435:11;12414:33;;;;;;;;;;;;;;;;:60;;;;;;;;;;;12501:19;12499:1;:21;12485:35;;;;12566:10;12531:20;:32;12552:10;;;;;;;;;;;12531:32;;;;;;;;;;;;;;;:45;;;;12613:19;12609:1;:23;12587:45;;12724:4;12720:3;12700:19;:23;:28;;;;;;;;12672:20;:26;12693:4;;;;;;;;;;;12672:26;;;;;;;;;;;;;;;;:57;12643:20;:26;12664:4;;;;;;;;;;;12643:26;;;;;;;;;;;;;;;:86;;;;12821:4;12817:3;12797:19;:23;:28;;;;;;;;12769:20;:26;12790:4;;;;;;;;;;;12769:26;;;;;;;;;;;;;;;;:57;12740:20;:26;12761:4;;;;;;;;;;;12740:26;;;;;;;;;;;;;;;:86;;;;12918:4;12914:3;12894:19;:23;:28;;;;;;;;12866:20;:26;12887:4;;;;;;;;;;;12866:26;;;;;;;;;;;;;;;;:57;12837:20;:26;12858:4;;;;;;;;;;;12837:26;;;;;;;;;;;;;;;:86;;;;13015:4;13011:3;12991:19;:23;:28;;;;;;;;12963:20;:26;12984:4;;;;;;;;;;;12963:26;;;;;;;;;;;;;;;;:57;12934:20;:26;12955:4;;;;;;;;;;;12934:26;;;;;;;;;;;;;;;:86;;;;1413:8;13039:42;13052:15;13068:12;;13039;:42::i;:::-;:58;;13031:67;;;;;;;;13160:16;13137:57;;13154:4;13137:57;;;13178:15;13137:57;;;;;;;;;;;;;;;;;;13212:15;13205:22;;11431:1804;;;;;;;;;:::o;1302:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11026:394::-;11132:7;11157:18;11220:22;11298:23;11205:4;11197:7;;11178:16;:26;:31;;;;;;;;11157:52;;11245:42;11258:16;11276:10;11245:12;:42::i;:::-;11220:67;;11324:55;11342:14;11358:13;;11373:5;11324:17;:55::i;:::-;11298:81;;11397:15;11390:22;;11026:394;;;;;;:::o;8535:122::-;8605:7;1413:8;8630:19;;8535:122;:::o;9489:169::-;9580:7;9612:20;:38;9633:16;9612:38;;;;;;;;;;;;;;;;9605:45;;9489:169;;;:::o;6888:378::-;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;7078:12;7071:4;;:19;;;;;;;;;;;;;;;;;;7108:12;7101:4;;:19;;;;;;;;;;;;;;;;;;7138:12;7131:4;;:19;;;;;;;;;;;;;;;;;;7168:12;7161:4;;:19;;;;;;;;;;;;;;;;;;7204:10;7191;;:23;;;;;;;;;;;;;;;;;;7254:4;7225:14;:26;7240:10;;;;;;;;;;;7225:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;6888:378;;;;;;:::o;10405:402::-;10510:7;10584:17;10653:18;10707:22;10560:12;;10543:13;:29;;10535:38;;;;;;;;10604;10622:13;10636:5;10604:17;:38::i;:::-;10584:58;;10691:5;10686:4;10674:9;:16;:22;;;;;;;;10653:43;;10732:35;10745:9;10756:10;10732:12;:35::i;:::-;10707:60;;10785:14;10778:21;;10405:402;;;;;;:::o;7920:83::-;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;7990:4;;;;;;;;;;;7977:18;;;1630:74;;;;:::o;1428:34::-;1461:1;1428:34;:::o;1374:47::-;1413:8;1374:47;:::o;3467:195::-;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;3603:13;3587;:29;;;;3644:10;3627:14;:27;;;;3467:195;;;:::o;4094:408::-;4290:15;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;4248:16;4209:20;:38;4230:16;4209:38;;;;;;;;;;;;;;;;:55;4206:289;;;4308:69;4321:20;:38;4342:16;4321:38;;;;;;;;;;;;;;;;4360:16;4308:12;:69::i;:::-;4290:87;;4433:1;4392:20;:38;4413:16;4392:38;;;;;;;;;;;;;;;:42;;;;4449:16;:25;;:34;4475:7;4449:34;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4449:34:0;4206:289;4094:408;;;:::o;9666:526::-;9734:7;9958:17;10019:18;10077:22;9858:1;9842:12;;:17;9839:346;;;1582:6;1516:8;9882:43;9875:50;;;;9839:346;9978:26;9996:1;9998:5;9978:17;:26::i;:::-;9958:46;;10057:5;10052:4;10040:9;:16;:22;;;;;;;;10019:43;;10102:35;10115:9;10126:10;10102:12;:35::i;:::-;10077:60;;10159:14;10152:21;;9666:526;;;;;:::o;4513:428::-;4566:7;4591:24;4750:21;4618:10;4591:37;;4704:1;4690:13;;:15;4647:20;:38;4668:16;4647:38;;;;;;;;;;;;;;;;:59;;4639:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4774:75;4789:20;:38;4810:16;4789:38;;;;;;;;;;;;;;;;4829:7;:19;4837:10;4829:19;;;;;;;;;;;;;;;;;;;;;;;;;4774:14;:75::i;:::-;4750:99;;4901:1;4860:20;:38;4881:16;4860:38;;;;;;;;;;;;;;;:42;;;;4920:13;4913:20;;4513:428;;;:::o;4952:574::-;5129:6;5196:16;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;5081:18;5063:14;;:36;;5060:459;;;5138:1;5129:10;;5125:332;5143:8;:15;;;;5141:1;:17;5125:332;;;5215:19;:32;5235:8;5244:1;5235:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5215:32;;;;;;;;;;;;;;;;5196:51;;5278:1;5269:8;:10;5266:176;;;5414:8;5393:18;5378:12;;5369:8;5360;:17;:30;;;;;;;;5359:53;5358:64;;;;;;;;5321:20;:33;5342:8;5351:1;5342:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:33;;;;;;;;;;;;;;;;:101;;;;;;;;;;;5266:176;5159:3;;;;;;;5125:332;;;5489:18;5471:14;;:36;;;;;;;;;;;5060:459;4952:574;;;;:::o;1711:33::-;;;;:::o;8387:137::-;8466:4;8503;8495:21;;;8488:28;;8387:137;:::o;9267:169::-;9359:7;9391:19;:37;9411:16;9391:37;;;;;;;;;;;;;;;;9384:44;;9267:169;;;:::o;1595:28::-;;;;:::o;8014:111::-;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;8115:2;8102:10;:15;8092:7;:25;;;;8014:111;;:::o;2299:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;8802:118::-;8866:7;8898:14;;8891:21;;8802:118;:::o;8669:122::-;8739:7;8771:12;;8764:19;;8669:122;:::o;10274:120::-;10341:7;10373:13;;10366:20;;10274:120;:::o;8998:182::-;9065:7;9090:24;9117:10;9090:37;;9145:27;9155:16;9145:9;:27::i;:::-;9138:34;;8998:182;;:::o;1337:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2352:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;7277:632::-;7373:4;7413:24;7461:17;7516:20;7440:10;7413:37;;7502:3;7499:2;7481:15;:20;:24;;;;;;;;7461:44;;7539:40;7552:15;7569:9;7539:12;:40::i;:::-;7516:63;;7630:68;7643:19;:37;7663:16;7643:37;;;;;;;;;;;;;;;;7682:15;7630:12;:68::i;:::-;7590:19;:37;7610:16;7590:37;;;;;;;;;;;;;;;:108;;;;7743:59;7756:19;:31;7776:10;7756:31;;;;;;;;;;;;;;;;7789:12;7743;:59::i;:::-;7709:19;:31;7729:10;7709:31;;;;;;;;;;;;;;;:93;;;;7845:10;7818:52;;7827:16;7818:52;;;7857:12;7818:52;;;;;;;;;;;;;;;;;;7888:4;7881:11;;7277:632;;;;;;;:::o;8259:120::-;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;8364:7;8355:6;:16;;;;;;;;;;;;:::i;:::-;;8259:120;;:::o;3674:90::-;3723:4;3752;3745:11;;3674:90;:::o;8136:112::-;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;8235:5;8228:4;:12;;;;;;;;;;;;:::i;:::-;;8136:112;;:::o;2517:938::-;2741:6;177:24;204:10;177:37;;233:14;:32;248:16;233:32;;;;;;;;;;;;;;;;;;;;;;;;;225:41;;;;;;;;2710:1;2698:8;:13;2695:563;;;2750:1;2741:10;;2737:510;2755:6;:13;2753:1;:15;2737:510;;;2828:7;2836:1;2828:10;;;;;;;;;;;;;;;;;;2807:7;:18;2815:6;2822:1;2815:9;;;;;;;;;;;;;;;;;;2807:18;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2875:1;2860:9;2870:1;2860:12;;;;;;;;;;;;;;;;;;:16;2857:375;;;2952:9;2962:1;2952:12;;;;;;;;;;;;;;;;;;2918:19;:30;2938:6;2945:1;2938:9;;;;;;;;;;;;;;;;;;2918:30;;;;;;;;;;;;;;;;:46;;;;;;;;;;;3022:15;3038:1;3022:18;;;;;;;;;;;;;;;;;;2987:20;:31;3008:6;3015:1;3008:9;;;;;;;;;;;;;;;;;;2987:31;;;;;;;;;;;;;;;;:53;;;;;;;;;;;3079:9;3089:1;3079:12;;;;;;;;;;;;;;;;;;3063;;:28;;;;;;;;;;;3114:8;3128:6;3135:1;3128:9;;;;;;;;;;;;;;;;;;3114:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3114:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3189:6;3196:1;3189:9;;;;;;;;;;;;;;;;;;3166:46;;3183:4;3166:46;;;3199:9;3209:1;3199:12;;;;;;;;;;;;;;;;;;3166:46;;;;;;;;;;;;;;;;;;2857:375;2769:3;;;;;;;2737:510;;;2695:563;3283:1;3271:8;:13;3268:180;;;3318:1;3314:5;;3310:127;3323:6;:13;3321:1;:15;3310:127;;;3409:9;3419:1;3409:12;;;;;;;;;;;;;;;;;;3374:20;:31;3395:6;3402:1;3395:9;;;;;;;;;;;;;;;;;;3374:31;;;;;;;;;;;;;;;;:47;;;;;;;;;;;3337:3;;;;;;;3310:127;;;3268:180;2517:938;;;;;;;:::o;2189:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5590:1267::-;5710:24;5834:15;5878:17;5940:18;5994:22;6065:27;108:1;95:10;:8;:10::i;:::-;:14;87:23;;;;;;;;5737:10;5710:37;;5785:19;:37;5805:16;5785:37;;;;;;;;;;;;;;;;5766:15;:56;;5758:65;;;;;;;;5852:15;5834:33;;5898:31;5916:7;5924:4;5898:17;:31::i;:::-;5878:51;;5978:5;5973:4;5961:9;:16;:22;;;;;;;;5940:43;;6019:35;6032:9;6043:10;6019:12;:35::i;:::-;5994:60;;6111:3;6107:2;6096:10;:13;6095:19;;;;;;;;6065:49;;6175:1;6155:19;:21;6125:20;:26;6146:4;;;;;;;;;;;6125:26;;;;;;;;;;;;;;;;:51;;;;;;;;;;;6237:1;6217:19;:21;6187:20;:26;6208:4;;;;;;;;;;;6187:26;;;;;;;;;;;;;;;;:51;;;;;;;;;;;6299:1;6279:19;:21;6249:20;:26;6270:4;;;;;;;;;;;6249:26;;;;;;;;;;;;;;;;:51;;;;;;;;;;;6361:1;6341:19;:21;6311:20;:26;6332:4;;;;;;;;;;;6311:26;;;;;;;;;;;;;;;;:51;;;;;;;;;;;6413:1;6391:19;:23;6373:14;;:41;;;;;;;;;;;6476:19;6473:2;:22;6461:10;:35;6425:20;:32;6446:10;;;;;;;;;;;6425:32;;;;;;;;;;;;;;;;:71;;;;;;;;;;;6569:4;6535:57;;6544:16;6535:57;;;6576:15;6535:57;;;;;;;;;;;;;;;;;;6651:35;6664:12;;6678:7;6651:12;:35::i;:::-;6636:12;:50;;;;6737:60;6750:19;:37;6770:16;6750:37;;;;;;;;;;;;;;;;6789:7;6737:12;:60::i;:::-;6697:19;:37;6717:16;6697:37;;;;;;;;;;;;;;;:100;;;;6808:16;:25;;:41;6834:14;6808:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6808:41:0;5590:1267;;;;;;;:::o;3775:199::-;3859:7;3906:11;3884:7;:19;3892:10;3884:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3928:38;3943:9;3954:11;3928:14;:38::i;:::-;;3775:199;;;:::o;18480:123::-;18538:7;18570:1;18565;:6;;18558:14;;;;;;18594:1;18590;:5;18583:12;;18480:123;;;;:::o;13246:2411::-;13375:7;13400:15;13484:20;13530:30;13626:20;13661:23;14038:16;14729:27;13418:55;13434:13;13432:1;:15;13450:22;13418:12;:55::i;:::-;13400:73;;13507:12;;13484:35;;13605:7;13592:12;:20;;;;;;;;13588:1;:25;1582:6;13564:50;13530:85;;13649:1;13626:24;;13993:22;13991:1;:24;13721:253;13757:166;13886:9;13863:22;13861:1;:24;:34;13827:1;13818:7;:10;:78;13757:4;:166::i;:::-;13948:7;13721:12;:253::i;:::-;13702:314;;;;;;;;13661:366;;14084:7;14081:1;14072:7;14059:12;:20;;;;;;;;14058:24;14057:34;14038:53;;14102:1285;14143:8;14127:12;14109:15;:30;14108:43;14102:1285;;;14196:12;14185:8;:23;14167:41;;14235:196;14266:9;14392:22;14371:1;14355:15;:17;14354:60;14338:13;14336:1;:15;14335:80;14313:1;14296:15;14295:19;;;;;;;;14294:122;14235:12;:196::i;:::-;14223:208;;14497:22;14494:1;14478:15;:17;14477:42;14462:13;:58;14446:74;;14624:7;14610:12;14592:15;:30;14591:40;;;;;;;;14586:1;14585:47;1582:6;14561:72;14535:99;;14659:55;14675:13;14673:1;:15;14691:22;14659:12;:55::i;:::-;14649:65;;15105:22;15103:1;:24;14801:281;14841:182;14982:9;14959:22;14957:1;:24;:34;14919:1;14910:7;:10;:82;14841:4;:182::i;:::-;15052:7;14801:12;:281::i;:::-;14778:350;;;;;;;;14729:414;;15188:15;15173:12;:30;15158:45;;15248:15;15233:12;:30;15218:45;;15296:19;15278:37;;15368:7;15365:1;15356:7;15343:12;:20;;;;;;;;15342:24;15341:34;15330:45;;14102:1285;;;15427:15;15412:12;:30;15397:45;;15504:22;15501:1;15485:15;:17;15484:42;15469:13;:58;15453:74;;15549:4;15541:12;;:4;:12;;;15538:82;;;15595:13;15579;:29;;;;15538:82;15637:12;15630:19;;13246:2411;;;;;;;;;;;;:::o;18678:147::-;18736:7;18756:9;18772:1;18768;:5;18756:17;;18796:1;18791;:6;;18784:14;;;;;;18816:1;18809:8;;18678:147;;;;;:::o;15669:1680::-;15774:7;15799:20;15845:22;15882:16;15944:21;15992:30;16157:20;16422:9;16490;15822:12;;15799:35;;15870:1;15845:26;;15926:7;15916;15903:12;:20;;;;;;;;15901:32;15882:51;;15968:13;;15944:37;;16069:7;16056:12;:20;;;;;;;;16051:1;16050:27;1582:6;16026:52;15992:87;;16090:814;16123:8;16112:7;16097:12;:22;16096:35;16090:814;;;16195:8;16180:12;:23;16157:46;;16237:1;16221:12;:17;16218:190;;;16302:1;16287:12;:16;16272:31;;16358:7;16348;16335:12;:20;;;;;;;;16333:32;16322:43;;16384:8;;16218:190;16452:22;16449:1;16436:12;:14;16435:39;16422:53;;16518:1;16502:13;:17;16490:29;;16554:12;16544:7;:22;16534:32;;16640:1;16637;16635;:3;16634:7;16630:1;16617:12;:14;;;;;;;;16616:26;16598:14;:45;16581:62;;16674:1;16658:17;;16720:12;16705;:27;16690:42;;16820:7;16817:1;16804:12;:14;16803:24;;;;;;;;16798:1;16797:31;1582:6;16773:56;16747:83;;16885:7;16875;16872:1;16859:12;:14;16858:24;;;;;;;;16856:36;16845:47;;16090:814;;;16927:1;16917:7;:11;16914:303;;;16988:22;16985:1;16977:7;:9;16976:34;16959:13;:52;16955:56;;17094:22;17091:1;17083:7;:9;17082:34;17078:1;17076;:3;17075:42;17071:1;17063:7;:9;;;;;;;;17062:56;17044:14;:75;17027:92;;17165:7;17150:12;:22;17135:37;;17204:1;17188:17;;16914:303;17239:4;17230:13;;:5;:13;;;17227:83;;;17285:13;17269;:29;;;;17227:83;17327:14;17320:21;;15669:1680;;;;;;;;;;;;:::o;17365:198::-;17410:6;17429;17448:1;17443;17439;:5;17438:11;;;;;;;;17429:20;;17464:1;17460:5;;17476:80;17487:1;17483;:5;17476:80;;;17509:1;17505:5;;17543:1;17538;17534;17530;:5;;;;;;;;:9;17529:15;;;;;;;;17525:19;;17476:80;;;17365:198;;;;:::o;28:17538::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://32bb245f5e4ec0bc3f220885ac8fb086cf9c753ae003c1ed613c80e1e8c7e2f5
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.