Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 492 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mine Card | 14182400 | 1120 days ago | IN | 0.001 ETH | 0.04193159 | ||||
Mine Card | 14182376 | 1120 days ago | IN | 0.001 ETH | 0.03203623 | ||||
Mine Card | 14182348 | 1120 days ago | IN | 0.001 ETH | 0.03519219 | ||||
Process Sell Ord... | 13260765 | 1264 days ago | IN | 0.005 ETH | 0.00787062 | ||||
Process Sell Ord... | 13260712 | 1264 days ago | IN | 0.05 ETH | 0.00967278 | ||||
Mine Card | 13239004 | 1268 days ago | IN | 0.001 ETH | 0.03814497 | ||||
Mine Card | 13238999 | 1268 days ago | IN | 0.001 ETH | 0.05469878 | ||||
Mine Card | 13238988 | 1268 days ago | IN | 0.001 ETH | 0.02826556 | ||||
Mine Card | 13238973 | 1268 days ago | IN | 0.001 ETH | 0.02641982 | ||||
Mine Card | 13237369 | 1268 days ago | IN | 0.001 ETH | 0.08910562 | ||||
Mine Card | 13237365 | 1268 days ago | IN | 0.001 ETH | 0.0359389 | ||||
Mine Card | 13237335 | 1268 days ago | IN | 0.001 ETH | 0.0576 | ||||
Mine Card | 13237324 | 1268 days ago | IN | 0.001 ETH | 0.03675146 | ||||
Process Sell Ord... | 13236746 | 1268 days ago | IN | 0.004 ETH | 0.00522383 | ||||
Process Sell Ord... | 13236690 | 1268 days ago | IN | 0.015 ETH | 0.00738691 | ||||
Process Sell Ord... | 13236537 | 1268 days ago | IN | 0.025 ETH | 0.00552262 | ||||
Mine Card | 13236471 | 1268 days ago | IN | 0.001 ETH | 0.02525195 | ||||
Mine Card | 13236443 | 1268 days ago | IN | 0.001 ETH | 0.03056626 | ||||
Mine Card | 13236436 | 1268 days ago | IN | 0.001 ETH | 0.01227334 | ||||
Mine Card | 13236041 | 1268 days ago | IN | 0.001 ETH | 0.00928876 | ||||
Mine Card | 13236036 | 1268 days ago | IN | 0.001 ETH | 0.01839586 | ||||
Process Sell Ord... | 13235044 | 1268 days ago | IN | 0.02 ETH | 0.0071217 | ||||
Process Sell Ord... | 13235040 | 1268 days ago | IN | 0.01 ETH | 0.00653679 | ||||
Process Sell Ord... | 13235036 | 1268 days ago | IN | 0.01 ETH | 0.00563392 | ||||
Process Sell Ord... | 13235019 | 1268 days ago | IN | 0.02 ETH | 0.00177148 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 14182400 | 1120 days ago | 0.001 ETH | ||||
- | 14182376 | 1120 days ago | 0.001 ETH | ||||
- | 14182348 | 1120 days ago | 0.001 ETH | ||||
- | 13260765 | 1264 days ago | 0.005 ETH | ||||
- | 13260712 | 1264 days ago | 0.05 ETH | ||||
- | 13239004 | 1268 days ago | 0.001 ETH | ||||
- | 13238988 | 1268 days ago | 0.001 ETH | ||||
- | 13238973 | 1268 days ago | 0.001 ETH | ||||
- | 13237369 | 1268 days ago | 0.001 ETH | ||||
- | 13237365 | 1268 days ago | 0.001 ETH | ||||
- | 13236746 | 1268 days ago | 0.004 ETH | ||||
- | 13236690 | 1268 days ago | 0.015 ETH | ||||
- | 13236537 | 1268 days ago | 0.025 ETH | ||||
- | 13236443 | 1268 days ago | 0.001 ETH | ||||
- | 13236041 | 1268 days ago | 0.001 ETH | ||||
- | 13235044 | 1268 days ago | 0.02 ETH | ||||
- | 13235040 | 1268 days ago | 0.01 ETH | ||||
- | 13235036 | 1268 days ago | 0.01 ETH | ||||
- | 13235016 | 1268 days ago | 0.02 ETH | ||||
- | 13234898 | 1268 days ago | 0.008 ETH | ||||
- | 13234846 | 1268 days ago | 0.02 ETH | ||||
- | 13234832 | 1268 days ago | 0.02 ETH | ||||
- | 13234784 | 1268 days ago | 0.008 ETH | ||||
Transfer | 6099749 | 2405 days ago | 0.001 ETH | ||||
Transfer | 6090653 | 2406 days ago | 0.001 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
HumanityCard
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-16 */ pragma solidity ^0.4.2; contract ERC721 { function isERC721() public pure returns (bool b); function implementsERC721() public pure returns (bool b); function name() public pure returns (string name); function symbol() public pure returns (string symbol); function totalSupply() public view returns (uint256 totalSupply); function balanceOf(address _owner) public view returns (uint256 balance); function ownerOf(uint256 _tokenId) public view returns (address owner); function approve(address _to, uint256 _tokenId) public; function takeOwnership(uint256 _tokenId) public; function transferFrom(address _from, address _to, uint256 _tokenId) public; function transfer(address _to, uint256 _tokenId) public; function tokenOfOwnerByIndex(address _owner, uint256 _index) constant returns (uint tokenId); function tokenMetadata(uint256 _tokenId) constant returns (string infoUrl); event Transfer(address indexed _from, address indexed _to, uint256 _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId); } contract HumanityCard is ERC721 { /////////////////////////////////////////////////////////////// /// Modifiers modifier onlyOwner { require(msg.sender == owner); _; } event Mined(address indexed owner, uint16 human); /////////////////////////////////////////////////////////////// /// Structures struct Human { string name; uint8 max; uint mined; } struct Card { uint16 human; address owner; uint indexUser; } struct SellOrder { address seller; uint card; uint price; } /////////////////////////////////////////////////////////////// /// Constants string constant NAME = "HumanityCards"; string constant SYMBOL = "HCX"; /////////////////////////////////////////////////////////////// /// Attributes address owner; uint cardPrice; uint humanNumber; Human[] humanArray; uint cardNumber; uint cardMined; Card[] cardArray; mapping (address => uint256) cardCount; mapping (uint256 => address) approveMap; SellOrder[] sellOrderList; // Index of the card for the user mapping (address => mapping (uint => uint)) indexCard; /////////////////////////////////////////////////////////////// /// Constructor function HumanityCard() public { owner = msg.sender; cardPrice = 1 finney; humanNumber = 0; cardNumber = 0; cardMined = 0; } /////////////////////////////////////////////////////////////// /// Admin functions function addHuman(string name, uint8 max) public onlyOwner { Human memory newHuman = Human(name, max, 0); humanArray.push(newHuman); humanNumber += 1; cardNumber += max; } // Used only if ether price increase (decrease the price card) function changeCardPrice(uint newPrice) public onlyOwner { cardPrice = newPrice; } /////////////////////////////////////////////////////////////// /// Implementation ERC721 function isERC721() public pure returns (bool b) { return true; } function implementsERC721() public pure returns (bool b) { return true; } function name() public pure returns (string _name) { return NAME; } function symbol() public pure returns (string _symbol) { return SYMBOL; } function totalSupply() public view returns (uint256 _totalSupply) { return cardMined; } function balanceOf(address _owner) public view returns (uint256 balance) { return cardCount[_owner]; } function ownerOf(uint256 _tokenId) public view returns (address _owner) { require(_tokenId < cardMined); Card c = cardArray[_tokenId]; return c.owner; } function approve(address _to, uint256 _tokenId) public { require(msg.sender == ownerOf(_tokenId)); require(msg.sender != _to); approveMap[_tokenId] = _to; Approval(msg.sender, _to, _tokenId); } function transferFrom(address _from, address _to, uint256 _tokenId) public { require(_tokenId < cardMined); require(_from == ownerOf(_tokenId)); require(_from != _to); require(approveMap[_tokenId] == _to); cardCount[_from] -= 1; // Change the indexCard of _from indexCard[_from][cardArray[_tokenId].indexUser] = indexCard[_from][cardCount[_from]]; cardArray[indexCard[_from][cardCount[_from]]].indexUser = cardArray[_tokenId].indexUser; // This card is the last one for the new owner cardArray[_tokenId].indexUser = cardCount[_to]; indexCard[_to][cardCount[_to]] = _tokenId; cardArray[_tokenId].owner = _to; cardCount[_to] += 1; Transfer(_from, _to, _tokenId); } function takeOwnership(uint256 _tokenId) public { require(_tokenId < cardMined); address oldOwner = ownerOf(_tokenId); address newOwner = msg.sender; require(newOwner != oldOwner); require(approveMap[_tokenId] == msg.sender); cardCount[oldOwner] -= 1; // Change the indexCard of _from indexCard[oldOwner][cardArray[_tokenId].indexUser] = indexCard[oldOwner][cardCount[oldOwner]]; cardArray[indexCard[oldOwner][cardCount[oldOwner]]].indexUser = cardArray[_tokenId].indexUser; // This card is the last one for the new owner cardArray[_tokenId].indexUser = cardCount[newOwner]; indexCard[newOwner][cardCount[newOwner]] = _tokenId; cardArray[_tokenId].owner = newOwner; cardCount[newOwner] += 1; Transfer(oldOwner, newOwner, _tokenId); } function transfer(address _to, uint256 _tokenId) public { require(_tokenId < cardMined); address oldOwner = msg.sender; address newOwner = _to; require(oldOwner == ownerOf(_tokenId)); require(oldOwner != newOwner); require(newOwner != address(0)); cardCount[oldOwner] -= 1; // Change the indexCard of _from indexCard[oldOwner][cardArray[_tokenId].indexUser] = indexCard[oldOwner][cardCount[oldOwner]]; cardArray[indexCard[oldOwner][cardCount[oldOwner]]].indexUser = cardArray[_tokenId].indexUser; // This card is the last one for the new owner cardArray[_tokenId].indexUser = cardCount[newOwner]; indexCard[newOwner][cardCount[newOwner]] = _tokenId; cardArray[_tokenId].owner = newOwner; cardCount[newOwner] += 1; Transfer(oldOwner, newOwner, _tokenId); } function tokenOfOwnerByIndex(address _owner, uint256 _index) constant returns (uint tokenId) { require(_index < cardCount[_owner]); return indexCard[_owner][_index]; } // For this case the only metadata is the name of the human function tokenMetadata(uint256 _tokenId) constant returns (string infoUrl) { require(_tokenId < cardMined); uint16 humanId = cardArray[_tokenId].human; return humanArray[humanId].name; } /////////////////////////////////////////////////////////////// /// HumanityCard functions // Mine a new card function mineCard() public payable returns(bool success) { require(msg.value == cardPrice); require(cardMined < cardNumber); int remaining = (int)(cardNumber - cardMined); // Choosing the card int numero = int(keccak256(block.timestamp))%remaining; if(numero < 0) { numero *= -1; } uint16 chosenOne = 0; while (numero >= 0) { numero -= (int)(humanArray[chosenOne].max-humanArray[chosenOne].mined); if (numero >= 0) { chosenOne += 1; } } // Adding the card to the user address newOwner = msg.sender; Card memory newCard = Card(chosenOne, newOwner, cardCount[newOwner]); cardArray.push(newCard); // This card is the last one indexCard[newOwner][cardCount[newOwner]] = cardMined; cardCount[newOwner] += 1; // Updating cards informations cardMined += 1; humanArray[chosenOne].mined += 1; // Sending the fund to the owner if(!owner.send(cardPrice)) { revert(); } Mined(newOwner, chosenOne); return true; } // Sale functions function createSellOrder(uint256 _tokenId, uint price) public { require(_tokenId < cardMined); require(msg.sender == ownerOf(_tokenId)); SellOrder memory newOrder = SellOrder(msg.sender, _tokenId, price); sellOrderList.push(newOrder); cardArray[_tokenId].owner = address(0); cardCount[msg.sender] -= 1; // Change the indexCard of sender indexCard[msg.sender][cardArray[_tokenId].indexUser] = indexCard[msg.sender][cardCount[msg.sender]]; cardArray[indexCard[msg.sender][cardCount[msg.sender]]].indexUser = cardArray[_tokenId].indexUser; } function processSellOrder(uint id, uint256 _tokenId) payable public { require(id < sellOrderList.length); SellOrder memory order = sellOrderList[id]; require(order.card == _tokenId); require(msg.value == order.price); require(msg.sender != order.seller); // Sending fund to the seller if(!order.seller.send(msg.value)) { revert(); } // Adding card to the buyer cardArray[_tokenId].owner = msg.sender; // This card is the last one for the new owner cardArray[_tokenId].indexUser = cardCount[msg.sender]; indexCard[msg.sender][cardCount[msg.sender]] = _tokenId; cardCount[msg.sender] += 1; // Update list sellOrderList[id] = sellOrderList[sellOrderList.length-1]; delete sellOrderList[sellOrderList.length-1]; sellOrderList.length--; } function cancelSellOrder(uint id, uint256 _tokenId) public { require(id < sellOrderList.length); SellOrder memory order = sellOrderList[id]; require(order.seller == msg.sender); require(order.card == _tokenId); // Give back card to seller cardArray[_tokenId].owner = msg.sender; // This card is the last one for the new owner cardArray[_tokenId].indexUser = cardCount[msg.sender]; indexCard[msg.sender][cardCount[msg.sender]] = _tokenId; cardCount[msg.sender] += 1; // Update list sellOrderList[id] = sellOrderList[sellOrderList.length-1]; delete sellOrderList[sellOrderList.length-1]; sellOrderList.length--; } function getSellOrder(uint id) public view returns(address seller, uint card, uint price) { require(id < sellOrderList.length); SellOrder memory ret = sellOrderList[id]; return(ret.seller, ret.card, ret.price); } function getNbSellOrder() public view returns(uint nb) { return sellOrderList.length; } // Get functions function getOwner() public view returns(address ret) { return owner; } function getCardPrice() public view returns(uint ret) { return cardPrice; } function getHumanNumber() public view returns(uint ret) { return humanNumber; } function getHumanInfo(uint i) public view returns(string name, uint8 max, uint mined) { require(i < humanNumber); Human memory h = humanArray[i]; return (h.name, h.max, h.mined); } function getCardNumber() public view returns(uint ret) { return cardNumber; } function getCardInfo(uint256 _tokenId) public view returns(uint16 human, address owner) { require(_tokenId < cardMined); Card memory c = cardArray[_tokenId]; return (c.human, c.owner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"getCardNumber","outputs":[{"name":"ret","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_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":"b","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getNbSellOrder","outputs":[{"name":"nb","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getHumanInfo","outputs":[{"name":"name","type":"string"},{"name":"max","type":"uint8"},{"name":"mined","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"price","type":"uint256"}],"name":"createSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"tokenId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPrice","type":"uint256"}],"name":"changeCardPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getSellOrder","outputs":[{"name":"seller","type":"address"},{"name":"card","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenMetadata","outputs":[{"name":"infoUrl","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"ret","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getCardInfo","outputs":[{"name":"human","type":"uint16"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint256"},{"name":"_tokenId","type":"uint256"}],"name":"processSellOrder","outputs":[],"payable":true,"stateMutability":"payable","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":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isERC721","outputs":[{"name":"b","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getCardPrice","outputs":[{"name":"ret","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getHumanNumber","outputs":[{"name":"ret","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"max","type":"uint8"}],"name":"addHuman","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint256"},{"name":"_tokenId","type":"uint256"}],"name":"cancelSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"mineCard","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"human","type":"uint16"}],"name":"Mined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c6800060018190555060006002819055506000600481905550600060058190555061350d806100846000396000f30060606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305dc27081461016457806306fdde031461018d578063095ea7b31461021b5780631051db341461025d5780631390b2471461028a57806318160ddd146102b35780631dd7cf6d146102dc5780631df681021461038c57806323b872dd146103b85780632f745c591461041957806330efac4e1461046f578063390ce0d3146104925780636352211e146105035780636914db601461056657806370a0823114610602578063893d20e81461064f57806395d89b41146106a4578063970129be14610732578063a70beb13146107a4578063a9059cbb146107c5578063b2e6ceeb14610807578063d2afa8c11461082a578063d79d63be14610857578063d8c3527314610880578063e242fbbb146108a9578063e51dfd9014610912578063ed1ece041461093e575b600080fd5b341561016f57600080fd5b610177610960565b6040518082815260200191505060405180910390f35b341561019857600080fd5b6101a061096a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e05780820151818401526020810190506101c5565b50505050905090810190601f16801561020d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022657600080fd5b61025b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109ad565b005b341561026857600080fd5b610270610ae5565b604051808215151515815260200191505060405180910390f35b341561029557600080fd5b61029d610aee565b6040518082815260200191505060405180910390f35b34156102be57600080fd5b6102c6610afb565b6040518082815260200191505060405180910390f35b34156102e757600080fd5b6102fd6004808035906020019091905050610b05565b60405180806020018460ff1660ff168152602001838152602001828103825285818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561039757600080fd5b6103b66004808035906020019091908035906020019091905050610c3c565b005b34156103c357600080fd5b610417600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fdd565b005b341561042457600080fd5b610459600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061150c565b6040518082815260200191505060405180910390f35b341561047a57600080fd5b61049060048080359060200190919050506115b4565b005b341561049d57600080fd5b6104b36004808035906020019091905050611619565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b341561050e57600080fd5b61052460048080359060200190919050506116eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057157600080fd5b610587600480803590602001909190505061174a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c75780820151818401526020810190506105ac565b50505050905090810190601f1680156105f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561060d57600080fd5b610639600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061185a565b6040518082815260200191505060405180910390f35b341561065a57600080fd5b6106626118a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106af57600080fd5b6106b76118cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f75780820151818401526020810190506106dc565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561073d57600080fd5b610753600480803590602001909190505061190f565b604051808361ffff1661ffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b6107c360048080359060200190919080359060200190919050506119e9565b005b34156107d057600080fd5b610805600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e1f565b005b341561081257600080fd5b6108286004808035906020019091905050612327565b005b341561083557600080fd5b61083d612825565b604051808215151515815260200191505060405180910390f35b341561086257600080fd5b61086a61282e565b6040518082815260200191505060405180910390f35b341561088b57600080fd5b610893612838565b6040518082815260200191505060405180910390f35b34156108b457600080fd5b610910600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091905050612842565b005b341561091d57600080fd5b61093c6004808035906020019091908035906020019091905050612965565b005b610946612d44565b604051808215151515815260200191505060405180910390f35b6000600454905090565b610972613161565b6040805190810160405280600d81526020017f48756d616e697479436172647300000000000000000000000000000000000000815250905090565b6109b6816116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109ef57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610a2a57600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60006001905090565b6000600980549050905090565b6000600554905090565b610b0d613161565b600080610b18613175565b60025485101515610b2857600080fd5b600385815481101515610b3757fe5b906000526020600020906003020160606040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bea5780601f10610bbf57610100808354040283529160200191610bea565b820191906000526020600020905b815481529060010190602001808311610bcd57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff1681526020016002820154815250509050806000015181602001518260400151829250935093509350509193909250565b610c446131a0565b60055483101515610c5457600080fd5b610c5d836116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9657600080fd5b6060604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815250905060098054806001018281610cde91906131d8565b9160005260206000209060030201600083909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201555050506000600684815481101515610d6357fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600686815481101515610ee057fe5b906000526020600020906002020160010154815260200190815260200160002081905550600683815481101515610f1357fe5b9060005260206000209060020201600101546006600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054815481101515610fc357fe5b906000526020600020906002020160010181905550505050565b60055481101515610fed57600080fd5b610ff6816116eb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561102f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561106a57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110d757600080fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068481548110151561120557fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068181548110151561123857fe5b9060005260206000209060020201600101546006600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020548154811015156112e857fe5b906000526020600020906002020160010181905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068281548110151561134c57fe5b90600052602060002090600202016001018190555080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508160068281548110151561140557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210151561155b57600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160f57600080fd5b8060018190555050565b60008060006116266131a0565b6009805490508510151561163957600080fd5b60098581548110151561164857fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050806000015181602001518260400151935093509350509193909250565b600080600554831015156116fe57600080fd5b60068381548110151561170d57fe5b906000526020600020906002020190508060000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b611752613161565b60006005548310151561176457600080fd5b60068381548110151561177357fe5b906000526020600020906002020160000160009054906101000a900461ffff16905060038161ffff168154811015156117a857fe5b90600052602060002090600302016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561184d5780601f106118225761010080835404028352916020019161184d565b820191906000526020600020905b81548152906001019060200180831161183057829003601f168201915b5050505050915050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6118d4613161565b6040805190810160405280600381526020017f4843580000000000000000000000000000000000000000000000000000000000815250905090565b60008061191a61320a565b6005548410151561192a57600080fd5b60068481548110151561193957fe5b9060005260206000209060020201606060405190810160405290816000820160009054906101000a900461ffff1661ffff1661ffff1681526020016000820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050806000015181602001519250925050915091565b6119f16131a0565b60098054905083101515611a0457600080fd5b600983815481101515611a1357fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050818160200151141515611aab57600080fd5b806040015134141515611abd57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611afc57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611b4057600080fd5b33600683815481101515611b5057fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515611bee57fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515611cfc57fe5b9060005260206000209060030201600984815481101515611d1957fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515611dbc57fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003611e199190613246565b50505050565b60008060055483101515611e3257600080fd5b339150839050611e41836116eb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611e7a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611eb557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ef157600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561201f57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561205257fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561210257fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561216657fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561221f57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b6000806005548310151561233a57600080fd5b612343836116eb565b91503390508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561238357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156123f057600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561251e57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561255157fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561260157fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561266557fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561271e57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b60006001905090565b6000600154905090565b6000600254905090565b61284a613175565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a557600080fd5b6060604051908101604052808481526020018360ff16815260200160008152509050600380548060010182816128db9190613278565b91600052602060002090600302016000839091909150600082015181600001908051906020019061290d9291906132aa565b5060208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002015550505060016002600082825401925050819055508160ff16600460008282540192505081905550505050565b61296d6131a0565b6009805490508310151561298057600080fd5b60098381548110151561298f57fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141515612a5357600080fd5b818160200151141515612a6557600080fd5b33600683815481101515612a7557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515612b1357fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515612c2157fe5b9060005260206000209060030201600984815481101515612c3e57fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515612ce157fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003612d3e9190613246565b50505050565b6000806000806000612d5461320a565b60015434141515612d6457600080fd5b600454600554101515612d7657600080fd5b600554600454039450844260405180828152602001915050604051809103902060019004811515612da357fe5b0793506000841215612dd5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840293505b600092505b600084121515612e595760038361ffff16815481101515612df757fe5b90600052602060002090600302016002015460038461ffff16815481101515612e1c57fe5b906000526020600020906003020160010160009054906101000a900460ff1660ff160384039350600084121515612e54576001830192505b612dda565b3391506060604051908101604052808461ffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815250905060068054806001018281612ee7919061332a565b9160005260206000209060020201600083909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155505050600554600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001600560008282540192505081905550600160038461ffff1681548110151561307e57fe5b9060005260206000209060030201600201600082825401925050819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6001549081150290604051600060405180830381858888f1935050505015156130ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167f7c1f9d0ff99ce7cdfc538e6a57e0da25cad20c3b30440894e5205eebe3d1f89484604051808261ffff1661ffff16815260200191505060405180910390a260019550505050505090565b602060405190810160405280600081525090565b60606040519081016040528061318961335c565b8152602001600060ff168152602001600081525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b815481835581811511613205576003028160030283600052602060002091820191016132049190613370565b5b505050565b606060405190810160405280600061ffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b815481835581811511613273576003028160030283600052602060002091820191016132729190613370565b5b505050565b8154818355818115116132a5576003028160030283600052602060002091820191016132a491906133c6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132eb57805160ff1916838001178555613319565b82800160010185558215613319579182015b828111156133185782518255916020019190600101906132fd565b5b5090506133269190613411565b5090565b815481835581811511613357576002028160020283600052602060002091820191016133569190613436565b5b505050565b602060405190810160405280600081525090565b6133c391905b808211156133bf57600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550600301613376565b5090565b90565b61340e91905b8082111561340a57600080820160006133e59190613499565b6001820160006101000a81549060ff02191690556002820160009055506003016133cc565b5090565b90565b61343391905b8082111561342f576000816000905550600101613417565b5090565b90565b61349691905b8082111561349257600080820160006101000a81549061ffff02191690556000820160026101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555060020161343c565b5090565b90565b50805460018160011615610100020316600290046000825580601f106134bf57506134de565b601f0160209004906000526020600020908101906134dd9190613411565b5b505600a165627a7a7230582089cff650b2bb9596cc313d6ecedab44f6cabe6815415461f44cde1209b7469580029
Deployed Bytecode
0x60606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305dc27081461016457806306fdde031461018d578063095ea7b31461021b5780631051db341461025d5780631390b2471461028a57806318160ddd146102b35780631dd7cf6d146102dc5780631df681021461038c57806323b872dd146103b85780632f745c591461041957806330efac4e1461046f578063390ce0d3146104925780636352211e146105035780636914db601461056657806370a0823114610602578063893d20e81461064f57806395d89b41146106a4578063970129be14610732578063a70beb13146107a4578063a9059cbb146107c5578063b2e6ceeb14610807578063d2afa8c11461082a578063d79d63be14610857578063d8c3527314610880578063e242fbbb146108a9578063e51dfd9014610912578063ed1ece041461093e575b600080fd5b341561016f57600080fd5b610177610960565b6040518082815260200191505060405180910390f35b341561019857600080fd5b6101a061096a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e05780820151818401526020810190506101c5565b50505050905090810190601f16801561020d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022657600080fd5b61025b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109ad565b005b341561026857600080fd5b610270610ae5565b604051808215151515815260200191505060405180910390f35b341561029557600080fd5b61029d610aee565b6040518082815260200191505060405180910390f35b34156102be57600080fd5b6102c6610afb565b6040518082815260200191505060405180910390f35b34156102e757600080fd5b6102fd6004808035906020019091905050610b05565b60405180806020018460ff1660ff168152602001838152602001828103825285818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561039757600080fd5b6103b66004808035906020019091908035906020019091905050610c3c565b005b34156103c357600080fd5b610417600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fdd565b005b341561042457600080fd5b610459600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061150c565b6040518082815260200191505060405180910390f35b341561047a57600080fd5b61049060048080359060200190919050506115b4565b005b341561049d57600080fd5b6104b36004808035906020019091905050611619565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b341561050e57600080fd5b61052460048080359060200190919050506116eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057157600080fd5b610587600480803590602001909190505061174a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c75780820151818401526020810190506105ac565b50505050905090810190601f1680156105f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561060d57600080fd5b610639600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061185a565b6040518082815260200191505060405180910390f35b341561065a57600080fd5b6106626118a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106af57600080fd5b6106b76118cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f75780820151818401526020810190506106dc565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561073d57600080fd5b610753600480803590602001909190505061190f565b604051808361ffff1661ffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b6107c360048080359060200190919080359060200190919050506119e9565b005b34156107d057600080fd5b610805600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e1f565b005b341561081257600080fd5b6108286004808035906020019091905050612327565b005b341561083557600080fd5b61083d612825565b604051808215151515815260200191505060405180910390f35b341561086257600080fd5b61086a61282e565b6040518082815260200191505060405180910390f35b341561088b57600080fd5b610893612838565b6040518082815260200191505060405180910390f35b34156108b457600080fd5b610910600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091905050612842565b005b341561091d57600080fd5b61093c6004808035906020019091908035906020019091905050612965565b005b610946612d44565b604051808215151515815260200191505060405180910390f35b6000600454905090565b610972613161565b6040805190810160405280600d81526020017f48756d616e697479436172647300000000000000000000000000000000000000815250905090565b6109b6816116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109ef57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610a2a57600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60006001905090565b6000600980549050905090565b6000600554905090565b610b0d613161565b600080610b18613175565b60025485101515610b2857600080fd5b600385815481101515610b3757fe5b906000526020600020906003020160606040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bea5780601f10610bbf57610100808354040283529160200191610bea565b820191906000526020600020905b815481529060010190602001808311610bcd57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff1681526020016002820154815250509050806000015181602001518260400151829250935093509350509193909250565b610c446131a0565b60055483101515610c5457600080fd5b610c5d836116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9657600080fd5b6060604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815250905060098054806001018281610cde91906131d8565b9160005260206000209060030201600083909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201555050506000600684815481101515610d6357fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600686815481101515610ee057fe5b906000526020600020906002020160010154815260200190815260200160002081905550600683815481101515610f1357fe5b9060005260206000209060020201600101546006600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054815481101515610fc357fe5b906000526020600020906002020160010181905550505050565b60055481101515610fed57600080fd5b610ff6816116eb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561102f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561106a57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110d757600080fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068481548110151561120557fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068181548110151561123857fe5b9060005260206000209060020201600101546006600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020548154811015156112e857fe5b906000526020600020906002020160010181905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068281548110151561134c57fe5b90600052602060002090600202016001018190555080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508160068281548110151561140557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210151561155b57600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160f57600080fd5b8060018190555050565b60008060006116266131a0565b6009805490508510151561163957600080fd5b60098581548110151561164857fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050806000015181602001518260400151935093509350509193909250565b600080600554831015156116fe57600080fd5b60068381548110151561170d57fe5b906000526020600020906002020190508060000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b611752613161565b60006005548310151561176457600080fd5b60068381548110151561177357fe5b906000526020600020906002020160000160009054906101000a900461ffff16905060038161ffff168154811015156117a857fe5b90600052602060002090600302016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561184d5780601f106118225761010080835404028352916020019161184d565b820191906000526020600020905b81548152906001019060200180831161183057829003601f168201915b5050505050915050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6118d4613161565b6040805190810160405280600381526020017f4843580000000000000000000000000000000000000000000000000000000000815250905090565b60008061191a61320a565b6005548410151561192a57600080fd5b60068481548110151561193957fe5b9060005260206000209060020201606060405190810160405290816000820160009054906101000a900461ffff1661ffff1661ffff1681526020016000820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050806000015181602001519250925050915091565b6119f16131a0565b60098054905083101515611a0457600080fd5b600983815481101515611a1357fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050818160200151141515611aab57600080fd5b806040015134141515611abd57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611afc57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611b4057600080fd5b33600683815481101515611b5057fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515611bee57fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515611cfc57fe5b9060005260206000209060030201600984815481101515611d1957fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515611dbc57fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003611e199190613246565b50505050565b60008060055483101515611e3257600080fd5b339150839050611e41836116eb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611e7a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611eb557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ef157600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561201f57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561205257fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561210257fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561216657fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561221f57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b6000806005548310151561233a57600080fd5b612343836116eb565b91503390508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561238357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156123f057600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561251e57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561255157fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561260157fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561266557fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561271e57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b60006001905090565b6000600154905090565b6000600254905090565b61284a613175565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a557600080fd5b6060604051908101604052808481526020018360ff16815260200160008152509050600380548060010182816128db9190613278565b91600052602060002090600302016000839091909150600082015181600001908051906020019061290d9291906132aa565b5060208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002015550505060016002600082825401925050819055508160ff16600460008282540192505081905550505050565b61296d6131a0565b6009805490508310151561298057600080fd5b60098381548110151561298f57fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141515612a5357600080fd5b818160200151141515612a6557600080fd5b33600683815481101515612a7557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515612b1357fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515612c2157fe5b9060005260206000209060030201600984815481101515612c3e57fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515612ce157fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003612d3e9190613246565b50505050565b6000806000806000612d5461320a565b60015434141515612d6457600080fd5b600454600554101515612d7657600080fd5b600554600454039450844260405180828152602001915050604051809103902060019004811515612da357fe5b0793506000841215612dd5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840293505b600092505b600084121515612e595760038361ffff16815481101515612df757fe5b90600052602060002090600302016002015460038461ffff16815481101515612e1c57fe5b906000526020600020906003020160010160009054906101000a900460ff1660ff160384039350600084121515612e54576001830192505b612dda565b3391506060604051908101604052808461ffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815250905060068054806001018281612ee7919061332a565b9160005260206000209060020201600083909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155505050600554600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001600560008282540192505081905550600160038461ffff1681548110151561307e57fe5b9060005260206000209060030201600201600082825401925050819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6001549081150290604051600060405180830381858888f1935050505015156130ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167f7c1f9d0ff99ce7cdfc538e6a57e0da25cad20c3b30440894e5205eebe3d1f89484604051808261ffff1661ffff16815260200191505060405180910390a260019550505050505090565b602060405190810160405280600081525090565b60606040519081016040528061318961335c565b8152602001600060ff168152602001600081525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b815481835581811511613205576003028160030283600052602060002091820191016132049190613370565b5b505050565b606060405190810160405280600061ffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b815481835581811511613273576003028160030283600052602060002091820191016132729190613370565b5b505050565b8154818355818115116132a5576003028160030283600052602060002091820191016132a491906133c6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132eb57805160ff1916838001178555613319565b82800160010185558215613319579182015b828111156133185782518255916020019190600101906132fd565b5b5090506133269190613411565b5090565b815481835581811511613357576002028160020283600052602060002091820191016133569190613436565b5b505050565b602060405190810160405280600081525090565b6133c391905b808211156133bf57600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550600301613376565b5090565b90565b61340e91905b8082111561340a57600080820160006133e59190613499565b6001820160006101000a81549060ff02191690556002820160009055506003016133cc565b5090565b90565b61343391905b8082111561342f576000816000905550600101613417565b5090565b90565b61349691905b8082111561349257600080820160006101000a81549061ffff02191690556000820160026101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555060020161343c565b5090565b90565b50805460018160011615610100020316600290046000825580601f106134bf57506134de565b601f0160209004906000526020600020908101906134dd9190613411565b5b505600a165627a7a7230582089cff650b2bb9596cc313d6ecedab44f6cabe6815415461f44cde1209b7469580029
Swarm Source
bzzr://89cff650b2bb9596cc313d6ecedab44f6cabe6815415461f44cde1209b746958
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.