Contract Overview
Balance: 30.00004 Ether
Ether Value: $2,749.20 (@ $91.64/ETH)
Transactions: 21566 txns
 Latest 25 transactions from a total of 21566 transactions

TxHash Age From To Value [TxFee]
0x4eb05098978cde741d37b38857594fcf29f425abe4f944dd6a4bcf3af3f160886 days 20 hrs ago0x6512cb9040d91a9f8f08e0b8e29dcd9d814e7c49  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.000146268
0xea288d84976fdcae3701612d10e995e2adaf4485cd387694ff305ec595e9991e6 days 21 hrs ago0x6512cb9040d91a9f8f08e0b8e29dcd9d814e7c49  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.0002523123
0xeb13f6e7026874db7be4214f1df8f5939a94f3e55290077790aa2307b04f4f3827 days 9 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xcfe44fd39594cb4c66ca95f74705a9bd4780f1ddf54c1271c79644a85194dbb327 days 9 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0x75f925c29ea4565440d06b3edf70ec454460b31eabca841eb3100ee044a3f35127 days 9 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xac8272ee7d6330313430cea6db05c79ad50a722c3d1e8114005cc7a0848fd29827 days 9 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xc2b335035a24000c4aeb00eec95894d525c96d2248a9a6b1d09840be22ad5e5727 days 9 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xf7279decf5c4d7bc8c5493034c5329652d0f43ea108d574048577b4a5bd098bf27 days 10 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0930065 Ether0.000046482
0x69b684e0b50b5d3e3e5ed23ef83321055ab882265af8bea67ca2bce8afea6fd027 days 10 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.0003532632
0xbc411a141ad5ff3f0ad2c51de50734f92ed8bfd3101fe86f4825e1e7a0e6dc7927 days 10 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.0000976122
0x5f10cbf24ab916326da73fb90eb5f8312d817ac8f37a58977cce5d7610c951de27 days 10 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.00100726494
0x178f13eb56dd7ec528a1caa38c11c29f07713e9a2e5e7759660b314520f557aa27 days 10 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.000371856
0xa301ed9e13bacee4316db6968d805e4e475551d77866da5e76ac975e18e3ee3c27 days 10 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.000092964
0x2c00bd65299dfacd87d434ade0c9c932f9bdd4f4a8a6f1dee86e5f37b7274b4427 days 10 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.0000743712
0xc941453318162d0ac4e4ff2b553d6e71003448db5c3f2098d072c0bdac209d3246 days 16 hrs ago0x9fe75c81a1dadd4c96ccf2e5a18ce43f40521018  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.015 Ether0.00107203
0xadc0d7b70eb8bff4620795735c4ea2d4d2863279c26c17471bede93070f8d25e46 days 16 hrs ago0x9fe75c81a1dadd4c96ccf2e5a18ce43f40521018  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.019791 Ether0.00153813
0xd9633004b432a559e86206a64ca2705e76514001e5547d2c0dc68512be720a7746 days 16 hrs ago0x9fe75c81a1dadd4c96ccf2e5a18ce43f40521018  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.019791 Ether0.001425509
0x200a47f280b3af5b232deff4716faf96a426c409219498a5971f0e62fb1158f248 days 10 hrs ago0x39ebaa70d97a83940ca567d91d293e6c2db5d787  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.000126675
0x3d97b69c0aa1d62632c9d68ed75881d67e47d30d770d7c896cdfa493cd1ef5ba49 days 5 hrs ago0x869e7fda6c417d452637279cb52c6de606604cf2  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.026388 Ether0.000069723
0x01ad13d55e178bc9311d604dcfea02e1d784f0ee435c4fe5f6d7bfe2126fdc7249 days 5 hrs ago0x869e7fda6c417d452637279cb52c6de606604cf2  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.026388 Ether0.000069723
0xac3ce695cb74b85f7ddc3836eaf955e3b4026e7b00384f3b1eac9ef4763fa0e249 days 5 hrs ago0x869e7fda6c417d452637279cb52c6de606604cf2  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.026388 Ether0.000069723
0xe67ffb314753f21ef03d97f6ec47d0a7e17af09862a82de271d1fa7d798fd33351 days 12 hrs ago0x2fd682bbe2d72eeb5aef81f0f20dedf5b622975b  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.149739178320312 Ether0.00023241
0x6581a299bbcb76f41b45fd1bafe413ca881d7217b0650988a5362c9b54ca5b9351 days 12 hrs ago0x2fd682bbe2d72eeb5aef81f0f20dedf5b622975b  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.149119608398437 Ether0.000163583
0xcdd995c609a9ae41306c3b249ea627cf3152fc527e057b581b27cc782561977c52 days 20 hrs ago0x1d5b3b802d845e6c5e031499363f7a2a93290ec2  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0413505 Ether0.000046482
0xb8e8ab8d0cbb65b1d862ac4d14fd075ece728c3b82fbe1100d3daef946e67edf52 days 20 hrs ago0x1d5b3b802d845e6c5e031499363f7a2a93290ec2  IN   0x2c2391f793f4f81475d87fffe366458ce5380a130.0422488125 Ether0.000046482
[ 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
0x1319355f6aa3f34febe843283e077ab48a7c1db07e17eba5cf45f709d7c63ac2651930455 days 20 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x703daf46a6c10f7c5a4706c7384a38b11b87ccea15.0394 Ether
0x69da90f6430ae208a0d69ad946ea56cab5bd561112299be0abf010b54cd9bd08649012160 days 13 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x703daf46a6c10f7c5a4706c7384a38b11b87ccea5 Ether
0x80d23547bdb9d86977a675bdd436823677309adc26b7ddee7bcca5f08898462a648763160 days 23 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x5f24b98ad804e6e87b1d90ff843f6a46b3feab4e0.02 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd3035223648632461 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x6b5ddb54c1686a8b92254acc3f501fa1afb19b160.027496 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd3035223648632461 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x2d51cab9ce3dbacda14aa65c5236d73b583bd1560.0025 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd3035223648632461 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xb25a900f979c69bc1da3cfcf7ba605a8830610570.0025 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd3035223648632461 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xb6a9777344ddb1999d8062f1e7edb34f2aa69a590.0032985 Ether
0x8a41cb923cc93144e6efca042ceb78b646a63fd0caa14dff043d8f92361b697e648505461 days 9 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x80add382c114d29cf77d06c88215442a615c1e4b0.0083608 Ether
0x8a41cb923cc93144e6efca042ceb78b646a63fd0caa14dff043d8f92361b697e648505461 days 9 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x0f59fff9764d77434ba3204ac0dc2f63bd6f894c0.004393490625 Ether
0x05a07ff725b035ae44d3332a1575122039d5637017f20446eb4e303a41c09ee2648415961 days 12 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x0e1bc5b221ba4705c94d143705cb1432caed3dfa29.336066400000000746 Ether
0xc74270d851568f0d1a806e54afee0282b3b2f66da6b11fd0a4168e74cf2330fe648412661 days 13 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x703daf46a6c10f7c5a4706c7384a38b11b87ccea36.20226 Ether
0x4ff6379fc2e229d1d1a24254203c36f5f1f32d932e3cd6fcbc97d349941be94b648364061 days 14 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x1b35120ef171b4c9c8f212c974021f61068b39040.0107496 Ether
0x4ff6379fc2e229d1d1a24254203c36f5f1f32d932e3cd6fcbc97d349941be94b648364061 days 14 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x93129f03ad1b455be8a856648af60463324913380.002375 Ether
0xde989ea4020acae2b51d1bcfa1a1d7e78bace048df8421defcaaf0466af94fcb648362761 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xe2bc19c6526ce073586f53962bb55e9440e7bc680.02961124 Ether
0x48d775b20e1552c920ea0ff1731511d971b71620f596766ed8b97b6acdfe4c08648362161 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x5641519cc28def80d631baa28b949f17a6a22ad10.00871024 Ether
0x48d775b20e1552c920ea0ff1731511d971b71620f596766ed8b97b6acdfe4c08648362161 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x93129f03ad1b455be8a856648af60463324913380.0015625 Ether
0x48d775b20e1552c920ea0ff1731511d971b71620f596766ed8b97b6acdfe4c08648362161 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x93129f03ad1b455be8a856648af60463324913380.0020615625 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a394648355661 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x5641519cc28def80d631baa28b949f17a6a22ad10.01347304 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a394648355661 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x576a3737e00ee7d8b7e1ad06ba791e5e87fa3c2c0.0015625 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a394648355661 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x9a14607407fca133a9fa354ec588b08b48a2d5e40.003168125 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a394648355661 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x674933d412d047004e5c9b6f50a068f273f71c910.0015625 Ether
0xd139d34e51ea352f72a6a0a2fe5140501000e530c4266c17bab4dccd9061eab8648343761 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x39ebaa70d97a83940ca567d91d293e6c2db5d7870.022854 Ether
0xd139d34e51ea352f72a6a0a2fe5140501000e530c4266c17bab4dccd9061eab8648343761 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x39ebaa70d97a83940ca567d91d293e6c2db5d7870.00895430822265625 Ether
0xd139d34e51ea352f72a6a0a2fe5140501000e530c4266c17bab4dccd9061eab8648343761 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xd1d30ff06bbdd9d0f71677632a6ed3edc8d19f840.00808001578125 Ether
0xd139d34e51ea352f72a6a0a2fe5140501000e530c4266c17bab4dccd9061eab8648343761 days 15 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xd1d30ff06bbdd9d0f71677632a6ed3edc8d19f840.00506543625 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: MCPSale
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }


    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }


    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract Beneficiary is Ownable {

    address public beneficiary;

    constructor() public {
        beneficiary = msg.sender;
    }

    function setBeneficiary(address _beneficiary) onlyOwner public {
        beneficiary = _beneficiary;
    }

    function withdrawal(uint256 amount) public onlyOwner {
        if (amount > address(this).balance) {
            revert();
        }

        beneficiary.transfer(amount);
    }

    function withdrawalAll() public onlyOwner {
        beneficiary.transfer(address(this).balance);
    }
}

contract MCPSale is Beneficiary {

    mapping(address => uint256) public balances;
    mapping(uint256 => address) public approved;
    mapping(int32 => mapping(int32 => uint256)) public zone;
    mapping(uint256 => Coordinates) public zone_reverse;
    mapping(uint16 => Region) public regions;
    mapping(uint16 => RegionBid) public region_bids;

    bool public constant implementsERC721 = true;

    uint256 constant MINIMAL_RAISE = 0.5 ether;
    uint256 constant AUCTION_DURATION = 7 * 24 * 60 * 60; // 7 Days

    bool public SaleActive = true;

    struct MapLand {
        uint8 resources;
        uint16 region;
        uint256 buyPrice;
        address owner;
    }

    struct Coordinates {
        int32 x;
        int32 y;
    }

    struct RegionBid {
        address currentBuyer;
        uint256 bid;
        uint256 activeTill;
    }

    struct Region {
        address owner;
        uint8 tax;
        uint256 startPrice;
        string regionName;
        bool onSale;
        bool allowSaleLands;
        bool created;
    }


    uint256 public basePrice = 0.01 ether;
    uint256 public minMargin = 0.001944 ether;
    uint32 public divider = 8;
    uint8 public defaultRegionTax = 10;

    MapLand[] public tokens;

    address public mapMaster;

    modifier isTokenOwner(uint256 _tokenId) {
        if (tokens[_tokenId].owner != msg.sender) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;

        }

        _;
    }

    modifier onlyRegionOwner(uint16 _regionId) {
        if (regions[_regionId].owner != msg.sender) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;

        }

        _;
    }

    modifier isNotNullAddress(address _address) {
        require(address(0) != _address);
        _;
    }

    modifier isApproved(uint256 _tokenId, address _to) {
        require(approved[_tokenId] == _to);
        _;
    }

    modifier onlyMapMaster() {
        require(mapMaster == msg.sender);
        _;
    }

    modifier onlyOnActiveSale() {
        require(SaleActive);
        _;
    }

    modifier canMakeBid(uint16 regionId) {
        if ((region_bids[regionId].activeTill != 0 && region_bids[regionId].activeTill < now)
        || regions[regionId].owner != address(0) || !regions[regionId].onSale
        ) {
            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }
            return;
        }

        _;
    }

    constructor() public {
        mapMaster = msg.sender;
        tokens.length++;
        //reserve 0 token - no binding, no sale
        MapLand storage reserve = tokens[tokens.length - 1];
        reserve.owner = msg.sender;
    }

    function setMapMaster(address _mapMaster) public onlyOwner {
        mapMaster = _mapMaster;
    }

    function setMinMargin(uint256 _amount) public onlyOwner {
        minMargin = _amount;
    }

    function setBasePrice(uint256 _amount) public onlyOwner {
        basePrice = _amount;
    }

    function setRegionTax(uint16 regionId, uint8 tax) public onlyRegionOwner(regionId) onlyOnActiveSale {
        require(tax <= 100 && tax >= 0);
        regions[regionId].tax = tax;

        emit TaxUpdate(regionId, regions[regionId].tax);
    }

    function setRegionName(uint16 regionId, string regionName) public onlyOwner {
        regions[regionId].regionName = regionName;
        emit ChangeRegionName(regionId, regionName);
    }

    function setRegionOnSale(uint16 regionId) public onlyMapMaster {
        regions[regionId].onSale = true;

        emit RegionOnSale(regionId);
    }

    function setAllowSellLands(uint16 regionId) public onlyMapMaster {
        regions[regionId].allowSaleLands = true;

        emit RegionAllowSaleLands(regionId);
    }

    function setRegionPrice(uint16 regionId, uint256 price) public onlyOwner {
        if(regions[regionId].owner == address(0) && !regions[regionId].onSale) {
            regions[regionId].startPrice = price;
            emit UpdateRegionPrice(regionId, price);
        }
    }

    function addRegion(uint16 _regionId, uint256 _startPrice, string _regionName) public onlyMapMaster onlyOnActiveSale {

        if (regions[_regionId].created) {
            return;
        }

        Region storage newRegion = regions[_regionId];
        newRegion.startPrice = _startPrice;
        newRegion.tax = defaultRegionTax;
        newRegion.owner = address(0);
        newRegion.regionName = _regionName;
        newRegion.created = true;

        emit AddRegion(_regionId);
    }

    function regionExists(uint16 _regionId) public view returns (bool) {
        return regions[_regionId].created;
    }

    function makeBid(uint16 regionId) payable public
    onlyOnActiveSale
    canMakeBid(regionId) {

        uint256 minimal_bid;

        if (region_bids[regionId].currentBuyer != address(0)) {//If have bid already
            minimal_bid = region_bids[regionId].bid + MINIMAL_RAISE;
        } else {
            minimal_bid = regions[regionId].startPrice;
        }

        if (minimal_bid > msg.value) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        }

        RegionBid storage bid = region_bids[regionId];

        if (bid.currentBuyer != address(0)) {
            //Return funds to old buyer
            bid.currentBuyer.transfer(bid.bid);
        } else {
            emit AuctionStarts(regionId);
        }

        // Auction will be active for 7 days if no one make a new bid
        bid.activeTill = now + AUCTION_DURATION;


        bid.currentBuyer = msg.sender;
        bid.bid = msg.value;

        emit RegionNewBid(regionId, msg.sender, msg.value, region_bids[regionId].activeTill);
    }

    function completeRegionAuction(uint16 regionId) public onlyMapMaster {
        if (region_bids[regionId].currentBuyer == address(0)) {
            return;
        }

        if (region_bids[regionId].activeTill > now || region_bids[regionId].activeTill == 0) {
            return;
        }

        transferRegion(regionId, region_bids[regionId].currentBuyer);
    }

    function takeRegion(uint16 regionId) public {
        require(regions[regionId].owner == address(0));
        require(region_bids[regionId].currentBuyer == msg.sender);
        require(region_bids[regionId].activeTill < now);

        transferRegion(regionId, region_bids[regionId].currentBuyer);
    }

    function transferRegion(uint16 regionId, address newOwner) internal {
        regions[regionId].owner = newOwner;
        regions[regionId].onSale = false;

        emit RegionSold(regionId, regions[regionId].owner);
    }

    // returns next minimal bid or final bid on auctions that already end
    function getRegionPrice(uint16 regionId) public view returns (uint256 next_bid) {
        if(regions[regionId].owner != address(0)) {
            return region_bids[regionId].bid;
        }

        if (region_bids[regionId].currentBuyer != address(0)) {//If have bid already
            next_bid = region_bids[regionId].bid + MINIMAL_RAISE;
        } else {
            next_bid = regions[regionId].startPrice;
        }
    }

    function _activateZoneLand(int32 x, int32 y, uint8 region, uint8 resources) internal {
        tokens.length++;
        MapLand storage tmp = tokens[tokens.length - 1];

        tmp.region = region;
        tmp.resources = resources;
        tmp.buyPrice = 0;
        zone[x][y] = tokens.length - 1;
        zone_reverse[tokens.length - 1] = Coordinates(x, y);

        emit ActivateMap(x, y, tokens.length - 1);
    }

    function activateZone(int32[] x, int32[] y, uint8[] region, uint8[] resources) public onlyMapMaster {
        for (uint index = 0; index < x.length; index++) {
            _activateZoneLand(x[index], y[index], region[index], resources[index]);
        }
    }

    function buyLand(int32 x, int32 y) payable public onlyOnActiveSale {
        MapLand storage token = tokens[zone[x][y]];
        if (zone[x][y] == 0 || token.buyPrice > 0 || token.owner != address(0)
        || !regions[token.region].allowSaleLands) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        }

        uint256 buyPrice = getLandPrice(x, y);

        if (buyPrice == 0) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        }

        uint256[49] memory payouts;
        address[49] memory addresses;
        uint8 tokenBought;


        if (buyPrice > msg.value) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        } else if (buyPrice < msg.value) {
            msg.sender.transfer(msg.value - buyPrice);
        }

        (payouts, addresses, tokenBought) = getPayouts(x, y);


        token.owner = msg.sender;
        token.buyPrice = buyPrice;
        balances[msg.sender]++;

        doPayouts(payouts, addresses, buyPrice);

        uint256 tax = getRegionTax(token.region);

        if (regions[token.region].owner != address(0) && tax > 100) {
            uint256 taxValue = ((basePrice * (tax - 100) + ((tokenBought ** 2) * minMargin * (tax - 100))) / 100);
            regions[token.region].owner.transfer(taxValue);
            emit RegionPayout(regions[token.region].owner, taxValue);
        }

        emit Transfer(address(0), msg.sender, zone[x][y]);

    }

    function doPayouts(uint256[49] payouts, address[49] addresses, uint256 fullValue) internal returns (uint256){
        for (uint8 i = 0; i < addresses.length; i++) {
            if (addresses[i] == address(0)) {
                continue;
            }
            addresses[i].transfer(payouts[i]);
            emit Payout(addresses[i], payouts[i]);
            fullValue -= payouts[i];
        }


        return fullValue;
    }

    function getPayouts(int32 x, int32 y) public view returns (uint256[49] payouts, address[49] addresses, uint8 tokenBought) {

        for (int32 xi = x - 3; xi <= x + 3; xi++) {
            for (int32 yi = y - 3; yi <= y + 3; yi++) {
                if (x == xi && y == yi) {
                    continue;
                }
                MapLand memory token = tokens[zone[xi][yi]];

                if (token.buyPrice > 0) {
                    payouts[tokenBought] = (token.buyPrice / divider);
                    addresses[tokenBought] = (token.owner);
                    tokenBought++;

                }
            }
        }


        return (payouts, addresses, tokenBought);
    }

    function getLandPrice(int32 x, int32 y) public view returns (uint256 price){

        if (zone[x][y] == 0) {
            return;
        }

        MapLand memory token = tokens[zone[x][y]];

        int256[2] memory start;
        start[0] = x - 3;
        start[1] = y - 3;
        uint256[2] memory counters = [uint256(0), 0];
        for (int32 xi = x - 3; xi <= x + 3; xi++) {
            for (int32 yi = y - 3; yi <= y + 3; yi++) {
                if (x == xi && y == yi) {
                    continue;
                }

                if (tokens[zone[xi][yi]].buyPrice > 0) {
                    counters[1] += tokens[zone[xi][yi]].buyPrice;
                    counters[0]++;
                }
            }
        }

        uint16 regionId = token.region;

        uint8 taxValue = getRegionTax(regionId);

        if (counters[0] == 0) {
            price = ((basePrice * taxValue) / 100);
        } else {
            price = ((basePrice * taxValue) / 100) + (uint(counters[1]) / divider) + (((counters[0] ** 2) * minMargin * taxValue) / 100);
        }
    }


    function getRegionTax(uint16 regionId) internal view returns (uint8) {
        if (regions[regionId].owner != address(0)) {
            return (100 + regions[regionId].tax);
        }
        return (100 + defaultRegionTax);
    }

    function approve(address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isNotNullAddress(_to) {
        approved[_tokenId] = _to;
        emit Approval(msg.sender, _to, _tokenId);
    }

    function setRegionOwner(uint16 regionId, address owner, uint256 viewPrice) public onlyOwner {
        require(regions[regionId].owner == address(0) && !regions[regionId].onSale);

        regions[regionId].owner = owner;

        RegionBid storage bid = region_bids[regionId];
        bid.activeTill = now;
        bid.currentBuyer = owner;
        bid.bid = viewPrice;

        emit RegionSold(regionId, owner);

    }

    function transfer(address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isNotNullAddress(_to) isApproved(_tokenId, _to) {
        tokens[_tokenId].owner = _to;

        balances[msg.sender]--;
        balances[_to]++;

        emit Transfer(msg.sender, _to, _tokenId);
    }


    function transferFrom(address _from, address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isApproved(_tokenId, _to) {
        tokens[_tokenId].owner = _to;

        emit Transfer(_from, _to, _tokenId);
    }

    function ownerOf(uint256 _tokenId) public view returns (address owner) {
        owner = tokens[_tokenId].owner;
    }

    function totalSupply() public view returns (uint256) {
        return tokens.length;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        balance = balances[_owner];
    }

    function setSaleEnd() public onlyOwner {
        SaleActive = false;
        emit EndSale(true);
    }

    function isActive() public view returns (bool) {
        return SaleActive;
    }


    // Events
    event Transfer(address indexed from, address indexed to, uint256 tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 tokenId);

    event RegionAllowSaleLands(uint16 regionId);
    event ActivateMap(int256 x, int256 y, uint256 tokenId);
    event AddRegion(uint16 indexed regionId);
    event UpdateRegionPrice(uint16 indexed regionId, uint256 price);
    event ChangeRegionName(uint16 indexed regionId, string regionName);
    event TaxUpdate(uint16 indexed regionId, uint8 tax);
    event RegionOnSale(uint16 indexed regionId);
    event RegionNewBid(uint16 indexed regionId, address buyer, uint256 value, uint256 activeTill);
    event AuctionStarts(uint16 indexed regionId);
    event RegionSold(uint16 indexed regionId, address owner);
    event Payout(address indexed to, uint256 value);
    event RegionPayout(address indexed to, uint256 value);
    event EndSale(bool isEnded);
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setMinMargin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"completeRegionAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"regionId","type":"uint16"}],"name":"getRegionPrice","outputs":[{"name":"next_bid","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"getPayouts","outputs":[{"name":"payouts","type":"uint256[49]"},{"name":"addresses","type":"address[49]"},{"name":"tokenBought","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"divider","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"buyLand","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minMargin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokens","outputs":[{"name":"resources","type":"uint8"},{"name":"region","type":"uint16"},{"name":"buyPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"makeBid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"setAllowSellLands","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"regionName","type":"string"}],"name":"setRegionName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int32[]"},{"name":"y","type":"int32[]"},{"name":"region","type":"uint8[]"},{"name":"resources","type":"uint8[]"}],"name":"activateZone","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_regionId","type":"uint16"},{"name":"_startPrice","type":"uint256"},{"name":"_regionName","type":"string"}],"name":"addRegion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"approved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"int32"},{"name":"","type":"int32"}],"name":"zone","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"setRegionOnSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"regions","outputs":[{"name":"owner","type":"address"},{"name":"tax","type":"uint8"},{"name":"startPrice","type":"uint256"},{"name":"regionName","type":"string"},{"name":"onSale","type":"bool"},{"name":"allowSaleLands","type":"bool"},{"name":"created","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"region_bids","outputs":[{"name":"currentBuyer","type":"address"},{"name":"bid","type":"uint256"},{"name":"activeTill","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"getLandPrice","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_mapMaster","type":"address"}],"name":"setMapMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"takeRegion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"owner","type":"address"},{"name":"viewPrice","type":"uint256"}],"name":"setRegionOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"basePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"defaultRegionTax","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_regionId","type":"uint16"}],"name":"regionExists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setBasePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"tax","type":"uint8"}],"name":"setRegionTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"price","type":"uint256"}],"name":"setRegionPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SaleActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawalAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mapMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setSaleEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"zone_reverse","outputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"regionId","type":"uint16"}],"name":"RegionAllowSaleLands","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"x","type":"int256"},{"indexed":false,"name":"y","type":"int256"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"ActivateMap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"AddRegion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"}],"name":"UpdateRegionPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"regionName","type":"string"}],"name":"ChangeRegionName","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"tax","type":"uint8"}],"name":"TaxUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"RegionOnSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"activeTill","type":"uint256"}],"name":"RegionNewBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"AuctionStarts","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"owner","type":"address"}],"name":"RegionSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"RegionPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"isEnded","type":"bool"}],"name":"EndSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526001600860006101000a81548160ff021916908315150217905550662386f26fc100006009556606e80ec5718000600a556008600b60006101000a81548163ffffffff021916908363ffffffff160217905550600a600b60046101000a81548160ff021916908360ff1602179055503480156200008057600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c80548091906001016200015b9190620001ce565b50600c6001600c80549050038154811015156200017457fe5b90600052602060002090600302019050338160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027d565b815481835581811115620001fe57600302816003028360005260206000209182019101620001fd919062000203565b5b505050565b6200027a91905b808211156200027657600080820160006101000a81549060ff02191690556000820160016101000a81549061ffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506003016200020a565b5090565b90565b61499f806200028d6000396000f30060806040526004361061023b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146102405780631051db341461028d57806318160ddd146102bc5780631c31f710146102e757806322f3e2d41461032a57806323b872dd1461035957806327e235e3146103c65780632cc273411461041d5780632ce2d7c01461044a578063301f2dac1461047b578063301fdb54146104c0578063378efa371461057557806338af3eed146105ac57806338e998a71461060357806339c294be146106335780634f64b2be1461065e57806351c03b85146106ee57806360bd409e146107125780636352211e146107435780636b55264d146107b05780636eebb73f1461082757806370a0823114610956578063792a152d146109ad5780637d4061e614610a2e578063835fc6ca14610a9b5780638d3f1e4414610ac85780638da5cb5b14610b19578063969bece314610b705780639a877fb314610ba15780639fe0b36714610cb3578063a9059cbb14610d32578063ab07f05414610d7f578063b43d9ede14610dd0578063b5dcbb6914610e13578063b68e855214610e44578063c7876ea414610e9f578063cd9a27ba14610eca578063d5a506d014610efb578063de4b326214610f44578063e850efaf14610f71578063eb0bfa3814610faf578063f1d2165f14610fea578063f2fde38b14611019578063f44b79b31461105c578063f4d176e114611073578063f835a686146110ca578063fa5d174d146110e1575b600080fd5b34801561024c57600080fd5b5061028b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611135565b005b34801561029957600080fd5b506102a26112fc565b604051808215151515815260200191505060405180910390f35b3480156102c857600080fd5b506102d1611301565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610328600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130e565b005b34801561033657600080fd5b5061033f6113ad565b604051808215151515815260200191505060405180910390f35b34801561036557600080fd5b506103c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c4565b005b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115cc565b6040518082815260200191505060405180910390f35b34801561042957600080fd5b50610448600480360381019080803590602001909291905050506115e4565b005b34801561045657600080fd5b50610479600480360381019080803561ffff169060200190929190505050611649565b005b34801561048757600080fd5b506104aa600480360381019080803561ffff1690602001909291905050506117bd565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b506104fb600480360381019080803560030b9060200190929190803560030b9060200190929190505050611924565b6040518084603160200280838360005b8381101561052657808201518184015260208101905061050b565b5050505090500183603160200280838360005b83811015610554578082015181840152602081019050610539565b505050509050018260ff1660ff168152602001935050505060405180910390f35b34801561058157600080fd5b5061058a611b62565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156105b857600080fd5b506105c1611b78565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610631600480360381019080803560030b9060200190929190803560030b9060200190929190505050611b9e565b005b34801561063f57600080fd5b506106486121e8565b6040518082815260200191505060405180910390f35b34801561066a57600080fd5b50610689600480360381019080803590602001909291905050506121ee565b604051808560ff1660ff1681526020018461ffff1661ffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b610710600480360381019080803561ffff169060200190929190505050612268565b005b34801561071e57600080fd5b50610741600480360381019080803561ffff169060200190929190505050612711565b005b34801561074f57600080fd5b5061076e600480360381019080803590602001909291905050506127e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107bc57600080fd5b50610825600480360381019080803561ffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612830565b005b34801561083357600080fd5b5061095460048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612963565b005b34801561096257600080fd5b50610997600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a4b565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b50610a2c600480360381019080803561ffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612a94565b005b348015610a3a57600080fd5b50610a5960048036038101908080359060200190929190505050612c47565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aa757600080fd5b50610ac660048036038101908080359060200190929190505050612c7a565b005b348015610ad457600080fd5b50610b03600480360381019080803560030b9060200190929190803560030b9060200190929190505050612d65565b6040518082815260200191505060405180910390f35b348015610b2557600080fd5b50610b2e612d8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7c57600080fd5b50610b9f600480360381019080803561ffff169060200190929190505050612daf565b005b348015610bad57600080fd5b50610bd0600480360381019080803561ffff169060200190929190505050612e76565b604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018760ff1660ff16815260200186815260200180602001851515151581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c72578082015181840152602081019050610c57565b50505050905090810190601f168015610c9f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b348015610cbf57600080fd5b50610ce2600480360381019080803561ffff169060200190929190505050612fa4565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b348015610d3e57600080fd5b50610d7d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fee565b005b348015610d8b57600080fd5b50610dba600480360381019080803560030b9060200190929190803560030b90602001909291905050506132d2565b6040518082815260200191505060405180910390f35b348015610ddc57600080fd5b50610e11600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136ab565b005b348015610e1f57600080fd5b50610e42600480360381019080803561ffff16906020019092919050505061374a565b005b348015610e5057600080fd5b50610e9d600480360381019080803561ffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506138b2565b005b348015610eab57600080fd5b50610eb4613afa565b6040518082815260200191505060405180910390f35b348015610ed657600080fd5b50610edf613b00565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f0757600080fd5b50610f2a600480360381019080803561ffff169060200190929190505050613b13565b604051808215151515815260200191505060405180910390f35b348015610f5057600080fd5b50610f6f60048036038101908080359060200190929190505050613b48565b005b348015610f7d57600080fd5b50610fad600480360381019080803561ffff169060200190929190803560ff169060200190929190505050613bad565b005b348015610fbb57600080fd5b50610fe8600480360381019080803561ffff16906020019092919080359060200190929190505050613d5f565b005b348015610ff657600080fd5b50610fff613ec6565b604051808215151515815260200191505060405180910390f35b34801561102557600080fd5b5061105a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ed9565b005b34801561106857600080fd5b5061107161402e565b005b34801561107f57600080fd5b5061108861410b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110d657600080fd5b506110df614131565b005b3480156110ed57600080fd5b5061110c600480360381019080803590602001909291905050506141e5565b604051808360030b60030b81526020018260030b60030b81526020019250505060405180910390f35b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561115c57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112015760003411156111fc573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156111fa573d6000803e3d6000fd5b505b6112f7565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415151561123e57600080fd5b836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3505b505050565b600181565b6000600c80549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900460ff16905090565b803373ffffffffffffffffffffffffffffffffffffffff16600c828154811015156113eb57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149057600034111561148b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611489573d6000803e3d6000fd5b505b6115c6565b81838073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114ff57600080fd5b84600c8581548110151561150f57fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350505b50505050565b60026020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163f57600080fd5b80600a8190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116a557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561171d576117ba565b42600760008361ffff1661ffff16815260200190815260200160002060020154118061176757506000600760008361ffff1661ffff16815260200190815260200160002060020154145b15611771576117ba565b6117b981600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b5b50565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561185857600760008361ffff1661ffff16815260200190815260200160002060010154905061191f565b600073ffffffffffffffffffffffffffffffffffffffff16600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118fc576706f05b59d3b20000600760008461ffff1661ffff1681526020019081526020016000206001015401905061191e565b600660008361ffff1661ffff1681526020019081526020016000206001015490505b5b919050565b61192c614753565b611934614777565b600080600061194161479b565b6003880392505b6003880160030b8360030b131515611b4f576003870391505b6003870160030b8260030b131515611b42578260030b8860030b14801561198d57508160030b8760030b145b1561199757611b35565b600c600460008560030b60030b815260200190815260200160002060008460030b60030b8152602001908152602001600020548154811015156119d657fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081604001511115611b3457600b60009054906101000a900463ffffffff1663ffffffff168160400151811515611ac357fe5b04868560ff16603181101515611ad557fe5b6020020181815250508060600151858560ff16603181101515611af457fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083806001019450505b5b8180600101925050611961565b8280600101935050611948565b8585859550955095505050509250925092565b600b60009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611ba9614753565b611bb1614777565b6000806000600860009054906101000a900460ff161515611bd157600080fd5b600c600460008b60030b60030b815260200190815260200160002060008a60030b60030b815260200190815260200160002054815481101515611c1057fe5b906000526020600020906003020196506000600460008b60030b60030b815260200190815260200160002060008a60030b60030b8152602001908152602001600020541480611c63575060008760010154115b80611cbf5750600073ffffffffffffffffffffffffffffffffffffffff168760020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80611d055750600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060030160019054906101000a900460ff16155b15611d60576000341115611d5b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611d59573d6000803e3d6000fd5b505b6121dd565b611d6a89896132d2565b95506000861415611dcb576000341115611dc6573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611dc4573d6000803e3d6000fd5b505b6121dd565b34861115611e29576000341115611e24573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611e22573d6000803e3d6000fd5b505b6121dd565b34861015611e7b573373ffffffffffffffffffffffffffffffffffffffff166108fc8734039081150290604051600060405180830381858888f19350505050158015611e79573d6000803e3d6000fd5b505b611e858989611924565b809550819650829750505050338760020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550858760010181905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550611f37858588614361565b50611f538760000160019054906101000a900461ffff166144e0565b60ff169150600073ffffffffffffffffffffffffffffffffffffffff16600660008960000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611fe55750606482115b15612146576064808303600a546002860a60ff16020260648403600954020181151561200d57fe5b049050600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120a6573d6000803e3d6000fd5b50600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e20eee8794e3a490330b424b5875ba62ffefb32b4ae48090cb82edfc2d2ec89826040518082815260200191505060405180910390a25b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460008d60030b60030b815260200190815260200160002060008c60030b60030b8152602001908152602001600020546040518082815260200191505060405180910390a35b505050505050505050565b600a5481565b600c818154811015156121fd57fe5b90600052602060002090600302016000915090508060000160009054906101000a900460ff16908060000160019054906101000a900461ffff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b600080600860009054906101000a900460ff16151561228657600080fd5b826000600760008361ffff1661ffff16815260200190815260200160002060020154141580156122d3575042600760008361ffff1661ffff16815260200190815260200160002060020154105b806123495750600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8061237d5750600660008261ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b156123d85760003411156123d3573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156123d1573d6000803e3d6000fd5b505b61270b565b600073ffffffffffffffffffffffffffffffffffffffff16600760008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561247c576706f05b59d3b20000600760008661ffff1661ffff1681526020019081526020016000206001015401925061249e565b600660008561ffff1661ffff1681526020019081526020016000206001015492505b348311156124fc5760003411156124f7573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156124f5573d6000803e3d6000fd5b505b61270a565b600760008561ffff1661ffff1681526020019081526020016000209150600073ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125e7578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc83600101549081150290604051600060405180830381858888f193505050501580156125e1573d6000803e3d6000fd5b50612619565b8361ffff167ff6e8b71db70830e39e2c98f38b929b65c3521e6479cc5fa19b21567574f2b7a460405160405180910390a25b62093a8042018260020181905550338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503482600101819055508361ffff167f29a276aafcd155473a77c82e5c2a4ccc84d83bac0fcd454d1e9ca6dacecf0c1f3334600760008961ffff1661ffff16815260200190815260200160002060020154604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a25b5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561276d57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160016101000a81548160ff0219169083151502179055507fb51fb8bbfa3da24418034519117a50979b837f70e121296bc026ee665ce79b2381604051808261ffff1661ffff16815260200191505060405180910390a150565b6000600c828154811015156127f757fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561288b57600080fd5b80600660008461ffff1661ffff16815260200190815260200160002060020190805190602001906128bd9291906147e1565b508161ffff167fb06f576e825ec000eb0407092b3150b13f3c68cc964d0a5a8405c0b715e714ac826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561292557808201518184015260208101905061290a565b50505050905090810190601f1680156129525780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156129c157600080fd5b600090505b8451811015612a4457612a3785828151811015156129e057fe5b9060200190602002015185838151811015156129f857fe5b906020019060200201518584815181101515612a1057fe5b906020019060200201518585815181101515612a2857fe5b906020019060200201516145a6565b80806001019150506129c6565b5050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612af257600080fd5b600860009054906101000a900460ff161515612b0d57600080fd5b600660008561ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff1615612b4357612c41565b600660008561ffff1661ffff1681526020019081526020016000209050828160010181905550600b60049054906101000a900460ff168160000160146101000a81548160ff021916908360ff16021790555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816002019080519060200190612bf19291906147e1565b5060018160030160026101000a81548160ff0219169083151502179055508361ffff167f399f06325e5cc0f4ee1fb06491dbac3bb10e0b26fe872a831673a1b84e326c3560405160405180910390a25b50505050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cd557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115612cf957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d61573d6000803e3d6000fd5b5050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e0b57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508061ffff167f1f4df03e985a1c2625c2bb5c99d6baabdcf19970943fc02c21110cf810fe48ed60405160405180910390a250565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff1690806001015490806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f615780601f10612f3657610100808354040283529160200191612f61565b820191906000526020600020905b815481529060010190602001808311612f4457829003601f168201915b5050505050908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16908060030160029054906101000a900460ff16905087565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561301557fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130ba5760003411156130b5573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156130b3573d6000803e3d6000fd5b505b6132cd565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141515156130f757600080fd5b82848073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561316657600080fd5b85600c8681548110151561317657fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35050505b505050565b60006132dc61479b565b6132e4614861565b6132ec614883565b6000806000806000600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205414156133305761369e565b600c600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205481548110151561336f57fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050965060038a0360030b86600060028110151561343e57fe5b6020020181815250506003890360030b86600160028110151561345d57fe5b6020020181815250506040805190810160405280600081526020016000815250945060038a0393505b60038a0160030b8460030b1315156135d8576003890392505b6003890160030b8360030b1315156135cb578360030b8a60030b1480156134cb57508260030b8960030b145b156134d5576135be565b6000600c600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000205481548110151561351657fe5b90600052602060002090600302016001015411156135bd57600c600460008660030b60030b815260200190815260200160002060008560030b60030b81526020019081526020016000205481548110151561356d57fe5b90600052602060002090600302016001015485600160028110151561358e57fe5b6020020181815101915081815250508460006002811015156135ac57fe5b602002018051809190600101815250505b5b828060010193505061349f565b8380600101945050613486565b866020015191506135e8826144e0565b905060008560006002811015156135fb57fe5b602002015114156136215760648160ff166009540281151561361957fe5b04975061369d565b60648160ff16600a54600288600060028110151561363b57fe5b60200201510a020281151561364c57fe5b04600b60009054906101000a900463ffffffff1663ffffffff1686600160028110151561367557fe5b602002015181151561368357fe5b0460648360ff166009540281151561369757fe5b04010197505b5b5050505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561370657600080fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156137c357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561383b57600080fd5b42600760008361ffff1661ffff1681526020019081526020016000206002015410151561386757600080fd5b6138af81600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561390f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156139b25750600660008561ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15156139bd57600080fd5b82600660008661ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008561ffff1661ffff1681526020019081526020016000209050428160020181905550828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508181600101819055508361ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b60095481565b600b60049054906101000a900460ff1681565b6000600660008361ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ba357600080fd5b8060098190555050565b813373ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c77576000341115613c72573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015613c70573d6000803e3d6000fd5b505b613d5a565b600860009054906101000a900460ff161515613c9257600080fd5b60648260ff1611158015613caa575060008260ff1610155b1515613cb557600080fd5b81600660008561ffff1661ffff16815260200190815260200160002060000160146101000a81548160ff021916908360ff1602179055508261ffff167fc72bc3ebe54db6ad5d04be20eb76955c1fbdfc05fc89a45d3959eca9f75e77cb600660008661ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff16604051808260ff1660ff16815260200191505060405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dba57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015613e5d5750600660008361ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15613ec25780600660008461ffff1661ffff168152602001908152602001600020600101819055508161ffff167f334cd32957a0eb9f4c727ed73fab8a13424e9da07e864bd7beb3f84c7650b3e8826040518082815260200191505060405180910390a25b5050565b600860009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613f3457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613f7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561408957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015614108573d6000803e3d6000fd5b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561418c57600080fd5b6000600860006101000a81548160ff0219169083151502179055507f75db2c8af3a77c8f79f1e5f6f7606c455d1d3d974acad372b8f4c38d0b541a396001604051808215151515815260200191505060405180910390a1565b60056020528060005260406000206000915090508060000160009054906101000a900460030b908060000160049054906101000a900460030b905082565b80600660008461ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008461ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508161ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e600660008561ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b600080600090505b60318160ff1610156144d557600073ffffffffffffffffffffffffffffffffffffffff16848260ff1660318110151561439e57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1614156143c4576144c8565b838160ff166031811015156143d557fe5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc868360ff1660318110151561440457fe5b60200201519081150290604051600060405180830381858888f19350505050158015614434573d6000803e3d6000fd5b50838160ff1660318110151561444657fe5b602002015173ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6868360ff1660318110151561449357fe5b60200201516040518082815260200191505060405180910390a2848160ff166031811015156144be57fe5b6020020151830392505b8080600101915050614369565b829150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561458b57600660008361ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff1660640190506145a1565b600b60049054906101000a900460ff1660640190505b919050565b6000600c80548091906001016145bc91906148a5565b50600c6001600c80549050038154811015156145d457fe5b906000526020600020906003020190508260ff168160000160016101000a81548161ffff021916908361ffff160217905550818160000160006101000a81548160ff021916908360ff160217905550600081600101819055506001600c8054905003600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000208190555060408051908101604052808660030b81526020018560030b815250600560006001600c8054905003815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908360030b63ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908360030b63ffffffff1602179055509050507f8f32e652c6806b682ac4685b78efed8695949d3dc61a1d22e96fedea32bab1f385856001600c8054905003604051808460030b81526020018360030b8152602001828152602001935050505060405180910390a15050505050565b61062060405190810160405280603190602082028038833980820191505090505090565b61062060405190810160405280603190602082028038833980820191505090505090565b608060405190810160405280600060ff168152602001600061ffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061482257805160ff1916838001178555614850565b82800160010185558215614850579182015b8281111561484f578251825591602001919060010190614834565b5b50905061485d91906148d7565b5090565b6040805190810160405280600290602082028038833980820191505090505090565b6040805190810160405280600290602082028038833980820191505090505090565b8154818355818111156148d2576003028160030283600052602060002091820191016148d191906148fc565b5b505050565b6148f991905b808211156148f55760008160009055506001016148dd565b5090565b90565b61497091905b8082111561496c57600080820160006101000a81549060ff02191690556000820160016101000a81549061ffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600301614902565b5090565b905600a165627a7a72305820be3d31cf1b4ded27c2bcd792c5a6fae0969aad5c77f55fcd0f7ed783874846fd0029

   Swarm Source:
bzzr://be3d31cf1b4ded27c2bcd792c5a6fae0969aad5c77f55fcd0f7ed783874846fd

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.