ETH Price: $2,632.28 (+7.63%)

Contract

0x6E030618A32D1F3f61a30e51a15b19541262e859
 

Overview

ETH Balance

0.006540375760243773 ETH

Eth Value

$17.22 (@ $2,632.28/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer127793222021-07-07 8:43:361195 days ago1625647416IN
0x6E030618...41262e859
0 ETH0.0019406724.2
Buy NEX127016182021-06-25 6:09:531207 days ago1624601393IN
0x6E030618...41262e859
0.01 ETH0.0027503118
Withdraw119280422021-02-25 18:48:401326 days ago1614278920IN
0x6E030618...41262e859
0 ETH0.00406293121
Withdraw118794112021-02-18 7:14:421334 days ago1613632482IN
0x6E030618...41262e859
0 ETH0.00781052176
Transfer118744072021-02-17 12:37:291335 days ago1613565449IN
0x6E030618...41262e859
0 ETH0.00862933146
Withdraw118741952021-02-17 11:49:331335 days ago1613562573IN
0x6E030618...41262e859
0 ETH0.00585789132
Sell118741912021-02-17 11:48:201335 days ago1613562500IN
0x6E030618...41262e859
0 ETH0.00765085132
Reinvest118741852021-02-17 11:46:441335 days ago1613562404IN
0x6E030618...41262e859
0 ETH0.01579937118
Sell118741822021-02-17 11:46:081335 days ago1613562368IN
0x6E030618...41262e859
0 ETH0.00718716124
Withdraw118741762021-02-17 11:44:371335 days ago1613562277IN
0x6E030618...41262e859
0 ETH0.00550287124
Sell118741722021-02-17 11:42:531335 days ago1613562173IN
0x6E030618...41262e859
0 ETH0.00667218115
Transfer118741522021-02-17 11:37:561335 days ago1613561876IN
0x6E030618...41262e859
0 ETH0.0067435591
Transfer118741462021-02-17 11:35:361335 days ago1613561736IN
0x6E030618...41262e859
0 ETH0.00458382114
Withdraw118741402021-02-17 11:34:421335 days ago1613561682IN
0x6E030618...41262e859
0 ETH0.00505909114
Withdraw118602262021-02-15 8:19:291337 days ago1613377169IN
0x6E030618...41262e859
0 ETH0.00505909114
Sell118602172021-02-15 8:18:041337 days ago1613377084IN
0x6E030618...41262e859
0 ETH0.00626475108
Buy NEX118602122021-02-15 8:16:101337 days ago1613376970IN
0x6E030618...41262e859
0.01 ETH0.01886905117
Buy NEX118568982021-02-14 20:07:131337 days ago1613333233IN
0x6E030618...41262e859
0.21 ETH0.0211313892
Buy NEX118567652021-02-14 19:41:151337 days ago1613331675IN
0x6E030618...41262e859
0.21 ETH0.019890
Withdraw115974922021-01-05 23:18:091377 days ago1609888689IN
0x6E030618...41262e859
0 ETH0.0043934299
Sell115974852021-01-05 23:16:001377 days ago1609888560IN
0x6E030618...41262e859
0 ETH0.0057426999
Withdraw115759832021-01-02 16:09:141381 days ago1609603754IN
0x6E030618...41262e859
0 ETH0.00909749205
Sell115759712021-01-02 16:07:201381 days ago1609603640IN
0x6E030618...41262e859
0 ETH0.01229748212
Withdraw115749602021-01-02 12:23:011381 days ago1609590181IN
0x6E030618...41262e859
0 ETH0.0036833783
Withdraw115369452020-12-27 16:35:381387 days ago1609086938IN
0x6E030618...41262e859
0 ETH0.0110945250
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
127793222021-07-07 8:43:361195 days ago1625647416
0x6E030618...41262e859
0.00001616 ETH
127016182021-06-25 6:09:531207 days ago1624601393
0x6E030618...41262e859
0.0004 ETH
127016182021-06-25 6:09:531207 days ago1624601393
0x6E030618...41262e859
0.00695653 ETH
119280422021-02-25 18:48:401326 days ago1614278920
0x6E030618...41262e859
0.02352726 ETH
118794112021-02-18 7:14:421334 days ago1613632482
0x6E030618...41262e859
0.00000374 ETH
118744072021-02-17 12:37:291335 days ago1613565449
0x6E030618...41262e859
0.00000048 ETH
118741952021-02-17 11:49:331335 days ago1613562573
0x6E030618...41262e859
0.5784646 ETH
118741852021-02-17 11:46:441335 days ago1613562404
0x6E030618...41262e859
0.02531013 ETH
118741762021-02-17 11:44:371335 days ago1613562277
0x6E030618...41262e859
16.72878574 ETH
118741522021-02-17 11:37:561335 days ago1613561876
0x6E030618...41262e859
0.06160771 ETH
118741402021-02-17 11:34:421335 days ago1613561682
0x6E030618...41262e859
0.0690304 ETH
118602262021-02-15 8:19:291337 days ago1613377169
0x6E030618...41262e859
0.16722607 ETH
118602122021-02-15 8:16:101337 days ago1613376970
0x6E030618...41262e859
0.0004 ETH
118602122021-02-15 8:16:101337 days ago1613376970
0x6E030618...41262e859
0.29729638 ETH
118568982021-02-14 20:07:131337 days ago1613333233
0x6E030618...41262e859
0.0084 ETH
115974922021-01-05 23:18:091377 days ago1609888689
0x6E030618...41262e859
0.34909626 ETH
115759832021-01-02 16:09:141381 days ago1609603754
0x6E030618...41262e859
0.06606369 ETH
115749602021-01-02 12:23:011381 days ago1609590181
0x6E030618...41262e859
0.00809926 ETH
115369452020-12-27 16:35:381387 days ago1609086938
0x6E030618...41262e859
0.69575 ETH
113946452020-12-05 19:51:311408 days ago1607197891
0x6E030618...41262e859
0.02894593 ETH
113945652020-12-05 19:33:561408 days ago1607196836
0x6E030618...41262e859
0 ETH
113945652020-12-05 19:33:561408 days ago1607196836
0x6E030618...41262e859
0.0000001 ETH
113945652020-12-05 19:33:561408 days ago1607196836
0x6E030618...41262e859
0.00153083 ETH
113534142020-11-29 11:32:441415 days ago1606649564
0x6E030618...41262e859
0.58094052 ETH
113533912020-11-29 11:27:511415 days ago1606649271
0x6E030618...41262e859
0.00069999 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Nexus

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-06-03
*/

pragma solidity ^0.5.17;

/*************************
**************************
* https://nexus-dapp.com *
**************************
*************************/

contract Nexus {

    /*=================================
    =            MODIFIERS            =
    =================================*/

    /// @dev Only people with tokens
    modifier onlyBagholders {
        require(myTokens(msg.sender) > 0);
        _;
    }

    /// @dev Only people with profits
    modifier onlySetherghands {
        require(myDividends(true, msg.sender) > 0);
        _;
    }


    /// @dev isControlled
    modifier isControlled() {
      require(isStarted());
      _;
    }

    /*==============================
    =            EVENTS            =
    ==============================*/

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEther,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp,
        uint256 price
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 etherEarned,
        uint timestamp,
        uint256 price
    );

    event onReinvestment(
        address indexed customerAddress,
        uint256 etherReinvested,
        uint256 tokensMinted
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 etherWithdrawn
    );

    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
	
    event Approval(
		address indexed admin, 
		address indexed spender, 
		uint256 value
	);

    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/

    string public name = "Nexus";
    string public symbol = "NEX";
    uint8 constant public decimals = 18;

    /// @dev 5% dividends for token selling
    uint8 constant internal exitFee_ = 5;

    /// @dev 33% masternode
    uint8 constant internal refferalFee_ = 30;

    /// @dev P3D pricing
    uint256 constant internal tokenPriceInitial_ = 0.00000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.000000001 ether;

    uint256 constant internal magnitude = 2 ** 64;

    /// @dev 100 needed for masternode activation
    uint256 public stakingRequirement = 100e18;

    /// @dev light the marketing
    address payable public marketing;
	
	// @dev ERC20 allowances
	mapping (address => mapping (address => uint256)) private _allowances;


   /*=================================
    =            DATASETS            =
    ================================*/

    // amount of shares for each address (scaled number)
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => int256) public payoutsTo_;
    mapping(address => uint256) public referralBalance_;
	
	// referrers
	mapping(address => address) public referrers_;	
    
	uint256 public jackPot_;
	address payable public jackPotPretender_;	
	uint256 public jackPotStartTime_;
	
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    uint256 public depositCount_;


    /*=======================================
    =            CONSTRUCTOR                =
    =======================================*/

   constructor (address payable _marketing) public {

		marketing = _marketing;
		jackPotStartTime_ = now;
		jackPot_ = 20 ether;
 
   }

    /*=======================================
    =            PUBLIC FUNCTIONS           =
    =======================================*/

    /**
     * @dev Fallback function to handle ethereum that was send straight to the contract
     *  Unfortunately we cannot use a referral address this way.
     */
    
	function() external isControlled payable  {	
        purchaseTokens(msg.value, address(0x0), msg.sender);
    }

    /// @dev Converts all incoming ether to tokens for the caller, and passes down the referral addy (if any)
    function buyNEX(address _referredBy) isControlled public payable  returns (uint256) {
        purchaseTokens(msg.value, _referredBy , msg.sender);
    }

    /// @dev Converts to tokens on behalf of the customer - this allows gifting and integration with other systems
    function purchaseFor(address _referredBy, address payable _customerAddress) isControlled public payable returns (uint256) {
        purchaseTokens(msg.value, _referredBy , _customerAddress);
    }

    /// @dev Converts all of caller's dividends to tokens.
    function reinvest() onlySetherghands public {
        // fetch dividends
        uint256 _dividends = myDividends(false, msg.sender); // retrieve ref. bonus later in the code

        // pay out the dividends virtually
        address payable _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);

        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;

        // dispatch a buy order with the virtualized "withdrawn dividends"
        uint256 _tokens = purchaseTokens(_dividends, address(0x0) , _customerAddress);

        // fire event
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }
	
	/// @dev The new user welcome function
    function reg() public returns(bool) {	
		return true;
	}
	
    /// @dev Alias of sell() and withdraw().
    function exit() public {
        // get token count for caller & sell them all
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);

        // capitulation
        withdraw();
    }

    /// @dev Withdraws all of the callers earnings.
    function withdraw() onlySetherghands public {
        // setup data
        address payable _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false, msg.sender); // get ref. bonus later in the code

        // update dividend tracker
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);

        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;

        // lambo delivery service
        _customerAddress.transfer(_dividends);

        // fire event
        emit onWithdraw(_customerAddress, _dividends);
    }

    /// @dev Liquifies tokens to ether.
    function sell(uint256 _amountOfTokens) onlyBagholders public {
        // setup data
        address _customerAddress = msg.sender;
        // russian hackers BTFO
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ether = tokensToEther_(_tokens);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ether, exitFee_), 100);
        uint256 _taxedEther = SafeMath.sub(_ether, _dividends);

        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);

        // update dividends tracker
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEther * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        // dividing by zero is a bad idea
        if (tokenSupply_ > 0) {
            // update the amount of dividends per token
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }

        // fire event
		emit Transfer(_customerAddress, address(0x0), _tokens);
        emit onTokenSell(_customerAddress, _tokens, _taxedEther, now, buyPrice());
    }
	
    /**
     * @dev ERC20 functions.
     */
    function allowance(address _admin, address _spender) public view returns (uint256) {
        return _allowances[_admin][_spender];
    }

    function approve(address _spender, uint256 _amountOfTokens) public returns (bool) {
        approveInternal(msg.sender, _spender, _amountOfTokens);
        return true;
    }

    function approveInternal(address _admin, address _spender, uint256 _amountOfTokens) internal {
        require(_admin != address(0x0), "ERC20: approve from the zero address");
        require(_spender != address(0x0), "ERC20: approve to the zero address");

        _allowances[_admin][_spender] = _amountOfTokens;
        emit Approval(_admin, _spender, _amountOfTokens);
    }
	
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        approveInternal(msg.sender, spender, SafeMath.add(_allowances[msg.sender][spender], addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        approveInternal(msg.sender, spender, SafeMath.sub(_allowances[msg.sender][spender], subtractedValue));
        return true;
    }	
	
    /**
     * @dev Transfer tokens from the caller to a new holder.
     */
    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        // setup
        address _customerAddress = msg.sender;

        // make sure we have the requested tokens
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        // withdraw all outstanding dividends first
        if (myDividends(true, msg.sender) > 0) {
            withdraw();
        }

        return transferInternal(_toAddress,_amountOfTokens,_customerAddress);
    }
	
    function transferFrom(address _fromAddress, address _toAddress, uint256 _amountOfTokens) public returns (bool) {
        transferInternal(_toAddress, _amountOfTokens, _fromAddress);
        approveInternal(_fromAddress, msg.sender, SafeMath.sub(_allowances[_fromAddress][msg.sender], _amountOfTokens));
        return true;
    }	

    function transferInternal(address _toAddress, uint256 _amountOfTokens , address _fromAddress) internal returns (bool) {
        // setup
        address _customerAddress = _fromAddress;

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);

        // update dividend trackers
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens);

        // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);

        // ERC20
        return true;
    }
	

    /*=====================================
    =      HELPERS AND CALCULATORS        =
    =====================================*/

    /**
     * @dev Method to view the current Ether stored in the contract
     *  Example: totalEtherBalance()
     */
    function totalEtherBalance() public view returns (uint256) {
        return address(this).balance;
    }

    /// @dev Retrieve the total token supply.
    function totalSupply() public view returns (uint256) {
        return tokenSupply_;
    }

    /// @dev Retrieve the tokens balance.
    function myTokens(address _customerAddress) public view returns (uint256) {
        return balanceOf(_customerAddress);
    }

    /**
     * @dev Retrieve the dividends owned by the caller.
     *  If `_includeReferralBonus` is to to 1/true, the referral bonus will be included in the calculations.
     *  The reason for this, is that in the frontend, we will want to get the total divs (global + ref)
     *  But in the internal calculations, we want them separate.
     */
    function myDividends(bool _includeReferralBonus, address _customerAddress) public view returns (uint256) {
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }

    /// @dev Retrieve the token balance of any single address.
    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    /// @dev Retrieve the dividend balance of any single address.
    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    /// @dev Return the sell price of 1 individual token.
    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 _ether = tokensToEther_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ether, exitFee_), 100);
            uint256 _taxedEther = SafeMath.sub(_ether, _dividends);

            return _taxedEther;
        }
    }

    /// @dev Return the buy price of 1 individual token.
    function buyPrice() public view returns (uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ether = tokensToEther_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ether, entryFee()), 100);
            uint256 _taxedEther = SafeMath.add(_ether, _dividends);

            return _taxedEther;
        }
    }

    /// @dev Function for the frontend to dynamically retrieve the price scaling of buy orders.
    function calculateTokensReceived(uint256 _etherToSpend) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_etherToSpend, entryFee()), 100);
        uint256 _taxedEther = SafeMath.sub(_etherToSpend, _dividends);
        uint256 _amountOfTokens = etherToTokens_(_taxedEther);
        return _amountOfTokens;
    }

    /// @dev Function for the frontend to dynamically retrieve the price scaling of sell orders.
    function calculateEtherReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ether = tokensToEther_(_tokensToSell);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ether, exitFee_), 100);
        uint256 _taxedEther = SafeMath.sub(_ether, _dividends);
        return _taxedEther;
    }

    /// @dev Function for the frontend to get untaxed receivable ether.
    function calculateUntaxedEtherReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ether = tokensToEther_(_tokensToSell);
        //uint256 _dividends = SafeMath.div(SafeMath.mul(_ether, exitFee()), 100);
        //uint256 _taxedEther = SafeMath.sub(_ether, _dividends);
        return _ether;
    }

    function entryFee() private view returns (uint8){
      uint256 volume = address(this).balance  - msg.value;

      if (volume<=1 ether){
        return 22;
      }
      if (volume<=2 ether){
        return 21;
      }
      if (volume<=5000 ether){
        return 20;
      }
      if (volume<=6000 ether){
        return 19;
      }
      if (volume<=7000 ether){
        return 18;
      }

      return 17;
	  
    }

     // @dev Function for find if premine
    function jackPotInfo() public view returns (uint256 jackPot, uint256 timer, address jackPotPretender) {
		jackPot = jackPot_;
		if (jackPot > address(this).balance) {
			jackPot = address(this).balance;
		}
		jackPot = SafeMath.div(jackPot,2);
		
		timer = now - jackPotStartTime_;
		jackPotPretender = jackPotPretender_;
    }
	
	// @dev Function for find if premine
    function isPremine() public view returns (bool) {
      return depositCount_<=5;
    }

    // @dev Function for find if premine
    function isStarted() public pure returns (bool) {
      return true; //startTime!=0 && now > startTime;
    }

    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/

    /// @dev Internal function to actually purchase the tokens.
    function purchaseTokens(uint256 _incomingEther, address _referredBy , address payable _customerAddress) internal returns (uint256) {
        // data setup
		require (_incomingEther > 0);
		
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEther, entryFee()), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, refferalFee_), 100);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedEther = SafeMath.sub(_incomingEther, _undividedDividends);
        uint256 _amountOfTokens = etherToTokens_(_taxedEther);
        uint256 _fee = _dividends * magnitude;
		uint256 _marketing = SafeMath.div(SafeMath.mul(_incomingEther, 4), 100); //4%
		
        // no point in continuing execution if OP is a poorfag russian hacker
        // prevents overflow in the case that the pyramid somehow magically starts being used by everyone in the world
        // (or hackers)
        // and yes we know that the safemath function automatically rules out the "greater then" equasion.
        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        // is the user referred by a masternode?
        if (
            // is this a referred purchase?
            _referredBy != address(0x0) &&

            // no cheating!
            _referredBy != _customerAddress &&

            // does the referrer have at least X whole tokens?
            // i.e is the referrer a godly chad masternode
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            // wealth redistribution
			if (referrers_[_customerAddress] == address(0x0)) {
				referrers_[_customerAddress] = _referredBy;
			}
			calculateReferrers(_customerAddress, _referralBonus, 1);
        } else {
            // no ref purchase
            // add the referral bonus back to the global dividends cake
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }

        // we can't give people infinite ether
        if (tokenSupply_ > 0) {
            // add tokens to the pool
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
			
			// fire event
			emit Transfer(address(0x0), _customerAddress, _amountOfTokens);

            // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);

            // calculate the amount of tokens the customer receives over his purchase
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }

        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

        // Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them;
        // really i know you think you do but you don't
        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
		
		// JackPot calculate
		calculateJackPot(_incomingEther, _customerAddress);
		
		// 4% for marketing 
		marketing.send(_marketing);

        // fire event
        emit onTokenPurchase(_customerAddress, _incomingEther, _amountOfTokens, _referredBy, now, buyPrice());

        // Keep track
        depositCount_++;
        return _amountOfTokens;
    }

    /**
     * @dev Calculate Referrers reward 
     * Level 1: 35%, Level 2: 20%, Level 3: 15%, Level 4: 10%, Level 5: 10%, Level 6: 5%, Level 7: 5%
     */	
	function calculateReferrers(address _customerAddress, uint256 _referralBonus, uint8 _level) internal {
		address _referredBy = referrers_[_customerAddress];
		uint256 _percent = 35;
		if (_referredBy != address(0x0)) {
			if (_level == 2) _percent = 20;
			if (_level == 3) _percent = 15;
			if (_level == 4 || _level == 5) _percent = 10;
			if (_level == 6 || _level == 7) _percent = 5;
			uint256 _newReferralBonus = SafeMath.div(SafeMath.mul(_referralBonus, _percent), 100);
			referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _newReferralBonus);
			if (_level < 7) {
				calculateReferrers(_referredBy, _referralBonus, _level+1);
			}
		}
	}

    /**
     * @dev Calculate JackPot 
     * 40% from entryFee is going to JackPot 
     * The last investor (with 0.2 ether) will receive the jackpot in 12 hours 
     */	
	function calculateJackPot(uint256 _incomingEther, address payable _customerAddress) internal {
		uint256 timer = SafeMath.div(SafeMath.sub(now, jackPotStartTime_), 12 hours);
		if (timer > 0 && jackPotPretender_ != address(0x0) && jackPot_ > 0) {
			//pay jackPot
			if (address(this).balance < jackPot_) {
				jackPot_ = address(this).balance;
			}
				
			jackPotPretender_.send(SafeMath.div(jackPot_,2));
			jackPot_ = SafeMath.div(jackPot_,2);
			jackPotStartTime_ = now;
			jackPotPretender_ = address(0x0);
		}
		
		uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEther, entryFee()), 100);
		jackPot_ += SafeMath.div(SafeMath.mul(_undividedDividends, 40), 100);
		
		if (_incomingEther >= 0.2 ether) { 
			jackPotPretender_ = _customerAddress;
			jackPotStartTime_ = now;
		}
	}	
	
    /**
     * @dev Calculate Token price based on an amount of incoming ether
     *  It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     *  Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function etherToTokens_(uint256 _ether) internal view returns (uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived =
         (
            (
                // underflow attempts BTFO
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial ** 2)
                            +
                            (2 * (tokenPriceIncremental_ * 1e18) * (_ether * 1e18))
                            +
                            ((tokenPriceIncremental_ ** 2) * (tokenSupply_ ** 2))
                            +
                            (2 * tokenPriceIncremental_ * _tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            ) / (tokenPriceIncremental_)
        ) - (tokenSupply_);

        return _tokensReceived;
    }

    /**
     * @dev Calculate token sell value.
     *  It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     *  Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function tokensToEther_(uint256 _tokens) internal view returns (uint256) {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
        (
            // underflow attempts BTFO
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))
                        ) - tokenPriceIncremental_
                    ) * (tokens_ - 1e18)
                ), (tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2
            )
        / 1e18);

        return _etherReceived;
    }

    /// @dev This is where all your gas goes.
    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 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

[{"inputs":[{"internalType":"address payable","name":"_marketing","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"etherReinvested","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"incomingEther","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":true,"internalType":"address","name":"referredBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"etherEarned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"etherWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referredBy","type":"address"}],"name":"buyNEX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateEtherReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_etherToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateUntaxedEtherReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"depositCount_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPremine","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"jackPotInfo","outputs":[{"internalType":"uint256","name":"jackPot","type":"uint256"},{"internalType":"uint256","name":"timer","type":"uint256"},{"internalType":"address","name":"jackPotPretender","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackPotPretender_","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackPotStartTime_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackPot_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"},{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"myDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referredBy","type":"address"},{"internalType":"address payable","name":"_customerAddress","type":"address"}],"name":"purchaseFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referralBalance_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrers_","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reg","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEtherBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_fromAddress","type":"address"},{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600581526020017f4e65787573000000000000000000000000000000000000000000000000000000815250600090805190602001906200005192919062000150565b506040518060400160405280600381526020017f4e45580000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000150565b5068056bc75e2d63100000600255348015620000ba57600080fd5b50604051620030543803806200305483398181016040526020811015620000e057600080fd5b810190808051906020019092919050505080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600b819055506801158e460913d0000060098190555050620001ff565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019357805160ff1916838001178555620001c4565b82800160010185558215620001c4579182015b82811115620001c3578251825591602001919060010190620001a6565b5b509050620001d39190620001d7565b5090565b620001fc91905b80821115620001f8576000816000905550600101620001de565b5090565b90565b612e45806200020f6000396000f3fe60806040526004361061022f5760003560e01c8063642ad54a1161012e578063cfb5df18116100ab578063e1456cb41161006f578063e1456cb414610dbb578063e4849b3214610e20578063e625d51514610e5b578063e9fad8ee14610e86578063fdb5a03e14610e9d5761022f565b8063cfb5df1814610c4c578063d6dda33d14610c77578063da7af32d14610ca6578063dc1df3f614610cd1578063dd62ed3e14610d365761022f565b806395d89b41116100f257806395d89b4114610a22578063a457c2d714610ab2578063a9059cbb14610b25578063c257c85114610b98578063c664f7f114610be75761022f565b8063642ad54a146108c757806364377fe41461093857806370a0823114610963578063738fdd1a146109c85780638620410b146109f75761022f565b806339509351116101bc578063544736e611610180578063544736e61461073557806356d399e8146107645780635dd103c11461078f5780635df345db146107de5780635e4791751461086f5761022f565b806339509351146105b15780633ccfd60b14610624578063458e237d1461063b5780634b75033414610692578063521ee1ae146106bd5761022f565b806318160ddd1161020357806318160ddd1461040657806323b872dd146104315780632d3e474a146104c4578063313ce5671461051b5780633904d2b11461054c5761022f565b806265318b1461024f57806306fdde03146102b4578063095ea7b31461034457806310d0ffdd146103b7575b610237610eb4565b61024057600080fd5b61024c34600033610ebd565b50005b34801561025b57600080fd5b5061029e6004803603602081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061143d565b6040518082815260200191505060405180910390f35b3480156102c057600080fd5b506102c96114dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103095780820151818401526020810190506102ee565b50505050905090810190601f1680156103365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035057600080fd5b5061039d6004803603604081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061157b565b604051808215151515815260200191505060405180910390f35b3480156103c357600080fd5b506103f0600480360360208110156103da57600080fd5b8101908080359060200190929190505050611592565b6040518082815260200191505060405180910390f35b34801561041257600080fd5b5061041b6115db565b6040518082815260200191505060405180910390f35b34801561043d57600080fd5b506104aa6004803603606081101561045457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b3480156104d057600080fd5b506104d961168e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052757600080fd5b506105306116b4565b604051808260ff1660ff16815260200191505060405180910390f35b34801561055857600080fd5b506105616116b9565b604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061170d565b604051808215151515815260200191505060405180910390f35b34801561063057600080fd5b506106396117a9565b005b34801561064757600080fd5b5061065061194e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069e57600080fd5b506106a7611974565b6040518082815260200191505060405180910390f35b61071f600480360360408110156106d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119dc565b6040518082815260200191505060405180910390f35b34801561074157600080fd5b5061074a610eb4565b604051808215151515815260200191505060405180910390f35b34801561077057600080fd5b50610779611a01565b6040518082815260200191505060405180910390f35b34801561079b57600080fd5b506107c8600480360360208110156107b257600080fd5b8101908080359060200190929190505050611a07565b6040518082815260200191505060405180910390f35b3480156107ea57600080fd5b5061082d6004803603602081101561080157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a2e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108b16004803603602081101561088557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a61565b6040518082815260200191505060405180910390f35b3480156108d357600080fd5b50610922600480360360408110156108ea57600080fd5b81019080803515159060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a85565b6040518082815260200191505060405180910390f35b34801561094457600080fd5b5061094d611aed565b6040518082815260200191505060405180910390f35b34801561096f57600080fd5b506109b26004803603602081101561098657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af3565b6040518082815260200191505060405180910390f35b3480156109d457600080fd5b506109dd611b3c565b604051808215151515815260200191505060405180910390f35b348015610a0357600080fd5b50610a0c611b45565b6040518082815260200191505060405180910390f35b348015610a2e57600080fd5b50610a37611bb3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a77578082015181840152602081019050610a5c565b50505050905090810190601f168015610aa45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610abe57600080fd5b50610b0b60048036036040811015610ad557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c51565b604051808215151515815260200191505060405180910390f35b348015610b3157600080fd5b50610b7e60048036036040811015610b4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ced565b604051808215151515815260200191505060405180910390f35b348015610ba457600080fd5b50610bd160048036036020811015610bbb57600080fd5b8101908080359060200190929190505050611d84565b6040518082815260200191505060405180910390f35b348015610bf357600080fd5b50610c3660048036036020811015610c0a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd7565b6040518082815260200191505060405180910390f35b348015610c5857600080fd5b50610c61611def565b6040518082815260200191505060405180910390f35b348015610c8357600080fd5b50610c8c611df5565b604051808215151515815260200191505060405180910390f35b348015610cb257600080fd5b50610cbb611e03565b6040518082815260200191505060405180910390f35b348015610cdd57600080fd5b50610d2060048036036020811015610cf457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e09565b6040518082815260200191505060405180910390f35b348015610d4257600080fd5b50610da560048036036040811015610d5957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1b565b6040518082815260200191505060405180910390f35b348015610dc757600080fd5b50610e0a60048036036020811015610dde57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ea2565b6040518082815260200191505060405180910390f35b348015610e2c57600080fd5b50610e5960048036036020811015610e4357600080fd5b8101908080359060200190929190505050611eba565b005b348015610e6757600080fd5b50610e7061216d565b6040518082815260200191505060405180910390f35b348015610e9257600080fd5b50610e9b612175565b005b348015610ea957600080fd5b50610eb26121dd565b005b60006001905090565b6000808411610ecb57600080fd5b6000610eeb610ee486610edc612354565b60ff166123e8565b606461241f565b90506000610f07610f0083601e60ff166123e8565b606461241f565b90506000610f158383612438565b90506000610f238885612438565b90506000610f308261244f565b9050600068010000000000000000840290506000610f59610f528c60046123e8565b606461241f565b9050600083118015610f775750600c54610f7584600c546124d6565b115b610f8057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614158015610fe957508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b80156110365750600254600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561115f57600073ffffffffffffffffffffffffffffffffffffffff16600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561114e5789600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61115a898760016124f2565b61117a565b61116985876124d6565b945068010000000000000000850291505b6000600c54111561124757611191600c54846124d6565b600c819055508873ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600c546801000000000000000086028161121357fe5b04600d60008282540192505081905550600c546801000000000000000086028161123957fe5b04830282038203915061124f565b82600c819055505b611298600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846124d6565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008284600d540203905080600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061133d8c8b6126b8565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050508a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8e87426113ef611b45565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3600e6000815480929190600101919050555083985050505050505050509392505050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d540203816114d557fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115735780601f1061154857610100808354040283529160200191611573565b820191906000526020600020905b81548152906001019060200180831161155657829003601f168201915b505050505081565b60006115883384846128bc565b6001905092915050565b6000806115b36115ac846115a4612354565b60ff166123e8565b606461241f565b905060006115c18483612438565b905060006115ce8261244f565b9050809350505050919050565b6000600c54905090565b60006115f2838386612ab3565b50611683843361167e600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612438565b6128bc565b600190509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60008060006009549250478311156116cf574792505b6116da83600261241f565b9250600b5442039150600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050909192565b600061179f338461179a600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866124d6565b6128bc565b6001905092915050565b60006117b6600133611a85565b116117c057600080fd5b600033905060006117d2600033611a85565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118fb573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600c54141561199357633b9aca006402540be4000390506119d9565b60006119a6670de0b6b3a7640000612ce4565b905060006119c26119bb83600560ff166123e8565b606461241f565b905060006119d08383612438565b90508093505050505b90565b60006119e6610eb4565b6119ef57600080fd5b6119fa348484610ebd565b5092915050565b60025481565b6000600c54821115611a1857600080fd5b6000611a2383612ce4565b905080915050919050565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a6b610eb4565b611a7457600080fd5b611a7f348333610ebd565b50919050565b600082611a9a57611a958261143d565b611ae5565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae38361143d565b015b905092915050565b600b5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006001905090565b600080600c541415611b6457633b9aca006402540be400019050611bb0565b6000611b77670de0b6b3a7640000612ce4565b90506000611b99611b9283611b8a612354565b60ff166123e8565b606461241f565b90506000611ba783836124d6565b90508093505050505b90565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c495780601f10611c1e57610100808354040283529160200191611c49565b820191906000526020600020905b815481529060010190602001808311611c2c57829003601f168201915b505050505081565b6000611ce33384611cde600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612438565b6128bc565b6001905092915050565b600080611cf933611e09565b11611d0357600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115611d5457600080fd5b6000611d61600133611a85565b1115611d7057611d6f6117a9565b5b611d7b848483612ab3565b91505092915050565b6000600c54821115611d9557600080fd5b6000611da083612ce4565b90506000611dbc611db583600560ff166123e8565b606461241f565b90506000611dca8383612438565b9050809350505050919050565b60076020528060005260406000206000915090505481565b60095481565b60006005600e541115905090565b600e5481565b6000611e1482611af3565b9050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60066020528060005260406000206000915090505481565b6000611ec533611e09565b11611ecf57600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611f2057600080fd5b60008290506000611f3082612ce4565b90506000611f4c611f4583600560ff166123e8565b606461241f565b90506000611f5a8383612438565b9050611f68600c5485612438565b600c81905550611fb7600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612438565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600068010000000000000000820285600d540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600c5411156120915761208a600d54600c546801000000000000000086028161208457fe5b046124d6565b600d819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38573ffffffffffffffffffffffffffffffffffffffff167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e86844261213a611b45565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b600047905090565b60003390506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156121d1576121d081611eba565b5b6121d96117a9565b5050565b60006121ea600133611a85565b116121f457600080fd5b6000612201600033611a85565b90506000339050680100000000000000008202600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006122f783600084610ebd565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000803447039050670de0b6b3a764000081116123755760169150506123e5565b671bc16d674ec80000811161238e5760159150506123e5565b69010f0cf064dd5920000081116123a95760149150506123e5565b69014542ba12a337c0000081116123c45760139150506123e5565b69017b7883c0691660000081116123df5760129150506123e5565b60119150505b90565b6000808314156123fb5760009050612419565b600082840290508284828161240c57fe5b041461241457fe5b809150505b92915050565b60008082848161242b57fe5b0490508091505092915050565b60008282111561244457fe5b818303905092915050565b600080670de0b6b3a76400006402540be4000290506000600c54633b9aca006124c16124bb600c5486633b9aca0060020202026002600c540a6002633b9aca000a02670de0b6b3a76400008a02670de0b6b3a7640000633b9aca0002600202026002890a010101612d85565b85612438565b816124c857fe5b040390508092505050919050565b6000808284019050838110156124e857fe5b8091505092915050565b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060239050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126b15760028360ff1614156125a157601490505b60038360ff1614156125b257600f90505b60048360ff1614806125c7575060058360ff16145b156125d157600a90505b60068360ff1614806125e6575060078360ff16145b156125f057600590505b60006126066125ff86846123e8565b606461241f565b9050612651600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826124d6565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060078460ff1610156126af576126ae8386600187016124f2565b5b505b5050505050565b60006126d16126c942600b54612438565b61a8c061241f565b90506000811180156127325750600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b801561274057506000600954115b156128185760095447101561275757476009819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127a0600954600261241f565b9081150290604051600060405180830381858888f19350505050506127c8600954600261241f565b60098190555042600b819055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600061283861283185612829612354565b60ff166123e8565b606461241f565b905061284f6128488260286123e8565b606461241f565b6009600082825401925050819055506702c68af0bb14000084106128b65782600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600b819055505b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612942576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ded6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612dcb6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080829050612b02600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612438565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8e600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856124d6565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600d5402600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555083600d5402600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b600080670de0b6b3a7640000830190506000670de0b6b3a7640000600c540190506000670de0b6b3a7640000612d70670de0b6b3a76400008503633b9aca00670de0b6b3a76400008681612d3457fe5b04633b9aca00026402540be4000103026002670de0b6b3a7640000876002890a0381612d5c57fe5b04633b9aca000281612d6a57fe5b04612438565b81612d7757fe5b049050809350505050919050565b60008060026001840181612d9557fe5b0490508291505b81811015612dc457809150600281828581612db357fe5b040181612dbc57fe5b049050612d9c565b5091905056fe45524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a7231582046f2496d7b9410f74affd4f350d6bdacdba071c50738aa3bb48b20fd1b7daf6564736f6c634300051100320000000000000000000000003957dd168014a5d2e66a2d84b7c2577a543d59ed

Deployed Bytecode

0x60806040526004361061022f5760003560e01c8063642ad54a1161012e578063cfb5df18116100ab578063e1456cb41161006f578063e1456cb414610dbb578063e4849b3214610e20578063e625d51514610e5b578063e9fad8ee14610e86578063fdb5a03e14610e9d5761022f565b8063cfb5df1814610c4c578063d6dda33d14610c77578063da7af32d14610ca6578063dc1df3f614610cd1578063dd62ed3e14610d365761022f565b806395d89b41116100f257806395d89b4114610a22578063a457c2d714610ab2578063a9059cbb14610b25578063c257c85114610b98578063c664f7f114610be75761022f565b8063642ad54a146108c757806364377fe41461093857806370a0823114610963578063738fdd1a146109c85780638620410b146109f75761022f565b806339509351116101bc578063544736e611610180578063544736e61461073557806356d399e8146107645780635dd103c11461078f5780635df345db146107de5780635e4791751461086f5761022f565b806339509351146105b15780633ccfd60b14610624578063458e237d1461063b5780634b75033414610692578063521ee1ae146106bd5761022f565b806318160ddd1161020357806318160ddd1461040657806323b872dd146104315780632d3e474a146104c4578063313ce5671461051b5780633904d2b11461054c5761022f565b806265318b1461024f57806306fdde03146102b4578063095ea7b31461034457806310d0ffdd146103b7575b610237610eb4565b61024057600080fd5b61024c34600033610ebd565b50005b34801561025b57600080fd5b5061029e6004803603602081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061143d565b6040518082815260200191505060405180910390f35b3480156102c057600080fd5b506102c96114dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103095780820151818401526020810190506102ee565b50505050905090810190601f1680156103365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035057600080fd5b5061039d6004803603604081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061157b565b604051808215151515815260200191505060405180910390f35b3480156103c357600080fd5b506103f0600480360360208110156103da57600080fd5b8101908080359060200190929190505050611592565b6040518082815260200191505060405180910390f35b34801561041257600080fd5b5061041b6115db565b6040518082815260200191505060405180910390f35b34801561043d57600080fd5b506104aa6004803603606081101561045457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b3480156104d057600080fd5b506104d961168e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052757600080fd5b506105306116b4565b604051808260ff1660ff16815260200191505060405180910390f35b34801561055857600080fd5b506105616116b9565b604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061170d565b604051808215151515815260200191505060405180910390f35b34801561063057600080fd5b506106396117a9565b005b34801561064757600080fd5b5061065061194e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069e57600080fd5b506106a7611974565b6040518082815260200191505060405180910390f35b61071f600480360360408110156106d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119dc565b6040518082815260200191505060405180910390f35b34801561074157600080fd5b5061074a610eb4565b604051808215151515815260200191505060405180910390f35b34801561077057600080fd5b50610779611a01565b6040518082815260200191505060405180910390f35b34801561079b57600080fd5b506107c8600480360360208110156107b257600080fd5b8101908080359060200190929190505050611a07565b6040518082815260200191505060405180910390f35b3480156107ea57600080fd5b5061082d6004803603602081101561080157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a2e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108b16004803603602081101561088557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a61565b6040518082815260200191505060405180910390f35b3480156108d357600080fd5b50610922600480360360408110156108ea57600080fd5b81019080803515159060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a85565b6040518082815260200191505060405180910390f35b34801561094457600080fd5b5061094d611aed565b6040518082815260200191505060405180910390f35b34801561096f57600080fd5b506109b26004803603602081101561098657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af3565b6040518082815260200191505060405180910390f35b3480156109d457600080fd5b506109dd611b3c565b604051808215151515815260200191505060405180910390f35b348015610a0357600080fd5b50610a0c611b45565b6040518082815260200191505060405180910390f35b348015610a2e57600080fd5b50610a37611bb3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a77578082015181840152602081019050610a5c565b50505050905090810190601f168015610aa45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610abe57600080fd5b50610b0b60048036036040811015610ad557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c51565b604051808215151515815260200191505060405180910390f35b348015610b3157600080fd5b50610b7e60048036036040811015610b4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ced565b604051808215151515815260200191505060405180910390f35b348015610ba457600080fd5b50610bd160048036036020811015610bbb57600080fd5b8101908080359060200190929190505050611d84565b6040518082815260200191505060405180910390f35b348015610bf357600080fd5b50610c3660048036036020811015610c0a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd7565b6040518082815260200191505060405180910390f35b348015610c5857600080fd5b50610c61611def565b6040518082815260200191505060405180910390f35b348015610c8357600080fd5b50610c8c611df5565b604051808215151515815260200191505060405180910390f35b348015610cb257600080fd5b50610cbb611e03565b6040518082815260200191505060405180910390f35b348015610cdd57600080fd5b50610d2060048036036020811015610cf457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e09565b6040518082815260200191505060405180910390f35b348015610d4257600080fd5b50610da560048036036040811015610d5957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1b565b6040518082815260200191505060405180910390f35b348015610dc757600080fd5b50610e0a60048036036020811015610dde57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ea2565b6040518082815260200191505060405180910390f35b348015610e2c57600080fd5b50610e5960048036036020811015610e4357600080fd5b8101908080359060200190929190505050611eba565b005b348015610e6757600080fd5b50610e7061216d565b6040518082815260200191505060405180910390f35b348015610e9257600080fd5b50610e9b612175565b005b348015610ea957600080fd5b50610eb26121dd565b005b60006001905090565b6000808411610ecb57600080fd5b6000610eeb610ee486610edc612354565b60ff166123e8565b606461241f565b90506000610f07610f0083601e60ff166123e8565b606461241f565b90506000610f158383612438565b90506000610f238885612438565b90506000610f308261244f565b9050600068010000000000000000840290506000610f59610f528c60046123e8565b606461241f565b9050600083118015610f775750600c54610f7584600c546124d6565b115b610f8057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614158015610fe957508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b80156110365750600254600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561115f57600073ffffffffffffffffffffffffffffffffffffffff16600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561114e5789600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61115a898760016124f2565b61117a565b61116985876124d6565b945068010000000000000000850291505b6000600c54111561124757611191600c54846124d6565b600c819055508873ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600c546801000000000000000086028161121357fe5b04600d60008282540192505081905550600c546801000000000000000086028161123957fe5b04830282038203915061124f565b82600c819055505b611298600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846124d6565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008284600d540203905080600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061133d8c8b6126b8565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050508a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8e87426113ef611b45565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3600e6000815480929190600101919050555083985050505050505050509392505050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d540203816114d557fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115735780601f1061154857610100808354040283529160200191611573565b820191906000526020600020905b81548152906001019060200180831161155657829003601f168201915b505050505081565b60006115883384846128bc565b6001905092915050565b6000806115b36115ac846115a4612354565b60ff166123e8565b606461241f565b905060006115c18483612438565b905060006115ce8261244f565b9050809350505050919050565b6000600c54905090565b60006115f2838386612ab3565b50611683843361167e600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612438565b6128bc565b600190509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60008060006009549250478311156116cf574792505b6116da83600261241f565b9250600b5442039150600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050909192565b600061179f338461179a600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866124d6565b6128bc565b6001905092915050565b60006117b6600133611a85565b116117c057600080fd5b600033905060006117d2600033611a85565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118fb573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600c54141561199357633b9aca006402540be4000390506119d9565b60006119a6670de0b6b3a7640000612ce4565b905060006119c26119bb83600560ff166123e8565b606461241f565b905060006119d08383612438565b90508093505050505b90565b60006119e6610eb4565b6119ef57600080fd5b6119fa348484610ebd565b5092915050565b60025481565b6000600c54821115611a1857600080fd5b6000611a2383612ce4565b905080915050919050565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a6b610eb4565b611a7457600080fd5b611a7f348333610ebd565b50919050565b600082611a9a57611a958261143d565b611ae5565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae38361143d565b015b905092915050565b600b5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006001905090565b600080600c541415611b6457633b9aca006402540be400019050611bb0565b6000611b77670de0b6b3a7640000612ce4565b90506000611b99611b9283611b8a612354565b60ff166123e8565b606461241f565b90506000611ba783836124d6565b90508093505050505b90565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c495780601f10611c1e57610100808354040283529160200191611c49565b820191906000526020600020905b815481529060010190602001808311611c2c57829003601f168201915b505050505081565b6000611ce33384611cde600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612438565b6128bc565b6001905092915050565b600080611cf933611e09565b11611d0357600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115611d5457600080fd5b6000611d61600133611a85565b1115611d7057611d6f6117a9565b5b611d7b848483612ab3565b91505092915050565b6000600c54821115611d9557600080fd5b6000611da083612ce4565b90506000611dbc611db583600560ff166123e8565b606461241f565b90506000611dca8383612438565b9050809350505050919050565b60076020528060005260406000206000915090505481565b60095481565b60006005600e541115905090565b600e5481565b6000611e1482611af3565b9050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60066020528060005260406000206000915090505481565b6000611ec533611e09565b11611ecf57600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611f2057600080fd5b60008290506000611f3082612ce4565b90506000611f4c611f4583600560ff166123e8565b606461241f565b90506000611f5a8383612438565b9050611f68600c5485612438565b600c81905550611fb7600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612438565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600068010000000000000000820285600d540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600c5411156120915761208a600d54600c546801000000000000000086028161208457fe5b046124d6565b600d819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38573ffffffffffffffffffffffffffffffffffffffff167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e86844261213a611b45565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b600047905090565b60003390506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156121d1576121d081611eba565b5b6121d96117a9565b5050565b60006121ea600133611a85565b116121f457600080fd5b6000612201600033611a85565b90506000339050680100000000000000008202600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006122f783600084610ebd565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000803447039050670de0b6b3a764000081116123755760169150506123e5565b671bc16d674ec80000811161238e5760159150506123e5565b69010f0cf064dd5920000081116123a95760149150506123e5565b69014542ba12a337c0000081116123c45760139150506123e5565b69017b7883c0691660000081116123df5760129150506123e5565b60119150505b90565b6000808314156123fb5760009050612419565b600082840290508284828161240c57fe5b041461241457fe5b809150505b92915050565b60008082848161242b57fe5b0490508091505092915050565b60008282111561244457fe5b818303905092915050565b600080670de0b6b3a76400006402540be4000290506000600c54633b9aca006124c16124bb600c5486633b9aca0060020202026002600c540a6002633b9aca000a02670de0b6b3a76400008a02670de0b6b3a7640000633b9aca0002600202026002890a010101612d85565b85612438565b816124c857fe5b040390508092505050919050565b6000808284019050838110156124e857fe5b8091505092915050565b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060239050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126b15760028360ff1614156125a157601490505b60038360ff1614156125b257600f90505b60048360ff1614806125c7575060058360ff16145b156125d157600a90505b60068360ff1614806125e6575060078360ff16145b156125f057600590505b60006126066125ff86846123e8565b606461241f565b9050612651600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826124d6565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060078460ff1610156126af576126ae8386600187016124f2565b5b505b5050505050565b60006126d16126c942600b54612438565b61a8c061241f565b90506000811180156127325750600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b801561274057506000600954115b156128185760095447101561275757476009819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127a0600954600261241f565b9081150290604051600060405180830381858888f19350505050506127c8600954600261241f565b60098190555042600b819055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600061283861283185612829612354565b60ff166123e8565b606461241f565b905061284f6128488260286123e8565b606461241f565b6009600082825401925050819055506702c68af0bb14000084106128b65782600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600b819055505b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612942576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ded6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612dcb6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080829050612b02600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612438565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8e600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856124d6565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600d5402600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555083600d5402600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b600080670de0b6b3a7640000830190506000670de0b6b3a7640000600c540190506000670de0b6b3a7640000612d70670de0b6b3a76400008503633b9aca00670de0b6b3a76400008681612d3457fe5b04633b9aca00026402540be4000103026002670de0b6b3a7640000876002890a0381612d5c57fe5b04633b9aca000281612d6a57fe5b04612438565b81612d7757fe5b049050809350505050919050565b60008060026001840181612d9557fe5b0490508291505b81811015612dc457809150600281828581612db357fe5b040181612dbc57fe5b049050612d9c565b5091905056fe45524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a7231582046f2496d7b9410f74affd4f350d6bdacdba071c50738aa3bb48b20fd1b7daf6564736f6c63430005110032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000003957dd168014a5d2e66a2d84b7c2577a543d59ed

-----Decoded View---------------
Arg [0] : _marketing (address): 0x3957dd168014a5D2E66a2d84b7c2577a543d59eD

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003957dd168014a5d2e66a2d84b7c2577a543d59ed


Deployed Bytecode Sourcemap

170:24637:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:11;:9;:11::i;:::-;661:20;;;;;;3959:51;3974:9;3993:3;3999:10;3959:14;:51::i;:::-;;170:24637;12576:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12576:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12576:224:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1854:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1854:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1854:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8167:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8167:177:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8167:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14055:353;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14055:353:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14055:353:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11404:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11404:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9833:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9833:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9833:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2500:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2500:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1924:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1924:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15851:336;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15851:336:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8745:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8745:223:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8745:223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5958:646;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5958:646:0;;;:::i;:::-;;3096:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3096:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12867:508;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12867:508:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4415:198;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4415:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16373:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16373:111:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2415:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2415:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14969:381;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14969:381:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14969:381:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3013:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3013:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3013:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4137:154;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4137:154:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12037:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12037:254:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12037:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3141:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3141:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12363:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12363:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12363:138:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5495:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5495:58:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13441:509;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13441:509:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1889:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1889:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1889:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8976:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8976:233:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8976:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9299:525;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9299:525:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9299:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14514:374;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14514:374:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14514:374:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2940:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2940:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2940:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3069:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3069:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16235:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16235:88:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3258:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3258:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11546:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11546:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11546:127:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8021:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8021:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8021:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2889:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2889:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2889:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6653:1311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6653:1311:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6653:1311:0;;;;;;;;;;;;;;;;;:::i;:::-;;11243:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11243:106:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5608:289;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5608:289:0;;;:::i;:::-;;4681:764;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4681:764:0;;;:::i;:::-;;16373:111;16415:4;16437;16430:11;;16373:111;:::o;16709:3750::-;16831:7;16894:1;16877:14;:18;16868:28;;;;;;16911:27;16941:59;16954:40;16967:14;16983:10;:8;:10::i;:::-;16954:40;;:12;:40::i;:::-;16996:3;16941:12;:59::i;:::-;16911:89;;17011:22;17036:66;17049:47;17062:19;2126:2;17049:47;;:12;:47::i;:::-;17098:3;17036:12;:66::i;:::-;17011:91;;17113:18;17134:49;17147:19;17168:14;17134:12;:49::i;:::-;17113:70;;17194:19;17216:49;17229:14;17245:19;17216:12;:49::i;:::-;17194:71;;17276:23;17302:27;17317:11;17302:14;:27::i;:::-;17276:53;;17340:12;2348:7;17355:10;:22;17340:37;;17382:18;17403:50;17416:31;17429:14;17445:1;17416:12;:31::i;:::-;17449:3;17403:12;:50::i;:::-;17382:71;;17831:1;17813:15;:19;:81;;;;;17882:12;;17836:43;17849:15;17866:12;;17836;:43::i;:::-;:58;17813:81;17805:90;;;;;;18044:3;18021:27;;:11;:27;;;;:106;;;;;18111:16;18096:31;;:11;:31;;;;18021:106;:303;;;;;18306:18;;18270:19;:32;18290:11;18270:32;;;;;;;;;;;;;;;;:54;;18021:303;17958:835;;;18424:3;18384:44;;:10;:28;18395:16;18384:28;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;18380:106;;;18468:11;18437:10;:28;18448:16;18437:28;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18380:106;18491:55;18510:16;18528:14;18544:1;18491:18;:55::i;:::-;17958:835;;;18697:40;18710:10;18722:14;18697:12;:40::i;:::-;18684:53;;2348:7;18759:10;:22;18752:29;;17958:835;18872:1;18857:12;;:16;18853:724;;;18944:43;18957:12;;18971:15;18944:12;:43::i;:::-;18929:12;:58;;;;19044:16;19021:57;;19038:3;19021:57;;;19062:15;19021:57;;;;;;;;;;;;;;;;;;19264:12;;2348:7;19239:10;:22;:37;;;;;;19219:15;;:58;;;;;;;;;;;19448:12;;2348:7;19423:10;:22;:37;;;;;;19404:15;:57;19396:4;:66;19388:4;:75;19381:82;;18853:724;;;19550:15;19535:12;:30;;;;18853:724;19705:68;19718:19;:37;19738:16;19718:37;;;;;;;;;;;;;;;;19757:15;19705:12;:68::i;:::-;19665:19;:37;19685:16;19665:37;;;;;;;;;;;;;;;:108;;;;19954:22;20025:4;20007:15;19989;;:33;:40;19954:76;;20073:15;20041:10;:28;20052:16;20041:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;20121:50;20138:14;20154:16;20121;:50::i;:::-;20204:9;;;;;;;;;;;:14;;:26;20219:10;20204:26;;;;;;;;;;;;;;;;;;;;;;;;20338:11;20271:96;;20287:16;20271:96;;;20305:14;20321:15;20351:3;20356:10;:8;:10::i;:::-;20271:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20403:13;;:15;;;;;;;;;;;;;20436;20429:22;;;;;;;;;;16709:3750;;;;;:::o;12576:224::-;12644:7;2348;12751:10;:28;12762:16;12751:28;;;;;;;;;;;;;;;;12710:19;:37;12730:16;12710:37;;;;;;;;;;;;;;;;12692:15;;:55;12682:97;12671:121;;;;;;12664:128;;12576:224;;;:::o;1854:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8167:177::-;8243:4;8260:54;8276:10;8288:8;8298:15;8260;:54::i;:::-;8332:4;8325:11;;8167:177;;;;:::o;14055:353::-;14132:7;14152:18;14173:58;14186:39;14199:13;14214:10;:8;:10::i;:::-;14186:39;;:12;:39::i;:::-;14227:3;14173:12;:58::i;:::-;14152:79;;14242:19;14264:39;14277:13;14292:10;14264:12;:39::i;:::-;14242:61;;14314:23;14340:27;14355:11;14340:14;:27::i;:::-;14314:53;;14385:15;14378:22;;;;;14055:353;;;:::o;11404:91::-;11448:7;11475:12;;11468:19;;11404:91;:::o;9833:333::-;9938:4;9955:59;9972:10;9984:15;10001:12;9955:16;:59::i;:::-;;10025:111;10041:12;10055:10;10067:68;10080:11;:25;10092:12;10080:25;;;;;;;;;;;;;;;:37;10106:10;10080:37;;;;;;;;;;;;;;;;10119:15;10067:12;:68::i;:::-;10025:15;:111::i;:::-;10154:4;10147:11;;9833:333;;;;;:::o;2500:32::-;;;;;;;;;;;;;:::o;1924:35::-;1957:2;1924:35;:::o;15851:336::-;15895:15;15912:13;15927:24;15968:8;;15958:18;;15995:21;15985:7;:31;15981:80;;;16034:21;16024:31;;15981:80;16075:23;16088:7;16096:1;16075:12;:23::i;:::-;16065:33;;16121:17;;16115:3;:23;16107:31;;16162:17;;;;;;;;;;;16143:36;;15851:336;;;:::o;8745:223::-;8825:4;8842:96;8858:10;8870:7;8879:58;8892:11;:23;8904:10;8892:23;;;;;;;;;;;;;;;:32;8916:7;8892:32;;;;;;;;;;;;;;;;8926:10;8879:12;:58::i;:::-;8842:15;:96::i;:::-;8956:4;8949:11;;8745:223;;;;:::o;5958:646::-;569:1;537:29;549:4;555:10;537:11;:29::i;:::-;:33;529:42;;;;;;6036:32;6071:10;6036:45;;6092:18;6113:30;6125:5;6132:10;6113:11;:30::i;:::-;6092:51;;2348:7;6270:10;:22;6228:10;:28;6239:16;6228:28;;;;;;;;;;;;;;;;:65;;;;;;;;;;;6347:16;:34;6364:16;6347:34;;;;;;;;;;;;;;;;6333:48;;;;6429:1;6392:16;:34;6409:16;6392:34;;;;;;;;;;;;;;;:38;;;;6478:16;:25;;:37;6504:10;6478:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6478:37:0;6567:16;6556:40;;;6585:10;6556:40;;;;;;;;;;;;;;;;;;582:1;;5958:646::o;3096:40::-;;;;;;;;;;;;;:::o;12867:508::-;12909:7;13029:1;13013:12;;:17;13009:359;;;2284:17;2210:16;13054:43;13047:50;;;;13009:359;13130:14;13147:20;13162:4;13147:14;:20::i;:::-;13130:37;;13182:18;13203:49;13216:30;13229:6;2048:1;13216:30;;:12;:30::i;:::-;13248:3;13203:12;:49::i;:::-;13182:70;;13267:19;13289:32;13302:6;13310:10;13289:12;:32::i;:::-;13267:54;;13345:11;13338:18;;;;;12867:508;;:::o;4415:198::-;4528:7;669:11;:9;:11::i;:::-;661:20;;;;;;4548:57;4563:9;4574:11;4588:16;4548:14;:57::i;:::-;;4415:198;;;;:::o;2415:42::-;;;;:::o;14969:381::-;15052:7;15097:12;;15080:13;:29;;15072:38;;;;;;15121:14;15138:29;15153:13;15138:14;:29::i;:::-;15121:46;;15336:6;15329:13;;;14969:381;;;:::o;3013:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4137:154::-;4212:7;669:11;:9;:11::i;:::-;661:20;;;;;;4232:51;4247:9;4258:11;4272:10;4232:14;:51::i;:::-;;4137:154;;;:::o;12037:254::-;12133:7;12160:21;:122;;12253:29;12265:16;12253:11;:29::i;:::-;12160:122;;;12216:16;:34;12233:16;12216:34;;;;;;;;;;;;;;;;12184:29;12196:16;12184:11;:29::i;:::-;:66;12160:122;12153:129;;12037:254;;;;:::o;3141:32::-;;;;:::o;12363:138::-;12429:7;12456:19;:37;12476:16;12456:37;;;;;;;;;;;;;;;;12449:44;;12363:138;;;:::o;5495:58::-;5525:4;5544;5537:11;;5495:58;:::o;13441:509::-;13482:7;13602:1;13586:12;;:17;13582:361;;;2284:17;2210:16;13627:43;13620:50;;;;13582:361;13703:14;13720:20;13735:4;13720:14;:20::i;:::-;13703:37;;13755:18;13776:51;13789:32;13802:6;13810:10;:8;:10::i;:::-;13789:32;;:12;:32::i;:::-;13823:3;13776:12;:51::i;:::-;13755:72;;13842:19;13864:32;13877:6;13885:10;13864:12;:32::i;:::-;13842:54;;13920:11;13913:18;;;;;13441:509;;:::o;1889:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8976:233::-;9061:4;9078:101;9094:10;9106:7;9115:63;9128:11;:23;9140:10;9128:23;;;;;;;;;;;;;;;:32;9152:7;9128:32;;;;;;;;;;;;;;;;9162:15;9115:12;:63::i;:::-;9078:15;:101::i;:::-;9197:4;9190:11;;8976:233;;;;:::o;9299:525::-;9393:4;423:1;400:20;409:10;400:8;:20::i;:::-;:24;392:33;;;;;;9428:24;9455:10;9428:37;;9556:19;:37;9576:16;9556:37;;;;;;;;;;;;;;;;9537:15;:56;;9529:65;;;;;;9696:1;9664:29;9676:4;9682:10;9664:11;:29::i;:::-;:33;9660:76;;;9714:10;:8;:10::i;:::-;9660:76;9755:61;9772:10;9783:15;9799:16;9755;:61::i;:::-;9748:68;;;9299:525;;;;:::o;14514:374::-;14590:7;14635:12;;14618:13;:29;;14610:38;;;;;;14659:14;14676:29;14691:13;14676:14;:29::i;:::-;14659:46;;14716:18;14737:49;14750:30;14763:6;2048:1;14750:30;;:12;:30::i;:::-;14782:3;14737:12;:49::i;:::-;14716:70;;14797:19;14819:32;14832:6;14840:10;14819:12;:32::i;:::-;14797:54;;14869:11;14862:18;;;;;14514:374;;;:::o;2940:51::-;;;;;;;;;;;;;;;;;:::o;3069:23::-;;;;:::o;16235:88::-;16277:4;16314:1;16299:13;;:16;;16292:23;;16235:88;:::o;3258:28::-;;;;:::o;11546:127::-;11611:7;11638:27;11648:16;11638:9;:27::i;:::-;11631:34;;11546:127;;;:::o;8021:138::-;8095:7;8122:11;:19;8134:6;8122:19;;;;;;;;;;;;;;;:29;8142:8;8122:29;;;;;;;;;;;;;;;;8115:36;;8021:138;;;;:::o;2889:44::-;;;;;;;;;;;;;;;;;:::o;6653:1311::-;423:1;400:20;409:10;400:8;:20::i;:::-;:24;392:33;;;;;;6748:24;6775:10;6748:37;;6856:19;:37;6876:16;6856:37;;;;;;;;;;;;;;;;6837:15;:56;;6829:65;;;;;;6905:15;6923;6905:33;;6949:14;6966:23;6981:7;6966:14;:23::i;:::-;6949:40;;7000:18;7021:49;7034:30;7047:6;2048:1;7034:30;;:12;:30::i;:::-;7066:3;7021:12;:49::i;:::-;7000:70;;7081:19;7103:32;7116:6;7124:10;7103:12;:32::i;:::-;7081:54;;7196:35;7209:12;;7223:7;7196:12;:35::i;:::-;7181:12;:50;;;;7282:60;7295:19;:37;7315:16;7295:37;;;;;;;;;;;;;;;;7334:7;7282:12;:60::i;:::-;7242:19;:37;7262:16;7242:37;;;;;;;;;;;;;;;:100;;;;7392:22;2348:7;7456:11;:23;7445:7;7427:15;;:25;:53;7392:89;;7524:15;7492:10;:28;7503:16;7492:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;7614:1;7599:12;;:16;7595:194;;;7707:70;7720:15;;7764:12;;2348:7;7738:10;:22;7737:39;;;;;;7707:12;:70::i;:::-;7689:15;:88;;;;7595:194;7858:3;7823:49;;7832:16;7823:49;;;7864:7;7823:49;;;;;;;;;;;;;;;;;;7900:16;7888:68;;;7918:7;7927:11;7940:3;7945:10;:8;:10::i;:::-;7888:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;436:1;;;;;;6653:1311;:::o;11243:106::-;11293:7;11320:21;11313:28;;11243:106;:::o;5608:289::-;5697:24;5724:10;5697:37;;5745:15;5763:19;:37;5783:16;5763:37;;;;;;;;;;;;;;;;5745:55;;5825:1;5815:7;:11;5811:30;;;5828:13;5833:7;5828:4;:13::i;:::-;5811:30;5879:10;:8;:10::i;:::-;5608:289;;:::o;4681:764::-;569:1;537:29;549:4;555:10;537:11;:29::i;:::-;:33;529:42;;;;;;4764:18;4785:30;4797:5;4804:10;4785:11;:30::i;:::-;4764:51;;4913:32;4948:10;4913:45;;2348:7;5012:10;:22;4969:10;:28;4980:16;4969:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;5094:16;:34;5111:16;5094:34;;;;;;;;;;;;;;;;5080:48;;;;5176:1;5139:16;:34;5156:16;5139:34;;;;;;;;;;;;;;;:38;;;;5266:15;5284:59;5299:10;5319:3;5326:16;5284:14;:59::i;:::-;5266:77;;5399:16;5384:53;;;5417:10;5429:7;5384:53;;;;;;;;;;;;;;;;;;;;;;;;582:1;;;4681:764::o;15358:442::-;15400:5;15415:14;15457:9;15432:21;:34;15415:51;;15489:7;15481:6;:15;15477:50;;15515:2;15508:9;;;;;15477:50;15547:7;15539:6;:15;15535:50;;15573:2;15566:9;;;;;15535:50;15605:10;15597:6;:18;15593:53;;15634:2;15627:9;;;;;15593:53;15666:10;15658:6;:18;15654:53;;15695:2;15688:9;;;;;15654:53;15727:10;15719:6;:18;15715:53;;15756:2;15749:9;;;;;15715:53;15785:2;15778:9;;;15358:442;;:::o;25004:208::-;25062:7;25091:1;25086;:6;25082:47;;;25116:1;25109:8;;;;25082:47;25139:9;25155:1;25151;:5;25139:17;;25183:1;25178;25174;:5;;;;;;:10;25167:18;;;;25203:1;25196:8;;;25004:208;;;;;:::o;25307:288::-;25365:7;25464:9;25480:1;25476;:5;;;;;;25464:17;;25586:1;25579:8;;;25307:288;;;;:::o;25721:123::-;25779:7;25811:1;25806;:6;;25799:14;;;;25835:1;25831;:5;25824:12;;25721:123;;;;:::o;22621:939::-;22684:7;22704:26;22754:4;2210:16;22733:25;22704:54;;22769:23;23504:12;;2284:17;22883:564;22919:466;23345:12;;23326:18;2284:17;23297:1;:26;:47;:60;23232:1;23216:12;;:17;23210:1;2284:17;23184:27;23183:51;23115:4;23106:6;:13;23097:4;2284:17;23072:29;23067:1;:35;:53;23003:1;22981:18;:23;22980:141;:255;:378;22919:4;:466::i;:::-;23410:18;22883:12;:564::i;:::-;22820:669;;;;;;22805:712;22769:748;;23537:15;23530:22;;;;22621:939;;;:::o;25919:147::-;25977:7;25997:9;26013:1;26009;:5;25997:17;;26037:1;26032;:6;;26025:14;;;;26057:1;26050:8;;;25919:147;;;;:::o;20627:686::-;20733:19;20755:10;:28;20766:16;20755:28;;;;;;;;;;;;;;;;;;;;;;;;;20733:50;;20788:16;20807:2;20788:21;;20841:3;20818:27;;:11;:27;;;20814:495;;20867:1;20857:6;:11;;;20853:30;;;20881:2;20870:13;;20853:30;20903:1;20893:6;:11;;;20889:30;;;20917:2;20906:13;;20889:30;20939:1;20929:6;:11;;;:26;;;;20954:1;20944:6;:11;;;20929:26;20925:45;;;20968:2;20957:13;;20925:45;20990:1;20980:6;:11;;;:26;;;;21005:1;20995:6;:11;;;20980:26;20976:44;;;21019:1;21008:12;;20976:44;21026:25;21054:57;21067:38;21080:14;21096:8;21067:12;:38::i;:::-;21107:3;21054:12;:57::i;:::-;21026:85;;21149:62;21162:16;:29;21179:11;21162:29;;;;;;;;;;;;;;;;21193:17;21149:12;:62::i;:::-;21117:16;:29;21134:11;21117:29;;;;;;;;;;;;;;;:94;;;;21230:1;21221:6;:10;;;21217:87;;;21240:57;21259:11;21272:14;21295:1;21288:6;:8;21240:18;:57::i;:::-;21217:87;20814:495;;20627:686;;;;;:::o;21497:822::-;21595:13;21611:60;21624:36;21637:3;21642:17;;21624:12;:36::i;:::-;21662:8;21611:12;:60::i;:::-;21595:76;;21688:1;21680:5;:9;:46;;;;;21722:3;21693:33;;:17;;;;;;;;;;;:33;;;;21680:46;:62;;;;;21741:1;21730:8;;:12;21680:62;21676:349;;;21796:8;;21772:21;:32;21768:84;;;21824:21;21813:8;:32;;;;21768:84;21863:17;;;;;;;;;;;:22;;:48;21886:24;21899:8;;21908:1;21886:12;:24::i;:::-;21863:48;;;;;;;;;;;;;;;;;;;;;;;;21928:24;21941:8;;21950:1;21928:12;:24::i;:::-;21917:8;:35;;;;21978:3;21958:17;:23;;;;22015:3;21987:17;;:32;;;;;;;;;;;;;;;;;;21676:349;22033:27;22063:59;22076:40;22089:14;22105:10;:8;:10::i;:::-;22076:40;;:12;:40::i;:::-;22118:3;22063:12;:59::i;:::-;22033:89;;22139:56;22152:37;22165:19;22186:2;22152:12;:37::i;:::-;22191:3;22139:12;:56::i;:::-;22127:8;;:68;;;;;;;;;;;22226:9;22208:14;:27;22204:111;;22264:16;22244:17;;:36;;;;;;;;;;;;;;;;;;22306:3;22286:17;:23;;;;22204:111;21497:822;;;;:::o;8352:384::-;8482:3;8464:22;;:6;:22;;;;8456:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8566:3;8546:24;;:8;:24;;;;8538:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8654:15;8622:11;:19;8634:6;8622:19;;;;;;;;;;;;;;;:29;8642:8;8622:29;;;;;;;;;;;;;;;:47;;;;8702:8;8685:43;;8694:6;8685:43;;;8712:15;8685:43;;;;;;;;;;;;;;;;;;8352:384;;;:::o;10175:795::-;10287:4;10322:24;10349:12;10322:39;;10442:68;10455:19;:37;10475:16;10455:37;;;;;;;;;;;;;;;;10494:15;10442:12;:68::i;:::-;10402:19;:37;10422:16;10402:37;;;;;;;;;;;;;;;:108;;;;10555:62;10568:19;:31;10588:10;10568:31;;;;;;;;;;;;;;;;10601:15;10555:12;:62::i;:::-;10521:19;:31;10541:10;10521:31;;;;;;;;;;;;;;;:96;;;;10727:15;10709;;:33;10667:10;:28;10678:16;10667:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;10808:15;10790;;:33;10754:10;:22;10765:10;10754:22;;;;;;;;;;;;;;;;:70;;;;;;;;;;;10892:10;10865:55;;10874:16;10865:55;;;10904:15;10865:55;;;;;;;;;;;;;;;;;;10958:4;10951:11;;;10175:795;;;;;:::o;23829:707::-;23893:7;23913:15;23942:4;23932:7;:14;23913:34;;23958:20;23997:4;23982:12;;:19;23958:44;;24013:22;24489:4;24102:375;24372:4;24362:7;:14;2284:17;24277:4;24262:12;:19;;;;;;2284:17;24236:46;2210:16;24214:69;24183:152;24156:221;24461:1;24452:4;24441:7;24437:1;24426:7;:12;:22;24425:31;;;;;;2284:17;24399:58;24398:64;;;;;;24102:12;:375::i;:::-;:391;;;;;;24013:481;;24514:14;24507:21;;;;;23829:707;;;:::o;24591:209::-;24639:9;24661;24683:1;24678;24674;:5;24673:11;;;;;;24661:23;;24699:1;24695:5;;24713:80;24724:1;24720;:5;24713:80;;;24746:1;24742:5;;24780:1;24775;24771;24767;:5;;;;;;:9;24766:15;;;;;;24762:19;;24713:80;;;24591:209;;;;:::o

Swarm Source

bzzr://46f2496d7b9410f74affd4f350d6bdacdba071c50738aa3bb48b20fd1b7daf65

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.