Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000 DOTCH
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Balance
220,000 DOTCHValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Game
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-08-15 */ pragma solidity ^0.4.24; // King of the Crypto Hill contract by Spielley // P3D contract designed by TEAM JUST and here integrated for dividend payout purpose, not active in testnet version. // See P3D proof of concept at : https://divgarden.dvx.me/ // Or look at it's code at: https://etherscan.io/address/0xdaa282aba7f4aa757fac94024dfb89f8654582d3#code // any derivative of KOTCH is allowed if: // - 1% additional on payouts happen to original KOTCH contract creator's eth account: 0x0B0eFad4aE088a88fFDC50BCe5Fb63c6936b9220 // - contracts are not designed or used to scam people or mallpractices // This game is intended for fun, Spielley is not liable for any bugs the contract may contain. // Don't play with crypto you can't afford to lose // ---------------------------------------------------------------------------- // Safe maths // ---------------------------------------------------------------------------- library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a); c = a - b; } function mul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function div(uint a, uint b) internal pure returns (uint c) { require(b > 0); c = a / b; } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md // ---------------------------------------------------------------------------- contract ERC20Interface { function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } // ---------------------------------------------------------------------------- // Contract function to receive approval and execute function in one call // // Borrowed from MiniMeToken // ---------------------------------------------------------------------------- contract ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes data) public; } // ---------------------------------------------------------------------------- // Owned contract // ---------------------------------------------------------------------------- contract Owned { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() public { owner = 0x0B0eFad4aE088a88fFDC50BCe5Fb63c6936b9220; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } // ---------------------------------------------------------------------------- // ERC20 Token, with the addition of symbol, name and decimals and a // fixed supply // ---------------------------------------------------------------------------- contract FixedSupplyToken is ERC20Interface, Owned { using SafeMath for uint; string public symbol; string public name; uint8 public decimals; uint _totalSupply; mapping(address => uint) balances; mapping(address => mapping(address => uint)) allowed; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ constructor() public { symbol = "DOTCH"; name = "Diamond Of The Crypto Hill"; decimals = 0; _totalSupply = 10000000000; balances[this] = _totalSupply; emit Transfer(address(0),this, _totalSupply); } // ------------------------------------------------------------------------ // Total supply // ------------------------------------------------------------------------ function totalSupply() public view returns (uint) { return _totalSupply.sub(balances[address(0)]); } // ------------------------------------------------------------------------ // Get the token balance for account `tokenOwner` // ------------------------------------------------------------------------ function balanceOf(address tokenOwner) public view returns (uint balance) { return balances[tokenOwner]; } // ------------------------------------------------------------------------ // Transfer the balance from token owner's account to `to` account // - Owner's account must have sufficient balance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transfer(address to, uint tokens) public returns (bool success) { balances[msg.sender] = balances[msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(msg.sender, to, tokens); return true; } // ------------------------------------------------------------------------ // Token owner can approve for `spender` to transferFrom(...) `tokens` // from the token owner's account // // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // recommends that there are no checks for the approval double-spend attack // as this should be implemented in user interfaces // ------------------------------------------------------------------------ function approve(address spender, uint tokens) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); return true; } // ------------------------------------------------------------------------ // Transfer `tokens` from the `from` account to the `to` account // // The calling account must already have sufficient tokens approve(...)-d // for spending from the `from` account and // - From account must have sufficient balance to transfer // - Spender must have sufficient allowance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transferFrom(address from, address to, uint tokens) public returns (bool success) { balances[from] = balances[from].sub(tokens); allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(from, to, tokens); return true; } // ------------------------------------------------------------------------ // Returns the amount of tokens approved by the owner that can be // transferred to the spender's account // ------------------------------------------------------------------------ function allowance(address tokenOwner, address spender) public view returns (uint remaining) { return allowed[tokenOwner][spender]; } // ------------------------------------------------------------------------ // Token owner can approve for `spender` to transferFrom(...) `tokens` // from the token owner's account. The `spender` contract function // `receiveApproval(...)` is then executed // ------------------------------------------------------------------------ function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data); return true; } // ------------------------------------------------------------------------ // Owner can transfer out any accidentally sent ERC20 tokens // ------------------------------------------------------------------------ function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) { return ERC20Interface(tokenAddress).transfer(owner, tokens); } } interface HourglassInterface { function() payable external; function buy(address _playerAddress) payable external returns(uint256); function sell(uint256 _amountOfTokens) external; function reinvest() external; function withdraw() external; function exit() external; function dividendsOf(address _playerAddress) external view returns(uint256); function balanceOf(address _playerAddress) external view returns(uint256); function transfer(address _toAddress, uint256 _amountOfTokens) external returns(bool); function stakingRequirement() external view returns(uint256); } contract Game is FixedSupplyToken { HourglassInterface constant P3Dcontract_ = HourglassInterface(0xB3775fB83F7D12A36E0475aBdD1FCA35c091efBe); struct Village { address owner; uint defending; uint lastcollect; uint beginnerprotection; } struct Variables { uint nextVillageId; uint bpamount; uint totalsupplyGOTCH; uint GOTCHatcontract; uint previousethamount; uint solsforhire; uint solslastupdate; uint soldierreplenishrate; uint soldierprice; uint lastblockpayout; uint blocksbeforenewpay; uint ATPO; uint nextpayamount; uint nextowneramount; } struct Ownables { address hillowner; uint soldiersdefendinghill; mapping(address => uint256) soldiers; mapping(uint256 => Village) villages; mapping(address => uint256) GOTCH; mapping(address => uint256) redeemedvils; bool ERCtradeactive; uint roundlength; } struct Marketoffer{ address placedby; uint256 amountdotch; uint256 wantsthisamtweiperdotch; } event villtakeover(address from, address to, uint villageint); event hilltakeover(address from, address to); event battle(address attacker, uint pointsattacker, address defender, uint pointsdefender); event dotchsale( address seller,uint price, address taker , uint256 amount); uint256 public ethforp3dbuy; uint256 public round; uint256 public nextmarketoffer; uint256 public nextroundlength = 10000000000000000000000; uint256 public nextroundtotalsupplyGOTCH = 10000; uint256 public nextroundGOTCHatcontract = 10000; uint256 public nextroundsolsforhire = 100; uint256 public nextroundsoldierreplenishrate = 50; uint256 public nextroundblocksbeforenewpay = 250; bool public divsforall; bool public nextroundERCtradeactive = true; mapping(uint256 => Variables) public roundvars; mapping(uint256 => Ownables) public roundownables; mapping(address => uint256) public Redeemable; mapping(uint256 => Marketoffer) public marketplace; function harvestabledivs() view public returns(uint256) { return ( P3Dcontract_.dividendsOf(address(this))) ; } function villageinfo(uint256 lookup) view public returns(address owner, uint256 soldiersdefending,uint256 lastcollect,uint256 beginnersprotection) { return ( roundownables[round].villages[lookup].owner,roundownables[round].villages[lookup].defending,roundownables[round].villages[lookup].lastcollect,roundownables[round].villages[lookup].beginnerprotection) ; } function gotchinfo(address lookup) view public returns(uint256 Gold) { return ( roundownables[round].GOTCH[lookup]) ; } function soldiersinfo(address lookup) view public returns(uint256 soldiers) { return ( roundownables[round].soldiers[lookup]) ; } function redeemablevilsinfo(address lookup) view public returns(uint256 redeemedvils) { return ( roundownables[round].redeemedvils[lookup]) ; } function playerinfo(address lookup) view public returns(uint256 redeemedvils,uint256 redeemablevils , uint256 soldiers, uint256 GOTCH) { return ( roundownables[round].redeemedvils[lookup], Redeemable[lookup], roundownables[round].soldiers[lookup], roundownables[round].GOTCH[lookup] ) ; } uint256 private div; uint256 private ethtosend; function () external payable{} // needed to receive p3d divs constructor () public { round++; roundvars[round].totalsupplyGOTCH = 10000; roundvars[round].GOTCHatcontract = 10000; roundvars[round].solsforhire = 100; roundvars[round].soldierreplenishrate = 50; roundvars[round].solslastupdate = block.number; updatesolbuyrate(); roundvars[round].lastblockpayout = block.number; roundownables[round].hillowner = msg.sender; roundvars[round].nextpayamount = 0; roundvars[round].nextowneramount = 0; roundvars[round].previousethamount = 0; roundvars[round].blocksbeforenewpay = 250; roundvars[round].bpamount = 30000; roundownables[round].ERCtradeactive = true; roundownables[round].roundlength = 10000000000000000000000; divsforall = false; } function hillpayout() internal { require(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay)); // new payout method roundvars[round].lastblockpayout = roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay); ethforp3dbuy = ethforp3dbuy.add((address(this).balance.sub(ethforp3dbuy)).div(100)); owner.transfer((address(this).balance.sub(ethforp3dbuy)).div(100)); roundvars[round].ATPO = roundvars[round].ATPO.add((address(this).balance.sub(ethforp3dbuy)).div(2)); roundownables[round].hillowner.transfer((address(this).balance.sub(ethforp3dbuy)).div(2)); } function attackhill(uint256 amtsoldiers) public payable returns(bool, uint){ require(msg.value >= 1 finney); if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay)) { hillpayout(); } require(amtsoldiers <= roundownables[round].soldiers[msg.sender]); require(amtsoldiers >= 1); if(msg.sender == roundownables[round].hillowner) { roundownables[round].soldiersdefendinghill = roundownables[round].soldiersdefendinghill.add(amtsoldiers); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); return (false, 0); } if(msg.sender != roundownables[round].hillowner) { if(roundownables[round].soldiersdefendinghill < amtsoldiers) { emit hilltakeover(roundownables[round].hillowner,msg.sender); emit battle(msg.sender,roundownables[round].soldiersdefendinghill,roundownables[round].hillowner,roundownables[round].soldiersdefendinghill); roundownables[round].hillowner = msg.sender; roundownables[round].soldiersdefendinghill = amtsoldiers.sub(roundownables[round].soldiersdefendinghill); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); return (true, roundownables[round].soldiersdefendinghill); } if(roundownables[round].soldiersdefendinghill >= amtsoldiers) { roundownables[round].soldiersdefendinghill = roundownables[round].soldiersdefendinghill.sub(amtsoldiers); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); emit battle(msg.sender,amtsoldiers,roundownables[round].hillowner,amtsoldiers); return (false, amtsoldiers); } } } function supporthill(uint256 amtsoldiers) public payable { require(msg.value >= 1 finney); require(roundownables[round].hillowner == msg.sender); require(amtsoldiers <= roundownables[round].soldiers[msg.sender]); require(amtsoldiers >= 1); roundownables[round].soldiersdefendinghill = roundownables[round].soldiersdefendinghill.add(amtsoldiers); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); } function changetradestatus(bool active) public onlyOwner { //move all eth from contract to owners address roundownables[round].ERCtradeactive = active; } function setdivsforall(bool active) public onlyOwner { //move all eth from contract to owners address divsforall = active; } function changebeginnerprotection(uint256 blockcount) public onlyOwner { roundvars[round].bpamount = blockcount; } function changesoldierreplenishrate(uint256 rate) public onlyOwner { roundvars[round].soldierreplenishrate = rate; } function updatesolsforhire() internal { roundvars[round].solsforhire = roundvars[round].solsforhire.add((block.number.sub(roundvars[round].solslastupdate)).mul(roundvars[round].nextVillageId).mul(roundvars[round].soldierreplenishrate)); roundvars[round].solslastupdate = block.number; } function updatesolbuyrate() internal { if(roundvars[round].solsforhire > roundvars[round].totalsupplyGOTCH) { roundvars[round].solsforhire = roundvars[round].totalsupplyGOTCH; } roundvars[round].soldierprice = roundvars[round].totalsupplyGOTCH.div(roundvars[round].solsforhire); if(roundvars[round].soldierprice < 1) { roundvars[round].soldierprice = 1; } } function buysoldiers(uint256 amount) public payable { require(msg.value >= 1 finney); updatesolsforhire(); updatesolbuyrate() ; require(amount <= roundvars[round].solsforhire); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].add(amount); roundvars[round].solsforhire = roundvars[round].solsforhire.sub(amount); roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].sub( amount.mul(roundvars[round].soldierprice)); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(amount.mul(roundvars[round].soldierprice)); } // found new villgage function createvillage() public payable { require(msg.value >= 10 finney); if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay)) { hillpayout(); } roundownables[round].villages[roundvars[round].nextVillageId].owner = msg.sender; roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number; roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number; roundvars[round].nextVillageId ++; roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId; Redeemable[msg.sender]++; roundownables[round].redeemedvils[msg.sender]++; } function batchcreatevillage(uint256 amt) public payable { require(msg.value >= 10 finney * amt); require(amt >= 1); require(amt <= 40); if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay)) { hillpayout(); } for(uint i=0; i< amt; i++) { roundownables[round].villages[roundvars[round].nextVillageId].owner = msg.sender; roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number; roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number; roundvars[round].nextVillageId ++; roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId; } Redeemable[msg.sender] = Redeemable[msg.sender].add(amt); roundownables[round].redeemedvils[msg.sender] = roundownables[round].redeemedvils[msg.sender].add(amt); } function cheapredeemvillage() public payable { require(msg.value >= 1 finney); require(roundownables[round].redeemedvils[msg.sender] < Redeemable[msg.sender]); roundownables[round].villages[roundvars[round].nextVillageId].owner = msg.sender; roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number; roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number; roundvars[round].nextVillageId ++; roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId; roundownables[round].redeemedvils[msg.sender]++; } function preregvills(address reg) public onlyOwner { roundownables[round].villages[roundvars[round].nextVillageId].owner = reg; roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number; roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number; roundvars[round].nextVillageId ++; roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId; } function attack(uint256 village, uint256 amtsoldiers) public payable returns(bool, uint){ require(msg.value >= 1 finney); if(block.number > roundvars[round].lastblockpayout + roundvars[round].blocksbeforenewpay) { hillpayout(); } uint bpcheck = roundownables[round].villages[village].beginnerprotection.add(roundvars[round].bpamount); require(block.number > bpcheck); require(roundownables[round].villages[village].owner != 0);// prevent from attacking a non-created village to create a village require(amtsoldiers <= roundownables[round].soldiers[msg.sender]); require(amtsoldiers >= 1); if(msg.sender == roundownables[round].villages[village].owner) { roundownables[round].villages[village].defending = roundownables[round].villages[village].defending.add(amtsoldiers); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); return (false, 0); } if(msg.sender != roundownables[round].villages[village].owner) { if(roundownables[round].villages[village].defending < amtsoldiers) { emit battle(msg.sender,roundownables[round].villages[village].defending,roundownables[round].villages[village].owner,roundownables[round].villages[village].defending); emit villtakeover(roundownables[round].villages[village].owner,msg.sender,village); roundownables[round].villages[village].owner = msg.sender; roundownables[round].villages[village].defending = amtsoldiers.sub(roundownables[round].villages[village].defending); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); collecttaxes(village); return (true, roundownables[round].villages[village].defending); } if(roundownables[round].villages[village].defending >= amtsoldiers) { emit battle(msg.sender,amtsoldiers,roundownables[round].villages[village].owner,amtsoldiers); roundownables[round].villages[village].defending = roundownables[round].villages[village].defending.sub(amtsoldiers); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); return (false, amtsoldiers); } } } function support(uint256 village, uint256 amtsoldiers) public payable { require(msg.value >= 1 finney); require(roundownables[round].villages[village].owner == msg.sender); require(roundownables[round].villages[village].owner != 0);// prevent from supporting a non-created village to create a village require(amtsoldiers <= roundownables[round].soldiers[msg.sender]); require(amtsoldiers >= 1); roundownables[round].villages[village].defending = roundownables[round].villages[village].defending.add(amtsoldiers); roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers); } function renewbeginnerprotection(uint256 village) public payable { require(msg.value >= (roundvars[round].nextVillageId.sub(village)).mul(1 finney) );// roundownables[round].villages[village].beginnerprotection = block.number; } function batchcollecttaxes(uint256 a, uint256 b , uint256 c , uint256 d , uint256 e , uint256 f , uint256 g, uint256 h, uint256 i, uint256 j) public payable {// payed transaction // a require(msg.value >= 10 finney); require(roundownables[round].villages[a].owner == msg.sender); require(roundownables[round].villages[b].owner == msg.sender); require(roundownables[round].villages[c].owner == msg.sender); require(roundownables[round].villages[d].owner == msg.sender); require(roundownables[round].villages[e].owner == msg.sender); require(roundownables[round].villages[f].owner == msg.sender); require(roundownables[round].villages[g].owner == msg.sender); require(roundownables[round].villages[h].owner == msg.sender); require(roundownables[round].villages[i].owner == msg.sender); require(roundownables[round].villages[j].owner == msg.sender); require(block.number > roundownables[round].villages[a].lastcollect); require(block.number > roundownables[round].villages[b].lastcollect); require(block.number > roundownables[round].villages[c].lastcollect); require(block.number > roundownables[round].villages[d].lastcollect); require(block.number > roundownables[round].villages[e].lastcollect); require(block.number > roundownables[round].villages[f].lastcollect); require(block.number > roundownables[round].villages[g].lastcollect); require(block.number > roundownables[round].villages[h].lastcollect); require(block.number > roundownables[round].villages[i].lastcollect); require(block.number > roundownables[round].villages[j].lastcollect); uint256 test = (block.number.sub(roundownables[round].villages[a].lastcollect)).mul((roundvars[round].nextVillageId.sub(a))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[a].lastcollect = block.number; //b test = (block.number.sub(roundownables[round].villages[b].lastcollect)).mul((roundvars[round].nextVillageId.sub(b))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[b].lastcollect = block.number; //c test = (block.number.sub(roundownables[round].villages[c].lastcollect)).mul((roundvars[round].nextVillageId.sub(c))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[c].lastcollect = block.number; //j test = (block.number.sub(roundownables[round].villages[j].lastcollect)).mul((roundvars[round].nextVillageId.sub(j))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[j].lastcollect = block.number; //d test = (block.number.sub(roundownables[round].villages[d].lastcollect)).mul((roundvars[round].nextVillageId.sub(d))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[d].lastcollect = block.number; //e test = (block.number.sub(roundownables[round].villages[e].lastcollect)).mul((roundvars[round].nextVillageId.sub(e))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[e].lastcollect = block.number; //f test = (block.number.sub(roundownables[round].villages[f].lastcollect)).mul((roundvars[round].nextVillageId.sub(f))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[f].lastcollect = block.number; //g test = (block.number.sub(roundownables[round].villages[g].lastcollect)).mul((roundvars[round].nextVillageId.sub(g))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[g].lastcollect = block.number; //h test = (block.number.sub(roundownables[round].villages[h].lastcollect)).mul((roundvars[round].nextVillageId.sub(h))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[h].lastcollect = block.number; //i test = (block.number.sub(roundownables[round].villages[i].lastcollect)).mul((roundvars[round].nextVillageId.sub(i))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[i].lastcollect = block.number; } function collecttaxes(uint256 village) public payable returns (uint){// payed transaction // require(msg.value >= 1 finney); if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay)) { hillpayout(); } require(roundownables[round].villages[village].owner == msg.sender); require(block.number > roundownables[round].villages[village].lastcollect); uint256 test = (block.number.sub(roundownables[round].villages[village].lastcollect)).mul((roundvars[round].nextVillageId.sub(village))); if(roundvars[round].GOTCHatcontract < test ) { roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(test); roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test); } roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test); roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test); roundownables[round].villages[village].lastcollect = block.number; // if contract doesnt have the amount, create new return test; } function sellDOTCH(uint amt) payable public { require(msg.value >= 1 finney); require(roundownables[round].ERCtradeactive == true); require(roundownables[round].GOTCH[this]>= amt.mul(10000)); require(balances[msg.sender] >= amt); require(amt >= 1); balances[this] = balances[this].add(amt); balances[msg.sender] = balances[msg.sender].sub(amt); emit Transfer(msg.sender,this, amt); roundownables[round].GOTCH[this] = roundownables[round].GOTCH[this].sub(amt.mul(10000)); roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(amt.mul(10000)); } function buyDOTCH(uint amt) payable public { require(msg.value >= 1 finney); require(roundownables[round].ERCtradeactive == true); require(balances[this]>= amt); require(roundownables[round].GOTCH[msg.sender] >= amt.mul(10000)); require(amt >= 1); balances[this] = balances[this].sub(amt); balances[msg.sender] = balances[msg.sender].add(amt); emit Transfer(this,msg.sender, amt); roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].sub(amt.mul(10000)); roundownables[round].GOTCH[this] = roundownables[round].GOTCH[this].add(amt.mul(10000)); } //p3d function buyp3d(uint256 amt) internal{ P3Dcontract_.buy.value(amt)(this); } function claimdivs() internal{ P3Dcontract_.withdraw(); } event onHarvest( address customerAddress, uint256 amount ); function Divs() public payable{ require(msg.sender == roundownables[round].hillowner); claimdivs(); msg.sender.transfer(div); emit onHarvest(msg.sender,div); } function Divsforall() public payable{ require(divsforall = true); require(msg.value >= 1 finney); div = harvestabledivs(); require(div > 0); claimdivs(); msg.sender.transfer(div); emit onHarvest(msg.sender,div); } function Expand() public { buyp3d(ethforp3dbuy); ethforp3dbuy = 0; } //marketplace functions function placeoffer(uint256 dotchamount, uint256 askingpriceinwei) payable public{ require(dotchamount > 0); require(askingpriceinwei > 0); require(balances[msg.sender] >= dotchamount); require(msg.value >= 1 finney); balances[msg.sender] = balances[msg.sender].sub(dotchamount); balances[this] = balances[this].add(dotchamount); emit Transfer(msg.sender,this, dotchamount); marketplace[nextmarketoffer].placedby = msg.sender; marketplace[nextmarketoffer].amountdotch = dotchamount; marketplace[nextmarketoffer].wantsthisamtweiperdotch = askingpriceinwei; nextmarketoffer++; } function adddotchtooffer(uint256 ordernumber , uint256 dotchamount) public { require(dotchamount > 0); require(msg.sender == marketplace[ordernumber].placedby); require(balances[msg.sender] >= dotchamount); balances[msg.sender] = balances[msg.sender].sub(dotchamount); balances[this] = balances[this].add(dotchamount); emit Transfer(msg.sender,this, dotchamount); marketplace[ordernumber].amountdotch = marketplace[ordernumber].amountdotch.add(dotchamount); } function removedotchtooffer(uint256 ordernumber , uint256 dotchamount) public { require(dotchamount > 0); require(msg.sender == marketplace[ordernumber].placedby); require(balances[this] >= dotchamount); balances[msg.sender] = balances[msg.sender].add(dotchamount); balances[this] = balances[this].sub(dotchamount); emit Transfer(this,msg.sender, dotchamount); marketplace[ordernumber].amountdotch = marketplace[ordernumber].amountdotch.sub(dotchamount); } function offerchangeprice(uint256 ordernumber ,uint256 price ) public { require(price > 0); require(msg.sender == marketplace[ordernumber].placedby); marketplace[ordernumber].wantsthisamtweiperdotch = price; } function takeoffer(uint256 ordernumber ,uint256 amtdotch ) public payable { require(msg.value >= marketplace[ordernumber].wantsthisamtweiperdotch.mul(amtdotch)); require(amtdotch > 0); require(marketplace[ordernumber].amountdotch >= amtdotch); require(msg.sender != marketplace[ordernumber].placedby); require(balances[this] >= amtdotch); marketplace[ordernumber].amountdotch = marketplace[ordernumber].amountdotch.sub(amtdotch); balances[msg.sender] = balances[msg.sender].add(amtdotch); balances[this] = balances[this].sub(amtdotch); emit Transfer(this,msg.sender, amtdotch); emit dotchsale(marketplace[ordernumber].placedby,marketplace[ordernumber].wantsthisamtweiperdotch, msg.sender, amtdotch); marketplace[ordernumber].placedby.transfer(marketplace[ordernumber].wantsthisamtweiperdotch.mul(amtdotch)); } // new round function function startnewround() public { require(roundvars[round].ATPO > roundownables[round].roundlength); round++; roundvars[round].totalsupplyGOTCH = nextroundtotalsupplyGOTCH; roundvars[round].GOTCHatcontract = nextroundtotalsupplyGOTCH; roundvars[round].solsforhire = nextroundsolsforhire; roundvars[round].soldierreplenishrate = nextroundsoldierreplenishrate; roundvars[round].solslastupdate = block.number; updatesolbuyrate(); roundvars[round].lastblockpayout = block.number; roundownables[round].hillowner = msg.sender; roundvars[round].nextpayamount = roundvars[round-1].nextpayamount; roundvars[round].nextowneramount = roundvars[round-1].nextowneramount; roundvars[round].previousethamount = roundvars[round-1].previousethamount; roundvars[round].blocksbeforenewpay = nextroundblocksbeforenewpay; roundownables[round].ERCtradeactive = nextroundERCtradeactive; roundvars[round].bpamount = 30000; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundGOTCHatcontract","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"divsforall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"active","type":"bool"}],"name":"setdivsforall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amt","type":"uint256"}],"name":"sellDOTCH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"soldiersinfo","outputs":[{"name":"soldiers","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"round","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"reg","type":"address"}],"name":"preregvills","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"price","type":"uint256"}],"name":"offerchangeprice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundtotalsupplyGOTCH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amt","type":"uint256"}],"name":"buyDOTCH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cheapredeemvillage","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amt","type":"uint256"}],"name":"batchcreatevillage","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Redeemable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextmarketoffer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundsolsforhire","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rate","type":"uint256"}],"name":"changesoldierreplenishrate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dotchamount","type":"uint256"},{"name":"askingpriceinwei","type":"uint256"}],"name":"placeoffer","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"buysoldiers","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createvillage","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"},{"name":"c","type":"uint256"},{"name":"d","type":"uint256"},{"name":"e","type":"uint256"},{"name":"f","type":"uint256"},{"name":"g","type":"uint256"},{"name":"h","type":"uint256"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"}],"name":"batchcollecttaxes","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"blockcount","type":"uint256"}],"name":"changebeginnerprotection","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"uint256"}],"name":"villageinfo","outputs":[{"name":"owner","type":"address"},{"name":"soldiersdefending","type":"uint256"},{"name":"lastcollect","type":"uint256"},{"name":"beginnersprotection","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"harvestabledivs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Divsforall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"roundvars","outputs":[{"name":"nextVillageId","type":"uint256"},{"name":"bpamount","type":"uint256"},{"name":"totalsupplyGOTCH","type":"uint256"},{"name":"GOTCHatcontract","type":"uint256"},{"name":"previousethamount","type":"uint256"},{"name":"solsforhire","type":"uint256"},{"name":"solslastupdate","type":"uint256"},{"name":"soldierreplenishrate","type":"uint256"},{"name":"soldierprice","type":"uint256"},{"name":"lastblockpayout","type":"uint256"},{"name":"blocksbeforenewpay","type":"uint256"},{"name":"ATPO","type":"uint256"},{"name":"nextpayamount","type":"uint256"},{"name":"nextowneramount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundlength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethforp3dbuy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amtsoldiers","type":"uint256"}],"name":"attackhill","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"},{"name":"amtsoldiers","type":"uint256"}],"name":"support","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"startnewround","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"Expand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"active","type":"bool"}],"name":"changetradestatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"amtdotch","type":"uint256"}],"name":"takeoffer","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"dotchamount","type":"uint256"}],"name":"removedotchtooffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amtsoldiers","type":"uint256"}],"name":"supporthill","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"nextroundsoldierreplenishrate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"playerinfo","outputs":[{"name":"redeemedvils","type":"uint256"},{"name":"redeemablevils","type":"uint256"},{"name":"soldiers","type":"uint256"},{"name":"GOTCH","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"}],"name":"collecttaxes","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"gotchinfo","outputs":[{"name":"Gold","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"roundownables","outputs":[{"name":"hillowner","type":"address"},{"name":"soldiersdefendinghill","type":"uint256"},{"name":"ERCtradeactive","type":"bool"},{"name":"roundlength","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"}],"name":"renewbeginnerprotection","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"marketplace","outputs":[{"name":"placedby","type":"address"},{"name":"amountdotch","type":"uint256"},{"name":"wantsthisamtweiperdotch","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"},{"name":"amtsoldiers","type":"uint256"}],"name":"attack","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"Divs","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"dotchamount","type":"uint256"}],"name":"adddotchtooffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"redeemablevilsinfo","outputs":[{"name":"redeemedvils","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextroundblocksbeforenewpay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundERCtradeactive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"villageint","type":"uint256"}],"name":"villtakeover","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"}],"name":"hilltakeover","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"attacker","type":"address"},{"indexed":false,"name":"pointsattacker","type":"uint256"},{"indexed":false,"name":"defender","type":"address"},{"indexed":false,"name":"pointsdefender","type":"uint256"}],"name":"battle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"taker","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"dotchsale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"customerAddress","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onHarvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
608060405269021e19e0c9bab2400000600b55612710600c819055600d556064600e556032600f5560fa6010556011805461ff0019166101001790553480156200004857600080fd5b5060008054600160a060020a031916730b0efad4ae088a88ffdc50bce5fb63c6936b92201790556040805180820190915260058082527f444f5443480000000000000000000000000000000000000000000000000000006020909201918252620000b59160029162000368565b5060408051808201909152601a8082527f4469616d6f6e64204f66205468652043727970746f2048696c6c0000000000006020909201918252620000fc9160039162000368565b506004805460ff191690556402540be4006005819055306000818152600660209081526040808320859055805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36009805460010180825560009081526012602052604080822061271060029091018190558354835281832060030155825482528082206064600590910155825482528082206032600790910155915481522043600690910155620001c764010000000062000288810204565b60098054600090815260126020818152604080842043908601558454845260138083528185208054600160a060020a0319163317905585548552928252808420600c0184905584548452808420600d01849055845484528084206004018490558454845280842060fa600a90910155845484528084206175306001918201558554855292909152808320600601805460ff1990811690931790559254825291902069021e19e0c9bab24000006007909101556011805490911690556200040d565b600954600090815260126020526040902060028101546005909101541115620002c857600954600090815260126020526040902060028101546005909101555b60095460009081526012602052604090206005810154600290910154620002fd9164010000000062004c766200034582021704565b6009805460009081526012602052604080822060089081019490945591548152200154600111156200034357600954600090815260126020526040902060016008909101555b565b60008082116200035457600080fd5b81838115156200036057fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003ab57805160ff1916838001178555620003db565b82800160010185558215620003db579182015b82811115620003db578251825591602001919060010190620003be565b50620003e9929150620003ed565b5090565b6200040a91905b80821115620003e95760008155600101620003f4565b90565b614d03806200041d6000396000f3006080604052600436106102ea5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146102ec57806307801b5c14610376578063095ea7b31461039d5780630c71614c146103d55780630d997dc3146103ea57806311a9c3c21461040457806312c3f7571461040f578063146ca531146104305780631522f1101461044557806315bd73f11461046657806318160ddd146104815780631a2a627c146104965780631c761245146104ab57806323b872dd146104b657806329713f86146104e0578063313ce567146104e8578063349a373b14610513578063393470fd1461051e5780634270d48a1461053f5780634c31df50146105545780634fe8b1a81461056957806350849c3b146105815780635fa458b71461058f57806370a082311461059a57806376b3131e146105bb57806379ba5097146105c35780637a5ced61146105d85780637fe9d39c1461060057806381c0ddc31461061857806381d6c8661461066057806385c653ba146106755780638aa6bb931461067d5780638da5cb5b146107035780639279011c1461073457806395d89b41146107495780639995bbf71461075e5780639a880848146107735780639be56c67146107995780639d41198e146107a75780639dfad52d146107bc578063a71ee0c6146107d1578063a9059cbb146107eb578063aa6578151461080f578063b0e16cce1461081d578063b17eb9dc14610838578063b5a7900e14610843578063be96031e14610858578063c04cc86b1461089f578063cae9ca51146108aa578063ce52242e14610913578063d31bc67e14610934578063d4ee1d901461097c578063d66cb9e114610991578063d900175f1461099c578063dc39d06d146109dc578063dd62ed3e14610a00578063e1fa763814610a27578063e39fff7214610a35578063e84a481b14610a3d578063f1522d5314610a58578063f2fde38b14610a79578063fb3f1fd614610a9a578063ffcc848414610aaf575b005b3480156102f857600080fd5b50610301610ac4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561033b578181015183820152602001610323565b50505050905090810190601f1680156103685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038257600080fd5b5061038b610b52565b60408051918252519081900360200190f35b3480156103a957600080fd5b506103c1600160a060020a0360043516602435610b58565b604080519115158252519081900360200190f35b3480156103e157600080fd5b506103c1610bbf565b3480156103f657600080fd5b506102ea6004351515610bc8565b6102ea600435610bf2565b34801561041b57600080fd5b5061038b600160a060020a0360043516610dd7565b34801561043c57600080fd5b5061038b610e05565b34801561045157600080fd5b506102ea600160a060020a0360043516610e0b565b34801561047257600080fd5b506102ea600435602435610edc565b34801561048d57600080fd5b5061038b610f21565b3480156104a257600080fd5b5061038b610f64565b6102ea600435610f6a565b3480156104c257600080fd5b506103c1600160a060020a0360043581169060243516604435611153565b6102ea61124c565b3480156104f457600080fd5b506104fd611367565b6040805160ff9092168252519081900360200190f35b6102ea600435611370565b34801561052a57600080fd5b5061038b600160a060020a0360043516611519565b34801561054b57600080fd5b5061038b61152b565b34801561056057600080fd5b5061038b611531565b34801561057557600080fd5b506102ea600435611537565b6102ea600435602435611565565b6102ea60043561167b565b3480156105a657600080fd5b5061038b600160a060020a03600435166117ea565b6102ea611805565b3480156105cf57600080fd5b506102ea611931565b6102ea60043560243560443560643560843560a43560c43560e43561010435610124356119ac565b34801561060c57600080fd5b506102ea600435612d79565b34801561062457600080fd5b50610630600435612da7565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561066c57600080fd5b5061038b612de7565b6102ea612e85565b34801561068957600080fd5b50610695600435612f36565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b34801561070f57600080fd5b50610718612fa2565b60408051600160a060020a039092168252519081900360200190f35b34801561074057600080fd5b5061038b612fb1565b34801561075557600080fd5b50610301612fb7565b34801561076a57600080fd5b5061038b61300f565b61077e600435613015565b60408051921515835260208301919091528051918290030190f35b6102ea6004356024356133e6565b3480156107b357600080fd5b506102ea61353e565b3480156107c857600080fd5b506102ea61369c565b3480156107dd57600080fd5b506102ea60043515156136ae565b3480156107f757600080fd5b506103c1600160a060020a03600435166024356136ea565b6102ea600435602435613788565b34801561082957600080fd5b506102ea60043560243561399e565b6102ea600435613aa4565b34801561084f57600080fd5b5061038b613b9e565b34801561086457600080fd5b50610879600160a060020a0360043516613ba4565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61038b600435613bf5565b3480156108b657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526103c1948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750613e0d9650505050505050565b34801561091f57600080fd5b5061038b600160a060020a0360043516613f6e565b34801561094057600080fd5b5061094c600435613f9c565b60408051600160a060020a0390951685526020850193909352901515838301526060830152519081900360800190f35b34801561098857600080fd5b50610718613fd3565b6102ea600435613fe2565b3480156109a857600080fd5b506109b4600435614044565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b3480156109e857600080fd5b506103c1600160a060020a036004351660243561406f565b348015610a0c57600080fd5b5061038b600160a060020a036004358116906024351661412a565b61077e600435602435614155565b6102ea61467d565b348015610a4957600080fd5b506102ea6004356024356146a3565b348015610a6457600080fd5b5061038b600160a060020a0360043516614794565b348015610a8557600080fd5b506102ea600160a060020a03600435166147c2565b348015610aa657600080fd5b5061038b6147fb565b348015610abb57600080fd5b506103c1614801565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b505050505081565b600d5481565b336000818152600760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60115460ff1681565b600054600160a060020a03163314610bdf57600080fd5b6011805460ff1916911515919091179055565b66038d7ea4c68000341015610c0657600080fd5b60095460009081526013602052604090206006015460ff161515600114610c2c57600080fd5b610c3e8161271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020541015610c6957600080fd5b33600090815260066020526040902054811115610c8557600080fd5b6001811015610c9357600080fd5b30600090815260066020526040902054610cb3908263ffffffff61483416565b30600090815260066020526040808220929092553381522054610cdc908263ffffffff61484416565b3360008181526006602090815260409182902093909355805184815290513093600080516020614cb8833981519152928290030190a3610d53610d278261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61484416565b6009546000908152601360209081526040808320308452600401909152902055610db4610d888261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832033845260040190915290205550565b6009546000908152601360209081526040808320600160a060020a0385168452600201909152902054919050565b60095481565b600054600160a060020a03163314610e2257600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916600160a060020a039990991698909817909755855485528383528185208784528286205486528101835281852043600290910181905586548652848452828620888552838720548752820184528286208201558554855295825280842080546001908101909155945484528084205492825280842083855290950190529290200155565b60008111610ee957600080fd5b600082815260156020526040902054600160a060020a03163314610f0c57600080fd5b60009182526015602052604090912060020155565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f854600554610f5f9163ffffffff61484416565b905090565b600c5481565b66038d7ea4c68000341015610f7e57600080fd5b60095460009081526013602052604090206006015460ff161515600114610fa457600080fd5b30600090815260066020526040902054811115610fc057600080fd5b610fd28161271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020541015610ffd57600080fd5b600181101561100b57600080fd5b3060009081526006602052604090205461102b908263ffffffff61484416565b30600090815260066020526040808220929092553381522054611054908263ffffffff61483416565b33600081815260066020908152604091829020939093558051848152905191923092600080516020614cb88339815191529281900390910190a36110cf6110a38261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61484416565b60095460009081526013602090815260408083203384526004019091529020556111306111048261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832030845260040190915290205550565b600160a060020a03831660009081526006602052604081205461117c908363ffffffff61484416565b600160a060020a03851660009081526006602090815260408083209390935560078152828220338352905220546111b9908363ffffffff61484416565b600160a060020a0380861660009081526007602090815260408083203384528252808320949094559186168152600690915220546111fd908363ffffffff61483416565b600160a060020a038085166000818152600660209081526040918290209490945580518681529051919392881692600080516020614cb883398151915292918290030190a35060019392505050565b66038d7ea4c6800034101561126057600080fd5b3360008181526014602090815260408083205460095484526013835281842094845260059094019091529020541061129757600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a0319163390811790915587548752858552838720828652848820548852830185528387204360029091018190558854885286865284882083875285892054895284018652848820840155875487529084528286208054600190810190915587548752838720548686528488208189529093018552838720810192909255955485529282528084209484526005909401905291902080549091019055565b60045460ff1681565b6000662386f26fc10000820234101561138857600080fd5b600182101561139657600080fd5b60288211156113a457600080fd5b600980546000908152601260205260409020600a8101549101546113cd9163ffffffff61483416565b4311156113dc576113dc614859565b5060005b81811015611496576009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916331790558654865284845282862081855283872054875282018452828620436002909101819055875487528585528387208286528488205488528301855283872083015586548652835281852080546001908101909155955485528185205493835281852084865201909152909120820155016113e0565b336000908152601460205260409020546114b6908363ffffffff61483416565b33600081815260146020908152604080832094909455600954825260138152838220928252600590920190915220546114f5908363ffffffff61483416565b60095460009081526013602090815260408083203384526005019091529020555050565b60146020526000908152604090205481565b600a5481565b600e5481565b600054600160a060020a0316331461154e57600080fd5b600954600090815260126020526040902060070155565b6000821161157257600080fd5b6000811161157f57600080fd5b3360009081526006602052604090205482111561159b57600080fd5b66038d7ea4c680003410156115af57600080fd5b336000908152600660205260409020546115cf908363ffffffff61484416565b336000908152600660205260408082209290925530815220546115f8908363ffffffff61483416565b30600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a3600a80546000908152601560205260408082208054600160a060020a03191633179055825482528082206001908101959095558254825290206002019190915580549091019055565b66038d7ea4c6800034101561168f57600080fd5b611697614a23565b61169f614aa7565b6009546000908152601260205260409020600501548111156116c057600080fd5b60095460009081526013602090815260408083203384526002019091529020546116f0908263ffffffff61483416565b6009805460009081526013602090815260408083203384526002018252808320949094559154815260129091522060050154611732908263ffffffff61484416565b600980546000908152601260205260408082206005019390935590548152206008015461176a906110a390839063ffffffff61480f16565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600801546117d2906117b190839063ffffffff61480f16565b6009546000908152601260205260409020600301549063ffffffff61483416565b60095460009081526012602052604090206003015550565b600160a060020a031660009081526006602052604090205490565b662386f26fc1000034101561181957600080fd5b600980546000908152601260205260409020600a8101549101546118429163ffffffff61483416565b43111561185157611851614859565b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916339081179091558754875285855283872082865284882054885283018552838720436002909101819055885488528686528488208387528589205489528401865284882084015587548752908452828620805460019081019091558754875283872054868652848820818952909301855283872081019290925580865260148452828620805483019055955485529282528084209484526005909401905291902080549091019055565b600154600160a060020a0316331461194857600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b6000662386f26fc100003410156119c257600080fd5b60095460009081526013602090815260408083208e8452600301909152902054600160a060020a031633146119f657600080fd5b60095460009081526013602090815260408083208d8452600301909152902054600160a060020a03163314611a2a57600080fd5b60095460009081526013602090815260408083208c8452600301909152902054600160a060020a03163314611a5e57600080fd5b60095460009081526013602090815260408083208b8452600301909152902054600160a060020a03163314611a9257600080fd5b60095460009081526013602090815260408083208a8452600301909152902054600160a060020a03163314611ac657600080fd5b6009546000908152601360209081526040808320898452600301909152902054600160a060020a03163314611afa57600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a03163314611b2e57600080fd5b6009546000908152601360209081526040808320878452600301909152902054600160a060020a03163314611b6257600080fd5b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314611b9657600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a03163314611bca57600080fd5b60095460009081526013602090815260408083208e84526003019091529020600201544311611bf857600080fd5b60095460009081526013602090815260408083208d84526003019091529020600201544311611c2657600080fd5b60095460009081526013602090815260408083208c84526003019091529020600201544311611c5457600080fd5b60095460009081526013602090815260408083208b84526003019091529020600201544311611c8257600080fd5b60095460009081526013602090815260408083208a84526003019091529020600201544311611cb057600080fd5b60095460009081526013602090815260408083208984526003019091529020600201544311611cde57600080fd5b60095460009081526013602090815260408083208884526003019091529020600201544311611d0c57600080fd5b60095460009081526013602090815260408083208784526003019091529020600201544311611d3a57600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311611d6857600080fd5b60095460009081526013602090815260408083208584526003019091529020600201544311611d9657600080fd5b600954600090815260126020526040902054611e0790611dbc908d63ffffffff61484416565b611dfb60136000600954815260200190815260200160002060030160008f8152602001908152602001600020600201544361484490919063ffffffff16565b9063ffffffff61480f16565b600954600090815260126020526040902060030154909150811115611e9457600954600090815260126020526040902060030154611e4b908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154611e7e908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054611ec4908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154611f06908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008d815260200190815260200160002060020181905550611fb5611f818b6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208f8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561204257600954600090815260126020526040902060030154611ff9908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461202c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612072908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546120b4908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008c81526020019081526020016000206002018190555061216361212f8a6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208e8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156121f0576009546000908152601260205260409020600301546121a7908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546121da908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612220908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612262908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208f85529095018152848320436002909101559254825290915220546122ee906122ba908463ffffffff61484416565b6009546000908152601360209081526040808320878452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561237b57600954600090815260126020526040902060030154612332908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612365908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546123ab908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546123ed908263ffffffff61484416565b600980546000908152601260208181526040808420600390810196909655845484526013825280842088855290950181528483204360029091015592548252909152205461247990612445908a63ffffffff61484416565b60095460009081526013602090815260408083208d8452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612506576009546000908152601260205260409020600301546124bd908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546124f0908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612536908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612578908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208e8552909501815284832043600290910155925482529091522054612604906125d0908963ffffffff61484416565b60095460009081526013602090815260408083208c8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561269157600954600090815260126020526040902060030154612648908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461267b908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546126c1908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612703908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208d855290950181528483204360029091015592548252909152205461278f9061275b908863ffffffff61484416565b60095460009081526013602090815260408083208b8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561281c576009546000908152601260205260409020600301546127d3908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612806908263ffffffff61483416565b6009546000908152601260205260409020600201555b600954600090815260136020908152604080832033845260040190915290205461284c908263ffffffff61483416565b600980546000908152601360209081526040808320338452600401825280832094909455915481526012909152206003015461288e908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208c855290950181528483204360029091015592548252909152205461291a906128e6908763ffffffff61484416565b60095460009081526013602090815260408083208a8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156129a75760095460009081526012602052604090206003015461295e908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612991908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546129d7908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612a19908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208b8552909501815284832043600290910155925482529091522054612aa590612a71908663ffffffff61484416565b6009546000908152601360209081526040808320898452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612b3257600954600090815260126020526040902060030154612ae9908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612b1c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612b62908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612ba4908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208a8552909501815284832043600290910155925482529091522054612c3090612bfc908563ffffffff61484416565b6009546000908152601360209081526040808320888452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612cbd57600954600090815260126020526040902060030154612c74908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612ca7908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612ced908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612d2f908263ffffffff61484416565b600980546000908152601260209081526040808320600390810195909555925482526013815282822096825295909201909452929092204360029091015550505050505050505050565b600054600160a060020a03163314612d9057600080fd5b600954600090815260126020526040902060010155565b6009546000908152601360209081526040808320938352600393840190915290208054600182015460028301549290930154600160a060020a0390911693565b604080517e65318b000000000000000000000000000000000000000000000000000000008152306004820152905160009173b3775fb83f7d12a36e0475abdd1fca35c091efbe916265318b9160248082019260209290919082900301818787803b158015612e5457600080fd5b505af1158015612e68573d6000803e3d6000fd5b505050506040513d6020811015612e7e57600080fd5b5051905090565b6011805460ff1916600117905566038d7ea4c68000341015612ea657600080fd5b612eae612de7565b6016819055600010612ebf57600080fd5b612ec7614b58565b601654604051339180156108fc02916000818181858888f19350505050158015612ef5573d6000803e3d6000fd5b5060165460408051338152602081019290925280517f6cb996505271b3d1e209a838bce3da507741e7d6456f9b7d511098ff37b7f5289281900390910190a1565b601260205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d015490508e565b600054600160a060020a031681565b600b5481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b60085481565b60008066038d7ea4c6800034101561302c57600080fd5b600980546000908152601260205260409020600a8101549101546130559163ffffffff61483416565b43111561306457613064614859565b600954600090815260136020908152604080832033845260020190915290205483111561309057600080fd5b600183101561309e57600080fd5b600954600090815260136020526040902054600160a060020a0316331415613150576009546000908152601360205260409020600101546130e5908463ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613123908463ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915591508190506133e1565b600954600090815260136020526040902054600160a060020a031633146133e1576009546000908152601360205260409020600101548311156132f157600954600090815260136020908152604091829020548251600160a060020a039091168152339181019190915281517fa475e0e386c2b565f0cacab74df66b164ec20db6ff736b34ed1384b4cb585985929181900390910190a1600954600090815260136020908152604091829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a1600980546000908152601360205260408082208054600160a060020a0319163317905591548152206001015461327790849063ffffffff61484416565b600980546000908152601360209081526040808320600101949094559154815282812033825260020190915220546132b5908463ffffffff61484416565b600980546000908152601360208181526040808420338552600201825280842095909555925482529091522060019081015490925090506133e1565b60095460009081526013602052604090206001015483116133e157600954600090815260136020526040902060010154613331908463ffffffff61484416565b6009805460009081526013602090815260408083206001019490945591548152828120338252600201909152205461336f908463ffffffff61484416565b6009805460009081526013602081815260408084203380865260029091018352818520969096559354835290815290829020548251938452908301869052600160a060020a0316828201526060820185905251600080516020614c988339815191529181900360800190a15060009050815b915091565b66038d7ea4c680003410156133fa57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316331461342e57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316151561346257600080fd5b600954600090815260136020908152604080832033845260020190915290205481111561348e57600080fd5b600181101561349c57600080fd5b60095460009081526013602090815260408083208584526003019091529020600101546134cf908263ffffffff61483416565b600980546000908152601360208181526040808420888552600301825280842060010195909555925482528252828120338252600201909152205461351a908263ffffffff61484416565b60095460009081526013602090815260408083203384526002019091529020555050565b6009546000908152601360209081526040808320600701546012909252909120600b01541161356c57600080fd5b60098054600101808255600c546000918252601260205260408083206002018290558354835280832060030191909155600e548354835281832060050155600f5483548352818320600701559154815220436006909101556135cc614aa7565b6009805460009081526012602081815260408084204390860155845484526013808352818520805433600160a060020a031990911617905585546000198082018752858552838720600c90810154928852848820019190915586548082018752838720600d90810154918852848820015586549081018652828620600490810154918752838720015560105486548652828620600a015560115486548652908352818520600601805460ff191661010090920460ff16151591909117905593548352522061753060019190910155565b6136a7600854614bdd565b6000600855565b600054600160a060020a031633146136c557600080fd5b6009546000908152601360205260409020600601805460ff1916911515919091179055565b3360009081526006602052604081205461370a908363ffffffff61484416565b3360009081526006602052604080822092909255600160a060020a0385168152205461373c908363ffffffff61483416565b600160a060020a038416600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a350600192915050565b6000828152601560205260409020600201546137aa908263ffffffff61480f16565b3410156137b657600080fd5b600081116137c357600080fd5b6000828152601560205260409020600101548111156137e157600080fd5b600082815260156020526040902054600160a060020a031633141561380557600080fd5b3060009081526006602052604090205481111561382157600080fd5b600082815260156020526040902060010154613843908263ffffffff61484416565b600083815260156020908152604080832060010193909355338252600690522054613874908263ffffffff61483416565b3360009081526006602052604080822092909255308152205461389d908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a360008281526015602090815260409182902080546002909101548351600160a060020a0390921682529181019190915233818301526060810183905290517f86dd97753ac184a702ff1c26dbba9dfd2c7fdf8858aef4cf9bb7d66f232ef7ab9181900360800190a160008281526015602052604090208054600290910154600160a060020a03909116906108fc90613971908463ffffffff61480f16565b6040518115909202916000818181858888f19350505050158015613999573d6000803e3d6000fd5b505050565b600081116139ab57600080fd5b600082815260156020526040902054600160a060020a031633146139ce57600080fd5b306000908152600660205260409020548111156139ea57600080fd5b33600090815260066020526040902054613a0a908263ffffffff61483416565b33600090815260066020526040808220929092553081522054613a33908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a3600082815260156020526040902060010154613a8b908263ffffffff61484416565b6000928352601560205260409092206001019190915550565b66038d7ea4c68000341015613ab857600080fd5b600954600090815260136020526040902054600160a060020a03163314613ade57600080fd5b6009546000908152601360209081526040808320338452600201909152902054811115613b0a57600080fd5b6001811015613b1857600080fd5b600954600090815260136020526040902060010154613b3d908263ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613b7b908263ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205550565b600f5481565b6009546000908152601360209081526040808320600160a060020a03949094168352600584018252808320546014835281842054600286018452828520546004909601909352922054919390929190565b60008066038d7ea4c68000341015613c0c57600080fd5b600980546000908152601260205260409020600a810154910154613c359163ffffffff61483416565b431115613c4457613c44614859565b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314613c7857600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311613ca657600080fd5b600954600090815260126020526040902054613ccc90612bfc908563ffffffff61484416565b600954600090815260126020526040902060030154909150811115613d5957600954600090815260126020526040902060030154613d10908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154613d43908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054613d89908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154613dcb908263ffffffff61484416565b60098054600090815260126020908152604080832060039081019590955592548252601381528282208783529093019092529020436002909101559050919050565b336000818152600760209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015613efd578181015183820152602001613ee5565b50505050905090810190601f168015613f2a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613f4c57600080fd5b505af1158015613f60573d6000803e3d6000fd5b506001979650505050505050565b6009546000908152601360209081526040808320600160a060020a0385168452600401909152902054919050565b6013602052600090815260409020805460018201546006830154600790930154600160a060020a0390921692909160ff9091169084565b600154600160a060020a031681565b6009546000908152601260205260409020546140119066038d7ea4c6800090611dfb908463ffffffff61484416565b34101561401d57600080fd5b60095460009081526013602090815260408083209383526003938401909152902043910155565b601560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60008054600160a060020a0316331461408757600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156140f757600080fd5b505af115801561410b573d6000803e3d6000fd5b505050506040513d602081101561412157600080fd5b50519392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b6000808066038d7ea4c6800034101561416d57600080fd5b600980546000908152601260205260409020600a8101549101540143111561419757614197614859565b600954600090815260126020908152604080832060010154601383528184208985526003908101909352922001546141d49163ffffffff61483416565b90504381106141e257600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316151561421657600080fd5b600954600090815260136020908152604080832033845260020190915290205484111561424257600080fd5b600184101561425057600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a031633141561432b5760095460009081526013602090815260408083208884526003019091529020600101546142b3908563ffffffff61483416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546142fe908563ffffffff61484416565b60095460009081526013602090815260408083203384526002019091528120919091559250829150614675565b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316331461467557600954600090815260136020908152604080832088845260030190915290206001015484111561454b576009546000908152601360209081526040808320888452600301825291829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301825291829020548251600160a060020a039091168152339181019190915280820187905290517f440aa0a8b32b3d78a1599a32e5e1d787f8ed2e218875cbf64efc169fe3c544649181900360600190a16009805460009081526013602081815260408084208a8552600390810183528185208054600160a060020a031916331790559454845291815281832089845290930190925220600101546144a790859063ffffffff61484416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546144f2908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205561451b85613bf5565b50600954600090815260136020908152604080832088845260030190915290206001908101549093509150614675565b60095460009081526013602090815260408083208884526003019091529020600101548411614675576009546000908152601360209081526040808320888452600301825291829020548251338152918201879052600160a060020a031681830152606081018690529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301909152902060010154614601908563ffffffff61484416565b6009805460009081526013602081815260408084208b8552600301825280842060010195909555925482528252828120338252600201909152205461464c908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915592508391505b509250929050565b600954600090815260136020526040902054600160a060020a03163314612ebf57600080fd5b600081116146b057600080fd5b600082815260156020526040902054600160a060020a031633146146d357600080fd5b336000908152600660205260409020548111156146ef57600080fd5b3360009081526006602052604090205461470f908263ffffffff61484416565b33600090815260066020526040808220929092553081522054614738908263ffffffff61483416565b30600081815260066020908152604091829020939093558051848152905191923392600080516020614cb88339815191529281900390910190a3600082815260156020526040902060010154613a8b908263ffffffff61483416565b6009546000908152601360209081526040808320600160a060020a0385168452600501909152902054919050565b600054600160a060020a031633146147d957600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60105481565b601154610100900460ff1681565b818102821580614829575081838281151561482657fe5b04145b1515610bb957600080fd5b81810182811015610bb957600080fd5b60008282111561485357600080fd5b50900390565b600980546000908152601260205260409020600a8101549101546148829163ffffffff61483416565b431161488d57600080fd5b600980546000908152601260205260409020600a8101549101546148b69163ffffffff61483416565b6009805460009081526012602052604090200155600854614905906148f6906064906148ea9030319063ffffffff61484416565b9063ffffffff614c7616565b6008549063ffffffff61483416565b6008819055600054600160a060020a0316906108fc90614934906064906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f1935050505015801561495c573d6000803e3d6000fd5b506149a561498460026148ea60085430600160a060020a03163161484490919063ffffffff16565b6009546000908152601260205260409020600b01549063ffffffff61483416565b600980546000908152601260209081526040808320600b01949094559154815260139091522054600854600160a060020a03909116906108fc906149f8906002906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f19350505050158015614a20573d6000803e3d6000fd5b50565b600954600090815260126020526040902060078101548154600690920154614a7f92614a5e9291611dfb91908290439063ffffffff61484416565b6009546000908152601260205260409020600501549063ffffffff61483416565b6009805460009081526012602052604080822060050193909355905481522043600690910155565b600954600090815260126020526040902060028101546005909101541115614ae657600954600090815260126020526040902060028101546005909101555b60095460009081526012602052604090206005810154600290910154614b119163ffffffff614c7616565b600980546000908152601260205260408082206008908101949094559154815220015460011115614b5657600954600090815260126020526040902060016008909101555b565b73b3775fb83f7d12a36e0475abdd1fca35c091efbe600160a060020a0316633ccfd60b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614bc357600080fd5b505af1158015614bd7573d6000803e3d6000fd5b50505050565b604080517ff088d547000000000000000000000000000000000000000000000000000000008152306004820152905173b3775fb83f7d12a36e0475abdd1fca35c091efbe9163f088d54791849160248082019260209290919082900301818588803b158015614c4b57600080fd5b505af1158015614c5f573d6000803e3d6000fd5b50505050506040513d602081101561399957600080fd5b6000808211614c8457600080fd5b8183811515614c8f57fe5b04939250505056009a6711bd12448549c8fdb9001f9e0681e5913c10562075129be867d61a0651d2ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820976828163af9e0335a750972a0474122db1986ce6bbf7a2f46beb3c38aeefa4b0029
Deployed Bytecode
0x6080604052600436106102ea5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146102ec57806307801b5c14610376578063095ea7b31461039d5780630c71614c146103d55780630d997dc3146103ea57806311a9c3c21461040457806312c3f7571461040f578063146ca531146104305780631522f1101461044557806315bd73f11461046657806318160ddd146104815780631a2a627c146104965780631c761245146104ab57806323b872dd146104b657806329713f86146104e0578063313ce567146104e8578063349a373b14610513578063393470fd1461051e5780634270d48a1461053f5780634c31df50146105545780634fe8b1a81461056957806350849c3b146105815780635fa458b71461058f57806370a082311461059a57806376b3131e146105bb57806379ba5097146105c35780637a5ced61146105d85780637fe9d39c1461060057806381c0ddc31461061857806381d6c8661461066057806385c653ba146106755780638aa6bb931461067d5780638da5cb5b146107035780639279011c1461073457806395d89b41146107495780639995bbf71461075e5780639a880848146107735780639be56c67146107995780639d41198e146107a75780639dfad52d146107bc578063a71ee0c6146107d1578063a9059cbb146107eb578063aa6578151461080f578063b0e16cce1461081d578063b17eb9dc14610838578063b5a7900e14610843578063be96031e14610858578063c04cc86b1461089f578063cae9ca51146108aa578063ce52242e14610913578063d31bc67e14610934578063d4ee1d901461097c578063d66cb9e114610991578063d900175f1461099c578063dc39d06d146109dc578063dd62ed3e14610a00578063e1fa763814610a27578063e39fff7214610a35578063e84a481b14610a3d578063f1522d5314610a58578063f2fde38b14610a79578063fb3f1fd614610a9a578063ffcc848414610aaf575b005b3480156102f857600080fd5b50610301610ac4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561033b578181015183820152602001610323565b50505050905090810190601f1680156103685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038257600080fd5b5061038b610b52565b60408051918252519081900360200190f35b3480156103a957600080fd5b506103c1600160a060020a0360043516602435610b58565b604080519115158252519081900360200190f35b3480156103e157600080fd5b506103c1610bbf565b3480156103f657600080fd5b506102ea6004351515610bc8565b6102ea600435610bf2565b34801561041b57600080fd5b5061038b600160a060020a0360043516610dd7565b34801561043c57600080fd5b5061038b610e05565b34801561045157600080fd5b506102ea600160a060020a0360043516610e0b565b34801561047257600080fd5b506102ea600435602435610edc565b34801561048d57600080fd5b5061038b610f21565b3480156104a257600080fd5b5061038b610f64565b6102ea600435610f6a565b3480156104c257600080fd5b506103c1600160a060020a0360043581169060243516604435611153565b6102ea61124c565b3480156104f457600080fd5b506104fd611367565b6040805160ff9092168252519081900360200190f35b6102ea600435611370565b34801561052a57600080fd5b5061038b600160a060020a0360043516611519565b34801561054b57600080fd5b5061038b61152b565b34801561056057600080fd5b5061038b611531565b34801561057557600080fd5b506102ea600435611537565b6102ea600435602435611565565b6102ea60043561167b565b3480156105a657600080fd5b5061038b600160a060020a03600435166117ea565b6102ea611805565b3480156105cf57600080fd5b506102ea611931565b6102ea60043560243560443560643560843560a43560c43560e43561010435610124356119ac565b34801561060c57600080fd5b506102ea600435612d79565b34801561062457600080fd5b50610630600435612da7565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561066c57600080fd5b5061038b612de7565b6102ea612e85565b34801561068957600080fd5b50610695600435612f36565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b34801561070f57600080fd5b50610718612fa2565b60408051600160a060020a039092168252519081900360200190f35b34801561074057600080fd5b5061038b612fb1565b34801561075557600080fd5b50610301612fb7565b34801561076a57600080fd5b5061038b61300f565b61077e600435613015565b60408051921515835260208301919091528051918290030190f35b6102ea6004356024356133e6565b3480156107b357600080fd5b506102ea61353e565b3480156107c857600080fd5b506102ea61369c565b3480156107dd57600080fd5b506102ea60043515156136ae565b3480156107f757600080fd5b506103c1600160a060020a03600435166024356136ea565b6102ea600435602435613788565b34801561082957600080fd5b506102ea60043560243561399e565b6102ea600435613aa4565b34801561084f57600080fd5b5061038b613b9e565b34801561086457600080fd5b50610879600160a060020a0360043516613ba4565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61038b600435613bf5565b3480156108b657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526103c1948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750613e0d9650505050505050565b34801561091f57600080fd5b5061038b600160a060020a0360043516613f6e565b34801561094057600080fd5b5061094c600435613f9c565b60408051600160a060020a0390951685526020850193909352901515838301526060830152519081900360800190f35b34801561098857600080fd5b50610718613fd3565b6102ea600435613fe2565b3480156109a857600080fd5b506109b4600435614044565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b3480156109e857600080fd5b506103c1600160a060020a036004351660243561406f565b348015610a0c57600080fd5b5061038b600160a060020a036004358116906024351661412a565b61077e600435602435614155565b6102ea61467d565b348015610a4957600080fd5b506102ea6004356024356146a3565b348015610a6457600080fd5b5061038b600160a060020a0360043516614794565b348015610a8557600080fd5b506102ea600160a060020a03600435166147c2565b348015610aa657600080fd5b5061038b6147fb565b348015610abb57600080fd5b506103c1614801565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b505050505081565b600d5481565b336000818152600760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60115460ff1681565b600054600160a060020a03163314610bdf57600080fd5b6011805460ff1916911515919091179055565b66038d7ea4c68000341015610c0657600080fd5b60095460009081526013602052604090206006015460ff161515600114610c2c57600080fd5b610c3e8161271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020541015610c6957600080fd5b33600090815260066020526040902054811115610c8557600080fd5b6001811015610c9357600080fd5b30600090815260066020526040902054610cb3908263ffffffff61483416565b30600090815260066020526040808220929092553381522054610cdc908263ffffffff61484416565b3360008181526006602090815260409182902093909355805184815290513093600080516020614cb8833981519152928290030190a3610d53610d278261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61484416565b6009546000908152601360209081526040808320308452600401909152902055610db4610d888261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832033845260040190915290205550565b6009546000908152601360209081526040808320600160a060020a0385168452600201909152902054919050565b60095481565b600054600160a060020a03163314610e2257600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916600160a060020a039990991698909817909755855485528383528185208784528286205486528101835281852043600290910181905586548652848452828620888552838720548752820184528286208201558554855295825280842080546001908101909155945484528084205492825280842083855290950190529290200155565b60008111610ee957600080fd5b600082815260156020526040902054600160a060020a03163314610f0c57600080fd5b60009182526015602052604090912060020155565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f854600554610f5f9163ffffffff61484416565b905090565b600c5481565b66038d7ea4c68000341015610f7e57600080fd5b60095460009081526013602052604090206006015460ff161515600114610fa457600080fd5b30600090815260066020526040902054811115610fc057600080fd5b610fd28161271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020541015610ffd57600080fd5b600181101561100b57600080fd5b3060009081526006602052604090205461102b908263ffffffff61484416565b30600090815260066020526040808220929092553381522054611054908263ffffffff61483416565b33600081815260066020908152604091829020939093558051848152905191923092600080516020614cb88339815191529281900390910190a36110cf6110a38261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61484416565b60095460009081526013602090815260408083203384526004019091529020556111306111048261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832030845260040190915290205550565b600160a060020a03831660009081526006602052604081205461117c908363ffffffff61484416565b600160a060020a03851660009081526006602090815260408083209390935560078152828220338352905220546111b9908363ffffffff61484416565b600160a060020a0380861660009081526007602090815260408083203384528252808320949094559186168152600690915220546111fd908363ffffffff61483416565b600160a060020a038085166000818152600660209081526040918290209490945580518681529051919392881692600080516020614cb883398151915292918290030190a35060019392505050565b66038d7ea4c6800034101561126057600080fd5b3360008181526014602090815260408083205460095484526013835281842094845260059094019091529020541061129757600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a0319163390811790915587548752858552838720828652848820548852830185528387204360029091018190558854885286865284882083875285892054895284018652848820840155875487529084528286208054600190810190915587548752838720548686528488208189529093018552838720810192909255955485529282528084209484526005909401905291902080549091019055565b60045460ff1681565b6000662386f26fc10000820234101561138857600080fd5b600182101561139657600080fd5b60288211156113a457600080fd5b600980546000908152601260205260409020600a8101549101546113cd9163ffffffff61483416565b4311156113dc576113dc614859565b5060005b81811015611496576009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916331790558654865284845282862081855283872054875282018452828620436002909101819055875487528585528387208286528488205488528301855283872083015586548652835281852080546001908101909155955485528185205493835281852084865201909152909120820155016113e0565b336000908152601460205260409020546114b6908363ffffffff61483416565b33600081815260146020908152604080832094909455600954825260138152838220928252600590920190915220546114f5908363ffffffff61483416565b60095460009081526013602090815260408083203384526005019091529020555050565b60146020526000908152604090205481565b600a5481565b600e5481565b600054600160a060020a0316331461154e57600080fd5b600954600090815260126020526040902060070155565b6000821161157257600080fd5b6000811161157f57600080fd5b3360009081526006602052604090205482111561159b57600080fd5b66038d7ea4c680003410156115af57600080fd5b336000908152600660205260409020546115cf908363ffffffff61484416565b336000908152600660205260408082209290925530815220546115f8908363ffffffff61483416565b30600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a3600a80546000908152601560205260408082208054600160a060020a03191633179055825482528082206001908101959095558254825290206002019190915580549091019055565b66038d7ea4c6800034101561168f57600080fd5b611697614a23565b61169f614aa7565b6009546000908152601260205260409020600501548111156116c057600080fd5b60095460009081526013602090815260408083203384526002019091529020546116f0908263ffffffff61483416565b6009805460009081526013602090815260408083203384526002018252808320949094559154815260129091522060050154611732908263ffffffff61484416565b600980546000908152601260205260408082206005019390935590548152206008015461176a906110a390839063ffffffff61480f16565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600801546117d2906117b190839063ffffffff61480f16565b6009546000908152601260205260409020600301549063ffffffff61483416565b60095460009081526012602052604090206003015550565b600160a060020a031660009081526006602052604090205490565b662386f26fc1000034101561181957600080fd5b600980546000908152601260205260409020600a8101549101546118429163ffffffff61483416565b43111561185157611851614859565b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916339081179091558754875285855283872082865284882054885283018552838720436002909101819055885488528686528488208387528589205489528401865284882084015587548752908452828620805460019081019091558754875283872054868652848820818952909301855283872081019290925580865260148452828620805483019055955485529282528084209484526005909401905291902080549091019055565b600154600160a060020a0316331461194857600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b6000662386f26fc100003410156119c257600080fd5b60095460009081526013602090815260408083208e8452600301909152902054600160a060020a031633146119f657600080fd5b60095460009081526013602090815260408083208d8452600301909152902054600160a060020a03163314611a2a57600080fd5b60095460009081526013602090815260408083208c8452600301909152902054600160a060020a03163314611a5e57600080fd5b60095460009081526013602090815260408083208b8452600301909152902054600160a060020a03163314611a9257600080fd5b60095460009081526013602090815260408083208a8452600301909152902054600160a060020a03163314611ac657600080fd5b6009546000908152601360209081526040808320898452600301909152902054600160a060020a03163314611afa57600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a03163314611b2e57600080fd5b6009546000908152601360209081526040808320878452600301909152902054600160a060020a03163314611b6257600080fd5b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314611b9657600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a03163314611bca57600080fd5b60095460009081526013602090815260408083208e84526003019091529020600201544311611bf857600080fd5b60095460009081526013602090815260408083208d84526003019091529020600201544311611c2657600080fd5b60095460009081526013602090815260408083208c84526003019091529020600201544311611c5457600080fd5b60095460009081526013602090815260408083208b84526003019091529020600201544311611c8257600080fd5b60095460009081526013602090815260408083208a84526003019091529020600201544311611cb057600080fd5b60095460009081526013602090815260408083208984526003019091529020600201544311611cde57600080fd5b60095460009081526013602090815260408083208884526003019091529020600201544311611d0c57600080fd5b60095460009081526013602090815260408083208784526003019091529020600201544311611d3a57600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311611d6857600080fd5b60095460009081526013602090815260408083208584526003019091529020600201544311611d9657600080fd5b600954600090815260126020526040902054611e0790611dbc908d63ffffffff61484416565b611dfb60136000600954815260200190815260200160002060030160008f8152602001908152602001600020600201544361484490919063ffffffff16565b9063ffffffff61480f16565b600954600090815260126020526040902060030154909150811115611e9457600954600090815260126020526040902060030154611e4b908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154611e7e908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054611ec4908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154611f06908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008d815260200190815260200160002060020181905550611fb5611f818b6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208f8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561204257600954600090815260126020526040902060030154611ff9908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461202c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612072908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546120b4908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008c81526020019081526020016000206002018190555061216361212f8a6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208e8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156121f0576009546000908152601260205260409020600301546121a7908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546121da908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612220908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612262908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208f85529095018152848320436002909101559254825290915220546122ee906122ba908463ffffffff61484416565b6009546000908152601360209081526040808320878452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561237b57600954600090815260126020526040902060030154612332908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612365908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546123ab908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546123ed908263ffffffff61484416565b600980546000908152601260208181526040808420600390810196909655845484526013825280842088855290950181528483204360029091015592548252909152205461247990612445908a63ffffffff61484416565b60095460009081526013602090815260408083208d8452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612506576009546000908152601260205260409020600301546124bd908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546124f0908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612536908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612578908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208e8552909501815284832043600290910155925482529091522054612604906125d0908963ffffffff61484416565b60095460009081526013602090815260408083208c8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561269157600954600090815260126020526040902060030154612648908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461267b908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546126c1908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612703908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208d855290950181528483204360029091015592548252909152205461278f9061275b908863ffffffff61484416565b60095460009081526013602090815260408083208b8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561281c576009546000908152601260205260409020600301546127d3908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612806908263ffffffff61483416565b6009546000908152601260205260409020600201555b600954600090815260136020908152604080832033845260040190915290205461284c908263ffffffff61483416565b600980546000908152601360209081526040808320338452600401825280832094909455915481526012909152206003015461288e908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208c855290950181528483204360029091015592548252909152205461291a906128e6908763ffffffff61484416565b60095460009081526013602090815260408083208a8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156129a75760095460009081526012602052604090206003015461295e908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612991908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546129d7908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612a19908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208b8552909501815284832043600290910155925482529091522054612aa590612a71908663ffffffff61484416565b6009546000908152601360209081526040808320898452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612b3257600954600090815260126020526040902060030154612ae9908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612b1c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612b62908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612ba4908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208a8552909501815284832043600290910155925482529091522054612c3090612bfc908563ffffffff61484416565b6009546000908152601360209081526040808320888452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612cbd57600954600090815260126020526040902060030154612c74908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612ca7908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612ced908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612d2f908263ffffffff61484416565b600980546000908152601260209081526040808320600390810195909555925482526013815282822096825295909201909452929092204360029091015550505050505050505050565b600054600160a060020a03163314612d9057600080fd5b600954600090815260126020526040902060010155565b6009546000908152601360209081526040808320938352600393840190915290208054600182015460028301549290930154600160a060020a0390911693565b604080517e65318b000000000000000000000000000000000000000000000000000000008152306004820152905160009173b3775fb83f7d12a36e0475abdd1fca35c091efbe916265318b9160248082019260209290919082900301818787803b158015612e5457600080fd5b505af1158015612e68573d6000803e3d6000fd5b505050506040513d6020811015612e7e57600080fd5b5051905090565b6011805460ff1916600117905566038d7ea4c68000341015612ea657600080fd5b612eae612de7565b6016819055600010612ebf57600080fd5b612ec7614b58565b601654604051339180156108fc02916000818181858888f19350505050158015612ef5573d6000803e3d6000fd5b5060165460408051338152602081019290925280517f6cb996505271b3d1e209a838bce3da507741e7d6456f9b7d511098ff37b7f5289281900390910190a1565b601260205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d015490508e565b600054600160a060020a031681565b600b5481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b60085481565b60008066038d7ea4c6800034101561302c57600080fd5b600980546000908152601260205260409020600a8101549101546130559163ffffffff61483416565b43111561306457613064614859565b600954600090815260136020908152604080832033845260020190915290205483111561309057600080fd5b600183101561309e57600080fd5b600954600090815260136020526040902054600160a060020a0316331415613150576009546000908152601360205260409020600101546130e5908463ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613123908463ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915591508190506133e1565b600954600090815260136020526040902054600160a060020a031633146133e1576009546000908152601360205260409020600101548311156132f157600954600090815260136020908152604091829020548251600160a060020a039091168152339181019190915281517fa475e0e386c2b565f0cacab74df66b164ec20db6ff736b34ed1384b4cb585985929181900390910190a1600954600090815260136020908152604091829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a1600980546000908152601360205260408082208054600160a060020a0319163317905591548152206001015461327790849063ffffffff61484416565b600980546000908152601360209081526040808320600101949094559154815282812033825260020190915220546132b5908463ffffffff61484416565b600980546000908152601360208181526040808420338552600201825280842095909555925482529091522060019081015490925090506133e1565b60095460009081526013602052604090206001015483116133e157600954600090815260136020526040902060010154613331908463ffffffff61484416565b6009805460009081526013602090815260408083206001019490945591548152828120338252600201909152205461336f908463ffffffff61484416565b6009805460009081526013602081815260408084203380865260029091018352818520969096559354835290815290829020548251938452908301869052600160a060020a0316828201526060820185905251600080516020614c988339815191529181900360800190a15060009050815b915091565b66038d7ea4c680003410156133fa57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316331461342e57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316151561346257600080fd5b600954600090815260136020908152604080832033845260020190915290205481111561348e57600080fd5b600181101561349c57600080fd5b60095460009081526013602090815260408083208584526003019091529020600101546134cf908263ffffffff61483416565b600980546000908152601360208181526040808420888552600301825280842060010195909555925482528252828120338252600201909152205461351a908263ffffffff61484416565b60095460009081526013602090815260408083203384526002019091529020555050565b6009546000908152601360209081526040808320600701546012909252909120600b01541161356c57600080fd5b60098054600101808255600c546000918252601260205260408083206002018290558354835280832060030191909155600e548354835281832060050155600f5483548352818320600701559154815220436006909101556135cc614aa7565b6009805460009081526012602081815260408084204390860155845484526013808352818520805433600160a060020a031990911617905585546000198082018752858552838720600c90810154928852848820019190915586548082018752838720600d90810154918852848820015586549081018652828620600490810154918752838720015560105486548652828620600a015560115486548652908352818520600601805460ff191661010090920460ff16151591909117905593548352522061753060019190910155565b6136a7600854614bdd565b6000600855565b600054600160a060020a031633146136c557600080fd5b6009546000908152601360205260409020600601805460ff1916911515919091179055565b3360009081526006602052604081205461370a908363ffffffff61484416565b3360009081526006602052604080822092909255600160a060020a0385168152205461373c908363ffffffff61483416565b600160a060020a038416600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a350600192915050565b6000828152601560205260409020600201546137aa908263ffffffff61480f16565b3410156137b657600080fd5b600081116137c357600080fd5b6000828152601560205260409020600101548111156137e157600080fd5b600082815260156020526040902054600160a060020a031633141561380557600080fd5b3060009081526006602052604090205481111561382157600080fd5b600082815260156020526040902060010154613843908263ffffffff61484416565b600083815260156020908152604080832060010193909355338252600690522054613874908263ffffffff61483416565b3360009081526006602052604080822092909255308152205461389d908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a360008281526015602090815260409182902080546002909101548351600160a060020a0390921682529181019190915233818301526060810183905290517f86dd97753ac184a702ff1c26dbba9dfd2c7fdf8858aef4cf9bb7d66f232ef7ab9181900360800190a160008281526015602052604090208054600290910154600160a060020a03909116906108fc90613971908463ffffffff61480f16565b6040518115909202916000818181858888f19350505050158015613999573d6000803e3d6000fd5b505050565b600081116139ab57600080fd5b600082815260156020526040902054600160a060020a031633146139ce57600080fd5b306000908152600660205260409020548111156139ea57600080fd5b33600090815260066020526040902054613a0a908263ffffffff61483416565b33600090815260066020526040808220929092553081522054613a33908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a3600082815260156020526040902060010154613a8b908263ffffffff61484416565b6000928352601560205260409092206001019190915550565b66038d7ea4c68000341015613ab857600080fd5b600954600090815260136020526040902054600160a060020a03163314613ade57600080fd5b6009546000908152601360209081526040808320338452600201909152902054811115613b0a57600080fd5b6001811015613b1857600080fd5b600954600090815260136020526040902060010154613b3d908263ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613b7b908263ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205550565b600f5481565b6009546000908152601360209081526040808320600160a060020a03949094168352600584018252808320546014835281842054600286018452828520546004909601909352922054919390929190565b60008066038d7ea4c68000341015613c0c57600080fd5b600980546000908152601260205260409020600a810154910154613c359163ffffffff61483416565b431115613c4457613c44614859565b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314613c7857600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311613ca657600080fd5b600954600090815260126020526040902054613ccc90612bfc908563ffffffff61484416565b600954600090815260126020526040902060030154909150811115613d5957600954600090815260126020526040902060030154613d10908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154613d43908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054613d89908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154613dcb908263ffffffff61484416565b60098054600090815260126020908152604080832060039081019590955592548252601381528282208783529093019092529020436002909101559050919050565b336000818152600760209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015613efd578181015183820152602001613ee5565b50505050905090810190601f168015613f2a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613f4c57600080fd5b505af1158015613f60573d6000803e3d6000fd5b506001979650505050505050565b6009546000908152601360209081526040808320600160a060020a0385168452600401909152902054919050565b6013602052600090815260409020805460018201546006830154600790930154600160a060020a0390921692909160ff9091169084565b600154600160a060020a031681565b6009546000908152601260205260409020546140119066038d7ea4c6800090611dfb908463ffffffff61484416565b34101561401d57600080fd5b60095460009081526013602090815260408083209383526003938401909152902043910155565b601560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60008054600160a060020a0316331461408757600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156140f757600080fd5b505af115801561410b573d6000803e3d6000fd5b505050506040513d602081101561412157600080fd5b50519392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b6000808066038d7ea4c6800034101561416d57600080fd5b600980546000908152601260205260409020600a8101549101540143111561419757614197614859565b600954600090815260126020908152604080832060010154601383528184208985526003908101909352922001546141d49163ffffffff61483416565b90504381106141e257600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316151561421657600080fd5b600954600090815260136020908152604080832033845260020190915290205484111561424257600080fd5b600184101561425057600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a031633141561432b5760095460009081526013602090815260408083208884526003019091529020600101546142b3908563ffffffff61483416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546142fe908563ffffffff61484416565b60095460009081526013602090815260408083203384526002019091528120919091559250829150614675565b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316331461467557600954600090815260136020908152604080832088845260030190915290206001015484111561454b576009546000908152601360209081526040808320888452600301825291829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301825291829020548251600160a060020a039091168152339181019190915280820187905290517f440aa0a8b32b3d78a1599a32e5e1d787f8ed2e218875cbf64efc169fe3c544649181900360600190a16009805460009081526013602081815260408084208a8552600390810183528185208054600160a060020a031916331790559454845291815281832089845290930190925220600101546144a790859063ffffffff61484416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546144f2908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205561451b85613bf5565b50600954600090815260136020908152604080832088845260030190915290206001908101549093509150614675565b60095460009081526013602090815260408083208884526003019091529020600101548411614675576009546000908152601360209081526040808320888452600301825291829020548251338152918201879052600160a060020a031681830152606081018690529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301909152902060010154614601908563ffffffff61484416565b6009805460009081526013602081815260408084208b8552600301825280842060010195909555925482528252828120338252600201909152205461464c908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915592508391505b509250929050565b600954600090815260136020526040902054600160a060020a03163314612ebf57600080fd5b600081116146b057600080fd5b600082815260156020526040902054600160a060020a031633146146d357600080fd5b336000908152600660205260409020548111156146ef57600080fd5b3360009081526006602052604090205461470f908263ffffffff61484416565b33600090815260066020526040808220929092553081522054614738908263ffffffff61483416565b30600081815260066020908152604091829020939093558051848152905191923392600080516020614cb88339815191529281900390910190a3600082815260156020526040902060010154613a8b908263ffffffff61483416565b6009546000908152601360209081526040808320600160a060020a0385168452600501909152902054919050565b600054600160a060020a031633146147d957600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60105481565b601154610100900460ff1681565b818102821580614829575081838281151561482657fe5b04145b1515610bb957600080fd5b81810182811015610bb957600080fd5b60008282111561485357600080fd5b50900390565b600980546000908152601260205260409020600a8101549101546148829163ffffffff61483416565b431161488d57600080fd5b600980546000908152601260205260409020600a8101549101546148b69163ffffffff61483416565b6009805460009081526012602052604090200155600854614905906148f6906064906148ea9030319063ffffffff61484416565b9063ffffffff614c7616565b6008549063ffffffff61483416565b6008819055600054600160a060020a0316906108fc90614934906064906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f1935050505015801561495c573d6000803e3d6000fd5b506149a561498460026148ea60085430600160a060020a03163161484490919063ffffffff16565b6009546000908152601260205260409020600b01549063ffffffff61483416565b600980546000908152601260209081526040808320600b01949094559154815260139091522054600854600160a060020a03909116906108fc906149f8906002906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f19350505050158015614a20573d6000803e3d6000fd5b50565b600954600090815260126020526040902060078101548154600690920154614a7f92614a5e9291611dfb91908290439063ffffffff61484416565b6009546000908152601260205260409020600501549063ffffffff61483416565b6009805460009081526012602052604080822060050193909355905481522043600690910155565b600954600090815260126020526040902060028101546005909101541115614ae657600954600090815260126020526040902060028101546005909101555b60095460009081526012602052604090206005810154600290910154614b119163ffffffff614c7616565b600980546000908152601260205260408082206008908101949094559154815220015460011115614b5657600954600090815260126020526040902060016008909101555b565b73b3775fb83f7d12a36e0475abdd1fca35c091efbe600160a060020a0316633ccfd60b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614bc357600080fd5b505af1158015614bd7573d6000803e3d6000fd5b50505050565b604080517ff088d547000000000000000000000000000000000000000000000000000000008152306004820152905173b3775fb83f7d12a36e0475abdd1fca35c091efbe9163f088d54791849160248082019260209290919082900301818588803b158015614c4b57600080fd5b505af1158015614c5f573d6000803e3d6000fd5b50505050506040513d602081101561399957600080fd5b6000808211614c8457600080fd5b8183811515614c8f57fe5b04939250505056009a6711bd12448549c8fdb9001f9e0681e5913c10562075129be867d61a0651d2ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820976828163af9e0335a750972a0474122db1986ce6bbf7a2f46beb3c38aeefa4b0029
Swarm Source
bzzr://976828163af9e0335a750972a0474122db1986ce6bbf7a2f46beb3c38aeefa4b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.