Sponsored:   Ubex.com: Top ratings from all agencies. Big partnerships. 70% hard cap reached. Join us!
Contract Overview
Balance: 1.272200000000000003 Ether
Ether Value: $587.72 (@ $461.97/ETH)
Transactions: 601 txns
Token Contract: CityCoin (CITY)
Misc
Address Watch: Add To Watch List
Contract Creator: 0x2e933dd349f63fa9f71163f4a2d0a1f00abed643at txn 0x09fbd985bd2c36e2e4fdd45f437ba7d66e67305b3ab0102e778abd17ccad4edb
Token Balances:
 Latest 25 txns from a total Of 601 transactions

TxHash Age From To Value [TxFee]
0xe4bed036206c5db54fff5ada43d7f2b75a0db81fe2b769a401499df9688861109 hrs 48 mins ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000151437
0x2e28aa6482cae78b4abea464bb67caed0fcb8de9fe9a26f7534ee49f0de2d47b5 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000495105
0xe87647467ed28d95e33ff3d6583be1bf52b518b9fdb473e568069ad27e632ce75 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.0004455945
0x139ff0182b3c3941afe6da22d32de1832afca92a554496a9533f1b4c1bedd9ee5 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000107992
0xf64fb315895a097486b4dd071f40a2aff3ddceab837daa3c36c74309a3b864ec5 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.004 Ether0.000494785
0xc739922602034c3f7afef7d9c88ef3939162fa2fd33094f07b85ac2ece9fc56c5 days 9 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.01 Ether0.00026542
0x82582a2218eebd6ea39103499ea3ce945875aa81889f8fc0efde13cf82d878d85 days 9 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000485821781
0xb3be49e44d5603caa3ce18137b314f8e4977706abc44ff81aefdbe80114992f623 days 18 hrs ago0x709329dcc370898d0de55e9fc0160a0a4b971719  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000138976
0x00bf7d5492eaafc39b85c7134024cb17a3b6e2532f0a0552f909a7f5d9ee77e425 days 18 hrs ago0x2e933dd349f63fa9f71163f4a2d0a1f00abed643  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.00028353
0x93082d331c4753c4066f74ac08ff5dc3a054de1ce52f8cb33a3ddaaff7017cdc28 days 8 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000050415
0x37ad122287d9729084ac4c7538510b2988a8bd62fef93dcb9763d1b8be83f69737 days 1 hr ago0x95096780efd48fa66483bc197677e89f37ca0cb5  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000080994
0x16b0e804b439e3c4c577b265b1efeff67ef795de1eb2b0e79ef2f5edee99f35d37 days 1 hr ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.008 Ether0.000212336
0x5470fb29fcef9a5219fbe2556cb7eb46c42516936c0f165816d8a06183d2ca6037 days 1 hr ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.02 Ether0.000395828
0x87feaa6f1644949606e242c9160ce194eb6bd853c64ac5c01d7a5a23e1940c8b37 days 14 hrs ago0x709329dcc370898d0de55e9fc0160a0a4b971719  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.00050415
0x5691b87339e13983b1b1e2428c971008ce82d7f30b281874875e6974affda8f638 days 6 mins ago0x95096780efd48fa66483bc197677e89f37ca0cb5  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.008 Ether0.000593742
0xc1983da77606eca14e09a7d5effd59e0c3c5cf7eeaf6b51def34ed654c517e6641 days 3 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.0002987984
0x0e5d955d367dafbd46d666910b2828e0840ed1fe2163c09953ac6566183590ad41 days 3 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000414606
0x77324eaad3d8c1394f8c4799b7aeacf22481043ce23692087389487317dc0f9341 days 3 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.0002122806
0xbc48adbadb350fe32d7085859de57dc55fcb6221fb8a0ff719f8f2653cfb01e343 days 5 hrs ago0x401f5248dd9f71d2bb5566147a2abdecc78a3585  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000252075
0xd8a28c4f16d2e77c0711a19a7680f06192ebaf163b0887c30c60b05a7b574e3645 days 14 hrs ago0x2e933dd349f63fa9f71163f4a2d0a1f00abed643  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.001135656
0xae827aad890114c5cfbfc5a1c04bc22ecb5cdaca810388f940dc054fd3ef7aa247 days 14 hrs ago0x2e933dd349f63fa9f71163f4a2d0a1f00abed643  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.001563639
0x24e8d5cc07e3abe94e44f94d8ea92fe7f0c9973fd4bc033049ee36f811b0b86b49 days 1 hr ago0x787323e341398059b068cd167fc0882186246c7a  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.01 Ether0.0002974837
0xa3247bf12e05cd4509085b20484fa6bb90b9d2be8a80f4f88f4d7c15940a3de750 days 7 hrs ago0x401f5248dd9f71d2bb5566147a2abdecc78a3585  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000176268
0x97cfaece3400f153845e515fa81071a157c7eebf29ae0b8b98acc7dc23e9d30754 days 6 hrs ago0x2e933dd349f63fa9f71163f4a2d0a1f00abed643  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000415125
0x0954f30bd194a1c3626ce6894b63a6dd2704df0a3c03fef2e32b88f4b1f3255455 days 12 hrs ago0xa1349cde05c534e747dca402eab1c901121890d0  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000188986
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0x139ff0182b3c3941afe6da22d32de1832afca92a554496a9533f1b4c1bedd9ee59761365 days 8 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x702c4f24bd11c3851d4e2409628be7032f3b43c30.001 Ether
0xc739922602034c3f7afef7d9c88ef3939162fa2fd33094f07b85ac2ece9fc56c59760815 days 9 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x02444b241a6f7dc4d0131bf499a6656d136ac4940.0097 Ether
0x37ad122287d9729084ac4c7538510b2988a8bd62fef93dcb9763d1b8be83f697579069537 days 1 hr ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x95096780efd48fa66483bc197677e89f37ca0cb50.008 Ether
0x16b0e804b439e3c4c577b265b1efeff67ef795de1eb2b0e79ef2f5edee99f35d579052737 days 1 hr ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x401f5248dd9f71d2bb5566147a2abdecc78a35850.00776 Ether
0x97cfaece3400f153845e515fa81071a157c7eebf29ae0b8b98acc7dc23e9d307569326554 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b0.500996666666666666 Ether
0x97cfaece3400f153845e515fa81071a157c7eebf29ae0b8b98acc7dc23e9d307569326554 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x1e4f1275bb041586d7bec44d2e3e4f30e0da7ba40.500996666666666666 Ether
0x97cfaece3400f153845e515fa81071a157c7eebf29ae0b8b98acc7dc23e9d307569326554 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xd5d6301de62d82f461dc29824fc597d38d80c4240.500996666666666666 Ether
0x0954f30bd194a1c3626ce6894b63a6dd2704df0a3c03fef2e32b88f4b1f32554568609155 days 12 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xa1349cde05c534e747dca402eab1c901121890d01 Ether
0xcea7938a90caf55982d0a642d29f15daea6b9a1a8a55810ecf95ccc827d8a79f560016770 days 17 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x41b818bc8edfba76ec66a21478e018f31c2a6e460.01 Ether
0xb0d8d8dc3637da3ecf7e667aa7d63d4a9038ae20a1a8f8bd3c0ed52a0278d3a1560016770 days 17 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x41b818bc8edfba76ec66a21478e018f31c2a6e460.01 Ether
0x302f0c11eece0c4da3ece35d070ba99bfb2d4fd1487ef7d035bc31627a5f2fc9558077074 days 2 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x2e6236591bfa37c683ce60d6cfde40396a114ff10.00388 Ether
0xc7abf8762d31a0455a5bbf84cfb32a8bfc4c9456063cc5e3490e64768391a892555675578 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xb7674eb5586c8f9997399fb6e0752e096998fc9a0.04753 Ether
0xf5ff7e2ffbca1ec9b96e74aac0c4f77d8076c0b907c93752965b98707e9b1455547101293 days 3 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x8d0815976f89615041b699100b5b36370f34c60f0.0194 Ether
0x0e29a4d0d809902f69d4894338df0373afadc3d9c5f61ea1a993d45672715797545706395 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x28d7050edbf47bd1650b76151581f36821df453d0.0097 Ether
0xa6bb7a12a6afafc84074835d2860a83d0d6743561601be762149443fae82ea57545687995 days 14 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x91e89565a4623bef6bd37e88c97e8177ade9590d0.0025 Ether
0x08ae5ef090553418a6d632f51b56f4daeca4fb053997943bf32a908847493cdb545654295 days 15 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x1eb695d7575eda1f2c8a0aa6edf871b5fc73ea6d0.00776 Ether
0x7180a5ec3b778f1efd11bde78b43eded15c8a7ec9970e9727e5461d78bfdc5fc5364946110 days 22 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xb327d112a560f832765a12c72451de40af3c2be20.0485 Ether
0x20b1517333ed47c0db0250fc9c7cff6947a85d2f7b7efc812a3535e13bc7f17b5309215120 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x9efb8e49f97f36d6ecfd831286832b1eb91eaeb90.01 Ether
0xb23a347b9434580ae399f29de5f3f4190cf5c808b24c1a27b72834226188499a5309213120 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x9efb8e49f97f36d6ecfd831286832b1eb91eaeb90.01 Ether
0xef0c3d3474c6342b7439c04fbd52af5e5125c449c21e1006b930e4ee117c98c75271720126 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe44d6941c70130881561ac96ab8113b06b3136450.007 Ether
0xac178f995a24d53fae4fc68ea10911bc5fe7f33a25f7401d0e7263985eb5a6285271710126 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe44d6941c70130881561ac96ab8113b06b3136450.005 Ether
0x81f0ba97eb51e89b0d85ee3104901cecb25d543a5b7f9d44c7a4bb2c6b7b21325271702126 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe44d6941c70130881561ac96ab8113b06b3136450.005 Ether
0xd112f6797bfa398399aa33344bf3733d1b58572253e777eb6a1108164b8f0acf5264220127 days 20 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x3130259deedb3052e24fad9d5e1f490cb8cccaa00.0388 Ether
0xa2f1519702de46aa1a19692314e252a2bc1c5e1d930aca8a9a0d50a0822736775264215127 days 20 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x3130259deedb3052e24fad9d5e1f490cb8cccaa00.03395 Ether
0x8d101336a728c4e7bbae6292e0e53021daddc7c93e9878328901f3296a81e9655263494127 days 22 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xb7674eb5586c8f9997399fb6e0752e096998fc9a0.09603 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: CityMayor
Compiler Version: v0.4.20+commit.3155dd80
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.19;

library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
  	if (a == 0) {
  		return 0;
  	}
  	uint256 c = a * b;
  	assert(c / a == b);
  	return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
 // we don't need "div"
/*  function div(uint256 a, uint256 b) internal pure returns (uint256) {
  	// assert(b > 0); // Solidity automatically throws when dividing by 0
  	uint256 c = a / b;
  	// assert(a == b * c + a % b); // There is no case in which this doesn't hold
  	return c;
  }
*/
  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
  	assert(b <= a);
  	return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
  	uint256 c = a + b;
  	assert(c >= a);
  	return c;
  }
}


contract CityMayor {

	using SafeMath for uint256;

	//
	// ERC-20
	//

   	string public name = "CityCoin";
   	string public symbol = "CITY";
   	uint8 public decimals = 0;

	mapping(address => uint256) balances;

	event Approval(address indexed owner, address indexed spender, uint256 value);
	event Transfer(address indexed from, address indexed to, uint256 value);

	/**
	* @dev total number of tokens in existence
	*/
	uint256 totalSupply_;
	function totalSupply() public view returns (uint256) {
		return totalSupply_;
	}

	/**
	* @dev transfer token for a specified address
	* @param _to The address to transfer to.
	* @param _value The amount to be transferred.
	*/
	function transfer(address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));
		require(_value <= balances[msg.sender]);

		// SafeMath.sub will throw if there is not enough balance.
		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);
		Transfer(msg.sender, _to, _value);
		return true;
	}

	/**
	* @dev Gets the balance of the specified address.
	* @param _owner The address to query the the balance of.
	* @return An uint256 representing the amount owned by the passed address.
	*/
	function balanceOf(address _owner) public view returns (uint256 balance) {
		return balances[_owner];
	}

	mapping (address => mapping (address => uint256)) internal allowed;


	/**
	* @dev Transfer tokens from one address to another
	* @param _from address The address which you want to send tokens from
	* @param _to address The address which you want to transfer to
	* @param _value uint256 the amount of tokens to be transferred
	*/
	function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));
		require(_value <= balances[_from]);
		require(_value <= allowed[_from][msg.sender]);

		balances[_from] = balances[_from].sub(_value);
		balances[_to] = balances[_to].add(_value);
		allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
		Transfer(_from, _to, _value);
		return true;
	}

	/**
	* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
	*
	* Beware that changing an allowance with this method brings the risk that someone may use both the old
	* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
	* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
	* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
	* @param _spender The address which will spend the funds.
	* @param _value The amount of tokens to be spent.
	*/
	function approve(address _spender, uint256 _value) public returns (bool) {
		allowed[msg.sender][_spender] = _value;
		Approval(msg.sender, _spender, _value);
		return true;
	}

	/**
	* @dev Function to check the amount of tokens that an owner allowed to a spender.
	* @param _owner address The address which owns the funds.
	* @param _spender address The address which will spend the funds.
	* @return A uint256 specifying the amount of tokens still available for the spender.
	*/
	function allowance(address _owner, address _spender) public view returns (uint256) {
		return allowed[_owner][_spender];
	}

	/**
	* @dev Increase the amount of tokens that an owner allowed to a spender.
	*
	* approve should be called when allowed[_spender] == 0. To increment
	* allowed value is better to use this function to avoid 2 calls (and wait until
	* the first transaction is mined)
	* From MonolithDAO Token.sol
	* @param _spender The address which will spend the funds.
	* @param _addedValue The amount of tokens to increase the allowance by.
	*/
	function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
		allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
		Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
		return true;
	}

	/**
	* @dev Decrease the amount of tokens that an owner allowed to a spender.
	*
	* approve should be called when allowed[_spender] == 0. To decrement
	* allowed value is better to use this function to avoid 2 calls (and wait until
	* the first transaction is mined)
	* From MonolithDAO Token.sol
	* @param _spender The address which will spend the funds.
	* @param _subtractedValue The amount of tokens to decrease the allowance by.
	*/
	function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
		uint oldValue = allowed[msg.sender][_spender];
		if (_subtractedValue > oldValue) {
			allowed[msg.sender][_spender] = 0;
			} else {
				allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
			}
			Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
			return true;
		}

   	//
   	// Game Meta values
   	//

   	address public unitedNations; // the UN organisation

   	uint16 public MAX_CITIES = 5000; // maximum amount of cities in our world
   	uint256 public UNITED_NATIONS_FUND = 5000000; // initial funding for the UN
   	uint256 public ECONOMY_BOOST = 5000; // minted CITYs when a new city is being bought 

   	uint256 public BUY_CITY_FEE = 3; // UN fee (% of ether) to buy a city from someon / 100e
   	uint256 public ECONOMY_BOOST_TRADE = 100; // _immutable_ gift (in CITY) from the UN when a city is traded (shared among the cities of the relevant country)

   	uint256 public MONUMENT_UN_FEE = 3; // UN fee (CITY) to buy a monument
   	uint256 public MONUMENT_CITY_FEE = 3; // additional fee (CITY) to buy a monument (shared to the monument's city)

   	//
   	// Game structures
   	//

   	struct country {
   		string name;
   		uint16[] cities;
   	}

   	struct city {
   		string name;
   		uint256 price;
   		address owner;

   		uint16 countryId;
   		uint256[] monuments;

   		bool buyable; // set to true when it can be bought

   		uint256 last_purchase_price;
   	}

   	struct monument {
   		string name;
   		uint256 price;
   		address owner;

   		uint16 cityId;
   	}

   	city[] public cities; // cityId -> city
   	country[] public countries; // countryId -> country
   	monument[] public monuments; // monumentId -> monument

   	// total amount of offers (escrowed money)
	uint256 public totalOffer;

   	//
   	// Game events
   	//


	event NewCity(uint256 cityId, string name, uint256 price, uint16 countryId);
	event NewMonument(uint256 monumentId, string name, uint256 price, uint16 cityId);

	event CityForSale(uint16 cityId, uint256 price);
	event CitySold(uint16 cityId, uint256 price, address previousOwner, address newOwner, uint256 offerId);

	event MonumentSold(uint256 monumentId, uint256 price);

   	// 
   	// Admin stuff
   	//

   	// constructor
   	function CityMayor() public {
   		unitedNations = msg.sender;
   		balances[unitedNations] = UNITED_NATIONS_FUND; // initial funding for the united nations
   		uint256 perFounder = 500000;
   		balances[address(0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b)] = perFounder; // david
   		balances[address(0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4)] = perFounder; // simon
   		balances[address(0xD5d6301dE62D82F461dC29824FC597D38d80c424)] = perFounder; // eric
   		// total supply updated
   		totalSupply_ = UNITED_NATIONS_FUND + 3 * perFounder;
   	}

   	// this function is used to let admins give cities back to owners of previous contracts
   	function AdminBuyForSomeone(uint16 _cityId, address _owner) public {
   		// admin only
   		require(msg.sender == unitedNations);
	   	// fetch
	   	city memory fetchedCity = cities[_cityId];
	   	// requires
		require(fetchedCity.buyable == true);
		require(fetchedCity.owner == 0x0); 
	   	// transfer ownership
	   	cities[_cityId].owner = _owner;
	   	// update city metadata
	   	cities[_cityId].buyable = false;
	   	cities[_cityId].last_purchase_price = fetchedCity.price;
	   	// increase economy of region according to ECONOMY_BOOST
	   	uint16[] memory fetchedCities = countries[fetchedCity.countryId].cities;
	   	uint256 perCityBoost = ECONOMY_BOOST / fetchedCities.length;
	   	for(uint16 ii = 0; ii < fetchedCities.length; ii++){
	   		address _to = cities[fetchedCities[ii]].owner;
	   		if(_to != 0x0) { // MINT only if address exists
	   			balances[_to] = balances[_to].add(perCityBoost);
	   			totalSupply_ += perCityBoost; // update the total supply
	   		}
	   	}
	   	// event
	   	CitySold(_cityId, fetchedCity.price, 0x0, _owner, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);	
   	}

   	// this function allows to make an offer from someone else
	function makeOfferForCityForSomeone(uint16 _cityId, uint256 _price, address from) public payable {
		// only for admins
		require(msg.sender == unitedNations);
		// requires
		require(cities[_cityId].owner != 0x0);
		require(_price > 0);
		require(msg.value >= _price);
		require(cities[_cityId].owner != from);
		// add the offer
		uint256 lastId = offers.push(offer(_cityId, _price, from)) - 1;
		// increment totalOffer
		totalOffer = totalOffer.add(_price);
		// event
		OfferForCity(lastId, _cityId, _price, from, cities[_cityId].owner);
	}

	// withdrawing funds
	function adminWithdraw(uint256 _amount) public {
		require(msg.sender == 0xD5d6301dE62D82F461dC29824FC597D38d80c424 || msg.sender == 0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4 || msg.sender == 0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b || msg.sender == unitedNations);
		// do not touch the escrowed money
		uint256 totalAvailable = this.balance.sub(totalOffer);
		if(_amount > totalAvailable) {
			_amount = totalAvailable;
		}
		// divide the amount for founders
		uint256 perFounder = _amount / 3;
		address(0xD5d6301dE62D82F461dC29824FC597D38d80c424).transfer(perFounder); // eric
		address(0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4).transfer(perFounder); // simon
		address(0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b).transfer(perFounder); // david
	}

	//
	// Admin adding stuff
	//

	// we need to add a country before we can add a city
	function adminAddCountry(string _name) public returns (uint256) {
		// requires
		require(msg.sender == unitedNations);
		// add country
		uint256 lastId = countries.push(country(_name, new uint16[](0))) - 1; 
		//
		return lastId;
	}
	// adding a city will mint ECONOMY_BOOST citycoins (country must exist)
	function adminAddCity(string _name, uint256 _price, uint16 _countryId) public returns (uint256) {
		// requires
		require(msg.sender == unitedNations);
		require(cities.length < MAX_CITIES);
		// add city
		uint256 lastId = cities.push(city(_name, _price, 0, _countryId, new uint256[](0), true, 0)) - 1;
		countries[_countryId].cities.push(uint16(lastId));
		// event
		NewCity(lastId, _name, _price, _countryId);
		//
		return lastId;
	}

	// adding a monument (city must exist)
	function adminAddMonument(string _name, uint256 _price, uint16 _cityId) public returns (uint256) {
		// requires
		require(msg.sender == unitedNations);
		require(_price > 0);
		// add monument
		uint256 lastId = monuments.push(monument(_name, _price, 0, _cityId)) - 1;
		cities[_cityId].monuments.push(lastId);
		// event
		NewMonument(lastId, _name, _price, _cityId);
		//
		return lastId;
	}

	// Edit a city if it hasn't been bought yet
	function adminEditCity(uint16 _cityId, string _name, uint256 _price, address _owner) public {
		// requires
		require(msg.sender == unitedNations);
		require(cities[_cityId].owner == 0x0);
		//
		cities[_cityId].name = _name;
		cities[_cityId].price = _price;
		cities[_cityId].owner = _owner;
	}

	// 
	// Buy and manage a city
	//

	function buyCity(uint16 _cityId) public payable {
		// fetch
		city memory fetchedCity = cities[_cityId];
		// requires
		require(fetchedCity.buyable == true);
		require(fetchedCity.owner == 0x0); 
		require(msg.value >= fetchedCity.price);
		// transfer ownership
		cities[_cityId].owner = msg.sender;
		// update city metadata
		cities[_cityId].buyable = false;
		cities[_cityId].last_purchase_price = fetchedCity.price;
		// increase economy of region according to ECONOMY_BOOST
		uint16[] memory fetchedCities = countries[fetchedCity.countryId].cities;
		uint256 perCityBoost = ECONOMY_BOOST / fetchedCities.length;
		for(uint16 ii = 0; ii < fetchedCities.length; ii++){
			address _to = cities[fetchedCities[ii]].owner;
			if(_to != 0x0) { // MINT only if address exists
				balances[_to] = balances[_to].add(perCityBoost);
				totalSupply_ += perCityBoost; // update the total supply
			}
		}
		// event
		CitySold(_cityId, fetchedCity.price, 0x0, msg.sender, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
	}

	//
	// Economy boost:
	// this is called by functions below that will "buy a city from someone else"
	// it will draw ECONOMY_BOOST_TRADE CITYs from the UN funds and split them in the relevant country
	//

	function economyBoost(uint16 _countryId, uint16 _excludeCityId) private {
		if(balances[unitedNations] < ECONOMY_BOOST_TRADE) {
			return; // unless the UN has no more funds
		}
		uint16[] memory fetchedCities = countries[_countryId].cities;
		if(fetchedCities.length == 1) {
			return;
		}
		uint256 perCityBoost = ECONOMY_BOOST_TRADE / (fetchedCities.length - 1); // excluding the bought city
		for(uint16 ii = 0; ii < fetchedCities.length; ii++){
			address _to = cities[fetchedCities[ii]].owner;
			if(_to != 0x0 && fetchedCities[ii] != _excludeCityId) { // only if address exists AND not the current city
				balances[_to] = balances[_to].add(perCityBoost);
				balances[unitedNations] -= perCityBoost;
			}
		}
	}

	//
	// Sell a city
	//

	// step 1: owner sets buyable = true
	function sellCityForEther(uint16 _cityId, uint256 _price) public {
		// requires
		require(cities[_cityId].owner == msg.sender);
		// for sale
		cities[_cityId].price = _price;
		cities[_cityId].buyable = true;
		// event
		CityForSale(_cityId, _price);
	}

	event CityNotForSale(uint16 cityId);

	// step 2: owner can always cancel 
	function cancelSellCityForEther(uint16 _cityId) public {
		// requires
		require(cities[_cityId].owner == msg.sender);
		//
		cities[_cityId].buyable = false;
		// event
		CityNotForSale(_cityId);
	}

	// step 3: someone else accepts the offer
	function resolveSellCityForEther(uint16 _cityId) public payable {
		// fetch
		city memory fetchedCity = cities[_cityId];
		// requires
		require(fetchedCity.buyable == true);
		require(msg.value >= fetchedCity.price);
		require(fetchedCity.owner != msg.sender);
		// calculate the fee
		uint256 fee = BUY_CITY_FEE.mul(fetchedCity.price) / 100;
		// pay the price
		address previousOwner =	fetchedCity.owner;
		previousOwner.transfer(fetchedCity.price.sub(fee));
		// transfer of ownership
		cities[_cityId].owner = msg.sender;
		// update metadata
		cities[_cityId].buyable = false;
		cities[_cityId].last_purchase_price = fetchedCity.price;
		// increase economy of region
		economyBoost(fetchedCity.countryId, _cityId);
		// event
		CitySold(_cityId, fetchedCity.price, previousOwner, msg.sender, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
	}

	//
	// Make an offer for a city
	//

	struct offer {
		uint16 cityId;
		uint256 price;
		address from;
	}

	offer[] public offers;

	event OfferForCity(uint256 offerId, uint16 cityId, uint256 price, address offererAddress, address owner);
	event CancelOfferForCity(uint256 offerId);

	// 1. we make an offer for some cityId that we don't own yet (we deposit money in escrow)
	function makeOfferForCity(uint16 _cityId, uint256 _price) public payable {
		// requires
		require(cities[_cityId].owner != 0x0);
		require(_price > 0);
		require(msg.value >= _price);
		require(cities[_cityId].owner != msg.sender);
		// add the offer
		uint256 lastId = offers.push(offer(_cityId, _price, msg.sender)) - 1;
		// increment totalOffer
		totalOffer = totalOffer.add(_price);
		// event
		OfferForCity(lastId, _cityId, _price, msg.sender, cities[_cityId].owner);
	}

	// 2. we cancel it (getting back our money)
	function cancelOfferForCity(uint256 _offerId) public {
		// fetch
		offer memory offerFetched = offers[_offerId];
		// requires
		require(offerFetched.from == msg.sender);
		// refund
		msg.sender.transfer(offerFetched.price);
		// decrement totaloffer
		totalOffer = totalOffer.sub(offerFetched.price);
		// remove offer
		offers[_offerId].cityId = 0;
		offers[_offerId].price = 0;
		offers[_offerId].from = 0x0;
		// event
		CancelOfferForCity(_offerId);
	}

	// 3. the city owner can accept the offer
	function acceptOfferForCity(uint256 _offerId, uint16 _cityId, uint256 _price) public {
		// fetch
		city memory fetchedCity = cities[_cityId];
		offer memory offerFetched = offers[_offerId];
		// requires
		require(offerFetched.cityId == _cityId);
		require(offerFetched.from != 0x0);
		require(offerFetched.from != msg.sender);
		require(offerFetched.price == _price);
		require(fetchedCity.owner == msg.sender);
		// compute the fee
		uint256 fee = BUY_CITY_FEE.mul(_price) / 100;
		// transfer the escrowed money
		uint256 priceSubFee = _price.sub(fee);
		cities[_cityId].owner.transfer(priceSubFee);
		// decrement tracked amount of escrowed ethers
		totalOffer = totalOffer.sub(priceSubFee);
		// transfer of ownership
		cities[_cityId].owner = offerFetched.from;
		// update metadata
		cities[_cityId].last_purchase_price = _price;
		cities[_cityId].buyable = false; // in case it was also set to be purchasable
		// increase economy of region 
		economyBoost(fetchedCity.countryId, _cityId);
		// event
		CitySold(_cityId, _price, msg.sender, offerFetched.from, _offerId);
		// remove offer
		offers[_offerId].cityId = 0;
		offers[_offerId].price = 0;
		offers[_offerId].from = 0x0;
	}

	//
	// in-game use of CITYs
	//

	/* 
   	uint256 public MONUMENT_UN_FEE = 3; // UN fee (CITY) to buy a monument
   	uint256 public MONUMENT_CITY_FEE = 3; // additional fee (CITY) to buy a monument (shared to the monument's city)
   	*/

	// anyone can buy a monument from someone else (with CITYs)
	function buyMonument(uint256 _monumentId, uint256 _price) public {
		// fetch
		monument memory fetchedMonument = monuments[_monumentId];
		// requires
		require(fetchedMonument.price > 0);
		require(fetchedMonument.price == _price);
		require(balances[msg.sender] >= _price);
		require(fetchedMonument.owner != msg.sender);
		// pay first!
		balances[msg.sender] = balances[msg.sender].sub(_price);
		// compute fee
		uint256 UN_fee = MONUMENT_UN_FEE.mul(_price) / 100;
		uint256 city_fee = MONUMENT_CITY_FEE.mul(_price) / 100;
		// previous owner gets paid
		uint256 toBePaid = _price.sub(UN_fee);
		toBePaid = toBePaid.sub(city_fee);
		balances[fetchedMonument.owner] = balances[fetchedMonument.owner].add(toBePaid);
		// UN gets a fee
		balances[unitedNations] = balances[unitedNations].add(UN_fee);
		// city gets a fee
		address cityOwner = cities[fetchedMonument.cityId].owner;
		balances[cityOwner] = balances[cityOwner].add(city_fee);
		// transfer of ownership
		monuments[_monumentId].owner = msg.sender;
		// price increase of the monument
		monuments[_monumentId].price = monuments[_monumentId].price.mul(2);
		// event
		MonumentSold(_monumentId, _price);
	}

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"countries","outputs":[{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"monuments","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"cityId","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BUY_CITY_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNITED_NATIONS_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ECONOMY_BOOST_TRADE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cities","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"countryId","type":"uint16"},{"name":"buyable","type":"bool"},{"name":"last_purchase_price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unitedNations","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"adminWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MONUMENT_UN_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_monumentId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"buyMonument","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"resolveSellCityForEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"offers","outputs":[{"name":"cityId","type":"uint16"},{"name":"price","type":"uint256"},{"name":"from","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"sellCityForEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"cancelSellCityForEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"buyCity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_countryId","type":"uint16"}],"name":"adminAddCity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_CITIES","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ECONOMY_BOOST","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offerId","type":"uint256"}],"name":"cancelOfferForCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_cityId","type":"uint16"}],"name":"adminAddMonument","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalOffer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MONUMENT_CITY_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"adminAddCountry","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offerId","type":"uint256"},{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"acceptOfferForCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_owner","type":"address"}],"name":"AdminBuyForSomeone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"},{"name":"from","type":"address"}],"name":"makeOfferForCityForSomeone","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"makeOfferForCity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_owner","type":"address"}],"name":"adminEditCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"countryId","type":"uint16"}],"name":"NewCity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"monumentId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"cityId","type":"uint16"}],"name":"NewMonument","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"}],"name":"CityForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"offerId","type":"uint256"}],"name":"CitySold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"monumentId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"MonumentSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"}],"name":"CityNotForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"offerId","type":"uint256"},{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"offererAddress","type":"address"},{"indexed":false,"name":"owner","type":"address"}],"name":"OfferForCity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"offerId","type":"uint256"}],"name":"CancelOfferForCity","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260408051908101604052600881527f43697479436f696e000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001c4565b5060408051908101604052600481527f43495459000000000000000000000000000000000000000000000000000000006020820152600190805162000097929160200190620001c4565b506002805460ff191690556006805460a060020a61ffff0219167513880000000000000000000000000000000000000000179055624c4b40600755611388600855600360098190556064600a55600b819055600c553415620000f857600080fd5b60068054600160a060020a03191633600160a060020a039081169190911791829055600754911660009081526003602052604081208290556207a1207f2a63bad538ddfd395ab8dde62aff1acbfa309d3fb83ed3c9561e48c9de00f0188190557fa15da8895dd182a72e987ecbc3bb37499548bcf2a89927ee3bec9d96511d77e581905573d5d6301de62d82f461dc29824fc597d38d80c4249091527f51ab90ea3a05b09d43d4d4be3921347ba395ef247be34b90afb47cc8332a5b00556216e3600160045562000269565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020757805160ff191683800117855562000237565b8280016001018555821562000237579182015b82811115620002375782518255916020019190600101906200021a565b506200024592915062000249565b5090565b6200026691905b8082111562000245576000815560010162000250565b90565b613be180620002796000396000f3006060604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101e757806308e9daa514610271578063095ea7b31461030f57806318160ddd1461034557806323b872dd1461036a578063313ce5671461039257806337f83291146103bb5780634a87e08a1461047c5780634c34d7e91461048f5780635a768e4a146104a257806366188463146104b55780636a51b918146104d75780636e2c10a1146105a957806370a08231146105d85780637c5b4a37146105f757806382b57b961461060f578063839acf14146106225780638973e3161461063b5780638a72ea6a1461064a57806395d89b411461069257806396dbad1e146106a55780639e65a03a146106c2578063a0bde945146106dc578063a25fc8dc146106eb578063a2741bdb14610747578063a27c175614610771578063a9059cbb14610784578063ae93e513146107a6578063b2bdc6b3146107bc578063bd1de90014610818578063d02e8f701461082b578063d73dd6231461083e578063db5a277814610860578063dc1c1389146108b1578063dd62ed3e146108d1578063e3b55276146108f6578063e6c89d4a1461091c578063ee5845cc1461093a578063f93e2d311461094c575b600080fd5b34156101f257600080fd5b6101fa6109b6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023657808201518382015260200161021e565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027c57600080fd5b610287600435610a54565b604051602080825282546002600019610100600184161502019091160490820181905281906040820190849080156103005780601f106102d557610100808354040283529160200191610300565b820191906000526020600020905b8154815290600101906020018083116102e357829003601f168201915b50509250505060405180910390f35b341561031a57600080fd5b610331600160a060020a0360043516602435610a77565b604051901515815260200160405180910390f35b341561035057600080fd5b610358610ae3565b60405190815260200160405180910390f35b341561037557600080fd5b610331600160a060020a0360043581169060243516604435610aea565b341561039d57600080fd5b6103a5610c6c565b60405160ff909116815260200160405180910390f35b34156103c657600080fd5b6103d1600435610c75565b60405160208101849052600160a060020a038316604082015261ffff821660608201526080808252855460026000196101006001841615020190911604908201819052819060a08201908790801561046a5780601f1061043f5761010080835404028352916020019161046a565b820191906000526020600020905b81548152906001019060200180831161044d57829003601f168201915b50509550505050505060405180910390f35b341561048757600080fd5b610358610cba565b341561049a57600080fd5b610358610cc0565b34156104ad57600080fd5b610358610cc6565b34156104c057600080fd5b610331600160a060020a0360043516602435610ccc565b34156104e257600080fd5b6104ed600435610dc8565b60405160208101869052600160a060020a038516604082015261ffff84166060820152821515608082015260a0810182905260c0808252875460026000196101006001841615020190911604908201819052819060e0820190899080156105955780601f1061056a57610100808354040283529160200191610595565b820191906000526020600020905b81548152906001019060200180831161057857829003601f168201915b505097505050505050505060405180910390f35b34156105b457600080fd5b6105bc610e1e565b604051600160a060020a03909116815260200160405180910390f35b34156105e357600080fd5b610358600160a060020a0360043516610e2d565b341561060257600080fd5b61060d600435610e48565b005b341561061a57600080fd5b610358610fc7565b341561062d57600080fd5b61060d600435602435610fcd565b61060d61ffff600435166113da565b341561065557600080fd5b61066060043561173b565b60405161ffff90931683526020830191909152600160a060020a03166040808301919091526060909101905180910390f35b341561069d57600080fd5b6101fa61177a565b34156106b057600080fd5b61060d61ffff600435166024356117e5565b34156106cd57600080fd5b61060d61ffff600435166118cc565b61060d61ffff60043516611982565b34156106f657600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff169350611dcf92505050565b341561075257600080fd5b61075a61206b565b60405161ffff909116815260200160405180910390f35b341561077c57600080fd5b61035861207c565b341561078f57600080fd5b610331600160a060020a0360043516602435612082565b34156107b157600080fd5b61060d60043561217d565b34156107c757600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff16935061231992505050565b341561082357600080fd5b6103586124c0565b341561083657600080fd5b6103586124c6565b341561084957600080fd5b610331600160a060020a03600435166024356124cc565b341561086b57600080fd5b61035860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061257095505050505050565b34156108bc57600080fd5b61060d60043561ffff60243516604435612626565b34156108dc57600080fd5b610358600160a060020a0360043581169060243516612aea565b341561090157600080fd5b61060d61ffff60043516600160a060020a0360243516612b15565b61060d61ffff60043516602435600160a060020a0360443516612f6e565b61060d61ffff60043516602435613170565b341561095757600080fd5b61060d6004803561ffff169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505084359460200135600160a060020a0316935061335692505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b505050505081565b600e805482908110610a6257fe5b60009182526020909120600290910201905081565b600160a060020a03338116600081815260056020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6004545b90565b6000600160a060020a0383161515610b0157600080fd5b600160a060020a038416600090815260036020526040902054821115610b2657600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522054821115610b5957600080fd5b600160a060020a038416600090815260036020526040902054610b82908363ffffffff61345916565b600160a060020a038086166000908152600360205260408082209390935590851681522054610bb7908363ffffffff61346b16565b600160a060020a03808516600090815260036020908152604080832094909455878316825260058152838220339093168252919091522054610bff908363ffffffff61345916565b600160a060020a03808616600081815260056020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60025460ff1681565b600f805482908110610c8357fe5b600091825260209091206003909102016001810154600282015491925090600160a060020a0381169060a060020a900461ffff1684565b60095481565b60075481565b600a5481565b600160a060020a03338116600090815260056020908152604080832093861683529290529081205480831115610d2957600160a060020a033381166000908152600560209081526040808320938816835292905290812055610d60565b610d39818463ffffffff61345916565b600160a060020a033381166000908152600560209081526040808320938916835292905220555b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600d805482908110610dd657fe5b6000918252602090912060069091020160018101546002820154600483015460058401549394509192600160a060020a0382169260a060020a90920461ffff169160ff169086565b600654600160a060020a031681565b600160a060020a031660009081526003602052604090205490565b60008073d5d6301de62d82f461dc29824fc597d38d80c424600160a060020a0333161480610e925750731e4f1275bb041586d7bec44d2e3e4f30e0da7ba4600160a060020a033316145b80610eb9575073e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b600160a060020a033316145b80610ed2575060065433600160a060020a039081169116145b1515610edd57600080fd5b601054610efb90600160a060020a033016319063ffffffff61345916565b915081831115610f09578192505b506003820473d5d6301de62d82f461dc29824fc597d38d80c4246108fc82150282604051600060405180830381858888f193505050501515610f4a57600080fd5b731e4f1275bb041586d7bec44d2e3e4f30e0da7ba481156108fc0282604051600060405180830381858888f193505050501515610f8657600080fd5b73e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b81156108fc0282604051600060405180830381858888f193505050501515610fc257600080fd5b505050565b600b5481565b610fd56136a0565b600080600080600f87815481101515610fea57fe5b906000526020600020906003020160806040519081016040529081600082018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561109d5780601f106110725761010080835404028352916020019161109d565b820191906000526020600020905b81548152906001019060200180831161108057829003601f168201915b50505091835250506001820154602080830191909152600290920154600160a060020a038116604083015260a060020a900461ffff16606090910152909550600090860151116110ec57600080fd5b858560200151146110fc57600080fd5b600160a060020a0333166000908152600360205260409020548690101561112257600080fd5b33600160a060020a03168560400151600160a060020a0316141561114557600080fd5b600160a060020a03331660009081526003602052604090205461116e908763ffffffff61345916565b600160a060020a033316600090815260036020526040902055600b5460649061119d908863ffffffff61348116565b8115156111a657fe5b04935060646111c087600c5461348190919063ffffffff16565b8115156111c957fe5b0492506111dc868563ffffffff61345916565b91506111ee828463ffffffff61345916565b915061122382600360008860400151600160a060020a031681526020810191909152604001600020549063ffffffff61346b16565b600360008760400151600160a060020a0390811682526020808301939093526040918201600090812094909455600654168352600390915290205461126e908563ffffffff61346b16565b600654600160a060020a0316600090815260036020526040902055600d606086015161ffff168154811015156112a057fe5b6000918252602080832060026006909302019190910154600160a060020a031680835260039091526040909120549091506112e1908463ffffffff61346b16565b600160a060020a038216600090815260036020526040902055600f80543391908990811061130b57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055506113746002600f8981548110151561135457fe5b90600052602060002090600302016001015461348190919063ffffffff16565b600f80548990811061138257fe5b9060005260206000209060030201600101819055507f7c9ad11aa27b57eb5eea52d3d9a74277b8454eeef2c3aa9e999d882267674e99878760405191825260208201526040908101905180910390a150505050505050565b6113e26136cf565b600080600d8461ffff168154811015156113f857fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ab5780601f10611480576101008083540402835291602001916114ab565b820191906000526020600020905b81548152906001019060200180831161148e57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050509183525050600482015460ff1615156020820152600590910154604090910152925060a0830151151560011461157857600080fd5b826020015134101561158957600080fd5b33600160a060020a03168360400151600160a060020a031614156115ac57600080fd5b60646115c584602001516009549063ffffffff61348116565b8115156115ce57fe5b0491508260400151905080600160a060020a03166108fc6115fa8486602001519063ffffffff61345916565b9081150290604051600060405180830381858888f19350505050151561161f57600080fd5b33600d8561ffff1681548110151561163357fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff871690811061167757fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508260200151600d805461ffff87169081106116b657fe5b9060005260206000209060060201600501819055506116d98360600151856134ac565b600080516020613b96833981519152848460200151833360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050565b601180548290811061174957fe5b600091825260209091206003909102018054600182015460029092015461ffff9091169250600160a060020a031683565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b33600160a060020a0316600d8361ffff1681548110151561180257fe5b6000918252602090912060026006909202010154600160a060020a03161461182957600080fd5b80600d8361ffff1681548110151561183d57fe5b9060005260206000209060060201600101819055506001600d8361ffff1681548110151561186757fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f0b986d5d004281c772a464f4eacd47239e3226bb5d8d17e69f5e37f5ddb7e654828260405161ffff909216825260208201526040908101905180910390a15050565b33600160a060020a0316600d8261ffff168154811015156118e957fe5b6000918252602090912060026006909202010154600160a060020a03161461191057600080fd5b6000600d8261ffff1681548110151561192557fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f3c0759c341f371c2750cb2ceeeb6ec99ea2f1c90c2334b005ed637525c7afc5c8160405161ffff909116815260200160405180910390a150565b61198a6136cf565b611992613719565b6000806000600d8661ffff168154811015156119aa57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a5d5780601f10611a3257610100808354040283529160200191611a5d565b820191906000526020600020905b815481529060010190602001808311611a4057829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015611af257602002820191906000526020600020905b815481526020019060010190808311611ade575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114611b2a57600080fd5b8460400151600160a060020a031615611b4257600080fd5b8460200151341015611b5357600080fd5b33600d8761ffff16815481101515611b6757fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8916908110611bab57fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8916908110611bea57fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515611c1657fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015611c9957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611c605790505b505050505093508351600854811515611cae57fe5b049250600091505b83518261ffff161015611d6a57600d848361ffff1681518110611cd557fe5b9060200190602002015161ffff16815481101515611cef57fe5b6000918252602090912060026006909202010154600160a060020a031690508015611d5f57600160a060020a038116600090815260036020526040902054611d3d908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190611cb6565b600080516020613b9683398151915286866020015160003360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a1505050505050565b600654600090819033600160a060020a03908116911614611def57600080fd5b600654600d5460a060020a90910461ffff169010611e0c57600080fd5b6001600d8054806001018281611e22919061372b565b9160005260206000209060060201600060e0604051908101604052808a81526020018981526020016000600160a060020a031681526020018861ffff1681526020016000604051805910611e735750595b90808252806020026020018201604052508152600160208201526000604090910152919050815181908051611eac929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff160217905550608082015181600301908051611f1b9291602001906137d5565b5060a082015160048201805460ff191691151591909117905560c082015181600501555050039050600e8361ffff16815481101515611f5657fe5b90600052602060002090600202016001018054806001018281611f79919061380f565b916000526020600020906010918282040191900660020283909190916101000a81548161ffff021916908361ffff160217905550507f6aea3abde5fe13332dca1abdda86999b40570d7328d1ff22df39b639ef7930d6818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360005b8381101561202657808201518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1949350505050565b60065460a060020a900461ffff1681565b60085481565b6000600160a060020a038316151561209957600080fd5b600160a060020a0333166000908152600360205260409020548211156120be57600080fd5b600160a060020a0333166000908152600360205260409020546120e7908363ffffffff61345916565b600160a060020a03338116600090815260036020526040808220939093559085168152205461211c908363ffffffff61346b16565b600160a060020a0380851660008181526003602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b612185613843565b601180548390811061219357fe5b906000526020600020906003020160606040519081016040908152825461ffff16825260018301546020830152600290920154600160a060020a0390811692820192835290925033169051600160a060020a0316146121f157600080fd5b33600160a060020a03166108fc82602001519081150290604051600060405180830381858888f19350505050151561222857600080fd5b61223f81602001516010549063ffffffff61345916565b60105560118054600091908490811061225457fe5b60009182526020822060039190910201805461ffff191661ffff9390931692909217909155601180548490811061228757fe5b90600052602060002090600302016001018190555060006011838154811015156122ad57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055507fb0afb0649ace03a89dfaef4e0ec1b57a8147430a37de1d0bd938cf0e1ba1d4cc8260405190815260200160405180910390a15050565b600654600090819033600160a060020a0390811691161461233957600080fd5b6000841161234657600080fd5b6001600f805480600101828161235c9190613863565b91600052602060002090600302016000608060405190810160409081528a8252602082018a905260009082015261ffff881660608201529190508151819080516123aa929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff1602179055505050039050600d8361ffff1681548110151561241757fe5b9060005260206000209060060201600301805480600101828161243a919061388f565b5060009182526020909120018190557f3d9d17a8fce809f94f985369b4789ce434e54d263e670183cad99a99d83300a1818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360008381101561202657808201518382015260200161200e565b60105481565b600c5481565b600160a060020a033381166000908152600560209081526040808320938616835292905290812054612504908363ffffffff61346b16565b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600654600090819033600160a060020a0390811691161461259057600080fd5b6001600e80548060010182816125a691906138b3565b91600052602060002090600202016000604080519081016040528088815260200160006040518059106125d65750595b90808252806020026020018201604052509052919050815181908051612600929160200190613757565b5060208201518160010190805161261b9291602001906138df565b505050039392505050565b61262e6136cf565b612636613843565b600080600d8661ffff1681548110151561264c57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126ff5780601f106126d4576101008083540402835291602001916126ff565b820191906000526020600020905b8154815290600101906020018083116126e257829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561279457602002820191906000526020600020905b815481526020019060010190808311612780575b5050509183525050600482015460ff16151560208201526005909101546040909101526011805491955090889081106127c957fe5b906000526020600020906003020160606040519081016040908152825461ffff908116835260018401546020840152600290930154600160a060020a03169082015293508616835161ffff161461281f57600080fd5b8260400151600160a060020a0316151561283857600080fd5b33600160a060020a03168360400151600160a060020a0316141561285b57600080fd5b8483602001511461286b57600080fd5b33600160a060020a03168460400151600160a060020a03161461288d57600080fd5b6009546064906128a3908763ffffffff61348116565b8115156128ac57fe5b0491506128bf858363ffffffff61345916565b9050600d8661ffff168154811015156128d457fe5b6000918252602090912060026006909202010154600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561291857600080fd5b60105461292b908263ffffffff61345916565b6010556040830151600d805461ffff891690811061294557fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084600d8761ffff1681548110151561298e57fe5b9060005260206000209060060201600501819055506000600d8761ffff168154811015156129b857fe5b60009182526020909120600690910201600401805460ff19169115159190911790556129e86060850151876134ac565b600080516020613b9683398151915286863386604001518b60405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a16000601188815481101515612a5357fe5b60009182526020822060039190910201805461ffff191661ffff93909316929092179091556011805489908110612a8657fe5b9060005260206000209060030201600101819055506000601188815481101515612aac57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b612b1d6136cf565b612b25613719565b6006546000908190819033600160a060020a03908116911614612b4757600080fd5b600d805461ffff8916908110612b5957fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c0c5780601f10612be157610100808354040283529160200191612c0c565b820191906000526020600020905b815481529060010190602001808311612bef57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015612ca157602002820191906000526020600020905b815481526020019060010190808311612c8d575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114612cd957600080fd5b8460400151600160a060020a031615612cf157600080fd5b85600d8861ffff16815481101515612d0557fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8a16908110612d4957fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8a16908110612d8857fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515612db457fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015612e3757602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411612dfe5790505b505050505093508351600854811515612e4c57fe5b049250600091505b83518261ffff161015612f0857600d848361ffff1681518110612e7357fe5b9060200190602002015161ffff16815481101515612e8d57fe5b6000918252602090912060026006909202010154600160a060020a031690508015612efd57600160a060020a038116600090815260036020526040902054612edb908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190612e54565b600080516020613b9683398151915287866020015160008960001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050505050565b60065460009033600160a060020a03908116911614612f8c57600080fd5b600d805461ffff8616908110612f9e57fe5b6000918252602090912060026006909202010154600160a060020a03161515612fc657600080fd5b60008311612fd357600080fd5b3483901015612fe157600080fd5b81600160a060020a0316600d8561ffff16815481101515612ffe57fe5b6000918252602090912060026006909202010154600160a060020a0316141561302657600080fd5b60016011805480600101828161303c9190613984565b916000526020600020906003020160006060604051908101604090815261ffff8a16825260208201899052600160a060020a038816908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506130d0908461346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81858585600d8961ffff1681548110151561310e57fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a150505050565b6000600d8361ffff1681548110151561318557fe5b6000918252602090912060026006909202010154600160a060020a031615156131ad57600080fd5b600082116131ba57600080fd5b34829010156131c857600080fd5b33600160a060020a0316600d8461ffff168154811015156131e557fe5b6000918252602090912060026006909202010154600160a060020a0316141561320d57600080fd5b6001601180548060010182816132239190613984565b916000526020600020906003020160006060604051908101604090815261ffff8916825260208201889052600160a060020a033316908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506132b7908361346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81848433600d8861ffff168154811015156132f557fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a1505050565b60065433600160a060020a0390811691161461337157600080fd5b600d805461ffff861690811061338357fe5b6000918252602090912060026006909202010154600160a060020a0316156133aa57600080fd5b82600d8561ffff168154811015156133be57fe5b90600052602060002090600602016000019080516133e0929160200190613757565b5081600d8561ffff168154811015156133f557fe5b90600052602060002090600602016001018190555080600d8561ffff1681548110151561341e57fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050565b60008282111561346557fe5b50900390565b60008282018381101561347a57fe5b9392505050565b6000808315156134945760009150610dc1565b508282028284828115156134a457fe5b041461347a57fe5b6134b4613719565b600a54600654600160a060020a03166000908152600360205260408120549091829182919010156134e457613698565b600e805461ffff88169081106134f657fe5b906000526020600020906002020160010180548060200260200160405190810160405280929190818152602001828054801561357957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116135405790505b5050505050935083516001141561358f57613698565b6001845103600a548115156135a057fe5b049250600091505b83518261ffff16101561369857600d848361ffff16815181106135c757fe5b9060200190602002015161ffff168154811015156135e157fe5b6000918252602090912060026006909202010154600160a060020a03169050801580159061363057508461ffff16848361ffff168151811061361f57fe5b9060200190602002015161ffff1614155b1561368d57600160a060020a03811660009081526003602052604090205461365e908463ffffffff61346b16565b600160a060020a0380831660009081526003602052604080822093909355600654909116815220805484900390555b6001909101906135a8565b505050505050565b6080604051908101604052806136b4613719565b81526000602082018190526040820181905260609091015290565b60e0604051908101604052806136e3613719565b8152600060208201819052604082018190526060820152608001613705613719565b815260006020820181905260409091015290565b60206040519081016040526000815290565b815481835581811511610fc257600602816006028360005260206000209182019101610fc291906139b0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061379857805160ff19168380011785556137c5565b828001600101855582156137c5579182015b828111156137c55782518255916020019190600101906137aa565b506137d1929150613a1e565b5090565b8280548282559060005260206000209081019282156137c557916020028201828111156137c55782518255916020019190600101906137aa565b815481835581811511610fc257600f016010900481600f01601090048360005260206000209182019101610fc29190613a1e565b606060405190810160409081526000808352602083018190529082015290565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613a38565b815481835581811511610fc257600083815260209020610fc2918101908301613a1e565b815481835581811511610fc257600202816002028360005260206000209182019101610fc29190613a83565b82805482825590600052602060002090600f016010900481019282156139785791602002820160005b8382111561394857835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613908565b80156139765782816101000a81549061ffff0219169055600201602081600101049283019260010302613948565b505b506137d1929150613ab4565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613ad3565b610ae791905b808211156137d15760006139ca8282613b0b565b60006001830181905560028301805475ffffffffffffffffffffffffffffffffffffffffffff19169055613a02906003840190613b52565b5060048101805460ff19169055600060058201556006016139b6565b610ae791905b808211156137d15760008155600101613a24565b610ae791905b808211156137d1576000613a528282613b0b565b506000600182015560028101805475ffffffffffffffffffffffffffffffffffffffffffff19169055600301613a3e565b610ae791905b808211156137d1576000613a9d8282613b0b565b613aab600183016000613b70565b50600201613a89565b610ae791905b808211156137d157805461ffff19168155600101613aba565b610ae791905b808211156137d157805461ffff1916815560006001820155600281018054600160a060020a0319169055600301613ad9565b50805460018160011615610100020316600290046000825580601f10613b315750613b4f565b601f016020900490600052602060002090810190613b4f9190613a1e565b50565b5080546000825590600052602060002090810190613b4f9190613a1e565b50805460008255600f016010900490600052602060002090810190613b4f9190613a1e56005efb38ad30f497e82c51ea3ed01f9afe1195fb15ebceb0ad2b2c64eaacf19c78a165627a7a723058205e08dd01ca0acf6b581fa8bda2e0e898353ee44bc5a6f3b73e96fea34d80f7be0029

   Swarm Source:
bzzr://5e08dd01ca0acf6b581fa8bda2e0e898353ee44bc5a6f3b73e96fea34d80f7be

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.