More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,048 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 8484650 | 1894 days ago | IN | 0 ETH | 0.000063 | ||||
Withdraw | 6920763 | 2152 days ago | IN | 0 ETH | 0.00013077 | ||||
Sell | 6920755 | 2152 days ago | IN | 0 ETH | 0.00016898 | ||||
Reinvest | 6687417 | 2190 days ago | IN | 0 ETH | 0.00024823 | ||||
Reinvest | 6687409 | 2190 days ago | IN | 0 ETH | 0.00024823 | ||||
Sell | 6646539 | 2197 days ago | IN | 0 ETH | 0.00100355 | ||||
Withdraw | 6629993 | 2200 days ago | IN | 0 ETH | 0.00039231 | ||||
Sell | 6629987 | 2200 days ago | IN | 0 ETH | 0.00050751 | ||||
Withdraw | 6617508 | 2202 days ago | IN | 0 ETH | 0.00015692 | ||||
Sell | 6617475 | 2202 days ago | IN | 0 ETH | 0.00033413 | ||||
Exit | 6617094 | 2202 days ago | IN | 0 ETH | 0.00025223 | ||||
Reinvest | 6578754 | 2208 days ago | IN | 0 ETH | 0.00066292 | ||||
Withdraw | 6569311 | 2210 days ago | IN | 0 ETH | 0.00021795 | ||||
Sell | 6569303 | 2210 days ago | IN | 0 ETH | 0.00028163 | ||||
Withdraw | 6551951 | 2213 days ago | IN | 0 ETH | 0.00021795 | ||||
Withdraw | 6546365 | 2214 days ago | IN | 0 ETH | 0.00034872 | ||||
Withdraw | 6516242 | 2219 days ago | IN | 0 ETH | 0.00013077 | ||||
Sell | 6516235 | 2219 days ago | IN | 0 ETH | 0.00022556 | ||||
Withdraw | 6512117 | 2219 days ago | IN | 0 ETH | 0.00017436 | ||||
Sell | 6512115 | 2219 days ago | IN | 0 ETH | 0.00022275 | ||||
Withdraw | 6510408 | 2219 days ago | IN | 0 ETH | 0.00082822 | ||||
Withdraw | 6509453 | 2220 days ago | IN | 0 ETH | 0.00013077 | ||||
Sell | 6509446 | 2220 days ago | IN | 0 ETH | 0.00016898 | ||||
Withdraw | 6509150 | 2220 days ago | IN | 0 ETH | 0.00007846 | ||||
Reinvest | 6504030 | 2220 days ago | IN | 0 ETH | 0.00066292 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6920763 | 2152 days ago | 0.00399282 ETH | ||||
6629993 | 2200 days ago | 0.241607 ETH | ||||
6617508 | 2202 days ago | 0.06613174 ETH | ||||
6617094 | 2202 days ago | 0.0000233 ETH | ||||
6576186 | 2209 days ago | 0.00034286 ETH | ||||
6569311 | 2210 days ago | 0.08640446 ETH | ||||
6556915 | 2212 days ago | 0.00996818 ETH | ||||
6551951 | 2213 days ago | 0.06175409 ETH | ||||
6546365 | 2214 days ago | 0.00700536 ETH | ||||
6516242 | 2219 days ago | 0.00773698 ETH | ||||
6512117 | 2219 days ago | 0.00894522 ETH | ||||
6510408 | 2219 days ago | 0.05058556 ETH | ||||
6509453 | 2220 days ago | 0.02704497 ETH | ||||
6509150 | 2220 days ago | 0.09276342 ETH | ||||
6503574 | 2221 days ago | 0.04753174 ETH | ||||
6502962 | 2221 days ago | 0.15400922 ETH | ||||
6502222 | 2221 days ago | 0.00976328 ETH | ||||
6502218 | 2221 days ago | 0.07282815 ETH | ||||
6502184 | 2221 days ago | 0.22875057 ETH | ||||
6501850 | 2221 days ago | 0.89360107 ETH | ||||
6498590 | 2221 days ago | 0.01077667 ETH | ||||
6498078 | 2221 days ago | 0.05716203 ETH | ||||
6491161 | 2223 days ago | 0.00303054 ETH | ||||
6490625 | 2223 days ago | 0.08997046 ETH | ||||
6488765 | 2223 days ago | 0.02110074 ETH |
Loading...
Loading
Contract Name:
BlueChipGame
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-09-24 */ pragma solidity ^0.4.24; /* * Wall Street Market presents...... .______ __ __ __ _______ ______ __ __ __ .______ _______ ___ .___ ___. _______ | _ \ | | | | | | | ____| / || | | | | | | _ \ / _____| / \ | \/ | | ____| | |_) | | | | | | | | |__ | ,----'| |__| | | | | |_) | | | __ / ^ \ | \ / | | |__ | _ < | | | | | | | __| | | | __ | | | | ___/ | | |_ | / /_\ \ | |\/| | | __| | |_) | | `----.| `--' | | |____ | `----.| | | | | | | | | |__| | / _____ \ | | | | | |____ |______/ |_______| \______/ |_______| \______||__| |__| |__| | _| \______| /__/ \__\ |__| |__| |_______| (BCHIP) website: https://wallstreetmarket.tk discord: https://discord.gg/8AFP9gS 25% Dividends Fees/Payouts 5% of Buy In Fee Will Go into Buying Tokens from the contract for "THE 82" group until 400,000 tokens have been distributed. 25% Fee will apply for these transactions. After this the 5% fee will be reserved for use in additional card and lending games using BCHIP tokens. Referral Program pays out 33% of Buy-in/Sell Fees to user of masternode link */ contract AcceptsExchange { BlueChipGame public tokenContract; function AcceptsExchange(address _tokenContract) public { tokenContract = BlueChipGame(_tokenContract); } modifier onlyTokenContract { require(msg.sender == address(tokenContract)); _; } /** * @dev Standard ERC677 function that will handle incoming token transfers. * * @param _from Token sender address. * @param _value Amount of tokens. * @param _data Transaction metadata. */ function tokenFallback(address _from, uint256 _value, bytes _data) external returns (bool); function tokenFallbackExpanded(address _from, uint256 _value, bytes _data, address _sender, address _referrer) external returns (bool); } contract BlueChipGame { /*================================= = MODIFIERS = =================================*/ // only people with tokens modifier onlyBagholders() { require(myTokens() > 0); _; } // only people with profits modifier onlyStronghands() { require(myDividends(true) > 0); _; } modifier notContract() { require (msg.sender == tx.origin); _; } // 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]); _; } modifier onlyActive(){ require(boolContractActive); _; } /*============================== = 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 = "BlueChipExchange"; string public symbol = "BCHIP"; uint8 constant public decimals = 18; uint256 constant internal tokenPriceInitial_ = 0.00000001 ether; uint256 constant internal tokenPriceIncremental_ = 0.000000001 ether; uint256 constant internal magnitude = 2**64; uint256 public totalEthFundRecieved; // total ETH Bond recieved from this contract uint256 public totalEthFundCollected; // total ETH Bond collected in this contract // proof of stake (defaults at 25 tokens) uint256 public stakingRequirement = 25e18; // ambassador program mapping(address => bool) internal ambassadors_; uint256 constant internal ambassadorMaxPurchase_ = 2.5 ether; uint256 constant internal ambassadorQuota_ = 2.5 ether; uint constant internal total82Tokens = 390148; /*================================ = 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_; mapping(uint => address) internal theGroupofEightyTwo; mapping(uint => uint) internal theGroupofEightyTwoAmount; uint256 internal tokenSupply_ = 0; uint256 internal profitPerShare_; uint8 public dividendFee_ = 20; // 20% dividend fee on each buy and sell uint8 public fundFee_ = 0; // 5% bond fund fee on each buy and sell uint8 public altFundFee_ = 5; // Fund fee rate on each buy and sell for future game bool boolPay82 = false; bool bool82Mode = true; bool boolContractActive = true; uint bondFund = 0; // administrator list (see above on what they can do) 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; // Special Wall Street Market Platform control from scam game contracts on Wall Street Market platform mapping(address => bool) public canAcceptTokens_; // contracts, which can accept Wall Street tokens mapping(address => address) public stickyRef; address public bondFundAddress = 0x1822435de9b923a7a8c4fbd2f6d0aa8f743d3010; //Bond Fund address public altFundAddress = 0x1822435de9b923a7a8c4fbd2f6d0aa8f743d3010; //Alternate Fund for Future Game /*======================================= = PUBLIC FUNCTIONS = =======================================*/ /* * -- APPLICATION ENTRY POINTS -- */ function BlueChipGame() public { // add administrators here administrators[msg.sender] = true; //* Populate the 82 Mappings theGroupofEightyTwo[1] = 0x41fe3738b503cbafd01c1fd8dd66b7fe6ec11b01; theGroupofEightyTwo[2] = 0x96762288ebb2560a19f8eadaaa2012504f64278b; theGroupofEightyTwo[3] = 0xc29a6dd21801e58566df9f003b7011e30724543e; theGroupofEightyTwo[4] = 0xc63ea85cc823c440319013d4b30e19b66466642d; theGroupofEightyTwo[5] = 0xc6f827796a2e1937fd7f97c4e0a4906c476794f6; theGroupofEightyTwo[6] = 0xe74b1ea522b9d558c8e8719c3b1c4a9050b531ca; theGroupofEightyTwo[7] = 0x6b90d498062140c607d03fd642377eeaa325703e; theGroupofEightyTwo[8] = 0x5f1088110edcba27fc206cdcc326b413b5867361; theGroupofEightyTwo[9] = 0xc92fd0e554b12eb10f584819eec2394a9a6f3d1d; theGroupofEightyTwo[10] = 0xb62a0ac2338c227748e3ce16d137c6282c9870cf; theGroupofEightyTwo[11] = 0x3f6c42409da6faf117095131168949ab81d5947d; theGroupofEightyTwo[12] = 0xd54c47b3165508fb5418dbdec59a0d2448eeb3d7; theGroupofEightyTwo[13] = 0x285d366834afaa8628226e65913e0dd1aa26b1f8; theGroupofEightyTwo[14] = 0x285d366834afaa8628226e65913e0dd1aa26b1f8; theGroupofEightyTwo[15] = 0x5f5996f9e1960655d6fc00b945fef90672370d9f; theGroupofEightyTwo[16] = 0x3825c8ba07166f34ce9a2cd1e08a68b105c82cb9; theGroupofEightyTwo[17] = 0x7f3e05b4f258e1c15a0ef49894cffa1d89ceb9d3; theGroupofEightyTwo[18] = 0x3191acf877495e5f4e619ec722f6f38839182660; theGroupofEightyTwo[19] = 0x14f981ec7b0f59df6e1c56502e272298f221d763; theGroupofEightyTwo[20] = 0xae817ec70d8b621bb58a047e63c31445f79e20dc; theGroupofEightyTwo[21] = 0xc43af3becac9c810384b69cf061f2d7ec73105c4; theGroupofEightyTwo[22] = 0x0743469569ed5cc44a51216a1bf5ad7e7f90f40e; theGroupofEightyTwo[23] = 0xff6a4d0ed374ba955048664d6ef5448c6cd1d56a; theGroupofEightyTwo[24] = 0x62358a483311b3de29ae987b990e19de6259fa9c; theGroupofEightyTwo[25] = 0xa0fea1bcfa32713afdb73b9908f6cb055022e95f; theGroupofEightyTwo[26] = 0xb2af816608e1a4d0fb12b81028f32bac76256eba; theGroupofEightyTwo[27] = 0x977193d601b364f38ab1a832dbaef69ca7833992; theGroupofEightyTwo[28] = 0xed3547f0ed028361685b39cd139aa841df6629ab; theGroupofEightyTwo[29] = 0xe40ff298079493cba637d92089e3d1db403974cb; theGroupofEightyTwo[30] = 0xae3dc7fa07f9dd030fa56c027e90998ed9fe9d61; theGroupofEightyTwo[31] = 0x2dd35e7a6f5fcc28d146c04be641f969f6d1e403; theGroupofEightyTwo[32] = 0x2afe21ec5114339922d38546a3be7a0b871d3a0d; theGroupofEightyTwo[33] = 0x6696fee394bb224d0154ea6b58737dca827e1960; theGroupofEightyTwo[34] = 0xccdf159b1340a35c3567b669c836a88070051314; theGroupofEightyTwo[35] = 0x1c3416a34c86f9ddcd05c7828bf5693308d19e0b; theGroupofEightyTwo[36] = 0x846dedb19b105edafac2c9410fa2b5e73b596a14; theGroupofEightyTwo[37] = 0x3e9294f9b01bc0bcb91413112c75c3225c65d0b3; theGroupofEightyTwo[38] = 0x3a5ce61c74343dde474bad4210cccf1dac7b1934; theGroupofEightyTwo[39] = 0x38e123f89a7576b2942010ad1f468cc0ea8f9f4b; theGroupofEightyTwo[40] = 0xdcd8bad894035b5c554ad450ca84ae6be0b73122; theGroupofEightyTwo[41] = 0xcfab320d4379a84fe3736eccf56b09916e35097b; theGroupofEightyTwo[42] = 0x12f53c1d7caea0b41010a0e53d89c801ed579b5a; theGroupofEightyTwo[43] = 0x5145a296e1bb9d4cf468d6d97d7b6d15700f39ef; theGroupofEightyTwo[44] = 0xac707a1b4396a309f4ad01e3da4be607bbf14089; theGroupofEightyTwo[45] = 0x38602d1446fe063444b04c3ca5ecde0cba104240; theGroupofEightyTwo[46] = 0xc951d3463ebba4e9ec8ddfe1f42bc5895c46ec8f; theGroupofEightyTwo[47] = 0x69e566a65d00ad5987359db9b3ced7e1cfe9ac69; theGroupofEightyTwo[48] = 0x533b14f6d04ed3c63a68d5e80b7b1f6204fb4213; theGroupofEightyTwo[49] = 0x5fa0b03bee5b4e6643a1762df718c0a4a7c1842f; theGroupofEightyTwo[50] = 0xb74d5f0a81ce99ac1857133e489bc2b4954935ff; theGroupofEightyTwo[51] = 0xc371117e0adfafe2a3b7b6ba71b7c0352ca7789d; theGroupofEightyTwo[52] = 0xcade49e583bc226f19894458f8e2051289f1ac85; theGroupofEightyTwo[53] = 0xe3fc95aba6655619db88b523ab487d5273db484f; theGroupofEightyTwo[54] = 0x22e4d1433377a2a18452e74fd4ba9eea01824f7d; theGroupofEightyTwo[55] = 0x32ae5eff81881a9a70fcacada5bb1925cabca508; theGroupofEightyTwo[56] = 0xb864d177c291368b52a63a95eeff36e3731303c1; theGroupofEightyTwo[57] = 0x46091f77b224576e224796de5c50e8120ad7d764; theGroupofEightyTwo[58] = 0xc6407dd687a179aa11781b8a1e416bd0515923c2; theGroupofEightyTwo[59] = 0x2502ce06dcb61ddf5136171768dfc08d41db0a75; theGroupofEightyTwo[60] = 0x6b80ca9c66cdcecc39893993df117082cc32bb16; theGroupofEightyTwo[61] = 0xa511ddba25ffd74f19a400fa581a15b5044855ce; theGroupofEightyTwo[62] = 0xce81d90ae52d34588a95db59b89948c8fec487ce; theGroupofEightyTwo[63] = 0x6d60dbf559bbf0969002f19979cad909c2644dad; theGroupofEightyTwo[64] = 0x45101255a2bcad3175e6fda4020a9b77e6353a9a; theGroupofEightyTwo[65] = 0xe9078d7539e5eac3b47801a6ecea8a9ec8f59375; theGroupofEightyTwo[66] = 0x41a21b264f9ebf6cf571d4543a5b3ab1c6bed98c; theGroupofEightyTwo[67] = 0x471e8d970c30e61403186b6f245364ae790d14c3; theGroupofEightyTwo[68] = 0x6eb7f74ff7f57f7ba45ca71712bccef0588d8f0d; theGroupofEightyTwo[69] = 0xe6d6bc079d76dc70fcec5de84721c7b0074d164b; theGroupofEightyTwo[70] = 0x3ec5972c2177a08fd5e5f606f19ab262d28ceffe; theGroupofEightyTwo[71] = 0x108b87a18877104e07bd870af70dfc2487447262; theGroupofEightyTwo[72] = 0x3129354440e4639d2b809ca03d4ccc6277ac8167; theGroupofEightyTwo[73] = 0x21572b6a855ee8b1392ed1003ecf3474fa83de3e; theGroupofEightyTwo[74] = 0x75ab98f33a7a60c4953cb907747b498e0ee8edf7; theGroupofEightyTwo[75] = 0x0fe6967f9a5bb235fc74a63e3f3fc5853c55c083; theGroupofEightyTwo[76] = 0x49545640b9f3266d13cce842b298d450c0f8d776; theGroupofEightyTwo[77] = 0x9327128ead2495f60d41d3933825ffd8080d4d42; theGroupofEightyTwo[78] = 0x82b4e53a7d6bf6c72cc57f8d70dae90a34f0870f; theGroupofEightyTwo[79] = 0xb74d5f0a81ce99ac1857133e489bc2b4954935ff; theGroupofEightyTwo[80] = 0x3749d556c167dd73d536a6faaf0bb4ace8f7dab9; theGroupofEightyTwo[81] = 0x3039f6857071692b540d9e1e759a0add93af3fed; theGroupofEightyTwo[82] = 0xb74d5f0a81ce99ac1857133e489bc2b4954935ff; theGroupofEightyTwo[83] = 0x13015632fa722C12E862fF38c8cF2354cbF26c47; //This one is for testing theGroupofEightyTwoAmount[1] = 100000; theGroupofEightyTwoAmount[2] = 30000; theGroupofEightyTwoAmount[3] = 24400; theGroupofEightyTwoAmount[4] = 21111; theGroupofEightyTwoAmount[5] = 14200; theGroupofEightyTwoAmount[6] = 13788; theGroupofEightyTwoAmount[7] = 12003; theGroupofEightyTwoAmount[8] = 11000; theGroupofEightyTwoAmount[9] = 11000; theGroupofEightyTwoAmount[10] = 8800; theGroupofEightyTwoAmount[11] = 7000; theGroupofEightyTwoAmount[12] = 7000; theGroupofEightyTwoAmount[13] = 6000; theGroupofEightyTwoAmount[14] = 5400; theGroupofEightyTwoAmount[15] = 5301; theGroupofEightyTwoAmount[16] = 5110; theGroupofEightyTwoAmount[17] = 5018; theGroupofEightyTwoAmount[18] = 5000; theGroupofEightyTwoAmount[19] = 5000; theGroupofEightyTwoAmount[20] = 5000; theGroupofEightyTwoAmount[21] = 5000; theGroupofEightyTwoAmount[22] = 4400; theGroupofEightyTwoAmount[23] = 4146; theGroupofEightyTwoAmount[24] = 4086; theGroupofEightyTwoAmount[25] = 4000; theGroupofEightyTwoAmount[26] = 4000; theGroupofEightyTwoAmount[27] = 3500; theGroupofEightyTwoAmount[28] = 3216; theGroupofEightyTwoAmount[29] = 3200; theGroupofEightyTwoAmount[30] = 3183; theGroupofEightyTwoAmount[31] = 3100; theGroupofEightyTwoAmount[32] = 3001; theGroupofEightyTwoAmount[33] = 2205; theGroupofEightyTwoAmount[34] = 2036; theGroupofEightyTwoAmount[35] = 2000; theGroupofEightyTwoAmount[36] = 2000; theGroupofEightyTwoAmount[37] = 1632; theGroupofEightyTwoAmount[38] = 1600; theGroupofEightyTwoAmount[39] = 1500; theGroupofEightyTwoAmount[40] = 1500; theGroupofEightyTwoAmount[41] = 1478; theGroupofEightyTwoAmount[42] = 1300; theGroupofEightyTwoAmount[43] = 1200; theGroupofEightyTwoAmount[44] = 1127; theGroupofEightyTwoAmount[45] = 1050; theGroupofEightyTwoAmount[46] = 1028; theGroupofEightyTwoAmount[47] = 1011; theGroupofEightyTwoAmount[48] = 1000; theGroupofEightyTwoAmount[49] = 1000; theGroupofEightyTwoAmount[50] = 1000; theGroupofEightyTwoAmount[51] = 1000; theGroupofEightyTwoAmount[52] = 1000; theGroupofEightyTwoAmount[53] = 1000; theGroupofEightyTwoAmount[54] = 983; theGroupofEightyTwoAmount[55] = 980; theGroupofEightyTwoAmount[56] = 960; theGroupofEightyTwoAmount[57] = 900; theGroupofEightyTwoAmount[58] = 900; theGroupofEightyTwoAmount[59] = 839; theGroupofEightyTwoAmount[60] = 800; theGroupofEightyTwoAmount[61] = 800; theGroupofEightyTwoAmount[62] = 800; theGroupofEightyTwoAmount[63] = 798; theGroupofEightyTwoAmount[64] = 750; theGroupofEightyTwoAmount[65] = 590; theGroupofEightyTwoAmount[66] = 500; theGroupofEightyTwoAmount[67] = 500; theGroupofEightyTwoAmount[68] = 500; theGroupofEightyTwoAmount[69] = 500; theGroupofEightyTwoAmount[70] = 415; theGroupofEightyTwoAmount[71] = 388; theGroupofEightyTwoAmount[72] = 380; theGroupofEightyTwoAmount[73] = 300; theGroupofEightyTwoAmount[74] = 300; theGroupofEightyTwoAmount[75] = 170; theGroupofEightyTwoAmount[76] = 164; theGroupofEightyTwoAmount[77] = 142; theGroupofEightyTwoAmount[78] = 70; theGroupofEightyTwoAmount[79] = 69; theGroupofEightyTwoAmount[80] = 16; theGroupofEightyTwoAmount[81] = 5; theGroupofEightyTwoAmount[82] = 1; theGroupofEightyTwoAmount[83] = 1; //This one is for testing } /** * Converts all incoming ethereum to tokens for the caller, and passes down the referral addy (if any) */ function buy(address _referredBy) public payable onlyActive() returns(uint256) { require(tx.gasprice <= 0.05 szabo); 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 onlyActive() { require(tx.gasprice <= 0.05 szabo); if (boolPay82) { //Add to the Eth Fund if boolPay82 set to true totalEthFundCollected = SafeMath.add(totalEthFundCollected, msg.value); } else{ purchaseTokens(msg.value, 0x0); } } function buyTokensfor82() public onlyAdministrator() { //Periodically Use the Bond Fund to buy tokens and distribute to the Group of 82 if(bool82Mode) { uint counter = 83; uint _ethToPay = SafeMath.sub(totalEthFundCollected, totalEthFundRecieved); totalEthFundRecieved = SafeMath.add(totalEthFundRecieved, _ethToPay); while (counter > 0) { uint _distAmountLocal = SafeMath.div(SafeMath.mul(_ethToPay, theGroupofEightyTwoAmount[counter]),total82Tokens); purchaseTokensfor82(_distAmountLocal, 0x0, counter); counter = counter - 1; } } } /** * Sends Bondf Fund ether to the bond contract * */ function payFund() payable public onlyAdministrator() { uint256 ethToPay = SafeMath.sub(totalEthFundCollected, totalEthFundRecieved); require(ethToPay > 1); uint256 _altEthToPay = SafeMath.div(SafeMath.mul(ethToPay,altFundFee_),100); uint256 _bondEthToPay = SafeMath.div(SafeMath.mul(ethToPay,fundFee_),100); totalEthFundRecieved = SafeMath.add(totalEthFundRecieved, ethToPay); if(_bondEthToPay > 0){ if(!bondFundAddress.call.value(_bondEthToPay).gas(400000)()) { totalEthFundRecieved = SafeMath.sub(totalEthFundRecieved, _bondEthToPay); } } if(_altEthToPay > 0){ if(!altFundAddress.call.value(_altEthToPay).gas(400000)()) { totalEthFundRecieved = SafeMath.sub(totalEthFundRecieved, _altEthToPay); } } } /** * 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(SafeMath.mul(_ethereum, dividendFee_), 100); uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundFee_ + altFundFee_), 100); uint256 _refPayout = _dividends / 3; _dividends = SafeMath.sub(_dividends, _refPayout); (_dividends,) = handleRef(stickyRef[msg.sender], _refPayout, _dividends, 0); // Take out dividends and then _fundPayout uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_ethereum, _dividends), _fundPayout); // Add ethereum to send to fund totalEthFundCollected = SafeMath.add(totalEthFundCollected, _fundPayout); // 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 THIS IS 0% TRANSFER FEE */ 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(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]); // withdraw all outstanding dividends first if(myDividends(true) > 0) withdraw(); // exchange tokens tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens); tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens); // update dividend trackers payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens); payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens); // fire event Transfer(_customerAddress, _toAddress, _amountOfTokens); // ERC20 return true; } /** * Transfer token to a specified address and forward the data to recipient * ERC-677 standard * https://github.com/ethereum/EIPs/issues/677 * @param _to Receiver address. * @param _value Amount of tokens that will be transferred. * @param _data Transaction metadata. */ function transferAndCall(address _to, uint256 _value, bytes _data) external returns (bool) { require(_to != address(0)); require(canAcceptTokens_[_to] == true); // security check that contract approved by Wall Street Exchange platform require(transfer(_to, _value)); // do a normal token transfer to the contract if (isContract(_to)) { AcceptsExchange receiver = AcceptsExchange(_to); require(receiver.tokenFallback(msg.sender, _value, _data)); } return true; } /** * Transfer token to a specified address and forward the data to recipient * ERC-677 standard * https://github.com/ethereum/EIPs/issues/677 * @param _to Receiver address. * @param _value Amount of tokens that will be transferred. * @param _data Transaction metadata. * We add ability to track the initial sender so we pass that to determine the bond holder */ function transferAndCallExpanded(address _to, uint256 _value, bytes _data, address _sender, address _referrer) external returns (bool) { require(_to != address(0)); require(canAcceptTokens_[_to] == true); // security check that contract approved by Wall Street Exchange platform require(transfer(_to, _value)); // do a normal token transfer to the contract if (isContract(_to)) { AcceptsExchange receiver = AcceptsExchange(_to); require(receiver.tokenFallbackExpanded(msg.sender, _value, _data, msg.sender, _referrer)); } return true; } /** * Additional check that the game address we are sending tokens to is a contract * assemble the given address bytecode. If bytecode exists then the _addr is a contract. */ function isContract(address _addr) private constant returns (bool is_contract) { // retrieve the size of the code on target address, this needs assembly uint length; assembly { length := extcodesize(_addr) } return length > 0; } /*---------- 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; //} function setBondFundAddress(address _newBondFundAddress) onlyAdministrator() public { bondFundAddress = _newBondFundAddress; } function setAltFundAddress(address _newAltFundAddress) onlyAdministrator() public { altFundAddress = _newAltFundAddress; } /** * Set fees/rates */ function setFeeRates(uint8 _newDivRate, uint8 _newFundFee, uint8 _newAltRate) onlyAdministrator() public { require(_newDivRate <= 25); require(_newAltRate + _newFundFee <= 5); dividendFee_ = _newDivRate; fundFee_ = _newFundFee; altFundFee_ = _newAltRate; } /** * 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; } /** * Add or remove game contract, which can accept Wall Street Market tokens */ function setCanAcceptTokens(address _address, bool _value) onlyAdministrator() public { canAcceptTokens_[_address] = _value; } /** * 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; } /** * Set if we will pay the 82 group with funds in */ function setBool82(bool _bool) onlyAdministrator() public { boolPay82 = _bool; } /** *Set if we will use 5% fund to purchase new tokens for 82 group */ function set82Mode(bool _bool) onlyAdministrator() public { bool82Mode = _bool; } /** *Set flag for contract to accept ether */ function setContractActive(bool _bool) onlyAdministrator() public { boolContractActive = _bool; } /*---------- HELPERS AND CALCULATORS ----------*/ /** * Method to view the current Ethereum stored in the contract * Example: totalEthereumBalance() */ function totalEthereumBalance() public view returns(uint) { return 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(SafeMath.mul(_ethereum, dividendFee_), 100); uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundFee_ + altFundFee_), 100); uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_ethereum, _dividends), _fundPayout); 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(SafeMath.mul(_ethereum, dividendFee_), 100); uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundFee_ + altFundFee_), 100); uint256 _taxedEthereum = SafeMath.add(SafeMath.add(_ethereum, _dividends), _fundPayout); 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(SafeMath.mul(_ethereumToSpend, dividendFee_), 100); uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereumToSpend, fundFee_ + altFundFee_), 100); uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_ethereumToSpend, _dividends), _fundPayout); 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(SafeMath.mul(_ethereum, dividendFee_), 100); uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundFee_ + altFundFee_), 100); uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_ethereum, _dividends), _fundPayout); return _taxedEthereum; } /** * Function for the frontend to show ether waiting to be send to fund in contract */ function etherToSendFund() public view returns(uint256) { return SafeMath.sub(totalEthFundCollected, totalEthFundRecieved); } /*========================================== = INTERNAL FUNCTIONS = ==========================================*/ // Make sure we will send back excess if user sends more then 5 ether before 10 ETH in contract function purchaseInternal(uint256 _incomingEthereum, address _referredBy) notContract()// no contracts allowed internal returns(uint256) { uint256 purchaseEthereum = _incomingEthereum; uint256 excess; if(purchaseEthereum > 2.5 ether) { // check if the transaction is over 2.5 ether if (SafeMath.sub(address(this).balance, purchaseEthereum) <= 10 ether) { // if so check the contract is less then 100 ether purchaseEthereum = 2.5 ether; excess = SafeMath.sub(_incomingEthereum, purchaseEthereum); } } purchaseTokens(purchaseEthereum, _referredBy); if (excess > 0) { msg.sender.transfer(excess); } } function handleRef(address _ref, uint _referralBonus, uint _currentDividends, uint _currentFee) internal returns (uint, uint){ uint _dividends = _currentDividends; uint _fee = _currentFee; address _referredBy = stickyRef[msg.sender]; if (_referredBy == address(0x0)){ _referredBy = _ref; } // is the user referred by a masternode? if( // is this a referred purchase? _referredBy != 0x0000000000000000000000000000000000000000 && // no cheating! _referredBy != msg.sender && // does the referrer have at least X whole tokens? // i.e is the referrer a godly chad masternode tokenBalanceLedger_[_referredBy] >= stakingRequirement ){ // wealth redistribution if (stickyRef[msg.sender] == address(0x0)){ stickyRef[msg.sender] = _referredBy; } referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus/2); address currentRef = stickyRef[_referredBy]; if (currentRef != address(0x0) && tokenBalanceLedger_[currentRef] >= stakingRequirement){ referralBalance_[currentRef] = SafeMath.add(referralBalance_[currentRef], (_referralBonus/10)*3); currentRef = stickyRef[currentRef]; if (currentRef != address(0x0) && tokenBalanceLedger_[currentRef] >= stakingRequirement){ referralBalance_[currentRef] = SafeMath.add(referralBalance_[currentRef], (_referralBonus/10)*2); } else{ _dividends = SafeMath.add(_dividends, _referralBonus - _referralBonus/2 - (_referralBonus/10)*3); _fee = _dividends * magnitude; } } else{ _dividends = SafeMath.add(_dividends, _referralBonus - _referralBonus/2); _fee = _dividends * magnitude; } } else { // no ref purchase // add the referral bonus back to the global dividends cake _dividends = SafeMath.add(_dividends, _referralBonus); _fee = _dividends * magnitude; } return (_dividends, _fee); } function purchaseTokens(uint256 _incomingEthereum, address _referredBy) internal returns(uint256) { // data setup uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, dividendFee_), 100); uint256 _referralBonus = SafeMath.div(_undividedDividends, 3); uint256 _fundPayout = SafeMath.div(SafeMath.mul(_incomingEthereum, fundFee_ + altFundFee_), 100); uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus); uint256 _fee; (_dividends, _fee) = handleRef(_referredBy, _referralBonus, _dividends, _fee); uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_incomingEthereum, _dividends), _fundPayout); totalEthFundCollected = SafeMath.add(totalEthFundCollected, _fundPayout); uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum); // 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_)); // 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_[msg.sender] = SafeMath.add(tokenBalanceLedger_[msg.sender], _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_[msg.sender] += _updatedPayouts; // fire event onTokenPurchase(msg.sender, _incomingEthereum, _amountOfTokens, _referredBy); return _amountOfTokens; } //*Seperate function to handle internal purchases for the 82 Group function purchaseTokensfor82(uint256 _incomingEthereum, address _referredBy, uint _playerIndex) internal returns(uint256) { // data setup uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, dividendFee_), 100); uint256 _referralBonus = SafeMath.div(_undividedDividends, 3); uint256 _fundPayout = SafeMath.div(SafeMath.mul(_incomingEthereum, fundFee_ + altFundFee_), 100); uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus); uint256 _fee; (_dividends, _fee) = handleRef(_referredBy, _referralBonus, _dividends, _fee); uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_incomingEthereum, _dividends), _fundPayout); totalEthFundCollected = SafeMath.add(totalEthFundCollected, _fundPayout); uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum); // 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_)); // 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_[theGroupofEightyTwo[_playerIndex]] = SafeMath.add(tokenBalanceLedger_[theGroupofEightyTwo[_playerIndex]], _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_[theGroupofEightyTwo[_playerIndex]] += _updatedPayouts; // fire event onTokenPurchase(theGroupofEightyTwo[_playerIndex], _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":false,"inputs":[{"name":"_newAltFundAddress","type":"address"}],"name":"setAltFundAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"canAcceptTokens_","outputs":[{"name":"","type":"bool"}],"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":"altFundAddress","outputs":[{"name":"","type":"address"}],"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":false,"inputs":[{"name":"_address","type":"address"},{"name":"_value","type":"bool"}],"name":"setCanAcceptTokens","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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"name":"","type":"bool"}],"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":"","type":"address"}],"name":"stickyRef","outputs":[{"name":"","type":"address"}],"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":"fundFee_","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherToSendFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bool","type":"bool"}],"name":"set82Mode","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"},{"name":"_sender","type":"address"},{"name":"_referrer","type":"address"}],"name":"transferAndCallExpanded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalEthFundCollected","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[],"name":"payFund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_newDivRate","type":"uint8"},{"name":"_newFundFee","type":"uint8"},{"name":"_newAltRate","type":"uint8"}],"name":"setFeeRates","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":"_bool","type":"bool"}],"name":"setContractActive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyTokensfor82","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dividendFee_","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthFundRecieved","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bondFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newBondFundAddress","type":"address"}],"name":"setBondFundAddress","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":true,"inputs":[],"name":"altFundFee_","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bool","type":"bool"}],"name":"setBool82","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
60c0604052601060808190527f426c75654368697045786368616e67650000000000000000000000000000000060a0908152620000409160009190620020e3565b506040805180820190915260058082527f424348495000000000000000000000000000000000000000000000000000000060209092019182526200008791600191620020e3565b5068015af1d78b58c400006004556000600c819055600e805465010000000000640100000000601460ff19938416811762ffff001916620500001764ffff00000019169190911765ff0000000000191691909117909255600f92909255601180549092166001179091558054731822435de9b923a7a8c4fbd2f6d0aa8f743d3010600160a060020a031991821681179092556015805490911690911790553480156200013257600080fd5b503360009081526010602081815260408320805460ff191660019081179091557fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc78054600160a060020a03199081167341fe3738b503cbafd01c1fd8dd66b7fe6ec11b01179091557fbff4442b8ed600beeb8e26b1279a0f0d14c6edfaec26d968ee13c86f7d4c2ba8805482167396762288ebb2560a19f8eadaaa2012504f64278b1790557fa856840544dc26124927add067d799967eac11be13e14d82cc281ea46fa397598054821673c29a6dd21801e58566df9f003b7011e30724543e1790557fe1eb2b2161a492c07c5a334e48012567cba93ec021043f53c1955516a3c5a8418054821673c63ea85cc823c440319013d4b30e19b66466642d1790557ff35035bc2b01d44bd35a1dcdc552315cffb73da35cfd60570b7b777f98036f9f8054821673c6f827796a2e1937fd7f97c4e0a4906c476794f61790557f10d9dd018e4cae503383c9f804c1c1603ada5856ee7894375d9b97cd8c8b27db8054821673e74b1ea522b9d558c8e8719c3b1c4a9050b531ca1790557f22e39f61d1e4986b4f116cea9067f62cc77d74dff1780ae9c8b5166d1dd2882980548216736b90d498062140c607d03fd642377eeaa325703e1790557f2c1fd36ba11b13b555f58753742999069764391f450ca8727fe8a3eeffe6777580548216735f1088110edcba27fc206cdcc326b413b58673611790557f825eb4cda6b8b44578c55770496c59e6dc3cf2235f690bcdaf51a61898ceb2848054821673c92fd0e554b12eb10f584819eec2394a9a6f3d1d1790557f3e57c57b03145299956be61386751c5b285d460d484d5c2403a6be086d9d6baa8054821673b62a0ac2338c227748e3ce16d137c6282c9870cf1790557fb3569174ca605aeef264a9f01151dace4275a70316034aaf090d8468560f043b80548216733f6c42409da6faf117095131168949ab81d5947d1790557f80283cfdc74729ecb224822f7a02837fb1d52df7cc3435ae86bb6e025f6e06fa8054821673d54c47b3165508fb5418dbdec59a0d2448eeb3d71790557fc5c2b17ace4fcac005542a0a50d8932fc28b9d50b7e4925e5b7ce40eede0c4478054821673285d366834afaa8628226e65913e0dd1aa26b1f89081179091557f95e5396155afd2ec086edc0518f3069d6ba131fb95388521b3342aebbda916f08054831690911790557fcc8dc71342d3ea7c205feea2d040f8f577a07edda8d6b43a4daf11d5e7fd280a80548216735f5996f9e1960655d6fc00b945fef90672370d9f1790557f1063e8e27a46602f2cf5efe54a6f37c939566cc93507d4c402b1ab61967baeed80548216733825c8ba07166f34ce9a2cd1e08a68b105c82cb91790557fd1bfa665ff0a0ee81f20833500dfc80ed4b576a9d481e6c7f2cd8243b94238e880548216737f3e05b4f258e1c15a0ef49894cffa1d89ceb9d31790557f96c94070a261449c888cfb31ddd6716e50d52e263f7a74a5eeb34ee8b424101680548216733191acf877495e5f4e619ec722f6f388391826601790557f2e60ceb69e96fe6481ce9457171ef3f030bf0150171842d8842b77cad9c3b355805482167314f981ec7b0f59df6e1c56502e272298f221d7631790557ff78db0549aead6621ec87aae05d7bab2ff4f1610fb2a5da9b0d8e5ca932cbe208054821673ae817ec70d8b621bb58a047e63c31445f79e20dc1790557f7206804eee71b1705b2ebdc98e703bf07b0f4c0f02e3e11e04bfaa74de5375868054821673c43af3becac9c810384b69cf061f2d7ec73105c41790557f1722be5def2cea03a513d20b9ef471eb355d33f3c504747c388749c98f2d422280548216730743469569ed5cc44a51216a1bf5ad7e7f90f40e1790557feea57b1f1522820919f93d0e22f8b5016667e54dfef4536f36a0f466802896ba8054821673ff6a4d0ed374ba955048664d6ef5448c6cd1d56a1790557fdbb9abaa854f4db3eeaa646072c2d97ef4391daac19febcaaf62e35afc2c519b805482167362358a483311b3de29ae987b990e19de6259fa9c1790557f851f73f7125b7d7c14dc287f4bc29ddd916b6a89c6e09d2d4eabc50246e918128054821673a0fea1bcfa32713afdb73b9908f6cb055022e95f1790557f7f1fc346acb2036e5b5f0fbe8156aceadc762d61540488c54e7331f45ffd20c18054821673b2af816608e1a4d0fb12b81028f32bac76256eba1790557f3087163455d40c2a16947527f1a86948a5e7ff7de9ba68924df713830e5e615a8054821673977193d601b364f38ab1a832dbaef69ca78339921790557f964ea767231031507a3f70c59b06c72a2054875e2bc2938da2a55d8f6cb774eb8054821673ed3547f0ed028361685b39cd139aa841df6629ab1790557f39c12fc4f65c08d2961e20ab9bc18df4acbbdf98829d6cd7060fccb5e8535c7b8054821673e40ff298079493cba637d92089e3d1db403974cb1790557f579cf2be734d9b04ae69aa2ac47f7d57a73216e05f35a9c951916f461f31449d8054821673ae3dc7fa07f9dd030fa56c027e90998ed9fe9d611790557f9fa3ace5691e3b518f73bdcdd856471fb5839152e4d4383a70855965313a8d7e80548216732dd35e7a6f5fcc28d146c04be641f969f6d1e4031790557ffcc670724b0ae51983cbcd5c39830fdf68269a01ccb79e2798b86e7d9b68590680548216732afe21ec5114339922d38546a3be7a0b871d3a0d1790557fe3b2c1b596cd1a2a6349a15d2d1ab63f6b2cf08deaec81658cafd3b2a14040cb80548216736696fee394bb224d0154ea6b58737dca827e19601790557fa17bf40e81c47228a81202ddd9e3fd8f8c7a116130363b3dcc8a73fc1b7089008054821673ccdf159b1340a35c3567b669c836a880700513141790557f47845a7b6c79f491f651455c594ef10509bfe23c275dec7acf5198f7406fa77880548216731c3416a34c86f9ddcd05c7828bf5693308d19e0b1790557fa63cf338c2a7068c31396e74339c4eae75536e44463641023b5e7f14e0e5c8a48054821673846dedb19b105edafac2c9410fa2b5e73b596a141790557f3f3714773d60e4d6f1eec9d5d17c2275d573bbfa8030a80905858a104027c52080548216733e9294f9b01bc0bcb91413112c75c3225c65d0b31790557f021a8d87d128494b881845d9562c47e841efdae534e579374e147feb41e24fdd80548216733a5ce61c74343dde474bad4210cccf1dac7b19341790557fcb5acc7692adf0f459f4c747b10745e8691828884412b18207ee39ebd3637fd3805482167338e123f89a7576b2942010ad1f468cc0ea8f9f4b1790557f91f95df47904a90ac8bb634968d07613b2bbf711f934c1d20403c613c66b80b78054821673dcd8bad894035b5c554ad450ca84ae6be0b731221790557f3ee3ee1318427566caac79615d067197d3a14aaa4fec1d445dfa761cfeb178b48054821673cfab320d4379a84fe3736eccf56b09916e35097b1790557f723bb389013a8e287d60b741d37621880ed52f1363fb356206da160723f34936805482167312f53c1d7caea0b41010a0e53d89c801ed579b5a1790557f7c88ef8d7aca0318251f31c899c30b491c6eaeb9e0abc596bf1f7fc86a58b51280548216735145a296e1bb9d4cf468d6d97d7b6d15700f39ef1790557fc5a5152eb6f32112547d035859dfbd1920ac3f2633565d5b32f82ee8f48d8db38054821673ac707a1b4396a309f4ad01e3da4be607bbf140891790557f914dccb53380563059e9e556af6a690bb3e3d2e8763db4999263479efe191eda805482167338602d1446fe063444b04c3ca5ecde0cba1042401790557f6c6d62e8a8b03fc99bb6a42c33f29fbb7bc355fb24b55c501263cba498f989828054821673c951d3463ebba4e9ec8ddfe1f42bc5895c46ec8f1790557ff0d06e1c676d19791845afcc57865504b6e1664144ce3e6d246a51a35a30ab6c805482167369e566a65d00ad5987359db9b3ced7e1cfe9ac691790557f827b43d7b5df5f84fd4b18cce10d024e57edb92595e42f215cd9b8967d5d09628054821673533b14f6d04ed3c63a68d5e80b7b1f6204fb42131790557f37f8fd616dbeae27e64020341887a523c145a1a4bb5f33edf950c4efb7379b8a80548216735fa0b03bee5b4e6643a1762df718c0a4a7c1842f1790557f3f84cf6cefe8166d7172cc41f23bd15f2ff6c4676631dd9620c8946b70ea8aed8054821673b74d5f0a81ce99ac1857133e489bc2b4954935ff9081179091557f73a117ba966c4ead530419dfd458ce63ae8e8e62f31e7b400021d3a05fa5b7328054831673c371117e0adfafe2a3b7b6ba71b7c0352ca7789d1790557ffb30163b28865485300799dca1d6b9d977accbd874c63b0ce1bd7fe215a4c8488054831673cade49e583bc226f19894458f8e2051289f1ac851790557f4b5222d403a972015c1820d959615c913698372f8d411626c0024a5daa5b560f8054831673e3fc95aba6655619db88b523ab487d5273db484f1790557f55dee7f6292858369e5d0a94c234a9178230c539086694272573f6476e6f7a44805483167322e4d1433377a2a18452e74fd4ba9eea01824f7d1790557fc2a55a2712cad0cb89be7087d2061240d48d4872b84544f6e2827fbe9340562a805483167332ae5eff81881a9a70fcacada5bb1925cabca5081790557f0d66487a4fd51dd587b2804aa978e27509d1f975a58951d636cb4c8aad7c71e18054831673b864d177c291368b52a63a95eeff36e3731303c11790557f9a6fcacd6a52d97f4e59c88a4aaf9414ac81acbbf335833d33f867d1f399cc1b805483167346091f77b224576e224796de5c50e8120ad7d7641790557fa5d50f82a15a819238a33e2a19ad83e1db0d3b8b39935b937d9c5f45cdaa42238054831673c6407dd687a179aa11781b8a1e416bd0515923c21790557f1be71956f5d37e7a5b23d3a6bd9456048e6c8b0f66836c65be223c01c8e0ae2d80548316732502ce06dcb61ddf5136171768dfc08d41db0a751790557fe491db451dcdea8a737c3aa1496f3882606839a69ff5f3ac5af330dfbfadf00180548316736b80ca9c66cdcecc39893993df117082cc32bb161790557f0b08f08bef37a4a22e8f6284561101ae9e8aa26b526bb938f6da1d1967f3a7f88054831673a511ddba25ffd74f19a400fa581a15b5044855ce1790557f93d9585084ec7a152652f9374d7b9225c88f97461edf06f016401a9ddba309078054831673ce81d90ae52d34588a95db59b89948c8fec487ce1790557f8f0c55a22a2f7a0f887cd6791d1d842713d18c3c0617da4781871bdc09ca794280548316736d60dbf559bbf0969002f19979cad909c2644dad1790557f15a733d1e5424fe3f6af43f965e6ac00b5cabcd922b9d5c0fb7d9783c179af1a805483167345101255a2bcad3175e6fda4020a9b77e6353a9a1790557ffe4cfc382a9a1fb4c9f0317ab9115718c2304b7fe722b422d9fecf18baf781608054831673e9078d7539e5eac3b47801a6ecea8a9ec8f593751790557f5f5c218cd44d1f5dde1d030049b5d13d89faf936bca51e530a8c27f8f9c27795805483167341a21b264f9ebf6cf571d4543a5b3ab1c6bed98c1790557fc11cb6b2f22a6a1114814eb1e21c8b1d273dbb7c158e935e31332830234222f28054831673471e8d970c30e61403186b6f245364ae790d14c31790557fa3bfcfbe0141e7e3104bed9b23280961e819a64a4ddd964391b2dd8d3d072d6580548316736eb7f74ff7f57f7ba45ca71712bccef0588d8f0d1790557fa02682a245de5ca2b1b17a36fcdad81ff7c450d9a518a9fc3a60a8abc462a61a8054831673e6d6bc079d76dc70fcec5de84721c7b0074d164b1790557fa32d9ffa43d609e847d86fdc72a3d6eb513204471aa604fbb14e3b559dbe1b9780548316733ec5972c2177a08fd5e5f606f19ab262d28ceffe1790557f5e4f289a6a3c71c56ecab9b0db196ec75a1fb4bc0b380cd251e76423ebe8ded48054831673108b87a18877104e07bd870af70dfc24874472621790557f80e67e182f65082f4213632bdeee66b61c1da84666baa58a6b8c38eb8caddfbe80548316733129354440e4639d2b809ca03d4ccc6277ac81671790557fdfd2c65236cbfd9d51ff70b81a00053b7f071fc564ff20a685c18868f226374c805483167321572b6a855ee8b1392ed1003ecf3474fa83de3e1790557f1a23bc2c6349d3012151cd9ad3f3457087b103b9130aa9f398aadf118097f856805483167375ab98f33a7a60c4953cb907747b498e0ee8edf71790557f89a27b9283427b3d83e23808e6e56c30a7070888d2899118408f9e393939b83b80548316730fe6967f9a5bb235fc74a63e3f3fc5853c55c0831790557fedd08b0c45f4f0fce49ceb3e6d1937545213fe88ff7ef36d036aafa8407eb7a8805483167349545640b9f3266d13cce842b298d450c0f8d7761790557f07d9cd12ce220142fecf38c2ddb3699d1b127400a00c5b8fc9ef43571ca5203f80548316739327128ead2495f60d41d3933825ffd8080d4d421790557f75d03f731c71b67466f734f2b671963024c4f9f8f95d214c91f2ee0e0cae33a7805483167382b4e53a7d6bf6c72cc57f8d70dae90a34f0870f1790557f8c6ae35cfb11571728d02ac371eb9a0ddf08f73d679e57b0d43b956b79da1ba680548316821790557f09bd0ba39b0ebfb6daf83527950165bdada83d8db194af3803d47b40c8781de980548316733749d556c167dd73d536a6faaf0bb4ace8f7dab91790557fab2e7c93b77d291ccc2bb5e5e387766aa4ff230cfccbafafca668e41e760016180548316733039f6857071692b540d9e1e759a0add93af3fed1790557fd08d78535e1b1ad9259940cf4a5f412310e10951b446c8c9ef99bde6ecb06e838054831690911790557f9c418a1a75cd0dc2ad86d1f48af63ce4ea83ab7c3f3ce2dfcf1d40a4f0e9078080549091167313015632fa722c12e862ff38c8cf2354cbf26c47179055600b909152620186a07f72c6bfb7988af3a1efa6568f02a999bc52252641c659d85961ca3d372b57d5cf556175307fa50eece07c7db1631545c0069bd8f5f54d5935e215d59097edf258a44ba9163455615f507f64c15cc42be7899b001f818cf4433057002112c418d1d3a67cd5cb453051d33e556152777f12d0c11577e2f0950f57c455c117796550b79f444811db8ba2f69c57b646c784556137787febae6141bae5521e99e0a8d610356b0f501fea54980b59c84841db43ba7204f4556135dc7f0387e9d1203691d8e3362a7e4c6723de358a4010d7f31ecbec3fbfc61d1c75fc55612ee37ff5559028dc9ba50d75343c779b2f75e13a84a14662932fc67a486f263ca31a9655612af87f71f482bdabd1ea844d62c952b094e632959690d7448ca2aab34034ec985693588190557fe12d5ff10640a555479d85b7ab5f83b5dbd3cf6ac615eec77e24e0984b75a038556122607fc47c2f4ab42fe2617dd76ca1eb9781d09fced5e5671df71824e2f8a8f694e02455611b587fe8056e2ed8943b7f61a5f0dc88c79a5a6cec2bb36a7bd11ce130f2961c6320b98190557f765e72d9703c9804ad76c7d0af52f5313041ea56bb31a328e17fea205151b5ea556117707f0a2216aa9bbf8764f3bfb9fafcef7f625aba82383c1a9d14d721124ff3059581556115187f7ae97ffc8b2fe6ed730ad82f8c44cc0285c7a97ac189e2d88c56200fe9a501ab556114b57faa4a9a284509ef9fb8de5e34389d7f6e999498a23d3df7e6e3cd60371eeb0d08556113f67f8b7b9f9813a325ff1d1742084c33636aa028a7979ae4249304ff23e03619a4a65561139a7f4850c7fcd76ef9a9b6af49426db50eab97252f2b3eda6fb3fba71ff8796ec45c556113887ff67afc5d8a9483ebb5641ce5845b29143b497c64e8e700f016cf6767580712858190557fb9afdb88392d364081f976ddee080ff9152db8f126d75c504961a2cbe6e4d6e78190557f4cb01e6f5bc5cfee86272b5048cc519702c0808a5ebc579852135b705a34ba7f8190557f7924575c0da3d0d2bcf77796304685daff98da9e733421fc81c70776f90432c9556111307f688e96446eb5b8e552f4c65adcb49bd8e14bb753503f6c605931a0eff2a436da556110327f5a28760bd5472f20df8cab86ec77032842df105bc14770be6b67836d5d1de16e55610ff67f5323e26daf799e51ed81b370201213ea7fe32825ce8a22584c5bf1ed5dec35f455610fa07fff39e91ae1b55274ae2998ca21385a9f4986c6d5bbfe6e4c7cdfb50118b7e5ad8190557f770134136f88d3fd9558930fe5e602f734a41392a5a9a2aacb57e57310bbc22f55610dac7fc528ca87b4165c4484c38fa013d42addb8f89f8aab15ee872b80d652322a205c55610c907f9e22059c8fe9187490eb45e3d80774e3b235651b03a567500f784aa2fa36aa3c55610c807f89659803e4e09ca01fc1e15f407631f7f48053ee92216516abf06ccf89a91b7a55610c6f7fda8f19b54016c99175be24b64ec5cf41173ed42d9d8b214556410c3db6c72b3255610c1c7f7ab6e18f9a0ec0400d1e1443e4fd1563503b3ac88860de2152e3244778c63e6f55610bb97fb10abab70a2ef2fa946b30d974e5e317186cbaf46f2adc6545c47b45e73e387b5561089d7f148eb1980f0c925cbdb1f166a4451931eb6990d492a56139b8c3c513bebe8b3e556107f47fa45952ddd428c2ec604e2baffdc897459c2280ad06e7cafbaa8137d8f9da4915556107d07f84e40d35deabe04e516508e669f7a4dd187cca694dc6f143d0066381de33cc628190557f34e77de051017b2fbd9747e1b885d7d15810441e1bee16d645955fac740286ed556106607fa540feb1f99e155d959f697c8082237828904205cfa551567081ce32e511a443556106407ffe5e00d72c4d53724d91c01ff55c7ce9279b5015557c5169a4b9731059571477556105dc7f8c7b3adb441a049d9107122a72a5364a662a8a42e6a1edcace53608e144179958190557fb0c7037c2ad32479f0d99fc6573c97ffde4621dbcb10fa8ea5374655f003b0cf556105c67fcfee055bf31255d3d90995580c171b9d215b8787a68cdf41d88f000fb33e5fcf556105147fda204be036e53b730a88c834137c75955908459ff9d69b2812ea686472ffa19e556104b07f2ffca9521ce126c9798d5aa531b60a298c28bfde7df9e6b01700c8e757374c4f556104677f6c7fe5e8c1ba6fed479f70b40cb0209bb3fef02f030d14c1b1d2f2faf0bf81955561041a7f8c1229c40aae2c422254ea0b2ffab73ff2dce71bbe3de6101c7662c15be2d0f8556104047f3d1159b617185c8ac6bed09ee30db60e06f98bd61f32687ae067c92715b14d3c556103f37f651e072952c5bc16cd32d4c642fcdf7fabb94a7aba43fd0d9165e7c8e59aca8b556103e87f0a6ec730a9a845e79f351f3b7b834fb4263769c2e5ee75846c3ed9901d30b1528190557f5d5819cac575aa0fbd669ec5fc12d83aee72c7c94f783a0fd314918c2f54174f8190557f2cbdbb9bb379f607d00065c21c5b710ef3dc5ad9dc980061b07d7538b2d897818190557fe2df617bdf8821ebd182b6b5b50b5b29fa9ed6a08dbfb94010709e0c33d6fcc58190557f88a57a2121c67fb8fc10e8ff9a47f3b49e6256b875cdfbb7e153bd508e6d31f48190557f8eb9457cca9e040826aa001e222fbffb3cfb0cf4d65a56e57b424277a366015f556103d77f584d4286ff7bf083b9adc809a4ad60eb9936a2bdb7cad264c64be5c520ced738556103d47fd7b66c6d5b509e14543807d03195d4602c7b5b22e303143e7fcf96b0904aada4556103c07f63f8b8455c25dd574f6f70e6135fc3c46a28496b9350872b5ec064987ff1a931556103847f5de1048d59f5bb8b0df9b68576257c5895ad19ed5f9b368970ffca9c8c0ffb8b8190557fa028115b1a291b267b6b797fc7586357d52eb09f82a89bd1b6dd677d088a3a7c556103477f363f180ad33fb4e4eb978cf5aeff4adbf68c0d72fa70475265183ed474fa01ff556103207fff33fc9cf890dacb7fcc285727607334e69c128ccf968535a9804a7c692b340c8190557f1eff901a5694f69f8d38a7b989b6cdcce8673a63237de90e2a86ca487cc53aa68190557fc6628df502022d6c3fbda5c18606b84e1f5ae0b0ec9eaaa30b3b94cd748ddf175561031e7f57290fee83b9c2e4d5521c0f7d52b7cbd05ca3da138a473b60cff308de695ad7556102ee7f9cb9fe6e58cfdfe5bdc0a5b970a552e649fc9a425702b4c0c34ddd55e92df8865561024e7fc021de4c7f43b869597a26b3aa57c4c3c93e9d2692b56abd8b3b2d59a8ef431d556101f47fcf79dbf62a592d210f326e1439fec8197d8affabd86c81be79fd48f4dc4d633a8190557fd10614a609885b0c54f5a5b48d42a6f32448b6c5b8e12d31200805befb2de8018190557fb31dd17ee5e392f278b7386587515620a4154c36f90e7c3ae46f971c3e70707b8190557f27c4d14c30e909e6ff0ffaadfaccb763055b05b233559a3e890cb811540bc39d5561019f7f6b726ba8c7868a4ff1442aa180ff4f2a22a77e85137cb89d205a847907fc5106556101847f7411b6b2e2ed3277b4bd6e10a9699483854cfd1da54390adf40e500d856d0c6e5561017c7f9008572c8ffc7b8ecdf222463683b3e487e241ba69306647f74f13ea664c173b5561012c7f2510570d23286cab8592786233b46c5135b8b985bfa9730fde556eff0db95d8d8190557fce3a36409a091d1e153aa9c8715073a604d68e98e93c5048b89f062448caa3ef5560aa7f94e1dd6094f86a7893716b6e1aa6a61e4764f8c5f38eb72387b68ddd57afe45a5560a47ff38dc85351b5b17a3e887bdfa6096d63b038f02d36920a4c9c67282059e7269555608e7fce18702ad8e94cfd0370e871f15bb13ce5e96a31dd9ec81b0d92e8ba88c972c25560467f214c0ed8a1b074f0975dce07c77a0234fe7d368374d944ebe9a0f3fc12e328e25560457f0148daa98037ac737650160b820d22500250271faf8d7152f5910e480e7771ed557f7e77be07b46abf13dfe3857655768a0bd8a9ceeb192d95f7deec335bc9edef5c9190915560057f127f0ca491205770166317600fb65178f7d96c6005d7dae6a0581682c83cc1fe557fb0ac07c7224e261a2b43612d42df964bdac2934b97d997a4b781d0f8cae0eb0681905560539091527fb29d0956e1d876cd5125d631dd371429f1a211b95781de704455338136d08ebb5562002188565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200212657805160ff191683800117855562002156565b8280016001018555821562002156579182015b828111156200215657825182559160200191906001019062002139565b506200216492915062002168565b5090565b6200218591905b808211156200216457600081556001016200216f565b90565b6122df80620021986000396000f3006080604052600436106102395763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461029a57806306fdde03146102cd5780630c9c1c58146103575780630f34dc161461037857806310d0ffdd146103ad578063119f1bd5146103c557806318160ddd146103f6578063226093731461040b57806327defa1f14610423578063294205b414610438578063313ce5671461045e5780633ccfd60b146104895780634000aea01461049e5780634b750334146104cf5780634d6352e5146104e457806356d399e8146105055780635ec135921461051a57806366042e7a1461052f578063681dda9614610544578063688abbf71461055e5780636b2f46321461057857806370a082311461058d57806376be1585146105ae5780637f3f3398146105cf5780637ff276bd1461060d5780638328b610146106225780638620410b1461063a57806387c950581461064f5780638974372d146106755780638d664d6a1461067d578063949e8acd146106a457806395d89b41146106b9578063970388b5146106ce5780639d340b71146106e8578063a0452bfb146106fd578063a4d5568614610712578063a9059cbb14610727578063b84c82461461074b578063c47f0027146107a4578063c9adc9d3146107fd578063ddbe92d314610812578063e4849b3214610833578063e9fad8ee1461084b578063ebc5135a14610860578063ebdd031314610875578063f088d5471461088f578063fdb5a03e146108a3575b600e5465010000000000900460ff16151561025357600080fd5b640ba43b74003a111561026557600080fd5b600e546301000000900460ff161561028b57610283600354346108b8565b600355610298565b6102963460006108d2565b505b005b3480156102a657600080fd5b506102bb600160a060020a0360043516610ab7565b60408051918252519081900360200190f35b3480156102d957600080fd5b506102e2610af2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031c578181015183820152602001610304565b50505050905090810190601f1680156103495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036357600080fd5b50610298600160a060020a0360043516610b80565b34801561038457600080fd5b50610399600160a060020a0360043516610bce565b604080519115158252519081900360200190f35b3480156103b957600080fd5b506102bb600435610be3565b3480156103d157600080fd5b506103da610c5a565b60408051600160a060020a039092168252519081900360200190f35b34801561040257600080fd5b506102bb610c69565b34801561041757600080fd5b506102bb600435610c70565b34801561042f57600080fd5b50610399610cec565b34801561044457600080fd5b50610298600160a060020a03600435166024351515610cf5565b34801561046a57600080fd5b50610473610d3f565b6040805160ff9092168252519081900360200190f35b34801561049557600080fd5b50610298610d44565b3480156104aa57600080fd5b5061039960048035600160a060020a0316906024803591604435918201910135610e17565b3480156104db57600080fd5b506102bb610f51565b3480156104f057600080fd5b506103da600160a060020a0360043516610fe3565b34801561051157600080fd5b506102bb610ffe565b34801561052657600080fd5b50610473611004565b34801561053b57600080fd5b506102bb611012565b34801561055057600080fd5b506102986004351515611027565b34801561056a57600080fd5b506102bb6004351515611066565b34801561058457600080fd5b506102bb6110a9565b34801561059957600080fd5b506102bb600160a060020a03600435166110ae565b3480156105ba57600080fd5b50610399600160a060020a03600435166110c9565b3480156105db57600080fd5b50610399600160a060020a036004803582169160248035926044359182019291013590606435811690608435166110de565b34801561061957600080fd5b506102bb61122f565b34801561062e57600080fd5b50610298600435611235565b34801561064657600080fd5b506102bb611259565b34801561065b57600080fd5b50610298600160a060020a036004351660243515156112e4565b61029861132e565b34801561068957600080fd5b5061029860ff6004358116906024358116906044351661144b565b3480156106b057600080fd5b506102bb6114c6565b3480156106c557600080fd5b506102e26114d9565b3480156106da57600080fd5b506102986004351515611533565b3480156106f457600080fd5b50610298611574565b34801561070957600080fd5b5061047361161a565b34801561071e57600080fd5b506102bb611623565b34801561073357600080fd5b50610399600160a060020a0360043516602435611629565b34801561075757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102989436949293602493928401919081908401838280828437509497506117569650505050505050565b3480156107b057600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029894369492936024939284019190819084018382808284375094975061178c9650505050505050565b34801561080957600080fd5b506103da6117bd565b34801561081e57600080fd5b50610298600160a060020a03600435166117cc565b34801561083f57600080fd5b5061029860043561181a565b34801561085757600080fd5b50610298611a04565b34801561086c57600080fd5b50610473611a31565b34801561088157600080fd5b506102986004351515611a40565b6102bb600160a060020a0360043516611a7d565b3480156108af57600080fd5b50610298611ab6565b6000828201838110156108c757fe5b8091505b5092915050565b60008060008060008060008060006109066108ff8c600e60009054906101000a900460ff1660ff16611b6c565b6064611b97565b9750610913886003611b97565b600e54909750610940906108ff908d90610100810460ff9081166201000090920481169190910116611b6c565b955061094c8888611bae565b945061095a8a888787611bc0565b909550935061097261096c8c87611bae565b87611bae565b9250610980600354876108b8565b60035561098c83611e4c565b91506000821180156109a85750600c546109a683826108b8565b115b15156109b357600080fd5b6000600c541115610a17576109ca600c54836108b8565b600c8190556801000000000000000086028115156109e457fe5b600d8054929091049091019055600c54680100000000000000008602811515610a0957fe5b048202840384039350610a1d565b600c8290555b33600090815260066020526040902054610a3790836108b8565b33600081815260066020908152604080832094909455600d5460088252918490208054928702899003928301905583518f81529081018690528351919450600160a060020a038e16937f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d592918290030190a3509998505050505050505050565b600160a060020a0316600090815260086020908152604080832054600690925290912054600d54680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b785780601f10610b4d57610100808354040283529160200191610b78565b820191906000526020600020905b815481529060010190602001808311610b5b57829003601f168201915b505050505081565b3360008181526010602052604090205460ff161515610b9e57600080fd5b506015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60126020526000908152604090205460ff1681565b600e546000908190819081908190610c03906108ff90889060ff16611b6c565b600e54909450610c30906108ff908890610100810460ff9081166201000090920481169190910116611b6c565b9250610c45610c3f8786611bae565b84611bae565b9150610c5082611e4c565b9695505050505050565b601554600160a060020a031681565b600c545b90565b6000806000806000600c548611151515610c8957600080fd5b610c9286611ed8565b600e54909450610caa906108ff90869060ff16611b6c565b600e54909350610cd7906108ff908690610100810460ff9081166201000090920481169190910116611b6c565b9150610c50610ce68585611bae565b83611bae565b60115460ff1681565b3360008181526010602052604090205460ff161515610d1357600080fd5b50600160a060020a03919091166000908152601260205260409020805460ff1916911515919091179055565b601281565b6000806000610d536001611066565b11610d5d57600080fd5b339150610d6a6000611066565b600160a060020a038316600081815260086020908152604080832080546801000000000000000087020190556007909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610dd3573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b600080600160a060020a0386161515610e2f57600080fd5b600160a060020a03861660009081526012602052604090205460ff161515600114610e5957600080fd5b610e638686611629565b1515610e6e57600080fd5b610e7786611f42565b15610f4557506040517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052606060448401908152606484018690528893600160a060020a0385169363c0ee0b8a9390928a928a928a929091608401848480828437820191505095505050505050602060405180830381600087803b158015610f0e57600080fd5b505af1158015610f22573d6000803e3d6000fd5b505050506040513d6020811015610f3857600080fd5b50511515610f4557600080fd5b50600195945050505050565b6000806000806000600c5460001415610f7157640218711a009450610fdc565b610f82670de0b6b3a7640000611ed8565b600e54909450610f9a906108ff90869060ff16611b6c565b600e54909350610fc7906108ff908690610100810460ff9081166201000090920481169190910116611b6c565b9150610fd6610ce68585611bae565b90508094505b5050505090565b601360205260009081526040902054600160a060020a031681565b60045481565b600e54610100900460ff1681565b6000611022600354600254611bae565b905090565b3360008181526010602052604090205460ff16151561104557600080fd5b50600e80549115156401000000000264ff0000000019909216919091179055565b6000338261107c5761107781610ab7565b6110a0565b600160a060020a03811660009081526007602052604090205461109e82610ab7565b015b91505b50919050565b303190565b600160a060020a031660009081526006602052604090205490565b60106020526000908152604090205460ff1681565b600080600160a060020a03881615156110f657600080fd5b600160a060020a03881660009081526012602052604090205460ff16151560011461112057600080fd5b61112a8888611629565b151561113557600080fd5b61113e88611f42565b1561122157506040517fa322accf00000000000000000000000000000000000000000000000000000000815233600482018181526024830189905260648301829052600160a060020a03858116608485015260a06044850190815260a485018990528b949185169363a322accf9390928c928c928c9286928c929160c4018686808284378201915050975050505050505050602060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b505050506040513d602081101561121457600080fd5b5051151561122157600080fd5b506001979650505050505050565b60035481565b3360008181526010602052604090205460ff16151561125357600080fd5b50600455565b6000806000806000600c54600014156112795764028fa6ae009450610fdc565b61128a670de0b6b3a7640000611ed8565b600e549094506112a2906108ff90869060ff16611b6c565b600e549093506112cf906108ff908690610100810460ff9081166201000090920481169190910116611b6c565b9150610fd66112de85856108b8565b836108b8565b3360008181526010602052604090205460ff16151561130257600080fd5b50600160a060020a03919091166000908152601060205260409020805460ff1916911515919091179055565b336000818152601060205260408120549091829182919060ff16151561135357600080fd5b611361600354600254611bae565b93506001841161137057600080fd5b600e5461138b906108ff90869062010000900460ff16611b6c565b600e549093506113a8906108ff908690610100900460ff16611b6c565b91506113b6600254856108b8565b60025560008211156113ff57601454604051600160a060020a039091169062061a809084906000818181858888f1935050505015156113ff576113fb60025483611bae565b6002555b600083111561144557601554604051600160a060020a039091169062061a809085906000818181858888f1935050505015156114455761144160025484611bae565b6002555b50505050565b3360008181526010602052604090205460ff16151561146957600080fd5b601960ff8516111561147a57600080fd5b600560ff83850116111561148d57600080fd5b50600e805460ff191660ff9485161761ff001916610100938516939093029290921762ff00001916620100009190931602919091179055565b6000336114d2816110ae565b91505b5090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b785780601f10610b4d57610100808354040283529160200191610b78565b3360008181526010602052604090205460ff16151561155157600080fd5b50600e8054911515650100000000000265ff000000000019909216919091179055565b336000818152601060205260408120549091829182919060ff16151561159957600080fd5b600e54640100000000900460ff161561144557605393506115be600354600254611bae565b92506115cc600254846108b8565b6002555b6000841115611445576000848152600b6020526040902054611600906115f7908590611b6c565b6205f404611b97565b915061160e82600086611f4a565b506001840393506115d0565b600e5460ff1681565b60025481565b60008060006116366114c6565b1161164057600080fd5b503360008181526006602052604090205483111561165d57600080fd5b60006116696001611066565b111561167757611677610d44565b600160a060020a03811660009081526006602052604090205461169a9084611bae565b600160a060020a0380831660009081526006602052604080822093909355908616815220546116c990846108b8565b600160a060020a03858116600081815260066020908152604080832095909555600d8054948716808452600883528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360008181526010602052604090205460ff16151561177457600080fd5b8151611787906001906020850190612225565b505050565b3360008181526010602052604090205460ff1615156117aa57600080fd5b8151611787906000906020850190612225565b601454600160a060020a031681565b3360008181526010602052604090205460ff1615156117ea57600080fd5b506014805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008060008060008060006118306114c6565b1161183a57600080fd5b3360008181526006602052604090205490985089111561185957600080fd5b88965061186587611ed8565b600e5490965061187d906108ff90889060ff16611b6c565b600e549095506118aa906108ff908890610100810460ff9081166201000090920481169190910116611b6c565b93506003850492506118bc8584611bae565b336000908152601360205260408120549196506118e691600160a060020a03169085908890611bc0565b5094506118fc6118f68787611bae565b85611bae565b915061190a600354856108b8565b600355600c5461191a9088611bae565b600c55600160a060020a0388166000908152600660205260409020546119409088611bae565b600160a060020a038916600090815260066020908152604080832093909355600d5460089091529181208054928a0268010000000000000000860201928390039055600c5491925010156119b6576119b2600d54600c546801000000000000000088028115156119ac57fe5b046108b8565b600d555b60408051888152602081018490528151600160a060020a038b16927fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139928290030190a2505050505050505050565b3360008181526006602052604081205490811115611a2557611a258161181a565b611a2d610d44565b5050565b600e5462010000900460ff1681565b3360008181526010602052604090205460ff161515611a5e57600080fd5b50600e805491151563010000000263ff00000019909216919091179055565b600e5460009065010000000000900460ff161515611a9a57600080fd5b640ba43b74003a1115611aac57600080fd5b6110a334836108d2565b600080600080611ac66001611066565b11611ad057600080fd5b611ada6000611066565b33600081815260086020908152604080832080546801000000000000000087020190556007909152812080549082905590920194509250611b1c9084906108d2565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080831515611b7f57600091506108cb565b50828202828482811515611b8f57fe5b04146108c757fe5b6000808284811515611ba557fe5b04949350505050565b600082821115611bba57fe5b50900390565b33600090815260136020526040812054819084908490600160a060020a031683811515611beb578991505b600160a060020a03821615801590611c0c5750600160a060020a0382163314155b8015611c325750600454600160a060020a03831660009081526006602052604090205410155b15611e225733600090815260136020526040902054600160a060020a03161515611c8c57336000908152601360205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b600160a060020a038216600090815260076020526040902054611cb19060028b6119ac565b600160a060020a038084166000908152600760209081526040808320949094556013905291909120541690508015801590611d065750600454600160a060020a03821660009081526006602052604090205410155b15611dfd57600160a060020a038116600090815260076020526040902054611d3490600a8b046003026108b8565b600160a060020a03918216600090815260076020908152604080832093909355601390522054168015801590611d845750600454600160a060020a03821660009081526006602052604090205410155b15611dd057600160a060020a038116600090815260076020526040902054611db290600a8b046002026108b8565b600160a060020a038216600090815260076020526040902055611df8565b611de784600a8b0460030260028c048c03036108b8565b935068010000000000000000840292505b611e1d565b611e0c8460028b048b036108b8565b935068010000000000000000840292505b611e3d565b611e2c848a6108b8565b935068010000000000000000840292505b50919890975095505050505050565b600c546000906b204fce5e3e25026110000000908290633b9aca00611ec56118f67259aedfc10d7279c5eed140164540000000000088026002850a670de0b6b3a764000002016f0f0bdc21abb48db201e86d40000000008502017704140c78940f6a24fdffc78873d4490d2100000000000000016121f0565b811515611ece57fe5b0403949350505050565b600c54600090670de0b6b3a7640000838101918101908390611f2f640218711a00828504633b9aca0002018702600283670de0b6b3a763ffff1982890a8b90030104633b9aca0002811515611f2957fe5b04611bae565b811515611f3857fe5b0495945050505050565b6000903b1190565b6000806000806000806000806000611f776108ff8d600e60009054906101000a900460ff1660ff16611b6c565b9750611f84886003611b97565b600e54909750611fb1906108ff908e90610100810460ff9081166201000090920481169190910116611b6c565b9550611fbd8888611bae565b9450611fcb8b888787611bc0565b9095509350611fdd61096c8d87611bae565b9250611feb600354876108b8565b600355611ff783611e4c565b91506000821180156120135750600c5461201183826108b8565b115b151561201e57600080fd5b6000600c54111561208257612035600c54836108b8565b600c81905568010000000000000000860281151561204f57fe5b600d8054929091049091019055600c5468010000000000000000860281151561207457fe5b048202840384039350612088565b600c8290555b60008a8152600a6020908152604080832054600160a060020a0316835260069091529020546120b790836108b8565b60066000600a60008e815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020819055508382600d54020390508060086000600a60008e815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508a600160a060020a0316600a60008c815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58e85604051808381526020018281526020019250505060405180910390a3509a9950505050505050505050565b80600260018201045b818110156110a357809150600281828581151561221257fe5b040181151561221d57fe5b0490506121f9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226657805160ff1916838001178555612293565b82800160010185558215612293579182015b82811115612293578251825591602001919060010190612278565b506114d592610c6d9250905b808211156114d5576000815560010161229f5600a165627a7a723058202708edde0564696738c788562577212e625360df7bdd20b011792dfa99c9488f0029
Deployed Bytecode
0x6080604052600436106102395763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461029a57806306fdde03146102cd5780630c9c1c58146103575780630f34dc161461037857806310d0ffdd146103ad578063119f1bd5146103c557806318160ddd146103f6578063226093731461040b57806327defa1f14610423578063294205b414610438578063313ce5671461045e5780633ccfd60b146104895780634000aea01461049e5780634b750334146104cf5780634d6352e5146104e457806356d399e8146105055780635ec135921461051a57806366042e7a1461052f578063681dda9614610544578063688abbf71461055e5780636b2f46321461057857806370a082311461058d57806376be1585146105ae5780637f3f3398146105cf5780637ff276bd1461060d5780638328b610146106225780638620410b1461063a57806387c950581461064f5780638974372d146106755780638d664d6a1461067d578063949e8acd146106a457806395d89b41146106b9578063970388b5146106ce5780639d340b71146106e8578063a0452bfb146106fd578063a4d5568614610712578063a9059cbb14610727578063b84c82461461074b578063c47f0027146107a4578063c9adc9d3146107fd578063ddbe92d314610812578063e4849b3214610833578063e9fad8ee1461084b578063ebc5135a14610860578063ebdd031314610875578063f088d5471461088f578063fdb5a03e146108a3575b600e5465010000000000900460ff16151561025357600080fd5b640ba43b74003a111561026557600080fd5b600e546301000000900460ff161561028b57610283600354346108b8565b600355610298565b6102963460006108d2565b505b005b3480156102a657600080fd5b506102bb600160a060020a0360043516610ab7565b60408051918252519081900360200190f35b3480156102d957600080fd5b506102e2610af2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031c578181015183820152602001610304565b50505050905090810190601f1680156103495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036357600080fd5b50610298600160a060020a0360043516610b80565b34801561038457600080fd5b50610399600160a060020a0360043516610bce565b604080519115158252519081900360200190f35b3480156103b957600080fd5b506102bb600435610be3565b3480156103d157600080fd5b506103da610c5a565b60408051600160a060020a039092168252519081900360200190f35b34801561040257600080fd5b506102bb610c69565b34801561041757600080fd5b506102bb600435610c70565b34801561042f57600080fd5b50610399610cec565b34801561044457600080fd5b50610298600160a060020a03600435166024351515610cf5565b34801561046a57600080fd5b50610473610d3f565b6040805160ff9092168252519081900360200190f35b34801561049557600080fd5b50610298610d44565b3480156104aa57600080fd5b5061039960048035600160a060020a0316906024803591604435918201910135610e17565b3480156104db57600080fd5b506102bb610f51565b3480156104f057600080fd5b506103da600160a060020a0360043516610fe3565b34801561051157600080fd5b506102bb610ffe565b34801561052657600080fd5b50610473611004565b34801561053b57600080fd5b506102bb611012565b34801561055057600080fd5b506102986004351515611027565b34801561056a57600080fd5b506102bb6004351515611066565b34801561058457600080fd5b506102bb6110a9565b34801561059957600080fd5b506102bb600160a060020a03600435166110ae565b3480156105ba57600080fd5b50610399600160a060020a03600435166110c9565b3480156105db57600080fd5b50610399600160a060020a036004803582169160248035926044359182019291013590606435811690608435166110de565b34801561061957600080fd5b506102bb61122f565b34801561062e57600080fd5b50610298600435611235565b34801561064657600080fd5b506102bb611259565b34801561065b57600080fd5b50610298600160a060020a036004351660243515156112e4565b61029861132e565b34801561068957600080fd5b5061029860ff6004358116906024358116906044351661144b565b3480156106b057600080fd5b506102bb6114c6565b3480156106c557600080fd5b506102e26114d9565b3480156106da57600080fd5b506102986004351515611533565b3480156106f457600080fd5b50610298611574565b34801561070957600080fd5b5061047361161a565b34801561071e57600080fd5b506102bb611623565b34801561073357600080fd5b50610399600160a060020a0360043516602435611629565b34801561075757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102989436949293602493928401919081908401838280828437509497506117569650505050505050565b3480156107b057600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029894369492936024939284019190819084018382808284375094975061178c9650505050505050565b34801561080957600080fd5b506103da6117bd565b34801561081e57600080fd5b50610298600160a060020a03600435166117cc565b34801561083f57600080fd5b5061029860043561181a565b34801561085757600080fd5b50610298611a04565b34801561086c57600080fd5b50610473611a31565b34801561088157600080fd5b506102986004351515611a40565b6102bb600160a060020a0360043516611a7d565b3480156108af57600080fd5b50610298611ab6565b6000828201838110156108c757fe5b8091505b5092915050565b60008060008060008060008060006109066108ff8c600e60009054906101000a900460ff1660ff16611b6c565b6064611b97565b9750610913886003611b97565b600e54909750610940906108ff908d90610100810460ff9081166201000090920481169190910116611b6c565b955061094c8888611bae565b945061095a8a888787611bc0565b909550935061097261096c8c87611bae565b87611bae565b9250610980600354876108b8565b60035561098c83611e4c565b91506000821180156109a85750600c546109a683826108b8565b115b15156109b357600080fd5b6000600c541115610a17576109ca600c54836108b8565b600c8190556801000000000000000086028115156109e457fe5b600d8054929091049091019055600c54680100000000000000008602811515610a0957fe5b048202840384039350610a1d565b600c8290555b33600090815260066020526040902054610a3790836108b8565b33600081815260066020908152604080832094909455600d5460088252918490208054928702899003928301905583518f81529081018690528351919450600160a060020a038e16937f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d592918290030190a3509998505050505050505050565b600160a060020a0316600090815260086020908152604080832054600690925290912054600d54680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b785780601f10610b4d57610100808354040283529160200191610b78565b820191906000526020600020905b815481529060010190602001808311610b5b57829003601f168201915b505050505081565b3360008181526010602052604090205460ff161515610b9e57600080fd5b506015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60126020526000908152604090205460ff1681565b600e546000908190819081908190610c03906108ff90889060ff16611b6c565b600e54909450610c30906108ff908890610100810460ff9081166201000090920481169190910116611b6c565b9250610c45610c3f8786611bae565b84611bae565b9150610c5082611e4c565b9695505050505050565b601554600160a060020a031681565b600c545b90565b6000806000806000600c548611151515610c8957600080fd5b610c9286611ed8565b600e54909450610caa906108ff90869060ff16611b6c565b600e54909350610cd7906108ff908690610100810460ff9081166201000090920481169190910116611b6c565b9150610c50610ce68585611bae565b83611bae565b60115460ff1681565b3360008181526010602052604090205460ff161515610d1357600080fd5b50600160a060020a03919091166000908152601260205260409020805460ff1916911515919091179055565b601281565b6000806000610d536001611066565b11610d5d57600080fd5b339150610d6a6000611066565b600160a060020a038316600081815260086020908152604080832080546801000000000000000087020190556007909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610dd3573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b600080600160a060020a0386161515610e2f57600080fd5b600160a060020a03861660009081526012602052604090205460ff161515600114610e5957600080fd5b610e638686611629565b1515610e6e57600080fd5b610e7786611f42565b15610f4557506040517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052606060448401908152606484018690528893600160a060020a0385169363c0ee0b8a9390928a928a928a929091608401848480828437820191505095505050505050602060405180830381600087803b158015610f0e57600080fd5b505af1158015610f22573d6000803e3d6000fd5b505050506040513d6020811015610f3857600080fd5b50511515610f4557600080fd5b50600195945050505050565b6000806000806000600c5460001415610f7157640218711a009450610fdc565b610f82670de0b6b3a7640000611ed8565b600e54909450610f9a906108ff90869060ff16611b6c565b600e54909350610fc7906108ff908690610100810460ff9081166201000090920481169190910116611b6c565b9150610fd6610ce68585611bae565b90508094505b5050505090565b601360205260009081526040902054600160a060020a031681565b60045481565b600e54610100900460ff1681565b6000611022600354600254611bae565b905090565b3360008181526010602052604090205460ff16151561104557600080fd5b50600e80549115156401000000000264ff0000000019909216919091179055565b6000338261107c5761107781610ab7565b6110a0565b600160a060020a03811660009081526007602052604090205461109e82610ab7565b015b91505b50919050565b303190565b600160a060020a031660009081526006602052604090205490565b60106020526000908152604090205460ff1681565b600080600160a060020a03881615156110f657600080fd5b600160a060020a03881660009081526012602052604090205460ff16151560011461112057600080fd5b61112a8888611629565b151561113557600080fd5b61113e88611f42565b1561122157506040517fa322accf00000000000000000000000000000000000000000000000000000000815233600482018181526024830189905260648301829052600160a060020a03858116608485015260a06044850190815260a485018990528b949185169363a322accf9390928c928c928c9286928c929160c4018686808284378201915050975050505050505050602060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b505050506040513d602081101561121457600080fd5b5051151561122157600080fd5b506001979650505050505050565b60035481565b3360008181526010602052604090205460ff16151561125357600080fd5b50600455565b6000806000806000600c54600014156112795764028fa6ae009450610fdc565b61128a670de0b6b3a7640000611ed8565b600e549094506112a2906108ff90869060ff16611b6c565b600e549093506112cf906108ff908690610100810460ff9081166201000090920481169190910116611b6c565b9150610fd66112de85856108b8565b836108b8565b3360008181526010602052604090205460ff16151561130257600080fd5b50600160a060020a03919091166000908152601060205260409020805460ff1916911515919091179055565b336000818152601060205260408120549091829182919060ff16151561135357600080fd5b611361600354600254611bae565b93506001841161137057600080fd5b600e5461138b906108ff90869062010000900460ff16611b6c565b600e549093506113a8906108ff908690610100900460ff16611b6c565b91506113b6600254856108b8565b60025560008211156113ff57601454604051600160a060020a039091169062061a809084906000818181858888f1935050505015156113ff576113fb60025483611bae565b6002555b600083111561144557601554604051600160a060020a039091169062061a809085906000818181858888f1935050505015156114455761144160025484611bae565b6002555b50505050565b3360008181526010602052604090205460ff16151561146957600080fd5b601960ff8516111561147a57600080fd5b600560ff83850116111561148d57600080fd5b50600e805460ff191660ff9485161761ff001916610100938516939093029290921762ff00001916620100009190931602919091179055565b6000336114d2816110ae565b91505b5090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b785780601f10610b4d57610100808354040283529160200191610b78565b3360008181526010602052604090205460ff16151561155157600080fd5b50600e8054911515650100000000000265ff000000000019909216919091179055565b336000818152601060205260408120549091829182919060ff16151561159957600080fd5b600e54640100000000900460ff161561144557605393506115be600354600254611bae565b92506115cc600254846108b8565b6002555b6000841115611445576000848152600b6020526040902054611600906115f7908590611b6c565b6205f404611b97565b915061160e82600086611f4a565b506001840393506115d0565b600e5460ff1681565b60025481565b60008060006116366114c6565b1161164057600080fd5b503360008181526006602052604090205483111561165d57600080fd5b60006116696001611066565b111561167757611677610d44565b600160a060020a03811660009081526006602052604090205461169a9084611bae565b600160a060020a0380831660009081526006602052604080822093909355908616815220546116c990846108b8565b600160a060020a03858116600081815260066020908152604080832095909555600d8054948716808452600883528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360008181526010602052604090205460ff16151561177457600080fd5b8151611787906001906020850190612225565b505050565b3360008181526010602052604090205460ff1615156117aa57600080fd5b8151611787906000906020850190612225565b601454600160a060020a031681565b3360008181526010602052604090205460ff1615156117ea57600080fd5b506014805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008060008060008060006118306114c6565b1161183a57600080fd5b3360008181526006602052604090205490985089111561185957600080fd5b88965061186587611ed8565b600e5490965061187d906108ff90889060ff16611b6c565b600e549095506118aa906108ff908890610100810460ff9081166201000090920481169190910116611b6c565b93506003850492506118bc8584611bae565b336000908152601360205260408120549196506118e691600160a060020a03169085908890611bc0565b5094506118fc6118f68787611bae565b85611bae565b915061190a600354856108b8565b600355600c5461191a9088611bae565b600c55600160a060020a0388166000908152600660205260409020546119409088611bae565b600160a060020a038916600090815260066020908152604080832093909355600d5460089091529181208054928a0268010000000000000000860201928390039055600c5491925010156119b6576119b2600d54600c546801000000000000000088028115156119ac57fe5b046108b8565b600d555b60408051888152602081018490528151600160a060020a038b16927fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139928290030190a2505050505050505050565b3360008181526006602052604081205490811115611a2557611a258161181a565b611a2d610d44565b5050565b600e5462010000900460ff1681565b3360008181526010602052604090205460ff161515611a5e57600080fd5b50600e805491151563010000000263ff00000019909216919091179055565b600e5460009065010000000000900460ff161515611a9a57600080fd5b640ba43b74003a1115611aac57600080fd5b6110a334836108d2565b600080600080611ac66001611066565b11611ad057600080fd5b611ada6000611066565b33600081815260086020908152604080832080546801000000000000000087020190556007909152812080549082905590920194509250611b1c9084906108d2565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080831515611b7f57600091506108cb565b50828202828482811515611b8f57fe5b04146108c757fe5b6000808284811515611ba557fe5b04949350505050565b600082821115611bba57fe5b50900390565b33600090815260136020526040812054819084908490600160a060020a031683811515611beb578991505b600160a060020a03821615801590611c0c5750600160a060020a0382163314155b8015611c325750600454600160a060020a03831660009081526006602052604090205410155b15611e225733600090815260136020526040902054600160a060020a03161515611c8c57336000908152601360205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b600160a060020a038216600090815260076020526040902054611cb19060028b6119ac565b600160a060020a038084166000908152600760209081526040808320949094556013905291909120541690508015801590611d065750600454600160a060020a03821660009081526006602052604090205410155b15611dfd57600160a060020a038116600090815260076020526040902054611d3490600a8b046003026108b8565b600160a060020a03918216600090815260076020908152604080832093909355601390522054168015801590611d845750600454600160a060020a03821660009081526006602052604090205410155b15611dd057600160a060020a038116600090815260076020526040902054611db290600a8b046002026108b8565b600160a060020a038216600090815260076020526040902055611df8565b611de784600a8b0460030260028c048c03036108b8565b935068010000000000000000840292505b611e1d565b611e0c8460028b048b036108b8565b935068010000000000000000840292505b611e3d565b611e2c848a6108b8565b935068010000000000000000840292505b50919890975095505050505050565b600c546000906b204fce5e3e25026110000000908290633b9aca00611ec56118f67259aedfc10d7279c5eed140164540000000000088026002850a670de0b6b3a764000002016f0f0bdc21abb48db201e86d40000000008502017704140c78940f6a24fdffc78873d4490d2100000000000000016121f0565b811515611ece57fe5b0403949350505050565b600c54600090670de0b6b3a7640000838101918101908390611f2f640218711a00828504633b9aca0002018702600283670de0b6b3a763ffff1982890a8b90030104633b9aca0002811515611f2957fe5b04611bae565b811515611f3857fe5b0495945050505050565b6000903b1190565b6000806000806000806000806000611f776108ff8d600e60009054906101000a900460ff1660ff16611b6c565b9750611f84886003611b97565b600e54909750611fb1906108ff908e90610100810460ff9081166201000090920481169190910116611b6c565b9550611fbd8888611bae565b9450611fcb8b888787611bc0565b9095509350611fdd61096c8d87611bae565b9250611feb600354876108b8565b600355611ff783611e4c565b91506000821180156120135750600c5461201183826108b8565b115b151561201e57600080fd5b6000600c54111561208257612035600c54836108b8565b600c81905568010000000000000000860281151561204f57fe5b600d8054929091049091019055600c5468010000000000000000860281151561207457fe5b048202840384039350612088565b600c8290555b60008a8152600a6020908152604080832054600160a060020a0316835260069091529020546120b790836108b8565b60066000600a60008e815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020819055508382600d54020390508060086000600a60008e815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508a600160a060020a0316600a60008c815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58e85604051808381526020018281526020019250505060405180910390a3509a9950505050505050505050565b80600260018201045b818110156110a357809150600281828581151561221257fe5b040181151561221d57fe5b0490506121f9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226657805160ff1916838001178555612293565b82800160010185558215612293579182015b82811115612293578251825591602001919060010190612278565b506114d592610c6d9250905b808211156114d5576000815560010161229f5600a165627a7a723058202708edde0564696738c788562577212e625360df7bdd20b011792dfa99c9488f0029
Swarm Source
bzzr://2708edde0564696738c788562577212e625360df7bdd20b011792dfa99c9488f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,196.58 | 0.00374059 | $11.96 |
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.