ETH Price: $3,352.24 (-2.83%)
Gas: 4 Gwei

Token

PixelPropertyToken (PXL)
 

Overview

Max Total Supply

653,016 PXL

Holders

138

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
50 PXL

Value
$0.00
0x3669EC0B135b8180287c21F5170695b197E54CAb
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

PixelProperty is an evolving public art canvas where owners and users join together to play, design, create, share, trade and compete.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PXLProperty

Compiler Version
v0.4.24-nightly.2018.5.16+commit.7f965c86

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-05-17
*/

pragma solidity ^0.4.2;
// Make setPrivate payout any pending payouts

// ERC20 Token Interface
contract Token {
    uint256 public totalSupply;
    function balanceOf(address _owner) public constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

// ERC20 Token Implementation
contract StandardToken is Token {
    function transfer(address _to, uint256 _value) public returns (bool success) {
      if (balances[msg.sender] >= _value && _value > 0) {
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        Transfer(msg.sender, _to, _value);
        return true;
      } else {
        return false;
      }
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
      if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
        balances[_to] += _value;
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;
        Transfer(_from, _to, _value);
        return true;
      } else {
        return false;
      }
    }

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

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
}

/*
    PXLProperty is the ERC20 Cryptocurrency & Cryptocollectable
    * It is a StandardToken ERC20 token and inherits all of that
    * It has the Property structure and holds the Properties
    * It governs the regulators (moderators, admins, root, Property DApps and PixelProperty)
    * It has getters and setts for all data storage
    * It selectively allows access to PXL and Properties based on caller access
    
    Moderation is handled inside PXLProperty, not by external DApps. It's up to other apps to respect the flags, however
*/
contract PXLProperty is StandardToken {
    /* ERC-20 MetaData */
    string public constant name = "PixelPropertyToken";
    string public constant symbol = "PXL";
    uint256 public constant decimals = 0;
    
    /* Access Level Constants */
    uint8 constant LEVEL_1_MODERATOR = 1;    // 1: Level 1 Moderator - nsfw-flagging power
    uint8 constant LEVEL_2_MODERATOR = 2;    // 2: Level 2 Moderator - ban power + [1]
    uint8 constant LEVEL_1_ADMIN = 3;        // 3: Level 1 Admin - Can manage moderator levels + [1,2]
    uint8 constant LEVEL_2_ADMIN = 4;        // 4: Level 2 Admin - Can manage admin level 1 levels + [1-3]
    uint8 constant LEVEL_1_ROOT = 5;         // 5: Level 1 Root - Can set property DApps level [1-4]
    uint8 constant LEVEL_2_ROOT = 6;         // 6: Level 2 Root - Can set pixelPropertyContract level [1-5]
    uint8 constant LEVEL_3_ROOT = 7;         // 7: Level 3 Root - Can demote/remove root, transfer root, [1-6]
    uint8 constant LEVEL_PROPERTY_DAPPS = 8; // 8: Property DApps - Power over manipulating Property data
    uint8 constant LEVEL_PIXEL_PROPERTY = 9; // 9: PixelProperty - Power over PXL generation & Property ownership
    /* Flags Constants */
    uint8 constant FLAG_NSFW = 1;
    uint8 constant FLAG_BAN = 2;
    
    /* Accesser Addresses & Levels */
    address pixelPropertyContract; // Only contract that has control over PXL creation and Property ownership
    mapping (address => uint8) public regulators; // Mapping of users/contracts to their control levels
    
    // Mapping of PropertyID to Property
    mapping (uint16 => Property) public properties;
    // Property Owner's website
    mapping (address => uint256[2]) public ownerWebsite;
    // Property Owner's hover text
    mapping (address => uint256[2]) public ownerHoverText;
    // Whether migration is occuring or not
    bool inMigrationPeriod;
    // Old PXLProperty Contract from before update we migrate data from
    PXLProperty oldPXLProperty;
    
    /* ### Ownable Property Structure ### */
    struct Property {
        uint8 flag;
        bool isInPrivateMode; //Whether in private mode for owner-only use or free-use mode to be shared
        address owner; //Who owns the Property. If its zero (0), then no owner and known as a "system-Property"
        address lastUpdater; //Who last changed the color of the Property
        uint256[5] colors; //10x10 rgb pixel colors per property. colors[0] is the top row, colors[9] is the bottom row
        uint256 salePrice; //PXL price the owner has the Property on sale for. If zero, then its not for sale.
        uint256 lastUpdate; //Timestamp of when it had its color last updated
        uint256 becomePublic; //Timestamp on when to become public
        uint256 earnUntil; //Timestamp on when Property token generation will stop
    }
    
    /* ### Regulation Access Modifiers ### */
    modifier regulatorAccess(uint8 accessLevel) {
        require(accessLevel <= LEVEL_3_ROOT); // Only request moderator, admin or root levels forr regulatorAccess
        require(regulators[msg.sender] >= accessLevel); // Users must meet requirement
        if (accessLevel >= LEVEL_1_ADMIN) { //
            require(regulators[msg.sender] <= LEVEL_3_ROOT); //DApps can't do Admin/Root stuff, but can set nsfw/ban flags
        }
        _;
    }
    
    modifier propertyDAppAccess() {
        require(regulators[msg.sender] == LEVEL_PROPERTY_DAPPS || regulators[msg.sender] == LEVEL_PIXEL_PROPERTY );
        _;
    }
    
    modifier pixelPropertyAccess() {
        require(regulators[msg.sender] == LEVEL_PIXEL_PROPERTY);
        _;
    }
    
    /* ### Constructor ### */
    function PXLProperty(address oldAddress) public {
        inMigrationPeriod = true;
        oldPXLProperty = PXLProperty(oldAddress);
        regulators[msg.sender] = LEVEL_3_ROOT; // Creator set to Level 3 Root
    }
    
    /* ### Moderator, Admin & Root Functions ### */
    // Moderator Flags
    function setPropertyFlag(uint16 propertyID, uint8 flag) public regulatorAccess(flag == FLAG_NSFW ? LEVEL_1_MODERATOR : LEVEL_2_MODERATOR) {
        properties[propertyID].flag = flag;
        if (flag == FLAG_BAN) {
            require(properties[propertyID].isInPrivateMode); //Can't ban an owner's property if a public user caused the NSFW content
            properties[propertyID].colors = [0, 0, 0, 0, 0];
        }
    }
    
    // Setting moderator/admin/root access
    function setRegulatorAccessLevel(address user, uint8 accessLevel) public regulatorAccess(LEVEL_1_ADMIN) {
        if (msg.sender != user) {
            require(regulators[msg.sender] > regulators[user]); // You have to be a higher rank than the user you are changing
        }
        require(regulators[msg.sender] > accessLevel); // You have to be a higher rank than the role you are setting
        regulators[user] = accessLevel;
    }
    
    function setPixelPropertyContract(address newPixelPropertyContract) public regulatorAccess(LEVEL_2_ROOT) {
        require(newPixelPropertyContract != 0);
        if (pixelPropertyContract != 0) {
            regulators[pixelPropertyContract] = 0; //If we already have a pixelPropertyContract, revoke its ownership
        }
        
        pixelPropertyContract = newPixelPropertyContract;
        regulators[newPixelPropertyContract] = LEVEL_PIXEL_PROPERTY;
    }
    
    function setPropertyDAppContract(address propertyDAppContract, bool giveAccess) public regulatorAccess(LEVEL_1_ROOT) {
        require(propertyDAppContract != 0);
        regulators[propertyDAppContract] = giveAccess ? LEVEL_PROPERTY_DAPPS : 0;
    }
    
        
    /* ### Migration Functions Post Update ### */
    //Migrates the owners of Properties
    function migratePropertyOwnership(uint16[10] propertiesToCopy) public regulatorAccess(LEVEL_3_ROOT) {
        require(inMigrationPeriod);
        for(uint16 i = 0; i < 10; i++) {
            if (propertiesToCopy[i] < 10000) {
                if (properties[propertiesToCopy[i]].owner == 0) { //Only migrate if there is no current owner
                    properties[propertiesToCopy[i]].owner = oldPXLProperty.getPropertyOwner(propertiesToCopy[i]);
                }
            }
        }
    }
    
    //Migrates the PXL balances of users
    function migrateUsers(address[10] usersToMigrate) public regulatorAccess(LEVEL_3_ROOT) {
        require(inMigrationPeriod);
        for(uint16 i = 0; i < 10; i++) {
            if(balances[usersToMigrate[i]] == 0) { //Only migrate if they have no funds to avoid duplicate migrations
                uint256 oldBalance = oldPXLProperty.balanceOf(usersToMigrate[i]);
                if (oldBalance > 0) {
                    balances[usersToMigrate[i]] = oldBalance;
                    totalSupply += oldBalance;
                    Transfer(0, usersToMigrate[i], oldBalance);
                }
            }
        }
    }
    
    //Perminantly ends migration so it cannot be abused after it is deemed complete
    function endMigrationPeriod() public regulatorAccess(LEVEL_3_ROOT) {
        inMigrationPeriod = false;
    }
    
    /* ### PropertyDapp Functions ### */
    function setPropertyColors(uint16 propertyID, uint256[5] colors) public propertyDAppAccess() {
        for(uint256 i = 0; i < 5; i++) {
            if (properties[propertyID].colors[i] != colors[i]) {
                properties[propertyID].colors[i] = colors[i];
            }
        }
    }
    
    function setPropertyRowColor(uint16 propertyID, uint8 row, uint256 rowColor) public propertyDAppAccess() {
        if (properties[propertyID].colors[row] != rowColor) {
            properties[propertyID].colors[row] = rowColor;
        }
    }
    
    function setOwnerHoverText(address textOwner, uint256[2] hoverText) public propertyDAppAccess() {
        require (textOwner != 0);
        ownerHoverText[textOwner] = hoverText;
    }
    
    function setOwnerLink(address websiteOwner, uint256[2] website) public propertyDAppAccess() {
        require (websiteOwner != 0);
        ownerWebsite[websiteOwner] = website;
    }
    
    /* ### PixelProperty Property Functions ### */
    function setPropertyPrivateMode(uint16 propertyID, bool isInPrivateMode) public pixelPropertyAccess() {
        if (properties[propertyID].isInPrivateMode != isInPrivateMode) {
            properties[propertyID].isInPrivateMode = isInPrivateMode;
        }
    }
    
    function setPropertyOwner(uint16 propertyID, address propertyOwner) public pixelPropertyAccess() {
        if (properties[propertyID].owner != propertyOwner) {
            properties[propertyID].owner = propertyOwner;
        }
    }
    
    function setPropertyLastUpdater(uint16 propertyID, address lastUpdater) public pixelPropertyAccess() {
        if (properties[propertyID].lastUpdater != lastUpdater) {
            properties[propertyID].lastUpdater = lastUpdater;
        }
    }
    
    function setPropertySalePrice(uint16 propertyID, uint256 salePrice) public pixelPropertyAccess() {
        if (properties[propertyID].salePrice != salePrice) {
            properties[propertyID].salePrice = salePrice;
        }
    }
    
    function setPropertyLastUpdate(uint16 propertyID, uint256 lastUpdate) public pixelPropertyAccess() {
        properties[propertyID].lastUpdate = lastUpdate;
    }
    
    function setPropertyBecomePublic(uint16 propertyID, uint256 becomePublic) public pixelPropertyAccess() {
        properties[propertyID].becomePublic = becomePublic;
    }
    
    function setPropertyEarnUntil(uint16 propertyID, uint256 earnUntil) public pixelPropertyAccess() {
        properties[propertyID].earnUntil = earnUntil;
    }
    
    function setPropertyPrivateModeEarnUntilLastUpdateBecomePublic(uint16 propertyID, bool privateMode, uint256 earnUntil, uint256 lastUpdate, uint256 becomePublic) public pixelPropertyAccess() {
        if (properties[propertyID].isInPrivateMode != privateMode) {
            properties[propertyID].isInPrivateMode = privateMode;
        }
        properties[propertyID].earnUntil = earnUntil;
        properties[propertyID].lastUpdate = lastUpdate;
        properties[propertyID].becomePublic = becomePublic;
    }
    
    function setPropertyLastUpdaterLastUpdate(uint16 propertyID, address lastUpdater, uint256 lastUpdate) public pixelPropertyAccess() {
        if (properties[propertyID].lastUpdater != lastUpdater) {
            properties[propertyID].lastUpdater = lastUpdater;
        }
        properties[propertyID].lastUpdate = lastUpdate;
    }
    
    function setPropertyBecomePublicEarnUntil(uint16 propertyID, uint256 becomePublic, uint256 earnUntil) public pixelPropertyAccess() {
        properties[propertyID].becomePublic = becomePublic;
        properties[propertyID].earnUntil = earnUntil;
    }
    
    function setPropertyOwnerSalePricePrivateModeFlag(uint16 propertyID, address owner, uint256 salePrice, bool privateMode, uint8 flag) public pixelPropertyAccess() {
        if (properties[propertyID].owner != owner) {
            properties[propertyID].owner = owner;
        }
        if (properties[propertyID].salePrice != salePrice) {
            properties[propertyID].salePrice = salePrice;
        }
        if (properties[propertyID].isInPrivateMode != privateMode) {
            properties[propertyID].isInPrivateMode = privateMode;
        }
        if (properties[propertyID].flag != flag) {
            properties[propertyID].flag = flag;
        }
    }
    
    function setPropertyOwnerSalePrice(uint16 propertyID, address owner, uint256 salePrice) public pixelPropertyAccess() {
        if (properties[propertyID].owner != owner) {
            properties[propertyID].owner = owner;
        }
        if (properties[propertyID].salePrice != salePrice) {
            properties[propertyID].salePrice = salePrice;
        }
    }
    
    /* ### PixelProperty PXL Functions ### */
    function rewardPXL(address rewardedUser, uint256 amount) public pixelPropertyAccess() {
        require(rewardedUser != 0);
        balances[rewardedUser] += amount;
        totalSupply += amount;
        Transfer(0, rewardedUser, amount);
    }
    
    function burnPXL(address burningUser, uint256 amount) public pixelPropertyAccess() {
        require(burningUser != 0);
        require(balances[burningUser] >= amount);
        balances[burningUser] -= amount;
        totalSupply -= amount;
        Transfer(burningUser, 0, amount);
    }
    
    function burnPXLRewardPXL(address burner, uint256 toBurn, address rewarder, uint256 toReward) public pixelPropertyAccess() {
        require(balances[burner] >= toBurn);
        if (toBurn > 0) {
            balances[burner] -= toBurn;
            totalSupply -= toBurn;
            Transfer(burner, 0, toBurn);
        }
        if (rewarder != 0) {
            balances[rewarder] += toReward;
            totalSupply += toReward;
            Transfer(0, rewarder, toReward);
        }
    } 
    
    function burnPXLRewardPXLx2(address burner, uint256 toBurn, address rewarder1, uint256 toReward1, address rewarder2, uint256 toReward2) public pixelPropertyAccess() {
        require(balances[burner] >= toBurn);
        if (toBurn > 0) {
            balances[burner] -= toBurn;
            totalSupply -= toBurn;
            Transfer(burner, 0, toBurn);
        }
        if (rewarder1 != 0) {
            balances[rewarder1] += toReward1;
            totalSupply += toReward1;
            Transfer(0, rewarder1, toReward1);
        }
        if (rewarder2 != 0) {
            balances[rewarder2] += toReward2;
            totalSupply += toReward2;
            Transfer(0, rewarder2, toReward2);
        }
    }
    
    /* ### All Getters/Views ### */
    function getOwnerHoverText(address user) public view returns(uint256[2]) {
        return ownerHoverText[user];
    }
    
    function getOwnerLink(address user) public view returns(uint256[2]) {
        return ownerWebsite[user];
    }
    
    function getPropertyFlag(uint16 propertyID) public view returns(uint8) {
        return properties[propertyID].flag;
    }
    
    function getPropertyPrivateMode(uint16 propertyID) public view returns(bool) {
        return properties[propertyID].isInPrivateMode;
    }
    
    function getPropertyOwner(uint16 propertyID) public view returns(address) {
        return properties[propertyID].owner;
    }
    
    function getPropertyLastUpdater(uint16 propertyID) public view returns(address) {
        return properties[propertyID].lastUpdater;
    }
    
    function getPropertyColors(uint16 propertyID) public view returns(uint256[5]) {
        if (properties[propertyID].colors[0] != 0 || properties[propertyID].colors[1] != 0 || properties[propertyID].colors[2] != 0 || properties[propertyID].colors[3] != 0 || properties[propertyID].colors[4] != 0) {
            return properties[propertyID].colors;
        } else {
            return oldPXLProperty.getPropertyColors(propertyID);
        }
    }

    function getPropertyColorsOfRow(uint16 propertyID, uint8 rowIndex) public view returns(uint256) {
        require(rowIndex <= 9);
        return getPropertyColors(propertyID)[rowIndex];
    }
    
    function getPropertySalePrice(uint16 propertyID) public view returns(uint256) {
        return properties[propertyID].salePrice;
    }
    
    function getPropertyLastUpdate(uint16 propertyID) public view returns(uint256) {
        return properties[propertyID].lastUpdate;
    }
    
    function getPropertyBecomePublic(uint16 propertyID) public view returns(uint256) {
        return properties[propertyID].becomePublic;
    }
    
    function getPropertyEarnUntil(uint16 propertyID) public view returns(uint256) {
        return properties[propertyID].earnUntil;
    }
    
    function getRegulatorLevel(address user) public view returns(uint8) {
        return regulators[user];
    }
    
    // Gets the (owners address, Ethereum sale price, PXL sale price, last update timestamp, whether its in private mode or not, when it becomes public timestamp, flag) for a Property
    function getPropertyData(uint16 propertyID, uint256 systemSalePriceETH, uint256 systemSalePricePXL) public view returns(address, uint256, uint256, uint256, bool, uint256, uint8) {
        Property memory property = properties[propertyID];
        bool isInPrivateMode = property.isInPrivateMode;
        //If it's in private, but it has expired and should be public, set our bool to be public
        if (isInPrivateMode && property.becomePublic <= now) { 
            isInPrivateMode = false;
        }
        if (properties[propertyID].owner == 0) {
            return (0, systemSalePriceETH, systemSalePricePXL, property.lastUpdate, isInPrivateMode, property.becomePublic, property.flag);
        } else {
            return (property.owner, 0, property.salePrice, property.lastUpdate, isInPrivateMode, property.becomePublic, property.flag);
        }
    }
    
    function getPropertyPrivateModeBecomePublic(uint16 propertyID) public view returns (bool, uint256) {
        return (properties[propertyID].isInPrivateMode, properties[propertyID].becomePublic);
    }
    
    function getPropertyLastUpdaterBecomePublic(uint16 propertyID) public view returns (address, uint256) {
        return (properties[propertyID].lastUpdater, properties[propertyID].becomePublic);
    }
    
    function getPropertyOwnerSalePrice(uint16 propertyID) public view returns (address, uint256) {
        return (properties[propertyID].owner, properties[propertyID].salePrice);
    }
    
    function getPropertyPrivateModeLastUpdateEarnUntil(uint16 propertyID) public view returns (bool, uint256, uint256) {
        return (properties[propertyID].isInPrivateMode, properties[propertyID].lastUpdate, properties[propertyID].earnUntil);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"burner","type":"address"},{"name":"toBurn","type":"uint256"},{"name":"rewarder1","type":"address"},{"name":"toReward1","type":"uint256"},{"name":"rewarder2","type":"address"},{"name":"toReward2","type":"uint256"}],"name":"burnPXLRewardPXLx2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"lastUpdater","type":"address"},{"name":"lastUpdate","type":"uint256"}],"name":"setPropertyLastUpdaterLastUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"propertyDAppContract","type":"address"},{"name":"giveAccess","type":"bool"}],"name":"setPropertyDAppContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"earnUntil","type":"uint256"}],"name":"setPropertyEarnUntil","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertySalePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyPrivateModeLastUpdateEarnUntil","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyLastUpdate","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rewardedUser","type":"address"},{"name":"amount","type":"uint256"}],"name":"rewardPXL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"burner","type":"address"},{"name":"toBurn","type":"uint256"},{"name":"rewarder","type":"address"},{"name":"toReward","type":"uint256"}],"name":"burnPXLRewardPXL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyPrivateMode","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"row","type":"uint8"},{"name":"rowColor","type":"uint256"}],"name":"setPropertyRowColor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"lastUpdate","type":"uint256"}],"name":"setPropertyLastUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"owner","type":"address"},{"name":"salePrice","type":"uint256"}],"name":"setPropertyOwnerSalePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"isInPrivateMode","type":"bool"}],"name":"setPropertyPrivateMode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"textOwner","type":"address"},{"name":"hoverText","type":"uint256[2]"}],"name":"setOwnerHoverText","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyLastUpdaterBecomePublic","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"properties","outputs":[{"name":"flag","type":"uint8"},{"name":"isInPrivateMode","type":"bool"},{"name":"owner","type":"address"},{"name":"lastUpdater","type":"address"},{"name":"salePrice","type":"uint256"},{"name":"lastUpdate","type":"uint256"},{"name":"becomePublic","type":"uint256"},{"name":"earnUntil","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"salePrice","type":"uint256"}],"name":"setPropertySalePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"websiteOwner","type":"address"},{"name":"website","type":"uint256[2]"}],"name":"setOwnerLink","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":true,"inputs":[{"name":"","type":"address"}],"name":"regulators","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"privateMode","type":"bool"},{"name":"earnUntil","type":"uint256"},{"name":"lastUpdate","type":"uint256"},{"name":"becomePublic","type":"uint256"}],"name":"setPropertyPrivateModeEarnUntilLastUpdateBecomePublic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getOwnerHoverText","outputs":[{"name":"","type":"uint256[2]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"flag","type":"uint8"}],"name":"setPropertyFlag","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"accessLevel","type":"uint8"}],"name":"setRegulatorAccessLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyFlag","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyEarnUntil","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertiesToCopy","type":"uint16[10]"}],"name":"migratePropertyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyPrivateModeBecomePublic","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"becomePublic","type":"uint256"}],"name":"setPropertyBecomePublic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"systemSalePriceETH","type":"uint256"},{"name":"systemSalePricePXL","type":"uint256"}],"name":"getPropertyData","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"owner","type":"address"},{"name":"salePrice","type":"uint256"},{"name":"privateMode","type":"bool"},{"name":"flag","type":"uint8"}],"name":"setPropertyOwnerSalePricePrivateModeFlag","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyLastUpdater","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getRegulatorLevel","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"lastUpdater","type":"address"}],"name":"setPropertyLastUpdater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"becomePublic","type":"uint256"},{"name":"earnUntil","type":"uint256"}],"name":"setPropertyBecomePublicEarnUntil","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"rowIndex","type":"uint8"}],"name":"getPropertyColorsOfRow","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPixelPropertyContract","type":"address"}],"name":"setPixelPropertyContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyOwnerSalePrice","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"propertyOwner","type":"address"}],"name":"setPropertyOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endMigrationPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"ownerWebsite","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyColors","outputs":[{"name":"","type":"uint256[5]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"propertyID","type":"uint16"},{"name":"colors","type":"uint256[5]"}],"name":"setPropertyColors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getOwnerLink","outputs":[{"name":"","type":"uint256[2]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"usersToMigrate","type":"address[10]"}],"name":"migrateUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"burningUser","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnPXL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"ownerHoverText","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"propertyID","type":"uint16"}],"name":"getPropertyBecomePublic","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"oldAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

608060405234801561001057600080fd5b50604051602080612b4b833981016040908152905160088054600160a060020a039092166101000261010060a860020a031960ff199384166001171617905533600090815260046020529190912080549091166007179055612ad4806100776000396000f30060806040526004361061029a5763ffffffff60e060020a60003504166306fdde03811461029f578063095ea7b314610329578063121c2b351461036157806315f590331461039b57806316514052146103c657806317e0aeb8146103ec57806318160ddd1461040b5780631bbc7952146104325780631f12da061461044e57806323b11bb11461048a57806323b872dd146104a657806326728b14146104d05780632a396734146104f45780632ccaa3e914610522578063313ce5671461055a57806337c749481461056f5780633953ca8b1461058b578063411b65ef146105b057806345ede900146105cf5780634b1ec20c146105fa578063606bc9a51461061b57806363a6568f1461066757806369a4c4e7146106a65780636d87b65c146107135780636fcdcb3e1461073257806370a082311461077e5780637dfb86a01461079f578063886b148d146107d65780638b9997fd146108005780638d1066901461085c57806395d89b411461087e57806395f47e4e1461089357806398864aaf146108ba57806399b29044146108d6578063a1350c00146108f2578063a9059cbb14610937578063ab383a6b1461095b578063b4cc218114610992578063b7b1e3cc146109b1578063b9e58ab014610a1a578063ba8c0c9d14610a50578063bbfa615314610a6c578063c19358bb14610a8d578063c575200d14610ab5578063c7ff208614610ad7578063c839008e14610af9578063cf09e82014610b1a578063d5c98db114610b36578063dd62ed3e14610b5e578063dd83880814610b85578063e1c230dd14610b9a578063e86994ea14610bbe578063eb39bc9014610bef578063f23a8aa614610c39578063f60a696d14610c5a578063f6f8ca0714610c9f578063f785074614610cc3578063fc9ede6514610ce7575b600080fd5b3480156102ab57600080fd5b506102b4610d03565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ee5781810151838201526020016102d6565b50505050905090810190601f16801561031b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033557600080fd5b5061034d600160a060020a0360043516602435610d3a565b604080519115158252519081900360200190f35b34801561036d57600080fd5b50610399600160a060020a0360043581169060243590604435811690606435906084351660a435610da1565b005b3480156103a757600080fd5b5061039961ffff60043516600160a060020a0360243516604435610ef1565b3480156103d257600080fd5b50610399600160a060020a03600435166024351515610f94565b3480156103f857600080fd5b5061039961ffff60043516602435611037565b34801561041757600080fd5b50610420611070565b60408051918252519081900360200190f35b34801561043e57600080fd5b5061042061ffff60043516611076565b34801561045a57600080fd5b5061046a61ffff60043516611093565b604080519315158452602084019290925282820152519081900360600190f35b34801561049657600080fd5b5061042061ffff600435166110be565b3480156104b257600080fd5b5061034d600160a060020a03600435811690602435166044356110d7565b3480156104dc57600080fd5b50610399600160a060020a03600435166024356111b2565b34801561050057600080fd5b50610399600160a060020a036004358116906024359060443516606435611231565b34801561052e57600080fd5b5061053e61ffff60043516611328565b60408051600160a060020a039092168252519081900360200190f35b34801561056657600080fd5b5061042061134d565b34801561057b57600080fd5b5061034d61ffff60043516611352565b34801561059757600080fd5b5061039961ffff6004351660ff60243516604435611370565b3480156105bc57600080fd5b5061039961ffff6004351660243561141b565b3480156105db57600080fd5b5061039961ffff60043516600160a060020a0360243516604435611454565b34801561060657600080fd5b5061039961ffff60043516602435151561151b565b34801561062757600080fd5b506040805180820182526103999160048035600160a060020a03169236926064919060249060029083908390808284375093965061158a95505050505050565b34801561067357600080fd5b5061068361ffff60043516611601565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156106b257600080fd5b506106c261ffff6004351661162c565b6040805160ff90991689529615156020890152600160a060020a0395861688880152939094166060870152608086019190915260a085015260c084019190915260e083015251908190036101000190f35b34801561071f57600080fd5b5061039961ffff6004351660243561167e565b34801561073e57600080fd5b506040805180820182526103999160048035600160a060020a0316923692606491906024906002908390839080828437509396506116d595505050505050565b34801561078a57600080fd5b50610420600160a060020a036004351661174c565b3480156107ab57600080fd5b506107c0600160a060020a0360043516611767565b6040805160ff9092168252519081900360200190f35b3480156107e257600080fd5b5061039961ffff60043516602435151560443560643560843561177c565b34801561080c57600080fd5b50610821600160a060020a0360043516611812565b6040518082600260200280838360005b83811015610849578181015183820152602001610831565b5050505090500191505060405180910390f35b34801561086857600080fd5b5061039961ffff6004351660ff60243516611863565b34801561088a57600080fd5b506102b4611975565b34801561089f57600080fd5b50610399600160a060020a036004351660ff602435166119ac565b3480156108c657600080fd5b506107c061ffff60043516611a8b565b3480156108e257600080fd5b5061042061ffff60043516611aa4565b3480156108fe57600080fd5b506040805161014081810190925261039991369160049161014491908390600a90839083908082843750939650611abd95505050505050565b34801561094357600080fd5b5061034d600160a060020a0360043516602435611c91565b34801561096757600080fd5b5061097761ffff60043516611d18565b60408051921515835260208301919091528051918290030190f35b34801561099e57600080fd5b5061039961ffff60043516602435611d3e565b3480156109bd57600080fd5b506109d361ffff60043516602435604435611d77565b60408051600160a060020a03909816885260208801969096528686019490945260608601929092521515608085015260a084015260ff1660c0830152519081900360e00190f35b348015610a2657600080fd5b5061039961ffff60043516600160a060020a0360243516604435606435151560ff60843516611ef1565b348015610a5c57600080fd5b5061053e61ffff60043516612048565b348015610a7857600080fd5b506107c0600160a060020a036004351661206a565b348015610a9957600080fd5b5061039961ffff60043516600160a060020a0360243516612088565b348015610ac157600080fd5b5061039961ffff60043516602435604435612112565b348015610ae357600080fd5b5061042061ffff6004351660ff60243516612153565b348015610b0557600080fd5b50610399600160a060020a0360043516612189565b348015610b2657600080fd5b5061068361ffff60043516612269565b348015610b4257600080fd5b5061039961ffff60043516600160a060020a0360243516612296565b348015610b6a57600080fd5b50610420600160a060020a0360043581169060243516612327565b348015610b9157600080fd5b50610399612352565b348015610ba657600080fd5b50610420600160a060020a03600435166024356123ae565b348015610bca57600080fd5b50610bda61ffff600435166123d0565b60405181518152808260a08083836020610831565b348015610bfb57600080fd5b506040805160a0808201909252610399916004803561ffff1692369260c4919060249060059083908390808284375093965061257395505050505050565b348015610c4557600080fd5b50610821600160a060020a0360043516612648565b348015610c6657600080fd5b506040805161014081810190925261039991369160049161014491908390600a9083908390808284375093965061269c95505050505050565b348015610cab57600080fd5b50610399600160a060020a0360043516602435612892565b348015610ccf57600080fd5b50610420600160a060020a036004351660243561293b565b348015610cf357600080fd5b5061042061ffff60043516612954565b60408051808201909152601281527f506978656c50726f7065727479546f6b656e0000000000000000000000000000602082015281565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b3360009081526004602052604090205460ff16600914610dc057600080fd5b600160a060020a038616600090815260016020526040902054851115610de557600080fd5b6000851115610e3b57600160a060020a038616600081815260016020908152604080832080548a900390558254899003835580518981529051929392600080516020612a89833981519152929181900390910190a35b600160a060020a03841615610e9257600160a060020a038416600081815260016020908152604080832080548801905582548701835580518781529051600080516020612a89833981519152929181900390910190a35b600160a060020a03821615610ee957600160a060020a038216600081815260016020908152604080832080548601905582548501835580518581529051600080516020612a89833981519152929181900390910190a35b505050505050565b3360009081526004602052604090205460ff16600914610f1057600080fd5b61ffff8316600090815260056020526040902060010154600160a060020a03838116911614610f765761ffff83166000908152600560205260409020600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b61ffff90921660009081526005602052604090206008019190915550565b3360009081526004602052604090205460059060ff16811115610fb657600080fd5b600360ff821610610fe35733600090815260046020526040902054600760ff9091161115610fe357600080fd5b600160a060020a0383161515610ff857600080fd5b81611004576000611007565b60085b600160a060020a03939093166000908152600460205260409020805460ff191660ff909416939093179092555050565b3360009081526004602052604090205460ff1660091461105657600080fd5b61ffff9091166000908152600560205260409020600a0155565b60005481565b61ffff81166000908152600560205260409020600701545b919050565b61ffff16600090815260056020526040902080546008820154600a9092015461010090910460ff1692565b61ffff1660009081526005602052604090206008015490565b600160a060020a03831660009081526001602052604081205482118015906111225750600160a060020a03841660009081526002602090815260408083203384529091529020548211155b801561112e5750600082115b156111a757600160a060020a0380841660008181526001602090815260408083208054880190559388168083528483208054889003905560028252848320338452825291849020805487900390558351868152935192939192600080516020612a898339815191529281900390910190a35060016111ab565b5060005b9392505050565b3360009081526004602052604090205460ff166009146111d157600080fd5b600160a060020a03821615156111e657600080fd5b600160a060020a038216600081815260016020908152604080832080548601905582548501835580518581529051600080516020612a89833981519152929181900390910190a35050565b3360009081526004602052604090205460ff1660091461125057600080fd5b600160a060020a03841660009081526001602052604090205483111561127557600080fd5b60008311156112cb57600160a060020a0384166000818152600160209081526040808320805488900390558254879003835580518781529051929392600080516020612a89833981519152929181900390910190a35b600160a060020a0382161561132257600160a060020a038216600081815260016020908152604080832080548601905582548501835580518581529051600080516020612a89833981519152929181900390910190a35b50505050565b61ffff16600090815260056020526040902054620100009004600160a060020a031690565b600081565b61ffff16600090815260056020526040902054610100900460ff1690565b3360009081526004602052604090205460ff16600814806113a357503360009081526004602052604090205460ff166009145b15156113ae57600080fd5b80600560008561ffff1661ffff1681526020019081526020016000206002018360ff166005811015156113dd57fe5b0154146114165780600560008561ffff1661ffff1681526020019081526020016000206002018360ff1660058110151561141357fe5b01555b505050565b3360009081526004602052604090205460ff1660091461143a57600080fd5b61ffff909116600090815260056020526040902060080155565b3360009081526004602052604090205460ff1660091461147357600080fd5b61ffff8316600090815260056020526040902054600160a060020a038381166201000090920416146114e05761ffff83166000908152600560205260409020805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038516021790555b61ffff831660009081526005602052604090206007015481146114165761ffff83166000908152600560205260409020600701819055505050565b3360009081526004602052604090205460ff1660091461153a57600080fd5b61ffff821660009081526005602052604090205460ff610100909104161515811515146115865761ffff82166000908152600560205260409020805461ff001916610100831515021790555b5050565b3360009081526004602052604090205460ff16600814806115bd57503360009081526004602052604090205460ff166009145b15156115c857600080fd5b600160a060020a03821615156115dd57600080fd5b600160a060020a03821660009081526007602052604090206114169082600261296d565b61ffff1660009081526005602052604090206001810154600990910154600160a060020a0390911691565b600560205260009081526040902080546001820154600783015460088401546009850154600a9095015460ff80861696610100870490911695600160a060020a03620100009091048116951693929188565b3360009081526004602052604090205460ff1660091461169d57600080fd5b61ffff821660009081526005602052604090206007015481146115865761ffff91909116600090815260056020526040902060070155565b3360009081526004602052604090205460ff166008148061170857503360009081526004602052604090205460ff166009145b151561171357600080fd5b600160a060020a038216151561172857600080fd5b600160a060020a03821660009081526006602052604090206114169082600261296d565b600160a060020a031660009081526001602052604090205490565b60046020526000908152604090205460ff1681565b3360009081526004602052604090205460ff1660091461179b57600080fd5b61ffff851660009081526005602052604090205460ff610100909104161515841515146117e75761ffff85166000908152600560205260409020805461ff001916610100861515021790555b61ffff9094166000908152600560205260409020600a81019290925560088201556009019190915550565b61181a6129ab565b600160a060020a038216600090815260076020526040908190208151808301928390529160029082845b8154815260200190600101908083116118445750505050509050919050565b60ff8116600114611875576002611878565b60015b600760ff8216111561188957600080fd5b3360009081526004602052604090205460ff808316911610156118ab57600080fd5b600360ff8216106118d85733600090815260046020526040902054600760ff90911611156118d857600080fd5b61ffff83166000908152600560205260409020805460ff191660ff8416908117909155600214156114165761ffff8316600090815260056020526040902054610100900460ff16151561192a57600080fd5b6040805160a08101825260008082526020808301829052828401829052606083018290526080830182905261ffff8716825260059081905292902061132292600290910191906129c6565b60408051808201909152600381527f50584c0000000000000000000000000000000000000000000000000000000000602082015281565b3360009081526004602052604090205460039060ff168111156119ce57600080fd5b600360ff8216106119fb5733600090815260046020526040902054600760ff90911611156119fb57600080fd5b33600160a060020a03841614611a3c57600160a060020a0383166000908152600460205260408082205433835291205460ff918216911611611a3c57600080fd5b3360009081526004602052604090205460ff808416911611611a5d57600080fd5b50600160a060020a03919091166000908152600460205260409020805460ff191660ff909216919091179055565b61ffff1660009081526005602052604090205460ff1690565b61ffff166000908152600560205260409020600a015490565b3360009081526004602052604081205460079060ff16811115611adf57600080fd5b600360ff821610611b0c5733600090815260046020526040902054600760ff9091161115611b0c57600080fd5b60085460ff161515611b1d57600080fd5b600091505b600a8261ffff161015611416576127108361ffff8416600a8110611b4257fe5b602002015161ffff161015611c8657600560008461ffff8516600a8110611b6557fe5b6020908102919091015161ffff16825281019190915260400160002054620100009004600160a060020a03161515611c86576008546101009004600160a060020a0316632ccaa3e98461ffff8516600a8110611bbd57fe5b60200201516040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050506040513d6020811015611c2d57600080fd5b5051600560008561ffff8616600a8110611c4357fe5b602002015161ffff1661ffff16815260200190815260200160002060000160026101000a815481600160a060020a030219169083600160a060020a031602179055505b600190910190611b22565b336000908152600160205260408120548211801590611cb05750600082115b15611d105733600081815260016020908152604080832080548790039055600160a060020a0387168084529281902080548701905580518681529051929392600080516020612a89833981519152929181900390910190a3506001610d9b565b506000610d9b565b61ffff166000908152600560205260409020805460099091015461010090910460ff1691565b3360009081526004602052604090205460ff16600914611d5d57600080fd5b61ffff909116600090815260056020526040902060090155565b6000806000806000806000611d8a6129f9565b61ffff8b166000908152600560208181526040808420815161012081018352815460ff808216835261010082041615159482019490945262010000909304600160a060020a03908116848401526001820154166060840152815160a08101928390529293909260808501929091600285019182845b815481526020019060010190808311611dff5750505050508152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050915081602001519050808015611e5d5750428260e0015111155b15611e66575060005b61ffff8c16600090815260056020526040902054620100009004600160a060020a03161515611eb65760c082015160e0830151835160009b508d9a508c9950919750919550909350915083611ee2565b604082015160a083015160c084015160e08501518551939c5060009b5091995097509195509093509150835b50509397509397509397909450565b3360009081526004602052604090205460ff16600914611f1057600080fd5b61ffff8516600090815260056020526040902054600160a060020a03858116620100009092041614611f7d5761ffff85166000908152600560205260409020805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038716021790555b61ffff85166000908152600560205260409020600701548314611fb45761ffff851660009081526005602052604090206007018390555b61ffff851660009081526005602052604090205460ff610100909104161515821515146120005761ffff85166000908152600560205260409020805461ff001916610100841515021790555b61ffff851660009081526005602052604090205460ff8281169116146120415761ffff85166000908152600560205260409020805460ff191660ff83161790555b5050505050565b61ffff16600090815260056020526040902060010154600160a060020a031690565b600160a060020a031660009081526004602052604090205460ff1690565b3360009081526004602052604090205460ff166009146120a757600080fd5b61ffff8216600090815260056020526040902060010154600160a060020a038281169116146115865761ffff821660009081526005602052604090206001018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790555050565b3360009081526004602052604090205460ff1660091461213157600080fd5b61ffff90921660009081526005602052604090206009810191909155600a0155565b6000600960ff8316111561216657600080fd5b61216f836123d0565b60ff83166005811061217d57fe5b60200201519392505050565b3360009081526004602052604090205460069060ff168111156121ab57600080fd5b600360ff8216106121d85733600090815260046020526040902054600760ff90911611156121d857600080fd5b600160a060020a03821615156121ed57600080fd5b600354600160a060020a03161561222157600354600160a060020a03166000908152600460205260409020805460ff191690555b5060038054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff19909216821790556000908152600460205260409020805460ff19166009179055565b61ffff166000908152600560205260409020805460079091015462010000909104600160a060020a031691565b3360009081526004602052604090205460ff166009146122b557600080fd5b61ffff8216600090815260056020526040902054600160a060020a038281166201000090920416146115865761ffff821660009081526005602052604090208054600160a060020a038316620100000275ffffffffffffffffffffffffffffffffffffffff0000199091161790555050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b3360009081526004602052604090205460079060ff1681111561237457600080fd5b600360ff8216106123a15733600090815260046020526040902054600760ff90911611156123a157600080fd5b506008805460ff19169055565b600660205260008281526040902081600281106123c757fe5b01549150829050565b6123d8612a4c565b61ffff8216600090815260056020526040902060020154151580612411575061ffff821660009081526005602052604090206003015415155b80612431575061ffff821660009081526005602052604090206004015415155b80612454575061ffff821660009081526005602052604090206002016003015415155b80612474575061ffff821660009081526005602052604090206006015415155b156124c45761ffff8216600090815260056020819052604091829020825160a0810193849052926002909101919082845b8154815260200190600101908083116124a5575050505050905061108e565b600854604080517fe86994ea00000000000000000000000000000000000000000000000000000000815261ffff851660048201529051610100909204600160a060020a03169163e86994ea9160248082019260a0929091908290030181600087803b15801561253257600080fd5b505af1158015612546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561256b57600080fd5b50905061108e565b3360009081526004602052604081205460ff16600814806125a657503360009081526004602052604090205460ff166009145b15156125b157600080fd5b5060005b6005811015611416578181600581106125ca57fe5b6020020151600560008561ffff1661ffff168152602001908152602001600020600201826005811015156125fa57fe5b0154146126405781816005811061260d57fe5b6020020151600560008561ffff1661ffff1681526020019081526020016000206002018260058110151561263d57fe5b01555b6001016125b5565b6126506129ab565b600160a060020a03821660009081526006602052604090819020815180830190925260028282826020028201918154815260200190600101908083116118445750505050509050919050565b33600090815260046020526040812054819060079060ff168111156126c057600080fd5b600360ff8216106126ed5733600090815260046020526040902054600760ff90911611156126ed57600080fd5b60085460ff1615156126fe57600080fd5b600092505b600a8361ffff16101561132257600160008561ffff8616600a811061272457fe5b6020020151600160a060020a0316600160a060020a031681526020019081526020016000205460001415612887576008546101009004600160a060020a03166370a082318561ffff8616600a811061277857fe5b60200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156127c857600080fd5b505af11580156127dc573d6000803e3d6000fd5b505050506040513d60208110156127f257600080fd5b5051915060008211156128875781600160008661ffff8716600a811061281457fe5b60209081029190910151600160a060020a031682528101919091526040016000908120919091558054830190558361ffff8416600a811061285157fe5b6020020151600160a060020a03166000600080516020612a89833981519152846040518082815260200191505060405180910390a35b600190920191612703565b3360009081526004602052604090205460ff166009146128b157600080fd5b600160a060020a03821615156128c657600080fd5b600160a060020a0382166000908152600160205260409020548111156128eb57600080fd5b600160a060020a0382166000818152600160209081526040808320805486900390558254859003835580518581529051929392600080516020612a89833981519152929181900390910190a35050565b600760205260008281526040902081600281106123c757fe5b61ffff1660009081526005602052604090206009015490565b826002810192821561299b579160200282015b8281111561299b578251825591602001919060010190612980565b506129a7929150612a6b565b5090565b60408051808201825290600290829080388339509192915050565b826005810192821561299b579160200282015b8281111561299b578251829060ff169055916020019190600101906129d9565b604080516101a081018252600080825260208201819052918101829052606081019190915260808101612a2a612a4c565b8152602001600081526020016000815260200160008152602001600081525090565b60a0604051908101604052806005906020820280388339509192915050565b612a8591905b808211156129a75760008155600101612a71565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820f428c8f87a694106e79f2897c6831eebdce58b9eb554d0290c7ef48d8faf47870029000000000000000000000000f07d979303c50a8632848cb154c6b30980218c07

Deployed Bytecode

0x60806040526004361061029a5763ffffffff60e060020a60003504166306fdde03811461029f578063095ea7b314610329578063121c2b351461036157806315f590331461039b57806316514052146103c657806317e0aeb8146103ec57806318160ddd1461040b5780631bbc7952146104325780631f12da061461044e57806323b11bb11461048a57806323b872dd146104a657806326728b14146104d05780632a396734146104f45780632ccaa3e914610522578063313ce5671461055a57806337c749481461056f5780633953ca8b1461058b578063411b65ef146105b057806345ede900146105cf5780634b1ec20c146105fa578063606bc9a51461061b57806363a6568f1461066757806369a4c4e7146106a65780636d87b65c146107135780636fcdcb3e1461073257806370a082311461077e5780637dfb86a01461079f578063886b148d146107d65780638b9997fd146108005780638d1066901461085c57806395d89b411461087e57806395f47e4e1461089357806398864aaf146108ba57806399b29044146108d6578063a1350c00146108f2578063a9059cbb14610937578063ab383a6b1461095b578063b4cc218114610992578063b7b1e3cc146109b1578063b9e58ab014610a1a578063ba8c0c9d14610a50578063bbfa615314610a6c578063c19358bb14610a8d578063c575200d14610ab5578063c7ff208614610ad7578063c839008e14610af9578063cf09e82014610b1a578063d5c98db114610b36578063dd62ed3e14610b5e578063dd83880814610b85578063e1c230dd14610b9a578063e86994ea14610bbe578063eb39bc9014610bef578063f23a8aa614610c39578063f60a696d14610c5a578063f6f8ca0714610c9f578063f785074614610cc3578063fc9ede6514610ce7575b600080fd5b3480156102ab57600080fd5b506102b4610d03565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ee5781810151838201526020016102d6565b50505050905090810190601f16801561031b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033557600080fd5b5061034d600160a060020a0360043516602435610d3a565b604080519115158252519081900360200190f35b34801561036d57600080fd5b50610399600160a060020a0360043581169060243590604435811690606435906084351660a435610da1565b005b3480156103a757600080fd5b5061039961ffff60043516600160a060020a0360243516604435610ef1565b3480156103d257600080fd5b50610399600160a060020a03600435166024351515610f94565b3480156103f857600080fd5b5061039961ffff60043516602435611037565b34801561041757600080fd5b50610420611070565b60408051918252519081900360200190f35b34801561043e57600080fd5b5061042061ffff60043516611076565b34801561045a57600080fd5b5061046a61ffff60043516611093565b604080519315158452602084019290925282820152519081900360600190f35b34801561049657600080fd5b5061042061ffff600435166110be565b3480156104b257600080fd5b5061034d600160a060020a03600435811690602435166044356110d7565b3480156104dc57600080fd5b50610399600160a060020a03600435166024356111b2565b34801561050057600080fd5b50610399600160a060020a036004358116906024359060443516606435611231565b34801561052e57600080fd5b5061053e61ffff60043516611328565b60408051600160a060020a039092168252519081900360200190f35b34801561056657600080fd5b5061042061134d565b34801561057b57600080fd5b5061034d61ffff60043516611352565b34801561059757600080fd5b5061039961ffff6004351660ff60243516604435611370565b3480156105bc57600080fd5b5061039961ffff6004351660243561141b565b3480156105db57600080fd5b5061039961ffff60043516600160a060020a0360243516604435611454565b34801561060657600080fd5b5061039961ffff60043516602435151561151b565b34801561062757600080fd5b506040805180820182526103999160048035600160a060020a03169236926064919060249060029083908390808284375093965061158a95505050505050565b34801561067357600080fd5b5061068361ffff60043516611601565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156106b257600080fd5b506106c261ffff6004351661162c565b6040805160ff90991689529615156020890152600160a060020a0395861688880152939094166060870152608086019190915260a085015260c084019190915260e083015251908190036101000190f35b34801561071f57600080fd5b5061039961ffff6004351660243561167e565b34801561073e57600080fd5b506040805180820182526103999160048035600160a060020a0316923692606491906024906002908390839080828437509396506116d595505050505050565b34801561078a57600080fd5b50610420600160a060020a036004351661174c565b3480156107ab57600080fd5b506107c0600160a060020a0360043516611767565b6040805160ff9092168252519081900360200190f35b3480156107e257600080fd5b5061039961ffff60043516602435151560443560643560843561177c565b34801561080c57600080fd5b50610821600160a060020a0360043516611812565b6040518082600260200280838360005b83811015610849578181015183820152602001610831565b5050505090500191505060405180910390f35b34801561086857600080fd5b5061039961ffff6004351660ff60243516611863565b34801561088a57600080fd5b506102b4611975565b34801561089f57600080fd5b50610399600160a060020a036004351660ff602435166119ac565b3480156108c657600080fd5b506107c061ffff60043516611a8b565b3480156108e257600080fd5b5061042061ffff60043516611aa4565b3480156108fe57600080fd5b506040805161014081810190925261039991369160049161014491908390600a90839083908082843750939650611abd95505050505050565b34801561094357600080fd5b5061034d600160a060020a0360043516602435611c91565b34801561096757600080fd5b5061097761ffff60043516611d18565b60408051921515835260208301919091528051918290030190f35b34801561099e57600080fd5b5061039961ffff60043516602435611d3e565b3480156109bd57600080fd5b506109d361ffff60043516602435604435611d77565b60408051600160a060020a03909816885260208801969096528686019490945260608601929092521515608085015260a084015260ff1660c0830152519081900360e00190f35b348015610a2657600080fd5b5061039961ffff60043516600160a060020a0360243516604435606435151560ff60843516611ef1565b348015610a5c57600080fd5b5061053e61ffff60043516612048565b348015610a7857600080fd5b506107c0600160a060020a036004351661206a565b348015610a9957600080fd5b5061039961ffff60043516600160a060020a0360243516612088565b348015610ac157600080fd5b5061039961ffff60043516602435604435612112565b348015610ae357600080fd5b5061042061ffff6004351660ff60243516612153565b348015610b0557600080fd5b50610399600160a060020a0360043516612189565b348015610b2657600080fd5b5061068361ffff60043516612269565b348015610b4257600080fd5b5061039961ffff60043516600160a060020a0360243516612296565b348015610b6a57600080fd5b50610420600160a060020a0360043581169060243516612327565b348015610b9157600080fd5b50610399612352565b348015610ba657600080fd5b50610420600160a060020a03600435166024356123ae565b348015610bca57600080fd5b50610bda61ffff600435166123d0565b60405181518152808260a08083836020610831565b348015610bfb57600080fd5b506040805160a0808201909252610399916004803561ffff1692369260c4919060249060059083908390808284375093965061257395505050505050565b348015610c4557600080fd5b50610821600160a060020a0360043516612648565b348015610c6657600080fd5b506040805161014081810190925261039991369160049161014491908390600a9083908390808284375093965061269c95505050505050565b348015610cab57600080fd5b50610399600160a060020a0360043516602435612892565b348015610ccf57600080fd5b50610420600160a060020a036004351660243561293b565b348015610cf357600080fd5b5061042061ffff60043516612954565b60408051808201909152601281527f506978656c50726f7065727479546f6b656e0000000000000000000000000000602082015281565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b3360009081526004602052604090205460ff16600914610dc057600080fd5b600160a060020a038616600090815260016020526040902054851115610de557600080fd5b6000851115610e3b57600160a060020a038616600081815260016020908152604080832080548a900390558254899003835580518981529051929392600080516020612a89833981519152929181900390910190a35b600160a060020a03841615610e9257600160a060020a038416600081815260016020908152604080832080548801905582548701835580518781529051600080516020612a89833981519152929181900390910190a35b600160a060020a03821615610ee957600160a060020a038216600081815260016020908152604080832080548601905582548501835580518581529051600080516020612a89833981519152929181900390910190a35b505050505050565b3360009081526004602052604090205460ff16600914610f1057600080fd5b61ffff8316600090815260056020526040902060010154600160a060020a03838116911614610f765761ffff83166000908152600560205260409020600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b61ffff90921660009081526005602052604090206008019190915550565b3360009081526004602052604090205460059060ff16811115610fb657600080fd5b600360ff821610610fe35733600090815260046020526040902054600760ff9091161115610fe357600080fd5b600160a060020a0383161515610ff857600080fd5b81611004576000611007565b60085b600160a060020a03939093166000908152600460205260409020805460ff191660ff909416939093179092555050565b3360009081526004602052604090205460ff1660091461105657600080fd5b61ffff9091166000908152600560205260409020600a0155565b60005481565b61ffff81166000908152600560205260409020600701545b919050565b61ffff16600090815260056020526040902080546008820154600a9092015461010090910460ff1692565b61ffff1660009081526005602052604090206008015490565b600160a060020a03831660009081526001602052604081205482118015906111225750600160a060020a03841660009081526002602090815260408083203384529091529020548211155b801561112e5750600082115b156111a757600160a060020a0380841660008181526001602090815260408083208054880190559388168083528483208054889003905560028252848320338452825291849020805487900390558351868152935192939192600080516020612a898339815191529281900390910190a35060016111ab565b5060005b9392505050565b3360009081526004602052604090205460ff166009146111d157600080fd5b600160a060020a03821615156111e657600080fd5b600160a060020a038216600081815260016020908152604080832080548601905582548501835580518581529051600080516020612a89833981519152929181900390910190a35050565b3360009081526004602052604090205460ff1660091461125057600080fd5b600160a060020a03841660009081526001602052604090205483111561127557600080fd5b60008311156112cb57600160a060020a0384166000818152600160209081526040808320805488900390558254879003835580518781529051929392600080516020612a89833981519152929181900390910190a35b600160a060020a0382161561132257600160a060020a038216600081815260016020908152604080832080548601905582548501835580518581529051600080516020612a89833981519152929181900390910190a35b50505050565b61ffff16600090815260056020526040902054620100009004600160a060020a031690565b600081565b61ffff16600090815260056020526040902054610100900460ff1690565b3360009081526004602052604090205460ff16600814806113a357503360009081526004602052604090205460ff166009145b15156113ae57600080fd5b80600560008561ffff1661ffff1681526020019081526020016000206002018360ff166005811015156113dd57fe5b0154146114165780600560008561ffff1661ffff1681526020019081526020016000206002018360ff1660058110151561141357fe5b01555b505050565b3360009081526004602052604090205460ff1660091461143a57600080fd5b61ffff909116600090815260056020526040902060080155565b3360009081526004602052604090205460ff1660091461147357600080fd5b61ffff8316600090815260056020526040902054600160a060020a038381166201000090920416146114e05761ffff83166000908152600560205260409020805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038516021790555b61ffff831660009081526005602052604090206007015481146114165761ffff83166000908152600560205260409020600701819055505050565b3360009081526004602052604090205460ff1660091461153a57600080fd5b61ffff821660009081526005602052604090205460ff610100909104161515811515146115865761ffff82166000908152600560205260409020805461ff001916610100831515021790555b5050565b3360009081526004602052604090205460ff16600814806115bd57503360009081526004602052604090205460ff166009145b15156115c857600080fd5b600160a060020a03821615156115dd57600080fd5b600160a060020a03821660009081526007602052604090206114169082600261296d565b61ffff1660009081526005602052604090206001810154600990910154600160a060020a0390911691565b600560205260009081526040902080546001820154600783015460088401546009850154600a9095015460ff80861696610100870490911695600160a060020a03620100009091048116951693929188565b3360009081526004602052604090205460ff1660091461169d57600080fd5b61ffff821660009081526005602052604090206007015481146115865761ffff91909116600090815260056020526040902060070155565b3360009081526004602052604090205460ff166008148061170857503360009081526004602052604090205460ff166009145b151561171357600080fd5b600160a060020a038216151561172857600080fd5b600160a060020a03821660009081526006602052604090206114169082600261296d565b600160a060020a031660009081526001602052604090205490565b60046020526000908152604090205460ff1681565b3360009081526004602052604090205460ff1660091461179b57600080fd5b61ffff851660009081526005602052604090205460ff610100909104161515841515146117e75761ffff85166000908152600560205260409020805461ff001916610100861515021790555b61ffff9094166000908152600560205260409020600a81019290925560088201556009019190915550565b61181a6129ab565b600160a060020a038216600090815260076020526040908190208151808301928390529160029082845b8154815260200190600101908083116118445750505050509050919050565b60ff8116600114611875576002611878565b60015b600760ff8216111561188957600080fd5b3360009081526004602052604090205460ff808316911610156118ab57600080fd5b600360ff8216106118d85733600090815260046020526040902054600760ff90911611156118d857600080fd5b61ffff83166000908152600560205260409020805460ff191660ff8416908117909155600214156114165761ffff8316600090815260056020526040902054610100900460ff16151561192a57600080fd5b6040805160a08101825260008082526020808301829052828401829052606083018290526080830182905261ffff8716825260059081905292902061132292600290910191906129c6565b60408051808201909152600381527f50584c0000000000000000000000000000000000000000000000000000000000602082015281565b3360009081526004602052604090205460039060ff168111156119ce57600080fd5b600360ff8216106119fb5733600090815260046020526040902054600760ff90911611156119fb57600080fd5b33600160a060020a03841614611a3c57600160a060020a0383166000908152600460205260408082205433835291205460ff918216911611611a3c57600080fd5b3360009081526004602052604090205460ff808416911611611a5d57600080fd5b50600160a060020a03919091166000908152600460205260409020805460ff191660ff909216919091179055565b61ffff1660009081526005602052604090205460ff1690565b61ffff166000908152600560205260409020600a015490565b3360009081526004602052604081205460079060ff16811115611adf57600080fd5b600360ff821610611b0c5733600090815260046020526040902054600760ff9091161115611b0c57600080fd5b60085460ff161515611b1d57600080fd5b600091505b600a8261ffff161015611416576127108361ffff8416600a8110611b4257fe5b602002015161ffff161015611c8657600560008461ffff8516600a8110611b6557fe5b6020908102919091015161ffff16825281019190915260400160002054620100009004600160a060020a03161515611c86576008546101009004600160a060020a0316632ccaa3e98461ffff8516600a8110611bbd57fe5b60200201516040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050506040513d6020811015611c2d57600080fd5b5051600560008561ffff8616600a8110611c4357fe5b602002015161ffff1661ffff16815260200190815260200160002060000160026101000a815481600160a060020a030219169083600160a060020a031602179055505b600190910190611b22565b336000908152600160205260408120548211801590611cb05750600082115b15611d105733600081815260016020908152604080832080548790039055600160a060020a0387168084529281902080548701905580518681529051929392600080516020612a89833981519152929181900390910190a3506001610d9b565b506000610d9b565b61ffff166000908152600560205260409020805460099091015461010090910460ff1691565b3360009081526004602052604090205460ff16600914611d5d57600080fd5b61ffff909116600090815260056020526040902060090155565b6000806000806000806000611d8a6129f9565b61ffff8b166000908152600560208181526040808420815161012081018352815460ff808216835261010082041615159482019490945262010000909304600160a060020a03908116848401526001820154166060840152815160a08101928390529293909260808501929091600285019182845b815481526020019060010190808311611dff5750505050508152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050915081602001519050808015611e5d5750428260e0015111155b15611e66575060005b61ffff8c16600090815260056020526040902054620100009004600160a060020a03161515611eb65760c082015160e0830151835160009b508d9a508c9950919750919550909350915083611ee2565b604082015160a083015160c084015160e08501518551939c5060009b5091995097509195509093509150835b50509397509397509397909450565b3360009081526004602052604090205460ff16600914611f1057600080fd5b61ffff8516600090815260056020526040902054600160a060020a03858116620100009092041614611f7d5761ffff85166000908152600560205260409020805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038716021790555b61ffff85166000908152600560205260409020600701548314611fb45761ffff851660009081526005602052604090206007018390555b61ffff851660009081526005602052604090205460ff610100909104161515821515146120005761ffff85166000908152600560205260409020805461ff001916610100841515021790555b61ffff851660009081526005602052604090205460ff8281169116146120415761ffff85166000908152600560205260409020805460ff191660ff83161790555b5050505050565b61ffff16600090815260056020526040902060010154600160a060020a031690565b600160a060020a031660009081526004602052604090205460ff1690565b3360009081526004602052604090205460ff166009146120a757600080fd5b61ffff8216600090815260056020526040902060010154600160a060020a038281169116146115865761ffff821660009081526005602052604090206001018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790555050565b3360009081526004602052604090205460ff1660091461213157600080fd5b61ffff90921660009081526005602052604090206009810191909155600a0155565b6000600960ff8316111561216657600080fd5b61216f836123d0565b60ff83166005811061217d57fe5b60200201519392505050565b3360009081526004602052604090205460069060ff168111156121ab57600080fd5b600360ff8216106121d85733600090815260046020526040902054600760ff90911611156121d857600080fd5b600160a060020a03821615156121ed57600080fd5b600354600160a060020a03161561222157600354600160a060020a03166000908152600460205260409020805460ff191690555b5060038054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff19909216821790556000908152600460205260409020805460ff19166009179055565b61ffff166000908152600560205260409020805460079091015462010000909104600160a060020a031691565b3360009081526004602052604090205460ff166009146122b557600080fd5b61ffff8216600090815260056020526040902054600160a060020a038281166201000090920416146115865761ffff821660009081526005602052604090208054600160a060020a038316620100000275ffffffffffffffffffffffffffffffffffffffff0000199091161790555050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b3360009081526004602052604090205460079060ff1681111561237457600080fd5b600360ff8216106123a15733600090815260046020526040902054600760ff90911611156123a157600080fd5b506008805460ff19169055565b600660205260008281526040902081600281106123c757fe5b01549150829050565b6123d8612a4c565b61ffff8216600090815260056020526040902060020154151580612411575061ffff821660009081526005602052604090206003015415155b80612431575061ffff821660009081526005602052604090206004015415155b80612454575061ffff821660009081526005602052604090206002016003015415155b80612474575061ffff821660009081526005602052604090206006015415155b156124c45761ffff8216600090815260056020819052604091829020825160a0810193849052926002909101919082845b8154815260200190600101908083116124a5575050505050905061108e565b600854604080517fe86994ea00000000000000000000000000000000000000000000000000000000815261ffff851660048201529051610100909204600160a060020a03169163e86994ea9160248082019260a0929091908290030181600087803b15801561253257600080fd5b505af1158015612546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561256b57600080fd5b50905061108e565b3360009081526004602052604081205460ff16600814806125a657503360009081526004602052604090205460ff166009145b15156125b157600080fd5b5060005b6005811015611416578181600581106125ca57fe5b6020020151600560008561ffff1661ffff168152602001908152602001600020600201826005811015156125fa57fe5b0154146126405781816005811061260d57fe5b6020020151600560008561ffff1661ffff1681526020019081526020016000206002018260058110151561263d57fe5b01555b6001016125b5565b6126506129ab565b600160a060020a03821660009081526006602052604090819020815180830190925260028282826020028201918154815260200190600101908083116118445750505050509050919050565b33600090815260046020526040812054819060079060ff168111156126c057600080fd5b600360ff8216106126ed5733600090815260046020526040902054600760ff90911611156126ed57600080fd5b60085460ff1615156126fe57600080fd5b600092505b600a8361ffff16101561132257600160008561ffff8616600a811061272457fe5b6020020151600160a060020a0316600160a060020a031681526020019081526020016000205460001415612887576008546101009004600160a060020a03166370a082318561ffff8616600a811061277857fe5b60200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156127c857600080fd5b505af11580156127dc573d6000803e3d6000fd5b505050506040513d60208110156127f257600080fd5b5051915060008211156128875781600160008661ffff8716600a811061281457fe5b60209081029190910151600160a060020a031682528101919091526040016000908120919091558054830190558361ffff8416600a811061285157fe5b6020020151600160a060020a03166000600080516020612a89833981519152846040518082815260200191505060405180910390a35b600190920191612703565b3360009081526004602052604090205460ff166009146128b157600080fd5b600160a060020a03821615156128c657600080fd5b600160a060020a0382166000908152600160205260409020548111156128eb57600080fd5b600160a060020a0382166000818152600160209081526040808320805486900390558254859003835580518581529051929392600080516020612a89833981519152929181900390910190a35050565b600760205260008281526040902081600281106123c757fe5b61ffff1660009081526005602052604090206009015490565b826002810192821561299b579160200282015b8281111561299b578251825591602001919060010190612980565b506129a7929150612a6b565b5090565b60408051808201825290600290829080388339509192915050565b826005810192821561299b579160200282015b8281111561299b578251829060ff169055916020019190600101906129d9565b604080516101a081018252600080825260208201819052918101829052606081019190915260808101612a2a612a4c565b8152602001600081526020016000815260200160008152602001600081525090565b60a0604051908101604052806005906020820280388339509192915050565b612a8591905b808211156129a75760008155600101612a71565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820f428c8f87a694106e79f2897c6831eebdce58b9eb554d0290c7ef48d8faf47870029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000f07d979303c50a8632848cb154c6b30980218c07

-----Decoded View---------------
Arg [0] : oldAddress (address): 0xF07D979303c50a8632848cb154C6b30980218C07

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f07d979303c50a8632848cb154c6b30980218c07


Swarm Source

bzzr://f428c8f87a694106e79f2897c6831eebdce58b9eb554d0290c7ef48d8faf4787
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.