ERC-20
Real Estate
Overview
Max Total Supply
100,000,000 PRO
Holders
19,344 ( 0.047%)
Market
Price
$1.11 @ 0.000326 ETH (-3.37%)
Onchain Market Cap
$111,000,000.00
Circulating Supply Market Cap
$64,492,275.00
Other Info
Token Contract (WITH 8 Decimals)
Balance
0 PROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PropyToken
Compiler Version
v0.4.8+commit.60cc1668
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-07-19 */ /** * This software is a subject to Ambisafe License Agreement. * No use or distribution is allowed without written permission from Ambisafe. * https://www.ambisafe.co/terms-of-use/ */ pragma solidity 0.4.8; contract EToken2 { function baseUnit(bytes32 _symbol) constant returns(uint8); function name(bytes32 _symbol) constant returns(string); function description(bytes32 _symbol) constant returns(string); function owner(bytes32 _symbol) constant returns(address); function isOwner(address _owner, bytes32 _symbol) constant returns(bool); function totalSupply(bytes32 _symbol) constant returns(uint); function balanceOf(address _holder, bytes32 _symbol) constant returns(uint); function isLocked(bytes32 _symbol) constant returns(bool); function proxyTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool); function proxyApprove(address _spender, uint _value, bytes32 _symbol, address _sender) returns(bool); function allowance(address _from, address _spender, bytes32 _symbol) constant returns(uint); function proxyTransferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference, address _sender) returns(bool); } contract Asset { function _performTransferWithReference(address _to, uint _value, string _reference, address _sender) returns(bool); function _performTransferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) returns(bool); function _performApprove(address _spender, uint _value, address _sender) returns(bool); function _performTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool); function _performTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool); function _performGeneric(bytes _data, address _sender) payable returns(bytes32) { throw; } } contract ERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed from, address indexed spender, uint256 value); function totalSupply() constant returns(uint256 supply); function balanceOf(address _owner) constant returns(uint256 balance); function transfer(address _to, uint256 _value) returns(bool success); function transferFrom(address _from, address _to, uint256 _value) returns(bool success); function approve(address _spender, uint256 _value) returns(bool success); function allowance(address _owner, address _spender) constant returns(uint256 remaining); function decimals() constant returns(uint8); } contract AssetProxyInterface { function _forwardApprove(address _spender, uint _value, address _sender) returns(bool); function _forwardTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool); function _forwardTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool); } contract Bytes32 { function _bytes32(string _input) internal constant returns(bytes32 result) { assembly { result := mload(add(_input, 32)) } } } /** * @title EToken2 Asset Proxy. * * Proxy implements ERC20 interface and acts as a gateway to a single EToken2 asset. * Proxy adds etoken2Symbol and caller(sender) when forwarding requests to EToken2. * Every request that is made by caller first sent to the specific asset implementation * contract, which then calls back to be forwarded onto EToken2. * * Calls flow: Caller -> * Proxy.func(...) -> * Asset._performFunc(..., Caller.address) -> * Proxy._forwardFunc(..., Caller.address) -> * Platform.proxyFunc(..., symbol, Caller.address) * * Generic call flow: Caller -> * Proxy.unknownFunc(...) -> * Asset._performGeneric(..., Caller.address) -> * Asset.unknownFunc(...) * * Asset implementation contract is mutable, but each user have an option to stick with * old implementation, through explicit decision made in timely manner, if he doesn't agree * with new rules. * Each user have a possibility to upgrade to latest asset contract implementation, without the * possibility to rollback. * * Note: all the non constant functions return false instead of throwing in case if state change * didn't happen yet. */ contract AssetProxy is ERC20, AssetProxyInterface, Bytes32 { // Assigned EToken2, immutable. EToken2 public etoken2; // Assigned symbol, immutable. bytes32 public etoken2Symbol; // Assigned name, immutable. For UI. string public name; string public symbol; /** * Sets EToken2 address, assigns symbol and name. * * Can be set only once. * * @param _etoken2 EToken2 contract address. * @param _symbol assigned symbol. * @param _name assigned name. * * @return success. */ function init(EToken2 _etoken2, string _symbol, string _name) returns(bool) { if (address(etoken2) != 0x0) { return false; } etoken2 = _etoken2; etoken2Symbol = _bytes32(_symbol); name = _name; symbol = _symbol; return true; } /** * Only EToken2 is allowed to call. */ modifier onlyEToken2() { if (msg.sender == address(etoken2)) { _; } } /** * Only current asset owner is allowed to call. */ modifier onlyAssetOwner() { if (etoken2.isOwner(msg.sender, etoken2Symbol)) { _; } } /** * Returns asset implementation contract for current caller. * * @return asset implementation contract. */ function _getAsset() internal returns(Asset) { return Asset(getVersionFor(msg.sender)); } function recoverTokens(uint _value) onlyAssetOwner() returns(bool) { return this.transferWithReference(msg.sender, _value, 'Tokens recovery'); } /** * Returns asset total supply. * * @return asset total supply. */ function totalSupply() constant returns(uint) { return etoken2.totalSupply(etoken2Symbol); } /** * Returns asset balance for a particular holder. * * @param _owner holder address. * * @return holder balance. */ function balanceOf(address _owner) constant returns(uint) { return etoken2.balanceOf(_owner, etoken2Symbol); } /** * Returns asset allowance from one holder to another. * * @param _from holder that allowed spending. * @param _spender holder that is allowed to spend. * * @return holder to spender allowance. */ function allowance(address _from, address _spender) constant returns(uint) { return etoken2.allowance(_from, _spender, etoken2Symbol); } /** * Returns asset decimals. * * @return asset decimals. */ function decimals() constant returns(uint8) { return etoken2.baseUnit(etoken2Symbol); } /** * Transfers asset balance from the caller to specified receiver. * * @param _to holder address to give to. * @param _value amount to transfer. * * @return success. */ function transfer(address _to, uint _value) returns(bool) { return transferWithReference(_to, _value, ''); } /** * Transfers asset balance from the caller to specified receiver adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _to holder address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferWithReference(address _to, uint _value, string _reference) returns(bool) { return _getAsset()._performTransferWithReference(_to, _value, _reference, msg.sender); } /** * Transfers asset balance from the caller to specified ICAP. * * @param _icap recipient ICAP to give to. * @param _value amount to transfer. * * @return success. */ function transferToICAP(bytes32 _icap, uint _value) returns(bool) { return transferToICAPWithReference(_icap, _value, ''); } /** * Transfers asset balance from the caller to specified ICAP adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _icap recipient ICAP to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) returns(bool) { return _getAsset()._performTransferToICAPWithReference(_icap, _value, _reference, msg.sender); } /** * Prforms allowance transfer of asset balance between holders. * * @param _from holder address to take from. * @param _to holder address to give to. * @param _value amount to transfer. * * @return success. */ function transferFrom(address _from, address _to, uint _value) returns(bool) { return transferFromWithReference(_from, _to, _value, ''); } /** * Prforms allowance transfer of asset balance between holders adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _from holder address to take from. * @param _to holder address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferFromWithReference(address _from, address _to, uint _value, string _reference) returns(bool) { return _getAsset()._performTransferFromWithReference(_from, _to, _value, _reference, msg.sender); } /** * Performs transfer call on the EToken2 by the name of specified sender. * * Can only be called by asset implementation contract assigned to sender. * * @param _from holder address to take from. * @param _to holder address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * @param _sender initial caller. * * @return success. */ function _forwardTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) { return etoken2.proxyTransferFromWithReference(_from, _to, _value, etoken2Symbol, _reference, _sender); } /** * Prforms allowance transfer of asset balance between holders. * * @param _from holder address to take from. * @param _icap recipient ICAP address to give to. * @param _value amount to transfer. * * @return success. */ function transferFromToICAP(address _from, bytes32 _icap, uint _value) returns(bool) { return transferFromToICAPWithReference(_from, _icap, _value, ''); } /** * Prforms allowance transfer of asset balance between holders adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _from holder address to take from. * @param _icap recipient ICAP address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool) { return _getAsset()._performTransferFromToICAPWithReference(_from, _icap, _value, _reference, msg.sender); } /** * Performs allowance transfer to ICAP call on the EToken2 by the name of specified sender. * * Can only be called by asset implementation contract assigned to sender. * * @param _from holder address to take from. * @param _icap recipient ICAP address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * @param _sender initial caller. * * @return success. */ function _forwardTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) { return etoken2.proxyTransferFromToICAPWithReference(_from, _icap, _value, _reference, _sender); } /** * Sets asset spending allowance for a specified spender. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _spender holder address to set allowance to. * @param _value amount to allow. * * @return success. */ function approve(address _spender, uint _value) returns(bool) { return _getAsset()._performApprove(_spender, _value, msg.sender); } /** * Performs allowance setting call on the EToken2 by the name of specified sender. * * Can only be called by asset implementation contract assigned to sender. * * @param _spender holder address to set allowance to. * @param _value amount to allow. * @param _sender initial caller. * * @return success. */ function _forwardApprove(address _spender, uint _value, address _sender) onlyImplementationFor(_sender) returns(bool) { return etoken2.proxyApprove(_spender, _value, etoken2Symbol, _sender); } /** * Emits ERC20 Transfer event on this contract. * * Can only be, and, called by assigned EToken2 when asset transfer happens. */ function emitTransfer(address _from, address _to, uint _value) onlyEToken2() { Transfer(_from, _to, _value); } /** * Emits ERC20 Approval event on this contract. * * Can only be, and, called by assigned EToken2 when asset allowance set happens. */ function emitApprove(address _from, address _spender, uint _value) onlyEToken2() { Approval(_from, _spender, _value); } /** * Resolves asset implementation contract for the caller and forwards there transaction data, * along with the value. This allows for proxy interface growth. */ function () payable { bytes32 result = _getAsset()._performGeneric.value(msg.value)(msg.data, msg.sender); assembly { mstore(0, result) return(0, 32) } } /** * Indicates an upgrade freeze-time start, and the next asset implementation contract. */ event UpgradeProposal(address newVersion); // Current asset implementation contract address. address latestVersion; // Proposed next asset implementation contract address. address pendingVersion; // Upgrade freeze-time start. uint pendingVersionTimestamp; // Timespan for users to review the new implementation and make decision. uint constant UPGRADE_FREEZE_TIME = 3 days; // Asset implementation contract address that user decided to stick with. // 0x0 means that user uses latest version. mapping(address => address) userOptOutVersion; /** * Only asset implementation contract assigned to sender is allowed to call. */ modifier onlyImplementationFor(address _sender) { if (getVersionFor(_sender) == msg.sender) { _; } } /** * Returns asset implementation contract address assigned to sender. * * @param _sender sender address. * * @return asset implementation contract address. */ function getVersionFor(address _sender) constant returns(address) { return userOptOutVersion[_sender] == 0 ? latestVersion : userOptOutVersion[_sender]; } /** * Returns current asset implementation contract address. * * @return asset implementation contract address. */ function getLatestVersion() constant returns(address) { return latestVersion; } /** * Returns proposed next asset implementation contract address. * * @return asset implementation contract address. */ function getPendingVersion() constant returns(address) { return pendingVersion; } /** * Returns upgrade freeze-time start. * * @return freeze-time start. */ function getPendingVersionTimestamp() constant returns(uint) { return pendingVersionTimestamp; } /** * Propose next asset implementation contract address. * * Can only be called by current asset owner. * * Note: freeze-time should not be applied for the initial setup. * * @param _newVersion asset implementation contract address. * * @return success. */ function proposeUpgrade(address _newVersion) onlyAssetOwner() returns(bool) { // Should not already be in the upgrading process. if (pendingVersion != 0x0) { return false; } // New version address should be other than 0x0. if (_newVersion == 0x0) { return false; } // Don't apply freeze-time for the initial setup. if (latestVersion == 0x0) { latestVersion = _newVersion; return true; } pendingVersion = _newVersion; pendingVersionTimestamp = now; UpgradeProposal(_newVersion); return true; } /** * Cancel the pending upgrade process. * * Can only be called by current asset owner. * * @return success. */ function purgeUpgrade() onlyAssetOwner() returns(bool) { if (pendingVersion == 0x0) { return false; } delete pendingVersion; delete pendingVersionTimestamp; return true; } /** * Finalize an upgrade process setting new asset implementation contract address. * * Can only be called after an upgrade freeze-time. * * @return success. */ function commitUpgrade() returns(bool) { if (pendingVersion == 0x0) { return false; } if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) { return false; } latestVersion = pendingVersion; delete pendingVersion; delete pendingVersionTimestamp; return true; } /** * Disagree with proposed upgrade, and stick with current asset implementation * until further explicit agreement to upgrade. * * @return success. */ function optOut() returns(bool) { if (userOptOutVersion[msg.sender] != 0x0) { return false; } userOptOutVersion[msg.sender] = latestVersion; return true; } /** * Implicitly agree to upgrade to current and future asset implementation upgrades, * until further explicit disagreement. * * @return success. */ function optIn() returns(bool) { delete userOptOutVersion[msg.sender]; return true; } // Backwards compatibility. function multiAsset() constant returns(EToken2) { return etoken2; } } contract PropyToken is AssetProxy { function change(string _symbol, string _name) onlyAssetOwner() returns(bool) { if (etoken2.isLocked(etoken2Symbol)) { return false; } name = _name; symbol = _symbol; return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"multiAsset","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"commitUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getLatestVersion","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_forwardTransferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitApprove","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"recoverTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etoken2","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersionTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"purgeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"optIn","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"_forwardApprove","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"},{"name":"_name","type":"string"}],"name":"change","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_forwardTransferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etoken2Symbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersion","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_etoken2","type":"address"},{"name":"_symbol","type":"string"},{"name":"_name","type":"string"}],"name":"init","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newVersion","type":"address"}],"name":"proposeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"optOut","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"getVersionFor","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradeProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
606060405234610000575b612184806100196000396000f3006060604052361561019b5763ffffffff60e060020a600035041663029a8bf7811461024f57806306fdde0314610278578063095ea7b3146103055780630ba12c83146103355780630e6d1de91461035657806314cba0021461037f57806318160ddd14610406578063233850891461042557806323b872dd1461044957806323de66511461047f57806330599fc5146104a3578063313ce567146104c7578063406838b3146104ea5780634bfaf2e8146105135780634dfe950d146105325780635b48684e146105535780636461fe391461057457806370a08231146105f0578063733480b71461061b57806377fe38a4146106425780637bcdc2f0146106ad57806383841e0c146106e457806395d89b41146107885780639b487f3f14610815578063a48a663c14610896578063a525f42c1461090c578063a66e6e5c1461093f578063a883fb901461095e578063a9059cbb14610987578063ac35caee146109b7578063b2b45df514610a2b578063c915fc9314610ad9578063d4eec5a614610b06578063dd62ed3e14610b27578063fe8beb7114610b58575b61024d5b60006101a9610b8d565b600160a060020a031663db00b84834600036336000604051602001526040518563ffffffff1660e060020a028152600401808060200183600160a060020a0316600160a060020a03168152602001828103825285858281815260200192508082843782019150509450505050506020604051808303818588803b156100005761235a5a03f11561000057505050506040518051905090508060005260206000f35b50565b005b346100005761025c610b9e565b60408051600160a060020a039092168252519081900360200190f35b3461000057610285610bae565b6040805160208082528351818301528351919283929083019185019080838382156102cb575b8051825260208311156102cb57601f1990920191602091820191016102ab565b505050905090810190601f1680156102f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610321600160a060020a0360043516602435610c39565b604080519115158252519081900360200190f35b3461000057610321610cdb565b604080519115158252519081900360200190f35b346100005761025c610d40565b60408051600160a060020a039092168252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a0390811695602480359092169560443595946084949293019190819084018382808284375094965050509235600160a060020a03169250610d50915050565b604080519115158252519081900360200190f35b3461000057610413610ea5565b60408051918252519081900360200190f35b346100005761024d600160a060020a0360043581169060243516604435610f26565b005b3461000057610321600160a060020a0360043581169060243516604435610f90565b604080519115158252519081900360200190f35b346100005761024d600160a060020a0360043581169060243516604435610fb8565b005b3461000057610321600435611022565b604080519115158252519081900360200190f35b34610000576104d4611151565b6040805160ff9092168252519081900360200190f35b346100005761025c6111d2565b60408051600160a060020a039092168252519081900360200190f35b34610000576104136111e1565b60408051918252519081900360200190f35b34610000576103216111e8565b604080519115158252519081900360200190f35b3461000057610321611292565b604080519115158252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a039081169560248035909216956044359594608494929301919081908401838280828437509496506112be95505050505050565b604080519115158252519081900360200190f35b3461000057610413600160a060020a03600435166113f3565b60408051918252519081900360200190f35b346100005761032160043560243561147d565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f81018490048402850184019095528484526103219482359460248035956064949293919092019181908401838280828437509496506114a395505050505050565b604080519115158252519081900360200190f35b3461000057610321600160a060020a0360043581169060243590604435166115b3565b604080519115158252519081900360200190f35b3461000057610321600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f89358b0180359182018390048302840183019094528083529799988101979196509182019450925082915084018382808284375094965061167c95505050505050565b604080519115158252519081900360200190f35b34610000576102856118be565b6040805160208082528351818301528351919283929083019185019080838382156102cb575b8051825260208311156102cb57601f1990920191602091820191016102ab565b505050905090810190601f1680156102f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a0316946024803595604435959460849492019190819084018382808284375094965050509235600160a060020a0316925061194c915050565b604080519115158252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a03169460248035956044359594608494920191908190840183828082843750949650611a9595505050505050565b604080519115158252519081900360200190f35b3461000057610321600160a060020a0360043516602435604435611bc0565b604080519115158252519081900360200190f35b3461000057610413611be8565b60408051918252519081900360200190f35b346100005761025c611bee565b60408051600160a060020a039092168252519081900360200190f35b3461000057610321600160a060020a0360043516602435611bfe565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f8101849004840285018401909552848452610321948235600160a060020a0316946024803595606494929391909201918190840183828082843750949650611c2495505050505050565b604080519115158252519081900360200190f35b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610321958335600160a060020a0316959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650611d3e95505050505050565b604080519115158252519081900360200190f35b3461000057610321600160a060020a0360043516611eca565b604080519115158252519081900360200190f35b3461000057610321612002565b604080519115158252519081900360200190f35b3461000057610413600160a060020a0360043581169060243516612063565b60408051918252519081900360200190f35b346100005761025c600160a060020a03600435166120f6565b60408051600160a060020a039092168252519081900360200190f35b6000610b98336120f6565b90505b90565b600054600160a060020a03165b90565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b505050505081565b6000610c43610b8d565b600160a060020a031663e34f71378484336000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200182600160a060020a0316600160a060020a031681526020019350505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b92915050565b600554600090600160a060020a03161515610cf857506000610b9b565b426203f480600654011115610d0f57506000610b9b565b506005805460048054600160a060020a0319908116600160a060020a03841617909155169055600060065560015b90565b600454600160a060020a03165b90565b60008133600160a060020a0316610d66826120f6565b600160a060020a03161415610e99576000805460015460408051602090810194909452517f161ff662000000000000000000000000000000000000000000000000000000008152600160a060020a038b8116600483019081528b82166024840152604483018b90526064830184905288821660a484015260c0608484019081528a5160c48501528a51929095169563161ff662958e958e958e9591948e948e949193919260e40191908601908083838215610e3c575b805182526020831115610e3c57601f199092019160209182019101610e1c565b505050905090810190601f168015610e685780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b5b5095945050505050565b6000805460015460408051602090810185905281517fb524abcf00000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a039093169263b524abcf92602480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b60005433600160a060020a0390811691161415610f895781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b5b5b505050565b6000610fae84848460206040519081016040528060008152506112be565b90505b9392505050565b60005433600160a060020a0390811691161415610f895781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b5b505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f1156100005750506040515115905061114a57604080516000602091820181905282517fac35caee000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301526024820187905260606044830152600f60648301527f546f6b656e73207265636f76657279000000000000000000000000000000000060848301529351309094169363ac35caee9360a48084019491938390030190829087803b156100005760325a03f115610000575050604051519150505b5b5b919050565b6000805460015460408051602090810185905281517fdc86e6f000000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a039093169263dc86e6f092602480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b600054600160a060020a031681565b6006545b90565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f11561000057505060405151159050610b9b57600554600160a060020a0316151561127457506000610b9b565b5060058054600160a060020a0319169055600060065560015b5b5b90565b600160a060020a03331660009081526007602052604090208054600160a060020a031916905560015b90565b60006112c8610b8d565b600160a060020a031663cca9702586868686336000604051602001526040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a0316815260200182810382528481815181526020019150805190602001908083836000831461138f575b80518252602083111561138f57601f19909201916020918201910161136f565b505050905090810190601f1680156113bb5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b949350505050565b6000805460015460408051602090810185905281517f4d30b6be000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482019490945291519290931692634d30b6be9260448084019382900301818787803b156100005760325a03f115610000575050604051519150505b919050565b600061149a838360206040519081016040528060008152506114a3565b90505b92915050565b60006114ad610b8d565b600160a060020a031663c10796df858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600019166000191681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360008314611551575b80518252602083111561155157601f199092019160209182019101611531565b505050905090810190601f16801561157d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b9392505050565b60008133600160a060020a03166115c9826120f6565b600160a060020a03161415611672576000805460015460408051602090810185905281517f14712e2f000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152602482018b905260448201949094528884166064820152915192909316936314712e2f9360848084019491939192918390030190829087803b156100005760325a03f115610000575050604051519250505b5b5b509392505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f11561000057505060405151159050610cd5576000805460015460408051602090810185905281517f32a16f4e00000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a03909316936332a16f4e936024808501949192918390030190829087803b156100005760325a03f1156100005750506040515115905061177957506000610cd5565b8160029080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117c557805160ff19168380011785556117f2565b828001600101855582156117f2579182015b828111156117f25782518255916020019190600101906117d7565b5b506118139291505b8082111561180f57600081556001016117fb565b5090565b50508260039080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061186157805160ff191683800117855561188e565b8280016001018555821561188e579182015b8281111561188e578251825591602001919060010190611873565b5b506118af9291505b8082111561180f57600081556001016117fb565b5090565b5050600190505b5b5b92915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b505050505081565b60008133600160a060020a0316611962826120f6565b600160a060020a03161415610e99576000805460408051602090810193909352517fa69032ee000000000000000000000000000000000000000000000000000000008152600160a060020a038a811660048301908152602483018b9052604483018a9052878216608484015260a060648401908152895160a48501528951929094169463a69032ee948d948d948d948d948d949193919260c490920191908601908083838215611a2d575b805182526020831115611a2d57601f199092019160209182019101611a0d565b505050905090810190601f168015611a595780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b5b5095945050505050565b6000611a9f610b8d565b600160a060020a031663eb58705b86868686336000604051602001526040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185600019166000191681526020018481526020018060200183600160a060020a0316600160a060020a0316815260200182810382528481815181526020019150805190602001908083836000831461138f575b80518252602083111561138f57601f19909201916020918201910161136f565b505050905090810190601f1680156113bb5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b949350505050565b6000610fae8484846020604051908101604052806000815250611a95565b90505b9392505050565b60015481565b600554600160a060020a03165b90565b600061149a83836020604051908101604052806000815250611c24565b90505b92915050565b6000611c2e610b8d565b600160a060020a0316631962df71858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360008314611551575b80518252602083111561155157601f199092019160209182019101611531565b505050905090810190601f16801561157d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b9392505050565b60008054600160a060020a031615611d5857506000610fb1565b60008054600160a060020a031916600160a060020a038616179055611d7c8361214d565b600181600019169055508160029080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611dd257805160ff1916838001178555611dff565b82800160010185558215611dff579182015b82811115611dff578251825591602001919060010190611de4565b5b50611e209291505b8082111561180f57600081556001016117fb565b5090565b50508260039080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e6e57805160ff1916838001178555611e9b565b82800160010185558215611e9b579182015b82811115611e9b578251825591602001919060010190611e80565b5b50611ebc9291505b8082111561180f57600081556001016117fb565b5090565b5050600190505b9392505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f1156100005750506040515115905061114a57600554600160a060020a031615611f555750600061114a565b600160a060020a0382161515611f6d5750600061114a565b600454600160a060020a03161515611fa2575060048054600160a060020a031916600160a060020a038316179055600161114a565b60058054600160a060020a038416600160a060020a031990911681179091554260065560408051918252517faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a9181900360200190a15060015b5b5b919050565b600160a060020a033381166000908152600760205260408120549091161561202c57506000610b9b565b5060045433600160a060020a0390811660009081526007602052604090208054600160a060020a0319169190921617905560015b90565b6000805460015460408051602090810185905281517f1c8d5d38000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482019490945291519290931692631c8d5d389260648084019382900301818787803b156100005760325a03f115610000575050604051519150505b92915050565b600160a060020a038082166000908152600760205260408120549091161561213857600160a060020a0380831660009081526007602052604090205416612145565b600454600160a060020a03165b90505b919050565b60208101515b9190505600a165627a7a72305820921b47fe3810a9ce6b238d40c647951315aa5f116d1c85ffe01639754dfda9a60029
Deployed Bytecode
0x6060604052361561019b5763ffffffff60e060020a600035041663029a8bf7811461024f57806306fdde0314610278578063095ea7b3146103055780630ba12c83146103355780630e6d1de91461035657806314cba0021461037f57806318160ddd14610406578063233850891461042557806323b872dd1461044957806323de66511461047f57806330599fc5146104a3578063313ce567146104c7578063406838b3146104ea5780634bfaf2e8146105135780634dfe950d146105325780635b48684e146105535780636461fe391461057457806370a08231146105f0578063733480b71461061b57806377fe38a4146106425780637bcdc2f0146106ad57806383841e0c146106e457806395d89b41146107885780639b487f3f14610815578063a48a663c14610896578063a525f42c1461090c578063a66e6e5c1461093f578063a883fb901461095e578063a9059cbb14610987578063ac35caee146109b7578063b2b45df514610a2b578063c915fc9314610ad9578063d4eec5a614610b06578063dd62ed3e14610b27578063fe8beb7114610b58575b61024d5b60006101a9610b8d565b600160a060020a031663db00b84834600036336000604051602001526040518563ffffffff1660e060020a028152600401808060200183600160a060020a0316600160a060020a03168152602001828103825285858281815260200192508082843782019150509450505050506020604051808303818588803b156100005761235a5a03f11561000057505050506040518051905090508060005260206000f35b50565b005b346100005761025c610b9e565b60408051600160a060020a039092168252519081900360200190f35b3461000057610285610bae565b6040805160208082528351818301528351919283929083019185019080838382156102cb575b8051825260208311156102cb57601f1990920191602091820191016102ab565b505050905090810190601f1680156102f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610321600160a060020a0360043516602435610c39565b604080519115158252519081900360200190f35b3461000057610321610cdb565b604080519115158252519081900360200190f35b346100005761025c610d40565b60408051600160a060020a039092168252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a0390811695602480359092169560443595946084949293019190819084018382808284375094965050509235600160a060020a03169250610d50915050565b604080519115158252519081900360200190f35b3461000057610413610ea5565b60408051918252519081900360200190f35b346100005761024d600160a060020a0360043581169060243516604435610f26565b005b3461000057610321600160a060020a0360043581169060243516604435610f90565b604080519115158252519081900360200190f35b346100005761024d600160a060020a0360043581169060243516604435610fb8565b005b3461000057610321600435611022565b604080519115158252519081900360200190f35b34610000576104d4611151565b6040805160ff9092168252519081900360200190f35b346100005761025c6111d2565b60408051600160a060020a039092168252519081900360200190f35b34610000576104136111e1565b60408051918252519081900360200190f35b34610000576103216111e8565b604080519115158252519081900360200190f35b3461000057610321611292565b604080519115158252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a039081169560248035909216956044359594608494929301919081908401838280828437509496506112be95505050505050565b604080519115158252519081900360200190f35b3461000057610413600160a060020a03600435166113f3565b60408051918252519081900360200190f35b346100005761032160043560243561147d565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f81018490048402850184019095528484526103219482359460248035956064949293919092019181908401838280828437509496506114a395505050505050565b604080519115158252519081900360200190f35b3461000057610321600160a060020a0360043581169060243590604435166115b3565b604080519115158252519081900360200190f35b3461000057610321600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f89358b0180359182018390048302840183019094528083529799988101979196509182019450925082915084018382808284375094965061167c95505050505050565b604080519115158252519081900360200190f35b34610000576102856118be565b6040805160208082528351818301528351919283929083019185019080838382156102cb575b8051825260208311156102cb57601f1990920191602091820191016102ab565b505050905090810190601f1680156102f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a0316946024803595604435959460849492019190819084018382808284375094965050509235600160a060020a0316925061194c915050565b604080519115158252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610321948235600160a060020a03169460248035956044359594608494920191908190840183828082843750949650611a9595505050505050565b604080519115158252519081900360200190f35b3461000057610321600160a060020a0360043516602435604435611bc0565b604080519115158252519081900360200190f35b3461000057610413611be8565b60408051918252519081900360200190f35b346100005761025c611bee565b60408051600160a060020a039092168252519081900360200190f35b3461000057610321600160a060020a0360043516602435611bfe565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f8101849004840285018401909552848452610321948235600160a060020a0316946024803595606494929391909201918190840183828082843750949650611c2495505050505050565b604080519115158252519081900360200190f35b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610321958335600160a060020a0316959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650611d3e95505050505050565b604080519115158252519081900360200190f35b3461000057610321600160a060020a0360043516611eca565b604080519115158252519081900360200190f35b3461000057610321612002565b604080519115158252519081900360200190f35b3461000057610413600160a060020a0360043581169060243516612063565b60408051918252519081900360200190f35b346100005761025c600160a060020a03600435166120f6565b60408051600160a060020a039092168252519081900360200190f35b6000610b98336120f6565b90505b90565b600054600160a060020a03165b90565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b505050505081565b6000610c43610b8d565b600160a060020a031663e34f71378484336000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200182600160a060020a0316600160a060020a031681526020019350505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b92915050565b600554600090600160a060020a03161515610cf857506000610b9b565b426203f480600654011115610d0f57506000610b9b565b506005805460048054600160a060020a0319908116600160a060020a03841617909155169055600060065560015b90565b600454600160a060020a03165b90565b60008133600160a060020a0316610d66826120f6565b600160a060020a03161415610e99576000805460015460408051602090810194909452517f161ff662000000000000000000000000000000000000000000000000000000008152600160a060020a038b8116600483019081528b82166024840152604483018b90526064830184905288821660a484015260c0608484019081528a5160c48501528a51929095169563161ff662958e958e958e9591948e948e949193919260e40191908601908083838215610e3c575b805182526020831115610e3c57601f199092019160209182019101610e1c565b505050905090810190601f168015610e685780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b5b5095945050505050565b6000805460015460408051602090810185905281517fb524abcf00000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a039093169263b524abcf92602480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b60005433600160a060020a0390811691161415610f895781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b5b5b505050565b6000610fae84848460206040519081016040528060008152506112be565b90505b9392505050565b60005433600160a060020a0390811691161415610f895781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b5b505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f1156100005750506040515115905061114a57604080516000602091820181905282517fac35caee000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301526024820187905260606044830152600f60648301527f546f6b656e73207265636f76657279000000000000000000000000000000000060848301529351309094169363ac35caee9360a48084019491938390030190829087803b156100005760325a03f115610000575050604051519150505b5b5b919050565b6000805460015460408051602090810185905281517fdc86e6f000000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a039093169263dc86e6f092602480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b600054600160a060020a031681565b6006545b90565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f11561000057505060405151159050610b9b57600554600160a060020a0316151561127457506000610b9b565b5060058054600160a060020a0319169055600060065560015b5b5b90565b600160a060020a03331660009081526007602052604090208054600160a060020a031916905560015b90565b60006112c8610b8d565b600160a060020a031663cca9702586868686336000604051602001526040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a0316815260200182810382528481815181526020019150805190602001908083836000831461138f575b80518252602083111561138f57601f19909201916020918201910161136f565b505050905090810190601f1680156113bb5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b949350505050565b6000805460015460408051602090810185905281517f4d30b6be000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482019490945291519290931692634d30b6be9260448084019382900301818787803b156100005760325a03f115610000575050604051519150505b919050565b600061149a838360206040519081016040528060008152506114a3565b90505b92915050565b60006114ad610b8d565b600160a060020a031663c10796df858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600019166000191681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360008314611551575b80518252602083111561155157601f199092019160209182019101611531565b505050905090810190601f16801561157d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b9392505050565b60008133600160a060020a03166115c9826120f6565b600160a060020a03161415611672576000805460015460408051602090810185905281517f14712e2f000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152602482018b905260448201949094528884166064820152915192909316936314712e2f9360848084019491939192918390030190829087803b156100005760325a03f115610000575050604051519250505b5b5b509392505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f11561000057505060405151159050610cd5576000805460015460408051602090810185905281517f32a16f4e00000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a03909316936332a16f4e936024808501949192918390030190829087803b156100005760325a03f1156100005750506040515115905061177957506000610cd5565b8160029080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117c557805160ff19168380011785556117f2565b828001600101855582156117f2579182015b828111156117f25782518255916020019190600101906117d7565b5b506118139291505b8082111561180f57600081556001016117fb565b5090565b50508260039080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061186157805160ff191683800117855561188e565b8280016001018555821561188e579182015b8281111561188e578251825591602001919060010190611873565b5b506118af9291505b8082111561180f57600081556001016117fb565b5090565b5050600190505b5b5b92915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b505050505081565b60008133600160a060020a0316611962826120f6565b600160a060020a03161415610e99576000805460408051602090810193909352517fa69032ee000000000000000000000000000000000000000000000000000000008152600160a060020a038a811660048301908152602483018b9052604483018a9052878216608484015260a060648401908152895160a48501528951929094169463a69032ee948d948d948d948d948d949193919260c490920191908601908083838215611a2d575b805182526020831115611a2d57601f199092019160209182019101611a0d565b505050905090810190601f168015611a595780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b5b5095945050505050565b6000611a9f610b8d565b600160a060020a031663eb58705b86868686336000604051602001526040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185600019166000191681526020018481526020018060200183600160a060020a0316600160a060020a0316815260200182810382528481815181526020019150805190602001908083836000831461138f575b80518252602083111561138f57601f19909201916020918201910161136f565b505050905090810190601f1680156113bb5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b949350505050565b6000610fae8484846020604051908101604052806000815250611a95565b90505b9392505050565b60015481565b600554600160a060020a03165b90565b600061149a83836020604051908101604052806000815250611c24565b90505b92915050565b6000611c2e610b8d565b600160a060020a0316631962df71858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360008314611551575b80518252602083111561155157601f199092019160209182019101611531565b505050905090810190601f16801561157d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b9392505050565b60008054600160a060020a031615611d5857506000610fb1565b60008054600160a060020a031916600160a060020a038616179055611d7c8361214d565b600181600019169055508160029080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611dd257805160ff1916838001178555611dff565b82800160010185558215611dff579182015b82811115611dff578251825591602001919060010190611de4565b5b50611e209291505b8082111561180f57600081556001016117fb565b5090565b50508260039080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e6e57805160ff1916838001178555611e9b565b82800160010185558215611e9b579182015b82811115611e9b578251825591602001919060010190611e80565b5b50611ebc9291505b8082111561180f57600081556001016117fb565b5090565b5050600190505b9392505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f1156100005750506040515115905061114a57600554600160a060020a031615611f555750600061114a565b600160a060020a0382161515611f6d5750600061114a565b600454600160a060020a03161515611fa2575060048054600160a060020a031916600160a060020a038316179055600161114a565b60058054600160a060020a038416600160a060020a031990911681179091554260065560408051918252517faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a9181900360200190a15060015b5b5b919050565b600160a060020a033381166000908152600760205260408120549091161561202c57506000610b9b565b5060045433600160a060020a0390811660009081526007602052604090208054600160a060020a0319169190921617905560015b90565b6000805460015460408051602090810185905281517f1c8d5d38000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482019490945291519290931692631c8d5d389260648084019382900301818787803b156100005760325a03f115610000575050604051519150505b92915050565b600160a060020a038082166000908152600760205260408120549091161561213857600160a060020a0380831660009081526007602052604090205416612145565b600454600160a060020a03165b90505b919050565b60208101515b9190505600a165627a7a72305820921b47fe3810a9ce6b238d40c647951315aa5f116d1c85ffe01639754dfda9a60029
Swarm Source
bzzr://921b47fe3810a9ce6b238d40c647951315aa5f116d1c85ffe01639754dfda9a6
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.