More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 255 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 9197091 | 1772 days ago | IN | 0 ETH | 0.000052 | ||||
Exit | 9006283 | 1808 days ago | IN | 0 ETH | 0.00005468 | ||||
Withdraw | 8956884 | 1816 days ago | IN | 0 ETH | 0.00043916 | ||||
Withdraw | 8910236 | 1824 days ago | IN | 0 ETH | 0.00004348 | ||||
Reinvest | 8910174 | 1824 days ago | IN | 0 ETH | 0.00008222 | ||||
Reinvest | 8898966 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Reinvest | 8898852 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Reinvest | 8898846 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Buy | 8898810 | 1826 days ago | IN | 0.1 ETH | 0.0000995 | ||||
Buy | 8898799 | 1826 days ago | IN | 0.1 ETH | 0.00010221 | ||||
Buy | 8898785 | 1826 days ago | IN | 0.1 ETH | 0.00006055 | ||||
Reinvest | 8898318 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Reinvest | 8898314 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Buy | 8898310 | 1826 days ago | IN | 0.01 ETH | 0.0000695 | ||||
Reinvest | 8898192 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Reinvest | 8898185 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Reinvest | 8898172 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Buy | 8898158 | 1826 days ago | IN | 0.023 ETH | 0.0000695 | ||||
Reinvest | 8898069 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Reinvest | 8898068 | 1826 days ago | IN | 0 ETH | 0.00008222 | ||||
Buy | 8893619 | 1827 days ago | IN | 0.01 ETH | 0.00055893 | ||||
Reinvest | 8893447 | 1827 days ago | IN | 0 ETH | 0.0000821 | ||||
Reinvest | 8893439 | 1827 days ago | IN | 0 ETH | 0.0000821 | ||||
Reinvest | 8893248 | 1827 days ago | IN | 0 ETH | 0.00008222 | ||||
Buy | 8890908 | 1827 days ago | IN | 0.007 ETH | 0.00006938 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
9197091 | 1772 days ago | 0.01010505 ETH | ||||
9006283 | 1808 days ago | 0.02894478 ETH | ||||
8956884 | 1816 days ago | 0.01552069 ETH | ||||
8910236 | 1824 days ago | 0.00078958 ETH | ||||
8873535 | 1830 days ago | 0.00101501 ETH | ||||
8861740 | 1832 days ago | 0.02002921 ETH | ||||
8834825 | 1836 days ago | 0.00215967 ETH | ||||
8817793 | 1839 days ago | 0.01285792 ETH | ||||
8798141 | 1842 days ago | 0.02104077 ETH | ||||
8798141 | 1842 days ago | 0.02446708 ETH | ||||
8798141 | 1842 days ago | 0.02594078 ETH | ||||
8798098 | 1842 days ago | 0.00012881 ETH | ||||
8798098 | 1842 days ago | 0.00360319 ETH | ||||
8798098 | 1842 days ago | 0.02480986 ETH | ||||
8779956 | 1845 days ago | 0.00330809 ETH | ||||
8779956 | 1845 days ago | 0.00354211 ETH | ||||
8779955 | 1845 days ago | 0.0004275 ETH | ||||
8779955 | 1845 days ago | 0.00306846 ETH | ||||
8779945 | 1845 days ago | 0.00369712 ETH | ||||
8766857 | 1847 days ago | 0.09398733 ETH | ||||
8728611 | 1853 days ago | 0.00046802 ETH | ||||
8728610 | 1853 days ago | 0.10233924 ETH | ||||
8728609 | 1853 days ago | 0.11036638 ETH | ||||
8728609 | 1853 days ago | 0.11822992 ETH | ||||
8728607 | 1853 days ago | 0.12330693 ETH |
Loading...
Loading
Contract Name:
ORACLEPSYCHOLIFE
Compiler Version
v0.4.20+commit.3155dd80
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-10-09 */ pragma solidity ^0.4.20; /* ___ ____ _ ____ _ _____ ____ ______ ______ _ _ ___ _ ___ _____ _____ / _ \| _ \ / \ / ___| | | ____| | _ \/ ___\ \ / / ___| | | |/ _ \ | | |_ _| ___| ____| | | | | |_) | / _ \| | | | | _| | |_) \___ \\ V / | | |_| | | | | | | | || |_ | _| | |_| | _ < / ___ \ |___| |___| |___ | __/ ___) || || |___| _ | |_| | | |___ | || _| | |___ \___/|_| \_\/_/ \_\____|_____|_____| |_| |____/ |_| \____|_| |_|\___/ |_____|___|_| |_____| /$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$ |_ $$_/ /$$__ $$| $$$ /$$$ /$$__ $$|_ $$_/ | $$ | $$ \ $$| $$$$ /$$$$ | $$ \ $$ | $$ | $$ | $$$$$$$$| $$ $$/$$ $$ | $$$$$$$$ | $$ | $$ | $$__ $$| $$ $$$| $$ | $$__ $$ | $$ | $$ | $$ | $$| $$\ $ | $$ | $$ | $$ | $$ /$$$$$$ | $$ | $$| $$ \/ | $$ | $$ | $$ /$$$$$$ |______/ |__/ |__/|__/ |__/ |__/ |__/|______/ ██╗ ██╗██╗ ██╗███████╗██████╗ ███████╗ ███╗ ███╗██╗ ██╗ ███████╗ ██████╗ ██████╗ ███████╗████████╗██╗ ██╗██████╗ ██║ ██║██║ ██║██╔════╝██╔══██╗██╔════╝ ████╗ ████║╚██╗ ██╔╝ ██╔════╝██╔═████╗██╔═████╗ ██╔════╝╚══██╔══╝██║ ██║╚════██╗ ██║ █╗ ██║███████║█████╗ ██████╔╝█████╗ ██╔████╔██║ ╚████╔╝ ███████╗██║██╔██║██║██╔██║ █████╗ ██║ ███████║ ▄███╔╝ ██║███╗██║██╔══██║██╔══╝ ██╔══██╗██╔══╝ ██║╚██╔╝██║ ╚██╔╝ ╚════██║████╔╝██║████╔╝██║ ██╔══╝ ██║ ██╔══██║ ▀▀══╝ ╚███╔███╔╝██║ ██║███████╗██║ ██║███████╗ ██║ ╚═╝ ██║ ██║ ███████║╚██████╔╝╚██████╔╝ ███████╗ ██║ ██║ ██║ ██╗ ╚══╝╚══╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ d8888b. db db db db d8888b. db db db d88888b .o88b. db db d888888b d8888b. 88 `8D 88 88 `8b d8' 88 `8D 88 88 88 88' d8P Y8 88 88 `88' 88 `8D 88oooY' 88 88 `8bd8' 88oooY' 88 88 88 88ooooo 8P 88ooo88 88 88oodD' 88~~~b. 88 88 88 88~~~b. 88 88 88 88~~~~~ 8b 88~~~88 88 88~~~ 88 8D 88b d88 88 88 8D 88booo. 88b d88 88. Y8b d8 88 88 .88. 88 Y8888P' ~Y8888P' YP Y8888P' Y88888P ~Y8888P' Y88888P `Y88P' YP YP Y888888P 88 ____ ____ _ _ ___ _ _ _ ____ ____ _ _ _ ___ [__ |___ | | |__] | | | |___ | |__| | |__] ___] |___ |___ |___ |__] |___ |__| |___ |___ | | | | ________ ____ ____ ____________ ____ ____ ______________ ____ ____ _ ____ ____ _ ___ ___ `MMMMMMMb.`MM' `MM' `M`MMMMMMMMM 6MMMMb/ `MM' `MM`MM`MMMMMMMb. `MM' 6MMMMb\ dM. 6MMMMb\ 6MMMMb/ dM. `MMb dMM' MM `Mb MM MM M MM \ 8P YM MM MM MM MM `Mb MM 6M' ` ,MMb 6M' ` 8P YM ,MMb MMM. ,PMM MM MM MM MM M MM 6M Y MM MM MM MM MM MM MM d'YM. MM 6M Y d'YM. M`Mb d'MM MM .M9 MM MM M MM , MM MM MM MM MM MM MM YM. ,P `Mb YM. MM ,P `Mb M YM. ,P MM MMMMMMM( MM MM M MMMMMMM MM MMMMMMMMMM MM MM .M9 MM YMMMMb d' YM. YMMMMb MM d' YM. M `Mb d' MM MM `Mb MM MM M MM ` MM MM MM MM MMMMMMM9' MM `Mb ,P `Mb `Mb MM ,P `Mb M YM.P MM MM MM MM MM M MM MM MM MM MM MM MM MM d' YM. MM MM d' YM. M `Mb' MM MM MM MM YM M MM YM 6 MM MM MM MM MM MM ,MMMMMMMMb MM YM 6 ,MMMMMMMMb M YP MM MM .M9 MM / 8b d8 MM / 8b d9 MM MM MM MM MM L ,M9 d' YM. L ,M9 8b d9 d' YM. M `' MM _MMMMMMM9'_MMMMMMM YMMMMM9 _MMMMMMMMM YMMMM9 _MM_ _MM_MM_MM_ _MM_MYMMMM9 _dM_ _dMM_ MYMMMM9 YMMMM9 _dM_ _dMM_M_ _MM_ ▄████████ ▄█ ▄█ ▄█ ███▄▄▄▄ ▄██████▄ ▄█ █▄ ▄████████ ███▄▄▄▄ ████████▄ ▄█ ▄█ ▄█ ███ ███ ███ ███ ███ ███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███▀▀▀██▄ ███ ▀███ ███ ███ ███ ███ ███ ███ ███ ███▌ ███ ███ ███ █▀ ███ ███ ███ ███ ███ ███ ███ ███ ███▌ ███ ███▌ ███ ███ ███ ███ ███▌ ███ ███ ▄███ ▄███▄▄▄▄███▄▄ ███ ███ ███ ███ ███ ███ ███▌ ███ ███▌ ▀███████████ ███ ███ ███▌ ███ ███ ▀▀███ ████▄ ▀▀███▀▀▀▀███▀ ▀███████████ ███ ███ ███ ███ ███▌ ███ ███▌ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███▌ ▄ ███▌ ▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄███ ███ ███ ███ ███ █▀ █████▄▄██ █████▄▄██ █▀ ▀█ █▀ ████████▀ ███ █▀ ███ █▀ ▀█ █▀ ████████▀ █▀ █▄ ▄███ █▀ ▀ ▀ ▀▀▀▀▀▀ ____ _ ________ __ ____ ____ _ __ __ ______ __ __ / _/ | | / / _/ / / / / __ \/ __ \ |/ / \ \/ / __ \/ / / / / / | | /| / // // / / / / / / / / / / / \ / / / / / / / _/ / | |/ |/ // // /___/ /___ / /_/ / /_/ / | / / /_/ / /_/ / /___/ |__/|__/___/_____/_____/ /_____/\____/_/|_| /_/\____/\____/ * ORACLE PYSCHO NETWORK * * The Coin backed by Oracle's crazed mind * * Each token is backed by 1 gram of 100.000% pure Oracle Psychotic Synapses ;-) * * Buy and Sell Fees are 33.3% * * Use your referral link to gain 33% of the Buy-In Fees when someone uses your Masternode * * HAVE SOME FUN AT THE EXPENSE OF ORACLE * * You can send ETH directly to the contract or play here: https://oraclepsycho.life/ * * Discord: https://discord.gg/z2suXdN * */ contract ORACLEPSYCHOLIFE { /*================================= = MODIFIERS = =================================*/ // only people with tokens modifier onlyBagholders() { require(myTokens() > 0); _; } // only people with profits modifier onlyStronghands() { require(myDividends(true) > 0); _; } // administrators can: // -> change the name of the contract // -> change the name of the token // -> change the PoS difficulty (How many tokens it costs to hold a masternode, in case it gets crazy high later) // they CANNOT: // -> take funds // -> disable withdrawals // -> kill the contract // -> change the price of tokens modifier onlyAdministrator(){ address _customerAddress = msg.sender; require(administrators[_customerAddress]); _; } // ensures that the first tokens in the contract will be equally distributed // meaning, no divine dump will be ever possible // result: healthy longevity. modifier antiEarlyWhale(uint256 _amountOfEthereum){ address _customerAddress = msg.sender; // are we still in the vulnerable phase? // if so, enact anti early whale protocol if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){ require( // is the customer in the ambassador list? ambassadors_[_customerAddress] == true && // does the customer purchase exceed the max ambassador quota? (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_ ); // updated the accumulated quota ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum); // execute _; } else { // in case the ether count drops low, the ambassador phase won't reinitiate onlyAmbassadors = false; _; } } /*============================== = EVENTS = ==============================*/ event onTokenPurchase( address indexed customerAddress, uint256 incomingEthereum, uint256 tokensMinted, address indexed referredBy ); event onTokenSell( address indexed customerAddress, uint256 tokensBurned, uint256 ethereumEarned ); event onReinvestment( address indexed customerAddress, uint256 ethereumReinvested, uint256 tokensMinted ); event onWithdraw( address indexed customerAddress, uint256 ethereumWithdrawn ); // ERC20 event Transfer( address indexed from, address indexed to, uint256 tokens ); /*===================================== = CONFIGURABLES = =====================================*/ string public name = "ORACLEPSYCHOLIFE"; string public symbol = "DONUTS"; uint8 constant public decimals = 18; uint8 constant internal dividendFee_ = 3; uint256 constant internal tokenPriceInitial_ = 0.000000001 ether; uint256 constant internal tokenPriceIncremental_ = 0.0000000001 ether; uint256 constant internal magnitude = 2**64; uint256 public stakingRequirement = 100e18; // ambassador program mapping(address => bool) internal ambassadors_; uint256 constant internal ambassadorMaxPurchase_ = 1 ether; uint256 constant internal ambassadorQuota_ = 20 ether; /*================================ = DATASETS = ================================*/ // amount of shares for each address (scaled number) mapping(address => uint256) internal tokenBalanceLedger_; mapping(address => uint256) internal referralBalance_; mapping(address => int256) internal payoutsTo_; mapping(address => uint256) internal ambassadorAccumulatedQuota_; uint256 internal tokenSupply_ = 0; uint256 internal profitPerShare_; // administrator list (see above on what they can do) //mapping(bytes32 => bool) public administrators; mapping(address => bool) public administrators; // when this is set to true, only ambassadors can purchase tokens (this prevents a whale premine, it ensures a fairly distributed upper pyramid) bool public onlyAmbassadors = true; address Admin; /*======================================= = PUBLIC FUNCTIONS = =======================================*/ /* * -- APPLICATION ENTRY POINTS -- */ function ORACLEPSYCHOLIFE() public { // add administrators here administrators[msg.sender] = true; Admin = msg.sender; onlyAmbassadors = false; } /** * Converts all incoming ethereum to tokens for the caller, and passes down the referral addy (if any) */ function buy(address _referredBy) public payable returns(uint256) { purchaseTokens(msg.value, _referredBy); } /** * Fallback function to handle ethereum that was send straight to the contract * Unfortunately we cannot use a referral address this way. */ function() payable public { purchaseTokens(msg.value, 0x0); } /** * Converts all of caller's dividends to tokens. */ function reinvest() onlyStronghands() public { // fetch dividends uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code // pay out the dividends virtually address _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, 0x0); // fire event onReinvestment(_customerAddress, _dividends, _tokens); } /** * 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); // lambo delivery service withdraw(); } /** * Withdraws all of the callers earnings. */ function withdraw() onlyStronghands() public { // setup data address _customerAddress = msg.sender; uint256 _dividends = myDividends(false); // 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 onWithdraw(_customerAddress, _dividends); } /** * Liquifies tokens to ethereum. */ function sell(uint256 _amountOfTokens) onlyBagholders() public { // setup data address _customerAddress = msg.sender; // russian hackers BTFO require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]); uint256 _tokens = _amountOfTokens; uint256 _ethereum = tokensToEthereum_(_tokens); uint256 _dividends = SafeMath.div(_ethereum, dividendFee_); uint256 _taxedEthereum = SafeMath.sub(_ethereum, _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 + (_taxedEthereum * 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 onTokenSell(_customerAddress, _tokens, _taxedEthereum); } /** * Transfer tokens from the caller to a new holder. * Remember, there's a 10% fee here as well. */ function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders() public returns(bool) { // setup address _customerAddress = msg.sender; // make sure we have the requested tokens // also disables transfers until ambassador phase is over // ( we dont want whale premines ) require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]); // withdraw all outstanding dividends first if(myDividends(true) > 0) withdraw(); // liquify 10% of the tokens that are transfered // these are dispersed to shareholders uint256 _tokenFee = SafeMath.div(_amountOfTokens, dividendFee_); uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee); uint256 _dividends = tokensToEthereum_(_tokenFee); // burn the fee tokens tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee); // exchange tokens tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens); tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens); // update dividend trackers payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens); payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens); // disperse dividends among holders profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_); // fire event Transfer(_customerAddress, _toAddress, _taxedTokens); // ERC20 return true; } /*---------- ADMINISTRATOR ONLY FUNCTIONS ----------*/ /** * In case the amassador quota is not met, the administrator can manually disable the ambassador phase. */ function disableInitialStage() onlyAdministrator() public { onlyAmbassadors = false; } /** * In case one of us dies, we need to replace ourselves. */ function setAdministrator(address _identifier, bool _status) onlyAdministrator() public { administrators[_identifier] = _status; } /** * Precautionary measures in case we need to adjust the masternode rate. */ function setStakingRequirement(uint256 _amountOfTokens) onlyAdministrator() public { stakingRequirement = _amountOfTokens; } /** * If we want to rebrand, we can. */ function setName(string _name) onlyAdministrator() public { name = _name; } /** * If we want to rebrand, we can. */ function setSymbol(string _symbol) onlyAdministrator() public { symbol = _symbol; } /*---------- HELPERS AND CALCULATORS ----------*/ /** * Method to view the current Ethereum stored in the contract * Example: totalEthereumBalance() */ function totalEthereumBalance() public view returns(uint) { return address (this).balance; } /** * Retrieve the total token supply. */ function totalSupply() public view returns(uint256) { return tokenSupply_; } /** * Retrieve the tokens owned by the caller. */ function myTokens() public view returns(uint256) { address _customerAddress = msg.sender; return balanceOf(_customerAddress); } /** * Retrieve the 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) public view returns(uint256) { address _customerAddress = msg.sender; return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ; } /** * Retrieve the token balance of any single address. */ function balanceOf(address _customerAddress) view public returns(uint256) { return tokenBalanceLedger_[_customerAddress]; } /** * Retrieve the dividend balance of any single address. */ function dividendsOf(address _customerAddress) view public returns(uint256) { return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude; } /** * Return the buy 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 _ethereum = tokensToEthereum_(1e18); uint256 _dividends = SafeMath.div(_ethereum, dividendFee_ ); uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends); return _taxedEthereum; } } /** * Return the sell 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 _ethereum = tokensToEthereum_(1e18); uint256 _dividends = SafeMath.div(_ethereum, dividendFee_ ); uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends); return _taxedEthereum; } } /** * Function for the frontend to dynamically retrieve the price scaling of buy orders. */ function calculateTokensReceived(uint256 _ethereumToSpend) public view returns(uint256) { uint256 _dividends = SafeMath.div(_ethereumToSpend, dividendFee_); uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends); uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum); return _amountOfTokens; } /** * Function for the frontend to dynamically retrieve the price scaling of sell orders. */ function calculateEthereumReceived(uint256 _tokensToSell) public view returns(uint256) { require(_tokensToSell <= tokenSupply_); uint256 _ethereum = tokensToEthereum_(_tokensToSell); uint256 _dividends = SafeMath.div(_ethereum, dividendFee_); uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends); return _taxedEthereum; } /*========================================== = INTERNAL FUNCTIONS = ==========================================*/ function purchaseTokens(uint256 _incomingEthereum, address _referredBy) antiEarlyWhale(_incomingEthereum) internal returns(uint256) { // data setup address _customerAddress = msg.sender; uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_); uint256 _referralBonus = SafeMath.div(_undividedDividends, 3); uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus); uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends); uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum); uint256 _fee = _dividends * magnitude; // 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 != 0x0000000000000000000000000000000000000000 && // 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 referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus); } 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 ethereum if(tokenSupply_ > 0){ // add tokens to the pool tokenSupply_ = SafeMath.add(tokenSupply_, _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; // fire event onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy); return _amountOfTokens; } /** * Calculate Token price based on an amount of incoming ethereum * 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 ethereumToTokens_(uint256 _ethereum) internal view returns(uint256) { uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18; uint256 _tokensReceived = ( ( // underflow attempts BTFO SafeMath.sub( (sqrt ( (_tokenPriceInitial**2) + (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18)) + (((tokenPriceIncremental_)**2)*(tokenSupply_**2)) + (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_) ) ), _tokenPriceInitial ) )/(tokenPriceIncremental_) )-(tokenSupply_) ; return _tokensReceived; } /** * 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 tokensToEthereum_(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; } //This is where all your gas goes, sorry //Not sorry, you probably only paid 1 gwei function sqrt(uint x) internal pure returns (uint y) { uint z = (x + 1) / 2; y = x; while (z < y) { y = z; z = (x / z + z) / 2; } } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":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":"","type":"address"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"address"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":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"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
60606040526040805190810160405280601081526020017f4f5241434c4550535943484f4c49464500000000000000000000000000000000815250600090805190602001906200005192919062000193565b506040805190810160405280600681526020017f444f4e5554530000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000193565b5068056bc75e2d6310000060025560006008556001600b60006101000a81548160ff0219169083151502179055503415620000d957600080fd5b6001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548160ff02191690831515021790555062000242565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001d657805160ff191683800117855562000207565b8280016001018555821562000207579182015b8281111562000206578251825591602001919060010190620001e9565b5b5090506200021691906200021a565b5090565b6200023f91905b808211156200023b57600081600090555060010162000221565b5090565b90565b6122fb80620002526000396000f30060606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101b957806310d0ffdd1461024757806318160ddd1461027e57806322609373146102a757806327defa1f146102de578063313ce5671461030b5780633ccfd60b1461033a5780634b7503341461034f57806356d399e814610378578063688abbf7146103a15780636b2f4632146103da57806370a082311461040357806376be1585146104505780638328b610146104a15780638620410b146104c457806387c95058146104ed578063949e8acd1461053157806395d89b411461055a578063a8e04f34146105e8578063a9059cbb146105fd578063b84c824614610657578063c47f0027146106b4578063e4849b3214610711578063e9fad8ee14610734578063f088d54714610749578063fdb5a03e1461078b575b6101693460006107a0565b50005b341561017757600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110a0565b6040518082815260200191505060405180910390f35b34156101c457600080fd5b6101cc611142565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020c5780820151818401526020810190506101f1565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025257600080fd5b61026860048080359060200190919050506111e0565b6040518082815260200191505060405180910390f35b341561028957600080fd5b610291611218565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c86004808035906020019091905050611222565b6040518082815260200191505060405180910390f35b34156102e957600080fd5b6102f161126b565b604051808215151515815260200191505060405180910390f35b341561031657600080fd5b61031e61127e565b604051808260ff1660ff16815260200191505060405180910390f35b341561034557600080fd5b61034d611283565b005b341561035a57600080fd5b610362611420565b6040518082815260200191505060405180910390f35b341561038357600080fd5b61038b61147c565b6040518082815260200191505060405180910390f35b34156103ac57600080fd5b6103c460048080351515906020019091905050611482565b6040518082815260200191505060405180910390f35b34156103e557600080fd5b6103ed6114ee565b6040518082815260200191505060405180910390f35b341561040e57600080fd5b61043a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150d565b6040518082815260200191505060405180910390f35b341561045b57600080fd5b610487600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611556565b604051808215151515815260200191505060405180910390f35b34156104ac57600080fd5b6104c26004808035906020019091905050611576565b005b34156104cf57600080fd5b6104d76115de565b6040518082815260200191505060405180910390f35b34156104f857600080fd5b61052f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035151590602001909190505061163a565b005b341561053c57600080fd5b6105446116f3565b6040518082815260200191505060405180910390f35b341561056557600080fd5b61056d611708565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ad578082015181840152602081019050610592565b50505050905090810190601f1680156105da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105f357600080fd5b6105fb6117a6565b005b341561060857600080fd5b61063d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611821565b604051808215151515815260200191505060405180910390f35b341561066257600080fd5b6106b2600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b53565b005b34156106bf57600080fd5b61070f600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bcb565b005b341561071c57600080fd5b6107326004808035906020019091905050611c43565b005b341561073f57600080fd5b610747611e71565b005b610775600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ed8565b6040518082815260200191505060405180910390f35b341561079657600080fd5b61079e611eea565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff1680156107e257506801158e460913d00000826107de6114ee565b0311155b15610cd05760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156108905750670de0b6b3a764000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561089b57600080fd5b6108e4600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361205e565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109388d600360ff1661207c565b985061094589600361207c565b97506109518989612097565b965061095d8d8a612097565b9550610968866120b0565b9450680100000000000000008702935060008511801561099457506008546109928660085461205e565b115b151561099f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610a0857508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610a555750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610aeb57610aa3600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961205e565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b06565b610af5878961205e565b965068010000000000000000870293505b60006008541115610b7157610b1d6008548661205e565b600881905550600854680100000000000000008802811515610b3b57fe5b04600960008282540192505081905550600854680100000000000000008802811515610b6357fe5b048502840384039350610b79565b846008819055505b610bc2600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661205e565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a50611090565b6000600b60006101000a81548160ff021916908315150217905550339950610cfc8d600360ff1661207c565b9850610d0989600361207c565b9750610d158989612097565b9650610d218d8a612097565b9550610d2c866120b0565b94506801000000000000000087029350600085118015610d585750600854610d568660085461205e565b115b1515610d6357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610dcc57508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610e195750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610eaf57610e67600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961205e565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610eca565b610eb9878961205e565b965068010000000000000000870293505b60006008541115610f3557610ee16008548661205e565b600881905550600854680100000000000000008802811515610eff57fe5b04600960008282540192505081905550600854680100000000000000008802811515610f2757fe5b048502840384039350610f3d565b846008819055505b610f86600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661205e565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954020381151561113a57fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d85780601f106111ad576101008083540402835291602001916111d8565b820191906000526020600020905b8154815290600101906020018083116111bb57829003601f168201915b505050505081565b6000806000806111f485600360ff1661207c565b92506112008584612097565b915061120b826120b0565b9050809350505050919050565b6000600854905090565b600080600080600854851115151561123957600080fd5b61124285612138565b925061125283600360ff1661207c565b915061125e8383612097565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b60008060006112926001611482565b11151561129e57600080fd5b3391506112ab6000611482565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113ce57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006008541415611443576305f5e100633b9aca00039350611476565b611454670de0b6b3a7640000612138565b925061146483600360ff1661207c565b91506114708383612097565b90508093505b50505090565b60025481565b6000803390508261149b57611496816110a0565b6114e6565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e4826110a0565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156115d357600080fd5b816002819055505050565b60008060008060006008541415611601576305f5e100633b9aca00019350611634565b611612670de0b6b3a7640000612138565b925061162283600360ff1661207c565b915061162e838361205e565b90508093505b50505090565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561169757600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117028161150d565b91505090565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b505050505081565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561180357600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b6000806000806000806118326116f3565b11151561183e57600080fd5b339350600b60009054906101000a900460ff1615801561189d5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156118a857600080fd5b60006118b46001611482565b11156118c3576118c2611283565b5b6118d186600360ff1661207c565b92506118dd8684612097565b91506118e883612138565b90506118f660085484612097565b600881905550611945600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487612097565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d1600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361205e565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611ada600954600854680100000000000000008402811515611ad457fe5b0461205e565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bb057600080fd5b8160019080519060200190611bc692919061222a565b505050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c2857600080fd5b8160009080519060200190611c3e92919061222a565b505050565b6000806000806000806000611c566116f3565b111515611c6257600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611cb357600080fd5b869450611cbf85612138565b9350611ccf84600360ff1661207c565b9250611cdb8484612097565b9150611ce960085486612097565b600881905550611d38600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612097565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611e1257611e0b600954600854680100000000000000008602811515611e0557fe5b0461205e565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611ecc57611ecb81611c43565b5b611ed4611283565b5050565b6000611ee434836107a0565b50919050565b600080600080611efa6001611482565b111515611f0657600080fd5b611f106000611482565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120018360006107a0565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561207257fe5b8091505092915050565b600080828481151561208a57fe5b0490508091505092915050565b60008282111515156120a557fe5b818303905092915050565b6000806000670de0b6b3a7640000633b9aca000291506008546305f5e10061212161211b600854866305f5e100600202020260026008540a60026305f5e1000a02670de0b6b3a76400008a02670de0b6b3a76400006305f5e10002600202026002890a0101016121df565b85612097565b81151561212a57fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a76400006121c8670de0b6b3a764000085036305f5e100670de0b6b3a76400008681151561218957fe5b046305f5e10002633b9aca000103026002670de0b6b3a7640000876002890a038115156121b257fe5b046305f5e100028115156121c257fe5b04612097565b8115156121d157fe5b049050809350505050919050565b6000806002600184018115156121f157fe5b0490508291505b8181101561222457809150600281828581151561221157fe5b040181151561221c57fe5b0490506121f8565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226b57805160ff1916838001178555612299565b82800160010185558215612299579182015b8281111561229857825182559160200191906001019061227d565b5b5090506122a691906122aa565b5090565b6122cc91905b808211156122c85760008160009055506001016122b0565b5090565b905600a165627a7a7230582064146392362b508f0859ed1a323fe7aeae750db680b1d878b2de25c66cddbc930029
Deployed Bytecode
0x60606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101b957806310d0ffdd1461024757806318160ddd1461027e57806322609373146102a757806327defa1f146102de578063313ce5671461030b5780633ccfd60b1461033a5780634b7503341461034f57806356d399e814610378578063688abbf7146103a15780636b2f4632146103da57806370a082311461040357806376be1585146104505780638328b610146104a15780638620410b146104c457806387c95058146104ed578063949e8acd1461053157806395d89b411461055a578063a8e04f34146105e8578063a9059cbb146105fd578063b84c824614610657578063c47f0027146106b4578063e4849b3214610711578063e9fad8ee14610734578063f088d54714610749578063fdb5a03e1461078b575b6101693460006107a0565b50005b341561017757600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110a0565b6040518082815260200191505060405180910390f35b34156101c457600080fd5b6101cc611142565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020c5780820151818401526020810190506101f1565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025257600080fd5b61026860048080359060200190919050506111e0565b6040518082815260200191505060405180910390f35b341561028957600080fd5b610291611218565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c86004808035906020019091905050611222565b6040518082815260200191505060405180910390f35b34156102e957600080fd5b6102f161126b565b604051808215151515815260200191505060405180910390f35b341561031657600080fd5b61031e61127e565b604051808260ff1660ff16815260200191505060405180910390f35b341561034557600080fd5b61034d611283565b005b341561035a57600080fd5b610362611420565b6040518082815260200191505060405180910390f35b341561038357600080fd5b61038b61147c565b6040518082815260200191505060405180910390f35b34156103ac57600080fd5b6103c460048080351515906020019091905050611482565b6040518082815260200191505060405180910390f35b34156103e557600080fd5b6103ed6114ee565b6040518082815260200191505060405180910390f35b341561040e57600080fd5b61043a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150d565b6040518082815260200191505060405180910390f35b341561045b57600080fd5b610487600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611556565b604051808215151515815260200191505060405180910390f35b34156104ac57600080fd5b6104c26004808035906020019091905050611576565b005b34156104cf57600080fd5b6104d76115de565b6040518082815260200191505060405180910390f35b34156104f857600080fd5b61052f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035151590602001909190505061163a565b005b341561053c57600080fd5b6105446116f3565b6040518082815260200191505060405180910390f35b341561056557600080fd5b61056d611708565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ad578082015181840152602081019050610592565b50505050905090810190601f1680156105da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105f357600080fd5b6105fb6117a6565b005b341561060857600080fd5b61063d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611821565b604051808215151515815260200191505060405180910390f35b341561066257600080fd5b6106b2600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b53565b005b34156106bf57600080fd5b61070f600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bcb565b005b341561071c57600080fd5b6107326004808035906020019091905050611c43565b005b341561073f57600080fd5b610747611e71565b005b610775600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ed8565b6040518082815260200191505060405180910390f35b341561079657600080fd5b61079e611eea565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff1680156107e257506801158e460913d00000826107de6114ee565b0311155b15610cd05760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156108905750670de0b6b3a764000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561089b57600080fd5b6108e4600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361205e565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109388d600360ff1661207c565b985061094589600361207c565b97506109518989612097565b965061095d8d8a612097565b9550610968866120b0565b9450680100000000000000008702935060008511801561099457506008546109928660085461205e565b115b151561099f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610a0857508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610a555750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610aeb57610aa3600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961205e565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b06565b610af5878961205e565b965068010000000000000000870293505b60006008541115610b7157610b1d6008548661205e565b600881905550600854680100000000000000008802811515610b3b57fe5b04600960008282540192505081905550600854680100000000000000008802811515610b6357fe5b048502840384039350610b79565b846008819055505b610bc2600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661205e565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a50611090565b6000600b60006101000a81548160ff021916908315150217905550339950610cfc8d600360ff1661207c565b9850610d0989600361207c565b9750610d158989612097565b9650610d218d8a612097565b9550610d2c866120b0565b94506801000000000000000087029350600085118015610d585750600854610d568660085461205e565b115b1515610d6357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610dcc57508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610e195750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610eaf57610e67600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961205e565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610eca565b610eb9878961205e565b965068010000000000000000870293505b60006008541115610f3557610ee16008548661205e565b600881905550600854680100000000000000008802811515610eff57fe5b04600960008282540192505081905550600854680100000000000000008802811515610f2757fe5b048502840384039350610f3d565b846008819055505b610f86600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661205e565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954020381151561113a57fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d85780601f106111ad576101008083540402835291602001916111d8565b820191906000526020600020905b8154815290600101906020018083116111bb57829003601f168201915b505050505081565b6000806000806111f485600360ff1661207c565b92506112008584612097565b915061120b826120b0565b9050809350505050919050565b6000600854905090565b600080600080600854851115151561123957600080fd5b61124285612138565b925061125283600360ff1661207c565b915061125e8383612097565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b60008060006112926001611482565b11151561129e57600080fd5b3391506112ab6000611482565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113ce57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006008541415611443576305f5e100633b9aca00039350611476565b611454670de0b6b3a7640000612138565b925061146483600360ff1661207c565b91506114708383612097565b90508093505b50505090565b60025481565b6000803390508261149b57611496816110a0565b6114e6565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e4826110a0565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156115d357600080fd5b816002819055505050565b60008060008060006008541415611601576305f5e100633b9aca00019350611634565b611612670de0b6b3a7640000612138565b925061162283600360ff1661207c565b915061162e838361205e565b90508093505b50505090565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561169757600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117028161150d565b91505090565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b505050505081565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561180357600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b6000806000806000806118326116f3565b11151561183e57600080fd5b339350600b60009054906101000a900460ff1615801561189d5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156118a857600080fd5b60006118b46001611482565b11156118c3576118c2611283565b5b6118d186600360ff1661207c565b92506118dd8684612097565b91506118e883612138565b90506118f660085484612097565b600881905550611945600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487612097565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d1600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361205e565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611ada600954600854680100000000000000008402811515611ad457fe5b0461205e565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bb057600080fd5b8160019080519060200190611bc692919061222a565b505050565b6000339050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c2857600080fd5b8160009080519060200190611c3e92919061222a565b505050565b6000806000806000806000611c566116f3565b111515611c6257600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611cb357600080fd5b869450611cbf85612138565b9350611ccf84600360ff1661207c565b9250611cdb8484612097565b9150611ce960085486612097565b600881905550611d38600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612097565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611e1257611e0b600954600854680100000000000000008602811515611e0557fe5b0461205e565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611ecc57611ecb81611c43565b5b611ed4611283565b5050565b6000611ee434836107a0565b50919050565b600080600080611efa6001611482565b111515611f0657600080fd5b611f106000611482565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120018360006107a0565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561207257fe5b8091505092915050565b600080828481151561208a57fe5b0490508091505092915050565b60008282111515156120a557fe5b818303905092915050565b6000806000670de0b6b3a7640000633b9aca000291506008546305f5e10061212161211b600854866305f5e100600202020260026008540a60026305f5e1000a02670de0b6b3a76400008a02670de0b6b3a76400006305f5e10002600202026002890a0101016121df565b85612097565b81151561212a57fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a76400006121c8670de0b6b3a764000085036305f5e100670de0b6b3a76400008681151561218957fe5b046305f5e10002633b9aca000103026002670de0b6b3a7640000876002890a038115156121b257fe5b046305f5e100028115156121c257fe5b04612097565b8115156121d157fe5b049050809350505050919050565b6000806002600184018115156121f157fe5b0490508291505b8181101561222457809150600281828581151561221157fe5b040181151561221c57fe5b0490506121f8565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226b57805160ff1916838001178555612299565b82800160010185558215612299579182015b8281111561229857825182559160200191906001019061227d565b5b5090506122a691906122aa565b5090565b6122cc91905b808211156122c85760008160009055506001016122b0565b5090565b905600a165627a7a7230582064146392362b508f0859ed1a323fe7aeae750db680b1d878b2de25c66cddbc930029
Deployed Bytecode Sourcemap
10719:22893:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16488:30;16503:9;16514:3;16488:14;:30::i;:::-;;10719:22893;24841:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13982:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;13982:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26466:398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23438:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26986:414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15468:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14066:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17840:678;;;;;;;;;;;;;;25177:543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14358:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24183:310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23229:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24581:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15259:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22502:161;;;;;;;;;;;;;;;;;;;;;;;;;;25803:542;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22227:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23639:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14028:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;14028:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22012:123;;;;;;;;;;;;;;20029:1782;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22913:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22732:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18586:1300;;;;;;;;;;;;;;;;;;;;;;;;;;17447:320;;;;;;;;;;;;;;16094:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16610:767;;;;;;;;;;;;;;27568:3470;27718:7;27766:24;27814:27;27900:22;27972:18;28053:22;28141:23;28211:12;30725:22;27664:17;11903:24;11930:10;11903:37;;12067:15;;;;;;;;;;;:86;;;;;14603:8;12113:17;12088:22;:20;:22::i;:::-;:42;12087:64;;12067:86;12063:907;;;12289:4;12255:38;;:12;:30;12268:16;12255:30;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;:250;;;;;14544:7;12461:17;12413:27;:45;12441:16;12413:45;;;;;;;;;;;;;;;;:65;12412:93;;12255:250;12169:369;;;;;;;;12665:78;12678:27;:45;12706:16;12678:45;;;;;;;;;;;;;;;;12725:17;12665:12;:78::i;:::-;12617:27;:45;12645:16;12617:45;;;;;;;;;;;;;;;:126;;;;27793:10;27766:37;;27844:45;27857:17;14147:1;27844:45;;:12;:45::i;:::-;27814:75;;27925:36;27938:19;27959:1;27925:12;:36::i;:::-;27900:61;;27993:49;28006:19;28027:14;27993:12;:49::i;:::-;27972:70;;28078:52;28091:17;28110:19;28078:12;:52::i;:::-;28053:77;;28167:33;28185:14;28167:17;:33::i;:::-;28141:59;;14340:5;28226:10;:22;28211:37;;28620:1;28602:15;:19;:82;;;;;28671:12;;28626:42;28639:15;28655:12;;28626;:42::i;:::-;:57;28602:82;28594:91;;;;;;;;28845:42;28830:57;;:11;:57;;;;:136;;;;;28950:16;28935:31;;:11;:31;;;;28830:136;:345;;;;;29157:18;;29121:19;:32;29141:11;29121:32;;;;;;;;;;;;;;;;:54;;28830:345;28756:835;;;29271:59;29284:16;:29;29301:11;29284:29;;;;;;;;;;;;;;;;29315:14;29271:12;:59::i;:::-;29239:16;:29;29256:11;29239:29;;;;;;;;;;;;;;;:91;;;;28756:835;;;29495:40;29508:10;29520:14;29495:12;:40::i;:::-;29482:53;;14340:5;29557:10;:22;29550:29;;28756:835;29680:1;29665:12;;:16;29662:671;;;29765:43;29778:12;;29792:15;29765:12;:43::i;:::-;29750:12;:58;;;;29996:12;;14340:5;29970:10;:22;:39;;;;;;;;29950:15;;:60;;;;;;;;;;;30193:12;;14340:5;30167:10;:22;:39;;;;;;;;30148:15;:59;30142:4;:66;30134:4;:75;30127:82;;29662:671;;;30306:15;30291:12;:30;;;;29662:671;30469:68;30482:19;:37;30502:16;30482:37;;;;;;;;;;;;;;;;30521:15;30469:12;:68::i;:::-;30429:19;:37;30449:16;30429:37;;;;;;;;;;;;;;;:108;;;;30798:4;30779:15;30761;;:33;30760:42;30725:78;;30846:15;30814:10;:28;30825:16;30814:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;30975:11;30905:82;;30921:16;30905:82;;;30939:17;30958:15;30905:82;;;;;;;;;;;;;;;;;;;;;;;;31015:15;31008:22;;12063:907;;;12933:5;12915:15;;:23;;;;;;;;;;;;;;;;;;27793:10;27766:37;;27844:45;27857:17;14147:1;27844:45;;:12;:45::i;:::-;27814:75;;27925:36;27938:19;27959:1;27925:12;:36::i;:::-;27900:61;;27993:49;28006:19;28027:14;27993:12;:49::i;:::-;27972:70;;28078:52;28091:17;28110:19;28078:12;:52::i;:::-;28053:77;;28167:33;28185:14;28167:17;:33::i;:::-;28141:59;;14340:5;28226:10;:22;28211:37;;28620:1;28602:15;:19;:82;;;;;28671:12;;28626:42;28639:15;28655:12;;28626;:42::i;:::-;:57;28602:82;28594:91;;;;;;;;28845:42;28830:57;;:11;:57;;;;:136;;;;;28950:16;28935:31;;:11;:31;;;;28830:136;:345;;;;;29157:18;;29121:19;:32;29141:11;29121:32;;;;;;;;;;;;;;;;:54;;28830:345;28756:835;;;29271:59;29284:16;:29;29301:11;29284:29;;;;;;;;;;;;;;;;29315:14;29271:12;:59::i;:::-;29239:16;:29;29256:11;29239:29;;;;;;;;;;;;;;;:91;;;;28756:835;;;29495:40;29508:10;29520:14;29495:12;:40::i;:::-;29482:53;;14340:5;29557:10;:22;29550:29;;28756:835;29680:1;29665:12;;:16;29662:671;;;29765:43;29778:12;;29792:15;29765:12;:43::i;:::-;29750:12;:58;;;;29996:12;;14340:5;29970:10;:22;:39;;;;;;;;29950:15;;:60;;;;;;;;;;;30193:12;;14340:5;30167:10;:22;:39;;;;;;;;30148:15;:59;30142:4;:66;30134:4;:75;30127:82;;29662:671;;;30306:15;30291:12;:30;;;;29662:671;30469:68;30482:19;:37;30502:16;30482:37;;;;;;;;;;;;;;;;30521:15;30469:12;:68::i;:::-;30429:19;:37;30449:16;30429:37;;;;;;;;;;;;;;;:108;;;;30798:4;30779:15;30761;;:33;30760:42;30725:78;;30846:15;30814:10;:28;30825:16;30814:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;30975:11;30905:82;;30921:16;30905:82;;;30939:17;30958:15;30905:82;;;;;;;;;;;;;;;;;;;;;;;;31015:15;31008:22;;12063:907;27568:3470;;;;;;;;;;;;;;:::o;24841:254::-;24935:7;14340:5;25046:10;:28;25057:16;25046:28;;;;;;;;;;;;;;;;25005:19;:37;25025:16;25005:37;;;;;;;;;;;;;;;;24987:15;;:55;24978:96;24967:120;;;;;;;;24960:127;;24841:254;;;:::o;13982:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26466:398::-;26575:7;26600:18;26676:22;26754:23;26621:44;26634:16;14147:1;26621:44;;:12;:44::i;:::-;26600:65;;26701:42;26714:16;26732:10;26701:12;:42::i;:::-;26676:67;;26780:33;26798:14;26780:17;:33::i;:::-;26754:59;;26841:15;26834:22;;26466:398;;;;;;:::o;23438:122::-;23508:7;23540:12;;23533:19;;23438:122;:::o;26986:414::-;27094:7;27168:17;27231:18;27300:22;27144:12;;27127:13;:29;;27119:38;;;;;;;;27188:32;27206:13;27188:17;:32::i;:::-;27168:52;;27252:37;27265:9;14147:1;27252:37;;:12;:37::i;:::-;27231:58;;27325:35;27338:9;27349:10;27325:12;:35::i;:::-;27300:60;;27378:14;27371:21;;26986:414;;;;;;:::o;15468:34::-;;;;;;;;;;;;;:::o;14066:35::-;14099:2;14066:35;:::o;17840:678::-;17942:24;17990:18;11098:1;11078:17;11090:4;11078:11;:17::i;:::-;:21;11070:30;;;;;;;;17969:10;17942:37;;18011:18;18023:5;18011:11;:18::i;:::-;17990:39;;14340:5;18165:10;:22;18122:10;:28;18133:16;18122:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;18250:16;:34;18267:16;18250:34;;;;;;;;;;;;;;;;18236:48;;;;18332:1;18295:16;:34;18312:16;18295:34;;;;;;;;;;;;;;;:38;;;;18389:16;:25;;:37;18415:10;18389:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18481:16;18470:40;;;18499:10;18470:40;;;;;;;;;;;;;;;;;;17840:678;;:::o;25177:543::-;25248:7;25472:17;25530:18;25605:22;25372:1;25356:12;;:17;25353:360;;;14277:18;14202:17;25396:43;25389:50;;;;25353:360;25492:23;25510:4;25492:17;:23::i;:::-;25472:43;;25551:39;25564:9;14147:1;25551:39;;:12;:39::i;:::-;25530:60;;25630:35;25643:9;25654:10;25630:12;:35::i;:::-;25605:60;;25687:14;25680:21;;25177:543;;;;;:::o;14358:42::-;;;;:::o;24183:310::-;24282:7;24307:24;24334:10;24307:37;;24362:21;:122;;24455:29;24467:16;24455:11;:29::i;:::-;24362:122;;;24418:16;:34;24435:16;24418:34;;;;;;;;;;;;;;;;24386:29;24398:16;24386:11;:29::i;:::-;:66;24362:122;24355:129;;24183:310;;;;:::o;23229:138::-;23308:4;23346;23337:22;;;23330:29;;23229:138;:::o;24581:169::-;24673:7;24705:19;:37;24725:16;24705:37;;;;;;;;;;;;;;;;24698:44;;24581:169;;;:::o;15259:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;22502:161::-;11542:24;11569:10;11542:37;;11600:14;:32;11615:16;11600:32;;;;;;;;;;;;;;;;;;;;;;;;;11592:41;;;;;;;;22640:15;22619:18;:36;;;;22502:161;;:::o;25803:542::-;25873:7;26097:17;26155:18;26230:22;25997:1;25981:12;;:17;25978:360;;;14277:18;14202:17;26021:43;26014:50;;;;25978:360;26117:23;26135:4;26117:17;:23::i;:::-;26097:43;;26176:39;26189:9;14147:1;26176:39;;:12;:39::i;:::-;26155:60;;26255:35;26268:9;26279:10;26255:12;:35::i;:::-;26230:60;;26312:14;26305:21;;25803:542;;;;;:::o;22227:167::-;11542:24;11569:10;11542:37;;11600:14;:32;11615:16;11600:32;;;;;;;;;;;;;;;;;;;;;;;;;11592:41;;;;;;;;22379:7;22349:14;:27;22364:11;22349:27;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;22227:167;;;:::o;23639:182::-;23706:7;23731:24;23758:10;23731:37;;23786:27;23796:16;23786:9;:27::i;:::-;23779:34;;23639:182;;:::o;14028:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22012:123::-;11542:24;11569:10;11542:37;;11600:14;:32;11615:16;11600:32;;;;;;;;;;;;;;;;;;;;;;;;;11592:41;;;;;;;;22122:5;22104:15;;:23;;;;;;;;;;;;;;;;;;22012:123;:::o;20029:1782::-;20151:4;20191:24;20733:17;20807:20;20881:18;10965:1;10952:10;:8;:10::i;:::-;:14;10944:23;;;;;;;;20218:10;20191:37;;20420:15;;;;;;;;;;;20419:16;:76;;;;;20458:19;:37;20478:16;20458:37;;;;;;;;;;;;;;;;20439:15;:56;;20419:76;20411:85;;;;;;;;20593:1;20573:17;20585:4;20573:11;:17::i;:::-;:21;20570:36;;;20596:10;:8;:10::i;:::-;20570:36;20753:43;20766:15;14147:1;20753:43;;:12;:43::i;:::-;20733:63;;20830:40;20843:15;20860:9;20830:12;:40::i;:::-;20807:63;;20902:28;20920:9;20902:17;:28::i;:::-;20881:49;;20992:37;21005:12;;21019:9;20992:12;:37::i;:::-;20977:12;:52;;;;21110:68;21123:19;:37;21143:16;21123:37;;;;;;;;;;;;;;;;21162:15;21110:12;:68::i;:::-;21070:19;:37;21090:16;21070:37;;;;;;;;;;;;;;;:108;;;;21223:59;21236:19;:31;21256:10;21236:31;;;;;;;;;;;;;;;;21269:12;21223;:59::i;:::-;21189:19;:31;21209:10;21189:31;;;;;;;;;;;;;;;:93;;;;21400:15;21382;;:33;21340:10;:28;21351:16;21340:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;21481:12;21463:15;;:30;21427:10;:22;21438:10;21427:22;;;;;;;;;;;;;;;;:67;;;;;;;;;;;21578:70;21591:15;;21635:12;;14340:5;21609:10;:22;21608:39;;;;;;;;21578:12;:70::i;:::-;21560:15;:88;;;;21719:10;21692:52;;21701:16;21692:52;;;21731:12;21692:52;;;;;;;;;;;;;;;;;;21790:4;21783:11;;20029:1782;;;;;;;;:::o;22913:120::-;11542:24;11569:10;11542:37;;11600:14;:32;11615:16;11600:32;;;;;;;;;;;;;;;;;;;;;;;;;11592:41;;;;;;;;23018:7;23009:6;:16;;;;;;;;;;;;:::i;:::-;;22913:120;;:::o;22732:112::-;11542:24;11569:10;11542:37;;11600:14;:32;11615:16;11600:32;;;;;;;;;;;;;;;;;;;;;;;;;11592:41;;;;;;;;22831:5;22824:4;:12;;;;;;;;;;;;:::i;:::-;;22732:112;;:::o;18586:1300::-;18706:24;18863:15;18907:17;18964:18;19033:22;19366;10965:1;10952:10;:8;:10::i;:::-;:14;10944:23;;;;;;;;18733:10;18706:37;;18814:19;:37;18834:16;18814:37;;;;;;;;;;;;;;;;18795:15;:56;;18787:65;;;;;;;;18881:15;18863:33;;18927:26;18945:7;18927:17;:26::i;:::-;18907:46;;18985:37;18998:9;14147:1;18985:37;;:12;:37::i;:::-;18964:58;;19058:35;19071:9;19082:10;19058:12;:35::i;:::-;19033:60;;19162:35;19175:12;;19189:7;19162:12;:35::i;:::-;19147:12;:50;;;;19248:60;19261:19;:37;19281:16;19261:37;;;;;;;;;;;;;;;;19300:7;19248:12;:60::i;:::-;19208:19;:37;19228:16;19208:37;;;;;;;;;;;;;;;:100;;;;14340:5;19430:14;:26;19419:7;19401:15;;:25;:56;19366:92;;19501:15;19469:10;:28;19480:16;19469:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;19606:1;19591:12;;:16;19587:194;;;19699:70;19712:15;;19756:12;;14340:5;19730:10;:22;19729:39;;;;;;;;19699:12;:70::i;:::-;19681:15;:88;;;;19587:194;19836:16;19824:54;;;19854:7;19863:14;19824:54;;;;;;;;;;;;;;;;;;;;;;;;18586:1300;;;;;;;:::o;17447:320::-;17550:24;17598:15;17577:10;17550:37;;17616:19;:37;17636:16;17616:37;;;;;;;;;;;;;;;;17598:55;;17677:1;17667:7;:11;17664:29;;;17680:13;17685:7;17680:4;:13::i;:::-;17664:29;17749:10;:8;:10::i;:::-;17447:320;;:::o;16094:155::-;16178:7;16203:38;16218:9;16229:11;16203:14;:38::i;:::-;;16094:155;;;:::o;16610:767::-;16717:18;16862:24;17223:15;11098:1;11078:17;11090:4;11078:11;:17::i;:::-;:21;11070:30;;;;;;;;16738:18;16750:5;16738:11;:18::i;:::-;16717:39;;16889:10;16862:37;;14340:5;16953:10;:22;16910:10;:28;16921:16;16910:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;17043:16;:34;17060:16;17043:34;;;;;;;;;;;;;;;;17029:48;;;;17125:1;17088:16;:34;17105:16;17088:34;;;;;;;;;;;;;;;:38;;;;17241:31;17256:10;17268:3;17241:14;:31::i;:::-;17223:49;;17331:16;17316:53;;;17349:10;17361:7;17316:53;;;;;;;;;;;;;;;;;;;;;;;;16610:767;;;:::o;34724:147::-;34782:7;34802:9;34818:1;34814;:5;34802:17;;34842:1;34837;:6;;34830:14;;;;;;34862:1;34855:8;;34724:147;;;;;:::o;34112:288::-;34170:7;34269:9;34285:1;34281;:5;;;;;;;;34269:17;;34391:1;34384:8;;34112:288;;;;;:::o;34526:123::-;34584:7;34616:1;34611;:6;;34604:14;;;;;;34640:1;34636;:5;34629:12;;34526:123;;;;:::o;31334:976::-;31429:7;31454:26;31519:23;31504:4;14202:17;31483:25;31454:54;;32242:12;;14277:18;31634:555;31670:457;32087:12;;32068:18;14277;32041:1;:26;:45;:58;31976:1;31962:12;;:15;31958:1;14277:18;31932:27;31931:47;31863:4;31851:9;:16;31844:4;14277:18;31819:29;31816:1;:33;:52;31752:1;31732:18;:21;31731:138;:248;:369;31670:4;:457::i;:::-;32152:18;31634:12;:555::i;:::-;31571:658;;;;;;;;31556:699;31519:736;;32287:15;32280:22;;31334:976;;;;;:::o;32577:722::-;32670:7;32697:15;32742:20;32797:22;32726:4;32716:7;:14;32697:34;;32781:4;32766:12;;:19;32742:44;;33254:4;32886:357;33149:4;33139:7;:14;14277:18;33058:4;33045:12;:17;;;;;;;;14277:18;33019:44;14202:17;32998:66;32967:147;32940:214;33227:1;33220:4;33211:7;33209:1;33200:7;:10;:18;33199:25;;;;;;;;14277:18;33175:50;33174:54;;;;;;;;32886:12;:357::i;:::-;:372;;;;;;;;32797:462;;33277:14;33270:21;;32577:722;;;;;;:::o;33411:198::-;33456:6;33475;33494:1;33489;33485;:5;33484:11;;;;;;;;33475:20;;33510:1;33506:5;;33522:80;33533:1;33529;:5;33522:80;;;33555:1;33551:5;;33589:1;33584;33580;33576;:5;;;;;;;;:9;33575:15;;;;;;;;33571:19;;33522:80;;;33411:198;;;;:::o;10719:22893::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://64146392362b508f0859ed1a323fe7aeae750db680b1d878b2de25c66cddbc93
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,905.4 | 0.2077 | $603.5 |
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.