ETH Price: $2,664.32 (-1.46%)

Contract

0xE65f525Ec48c7E95654B9824ecc358454EA9185e
 

Overview

ETH Balance

95.864472930562909084 ETH

Eth Value

$255,413.25 (@ $2,664.32/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exit202745412024-07-10 7:15:35221 days ago1720595735IN
0xE65f525E...54EA9185e
0 ETH0.000484486.57271424
Exit181750702023-09-20 5:38:11515 days ago1695188291IN
0xE65f525E...54EA9185e
0 ETH0.0007800710.58275509
Exit181052732023-09-10 10:07:11525 days ago1694340431IN
0xE65f525E...54EA9185e
0 ETH0.0008936212.12315676
Withdraw126160382021-06-11 22:56:021346 days ago1623452162IN
0xE65f525E...54EA9185e
0 ETH0.0004278710
Withdraw118003872021-02-06 3:50:231472 days ago1612583423IN
0xE65f525E...54EA9185e
0 ETH0.00805214181
Sell118003782021-02-06 3:48:381472 days ago1612583318IN
0xE65f525E...54EA9185e
0 ETH0.01358036188
Withdraw118003462021-02-06 3:42:201472 days ago1612582940IN
0xE65f525E...54EA9185e
0 ETH0.0092088207
Withdraw114923972020-12-20 20:30:021519 days ago1608496202IN
0xE65f525E...54EA9185e
0 ETH0.0014235832
Sell114923862020-12-20 20:27:581519 days ago1608496078IN
0xE65f525E...54EA9185e
0 ETH0.0028894440
Withdraw114158862020-12-09 2:10:001531 days ago1607479800IN
0xE65f525E...54EA9185e
0 ETH0.0012901229
Withdraw113076812020-11-22 11:14:571547 days ago1606043697IN
0xE65f525E...54EA9185e
0 ETH0.0012011427
Withdraw111914852020-11-04 15:31:081565 days ago1604503868IN
0xE65f525E...54EA9185e
0 ETH0.0019129443
Sell111914852020-11-04 15:31:081565 days ago1604503868IN
0xE65f525E...54EA9185e
0 ETH0.0026411236.562501
Withdraw111856622020-11-03 18:05:511566 days ago1604426751IN
0xE65f525E...54EA9185e
0 ETH0.0012456328
Sell111855242020-11-03 17:34:201566 days ago1604424860IN
0xE65f525E...54EA9185e
0 ETH0.0020951929
Withdraw111854802020-11-03 17:22:581566 days ago1604424178IN
0xE65f525E...54EA9185e
0 ETH0.0013346130
Withdraw111749162020-11-02 2:18:231568 days ago1604283503IN
0xE65f525E...54EA9185e
0 ETH0.0017349939.00000145
Sell111749042020-11-02 2:15:561568 days ago1604283356IN
0xE65f525E...54EA9185e
0 ETH0.0028899240
Withdraw111126422020-10-23 12:55:521577 days ago1603457752IN
0xE65f525E...54EA9185e
0 ETH0.0020019145
Withdraw110691112020-10-16 20:31:291584 days ago1602880289IN
0xE65f525E...54EA9185e
0 ETH0.0017349939
Withdraw110361262020-10-11 19:25:501589 days ago1602444350IN
0xE65f525E...54EA9185e
0 ETH0.0011566626
Sell110360642020-10-11 19:11:161589 days ago1602443476IN
0xE65f525E...54EA9185e
0 ETH0.0018781326
Sell109946482020-10-05 8:28:521595 days ago1601886532IN
0xE65f525E...54EA9185e
0 ETH0.0047675766
Withdraw109942102020-10-05 6:53:161595 days ago1601880796IN
0xE65f525E...54EA9185e
0 ETH0.0029361466
Withdraw109029702020-09-21 2:03:011610 days ago1600653781IN
0xE65f525E...54EA9185e
0 ETH0.0036034481.00000145
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
202745412024-07-10 7:15:35221 days ago1720595735
0xE65f525E...54EA9185e
0.07794389 ETH
202745412024-07-10 7:15:35221 days ago1720595735
0xE65f525E...54EA9185e
0.00016283 ETH
181750702023-09-20 5:38:11515 days ago1695188291
0xE65f525E...54EA9185e
0.00411264 ETH
181750702023-09-20 5:38:11515 days ago1695188291
0xE65f525E...54EA9185e
0.00000504 ETH
181052732023-09-10 10:07:11525 days ago1694340431
0xE65f525E...54EA9185e
0.00357476 ETH
181052732023-09-10 10:07:11525 days ago1694340431
0xE65f525E...54EA9185e
0.00000462 ETH
126160382021-06-11 22:56:021346 days ago1623452162
0xE65f525E...54EA9185e
0.0086294 ETH
118003872021-02-06 3:50:231472 days ago1612583423
0xE65f525E...54EA9185e
0.1617354 ETH
118003782021-02-06 3:48:381472 days ago1612583318
0xE65f525E...54EA9185e
0.00341694 ETH
118003462021-02-06 3:42:201472 days ago1612582940
0xE65f525E...54EA9185e
0.03195837 ETH
114923972020-12-20 20:30:021519 days ago1608496202
0xE65f525E...54EA9185e
0.02926131 ETH
114923862020-12-20 20:27:581519 days ago1608496078
0xE65f525E...54EA9185e
0.00047751 ETH
114158862020-12-09 2:10:001531 days ago1607479800
0xE65f525E...54EA9185e
0.09835814 ETH
113076812020-11-22 11:14:571547 days ago1606043697
0xE65f525E...54EA9185e
0.01745374 ETH
111914852020-11-04 15:31:081565 days ago1604503868
0xE65f525E...54EA9185e
0.86751847 ETH
111914852020-11-04 15:31:081565 days ago1604503868
0xE65f525E...54EA9185e
0.01142291 ETH
111856622020-11-03 18:05:511566 days ago1604426751
0xE65f525E...54EA9185e
0.04423604 ETH
111855242020-11-03 17:34:201566 days ago1604424860
0xE65f525E...54EA9185e
0.00093456 ETH
111854802020-11-03 17:22:581566 days ago1604424178
0xE65f525E...54EA9185e
0.00785818 ETH
111749162020-11-02 2:18:231568 days ago1604283503
0xE65f525E...54EA9185e
0.03306295 ETH
111749042020-11-02 2:15:561568 days ago1604283356
0xE65f525E...54EA9185e
0.00069329 ETH
111126422020-10-23 12:55:521577 days ago1603457752
0xE65f525E...54EA9185e
0.02030793 ETH
110691112020-10-16 20:31:291584 days ago1602880289
0xE65f525E...54EA9185e
0.04772096 ETH
110361262020-10-11 19:25:501589 days ago1602444350
0xE65f525E...54EA9185e
0.28283361 ETH
110360642020-10-11 19:11:161589 days ago1602443476
0xE65f525E...54EA9185e
0.0056932 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AceDapp

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2019-10-25
*/

pragma solidity ^0.4.25;
 
/*
*
* Eth Exchange by AceWins.io
* 24% Buy Fees
* 24% Sell Fees
* 1% Transfer Fees
* 8% Affiliate Commission
* 0.10% Daily Interest (As long as sufficient ETH is available in the allocated pool)
* Website: https://www.acedapp.net
* Casino Website: https://www.acewins.io
*/


contract Ownable {
    
    address public owner;

    constructor() public {
        owner = msg.sender;
    }
    

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

}


contract AceDapp is Ownable{
    using SafeMath for uint256;
    
     modifier onlyBagholders {
        require(myTokens() > 0);
        _;
    }
      
     modifier onlyStronghands {
        require(myDividends(true) > 0);
        _;
    }
    
   
      
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp,
        uint256 price
);

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

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

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
);

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
);

    string public name = "ETH Exchange";
    string public symbol = "ATH";
    uint8 constant public decimals = 18;
    uint8 constant internal entryFee_ = 29; //Includes the dev fee & the money alloted for the daily fixed interest. 24% is the actual fee charged for buy.
    uint8 constant internal transferFee_ = 1;
    uint8 constant internal ExitFee_ = 24; 
    uint8 constant internal refferalFee_ = 8;
    uint8 constant internal DevFee_ = 15; //Actual dev fee is only 1.5%. This value will be divided by 10 and used. Since we cannot use a decimal here, a round number is used.
    uint8 constant internal DailyInterest_ = 1; 
    uint8 constant internal IntFee_ = 35; //This value will be divided by 10 and used. Since we cannot use a decimal here, a round number is used.
    uint256 public InterestPool_ = 0; 
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2**64;
    uint256 public stakingRequirement = 50e18;
  
    
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    address dev = 0xA4d05a1c22C8Abe6CCB2333C092EC80bd0955031;
    

        function buy(address _referredBy) public payable returns (uint256) {
        uint256 DevFee1 = msg.value.div(100).mul(DevFee_);
        uint256 DevFeeFinal = SafeMath.div(DevFee1, 10);
        dev.transfer(DevFeeFinal);
        uint256 DailyInt1 = msg.value.div(100).mul(IntFee_);
        uint256 DailyIntFinal = SafeMath.div(DailyInt1, 10);
        InterestPool_ += DailyIntFinal;
        purchaseTokens(msg.value, _referredBy);
    }
    
        function() payable public {
        uint256 DevFee1 = msg.value.div(100).mul(DevFee_);
        uint256 DevFeeFinal = SafeMath.div(DevFee1, 10);
        dev.transfer(DevFeeFinal);
        uint256 DailyInt1 = msg.value.div(100).mul(IntFee_);
        uint256 DailyIntFinal = SafeMath.div(DailyInt1, 10);
        InterestPool_ += DailyIntFinal;
        purchaseTokens(msg.value, 0x0);
    }
    
        function IDD() public {
        require(msg.sender==owner);
        uint256 Contract_Bal = SafeMath.sub((address(this).balance), InterestPool_);
        uint256 DailyInterest1 = SafeMath.div(SafeMath.mul(Contract_Bal, DailyInterest_), 100);   
        uint256 DailyInterestFinal = SafeMath.div(DailyInterest1, 10);
        InterestPool_ -= DailyInterestFinal;
        DividendsDistribution(DailyInterestFinal, 0x0);
     }
    
    function DivsAddon() public payable returns (uint256) {
        DividendsDistribution(msg.value, 0x0);
    }
    
    

        function reinvest() onlyStronghands public {
        uint256 _dividends = myDividends(false);
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        uint256 _tokens = purchaseTokens(_dividends, 0x0);
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }

    function exit() public {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);
        withdraw();
    }

    function withdraw() onlyStronghands public {
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false);
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        _customerAddress.transfer(_dividends);
        emit onWithdraw(_customerAddress, _dividends);
    }

    function sell(uint256 _amountOfTokens) onlyBagholders public {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee()), 100);
        uint256 _devexit = SafeMath.div(SafeMath.mul(_ethereum, 5), 100);
        uint256 _taxedEthereum1 = SafeMath.sub(_ethereum, _dividends);
        uint256 _taxedEthereum = SafeMath.sub(_taxedEthereum1, _devexit);
        uint256 _devexitindividual = SafeMath.div(SafeMath.mul(_ethereum, DevFee_), 100);
        uint256 _devexitindividual_final = SafeMath.div(_devexitindividual, 10);
        uint256 DailyInt1 = SafeMath.div(SafeMath.mul(_ethereum, IntFee_), 100);
        uint256 DailyIntFinal = SafeMath.div(DailyInt1, 10);
        InterestPool_ += DailyIntFinal;
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        dev.transfer(_devexitindividual_final); 
        
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        emit onTokenSell(_customerAddress, _tokens, _taxedEthereum, now, buyPrice());
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        if (myDividends(true) > 0) {
            withdraw();
        }

        uint256 _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens, transferFee_), 100);
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        uint256 _dividends = tokensToEthereum_(_tokenFee);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);
        profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        emit Transfer(_customerAddress, _toAddress, _taxedTokens);
        return true;
    }


    function totalEthereumBalance() public view returns (uint256) {
        return this.balance;
    }

    function totalSupply() public view returns (uint256) {
        return tokenSupply_;
    }

    function myTokens() public view returns (uint256) {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }

    function myDividends(bool _includeReferralBonus) public view returns (uint256) {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }

    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    function sellPrice() public view returns (uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee()), 100);
            uint256 _devexit = SafeMath.div(SafeMath.mul(_ethereum, 5), 100);
            uint256 _taxedEthereum1 = SafeMath.sub(_ethereum, _dividends);
            uint256 _taxedEthereum = SafeMath.sub(_taxedEthereum1, _devexit);
            return _taxedEthereum;
        }
    }

    function buyPrice() public view returns (uint256) {
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, entryFee_), 100);
            uint256 _devexit = SafeMath.div(SafeMath.mul(_ethereum, 5), 100);
            uint256 _taxedEthereum1 = SafeMath.add(_ethereum, _dividends);
            uint256 _taxedEthereum = SafeMath.add(_taxedEthereum1, _devexit);
            return _taxedEthereum;
        }
    }

    function calculateTokensReceived(uint256 _ethereumToSpend) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereumToSpend, entryFee_), 100);
        uint256 _devbuyfees = SafeMath.div(SafeMath.mul(_ethereumToSpend, 5), 100);
        uint256 _taxedEthereum1 = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _taxedEthereum = SafeMath.sub(_taxedEthereum1, _devbuyfees);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        return _amountOfTokens;
    }

    function calculateEthereumReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee()), 100);
        uint256 _devexit = SafeMath.div(SafeMath.mul(_ethereum, 5), 100);
        uint256 _taxedEthereum1 = SafeMath.sub(_ethereum, _dividends);
        uint256 _taxedEthereum = SafeMath.sub(_taxedEthereum1, _devexit);
        return _taxedEthereum;
    }

   function exitFee() public view returns (uint8) {
        return ExitFee_;
    }
    


  function purchaseTokens(uint256 _incomingEthereum, address _referredBy) internal returns (uint256) {
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, refferalFee_), 100);
        uint256 _devbuyfees = SafeMath.div(SafeMath.mul(_incomingEthereum, 5), 100);
        uint256 _dividends1 = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _dividends = SafeMath.sub(_dividends1, _devbuyfees);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        if (
            _referredBy != 0x0000000000000000000000000000000000000000 &&
            _referredBy != _customerAddress &&
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }

        if (tokenSupply_ > 0) {
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            tokenSupply_ = _amountOfTokens;
        }

        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        emit onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy, now, buyPrice());

        return _amountOfTokens;
    }


       function DividendsDistribution(uint256 _incomingEthereum, address _referredBy) internal returns (uint256) {
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, 100), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, refferalFee_), 100);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens >= 0 && SafeMath.add(_amountOfTokens, tokenSupply_) >= tokenSupply_);

        if (
            _referredBy != 0x0000000000000000000000000000000000000000 &&
            _referredBy != _customerAddress &&
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }

        if (tokenSupply_ > 0) {
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            tokenSupply_ = _amountOfTokens;
        }

        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        emit onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy, now, buyPrice());

        return _amountOfTokens;
    }

    function ethereumToTokens_(uint256 _ethereum) internal view returns (uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived =
            (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                (_tokenPriceInitial ** 2)
                                +
                                (2 * (tokenPriceIncremental_ * 1e18) * (_ethereum * 1e18))
                                +
                                ((tokenPriceIncremental_ ** 2) * (tokenSupply_ ** 2))
                                +
                                (2 * tokenPriceIncremental_ * _tokenPriceInitial*tokenSupply_)
                            )
                        ), _tokenPriceInitial
                    )
                ) / (tokenPriceIncremental_)
            ) - (tokenSupply_);

        return _tokensReceived;
    }

    function tokensToEthereum_(uint256 _tokens) internal view returns (uint256) {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
            (
                SafeMath.sub(
                    (
                        (
                            (
                                tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))
                            ) - tokenPriceIncremental_
                        ) * (tokens_ - 1e18)
                    ), (tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2
                )
                / 1e18);

        return _etherReceived;
    }

 

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


}

library SafeMath {
    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;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"IDD","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"DivsAddon","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"exitFee","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"InterestPool_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526040805190810160405280600c81526020017f4554482045786368616e6765000000000000000000000000000000000000000081525060019080519060200190620000519291906200014d565b506040805190810160405280600381526020017f4154480000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f9291906200014d565b5060006003556802b5e3af16b188000060045573a4d05a1c22c8abe6ccb2333c092ec80bd0955031600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001fc565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019057805160ff1916838001178555620001c1565b82800160010185558215620001c1579182015b82811115620001c0578251825591602001919060010190620001a3565b5b509050620001d09190620001d4565b5090565b620001f991905b80821115620001f5576000816000905550600101620001db565b5090565b90565b61234f806200020c6000396000f300608060405260043610610148576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461024b57806306fdde03146102a257806310d0ffdd1461033257806318160ddd14610373578063226093731461039e5780632858507f146103df578063313ce567146103f65780633ccfd60b146104275780634b7503341461043e57806356d399e81461046957806356d5938f146104945780636284ae41146104b2578063688abbf7146104e35780636b2f46321461052657806370a08231146105515780638620410b146105a85780638da5cb5b146105d357806392f8def21461062a578063949e8acd1461065557806395d89b4114610680578063a9059cbb14610710578063e4849b3214610775578063e9fad8ee146107a2578063f088d547146107b9578063fdb5a03e14610803575b600080600080610178600f60ff1661016a60643461081a90919063ffffffff16565b61083590919063ffffffff16565b935061018584600a61081a565b9250600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156101ef573d6000803e3d6000fd5b5061021a602360ff1661020c60643461081a90919063ffffffff16565b61083590919063ffffffff16565b915061022782600a61081a565b905080600360008282540192505081905550610244346000610870565b5050505050005b34801561025757600080fd5b5061028c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c86565b6040518082815260200191505060405180910390f35b3480156102ae57600080fd5b506102b7610d28565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033e57600080fd5b5061035d60048036038101908080359060200190929190505050610dc6565b6040518082815260200191505060405180910390f35b34801561037f57600080fd5b50610388610e30565b6040518082815260200191505060405180910390f35b3480156103aa57600080fd5b506103c960048036038101908080359060200190929190505050610e3a565b6040518082815260200191505060405180910390f35b3480156103eb57600080fd5b506103f4610ebb565b005b34801561040257600080fd5b5061040b610f88565b604051808260ff1660ff16815260200191505060405180910390f35b34801561043357600080fd5b5061043c610f8d565b005b34801561044a57600080fd5b50610453611131565b6040518082815260200191505060405180910390f35b34801561047557600080fd5b5061047e6111c7565b6040518082815260200191505060405180910390f35b61049c6111cd565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b506104c76111de565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104ef57600080fd5b506105106004803603810190808035151590602001909291905050506111e7565b6040518082815260200191505060405180910390f35b34801561053257600080fd5b5061053b611253565b6040518082815260200191505060405180910390f35b34801561055d57600080fd5b50610592600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611272565b6040518082815260200191505060405180910390f35b3480156105b457600080fd5b506105bd6112bb565b6040518082815260200191505060405180910390f35b3480156105df57600080fd5b506105e861134b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063657600080fd5b5061063f611370565b6040518082815260200191505060405180910390f35b34801561066157600080fd5b5061066a611376565b6040518082815260200191505060405180910390f35b34801561068c57600080fd5b5061069561138b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d55780820151818401526020810190506106ba565b50505050905090810190601f1680156107025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071c57600080fd5b5061075b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611429565b604051808215151515815260200191505060405180910390f35b34801561078157600080fd5b506107a06004803603810190808035906020019092919050505061174c565b005b3480156107ae57600080fd5b506107b7611a9a565b005b6107ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b01565b6040518082815260200191505060405180910390f35b34801561080f57600080fd5b50610818611c08565b005b600080828481151561082857fe5b0490508091505092915050565b600080600084141561084a5760009150610869565b828402905082848281151561085b57fe5b0414151561086557fe5b8091505b5092915050565b600080600080600080600080600080600033995061089c6108958e601d60ff16610835565b606461081a565b98506108b66108af8a600860ff16610835565b606461081a565b97506108cd6108c68e6005610835565b606461081a565b96506108d98989611d7c565b95506108e58688611d7c565b94506108f18d8a611d7c565b93506108fc84611d95565b92506801000000000000000085029150600083118015610928575060085461092684600854611e22565b115b151561093357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff161415801561099c57508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b80156109e95750600454600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610a7f57610a37600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489611e22565b600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a9a565b610a898589611e22565b945068010000000000000000850291505b60006008541115610b0557610ab160085484611e22565b600881905550600854680100000000000000008602811515610acf57fe5b04600960008282540192505081905550600854680100000000000000008602811515610af757fe5b048302820382039150610b0d565b826008819055505b610b56600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611e22565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836009540203905080600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8f8642610c496112bb565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3829a505050505050505050505092915050565b600068010000000000000000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009540203811515610d2057fe5b049050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dbe5780601f10610d9357610100808354040283529160200191610dbe565b820191906000526020600020905b815481529060010190602001808311610da157829003601f168201915b505050505081565b600080600080600080610de7610de088601d60ff16610835565b606461081a565b9450610dfe610df7886005610835565b606461081a565b9350610e0a8786611d7c565b9250610e168385611d7c565b9150610e2182611d95565b90508095505050505050919050565b6000600854905090565b6000806000806000806008548711151515610e5457600080fd5b610e5d87611e40565b9450610e7d610e7686610e6e6111de565b60ff16610835565b606461081a565b9350610e94610e8d866005610835565b606461081a565b9250610ea08585611d7c565b9150610eac8284611d7c565b90508095505050505050919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1b57600080fd5b610f3e3073ffffffffffffffffffffffffffffffffffffffff1631600354611d7c565b9250610f58610f5184600160ff16610835565b606461081a565b9150610f6582600a61081a565b905080600360008282540392505081905550610f82816000611eeb565b50505050565b601281565b6000806000610f9c60016111e7565b111515610fa857600080fd5b339150610fb560006111e7565b9050680100000000000000008102600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110de573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060008060006008541415611159576402540be40064174876e8000395506111bf565b61116a670de0b6b3a7640000611e40565b945061118a6111838661117b6111de565b60ff16610835565b606461081a565b93506111a161119a866005610835565b606461081a565b92506111ad8585611d7c565b91506111b98284611d7c565b90508095505b505050505090565b60045481565b60006111da346000611eeb565b5090565b60006018905090565b60008033905082611200576111fb81610c86565b61124b565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124982610c86565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080600080600060085414156112e3576402540be40064174876e800019550611343565b6112f4670de0b6b3a7640000611e40565b945061130e61130786601d60ff16610835565b606461081a565b935061132561131e866005610835565b606461081a565b92506113318585611e22565b915061133d8284611e22565b90508095505b505050505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008033905061138581611272565b91505090565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114215780601f106113f657610100808354040283529160200191611421565b820191906000526020600020905b81548152906001019060200180831161140457829003601f168201915b505050505081565b60008060008060008061143a611376565b11151561144657600080fd5b339350600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561149757600080fd5b60006114a360016111e7565b11156114b2576114b1610f8d565b5b6114ca6114c387600160ff16610835565b606461081a565b92506114d68684611d7c565b91506114e183611e40565b90506114ef60085484611d7c565b60088190555061153e600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611d7c565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115ca600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e22565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506116d36009546008546801000000000000000084028115156116cd57fe5b04611e22565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000806000806000806000806000806000806000611768611376565b11151561177457600080fd5b339b50600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548d111515156117c557600080fd5b8c9a506117d18b611e40565b99506117f16117ea8b6117e26111de565b60ff16610835565b606461081a565b98506118086118018b6005610835565b606461081a565b97506118148a8a611d7c565b96506118208789611d7c565b955061183a6118338b600f60ff16610835565b606461081a565b945061184785600a61081a565b935061186161185a8b602360ff16610835565b606461081a565b925061186e83600a61081a565b91508160036000828254019250508190555061188c6008548c611d7c565b6008819055506118db600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548c611d7c565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015611986573d6000803e3d6000fd5b506801000000000000000086028b6009540201905080600760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611a1e57611a17600954600854680100000000000000008c02811515611a1157fe5b04611e22565b6009819055505b8b73ffffffffffffffffffffffffffffffffffffffff167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e8c8842611a616112bb565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050505050505050565b600080339150600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611af557611af48161174c565b5b611afd610f8d565b5050565b6000806000806000611b33600f60ff16611b2560643461081a90919063ffffffff16565b61083590919063ffffffff16565b9350611b4084600a61081a565b9250600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015611baa573d6000803e3d6000fd5b50611bd5602360ff16611bc760643461081a90919063ffffffff16565b61083590919063ffffffff16565b9150611be282600a61081a565b905080600360008282540192505081905550611bfe3487610870565b5050505050919050565b600080600080611c1860016111e7565b111515611c2457600080fd5b611c2e60006111e7565b9250339150680100000000000000008302600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d1f836000610870565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000828211151515611d8a57fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be400611e0b611e05600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a0101016122d8565b85611d7c565b811515611e1457fe5b040390508092505050919050565b6000808284019050838110151515611e3657fe5b8091505092915050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a7640000611ed4670de0b6b3a764000085036402540be400670de0b6b3a764000086811515611e9257fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a03811515611ebd57fe5b046402540be40002811515611ece57fe5b04611d7c565b811515611edd57fe5b049050809350505050919050565b6000806000806000806000806000339750611f11611f0a8c6064610835565b606461081a565b9650611f2b611f2488600860ff16610835565b606461081a565b9550611f378787611d7c565b9450611f438b88611d7c565b9350611f4e84611d95565b9250680100000000000000008502915060008310158015611f7c5750600854611f7984600854611e22565b10155b1515611f8757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614158015611ff057508773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b801561203d5750600454600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156120d35761208b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611e22565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ee565b6120dd8587611e22565b945068010000000000000000850291505b600060085411156121595761210560085484611e22565b60088190555060085468010000000000000000860281151561212357fe5b0460096000828254019250508190555060085468010000000000000000860281151561214b57fe5b048302820382039150612161565b826008819055505b6121aa600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611e22565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836009540203905080600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508973ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8d864261229d6112bb565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3829850505050505050505092915050565b6000806002600184018115156122ea57fe5b0490508291505b8181101561231d57809150600281828581151561230a57fe5b040181151561231557fe5b0490506122f1565b509190505600a165627a7a723058206f86954f9df6a2ad2861ad4ce9987a8b4e60c1b0bd5d2f201ddc328d8d1290d60029

Deployed Bytecode

0x608060405260043610610148576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461024b57806306fdde03146102a257806310d0ffdd1461033257806318160ddd14610373578063226093731461039e5780632858507f146103df578063313ce567146103f65780633ccfd60b146104275780634b7503341461043e57806356d399e81461046957806356d5938f146104945780636284ae41146104b2578063688abbf7146104e35780636b2f46321461052657806370a08231146105515780638620410b146105a85780638da5cb5b146105d357806392f8def21461062a578063949e8acd1461065557806395d89b4114610680578063a9059cbb14610710578063e4849b3214610775578063e9fad8ee146107a2578063f088d547146107b9578063fdb5a03e14610803575b600080600080610178600f60ff1661016a60643461081a90919063ffffffff16565b61083590919063ffffffff16565b935061018584600a61081a565b9250600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156101ef573d6000803e3d6000fd5b5061021a602360ff1661020c60643461081a90919063ffffffff16565b61083590919063ffffffff16565b915061022782600a61081a565b905080600360008282540192505081905550610244346000610870565b5050505050005b34801561025757600080fd5b5061028c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c86565b6040518082815260200191505060405180910390f35b3480156102ae57600080fd5b506102b7610d28565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033e57600080fd5b5061035d60048036038101908080359060200190929190505050610dc6565b6040518082815260200191505060405180910390f35b34801561037f57600080fd5b50610388610e30565b6040518082815260200191505060405180910390f35b3480156103aa57600080fd5b506103c960048036038101908080359060200190929190505050610e3a565b6040518082815260200191505060405180910390f35b3480156103eb57600080fd5b506103f4610ebb565b005b34801561040257600080fd5b5061040b610f88565b604051808260ff1660ff16815260200191505060405180910390f35b34801561043357600080fd5b5061043c610f8d565b005b34801561044a57600080fd5b50610453611131565b6040518082815260200191505060405180910390f35b34801561047557600080fd5b5061047e6111c7565b6040518082815260200191505060405180910390f35b61049c6111cd565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b506104c76111de565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104ef57600080fd5b506105106004803603810190808035151590602001909291905050506111e7565b6040518082815260200191505060405180910390f35b34801561053257600080fd5b5061053b611253565b6040518082815260200191505060405180910390f35b34801561055d57600080fd5b50610592600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611272565b6040518082815260200191505060405180910390f35b3480156105b457600080fd5b506105bd6112bb565b6040518082815260200191505060405180910390f35b3480156105df57600080fd5b506105e861134b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063657600080fd5b5061063f611370565b6040518082815260200191505060405180910390f35b34801561066157600080fd5b5061066a611376565b6040518082815260200191505060405180910390f35b34801561068c57600080fd5b5061069561138b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d55780820151818401526020810190506106ba565b50505050905090810190601f1680156107025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071c57600080fd5b5061075b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611429565b604051808215151515815260200191505060405180910390f35b34801561078157600080fd5b506107a06004803603810190808035906020019092919050505061174c565b005b3480156107ae57600080fd5b506107b7611a9a565b005b6107ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b01565b6040518082815260200191505060405180910390f35b34801561080f57600080fd5b50610818611c08565b005b600080828481151561082857fe5b0490508091505092915050565b600080600084141561084a5760009150610869565b828402905082848281151561085b57fe5b0414151561086557fe5b8091505b5092915050565b600080600080600080600080600080600033995061089c6108958e601d60ff16610835565b606461081a565b98506108b66108af8a600860ff16610835565b606461081a565b97506108cd6108c68e6005610835565b606461081a565b96506108d98989611d7c565b95506108e58688611d7c565b94506108f18d8a611d7c565b93506108fc84611d95565b92506801000000000000000085029150600083118015610928575060085461092684600854611e22565b115b151561093357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff161415801561099c57508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b80156109e95750600454600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610a7f57610a37600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489611e22565b600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a9a565b610a898589611e22565b945068010000000000000000850291505b60006008541115610b0557610ab160085484611e22565b600881905550600854680100000000000000008602811515610acf57fe5b04600960008282540192505081905550600854680100000000000000008602811515610af757fe5b048302820382039150610b0d565b826008819055505b610b56600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611e22565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836009540203905080600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8f8642610c496112bb565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3829a505050505050505050505092915050565b600068010000000000000000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009540203811515610d2057fe5b049050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dbe5780601f10610d9357610100808354040283529160200191610dbe565b820191906000526020600020905b815481529060010190602001808311610da157829003601f168201915b505050505081565b600080600080600080610de7610de088601d60ff16610835565b606461081a565b9450610dfe610df7886005610835565b606461081a565b9350610e0a8786611d7c565b9250610e168385611d7c565b9150610e2182611d95565b90508095505050505050919050565b6000600854905090565b6000806000806000806008548711151515610e5457600080fd5b610e5d87611e40565b9450610e7d610e7686610e6e6111de565b60ff16610835565b606461081a565b9350610e94610e8d866005610835565b606461081a565b9250610ea08585611d7c565b9150610eac8284611d7c565b90508095505050505050919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1b57600080fd5b610f3e3073ffffffffffffffffffffffffffffffffffffffff1631600354611d7c565b9250610f58610f5184600160ff16610835565b606461081a565b9150610f6582600a61081a565b905080600360008282540392505081905550610f82816000611eeb565b50505050565b601281565b6000806000610f9c60016111e7565b111515610fa857600080fd5b339150610fb560006111e7565b9050680100000000000000008102600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110de573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060008060006008541415611159576402540be40064174876e8000395506111bf565b61116a670de0b6b3a7640000611e40565b945061118a6111838661117b6111de565b60ff16610835565b606461081a565b93506111a161119a866005610835565b606461081a565b92506111ad8585611d7c565b91506111b98284611d7c565b90508095505b505050505090565b60045481565b60006111da346000611eeb565b5090565b60006018905090565b60008033905082611200576111fb81610c86565b61124b565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124982610c86565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080600080600060085414156112e3576402540be40064174876e800019550611343565b6112f4670de0b6b3a7640000611e40565b945061130e61130786601d60ff16610835565b606461081a565b935061132561131e866005610835565b606461081a565b92506113318585611e22565b915061133d8284611e22565b90508095505b505050505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008033905061138581611272565b91505090565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114215780601f106113f657610100808354040283529160200191611421565b820191906000526020600020905b81548152906001019060200180831161140457829003601f168201915b505050505081565b60008060008060008061143a611376565b11151561144657600080fd5b339350600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561149757600080fd5b60006114a360016111e7565b11156114b2576114b1610f8d565b5b6114ca6114c387600160ff16610835565b606461081a565b92506114d68684611d7c565b91506114e183611e40565b90506114ef60085484611d7c565b60088190555061153e600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611d7c565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115ca600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e22565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506116d36009546008546801000000000000000084028115156116cd57fe5b04611e22565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000806000806000806000806000806000806000611768611376565b11151561177457600080fd5b339b50600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548d111515156117c557600080fd5b8c9a506117d18b611e40565b99506117f16117ea8b6117e26111de565b60ff16610835565b606461081a565b98506118086118018b6005610835565b606461081a565b97506118148a8a611d7c565b96506118208789611d7c565b955061183a6118338b600f60ff16610835565b606461081a565b945061184785600a61081a565b935061186161185a8b602360ff16610835565b606461081a565b925061186e83600a61081a565b91508160036000828254019250508190555061188c6008548c611d7c565b6008819055506118db600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548c611d7c565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015611986573d6000803e3d6000fd5b506801000000000000000086028b6009540201905080600760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611a1e57611a17600954600854680100000000000000008c02811515611a1157fe5b04611e22565b6009819055505b8b73ffffffffffffffffffffffffffffffffffffffff167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e8c8842611a616112bb565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050505050505050565b600080339150600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611af557611af48161174c565b5b611afd610f8d565b5050565b6000806000806000611b33600f60ff16611b2560643461081a90919063ffffffff16565b61083590919063ffffffff16565b9350611b4084600a61081a565b9250600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015611baa573d6000803e3d6000fd5b50611bd5602360ff16611bc760643461081a90919063ffffffff16565b61083590919063ffffffff16565b9150611be282600a61081a565b905080600360008282540192505081905550611bfe3487610870565b5050505050919050565b600080600080611c1860016111e7565b111515611c2457600080fd5b611c2e60006111e7565b9250339150680100000000000000008302600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d1f836000610870565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000828211151515611d8a57fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be400611e0b611e05600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a0101016122d8565b85611d7c565b811515611e1457fe5b040390508092505050919050565b6000808284019050838110151515611e3657fe5b8091505092915050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a7640000611ed4670de0b6b3a764000085036402540be400670de0b6b3a764000086811515611e9257fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a03811515611ebd57fe5b046402540be40002811515611ece57fe5b04611d7c565b811515611edd57fe5b049050809350505050919050565b6000806000806000806000806000339750611f11611f0a8c6064610835565b606461081a565b9650611f2b611f2488600860ff16610835565b606461081a565b9550611f378787611d7c565b9450611f438b88611d7c565b9350611f4e84611d95565b9250680100000000000000008502915060008310158015611f7c5750600854611f7984600854611e22565b10155b1515611f8757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614158015611ff057508773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b801561203d5750600454600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156120d35761208b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611e22565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ee565b6120dd8587611e22565b945068010000000000000000850291505b600060085411156121595761210560085484611e22565b60088190555060085468010000000000000000860281151561212357fe5b0460096000828254019250508190555060085468010000000000000000860281151561214b57fe5b048302820382039150612161565b826008819055505b6121aa600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611e22565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836009540203905080600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508973ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8d864261229d6112bb565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3829850505050505050505092915050565b6000806002600184018115156122ea57fe5b0490508291505b8181101561231d57809150600281828581151561230a57fe5b040181151561231557fe5b0490506122f1565b509190505600a165627a7a723058206f86954f9df6a2ad2861ad4ce9987a8b4e60c1b0bd5d2f201ddc328d8d1290d60029

Deployed Bytecode Sourcemap

541:17410:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3492:15;3552:19;3646:17;3708:21;3510:31;2038:2;3510:31;;:18;3524:3;3510:9;:13;;:18;;;;:::i;:::-;:22;;:31;;;;:::i;:::-;3492:49;;3574:25;3587:7;3596:2;3574:12;:25::i;:::-;3552:47;;3610:3;;;;;;;;;;;:12;;:25;3623:11;3610:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3610:25:0;3666:31;2265:2;3666:31;;:18;3680:3;3666:9;:13;;:18;;;;:::i;:::-;:22;;:31;;;;:::i;:::-;3646:51;;3732:27;3745:9;3756:2;3732:12;:27::i;:::-;3708:51;;3787:13;3770;;:30;;;;;;;;;;;3811;3826:9;3837:3;3811:14;:30::i;:::-;;3455:394;;;;541:17410;9152:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9152:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1589:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1589:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1589:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10687:534;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10687:534:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8464:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8464:91:0;;;;;;;;;;;;;;;;;;;;;;;11229:547;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11229:547:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3865:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3865:429:0;;;;;;1666:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1666:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:437;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5126:437:0;;;;;;9384:684;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9384:684:0;;;;;;;;;;;;;;;;;;;;;;;2612:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2612:41:0;;;;;;;;;;;;;;;;;;;;;;;4306:110;;;;;;;;;;;;;;;;;;;;;;;11783:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11783:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8722:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8722:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8356:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8356:100:0;;;;;;;;;;;;;;;;;;;;;;;9006:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9006:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10076:603;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10076:603:0;;;;;;;;;;;;;;;;;;;;;;;349:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2379:32:0;;;;;;;;;;;;;;;;;;;;;;;8563:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8563:151:0;;;;;;;;;;;;;;;;;;;;;;;1631:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1631:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1631:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7167:1179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7167:1179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5571:1588;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5571:1588:0;;;;;;;;;;;;;;;;;;;;;;;;;;4911:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4911:207:0;;;;;;2996:443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4440:463;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4440:463:0;;;;;;18195:122;18253:7;18273:9;18289:1;18285;:5;;;;;;;;18273:17;;18308:1;18301:8;;18195:122;;;;;:::o;17979:208::-;18037:7;18114:9;18066:1;18061;:6;18057:47;;;18091:1;18084:8;;;;18057:47;18130:1;18126;:5;18114:17;;18158:1;18153;18149;:5;;;;;;;;:10;18142:18;;;;;;18178:1;18171:8;;17979:208;;;;;;:::o;11878:2140::-;11968:7;11988:24;12036:27;12138:22;12240:19;12326;12408:18;12478:22;12566:23;12636:12;13726:22;12015:10;11988:37;;12066:61;12079:42;12092:17;1744:2;12079:42;;:12;:42::i;:::-;12123:3;12066:12;:61::i;:::-;12036:91;;12163:66;12176:47;12189:19;1996:1;12176:47;;:12;:47::i;:::-;12225:3;12163:12;:66::i;:::-;12138:91;;12262:53;12275:34;12288:17;12307:1;12275:12;:34::i;:::-;12311:3;12262:12;:53::i;:::-;12240:75;;12348:49;12361:19;12382:14;12348:12;:49::i;:::-;12326:71;;12429:38;12442:11;12455;12429:12;:38::i;:::-;12408:59;;12503:52;12516:17;12535:19;12503:12;:52::i;:::-;12478:77;;12592:33;12610:14;12592:17;:33::i;:::-;12566:59;;2600:5;12651:10;:22;12636:37;;12712:1;12694:15;:19;:81;;;;;12763:12;;12717:43;12730:15;12747:12;;12717;:43::i;:::-;:58;12694:81;12686:90;;;;;;;;12822:42;12807:57;;:11;:57;;;;:105;;;;;12896:16;12881:31;;:11;:31;;;;12807:105;:176;;;;;12965:18;;12929:19;:32;12949:11;12929:32;;;;;;;;;;;;;;;;:54;;12807:176;12789:454;;;13042:59;13055:16;:29;13072:11;13055:29;;;;;;;;;;;;;;;;13086:14;13042:12;:59::i;:::-;13010:16;:29;13027:11;13010:29;;;;;;;;;;;;;;;:91;;;;12789:454;;;13147:40;13160:10;13172:14;13147:12;:40::i;:::-;13134:53;;2600:5;13209:10;:22;13202:29;;12789:454;13274:1;13259:12;;:16;13255:340;;;13307:43;13320:12;;13334:15;13307:12;:43::i;:::-;13292:12;:58;;;;13410:12;;2600:5;13385:10;:22;:37;;;;;;;;13365:15;;:58;;;;;;;;;;;13505:12;;2600:5;13480:10;:22;:37;;;;;;;;13461:15;:57;13453:4;:66;13445:4;:75;13438:82;;13255:340;;;13568:15;13553:12;:30;;;;13255:340;13647:68;13660:19;:37;13680:16;13660:37;;;;;;;;;;;;;;;;13699:15;13647:12;:68::i;:::-;13607:19;:37;13627:16;13607:37;;;;;;;;;;;;;;;:108;;;;13797:4;13779:15;13761;;:33;:40;13726:76;;13845:15;13813:10;:28;13824:16;13813:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;13946:11;13876:99;;13892:16;13876:99;;;13910:17;13929:15;13959:3;13964:10;:8;:10::i;:::-;13876:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13995:15;13988:22;;11878:2140;;;;;;;;;;;;;;:::o;9152:224::-;9220:7;2600:5;9327:10;:28;9338:16;9327:28;;;;;;;;;;;;;;;;9286:19;:37;9306:16;9286:37;;;;;;;;;;;;;;;;9268:15;;:55;9258:97;9247:121;;;;;;;;9240:128;;9152:224;;;:::o;1589:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10687:534::-;10767:7;10787:18;10879:19;10964:23;11043:22;11121:23;10808:60;10821:41;10834:16;1744:2;10821:41;;:12;:41::i;:::-;10864:3;10808:12;:60::i;:::-;10787:81;;10901:52;10914:33;10927:16;10945:1;10914:12;:33::i;:::-;10949:3;10901:12;:52::i;:::-;10879:74;;10990:42;11003:16;11021:10;10990:12;:42::i;:::-;10964:68;;11068:42;11081:15;11098:11;11068:12;:42::i;:::-;11043:67;;11147:33;11165:14;11147:17;:33::i;:::-;11121:59;;11198:15;11191:22;;10687:534;;;;;;;;:::o;8464:91::-;8508:7;8535:12;;8528:19;;8464:91;:::o;11229:547::-;11308:7;11377:17;11440:18;11525:16;11600:23;11672:22;11353:12;;11336:13;:29;;11328:38;;;;;;;;11397:32;11415:13;11397:17;:32::i;:::-;11377:52;;11461:53;11474:34;11487:9;11498;:7;:9::i;:::-;11474:34;;:12;:34::i;:::-;11510:3;11461:12;:53::i;:::-;11440:74;;11544:45;11557:26;11570:9;11581:1;11557:12;:26::i;:::-;11585:3;11544:12;:45::i;:::-;11525:64;;11626:35;11639:9;11650:10;11626:12;:35::i;:::-;11600:61;;11697:39;11710:15;11727:8;11697:12;:39::i;:::-;11672:64;;11754:14;11747:21;;11229:547;;;;;;;;:::o;3865:429::-;3935:20;4021:22;4121:26;3918:5;;;;;;;;;;;3906:17;;:10;:17;;;3898:26;;;;;;;;3958:52;3980:4;3972:21;;;3996:13;;3958:12;:52::i;:::-;3935:75;;4046:61;4059:42;4072:12;2222:1;4059:42;;:12;:42::i;:::-;4103:3;4046:12;:61::i;:::-;4021:86;;4150:32;4163:14;4179:2;4150:12;:32::i;:::-;4121:61;;4210:18;4193:13;;:35;;;;;;;;;;;4239:46;4261:18;4281:3;4239:21;:46::i;:::-;;3865:429;;;:::o;1666:35::-;1699:2;1666:35;:::o;5126:437::-;5180:24;5228:18;772:1;752:17;764:4;752:11;:17::i;:::-;:21;744:30;;;;;;;;5207:10;5180:37;;5249:18;5261:5;5249:11;:18::i;:::-;5228:39;;2600:5;5320:10;:22;5278:10;:28;5289:16;5278:28;;;;;;;;;;;;;;;;:65;;;;;;;;;;;5368:16;:34;5385:16;5368:34;;;;;;;;;;;;;;;;5354:48;;;;5450:1;5413:16;:34;5430:16;5413:34;;;;;;;;;;;;;;;:38;;;;5462:16;:25;;:37;5488:10;5462:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5462:37:0;5526:16;5515:40;;;5544:10;5515:40;;;;;;;;;;;;;;;;;;5126:437;;:::o;9384:684::-;9426:7;9647:17;9705:18;9794:16;9873:23;9949:22;9546:1;9530:12;;:17;9526:535;;;2539:16;2466:15;9571:43;9564:50;;;;9526:535;9667:23;9685:4;9667:17;:23::i;:::-;9647:43;;9726:53;9739:34;9752:9;9763;:7;:9::i;:::-;9739:34;;:12;:34::i;:::-;9775:3;9726:12;:53::i;:::-;9705:74;;9813:45;9826:26;9839:9;9850:1;9826:12;:26::i;:::-;9854:3;9813:12;:45::i;:::-;9794:64;;9899:35;9912:9;9923:10;9899:12;:35::i;:::-;9873:61;;9974:39;9987:15;10004:8;9974:12;:39::i;:::-;9949:64;;10035:14;10028:21;;9384:684;;;;;;;:::o;2612:41::-;;;;:::o;4306:110::-;4351:7;4371:37;4393:9;4404:3;4371:21;:37::i;:::-;;4306:110;:::o;11783:81::-;11823:5;1947:2;11841:15;;11783:81;:::o;8722:276::-;8792:7;8812:24;8839:10;8812:37;;8867:21;:122;;8960:29;8972:16;8960:11;:29::i;:::-;8867:122;;;8923:16;:34;8940:16;8923:34;;;;;;;;;;;;;;;;8891:29;8903:16;8891:11;:29::i;:::-;:66;8867:122;8860:129;;8722:276;;;;:::o;8356:100::-;8409:7;8436:4;:12;;;8429:19;;8356:100;:::o;9006:138::-;9072:7;9099:19;:37;9119:16;9099:37;;;;;;;;;;;;;;;;9092:44;;9006:138;;;:::o;10076:603::-;10117:7;10258:17;10316:18;10405:16;10484:23;10560:22;10157:1;10141:12;;:17;10137:535;;;2539:16;2466:15;10182:43;10175:50;;;;10137:535;10278:23;10296:4;10278:17;:23::i;:::-;10258:43;;10337:53;10350:34;10363:9;1744:2;10350:34;;:12;:34::i;:::-;10386:3;10337:12;:53::i;:::-;10316:74;;10424:45;10437:26;10450:9;10461:1;10437:12;:26::i;:::-;10465:3;10424:12;:45::i;:::-;10405:64;;10510:35;10523:9;10534:10;10510:12;:35::i;:::-;10484:61;;10585:39;10598:15;10615:8;10585:12;:39::i;:::-;10560:64;;10646:14;10639:21;;10076:603;;;;;;;:::o;349:20::-;;;;;;;;;;;;;:::o;2379:32::-;;;;:::o;8563:151::-;8604:7;8624:24;8651:10;8624:37;;8679:27;8689:16;8679:9;:27::i;:::-;8672:34;;8563:151;;:::o;1631:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7167:1179::-;7261:4;7278:24;7480:17;7573:20;7647:18;671:1;658:10;:8;:10::i;:::-;:14;650:23;;;;;;;;7305:10;7278:37;;7353:19;:37;7373:16;7353:37;;;;;;;;;;;;;;;;7334:15;:56;;7326:65;;;;;;;;7428:1;7408:17;7420:4;7408:11;:17::i;:::-;:21;7404:64;;;7446:10;:8;:10::i;:::-;7404:64;7500:62;7513:43;7526:15;1904:1;7513:43;;:12;:43::i;:::-;7558:3;7500:12;:62::i;:::-;7480:82;;7596:40;7609:15;7626:9;7596:12;:40::i;:::-;7573:63;;7668:28;7686:9;7668:17;:28::i;:::-;7647:49;;7724:37;7737:12;;7751:9;7724:12;:37::i;:::-;7709:12;:52;;;;7812:68;7825:19;:37;7845:16;7825:37;;;;;;;;;;;;;;;;7864:15;7812:12;:68::i;:::-;7772:19;:37;7792:16;7772:37;;;;;;;;;;;;;;;:108;;;;7925:59;7938:19;:31;7958:10;7938:31;;;;;;;;;;;;;;;;7971:12;7925;:59::i;:::-;7891:19;:31;7911:10;7891:31;;;;;;;;;;;;;;;:93;;;;8055:15;8037;;:33;7995:10;:28;8006:16;7995:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;8136:12;8118:15;;:30;8082:10;:22;8093:10;8082:22;;;;;;;;;;;;;;;;:67;;;;;;;;;;;8178:70;8191:15;;8235:12;;2600:5;8209:10;:22;8208:39;;;;;;;;8178:12;:70::i;:::-;8160:15;:88;;;;8291:10;8264:52;;8273:16;8264:52;;;8303:12;8264:52;;;;;;;;;;;;;;;;;;8334:4;8327:11;;7167:1179;;;;;;;;:::o;5571:1588::-;5643:24;5767:15;5811:17;5868:18;5953:16;6028:23;6100:22;6175:26;6266:32;6348:17;6430:21;6765:22;671:1;658:10;:8;:10::i;:::-;:14;650:23;;;;;;;;5670:10;5643:37;;5718:19;:37;5738:16;5718:37;;;;;;;;;;;;;;;;5699:15;:56;;5691:65;;;;;;;;5785:15;5767:33;;5831:26;5849:7;5831:17;:26::i;:::-;5811:46;;5889:53;5902:34;5915:9;5926;:7;:9::i;:::-;5902:34;;:12;:34::i;:::-;5938:3;5889:12;:53::i;:::-;5868:74;;5972:45;5985:26;5998:9;6009:1;5985:12;:26::i;:::-;6013:3;5972:12;:45::i;:::-;5953:64;;6054:35;6067:9;6078:10;6054:12;:35::i;:::-;6028:61;;6125:39;6138:15;6155:8;6125:12;:39::i;:::-;6100:64;;6204:51;6217:32;6230:9;2038:2;6217:32;;:12;:32::i;:::-;6251:3;6204:12;:51::i;:::-;6175:80;;6301:36;6314:18;6334:2;6301:12;:36::i;:::-;6266:71;;6368:51;6381:32;6394:9;2265:2;6381:32;;:12;:32::i;:::-;6415:3;6368:12;:51::i;:::-;6348:71;;6454:27;6467:9;6478:2;6454:12;:27::i;:::-;6430:51;;6509:13;6492;;:30;;;;;;;;;;;6548:35;6561:12;;6575:7;6548:12;:35::i;:::-;6533:12;:50;;;;6634:60;6647:19;:37;6667:16;6647:37;;;;;;;;;;;;;;;;6686:7;6634:12;:60::i;:::-;6594:19;:37;6614:16;6594:37;;;;;;;;;;;;;;;:100;;;;6705:3;;;;;;;;;;;:12;;:38;6718:24;6705:38;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6705:38:0;2600:5;6829:14;:26;6818:7;6800:15;;:25;:56;6765:92;;6900:15;6868:10;:28;6879:16;6868:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;6947:1;6932:12;;:16;6928:137;;;6983:70;6996:15;;7040:12;;2600:5;7014:10;:22;7013:39;;;;;;;;6983:12;:70::i;:::-;6965:15;:88;;;;6928:137;7092:16;7080:71;;;7110:7;7119:14;7135:3;7140:10;:8;:10::i;:::-;7080:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5571:1588;;;;;;;;;;;;;:::o;4911:207::-;4945:24;4993:15;4972:10;4945:37;;5011:19;:37;5031:16;5011:37;;;;;;;;;;;;;;;;4993:55;;5073:1;5063:7;:11;5059:30;;;5076:13;5081:7;5076:4;:13::i;:::-;5059:30;5100:10;:8;:10::i;:::-;4911:207;;:::o;2996:443::-;3054:7;3074:15;3134:19;3228:17;3290:21;3092:31;2038:2;3092:31;;:18;3106:3;3092:9;:13;;:18;;;;:::i;:::-;:22;;:31;;;;:::i;:::-;3074:49;;3156:25;3169:7;3178:2;3156:12;:25::i;:::-;3134:47;;3192:3;;;;;;;;;;;:12;;:25;3205:11;3192:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3192:25:0;3248:31;2265:2;3248:31;;:18;3262:3;3248:9;:13;;:18;;;;:::i;:::-;:22;;:31;;;;:::i;:::-;3228:51;;3314:27;3327:9;3338:2;3314:12;:27::i;:::-;3290:51;;3369:13;3352;;:30;;;;;;;;;;;3393:38;3408:9;3419:11;3393:14;:38::i;:::-;;2996:443;;;;;;;:::o;4440:463::-;4494:18;4544:24;4777:15;772:1;752:17;764:4;752:11;:17::i;:::-;:21;744:30;;;;;;;;4515:18;4527:5;4515:11;:18::i;:::-;4494:39;;4571:10;4544:37;;2600:5;4635:10;:22;4592:10;:28;4603:16;4592:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;4683:16;:34;4700:16;4683:34;;;;;;;;;;;;;;;;4669:48;;;;4765:1;4728:16;:34;4745:16;4728:34;;;;;;;;;;;;;;;:38;;;;4795:31;4810:10;4822:3;4795:14;:31::i;:::-;4777:49;;4857:16;4842:53;;;4875:10;4887:7;4842:53;;;;;;;;;;;;;;;;;;;;;;;;4440:463;;;:::o;18325:123::-;18383:7;18415:1;18410;:6;;18403:14;;;;;;18439:1;18435;:5;18428:12;;18325:123;;;;:::o;16025:971::-;16094:7;16114:26;16179:23;16164:4;2466:15;16143:25;16114:54;;16940:12;;2539:16;16260:615;16300:505;16761:12;;16742:18;2539:16;16713:1;:26;:47;:60;16640:1;16624:12;;:17;16618:1;2539:16;16592:27;16591:51;16515:4;16503:9;:16;16494:4;2539:16;16469:29;16464:1;:35;:56;16392:1;16370:18;:23;16369:152;:274;:405;16300:4;:505::i;:::-;16834:18;16260:12;:615::i;:::-;16237:684;;;;;;;;16218:735;16179:774;;16973:15;16966:22;;16025:971;;;;;:::o;18456:147::-;18514:7;18534:9;18550:1;18546;:5;18534:17;;18574:1;18569;:6;;18562:14;;;;;;18594:1;18587:8;;18456:147;;;;;:::o;17004:718::-;17071:7;17091:15;17136:20;17191:22;17120:4;17110:7;:14;17091:34;;17175:4;17160:12;;:19;17136:44;;17675:4;17248:407;17542:4;17532:7;:14;2539:16;17439:4;17424:12;:19;;;;;;;;2539:16;17398:46;2466:15;17376:69;17341:160;17310:237;17635:1;17626:4;17615:7;17611:1;17600:7;:12;:22;17599:31;;;;;;;;2539:16;17573:58;17572:64;;;;;;;;17248:12;:407::i;:::-;:431;;;;;;;;17191:489;;17700:14;17693:21;;17004:718;;;;;;:::o;14031:1986::-;14128:7;14148:24;14196:27;14292:22;14394:18;14475:22;14563:23;14633:12;15725:22;14175:10;14148:37;;14226:55;14239:36;14252:17;14271:3;14239:12;:36::i;:::-;14277:3;14226:12;:55::i;:::-;14196:85;;14317:66;14330:47;14343:19;1996:1;14330:47;;:12;:47::i;:::-;14379:3;14317:12;:66::i;:::-;14292:91;;14415:49;14428:19;14449:14;14415:12;:49::i;:::-;14394:70;;14500:52;14513:17;14532:19;14500:12;:52::i;:::-;14475:77;;14589:33;14607:14;14589:17;:33::i;:::-;14563:59;;2600:5;14648:10;:22;14633:37;;14710:1;14691:15;:20;;:83;;;;;14762:12;;14715:43;14728:15;14745:12;;14715;:43::i;:::-;:59;;14691:83;14683:92;;;;;;;;14821:42;14806:57;;:11;:57;;;;:105;;;;;14895:16;14880:31;;:11;:31;;;;14806:105;:176;;;;;14964:18;;14928:19;:32;14948:11;14928:32;;;;;;;;;;;;;;;;:54;;14806:176;14788:454;;;15041:59;15054:16;:29;15071:11;15054:29;;;;;;;;;;;;;;;;15085:14;15041:12;:59::i;:::-;15009:16;:29;15026:11;15009:29;;;;;;;;;;;;;;;:91;;;;14788:454;;;15146:40;15159:10;15171:14;15146:12;:40::i;:::-;15133:53;;2600:5;15208:10;:22;15201:29;;14788:454;15273:1;15258:12;;:16;15254:340;;;15306:43;15319:12;;15333:15;15306:12;:43::i;:::-;15291:12;:58;;;;15409:12;;2600:5;15384:10;:22;:37;;;;;;;;15364:15;;:58;;;;;;;;;;;15504:12;;2600:5;15479:10;:22;:37;;;;;;;;15460:15;:57;15452:4;:66;15444:4;:75;15437:82;;15254:340;;;15567:15;15552:12;:30;;;;15254:340;15646:68;15659:19;:37;15679:16;15659:37;;;;;;;;;;;;;;;;15698:15;15646:12;:68::i;:::-;15606:19;:37;15626:16;15606:37;;;;;;;;;;;;;;;:108;;;;15796:4;15778:15;15760;;:33;:40;15725:76;;15844:15;15812:10;:28;15823:16;15812:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;15945:11;15875:99;;15891:16;15875:99;;;15909:17;15928:15;15958:3;15963:10;:8;:10::i;:::-;15875:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15994:15;15987:22;;14031:1986;;;;;;;;;;;;:::o;17735:209::-;17783:9;17805;17827:1;17822;17818;:5;17817:11;;;;;;;;17805:23;;17843:1;17839:5;;17857:80;17868:1;17864;:5;17857:80;;;17890:1;17886:5;;17924:1;17919;17915;17911;:5;;;;;;;;:9;17910:15;;;;;;;;17906:19;;17857:80;;;17735:209;;;;:::o

Swarm Source

bzzr://6f86954f9df6a2ad2861ad4ce9987a8b4e60c1b0bd5d2f201ddc328d8d1290d6

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.