ERC-721
Overview
Max Total Supply
98 LANDMARK
Holders
32
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
4 LANDMARKLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CryptoLandmarks
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-06 */ pragma solidity ^0.4.18; contract AccessControl { address public owner; address[] public admins; modifier onlyOwner() { require(msg.sender == owner); _; } modifier onlyAdmins { bool found = false; for (uint i = 0; i < admins.length; i++) { if (admins[i] == msg.sender) { found = true; break; } } require(found); _; } function addAdmin(address _adminAddress) public onlyOwner { admins.push(_adminAddress); } function transferOwnership(address newOwner) public onlyOwner { if (newOwner != address(0)) { owner = newOwner; } } } contract ERC721 { // Required Functions function implementsERC721() public pure returns (bool); function totalSupply() public view returns (uint256); function balanceOf(address _owner) public view returns (uint256); function ownerOf(uint256 _tokenId) public view returns (address); function transfer(address _to, uint _tokenId) public; function approve(address _to, uint256 _tokenId) public; function transferFrom(address _from, address _to, uint256 _tokenId) public; // Optional Functions function name() public pure returns (string); function symbol() public pure returns (string); // function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256); // function tokenMetadata(uint256 _tokenId) public view returns (string infoUrl); // Required Events event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); } contract CryptoLandmarks is AccessControl, ERC721 { // Event fired for every new landmark created event Creation(uint256 tokenId, string name, address owner); // Event fired whenever landmark is sold event Purchase(uint256 tokenId, uint256 oldPrice, uint256 newPrice, address prevOwner, address owner, uint256 charityId); // Event fired when price of landmark changes event PriceChange(uint256 tokenId, uint256 price); // Event fired when charities are modified event Charity(uint256 charityId, address charity); string public constant NAME = "Crypto Landmarks"; string public constant SYMBOL = "LANDMARK"; // Initial price of card uint256 private startingPrice = 0.001 ether; // Charities enabled in the future bool charityEnabled; // Landmark card struct Landmark { // unique name of landmark string name; // selling price uint256 price; // maximum price uint256 maxPrice; } Landmark[] public landmarks; address[] public charities; mapping (uint256 => address) public landmarkToOwner; mapping (address => uint256) public landmarkOwnershipCount; mapping (uint256 => address) public landmarkToApproved; function CryptoLandmarks() public { owner = msg.sender; admins.push(msg.sender); charityEnabled = false; } function implementsERC721() public pure returns (bool) { return true; } function totalSupply() public view returns (uint256) { return landmarks.length; } function balanceOf(address _owner) public view returns (uint256 balance) { return landmarkOwnershipCount[_owner]; } function ownerOf(uint256 _tokenId) public view returns (address owner) { owner = landmarkToOwner[_tokenId]; require(owner != address(0)); } function transfer(address _to, uint256 _tokenId) public { require(_to != address(0)); require(landmarkToOwner[_tokenId] == msg.sender); _transfer(msg.sender, _to, _tokenId); } function approve(address _to, uint256 _tokenId) public { require(landmarkToOwner[_tokenId] == msg.sender); landmarkToApproved[_tokenId] = _to; Approval(msg.sender, _to, _tokenId); } function transferFrom(address _from, address _to, uint256 _tokenId) public { require(landmarkToApproved[_tokenId] == _to); require(_to != address(0)); require(landmarkToOwner[_tokenId] == _from); _transfer(_from, _to, _tokenId); } function name() public pure returns (string) { return NAME; } function symbol() public pure returns (string) { return SYMBOL; } function addCharity(address _charity) public onlyAdmins { require(_charity != address(0)); uint256 newCharityId = charities.push(_charity) - 1; // emit charity event Charity(newCharityId, _charity); } function deleteCharity(uint256 _charityId) public onlyAdmins { delete charities[_charityId]; // emit charity event Charity(_charityId, address(0)); } function getCharity(uint256 _charityId) public view returns (address) { return charities[_charityId]; } function createLandmark(string _name, address _owner, uint256 _price) public onlyAdmins { if (_price <= 0) { _price = startingPrice; } Landmark memory _landmark = Landmark({ name: _name, price: _price, maxPrice: _price }); uint256 newLandmarkId = landmarks.push(_landmark) - 1; Creation(newLandmarkId, _name, _owner); _transfer(address(0), _owner, newLandmarkId); } function getLandmark(uint256 _tokenId) public view returns ( string landmarkName, uint256 sellingPrice, uint256 maxPrice, address owner ) { Landmark storage landmark = landmarks[_tokenId]; landmarkName = landmark.name; sellingPrice = landmark.price; maxPrice = landmark.maxPrice; owner = landmarkToOwner[_tokenId]; } function purchase(uint256 _tokenId, uint256 _charityId) public payable { // seller address oldOwner = landmarkToOwner[_tokenId]; // current price uint sellingPrice = landmarks[_tokenId].price; // buyer address newOwner = msg.sender; require(oldOwner != newOwner); require(newOwner != address(0)); require(msg.value >= sellingPrice); uint256 payment = uint256(SafeMath.div(SafeMath.mul(sellingPrice, 95), 100)); uint256 excess = SafeMath.sub(msg.value, sellingPrice); if (charityEnabled == true) { // address of choosen charity address charity = charities[_charityId]; // check if charity address is not null require(charity != address(0)); // 1% of selling price uint256 donate = uint256(SafeMath.div(SafeMath.mul(sellingPrice, 1), 100)); // transfer money to charity charity.transfer(donate); } uint priceIncrease = 120; // price doubles below 32 finney if (sellingPrice <= 32 finney) { priceIncrease = 200; } // set new price landmarks[_tokenId].price = SafeMath.div(SafeMath.mul(sellingPrice, priceIncrease), 95); // set maximum price landmarks[_tokenId].maxPrice = SafeMath.div(SafeMath.mul(sellingPrice, priceIncrease), 95); // transfer card to buyer _transfer(oldOwner, newOwner, _tokenId); // transfer money to seller if (oldOwner != address(this)) { oldOwner.transfer(payment); } // emit event that landamrk was sold; Purchase(_tokenId, sellingPrice, landmarks[_tokenId].price, oldOwner, newOwner, _charityId); // transfer excess back to buyer newOwner.transfer(excess); } // owner can change price function changePrice(uint256 _tokenId, uint256 _price) public { // only owner can change price require(landmarkToOwner[_tokenId] == msg.sender); // price cannot be higher than maximum price require(landmarks[_tokenId].maxPrice >= _price); // set new price landmarks[_tokenId].price = _price; // emit event PriceChange(_tokenId, _price); } function priceOfLandmark(uint256 _tokenId) public view returns (uint256) { return landmarks[_tokenId].price; } function tokensOfOwner(address _owner) public view returns(uint256[]) { uint256 tokenCount = balanceOf(_owner); uint256[] memory result = new uint256[](tokenCount); uint256 total = totalSupply(); uint256 resultIndex = 0; for(uint256 i = 0; i <= total; i++) { if (landmarkToOwner[i] == _owner) { result[resultIndex] = i; resultIndex++; } } return result; } function _transfer(address _from, address _to, uint256 _tokenId) private { landmarkOwnershipCount[_to]++; landmarkToOwner[_tokenId] = _to; if (_from != address(0)) { landmarkOwnershipCount[_from]--; delete landmarkToApproved[_tokenId]; } Transfer(_from, _to, _tokenId); } function enableCharity() external onlyOwner { require(!charityEnabled); charityEnabled = true; } function disableCharity() external onlyOwner { require(charityEnabled); charityEnabled = false; } function withdrawBalance() external onlyOwner { owner.transfer(this.balance); } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"admins","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landmarkToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landmarks","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"maxPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_charityId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","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":"landmarkOwnershipCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_charity","type":"address"}],"name":"addCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"}],"name":"createLandmark","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOfLandmark","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"changePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getLandmark","outputs":[{"name":"landmarkName","type":"string"},{"name":"sellingPrice","type":"uint256"},{"name":"maxPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_charityId","type":"uint256"}],"name":"deleteCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landmarkToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"charities","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_charityId","type":"uint256"}],"name":"getCharity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"owner","type":"address"}],"name":"Creation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"charityId","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"PriceChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"charityId","type":"uint256"},{"indexed":false,"name":"charity","type":"address"}],"name":"Charity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
606060405266038d7ea4c6800060025534156200001b57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018054806001018281620000719190620000e1565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600360006101000a81548160ff02191690831515021790555062000138565b8154818355818115116200010b578183600052602060002091820191016200010a919062000110565b5b505050565b6200013591905b808211156200013157600081600090555060010162000117565b5090565b90565b61279480620001486000396000f300606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b3146102295780631051db341461026b57806314bfd6d014610298578063161593a3146102fb57806318160ddd1461035e57806323b872dd146103875780632d43573d146103e85780635fd8c710146104af5780636352211e146104c4578063704802751461052757806370876c981461056057806370a082311461058157806373545d44146105ce57806378b14f0a1461061b5780637d534aa0146106545780638462151c146106695780638da5cb5b146106f7578063909544831461074c57806395d89b41146107d15780639c66fe001461085f578063a3f4df7e14610896578063a9059cbb14610924578063ab21d58a14610966578063b3de019c1461097b578063bfa5f1f7146109a7578063cdb532b914610a84578063d666465314610aa7578063f2fde38b14610b0a578063f76f8d7814610b43578063fb709d2e14610bd1578063fd67db8114610c34575b600080fd5b34156101a657600080fd5b6101ae610c97565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023457600080fd5b610269600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cda565b005b341561027657600080fd5b61027e610df8565b604051808215151515815260200191505060405180910390f35b34156102a357600080fd5b6102b96004808035906020019091905050610e01565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030657600080fd5b61031c6004808035906020019091905050610e40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561036957600080fd5b610371610e73565b6040518082815260200191505060405180910390f35b341561039257600080fd5b6103e6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e80565b005b34156103f357600080fd5b6104096004808035906020019091905050610fa6565b604051808060200184815260200183815260200182810382528581815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b505094505050505060405180910390f35b34156104ba57600080fd5b6104c2610fde565b005b34156104cf57600080fd5b6104e560048080359060200190919050506110b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053257600080fd5b61055e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061112c565b005b61057f60048080359060200190919080359060200190919050506111ed565b005b341561058c57600080fd5b6105b8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611618565b6040518082815260200191505060405180910390f35b34156105d957600080fd5b610605600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611661565b6040518082815260200191505060405180910390f35b341561062657600080fd5b610652600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611679565b005b341561065f57600080fd5b610667611837565b005b341561067457600080fd5b6106a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118ca565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106e35780820151818401526020810190506106c8565b505050509050019250505060405180910390f35b341561070257600080fd5b61070a6119d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561075757600080fd5b6107cf600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119f5565b005b34156107dc57600080fd5b6107e4611c24565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610824578082015181840152602081019050610809565b50505050905090810190601f1680156108515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086a57600080fd5b6108806004808035906020019091905050611c67565b6040518082815260200191505060405180910390f35b34156108a157600080fd5b6108a9611c91565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e95780820151818401526020810190506108ce565b50505050905090810190601f1680156109165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092f57600080fd5b610964600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cca565b005b341561097157600080fd5b610979611d82565b005b341561098657600080fd5b6109a56004808035906020019091908035906020019091905050611e16565b005b34156109b257600080fd5b6109c86004808035906020019091905050611f1a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b83811015610a46578082015181840152602081019050610a2b565b50505050905090810190601f168015610a735780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a8f57600080fd5b610aa56004808035906020019091905050612032565b005b3415610ab257600080fd5b610ac86004808035906020019091905050612189565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610b1557600080fd5b610b41600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506121bc565b005b3415610b4e57600080fd5b610b56612291565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b96578082015181840152602081019050610b7b565b50505050905090810190601f168015610bc35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610bdc57600080fd5b610bf260048080359060200190919050506122ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c3f57600080fd5b610c556004808035906020019091905050612309565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9f61257a565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b7300000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d4757600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006001905090565b600181815481101515610e1057fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600480549050905090565b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f2957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f9657600080fd5b610fa183838361234d565b505050565b600481815481101515610fb557fe5b906000526020600020906003020160009150905080600001908060010154908060020154905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156110b157600080fd5b565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561112757600080fd5b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118757600080fd5b6001805480600101828161119b919061258e565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600080600080600080600660008b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060048a81548110151561123e57fe5b90600052602060002090600302016001015496503395508573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561129057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156112cc57600080fd5b8634101515156112db57600080fd5b6112f06112e988605f61250b565b6064612546565b94506112fc3488612561565b935060011515600360009054906101000a900460ff16151514156113eb5760058981548110151561132957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561139357600080fd5b6113a86113a188600161250b565b6064612546565b91508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156113ea57600080fd5b5b607890506671afd498d00000871115156114045760c890505b611418611411888361250b565b605f612546565b60048b81548110151561142757fe5b906000526020600020906003020160010181905550611450611449888361250b565b605f612546565b60048b81548110151561145f57fe5b90600052602060002090600302016002018190555061147f88878c61234d565b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415156114f5578773ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156114f457600080fd5b5b7f1fe2ee8e4451abcf96271da847481cfe5aa92580b2a2e89aef0a523c9654c31d8a8860048d81548110151561152757fe5b9060005260206000209060030201600101548b8a8e604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001965050505050505060405180910390a18573ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050151561160c57600080fd5b50505050505050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60076020528060005260406000206000915090505481565b6000806000809150600090505b600180549050811015611717573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156116b957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561170a5760019150611717565b8080600101915050611686565b81151561172357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561175f57600080fd5b600160058054806001018281611775919061258e565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055500392507fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e8385604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561189257600080fd5b600360009054906101000a900460ff1615156118ad57600080fd5b6000600360006101000a81548160ff021916908315150217905550565b6118d26125ba565b60006118dc6125ba565b60008060006118ea87611618565b9450846040518059106118fa5750595b90808252806020026020018201604052509350611915610e73565b925060009150600090505b82811115156119c3578673ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119b65780848381518110151561199f57fe5b906020019060200201818152505081806001019250505b8080600101915050611920565b8395505050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119fd6125ce565b6000806000809150600090505b600180549050811015611a9b573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a3d57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a8e5760019150611a9b565b8080600101915050611a0a565b811515611aa757600080fd5b600085111515611ab75760025494505b606060405190810160405280888152602001868152602001868152509350600160048054806001018281611aeb91906125f6565b916000526020600020906003020160008790919091506000820151816000019080519060200190611b1d929190612628565b50602082015181600101556040820151816002015550500392507fa987f9da3d7de01ffe86f9d4630ff93856b021b747bfc83589e5c459795643fb83888860405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611bd3578082015181840152602081019050611bb8565b50505050905090810190601f168015611c005780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1611c1b6000878561234d565b50505050505050565b611c2c61257a565b6040805190810160405280600881526020017f4c414e444d41524b000000000000000000000000000000000000000000000000815250905090565b6000600482815481101515611c7857fe5b9060005260206000209060030201600101549050919050565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b730000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d0657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d7357600080fd5b611d7e33838361234d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ddd57600080fd5b600360009054906101000a900460ff16151515611df957600080fd5b6001600360006101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e8357600080fd5b80600483815481101515611e9357fe5b90600052602060002090600302016002015410151515611eb257600080fd5b80600483815481101515611ec257fe5b9060005260206000209060030201600101819055507ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d8282604051808381526020018281526020019250505060405180910390a15050565b611f2261257a565b600080600080600486815481101515611f3757fe5b90600052602060002090600302019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fdf5780601f10611fb457610100808354040283529160200191611fdf565b820191906000526020600020905b815481529060010190602001808311611fc257829003601f168201915b5050505050945080600101549350806002015492506006600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b60008060009150600090505b6001805490508110156120cf573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561207157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156120c257600191506120cf565b808060010191505061203e565b8115156120db57600080fd5b6005838154811015156120ea57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e836000604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561228e57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6040805190810160405280600881526020017f4c414e444d41524b00000000000000000000000000000000000000000000000081525081565b6005818154811015156122d957fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060058281548110151561231a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156124ab57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506008600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000806000841415612520576000915061253f565b828402905082848281151561253157fe5b0414151561253b57fe5b8091505b5092915050565b600080828481151561255457fe5b0490508091505092915050565b600082821115151561256f57fe5b818303905092915050565b602060405190810160405280600081525090565b8154818355818115116125b5578183600052602060002091820191016125b491906126a8565b5b505050565b602060405190810160405280600081525090565b6060604051908101604052806125e26126cd565b815260200160008152602001600081525090565b8154818355818115116126235760030281600302836000526020600020918201910161262291906126e1565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061266957805160ff1916838001178555612697565b82800160010185558215612697579182015b8281111561269657825182559160200191906001019061267b565b5b5090506126a491906126a8565b5090565b6126ca91905b808211156126c65760008160009055506001016126ae565b5090565b90565b602060405190810160405280600081525090565b61271d91905b8082111561271957600080820160006127009190612720565b60018201600090556002820160009055506003016126e7565b5090565b90565b50805460018160011615610100020316600290046000825580601f106127465750612765565b601f01602090049060005260206000209081019061276491906126a8565b5b505600a165627a7a72305820dae25c0ca3d7f1a1049dfff10cb7767181de773f5960ce05b5a4c94a65da46500029
Deployed Bytecode
0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b3146102295780631051db341461026b57806314bfd6d014610298578063161593a3146102fb57806318160ddd1461035e57806323b872dd146103875780632d43573d146103e85780635fd8c710146104af5780636352211e146104c4578063704802751461052757806370876c981461056057806370a082311461058157806373545d44146105ce57806378b14f0a1461061b5780637d534aa0146106545780638462151c146106695780638da5cb5b146106f7578063909544831461074c57806395d89b41146107d15780639c66fe001461085f578063a3f4df7e14610896578063a9059cbb14610924578063ab21d58a14610966578063b3de019c1461097b578063bfa5f1f7146109a7578063cdb532b914610a84578063d666465314610aa7578063f2fde38b14610b0a578063f76f8d7814610b43578063fb709d2e14610bd1578063fd67db8114610c34575b600080fd5b34156101a657600080fd5b6101ae610c97565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023457600080fd5b610269600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cda565b005b341561027657600080fd5b61027e610df8565b604051808215151515815260200191505060405180910390f35b34156102a357600080fd5b6102b96004808035906020019091905050610e01565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030657600080fd5b61031c6004808035906020019091905050610e40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561036957600080fd5b610371610e73565b6040518082815260200191505060405180910390f35b341561039257600080fd5b6103e6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e80565b005b34156103f357600080fd5b6104096004808035906020019091905050610fa6565b604051808060200184815260200183815260200182810382528581815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b505094505050505060405180910390f35b34156104ba57600080fd5b6104c2610fde565b005b34156104cf57600080fd5b6104e560048080359060200190919050506110b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053257600080fd5b61055e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061112c565b005b61057f60048080359060200190919080359060200190919050506111ed565b005b341561058c57600080fd5b6105b8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611618565b6040518082815260200191505060405180910390f35b34156105d957600080fd5b610605600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611661565b6040518082815260200191505060405180910390f35b341561062657600080fd5b610652600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611679565b005b341561065f57600080fd5b610667611837565b005b341561067457600080fd5b6106a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118ca565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106e35780820151818401526020810190506106c8565b505050509050019250505060405180910390f35b341561070257600080fd5b61070a6119d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561075757600080fd5b6107cf600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119f5565b005b34156107dc57600080fd5b6107e4611c24565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610824578082015181840152602081019050610809565b50505050905090810190601f1680156108515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086a57600080fd5b6108806004808035906020019091905050611c67565b6040518082815260200191505060405180910390f35b34156108a157600080fd5b6108a9611c91565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e95780820151818401526020810190506108ce565b50505050905090810190601f1680156109165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092f57600080fd5b610964600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cca565b005b341561097157600080fd5b610979611d82565b005b341561098657600080fd5b6109a56004808035906020019091908035906020019091905050611e16565b005b34156109b257600080fd5b6109c86004808035906020019091905050611f1a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b83811015610a46578082015181840152602081019050610a2b565b50505050905090810190601f168015610a735780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a8f57600080fd5b610aa56004808035906020019091905050612032565b005b3415610ab257600080fd5b610ac86004808035906020019091905050612189565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610b1557600080fd5b610b41600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506121bc565b005b3415610b4e57600080fd5b610b56612291565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b96578082015181840152602081019050610b7b565b50505050905090810190601f168015610bc35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610bdc57600080fd5b610bf260048080359060200190919050506122ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c3f57600080fd5b610c556004808035906020019091905050612309565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9f61257a565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b7300000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d4757600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006001905090565b600181815481101515610e1057fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600480549050905090565b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f2957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f9657600080fd5b610fa183838361234d565b505050565b600481815481101515610fb557fe5b906000526020600020906003020160009150905080600001908060010154908060020154905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156110b157600080fd5b565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561112757600080fd5b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118757600080fd5b6001805480600101828161119b919061258e565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600080600080600080600660008b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060048a81548110151561123e57fe5b90600052602060002090600302016001015496503395508573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561129057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156112cc57600080fd5b8634101515156112db57600080fd5b6112f06112e988605f61250b565b6064612546565b94506112fc3488612561565b935060011515600360009054906101000a900460ff16151514156113eb5760058981548110151561132957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561139357600080fd5b6113a86113a188600161250b565b6064612546565b91508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156113ea57600080fd5b5b607890506671afd498d00000871115156114045760c890505b611418611411888361250b565b605f612546565b60048b81548110151561142757fe5b906000526020600020906003020160010181905550611450611449888361250b565b605f612546565b60048b81548110151561145f57fe5b90600052602060002090600302016002018190555061147f88878c61234d565b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415156114f5578773ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156114f457600080fd5b5b7f1fe2ee8e4451abcf96271da847481cfe5aa92580b2a2e89aef0a523c9654c31d8a8860048d81548110151561152757fe5b9060005260206000209060030201600101548b8a8e604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001965050505050505060405180910390a18573ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050151561160c57600080fd5b50505050505050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60076020528060005260406000206000915090505481565b6000806000809150600090505b600180549050811015611717573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156116b957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561170a5760019150611717565b8080600101915050611686565b81151561172357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561175f57600080fd5b600160058054806001018281611775919061258e565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055500392507fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e8385604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561189257600080fd5b600360009054906101000a900460ff1615156118ad57600080fd5b6000600360006101000a81548160ff021916908315150217905550565b6118d26125ba565b60006118dc6125ba565b60008060006118ea87611618565b9450846040518059106118fa5750595b90808252806020026020018201604052509350611915610e73565b925060009150600090505b82811115156119c3578673ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119b65780848381518110151561199f57fe5b906020019060200201818152505081806001019250505b8080600101915050611920565b8395505050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119fd6125ce565b6000806000809150600090505b600180549050811015611a9b573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a3d57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a8e5760019150611a9b565b8080600101915050611a0a565b811515611aa757600080fd5b600085111515611ab75760025494505b606060405190810160405280888152602001868152602001868152509350600160048054806001018281611aeb91906125f6565b916000526020600020906003020160008790919091506000820151816000019080519060200190611b1d929190612628565b50602082015181600101556040820151816002015550500392507fa987f9da3d7de01ffe86f9d4630ff93856b021b747bfc83589e5c459795643fb83888860405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611bd3578082015181840152602081019050611bb8565b50505050905090810190601f168015611c005780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1611c1b6000878561234d565b50505050505050565b611c2c61257a565b6040805190810160405280600881526020017f4c414e444d41524b000000000000000000000000000000000000000000000000815250905090565b6000600482815481101515611c7857fe5b9060005260206000209060030201600101549050919050565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b730000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d0657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d7357600080fd5b611d7e33838361234d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ddd57600080fd5b600360009054906101000a900460ff16151515611df957600080fd5b6001600360006101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e8357600080fd5b80600483815481101515611e9357fe5b90600052602060002090600302016002015410151515611eb257600080fd5b80600483815481101515611ec257fe5b9060005260206000209060030201600101819055507ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d8282604051808381526020018281526020019250505060405180910390a15050565b611f2261257a565b600080600080600486815481101515611f3757fe5b90600052602060002090600302019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fdf5780601f10611fb457610100808354040283529160200191611fdf565b820191906000526020600020905b815481529060010190602001808311611fc257829003601f168201915b5050505050945080600101549350806002015492506006600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b60008060009150600090505b6001805490508110156120cf573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561207157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156120c257600191506120cf565b808060010191505061203e565b8115156120db57600080fd5b6005838154811015156120ea57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e836000604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561228e57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6040805190810160405280600881526020017f4c414e444d41524b00000000000000000000000000000000000000000000000081525081565b6005818154811015156122d957fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060058281548110151561231a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156124ab57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506008600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000806000841415612520576000915061253f565b828402905082848281151561253157fe5b0414151561253b57fe5b8091505b5092915050565b600080828481151561255457fe5b0490508091505092915050565b600082821115151561256f57fe5b818303905092915050565b602060405190810160405280600081525090565b8154818355818115116125b5578183600052602060002091820191016125b491906126a8565b5b505050565b602060405190810160405280600081525090565b6060604051908101604052806125e26126cd565b815260200160008152602001600081525090565b8154818355818115116126235760030281600302836000526020600020918201910161262291906126e1565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061266957805160ff1916838001178555612697565b82800160010185558215612697579182015b8281111561269657825182559160200191906001019061267b565b5b5090506126a491906126a8565b5090565b6126ca91905b808211156126c65760008160009055506001016126ae565b5090565b90565b602060405190810160405280600081525090565b61271d91905b8082111561271957600080820160006127009190612720565b60018201600090556002820160009055506003016126e7565b5090565b90565b50805460018160011615610100020316600290046000825580601f106127465750612765565b601f01602090049060005260206000209081019061276491906126a8565b5b505600a165627a7a72305820dae25c0ca3d7f1a1049dfff10cb7767181de773f5960ce05b5a4c94a65da46500029
Swarm Source
bzzr://dae25c0ca3d7f1a1049dfff10cb7767181de773f5960ce05b5a4c94a65da4650
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.