Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0.024301939112976048 ETH
Eth Value
$80.42 (@ $3,309.32/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,385 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Lottery | 5971396 | 2369 days ago | IN | 0 ETH | 0.00322466 | ||||
Get Free Miner | 5942086 | 2374 days ago | IN | 0 ETH | 0.00019357 | ||||
Buy Miner | 5942028 | 2374 days ago | IN | 0 ETH | 0.00053982 | ||||
Buy Miner | 5932455 | 2375 days ago | IN | 0 ETH | 0.0003649 | ||||
Buy Miner | 5929555 | 2376 days ago | IN | 0 ETH | 0.00155503 | ||||
Buy Miner | 5929534 | 2376 days ago | IN | 0 ETH | 0.00149738 | ||||
Buy Miner | 5929259 | 2376 days ago | IN | 0 ETH | 0.00167973 | ||||
Withdraw Sell De... | 5929025 | 2376 days ago | IN | 0 ETH | 0.00047452 | ||||
Buy Crystal | 5929004 | 2376 days ago | IN | 0.00000001 ETH | 0.00081606 | ||||
Get Free Miner | 5928996 | 2376 days ago | IN | 0 ETH | 0.00085719 | ||||
Buy Crystal | 5928946 | 2376 days ago | IN | 0.00000001 ETH | 0.00081606 | ||||
Get Free Miner | 5928937 | 2376 days ago | IN | 0 ETH | 0.00126735 | ||||
Buy Crystal | 5928902 | 2376 days ago | IN | 0.00000001 ETH | 0.00081606 | ||||
Get Free Miner | 5928891 | 2376 days ago | IN | 0 ETH | 0.00051075 | ||||
Buy Crystal | 5928844 | 2376 days ago | IN | 0.00000001 ETH | 0.00081606 | ||||
Sell Crystal Dem... | 5928836 | 2376 days ago | IN | 0 ETH | 0.00126964 | ||||
Get Free Miner | 5928828 | 2376 days ago | IN | 0 ETH | 0.0005111 | ||||
Get Free Miner | 5928815 | 2376 days ago | IN | 0 ETH | 0.0005111 | ||||
Lottery | 5928762 | 2376 days ago | IN | 0 ETH | 0.0080727 | ||||
Lottery | 5885853 | 2383 days ago | IN | 0 ETH | 0.02216957 | ||||
Buy Miner | 5885835 | 2383 days ago | IN | 0 ETH | 0.0109392 | ||||
Buy Miner | 5885833 | 2383 days ago | IN | 0 ETH | 0.0321464 | ||||
Buy Miner | 5885833 | 2383 days ago | IN | 0 ETH | 0.02499 | ||||
Buy Miner | 5885833 | 2383 days ago | IN | 0 ETH | 0.0312898 | ||||
Buy Miner | 5885833 | 2383 days ago | IN | 0 ETH | 0.0305044 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5971396 | 2369 days ago | 0.00517674 ETH | ||||
5971396 | 2369 days ago | 0.00647093 ETH | ||||
5971396 | 2369 days ago | 0.01294186 ETH | ||||
5971396 | 2369 days ago | 0.01941279 ETH | ||||
5971396 | 2369 days ago | 0.00359496 ETH | ||||
5929004 | 2376 days ago | 0 ETH | ||||
5929004 | 2376 days ago | 0 ETH | ||||
5929004 | 2376 days ago | 0 ETH | ||||
5928946 | 2376 days ago | 0 ETH | ||||
5928946 | 2376 days ago | 0 ETH | ||||
5928946 | 2376 days ago | 0 ETH | ||||
5928902 | 2376 days ago | 0 ETH | ||||
5928902 | 2376 days ago | 0 ETH | ||||
5928902 | 2376 days ago | 0 ETH | ||||
5928844 | 2376 days ago | 0 ETH | ||||
5928844 | 2376 days ago | 0 ETH | ||||
5928844 | 2376 days ago | 0 ETH | ||||
5928762 | 2376 days ago | 0.00378416 ETH | ||||
5885853 | 2383 days ago | 0.06811504 ETH | ||||
5885853 | 2383 days ago | 0.06811504 ETH | ||||
5885853 | 2383 days ago | 0.06811504 ETH | ||||
5885853 | 2383 days ago | 0.06811504 ETH | ||||
5885853 | 2383 days ago | 0.06811504 ETH | ||||
5885853 | 2383 days ago | 0.09536106 ETH | ||||
5885853 | 2383 days ago | 0.10898406 ETH |
Loading...
Loading
Contract Name:
Minewar
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-06-24 */ pragma solidity ^0.4.2; 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; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } } //-------------------------------------------------------------------------- // EtherMinewar // copyright by mark_hu // http://www.etherminewar.com/ //-------------------------------------------------------------------------- contract Minewar { bool public initialized = false; uint256 public roundNumber = 0; uint256 public deadline; uint256 public CRTSTAL_MINING_PERIOD = 86400; uint256 public HALF_TIME = 8 hours; uint256 public ROUND_TIME = 86400 * 7; uint256 BASE_PRICE = 0.005 ether; uint256 RANK_LIST_LIMIT = 10000; uint256 MINIMUM_LIMIT_SELL = 5000000; //miner info mapping(uint256 => MinerData) private minerData; uint256 private numberOfMiners; // plyer info mapping(address => PlyerData) private players; //booster info uint256 private numberOfBoosts; mapping(uint256 => BoostData) private boostData; //order info uint256 private numberOfOrders; mapping(uint256 => BuyOrderData) private buyOrderData; mapping(uint256 => SellOrderData) private sellOrderData; uint256 private numberOfRank; address[21] rankList; address public sponsor; uint256 public sponsorLevel; address public administrator; /*** DATATYPES ***/ struct PlyerData { uint256 roundNumber; mapping(uint256 => uint256) minerCount; uint256 hashrate; uint256 crystals; uint256 lastUpdateTime; uint256 referral_count; } struct MinerData { uint256 basePrice; uint256 baseProduct; uint256 limit; } struct BoostData { address owner; uint256 boostRate; uint256 startingLevel; uint256 startingTime; uint256 halfLife; } struct BuyOrderData { address owner; string title; string description; uint256 unitPrice; uint256 amount; } struct SellOrderData { address owner; string title; string description; uint256 unitPrice; uint256 amount; } modifier isNotOver() { require(now <= deadline); require(tx.origin == msg.sender); _; } modifier isCurrentRound() { require(players[msg.sender].roundNumber == roundNumber); _; } modifier limitSell() { PlyerData storage p = players[msg.sender]; if(p.hashrate <= MINIMUM_LIMIT_SELL){ _; }else{ uint256 limit_hashrate = 0; if(rankList[9] != 0){ PlyerData storage rank_player = players[rankList[9]]; limit_hashrate = SafeMath.mul(rank_player.hashrate, 5); } require(p.hashrate <= limit_hashrate); _; } } function Minewar() public { administrator = msg.sender; numberOfMiners = 8; numberOfBoosts = 5; numberOfOrders = 5; numberOfRank = 21; //init miner data // price, prod. limit minerData[0] = MinerData(10, 10, 10); //lv1 minerData[1] = MinerData(100, 200, 2); //lv2 minerData[2] = MinerData(400, 800, 4); //lv3 minerData[3] = MinerData(1600, 3200, 8); //lv4 minerData[4] = MinerData(6400, 9600, 16); //lv5 minerData[5] = MinerData(25600, 38400, 32); //lv6 minerData[6] = MinerData(204800, 204800, 64); //lv7 minerData[7] = MinerData(1638400, 819200, 65536); //lv8 } function () public payable { } function startGame() public { require(msg.sender == administrator); require(!initialized); startNewRound(); initialized = true; } function startNewRound() private { deadline = SafeMath.add(now, ROUND_TIME); roundNumber = SafeMath.add(roundNumber, 1); initData(); } function initData() private { sponsor = administrator; sponsorLevel = 6; //init booster data boostData[0] = BoostData(0, 150, 1, now, HALF_TIME); boostData[1] = BoostData(0, 175, 1, now, HALF_TIME); boostData[2] = BoostData(0, 200, 1, now, HALF_TIME); boostData[3] = BoostData(0, 225, 1, now, HALF_TIME); boostData[4] = BoostData(msg.sender, 250, 2, now, HALF_TIME); //init order data uint256 idx; for (idx = 0; idx < numberOfOrders; idx++) { buyOrderData[idx] = BuyOrderData(0, "title", "description", 0, 0); sellOrderData[idx] = SellOrderData(0, "title", "description", 0, 0); } for (idx = 0; idx < numberOfRank; idx++) { rankList[idx] = 0; } } function lottery() public { require(now > deadline); require(tx.origin == msg.sender); uint256 balance = SafeMath.div(SafeMath.mul(this.balance, 90), 100); administrator.send(SafeMath.div(SafeMath.mul(this.balance, 5), 100)); uint8[10] memory profit = [30,20,10,8,7,5,5,5,5,5]; for(uint256 idx = 0; idx < 10; idx++){ if(rankList[idx] != 0){ rankList[idx].send(SafeMath.div(SafeMath.mul(balance,profit[idx]),100)); } } startNewRound(); } function getRankList() public view returns(address[21]) { return rankList; } //sponser function becomeSponsor() public isNotOver isCurrentRound payable { require(msg.value >= getSponsorFee()); sponsor.send(getCurrentPrice(sponsorLevel)); sponsor = msg.sender; sponsorLevel = SafeMath.add(sponsorLevel, 1); } function getSponsorFee() public view returns(uint256 sponsorFee) { sponsorFee = getCurrentPrice(SafeMath.add(sponsorLevel, 1)); } //-------------------------------------------------------------------------- // Miner //-------------------------------------------------------------------------- function getFreeMiner(address ref) isNotOver public { require(players[msg.sender].roundNumber != roundNumber); PlyerData storage p = players[msg.sender]; //reset player data if(p.hashrate > 0){ for (uint idx = 1; idx < numberOfMiners; idx++) { p.minerCount[idx] = 0; } } p.crystals = 0; p.roundNumber = roundNumber; //free miner p.lastUpdateTime = now; p.referral_count = 0; p.minerCount[0] = 1; MinerData storage m0 = minerData[0]; p.hashrate = m0.baseProduct; //send referral if (ref != msg.sender) { PlyerData storage referral = players[ref]; if(referral.roundNumber == roundNumber){ updateCrytal(ref); p.referral_count = 1; referral.referral_count = SafeMath.add(referral.referral_count, 1); } } } function buyMiner(uint256[] minerNumbers) public isNotOver isCurrentRound { require(minerNumbers.length == numberOfMiners); uint256 minerIdx = 0; MinerData memory m; for (; minerIdx < numberOfMiners; minerIdx++) { m = minerData[minerIdx]; if(minerNumbers[minerIdx] > m.limit || minerNumbers[minerIdx] < 0){ revert(); } } updateCrytal(msg.sender); PlyerData storage p = players[msg.sender]; uint256 price = 0; uint256 minerNumber = 0; for (minerIdx = 0; minerIdx < numberOfMiners; minerIdx++) { minerNumber = minerNumbers[minerIdx]; if (minerNumber > 0) { m = minerData[minerIdx]; price = SafeMath.add(price, SafeMath.mul(m.basePrice, minerNumber)); } } price = SafeMath.mul(price, CRTSTAL_MINING_PERIOD); if(p.crystals < price){ revert(); } for (minerIdx = 0; minerIdx < numberOfMiners; minerIdx++) { minerNumber = minerNumbers[minerIdx]; if (minerNumber > 0) { m = minerData[minerIdx]; p.minerCount[minerIdx] = SafeMath.min(m.limit, SafeMath.add(p.minerCount[minerIdx], minerNumber)); } } p.crystals = SafeMath.sub(p.crystals, price); updateHashrate(msg.sender); } function getPlayerData(address addr) public view returns (uint256 crystals, uint256 lastupdate, uint256 hashratePerDay, uint256[8] miners, uint256 hasBoost, uint256 referral_count) { PlyerData storage p = players[addr]; if(p.roundNumber != roundNumber){ p = players[0]; } crystals = SafeMath.div(p.crystals, CRTSTAL_MINING_PERIOD); lastupdate = p.lastUpdateTime; hashratePerDay = addReferralHashrate(addr, p.hashrate); uint256 i = 0; for(i = 0; i < numberOfMiners; i++) { miners[i] = p.minerCount[i]; } hasBoost = hasBooster(addr); referral_count = p.referral_count; } function getHashratePerDay(address minerAddr) public view returns (uint256 personalProduction) { PlyerData storage p = players[minerAddr]; personalProduction = addReferralHashrate(minerAddr, p.hashrate); uint256 boosterIdx = hasBooster(minerAddr); if (boosterIdx != 999) { BoostData storage b = boostData[boosterIdx]; personalProduction = SafeMath.div(SafeMath.mul(personalProduction, b.boostRate), 100); } } //-------------------------------------------------------------------------- // BOOSTER //-------------------------------------------------------------------------- function buyBooster(uint256 idx) public isNotOver isCurrentRound payable { require(idx < numberOfBoosts); BoostData storage b = boostData[idx]; if(msg.value < getBoosterPrice(idx) || msg.sender == b.owner){ revert(); } address beneficiary = b.owner; sponsor.send(devFee(getBoosterPrice(idx))); if(beneficiary != 0){ beneficiary.send(SafeMath.div(SafeMath.mul(getBoosterPrice(idx), 55), 100)); } updateCrytal(msg.sender); updateCrytal(beneficiary); uint256 level = getCurrentLevel(b.startingLevel, b.startingTime, b.halfLife); b.startingLevel = SafeMath.add(level, 1); b.startingTime = now; // transfer ownership b.owner = msg.sender; } function getBoosterData(uint256 idx) public view returns (address owner,uint256 boostRate, uint256 startingLevel, uint256 startingTime, uint256 currentPrice, uint256 halfLife) { require(idx < numberOfBoosts); owner = boostData[idx].owner; boostRate = boostData[idx].boostRate; startingLevel = boostData[idx].startingLevel; startingTime = boostData[idx].startingTime; currentPrice = getBoosterPrice(idx); halfLife = boostData[idx].halfLife; } function getBoosterPrice(uint256 index) public view returns (uint256) { BoostData storage booster = boostData[index]; return getCurrentPrice(getCurrentLevel(booster.startingLevel, booster.startingTime, booster.halfLife)); } function hasBooster(address addr) public view returns (uint256 boostIdx) { boostIdx = 999; for(uint256 i = 0; i < numberOfBoosts; i++){ uint256 revert_i = numberOfBoosts - i - 1; if(boostData[revert_i].owner == addr){ boostIdx = revert_i; break; } } } //-------------------------------------------------------------------------- // Market //-------------------------------------------------------------------------- function buyCrystalDemand(uint256 amount, uint256 unitPrice,string title, string description) public isNotOver isCurrentRound payable { require(unitPrice > 0); require(amount >= 1000); require(amount * unitPrice <= msg.value); uint256 lowestIdx = getLowestUnitPriceIdxFromBuy(); BuyOrderData storage o = buyOrderData[lowestIdx]; if(o.amount > 10 && unitPrice <= o.unitPrice){ revert(); } uint256 balance = SafeMath.mul(o.amount, o.unitPrice); if (o.owner != 0){ o.owner.send(balance); } o.owner = msg.sender; o.unitPrice = unitPrice; o.title = title; o.description = description; o.amount = amount; } function sellCrystal(uint256 amount, uint256 index) public isNotOver isCurrentRound limitSell { require(index < numberOfOrders); require(amount > 0); BuyOrderData storage o = buyOrderData[index]; require(amount <= o.amount); updateCrytal(msg.sender); PlyerData storage seller = players[msg.sender]; PlyerData storage buyer = players[o.owner]; require(seller.crystals >= amount * CRTSTAL_MINING_PERIOD); uint256 price = SafeMath.mul(amount, o.unitPrice); uint256 fee = devFee(price); sponsor.send(fee); administrator.send(fee); buyer.crystals = SafeMath.add(buyer.crystals, amount * CRTSTAL_MINING_PERIOD); seller.crystals = SafeMath.sub(seller.crystals, amount * CRTSTAL_MINING_PERIOD); o.amount = SafeMath.sub(o.amount, amount); msg.sender.send(SafeMath.div(price, 2)); } function withdrawBuyDemand(uint256 index) public isNotOver isCurrentRound { require(index < numberOfOrders); BuyOrderData storage o = buyOrderData[index]; require(o.owner == msg.sender); if(o.amount > 0){ uint256 balance = SafeMath.mul(o.amount, o.unitPrice); o.owner.send(balance); } o.unitPrice = 0; o.amount = 0; o.title = "title"; o.description = "description"; o.owner = 0; } function getBuyDemand(uint256 index) public view returns(address owner, string title, string description, uint256 amount, uint256 unitPrice) { require(index < numberOfOrders); BuyOrderData storage o = buyOrderData[index]; owner = o.owner; title = o.title; description = o.description; amount = o.amount; unitPrice = o.unitPrice; } function getLowestUnitPriceIdxFromBuy() public returns(uint256 lowestIdx) { uint256 lowestPrice = 2**256 - 1; for (uint256 idx = 0; idx < numberOfOrders; idx++) { BuyOrderData storage o = buyOrderData[idx]; //if empty if (o.unitPrice == 0 || o.amount < 10) { return idx; }else if (o.unitPrice < lowestPrice) { lowestPrice = o.unitPrice; lowestIdx = idx; } } } //-------------------------Sell----------------------------- function sellCrystalDemand(uint256 amount, uint256 unitPrice, string title, string description) public isNotOver isCurrentRound limitSell { require(amount >= 1000); require(unitPrice > 0); updateCrytal(msg.sender); PlyerData storage seller = players[msg.sender]; if(seller.crystals < amount * CRTSTAL_MINING_PERIOD){ revert(); } uint256 highestIdx = getHighestUnitPriceIdxFromSell(); SellOrderData storage o = sellOrderData[highestIdx]; if(o.amount > 10 && unitPrice >= o.unitPrice){ revert(); } if (o.owner != 0){ PlyerData storage prev = players[o.owner]; prev.crystals = SafeMath.add(prev.crystals, o.amount * CRTSTAL_MINING_PERIOD); } o.owner = msg.sender; o.unitPrice = unitPrice; o.title = title; o.description = description; o.amount = amount; //sub crystals seller.crystals = SafeMath.sub(seller.crystals, amount * CRTSTAL_MINING_PERIOD); } function buyCrystal(uint256 amount, uint256 index) public isNotOver isCurrentRound payable { require(index < numberOfOrders); require(amount > 0); SellOrderData storage o = sellOrderData[index]; require(amount <= o.amount); require(msg.value >= amount * o.unitPrice); PlyerData storage buyer = players[msg.sender]; uint256 price = SafeMath.mul(amount, o.unitPrice); uint256 fee = devFee(price); sponsor.send(fee); administrator.transfer(fee); buyer.crystals = SafeMath.add(buyer.crystals, amount * CRTSTAL_MINING_PERIOD); o.amount = SafeMath.sub(o.amount, amount); o.owner.send(SafeMath.div(price, 2)); } function withdrawSellDemand(uint256 index) public isNotOver isCurrentRound { require(index < numberOfOrders); SellOrderData storage o = sellOrderData[index]; require(o.owner == msg.sender); if(o.amount > 0){ PlyerData storage p = players[o.owner]; p.crystals = SafeMath.add(p.crystals, o.amount * CRTSTAL_MINING_PERIOD); } o.unitPrice = 0; o.amount = 0; o.title = "title"; o.description = "description"; o.owner = 0; } function getSellDemand(uint256 index) public view returns(address owner, string title, string description, uint256 amount, uint256 unitPrice) { require(index < numberOfOrders); SellOrderData storage o = sellOrderData[index]; owner = o.owner; title = o.title; description = o.description; amount = o.amount; unitPrice = o.unitPrice; } function getHighestUnitPriceIdxFromSell() public returns(uint256 highestIdx) { uint256 highestPrice = 0; for (uint256 idx = 0; idx < numberOfOrders; idx++) { SellOrderData storage o = sellOrderData[idx]; //if empty if (o.unitPrice == 0 || o.amount < 10) { return idx; }else if (o.unitPrice > highestPrice) { highestPrice = o.unitPrice; highestIdx = idx; } } } //-------------------------------------------------------------------------- // Other //-------------------------------------------------------------------------- function devFee(uint256 amount) public view returns(uint256) { return SafeMath.div(SafeMath.mul(amount, 5), 100); } function getBalance() public view returns(uint256) { return this.balance; } function upgrade(address addr) public { require(msg.sender == administrator); require(now < deadline - 82800); uint256 balance = SafeMath.div(SafeMath.mul(this.balance, 90), 100); administrator.send(SafeMath.div(SafeMath.mul(this.balance, 5), 100)); uint8[10] memory profit = [30,20,10,8,7,5,5,5,5,5]; for(uint256 idx = 0; idx < 10; idx++){ if(rankList[idx] != 0){ rankList[idx].send(SafeMath.div(SafeMath.mul(balance,profit[idx]),100)); } } selfdestruct(addr); } //-------------------------------------------------------------------------- // Private //-------------------------------------------------------------------------- function updateHashrate(address addr) private { PlyerData storage p = players[addr]; uint256 hashrate = 0; for (uint idx = 0; idx < numberOfMiners; idx++) { MinerData storage m = minerData[idx]; hashrate = SafeMath.add(hashrate, SafeMath.mul(p.minerCount[idx], m.baseProduct)); } p.hashrate = hashrate; if(hashrate > RANK_LIST_LIMIT){ updateRankList(addr); } } function updateCrytal(address addr) private { require(now > players[addr].lastUpdateTime); if (players[addr].lastUpdateTime != 0) { PlyerData storage p = players[addr]; uint256 secondsPassed = SafeMath.sub(now, p.lastUpdateTime); uint256 revenue = getHashratePerDay(addr); p.lastUpdateTime = now; if (revenue > 0) { revenue = SafeMath.mul(revenue, secondsPassed); p.crystals = SafeMath.add(p.crystals, revenue); } } } function addReferralHashrate(address addr, uint256 hashrate) private view returns(uint256 personalProduction) { PlyerData storage p = players[addr]; if(p.referral_count < 5){ personalProduction = SafeMath.add(hashrate, p.referral_count * 10); }else if(p.referral_count < 10){ personalProduction = SafeMath.add(hashrate, 50 + p.referral_count * 10); }else{ personalProduction = SafeMath.add(hashrate, 200); } } function getCurrentLevel(uint256 startingLevel, uint256 startingTime, uint256 halfLife) private view returns(uint256) { uint256 timePassed=SafeMath.sub(now, startingTime); uint256 levelsPassed=SafeMath.div(timePassed, halfLife); if (startingLevel < levelsPassed) { return 0; } return SafeMath.sub(startingLevel, levelsPassed); } function getCurrentPrice(uint256 currentLevel) private view returns(uint256) { return SafeMath.mul(BASE_PRICE, 2**currentLevel); } function updateRankList(address addr) private returns(bool) { uint256 idx = 0; PlyerData storage insert = players[addr]; PlyerData storage lastOne = players[rankList[19]]; if(insert.hashrate < lastOne.hashrate) { return false; } address[21] memory tempList = rankList; if(!inRankList(addr)){ tempList[20] = addr; quickSort(tempList, 0, 20); }else{ quickSort(tempList, 0, 19); } for(idx = 0;idx < 21; idx++){ if(tempList[idx] != rankList[idx]){ rankList[idx] = tempList[idx]; } } return true; } function inRankList(address addr) internal returns(bool) { for(uint256 idx = 0;idx < 20; idx++){ if(addr == rankList[idx]){ return true; } } return false; } function quickSort(address[21] list, int left, int right) internal { int i = left; int j = right; if(i == j) return; address addr = list[uint(left + (right - left) / 2)]; PlyerData storage p = players[addr]; while (i <= j) { while (players[list[uint(i)]].hashrate > p.hashrate) i++; while (p.hashrate > players[list[uint(j)]].hashrate) j--; if (i <= j) { (list[uint(i)], list[uint(j)]) = (list[uint(j)], list[uint(i)]); i++; j--; } } if (left < j) quickSort(list, left, j); if (i < right) quickSort(list, i, right); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"index","type":"uint256"}],"name":"sellCrystal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"unitPrice","type":"uint256"},{"name":"title","type":"string"},{"name":"description","type":"string"}],"name":"sellCrystalDemand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"minerAddr","type":"address"}],"name":"getHashratePerDay","outputs":[{"name":"personalProduction","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getBoosterPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"deadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getPlayerData","outputs":[{"name":"crystals","type":"uint256"},{"name":"lastupdate","type":"uint256"},{"name":"hashratePerDay","type":"uint256"},{"name":"miners","type":"uint256[8]"},{"name":"hasBoost","type":"uint256"},{"name":"referral_count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idx","type":"uint256"}],"name":"getBoosterData","outputs":[{"name":"owner","type":"address"},{"name":"boostRate","type":"uint256"},{"name":"startingLevel","type":"uint256"},{"name":"startingTime","type":"uint256"},{"name":"currentPrice","type":"uint256"},{"name":"halfLife","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"devFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"unitPrice","type":"uint256"},{"name":"title","type":"string"},{"name":"description","type":"string"}],"name":"buyCrystalDemand","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"roundNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"minerNumbers","type":"uint256[]"}],"name":"buyMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"HALF_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getHighestUnitPriceIdxFromSell","outputs":[{"name":"highestIdx","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"withdrawBuyDemand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sponsor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getSellDemand","outputs":[{"name":"owner","type":"address"},{"name":"title","type":"string"},{"name":"description","type":"string"},{"name":"amount","type":"uint256"},{"name":"unitPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ROUND_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"withdrawSellDemand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ref","type":"address"}],"name":"getFreeMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getSponsorFee","outputs":[{"name":"sponsorFee","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRankList","outputs":[{"name":"","type":"address[21]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"hasBooster","outputs":[{"name":"boostIdx","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"lottery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CRTSTAL_MINING_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idx","type":"uint256"}],"name":"buyBooster","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"getLowestUnitPriceIdxFromBuy","outputs":[{"name":"lowestIdx","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"becomeSponsor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"sponsorLevel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"administrator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getBuyDemand","outputs":[{"name":"owner","type":"address"},{"name":"title","type":"string"},{"name":"description","type":"string"},{"name":"amount","type":"uint256"},{"name":"unitPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"index","type":"uint256"}],"name":"buyCrystal","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]
Contract Creation Code
608060405260008060006101000a81548160ff02191690831515021790555060006001556201518060035561708060045562093a806005556611c37937e08000600655612710600755624c4b4060085534801561005b57600080fd5b5033602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a819055506005600c819055506005600e819055506015601181905550606060405190810160405280600a8152602001600a8152602001600a815250600960008081526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506060604051908101604052806064815260200160c881526020016002815250600960006001815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060606040519081016040528061019081526020016103208152602001600481525060096000600281526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506060604051908101604052806106408152602001610c808152602001600881525060096000600381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506060604051908101604052806119008152602001612580815260200160108152506009600060048152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050606060405190810160405280616400815260200161960081526020016020815250600960006005815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060606040519081016040528062032000815260200162032000815260200160408152506009600060068152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050606060405190810160405280621900008152602001620c800081526020016201000081525060096000600781526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506150658061037d6000396000f3006080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308d317dd146101b95780630900f010146101f05780630dda20d11461023357806312065fe0146102f6578063158ef93e146103215780632243fb1514610350578063294cf912146103a757806329dcb0cf146103e85780632aa531d91461041357806339901be8146104b55780633bc0461a1461054557806341fe0a24146105865780634e2786fb1461063c5780634ec2d0b6146106675780634f9d482a146106cd57806368381b96146106f8578063718b0a321461072357806377c936621461075057806378473485146107a75780637892fd29146108fa5780637a6e9e4114610925578063898644cc146109525780639f8ff91d14610995578063a1a200c5146109c0578063ad5b718914610a13578063ba13a57214610a6a578063cee0b4fe14610a81578063d223926f14610aac578063d60207c714610acc578063d65ab5f214610af7578063e3e9bc3f14610b0e578063ea6f1c4a14610b18578063f53d0a8e14610b43578063f737f27414610b9a578063f9d7020014610ced575b005b3480156101c557600080fd5b506101ee6004803603810190808035906020019092919080359060200190929190505050610d17565b005b3480156101fc57600080fd5b50610231600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d3565b005b34801561023f57600080fd5b506102f46004803603810190808035906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611685565b005b34801561030257600080fd5b5061030b611cce565b6040518082815260200191505060405180910390f35b34801561032d57600080fd5b50610336611ced565b604051808215151515815260200191505060405180910390f35b34801561035c57600080fd5b50610391600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cff565b6040518082815260200191505060405180910390f35b3480156103b357600080fd5b506103d260048036038101908080359060200190929190505050611da4565b6040518082815260200191505060405180910390f35b3480156103f457600080fd5b506103fd611de3565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b50610454600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611de9565b6040518087815260200186815260200185815260200184600860200280838360005b83811015610491578082015181840152602081019050610476565b50505050905001838152602001828152602001965050505050505060405180910390f35b3480156104c157600080fd5b506104e060048036038101908080359060200190929190505050611f0b565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b34801561055157600080fd5b5061057060048036038101908080359060200190929190505050611fd5565b6040518082815260200191505060405180910390f35b61063a6004803603810190808035906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611ff3565b005b34801561064857600080fd5b5061065161224a565b6040518082815260200191505060405180910390f35b34801561067357600080fd5b506106cb60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612250565b005b3480156106d957600080fd5b506106e26125a6565b6040518082815260200191505060405180910390f35b34801561070457600080fd5b5061070d6125ac565b6040518082815260200191505060405180910390f35b34801561072f57600080fd5b5061074e60048036038101908080359060200190929190505050612629565b005b34801561075c57600080fd5b506107656128c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107b357600080fd5b506107d2600480360381019080803590602001909291905050506128e7565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001858152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015610854578082015181840152602081019050610839565b50505050905090810190601f1680156108815780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156108ba57808201518184015260208101905061089f565b50505050905090810190601f1680156108e75780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561090657600080fd5b5061090f612a93565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b5061095060048036038101908080359060200190929190505050612a99565b005b34801561095e57600080fd5b50610993600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d46565b005b3480156109a157600080fd5b506109aa612f8c565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b506109d5612fa8565b6040518082601560200280838360005b83811015610a005780820151818401526020810190506109e5565b5050505090500191505060405180910390f35b348015610a1f57600080fd5b50610a54600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613029565b6040518082815260200191505060405180910390f35b348015610a7657600080fd5b50610a7f6130d2565b005b348015610a8d57600080fd5b50610a96613351565b6040518082815260200191505060405180910390f35b610aca60048036038101908080359060200190929190505050613357565b005b348015610ad857600080fd5b50610ae161361f565b6040518082815260200191505060405180910390f35b348015610b0357600080fd5b50610b0c6136bb565b005b610b16613756565b005b348015610b2457600080fd5b50610b2d6138c1565b6040518082815260200191505060405180910390f35b348015610b4f57600080fd5b50610b586138c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba657600080fd5b50610bc5600480360381019080803590602001909291905050506138ed565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001858152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015610c47578082015181840152602081019050610c2c565b50505050905090810190601f168015610c745780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b83811015610cad578082015181840152602081019050610c92565b50505050905090810190601f168015610cda5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b610d156004803603810190808035906020019092919080359060200190929190505050613a99565b005b60008060008060006002544211151515610d3057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515610d6a57600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515610dbc57600080fd5b6000806000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600854836002015411151561107857600e5489101515610e2157600080fd5b60008a111515610e3057600080fd5b600f60008a8152602001908152602001600020975087600401548a11151515610e5857600080fd5b610e6133613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209650600b60008960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002095506003548a02876003015410151515610f1e57600080fd5b610f2c8a8960030154613e8a565b9450610f3785611fd5565b9350602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505050610ffb86600301546003548c02613ec5565b866003018190555061101587600301546003548c02613ee3565b876003018190555061102b88600401548b613ee3565b88600401819055503373ffffffffffffffffffffffffffffffffffffffff166108fc611058876002613efc565b9081150290604051600060405180830381858888f19350505050506113c7565b6000915060006012600960158110151561108e57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561115157600b6000601260096015811015156110e157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061114e81600201546005613e8a565b91505b8183600201541115151561116457600080fd5b600e548910151561117457600080fd5b60008a11151561118357600080fd5b600f60008a8152602001908152602001600020975087600401548a111515156111ab57600080fd5b6111b433613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209650600b60008960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002095506003548a0287600301541015151561127157600080fd5b61127f8a8960030154613e8a565b945061128a85611fd5565b9350602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050505061134e86600301546003548c02613ec5565b866003018190555061136887600301546003548c02613ee3565b876003018190555061137e88600401548b613ee3565b88600401819055503373ffffffffffffffffffffffffffffffffffffffff166108fc6113ab876002613efc565b9081150290604051600060405180830381858888f19350505050505b50505050505050505050565b60006113dd614e86565b6000602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b62014370600254034210151561145057600080fd5b61147c6114753073ffffffffffffffffffffffffffffffffffffffff1631605a613e8a565b6064613efc565b9250602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6114e66114df3073ffffffffffffffffffffffffffffffffffffffff16316005613e8a565b6064613efc565b9081150290604051600060405180830381858888f193505050505061014060405190810160405280601e60ff168152602001601460ff168152602001600a60ff168152602001600860ff168152602001600760ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152509150600090505b600a81101561166c57600060128260158110151561159157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561165f576012816015811015156115df57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61164361163c868686600a8110151561162f57fe5b602002015160ff16613e8a565b6064613efc565b9081150290604051600060405180830381858888f19350505050505b8080600101915050611577565b8373ffffffffffffffffffffffffffffffffffffffff16ff5b600080600080600254421115151561169c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156116d657600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561172857600080fd5b6000806000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060085483600201541115156119ab576103e88b1015151561178e57600080fd5b60008a11151561179d57600080fd5b6117a633613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002096506003548b02876003015410156117fc57600080fd5b6118046125ac565b9550601060008781526020019081526020016000209450600a8560040154118015611833575084600301548a10155b1561183d57600080fd5b60008560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561190557600b60008660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002093506118fc8460030154600354876004015402613ec5565b84600301819055505b338560000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089856003018190555088856001019080519060200190611969929190614eaa565b5087856002019080519060200190611982929190614eaa565b508a856004018190555061199e87600301546003548d02613ee3565b8760030181905550611cc1565b600091506000601260096015811015156119c157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a8457600b600060126009601581101515611a1457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611a8181600201546005613e8a565b91505b81836002015411151515611a9757600080fd5b6103e88b10151515611aa857600080fd5b60008a111515611ab757600080fd5b611ac033613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002096506003548b0287600301541015611b1657600080fd5b611b1e6125ac565b9550601060008781526020019081526020016000209450600a8560040154118015611b4d575084600301548a10155b15611b5757600080fd5b60008560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c1f57600b60008660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350611c168460030154600354876004015402613ec5565b84600301819055505b338560000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089856003018190555088856001019080519060200190611c83929190614eaa565b5087856002019080519060200190611c9c929190614eaa565b508a8560040181905550611cb887600301546003548d02613ee3565b87600301819055505b5050505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000809054906101000a900460ff1681565b600080600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250611d54858460020154613f17565b9350611d5f85613029565b91506103e782141515611d9c57600d60008381526020019081526020016000209050611d99611d92858360010154613e8a565b6064613efc565b93505b505050919050565b600080600d60008481526020019081526020016000209050611ddb611dd6826002015483600301548460040154613fbe565b614002565b915050919050565b60025481565b6000806000611df6614f2a565b600080600080600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506001548260000154141515611e7857600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b611e888260030154600354613efc565b975081600401549650611e9f898360020154613f17565b955060009050600090505b600a54811015611eee57816001016000828152602001908152602001600020548582600881101515611ed857fe5b6020020181815250508080600101915050611eaa565b611ef789613029565b935081600501549250505091939550919395565b600080600080600080600c5487101515611f2457600080fd5b600d600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550600d6000888152602001908152602001600020600101549450600d6000888152602001908152602001600020600201549350600d6000888152602001908152602001600020600301549250611fb187611da4565b9150600d600088815260200190815260200160002060040154905091939550919395565b6000611fec611fe5836005613e8a565b6064613efc565b9050919050565b6000806000600254421115151561200957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614151561204357600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561209557600080fd5b6000861115156120a457600080fd5b6103e887101515156120b557600080fd5b34868802111515156120c657600080fd5b6120ce61361f565b9250600f60008481526020019081526020016000209150600a82600401541180156120fd575081600301548611155b1561210757600080fd5b61211982600401548360030154613e8a565b905060008260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156121ba578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050505b338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508582600301819055508482600101908051906020019061221e929190614eaa565b5083826002019080519060200190612237929190614eaa565b5086826004018190555050505050505050565b60015481565b600061225a614f4e565b6000806000600254421115151561227057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156122aa57600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156122fc57600080fd5b600a54865114151561230d57600080fd5b600094505b600a548510156123b2576009600086815260200190815260200160002060606040519081016040529081600082015481526020016001820154815260200160028201548152505093508360400151868681518110151561236e57fe5b90602001906020020151118061239b57506000868681518110151561238f57fe5b90602001906020020151105b156123a557600080fd5b8480600101955050612312565b6123bb33613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002092506000915060009050600094505b600a5485101561249c57858581518110151561242157fe5b906020019060200201519050600081111561248f5760096000868152602001908152602001600020606060405190810160405290816000820154815260200160018201548152602001600282015481525050935061248c82612487866000015184613e8a565b613ec5565b91505b8480600101955050612409565b6124a882600354613e8a565b915081836003015410156124bb57600080fd5b600094505b600a5485101561257f5785858151811015156124d857fe5b90602001906020020151905060008111156125725760096000868152602001908152602001600020606060405190810160405290816000820154815260200160018201548152602001600282015481525050935061255884604001516125538560010160008981526020019081526020016000205484613ec5565b61401a565b836001016000878152602001908152602001600020819055505b84806001019550506124c0565b61258d836003015483613ee3565b836003018190555061259e33614033565b505050505050565b60045481565b60008060008060009250600091505b600e54821015612622576010600083815260200190815260200160002090506000816003015414806125f15750600a8160040154105b156125fe57819350612623565b828160030154111561261557806003015492508193505b81806001019250506125bb565b5b50505090565b600080600254421115151561263d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614151561267757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156126c957600080fd5b600e54831015156126d957600080fd5b600f600084815260200190815260200160002091503373ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561274c57600080fd5b6000826004015411156127c85761276b82600401548360030154613e8a565b90508160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050505b60008260030181905550600082600401819055506040805190810160405280600581526020017f7469746c65000000000000000000000000000000000000000000000000000000815250826001019080519060200190612829929190614eaa565b506040805190810160405280600b81526020017f6465736372697074696f6e000000000000000000000000000000000000000000815250826002019080519060200190612877929190614eaa565b5060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006060806000806000600e548710151561290157600080fd5b6010600088815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129d55780601f106129aa576101008083540402835291602001916129d5565b820191906000526020600020905b8154815290600101906020018083116129b857829003601f168201915b50505050509450806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a745780601f10612a4957610100808354040283529160200191612a74565b820191906000526020600020905b815481529060010190602001808311612a5757829003601f168201915b5050505050935080600401549250806003015491505091939590929450565b60055481565b6000806002544211151515612aad57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515612ae757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515612b3957600080fd5b600e5483101515612b4957600080fd5b6010600084815260200190815260200160002091503373ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bbc57600080fd5b600082600401541115612c4d57600b60008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612c448160030154600354846004015402613ec5565b81600301819055505b60008260030181905550600082600401819055506040805190810160405280600581526020017f7469746c65000000000000000000000000000000000000000000000000000000815250826001019080519060200190612cae929190614eaa565b506040805190810160405280600b81526020017f6465736372697074696f6e000000000000000000000000000000000000000000815250826002019080519060200190612cfc929190614eaa565b5060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000806000806002544211151515612d5d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515612d9757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515612dea57600080fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600084600201541115612e7057600192505b600a54831015612e6f576000846001016000858152602001908152602001600020819055508280600101935050612e3d565b5b60008460030181905550600154846000018190555042846004018190555060008460050181905550600184600101600080815260200190815260200160002081905550600960008081526020019081526020016000209150816001015484600201819055503373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515612f8557600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060015481600001541415612f8457612f6285613d51565b60018460050181905550612f7b81600501546001613ec5565b81600501819055505b5b5050505050565b6000612fa3612f9e6028546001613ec5565b614002565b905090565b612fb0614f70565b601260158060200260405190810160405280929190826015801561301f576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612fd5575b5050505050905090565b60008060006103e79250600091505b600c548210156130cb57600182600c54030390508373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156130be578092506130cb565b8180600101925050613038565b5050919050565b60006130dc614e86565b6000600254421115156130ee57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614151561312857600080fd5b61315461314d3073ffffffffffffffffffffffffffffffffffffffff1631605a613e8a565b6064613efc565b9250602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6131be6131b73073ffffffffffffffffffffffffffffffffffffffff16316005613e8a565b6064613efc565b9081150290604051600060405180830381858888f193505050505061014060405190810160405280601e60ff168152602001601460ff168152602001600a60ff168152602001600860ff168152602001600760ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152509150600090505b600a81101561334457600060128260158110151561326957fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613337576012816015811015156132b757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61331b613314868686600a8110151561330757fe5b602002015160ff16613e8a565b6064613efc565b9081150290604051600060405180830381858888f19350505050505b808060010191505061324f565b61334c614102565b505050565b60035481565b6000806000600254421115151561336d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156133a757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156133f957600080fd5b600c548410151561340957600080fd5b600d6000858152602001908152602001600020925061342784611da4565b34108061348357508260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561348d57600080fd5b8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6135016134fc87611da4565b611fd5565b9081150290604051600060405180830381858888f193505050505060008273ffffffffffffffffffffffffffffffffffffffff1614151561358f578173ffffffffffffffffffffffffffffffffffffffff166108fc61357361356c61356588611da4565b6037613e8a565b6064613efc565b9081150290604051600060405180830381858888f19350505050505b61359833613d51565b6135a182613d51565b6135b8836002015484600301548560040154613fbe565b90506135c5816001613ec5565b8360020181905550428360030181905550338360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9250600091505b600e548210156136b457600f600083815260200190815260200160002090506000816003015414806136835750600a8160040154105b15613690578193506136b5565b82816003015410156136a757806003015492508193505b818060010192505061364d565b5b50505090565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561371757600080fd5b6000809054906101000a900460ff1615151561373257600080fd5b61373a614102565b60016000806101000a81548160ff021916908315150217905550565b600254421115151561376757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156137a157600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156137f357600080fd5b6137fb612f8c565b341015151561380957600080fd5b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613850602854614002565b9081150290604051600060405180830381858888f193505050505033602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506138b96028546001613ec5565b602881905550565b60285481565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006060806000806000600e548710151561390757600080fd5b600f600088815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156139db5780601f106139b0576101008083540402835291602001916139db565b820191906000526020600020905b8154815290600101906020018083116139be57829003601f168201915b50505050509450806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613a7a5780601f10613a4f57610100808354040283529160200191613a7a565b820191906000526020600020905b815481529060010190602001808311613a5d57829003601f168201915b5050505050935080600401549250806003015491505091939590929450565b6000806000806002544211151515613ab057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515613aea57600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515613b3c57600080fd5b600e5485101515613b4c57600080fd5b600086111515613b5b57600080fd5b60106000868152602001908152602001600020935083600401548611151515613b8357600080fd5b836003015486023410151515613b9857600080fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250613be7868560030154613e8a565b9150613bf282611fd5565b9050602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613cb4573d6000803e3d6000fd5b50613cc783600301546003548802613ec5565b8360030181905550613cdd846004015487613ee3565b84600401819055508360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613d2e846002613efc565b9081150290604051600060405180830381858888f1935050505050505050505050565b6000806000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015442111515613da657600080fd5b6000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141515613e8457600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250613e41428460040154613ee3565b9150613e4c84611cff565b90504283600401819055506000811115613e8357613e6a8183613e8a565b9050613e7a836003015482613ec5565b83600301819055505b5b50505050565b6000806000841415613e9f5760009150613ebe565b8284029050828482811515613eb057fe5b04141515613eba57fe5b8091505b5092915050565b6000808284019050838110151515613ed957fe5b8091505092915050565b6000828211151515613ef157fe5b818303905092915050565b6000808284811515613f0a57fe5b0490508091505092915050565b600080600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600581600501541015613f8057613f7983600a836005015402613ec5565b9150613fb7565b600a81600501541015613fa857613fa183600a836005015402603201613ec5565b9150613fb6565b613fb38360c8613ec5565b91505b5b5092915050565b6000806000613fcd4286613ee3565b9150613fd98285613efc565b905080861015613fec5760009250613ff9565b613ff68682613ee3565b92505b50509392505050565b60006140136006548360020a613e8a565b9050919050565b6000818310614029578161402b565b825b905092915050565b600080600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020935060009250600091505b600a548210156140dd576009600083815260200190815260200160002090506140ce836140c9866001016000868152602001908152602001600020548460010154613e8a565b613ec5565b92508180600101925050614083565b8284600201819055506007548311156140fb576140f985614131565b505b5050505050565b61410e42600554613ec5565b6002819055506141216001546001613ec5565b60018190555061412f6143fd565b565b60008060008061413f614f70565b60009350600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600b60006012601360158110151561419857fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020915081600201548360020154101561420f57600094506143f4565b601260158060200260405190810160405280929190826015801561427e576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311614234575b5050505050905061428e86614b8c565b15156142ed57858160146015811015156142a457fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506142e88160006014614c22565b6142fb565b6142fa8160006013614c22565b5b600093505b60158410156143ef5760128460158110151561431857fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16818560158110151561435e57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff161415156143e257808460158110151561438e57fe5b60200201516012856015811015156143a257fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8380600101945050614300565b600194505b50505050919050565b6000602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660288190555060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016096815260200160018152602001428152602001600454815250600d600080815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160af815260200160018152602001428152602001600454815250600d60006001815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160c8815260200160018152602001428152602001600454815250600d60006002815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160e1815260200160018152602001428152602001600454815250600d60006003815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a0604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160fa815260200160028152602001428152602001600454815250600d60006004815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040155905050600090505b600e54811015614b1d5760a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016040805190810160405280600581526020017f7469746c6500000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f6465736372697074696f6e0000000000000000000000000000000000000000008152508152602001600081526020016000815250600f600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190614985929190614f94565b5060408201518160020190805190602001906149a2929190614f94565b50606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016040805190810160405280600581526020017f7469746c6500000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f6465736372697074696f6e00000000000000000000000000000000000000000081525081526020016000815260200160008152506010600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190614adb929190614f94565b506040820151816002019080519060200190614af8929190614f94565b506060820151816003015560808201518160040155905050808060010191505061485a565b600090505b601154811015614b89576000601282601581101515614b3d57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080600101915050614b22565b50565b600080600090505b6014811015614c1757601281601581101515614bac57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614c0a5760019150614c1c565b8080600101915050614b94565b600091505b50919050565b60008060008085935084925082841415614c3b57614e7d565b866002878703811515614c4a57fe5b058701601581101515614c5957fe5b60200201519150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090505b8284131515614e54575b8060020154600b60008987601581101515614cc357fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115614d19578380600101945050614cac565b5b600b60008885601581101515614d2c57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015481600201541115614d8857828060019003935050614d1a565b8284131515614e4f578683601581101515614d9f57fe5b60200201518785601581101515614db257fe5b60200201518886601581101515614dc557fe5b602002018986601581101515614dd757fe5b602002018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250505083806001019450508280600190039350505b614ca2565b82861215614e6857614e67878785614c22565b5b84841215614e7c57614e7b878587614c22565b5b5b50505050505050565b61014060405190810160405280600a90602082028038833980820191505090505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614eeb57805160ff1916838001178555614f19565b82800160010185558215614f19579182015b82811115614f18578251825591602001919060010190614efd565b5b509050614f269190615014565b5090565b61010060405190810160405280600890602082028038833980820191505090505090565b6060604051908101604052806000815260200160008152602001600081525090565b6102a060405190810160405280601590602082028038833980820191505090505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614fd557805160ff1916838001178555615003565b82800160010185558215615003579182015b82811115615002578251825591602001919060010190614fe7565b5b5090506150109190615014565b5090565b61503691905b8082111561503257600081600090555060010161501a565b5090565b905600a165627a7a723058208741b017cd7a7acc68438c65607c89c61a01cbfd59575f7d51e634f5f1195a430029
Deployed Bytecode
0x6080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308d317dd146101b95780630900f010146101f05780630dda20d11461023357806312065fe0146102f6578063158ef93e146103215780632243fb1514610350578063294cf912146103a757806329dcb0cf146103e85780632aa531d91461041357806339901be8146104b55780633bc0461a1461054557806341fe0a24146105865780634e2786fb1461063c5780634ec2d0b6146106675780634f9d482a146106cd57806368381b96146106f8578063718b0a321461072357806377c936621461075057806378473485146107a75780637892fd29146108fa5780637a6e9e4114610925578063898644cc146109525780639f8ff91d14610995578063a1a200c5146109c0578063ad5b718914610a13578063ba13a57214610a6a578063cee0b4fe14610a81578063d223926f14610aac578063d60207c714610acc578063d65ab5f214610af7578063e3e9bc3f14610b0e578063ea6f1c4a14610b18578063f53d0a8e14610b43578063f737f27414610b9a578063f9d7020014610ced575b005b3480156101c557600080fd5b506101ee6004803603810190808035906020019092919080359060200190929190505050610d17565b005b3480156101fc57600080fd5b50610231600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d3565b005b34801561023f57600080fd5b506102f46004803603810190808035906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611685565b005b34801561030257600080fd5b5061030b611cce565b6040518082815260200191505060405180910390f35b34801561032d57600080fd5b50610336611ced565b604051808215151515815260200191505060405180910390f35b34801561035c57600080fd5b50610391600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cff565b6040518082815260200191505060405180910390f35b3480156103b357600080fd5b506103d260048036038101908080359060200190929190505050611da4565b6040518082815260200191505060405180910390f35b3480156103f457600080fd5b506103fd611de3565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b50610454600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611de9565b6040518087815260200186815260200185815260200184600860200280838360005b83811015610491578082015181840152602081019050610476565b50505050905001838152602001828152602001965050505050505060405180910390f35b3480156104c157600080fd5b506104e060048036038101908080359060200190929190505050611f0b565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b34801561055157600080fd5b5061057060048036038101908080359060200190929190505050611fd5565b6040518082815260200191505060405180910390f35b61063a6004803603810190808035906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611ff3565b005b34801561064857600080fd5b5061065161224a565b6040518082815260200191505060405180910390f35b34801561067357600080fd5b506106cb60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612250565b005b3480156106d957600080fd5b506106e26125a6565b6040518082815260200191505060405180910390f35b34801561070457600080fd5b5061070d6125ac565b6040518082815260200191505060405180910390f35b34801561072f57600080fd5b5061074e60048036038101908080359060200190929190505050612629565b005b34801561075c57600080fd5b506107656128c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107b357600080fd5b506107d2600480360381019080803590602001909291905050506128e7565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001858152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015610854578082015181840152602081019050610839565b50505050905090810190601f1680156108815780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156108ba57808201518184015260208101905061089f565b50505050905090810190601f1680156108e75780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561090657600080fd5b5061090f612a93565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b5061095060048036038101908080359060200190929190505050612a99565b005b34801561095e57600080fd5b50610993600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d46565b005b3480156109a157600080fd5b506109aa612f8c565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b506109d5612fa8565b6040518082601560200280838360005b83811015610a005780820151818401526020810190506109e5565b5050505090500191505060405180910390f35b348015610a1f57600080fd5b50610a54600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613029565b6040518082815260200191505060405180910390f35b348015610a7657600080fd5b50610a7f6130d2565b005b348015610a8d57600080fd5b50610a96613351565b6040518082815260200191505060405180910390f35b610aca60048036038101908080359060200190929190505050613357565b005b348015610ad857600080fd5b50610ae161361f565b6040518082815260200191505060405180910390f35b348015610b0357600080fd5b50610b0c6136bb565b005b610b16613756565b005b348015610b2457600080fd5b50610b2d6138c1565b6040518082815260200191505060405180910390f35b348015610b4f57600080fd5b50610b586138c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba657600080fd5b50610bc5600480360381019080803590602001909291905050506138ed565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001858152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015610c47578082015181840152602081019050610c2c565b50505050905090810190601f168015610c745780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b83811015610cad578082015181840152602081019050610c92565b50505050905090810190601f168015610cda5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b610d156004803603810190808035906020019092919080359060200190929190505050613a99565b005b60008060008060006002544211151515610d3057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515610d6a57600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515610dbc57600080fd5b6000806000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600854836002015411151561107857600e5489101515610e2157600080fd5b60008a111515610e3057600080fd5b600f60008a8152602001908152602001600020975087600401548a11151515610e5857600080fd5b610e6133613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209650600b60008960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002095506003548a02876003015410151515610f1e57600080fd5b610f2c8a8960030154613e8a565b9450610f3785611fd5565b9350602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505050610ffb86600301546003548c02613ec5565b866003018190555061101587600301546003548c02613ee3565b876003018190555061102b88600401548b613ee3565b88600401819055503373ffffffffffffffffffffffffffffffffffffffff166108fc611058876002613efc565b9081150290604051600060405180830381858888f19350505050506113c7565b6000915060006012600960158110151561108e57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561115157600b6000601260096015811015156110e157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061114e81600201546005613e8a565b91505b8183600201541115151561116457600080fd5b600e548910151561117457600080fd5b60008a11151561118357600080fd5b600f60008a8152602001908152602001600020975087600401548a111515156111ab57600080fd5b6111b433613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209650600b60008960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002095506003548a0287600301541015151561127157600080fd5b61127f8a8960030154613e8a565b945061128a85611fd5565b9350602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050505061134e86600301546003548c02613ec5565b866003018190555061136887600301546003548c02613ee3565b876003018190555061137e88600401548b613ee3565b88600401819055503373ffffffffffffffffffffffffffffffffffffffff166108fc6113ab876002613efc565b9081150290604051600060405180830381858888f19350505050505b50505050505050505050565b60006113dd614e86565b6000602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b62014370600254034210151561145057600080fd5b61147c6114753073ffffffffffffffffffffffffffffffffffffffff1631605a613e8a565b6064613efc565b9250602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6114e66114df3073ffffffffffffffffffffffffffffffffffffffff16316005613e8a565b6064613efc565b9081150290604051600060405180830381858888f193505050505061014060405190810160405280601e60ff168152602001601460ff168152602001600a60ff168152602001600860ff168152602001600760ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152509150600090505b600a81101561166c57600060128260158110151561159157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561165f576012816015811015156115df57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61164361163c868686600a8110151561162f57fe5b602002015160ff16613e8a565b6064613efc565b9081150290604051600060405180830381858888f19350505050505b8080600101915050611577565b8373ffffffffffffffffffffffffffffffffffffffff16ff5b600080600080600254421115151561169c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156116d657600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561172857600080fd5b6000806000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060085483600201541115156119ab576103e88b1015151561178e57600080fd5b60008a11151561179d57600080fd5b6117a633613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002096506003548b02876003015410156117fc57600080fd5b6118046125ac565b9550601060008781526020019081526020016000209450600a8560040154118015611833575084600301548a10155b1561183d57600080fd5b60008560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561190557600b60008660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002093506118fc8460030154600354876004015402613ec5565b84600301819055505b338560000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089856003018190555088856001019080519060200190611969929190614eaa565b5087856002019080519060200190611982929190614eaa565b508a856004018190555061199e87600301546003548d02613ee3565b8760030181905550611cc1565b600091506000601260096015811015156119c157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a8457600b600060126009601581101515611a1457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611a8181600201546005613e8a565b91505b81836002015411151515611a9757600080fd5b6103e88b10151515611aa857600080fd5b60008a111515611ab757600080fd5b611ac033613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002096506003548b0287600301541015611b1657600080fd5b611b1e6125ac565b9550601060008781526020019081526020016000209450600a8560040154118015611b4d575084600301548a10155b15611b5757600080fd5b60008560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c1f57600b60008660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350611c168460030154600354876004015402613ec5565b84600301819055505b338560000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089856003018190555088856001019080519060200190611c83929190614eaa565b5087856002019080519060200190611c9c929190614eaa565b508a8560040181905550611cb887600301546003548d02613ee3565b87600301819055505b5050505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000809054906101000a900460ff1681565b600080600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250611d54858460020154613f17565b9350611d5f85613029565b91506103e782141515611d9c57600d60008381526020019081526020016000209050611d99611d92858360010154613e8a565b6064613efc565b93505b505050919050565b600080600d60008481526020019081526020016000209050611ddb611dd6826002015483600301548460040154613fbe565b614002565b915050919050565b60025481565b6000806000611df6614f2a565b600080600080600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506001548260000154141515611e7857600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b611e888260030154600354613efc565b975081600401549650611e9f898360020154613f17565b955060009050600090505b600a54811015611eee57816001016000828152602001908152602001600020548582600881101515611ed857fe5b6020020181815250508080600101915050611eaa565b611ef789613029565b935081600501549250505091939550919395565b600080600080600080600c5487101515611f2457600080fd5b600d600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550600d6000888152602001908152602001600020600101549450600d6000888152602001908152602001600020600201549350600d6000888152602001908152602001600020600301549250611fb187611da4565b9150600d600088815260200190815260200160002060040154905091939550919395565b6000611fec611fe5836005613e8a565b6064613efc565b9050919050565b6000806000600254421115151561200957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614151561204357600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561209557600080fd5b6000861115156120a457600080fd5b6103e887101515156120b557600080fd5b34868802111515156120c657600080fd5b6120ce61361f565b9250600f60008481526020019081526020016000209150600a82600401541180156120fd575081600301548611155b1561210757600080fd5b61211982600401548360030154613e8a565b905060008260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156121ba578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050505b338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508582600301819055508482600101908051906020019061221e929190614eaa565b5083826002019080519060200190612237929190614eaa565b5086826004018190555050505050505050565b60015481565b600061225a614f4e565b6000806000600254421115151561227057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156122aa57600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156122fc57600080fd5b600a54865114151561230d57600080fd5b600094505b600a548510156123b2576009600086815260200190815260200160002060606040519081016040529081600082015481526020016001820154815260200160028201548152505093508360400151868681518110151561236e57fe5b90602001906020020151118061239b57506000868681518110151561238f57fe5b90602001906020020151105b156123a557600080fd5b8480600101955050612312565b6123bb33613d51565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002092506000915060009050600094505b600a5485101561249c57858581518110151561242157fe5b906020019060200201519050600081111561248f5760096000868152602001908152602001600020606060405190810160405290816000820154815260200160018201548152602001600282015481525050935061248c82612487866000015184613e8a565b613ec5565b91505b8480600101955050612409565b6124a882600354613e8a565b915081836003015410156124bb57600080fd5b600094505b600a5485101561257f5785858151811015156124d857fe5b90602001906020020151905060008111156125725760096000868152602001908152602001600020606060405190810160405290816000820154815260200160018201548152602001600282015481525050935061255884604001516125538560010160008981526020019081526020016000205484613ec5565b61401a565b836001016000878152602001908152602001600020819055505b84806001019550506124c0565b61258d836003015483613ee3565b836003018190555061259e33614033565b505050505050565b60045481565b60008060008060009250600091505b600e54821015612622576010600083815260200190815260200160002090506000816003015414806125f15750600a8160040154105b156125fe57819350612623565b828160030154111561261557806003015492508193505b81806001019250506125bb565b5b50505090565b600080600254421115151561263d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614151561267757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156126c957600080fd5b600e54831015156126d957600080fd5b600f600084815260200190815260200160002091503373ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561274c57600080fd5b6000826004015411156127c85761276b82600401548360030154613e8a565b90508160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050505b60008260030181905550600082600401819055506040805190810160405280600581526020017f7469746c65000000000000000000000000000000000000000000000000000000815250826001019080519060200190612829929190614eaa565b506040805190810160405280600b81526020017f6465736372697074696f6e000000000000000000000000000000000000000000815250826002019080519060200190612877929190614eaa565b5060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006060806000806000600e548710151561290157600080fd5b6010600088815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129d55780601f106129aa576101008083540402835291602001916129d5565b820191906000526020600020905b8154815290600101906020018083116129b857829003601f168201915b50505050509450806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a745780601f10612a4957610100808354040283529160200191612a74565b820191906000526020600020905b815481529060010190602001808311612a5757829003601f168201915b5050505050935080600401549250806003015491505091939590929450565b60055481565b6000806002544211151515612aad57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515612ae757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515612b3957600080fd5b600e5483101515612b4957600080fd5b6010600084815260200190815260200160002091503373ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bbc57600080fd5b600082600401541115612c4d57600b60008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612c448160030154600354846004015402613ec5565b81600301819055505b60008260030181905550600082600401819055506040805190810160405280600581526020017f7469746c65000000000000000000000000000000000000000000000000000000815250826001019080519060200190612cae929190614eaa565b506040805190810160405280600b81526020017f6465736372697074696f6e000000000000000000000000000000000000000000815250826002019080519060200190612cfc929190614eaa565b5060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000806000806002544211151515612d5d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515612d9757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515612dea57600080fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600084600201541115612e7057600192505b600a54831015612e6f576000846001016000858152602001908152602001600020819055508280600101935050612e3d565b5b60008460030181905550600154846000018190555042846004018190555060008460050181905550600184600101600080815260200190815260200160002081905550600960008081526020019081526020016000209150816001015484600201819055503373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515612f8557600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060015481600001541415612f8457612f6285613d51565b60018460050181905550612f7b81600501546001613ec5565b81600501819055505b5b5050505050565b6000612fa3612f9e6028546001613ec5565b614002565b905090565b612fb0614f70565b601260158060200260405190810160405280929190826015801561301f576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612fd5575b5050505050905090565b60008060006103e79250600091505b600c548210156130cb57600182600c54030390508373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156130be578092506130cb565b8180600101925050613038565b5050919050565b60006130dc614e86565b6000600254421115156130ee57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614151561312857600080fd5b61315461314d3073ffffffffffffffffffffffffffffffffffffffff1631605a613e8a565b6064613efc565b9250602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6131be6131b73073ffffffffffffffffffffffffffffffffffffffff16316005613e8a565b6064613efc565b9081150290604051600060405180830381858888f193505050505061014060405190810160405280601e60ff168152602001601460ff168152602001600a60ff168152602001600860ff168152602001600760ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152509150600090505b600a81101561334457600060128260158110151561326957fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613337576012816015811015156132b757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61331b613314868686600a8110151561330757fe5b602002015160ff16613e8a565b6064613efc565b9081150290604051600060405180830381858888f19350505050505b808060010191505061324f565b61334c614102565b505050565b60035481565b6000806000600254421115151561336d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156133a757600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156133f957600080fd5b600c548410151561340957600080fd5b600d6000858152602001908152602001600020925061342784611da4565b34108061348357508260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561348d57600080fd5b8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6135016134fc87611da4565b611fd5565b9081150290604051600060405180830381858888f193505050505060008273ffffffffffffffffffffffffffffffffffffffff1614151561358f578173ffffffffffffffffffffffffffffffffffffffff166108fc61357361356c61356588611da4565b6037613e8a565b6064613efc565b9081150290604051600060405180830381858888f19350505050505b61359833613d51565b6135a182613d51565b6135b8836002015484600301548560040154613fbe565b90506135c5816001613ec5565b8360020181905550428360030181905550338360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9250600091505b600e548210156136b457600f600083815260200190815260200160002090506000816003015414806136835750600a8160040154105b15613690578193506136b5565b82816003015410156136a757806003015492508193505b818060010192505061364d565b5b50505090565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561371757600080fd5b6000809054906101000a900460ff1615151561373257600080fd5b61373a614102565b60016000806101000a81548160ff021916908315150217905550565b600254421115151561376757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156137a157600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156137f357600080fd5b6137fb612f8c565b341015151561380957600080fd5b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613850602854614002565b9081150290604051600060405180830381858888f193505050505033602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506138b96028546001613ec5565b602881905550565b60285481565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006060806000806000600e548710151561390757600080fd5b600f600088815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156139db5780601f106139b0576101008083540402835291602001916139db565b820191906000526020600020905b8154815290600101906020018083116139be57829003601f168201915b50505050509450806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613a7a5780601f10613a4f57610100808354040283529160200191613a7a565b820191906000526020600020905b815481529060010190602001808311613a5d57829003601f168201915b5050505050935080600401549250806003015491505091939590929450565b6000806000806002544211151515613ab057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515613aea57600080fd5b600154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515613b3c57600080fd5b600e5485101515613b4c57600080fd5b600086111515613b5b57600080fd5b60106000868152602001908152602001600020935083600401548611151515613b8357600080fd5b836003015486023410151515613b9857600080fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250613be7868560030154613e8a565b9150613bf282611fd5565b9050602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613cb4573d6000803e3d6000fd5b50613cc783600301546003548802613ec5565b8360030181905550613cdd846004015487613ee3565b84600401819055508360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613d2e846002613efc565b9081150290604051600060405180830381858888f1935050505050505050505050565b6000806000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015442111515613da657600080fd5b6000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141515613e8457600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250613e41428460040154613ee3565b9150613e4c84611cff565b90504283600401819055506000811115613e8357613e6a8183613e8a565b9050613e7a836003015482613ec5565b83600301819055505b5b50505050565b6000806000841415613e9f5760009150613ebe565b8284029050828482811515613eb057fe5b04141515613eba57fe5b8091505b5092915050565b6000808284019050838110151515613ed957fe5b8091505092915050565b6000828211151515613ef157fe5b818303905092915050565b6000808284811515613f0a57fe5b0490508091505092915050565b600080600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600581600501541015613f8057613f7983600a836005015402613ec5565b9150613fb7565b600a81600501541015613fa857613fa183600a836005015402603201613ec5565b9150613fb6565b613fb38360c8613ec5565b91505b5b5092915050565b6000806000613fcd4286613ee3565b9150613fd98285613efc565b905080861015613fec5760009250613ff9565b613ff68682613ee3565b92505b50509392505050565b60006140136006548360020a613e8a565b9050919050565b6000818310614029578161402b565b825b905092915050565b600080600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020935060009250600091505b600a548210156140dd576009600083815260200190815260200160002090506140ce836140c9866001016000868152602001908152602001600020548460010154613e8a565b613ec5565b92508180600101925050614083565b8284600201819055506007548311156140fb576140f985614131565b505b5050505050565b61410e42600554613ec5565b6002819055506141216001546001613ec5565b60018190555061412f6143fd565b565b60008060008061413f614f70565b60009350600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600b60006012601360158110151561419857fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020915081600201548360020154101561420f57600094506143f4565b601260158060200260405190810160405280929190826015801561427e576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311614234575b5050505050905061428e86614b8c565b15156142ed57858160146015811015156142a457fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506142e88160006014614c22565b6142fb565b6142fa8160006013614c22565b5b600093505b60158410156143ef5760128460158110151561431857fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16818560158110151561435e57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff161415156143e257808460158110151561438e57fe5b60200201516012856015811015156143a257fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8380600101945050614300565b600194505b50505050919050565b6000602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660288190555060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016096815260200160018152602001428152602001600454815250600d600080815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160af815260200160018152602001428152602001600454815250600d60006001815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160c8815260200160018152602001428152602001600454815250600d60006002815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160e1815260200160018152602001428152602001600454815250600d60006003815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a0604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160fa815260200160028152602001428152602001600454815250600d60006004815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040155905050600090505b600e54811015614b1d5760a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016040805190810160405280600581526020017f7469746c6500000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f6465736372697074696f6e0000000000000000000000000000000000000000008152508152602001600081526020016000815250600f600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190614985929190614f94565b5060408201518160020190805190602001906149a2929190614f94565b50606082015181600301556080820151816004015590505060a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016040805190810160405280600581526020017f7469746c6500000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f6465736372697074696f6e00000000000000000000000000000000000000000081525081526020016000815260200160008152506010600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190614adb929190614f94565b506040820151816002019080519060200190614af8929190614f94565b506060820151816003015560808201518160040155905050808060010191505061485a565b600090505b601154811015614b89576000601282601581101515614b3d57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080600101915050614b22565b50565b600080600090505b6014811015614c1757601281601581101515614bac57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614c0a5760019150614c1c565b8080600101915050614b94565b600091505b50919050565b60008060008085935084925082841415614c3b57614e7d565b866002878703811515614c4a57fe5b058701601581101515614c5957fe5b60200201519150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090505b8284131515614e54575b8060020154600b60008987601581101515614cc357fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115614d19578380600101945050614cac565b5b600b60008885601581101515614d2c57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015481600201541115614d8857828060019003935050614d1a565b8284131515614e4f578683601581101515614d9f57fe5b60200201518785601581101515614db257fe5b60200201518886601581101515614dc557fe5b602002018986601581101515614dd757fe5b602002018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250505083806001019450508280600190039350505b614ca2565b82861215614e6857614e67878785614c22565b5b84841215614e7c57614e7b878587614c22565b5b5b50505050505050565b61014060405190810160405280600a90602082028038833980820191505090505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614eeb57805160ff1916838001178555614f19565b82800160010185558215614f19579182015b82811115614f18578251825591602001919060010190614efd565b5b509050614f269190615014565b5090565b61010060405190810160405280600890602082028038833980820191505090505090565b6060604051908101604052806000815260200160008152602001600081525090565b6102a060405190810160405280601590602082028038833980820191505090505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614fd557805160ff1916838001178555615003565b82800160010185558215615003579182015b82811115615002578251825591602001919060010190614fe7565b5b5090506150109190615014565b5090565b61503691905b8082111561503257600081600090555060010161501a565b5090565b905600a165627a7a723058208741b017cd7a7acc68438c65607c89c61a01cbfd59575f7d51e634f5f1195a430029
Swarm Source
bzzr://8741b017cd7a7acc68438c65607c89c61a01cbfd59575f7d51e634f5f1195a43
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,309.32 | 0.0243 | $80.42 |
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.