Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 PBTT
Holders
14,102
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 3 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
PBTTToken
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-08-10
*/
/* solium-disable-next-line linebreak-style */
pragma solidity ^0.4.24;
// Implements a simple ownership model with 2-phase transfer.
contract Owned {
address public owner;
address public proposedOwner;
constructor() public
{
owner = msg.sender;
}
modifier onlyOwner() {
require(isOwner(msg.sender) == true, 'Require owner to execute transaction');
_;
}
function isOwner(address _address) public view returns (bool) {
return (_address == owner);
}
function initiateOwnershipTransfer(address _proposedOwner) public onlyOwner returns (bool success) {
require(_proposedOwner != address(0), 'Require proposedOwner != address(0)');
require(_proposedOwner != address(this), 'Require proposedOwner != address(this)');
require(_proposedOwner != owner, 'Require proposedOwner != owner');
proposedOwner = _proposedOwner;
return true;
}
function completeOwnershipTransfer() public returns (bool success) {
require(msg.sender == proposedOwner, 'Require msg.sender == proposedOwner');
owner = msg.sender;
proposedOwner = address(0);
return true;
}
}
// ----------------------------------------------------------------------------
// OpsManaged - Implements an Owner and Ops Permission Model
// ----------------------------------------------------------------------------
contract OpsManaged is Owned {
address public opsAddress;
constructor() public
Owned()
{
}
modifier onlyOwnerOrOps() {
require(isOwnerOrOps(msg.sender), 'Require only owner or ops');
_;
}
function isOps(address _address) public view returns (bool) {
return (opsAddress != address(0) && _address == opsAddress);
}
function isOwnerOrOps(address _address) public view returns (bool) {
return (isOwner(_address) || isOps(_address));
}
function setOpsAddress(address _newOpsAddress) public onlyOwner returns (bool success) {
require(_newOpsAddress != owner, 'Require newOpsAddress != owner');
require(_newOpsAddress != address(this), 'Require newOpsAddress != address(this)');
opsAddress = _newOpsAddress;
return true;
}
}
// ----------------------------------------------------------------------------
// Finalizable - Implement Finalizable (Crowdsale) model
// ----------------------------------------------------------------------------
contract Finalizable is OpsManaged {
FinalizableState public finalized;
enum FinalizableState {
None,
Finalized
}
event Finalized();
constructor() public OpsManaged()
{
finalized = FinalizableState.None;
}
function finalize() public onlyOwner returns (bool success) {
require(finalized == FinalizableState.None, 'Require !finalized');
finalized = FinalizableState.Finalized;
emit Finalized();
return true;
}
}
// ----------------------------------------------------------------------------
// Math - Implement Math Library
// ----------------------------------------------------------------------------
library Math {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 r = a + b;
require(r >= a, 'Require r >= a');
return r;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(a >= b, 'Require a >= b');
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 r = a * b;
require(r / a == b, 'Require r / a == b');
return r;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
}
// ----------------------------------------------------------------------------
// ERC20Interface - Standard ERC20 Interface Definition
// Based on the final ERC20 specification at:
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
// ----------------------------------------------------------------------------
contract ERC20Interface {
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
function balanceOf(address _owner) public view returns (uint256 balance);
function allowance(address _owner, address _spender) public view returns (uint256 remaining);
function transfer(address _to, uint256 _value) public returns (bool success);
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
function approve(address _spender, uint256 _value) public returns (bool success);
}
// ----------------------------------------------------------------------------
// ERC20Token - Standard ERC20 Implementation
// ----------------------------------------------------------------------------
contract ERC20Token is ERC20Interface {
using Math for uint256;
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
mapping(address => uint256) internal balances;
mapping(address => mapping (address => uint256)) allowed;
constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply, address _initialTokenHolder) public {
name = _name;
symbol = _symbol;
decimals = _decimals;
totalSupply = _totalSupply;
// The initial balance of tokens is assigned to the given token holder address.
balances[_initialTokenHolder] = _totalSupply;
allowed[_initialTokenHolder][_initialTokenHolder] = balances[_initialTokenHolder];
// Per EIP20, the constructor should fire a Transfer event if tokens are assigned to an account.
emit Transfer(0x0, _initialTokenHolder, _totalSupply);
}
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
return allowed[_owner][_spender];
}
function transfer(address _to, uint256 _value) public returns (bool success) {
if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
} else {
return false;
}
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
balances[_from] = balances[_from].sub(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(_from, _to, _value);
return true;
} else {
return false;
}
}
function approve(address _spender, uint256 _value) public returns (bool success) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
}
// ----------------------------------------------------------------------------
// FinalizableToken - Extension to ERC20Token with ops and finalization
// ----------------------------------------------------------------------------
//
// ERC20 token with the following additions:
// 1. Owner/Ops Ownership
// 2. Finalization
//
contract FinalizableToken is ERC20Token, OpsManaged, Finalizable {
using Math for uint256;
// The constructor will assign the initial token supply to the owner (msg.sender).
constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply) public
ERC20Token(_name, _symbol, _decimals, _totalSupply, msg.sender)
Finalizable()
{
}
function transfer(address _to, uint256 _value) public returns (bool success) {
validateTransfer(msg.sender, _to);
return super.transfer(_to, _value);
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
validateTransfer(msg.sender, _to);
return super.transferFrom(_from, _to, _value);
}
function validateTransfer(address _sender, address _to) internal view {
// Once the token is finalized, everybody can transfer tokens.
if (finalized == FinalizableState.Finalized) {
return;
}
if (isOwner(_to)) {
return;
}
// Before the token is finalized, only owner and ops are allowed to initiate transfers.
// This allows them to move tokens while the sale is still in private sale.
require(isOwnerOrOps(_sender), 'Require is owner or ops allowed to initiate transfer');
}
}
// ----------------------------------------------------------------------------
// PBTT Token Contract Configuration
// ----------------------------------------------------------------------------
contract PBTTTokenConfig {
string internal constant TOKEN_SYMBOL = 'PBTT';
string internal constant TOKEN_NAME = 'Purple Butterfly Token (PBTT)';
uint8 internal constant TOKEN_DECIMALS = 3;
uint256 internal constant DECIMALSFACTOR = 10**uint256(TOKEN_DECIMALS);
uint256 internal constant TOKEN_TOTALSUPPLY = 1000000000 * DECIMALSFACTOR;
}
// ----------------------------------------------------------------------------
// PBTT Token Contract
// ----------------------------------------------------------------------------
contract PBTTToken is FinalizableToken, PBTTTokenConfig {
uint256 public buyPriceEth = 0.0002 ether; // Buy price for PBTT
uint256 public sellPriceEth = 0.0001 ether; // Sell price for PBTT
uint256 public gasForPBTT = 0.005 ether; // Eth from contract against PBTT to pay tx (10 times sellPriceEth)
uint256 public PBTTForGas = 1; // PBTT to contract against eth to pay tx
uint256 public gasReserve = 1 ether; // Eth amount that remains in the contract for gas and can't be sold
// Minimal eth balance of sender and recipient, ensure that no account receiving
// the token has less than the necessary Ether to pay the fees
uint256 public minBalanceForAccounts = 0.005 ether;
uint256 public totalTokenSold = 0;
enum HaltState {
Unhalted,
Halted
}
HaltState public halts;
constructor() public
FinalizableToken(TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS, TOKEN_TOTALSUPPLY)
{
halts = HaltState.Unhalted;
finalized = FinalizableState.None;
}
function transfer(address _to, uint256 _value) public returns (bool success) {
require(halts == HaltState.Unhalted, 'Require smart contract is not in halted state');
// Prevents drain and spam
require(_value >= PBTTForGas, 'Token amount is not enough to transfer');
if (!isOwnerOrOps(msg.sender) && _to == address(this)) {
// Trade PBTT against eth by sending to the token contract
sellPBTTAgainstEther(_value);
return true;
} else {
if(isOwnerOrOps(msg.sender)) {
return super.transferFrom(owner, _to, _value);
}
return super.transfer(_to, _value);
}
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(halts == HaltState.Unhalted, 'Require smart contract is not in halted state');
return super.transferFrom(_from, _to, _value);
}
//Change PPBT Selling and Buy Price
function setEtherPrices(uint256 newBuyPriceEth, uint256 newSellPriceEth) public onlyOwnerOrOps {
// Set prices to buy and sell PBTT
buyPriceEth = newBuyPriceEth;
sellPriceEth = newSellPriceEth;
}
function setGasForPBTT(uint256 newGasAmountInWei) public onlyOwnerOrOps {
gasForPBTT = newGasAmountInWei;
}
//set PBTT to contract against eth to pay tx
function setPBTTForGas(uint256 newPBTTAmount) public onlyOwnerOrOps {
PBTTForGas = newPBTTAmount;
}
function setGasReserve(uint256 newGasReserveInWei) public onlyOwnerOrOps {
gasReserve = newGasReserveInWei;
}
function setMinBalance(uint256 minimumBalanceInWei) public onlyOwnerOrOps {
minBalanceForAccounts = minimumBalanceInWei;
}
function getTokenRemaining() public view returns (uint256 total){
return (TOKEN_TOTALSUPPLY.div(DECIMALSFACTOR)).sub(totalTokenSold);
}
/* User buys PBTT and pays in Ether */
function buyPBTTAgainstEther() private returns (uint256 tokenAmount) {
// Avoid dividing 0, sending small amounts and spam
require(buyPriceEth > 0, 'buyPriceEth must be > 0');
require(msg.value >= buyPriceEth, 'Transfer money must be enough for 1 token');
// Calculate the amount of PBTT
tokenAmount = (msg.value.mul(DECIMALSFACTOR)).div(buyPriceEth);
// Check if it has enough to sell
require(balances[owner] >= tokenAmount, 'Not enough token balance');
// Add the amount to buyer's balance
balances[msg.sender] = balances[msg.sender].add(tokenAmount);
// Subtract amount from PBTT balance
balances[owner] = balances[owner].sub(tokenAmount);
// Execute an event reflecting the change
emit Transfer(owner, msg.sender, tokenAmount);
totalTokenSold = totalTokenSold + tokenAmount;
return tokenAmount;
}
function sellPBTTAgainstEther(uint256 amount) private returns (uint256 revenue) {
// Avoid selling and spam
require(sellPriceEth > 0, 'sellPriceEth must be > 0');
require(amount >= PBTTForGas, 'Sell token amount must be larger than PBTTForGas value');
// Check if the sender has enough to sell
require(balances[msg.sender] >= amount, 'Token balance is not enough to sold');
require(msg.sender.balance >= minBalanceForAccounts, 'Seller balance must be enough to pay the transaction fee');
// Revenue = eth that will be send to the user
revenue = (amount.div(DECIMALSFACTOR)).mul(sellPriceEth);
// Keep min amount of eth in contract to provide gas for transactions
uint256 remaining = address(this).balance.sub(revenue);
require(remaining >= gasReserve, 'Remaining contract balance is not enough for reserved');
// Add the token amount to owner balance
balances[owner] = balances[owner].add(amount);
// Subtract the amount from seller's token balance
balances[msg.sender] = balances[msg.sender].sub(amount);
// transfer eth
// 'msg.sender.transfer' means the contract sends ether to 'msg.sender'
// It's important to do this last to avoid recursion attacks
msg.sender.transfer(revenue);
// Execute an event reflecting on the change
emit Transfer(msg.sender, owner, amount);
return revenue;
}
// Allows a token holder to burn tokens. Once burned, tokens are permanently
// removed from the total supply.
function burn(uint256 _amount) public returns (bool success) {
require(_amount > 0, 'Token amount to burn must be larger than 0');
address account = msg.sender;
require(_amount <= balanceOf(account), 'You cannot burn token you dont have');
balances[account] = balances[account].sub(_amount);
totalSupply = totalSupply.sub(_amount);
return true;
}
// Allows the owner to reclaim tokens that are assigned to the token contract itself.
function reclaimTokens() public onlyOwner returns (bool success) {
address account = address(this);
uint256 amount = balanceOf(account);
if (amount == 0) {
return false;
}
balances[account] = balances[account].sub(amount);
balances[owner] = balances[owner].add(amount);
return true;
}
// Allows the owner to withdraw that are assigned to the token contract itself.
function withdrawFundToOwner() public onlyOwner {
// transfer to owner
uint256 eth = address(this).balance;
owner.transfer(eth);
}
// Allows the owner to withdraw all fund from contract to owner's specific adress
function withdrawFundToAddress(address _ownerOtherAdress) public onlyOwner {
// transfer to owner
uint256 eth = address(this).balance;
_ownerOtherAdress.transfer(eth);
}
/* Halts or unhalts direct trades without the sell/buy functions below */
function haltsTrades() public onlyOwnerOrOps returns (bool success) {
halts = HaltState.Halted;
return true;
}
function unhaltsTrades() public onlyOwnerOrOps returns (bool success) {
halts = HaltState.Unhalted;
return true;
}
function() public payable {
if(msg.sender != owner) {
require(finalized == FinalizableState.Finalized, 'Require smart contract is finalized');
require(halts == HaltState.Unhalted, 'Require smart contract is not halted');
buyPBTTAgainstEther();
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"sellPriceEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPBTTAmount","type":"uint256"}],"name":"setPBTTForGas","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newGasAmountInWei","type":"uint256"}],"name":"setGasForPBTT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PBTTForGas","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":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newGasReserveInWei","type":"uint256"}],"name":"setGasReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unhaltsTrades","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gasForPBTT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawFundToOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reclaimTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minBalanceForAccounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newBuyPriceEth","type":"uint256"},{"name":"newSellPriceEth","type":"uint256"}],"name":"setEtherPrices","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPriceEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOpsAddress","type":"address"}],"name":"setOpsAddress","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"opsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"halts","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwnerOrOps","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"initiateOwnershipTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"haltsTrades","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ownerOtherAdress","type":"address"}],"name":"withdrawFundToAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"minimumBalanceInWei","type":"uint256"}],"name":"setMinBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokenRemaining","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"completeOwnershipTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gasReserve","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOps","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
608060405265b5e620f48000600955655af3107a4000600a556611c37937e08000600b556001600c55670de0b6b3a7640000600d556611c37937e08000600e556000600f553480156200005157600080fd5b50604080518082018252601d81527f507572706c6520427574746572666c7920546f6b656e2028504254542900000060208083019182528351808501909452600484527f504254540000000000000000000000000000000000000000000000000000000090840152815191929160039164e8d4a510009185918591859185913391620000e19160009190620001a7565b508351620000f7906001906020870190620001a7565b506002805460ff191660ff85161790556003829055600160a060020a0381166000818152600460209081526040808320869055600582528083208252808320869055805186815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505060068054600160a060020a0319163317905550506008805460a060020a60ff021916905550506010805460ff19169055506200024c915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ea57805160ff19168380011785556200021a565b828001600101855582156200021a579182015b828111156200021a578251825591602001919060010190620001fd565b50620002289291506200022c565b5090565b6200024991905b8082111562000228576000815560010162000233565b90565b61231d806200025c6000396000f3006080604052600436106101ed5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663015129a1811461032d57806302259b07146103545780630615f7c31461036c57806306a865391461038457806306fdde0314610399578063095ea7b3146104235780630d5260e71461045b5780631609a3971461047357806318160ddd1461048857806323b872dd1461049d57806328effe67146104c75780632f54bf6e146104dc578063313ce567146104fd57806339909f0b146105285780633c54caa51461053d57806342966c681461055257806347f1d8d71461056a5780634b6a33341461057f5780634bb278f31461059a5780635639bb3c146105af578063707789c5146105c457806370a08231146105e55780638da5cb5b146106065780638ea643761461063757806395d89b411461064c578063a5a899ec14610661578063a9059cbb1461069a578063adcf59ee146106be578063b3f05b97146106df578063b5f7f636146106f4578063c0b6f56114610709578063c27753471461072a578063c729a5671461073f578063c91d956c14610760578063d153b60c14610778578063d17866101461078d578063dd62ed3e146107a2578063e71a7811146107c9578063eea7570e146107de578063ef326c6d146107f3575b600654600160a060020a0316331461032b57600160085460a060020a900460ff16600181111561021957fe5b14610294576040805160e560020a62461bcd02815260206004820152602360248201527f5265717569726520736d61727420636f6e74726163742069732066696e616c6960448201527f7a65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600060105460ff1660018111156102a757fe5b14610321576040805160e560020a62461bcd028152602060048201526024808201527f5265717569726520736d61727420636f6e7472616374206973206e6f7420686160448201527f6c74656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610329610814565b505b005b34801561033957600080fd5b50610342610a38565b60408051918252519081900360200190f35b34801561036057600080fd5b5061032b600435610a3e565b34801561037857600080fd5b5061032b600435610a90565b34801561039057600080fd5b50610342610ae2565b3480156103a557600080fd5b506103ae610ae8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103e85781810151838201526020016103d0565b50505050905090810190601f1680156104155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561042f57600080fd5b50610447600160a060020a0360043516602435610b76565b604080519115158252519081900360200190f35b34801561046757600080fd5b5061032b600435610bdd565b34801561047f57600080fd5b50610447610c2f565b34801561049457600080fd5b50610342610c9a565b3480156104a957600080fd5b50610447600160a060020a0360043581169060243516604435610ca0565b3480156104d357600080fd5b50610342610d44565b3480156104e857600080fd5b50610447600160a060020a0360043516610d4a565b34801561050957600080fd5b50610512610d5e565b6040805160ff9092168252519081900360200190f35b34801561053457600080fd5b5061032b610d67565b34801561054957600080fd5b50610447610e08565b34801561055e57600080fd5b50610447600435610f10565b34801561057657600080fd5b50610342611079565b34801561058b57600080fd5b5061032b60043560243561107f565b3480156105a657600080fd5b506104476110d7565b3480156105bb57600080fd5b506103426111fa565b3480156105d057600080fd5b50610447600160a060020a0360043516611200565b3480156105f157600080fd5b50610342600160a060020a0360043516611380565b34801561061257600080fd5b5061061b61139b565b60408051600160a060020a039092168252519081900360200190f35b34801561064357600080fd5b5061061b6113aa565b34801561065857600080fd5b506103ae6113b9565b34801561066d57600080fd5b50610676611413565b6040518082600181111561068657fe5b60ff16815260200191505060405180910390f35b3480156106a657600080fd5b50610447600160a060020a036004351660243561141c565b3480156106ca57600080fd5b50610447600160a060020a0360043516611597565b3480156106eb57600080fd5b506106766115b1565b34801561070057600080fd5b506103426115c1565b34801561071557600080fd5b50610447600160a060020a03600435166115c7565b34801561073657600080fd5b506104476117cd565b34801561074b57600080fd5b5061032b600160a060020a036004351661182f565b34801561076c57600080fd5b5061032b6004356118cf565b34801561078457600080fd5b5061061b611921565b34801561079957600080fd5b50610342611930565b3480156107ae57600080fd5b50610342600160a060020a0360043581169060243516611962565b3480156107d557600080fd5b5061044761198d565b3480156107ea57600080fd5b50610342611a49565b3480156107ff57600080fd5b50610447600160a060020a0360043516611a4f565b600080600954111515610871576040805160e560020a62461bcd02815260206004820152601760248201527f6275795072696365457468206d757374206265203e2030000000000000000000604482015290519081900360640190fd5b6009543410156108f1576040805160e560020a62461bcd02815260206004820152602960248201527f5472616e73666572206d6f6e6579206d75737420626520656e6f75676820666f60448201527f72203120746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6009546109169061090a346103e863ffffffff611a7c16565b9063ffffffff611b0016565b600654600160a060020a031660009081526004602052604090205490915081111561098b576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63650000000000000000604482015290519081900360640190fd5b336000908152600460205260409020546109ab908263ffffffff611b1516565b3360009081526004602052604080822092909255600654600160a060020a0316815220546109df908263ffffffff611b7216565b60068054600160a060020a0390811660009081526004602090815260409182902094909455915482518581529251339491909216926000805160206122d2833981519152929081900390910190a3600f80548201905590565b600a5481565b610a4733611597565b1515610a8b576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600c55565b610a9933611597565b1515610add576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600b55565b600c5481565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b6e5780601f10610b4357610100808354040283529160200191610b6e565b820191906000526020600020905b815481529060010190602001808311610b5157829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610be633611597565b1515610c2a576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600d55565b6000610c3a33611597565b1515610c7e576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b601080546000919060ff19166001835b02179055506001905090565b60035481565b60008060105460ff166001811115610cb457fe5b14610d2f576040805160e560020a62461bcd02815260206004820152602d60248201527f5265717569726520736d61727420636f6e7472616374206973206e6f7420696e60448201527f2068616c74656420737461746500000000000000000000000000000000000000606482015290519081900360840190fd5b610d3a848484611bd2565b90505b9392505050565b600b5481565b600654600160a060020a0390811691161490565b60025460ff1681565b6000610d7233610d4a565b1515600114610dc8576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b50600654604051303191600160a060020a03169082156108fc029083906000818181858888f19350505050158015610e04573d6000803e3d6000fd5b5050565b6000806000610e1633610d4a565b1515600114610e6c576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b309150610e7882611380565b9050801515610e8a5760009250610f0b565b600160a060020a038216600090815260046020526040902054610eb3908263ffffffff611b7216565b600160a060020a038084166000908152600460205260408082209390935560065490911681522054610eeb908263ffffffff611b1516565b600654600160a060020a0316600090815260046020526040902055600192505b505090565b600080808311610f90576040805160e560020a62461bcd02815260206004820152602a60248201527f546f6b656e20616d6f756e7420746f206275726e206d757374206265206c617260448201527f676572207468616e203000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5033610f9b81611380565b831115611018576040805160e560020a62461bcd02815260206004820152602360248201527f596f752063616e6e6f74206275726e20746f6b656e20796f7520646f6e74206860448201527f6176650000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600090815260046020526040902054611041908463ffffffff611b7216565b600160a060020a03821660009081526004602052604090205560035461106d908463ffffffff611b7216565b60035550600192915050565b600e5481565b61108833611597565b15156110cc576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600991909155600a55565b60006110e233610d4a565b1515600114611138576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b600060085460a060020a900460ff16600181111561115257fe5b146111a7576040805160e560020a62461bcd02815260206004820152601260248201527f52657175697265202166696e616c697a65640000000000000000000000000000604482015290519081900360640190fd5b6008805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a150600190565b60095481565b600061120b33610d4a565b1515600114611261576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b600654600160a060020a03838116911614156112c7576040805160e560020a62461bcd02815260206004820152601e60248201527f52657175697265206e65774f70734164647265737320213d206f776e65720000604482015290519081900360640190fd5b600160a060020a03821630141561134e576040805160e560020a62461bcd02815260206004820152602660248201527f52657175697265206e65774f70734164647265737320213d206164647265737360448201527f2874686973290000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060088054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600160a060020a031660009081526004602052604090205490565b600654600160a060020a031681565b600854600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b6e5780601f10610b4357610100808354040283529160200191610b6e565b60105460ff1681565b60008060105460ff16600181111561143057fe5b146114ab576040805160e560020a62461bcd02815260206004820152602d60248201527f5265717569726520736d61727420636f6e7472616374206973206e6f7420696e60448201527f2068616c74656420737461746500000000000000000000000000000000000000606482015290519081900360840190fd5b600c5482101561152b576040805160e560020a62461bcd02815260206004820152602660248201527f546f6b656e20616d6f756e74206973206e6f7420656e6f75676820746f20747260448201527f616e736665720000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61153433611597565b1580156115495750600160a060020a03831630145b156115615761155782611be9565b5060019050610bd7565b61156a33611597565b1561158d5760065461158690600160a060020a03168484611bd2565b9050610bd7565b6115868383611f68565b60006115a282610d4a565b80610bd75750610bd782611a4f565b60085460a060020a900460ff1681565b600f5481565b60006115d233610d4a565b1515600114611628576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b600160a060020a03821615156116ae576040805160e560020a62461bcd02815260206004820152602360248201527f526571756972652070726f706f7365644f776e657220213d206164647265737360448201527f2830290000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038216301415611735576040805160e560020a62461bcd02815260206004820152602660248201527f526571756972652070726f706f7365644f776e657220213d206164647265737360448201527f2874686973290000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600654600160a060020a038381169116141561179b576040805160e560020a62461bcd02815260206004820152601e60248201527f526571756972652070726f706f7365644f776e657220213d206f776e65720000604482015290519081900360640190fd5b5060078054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60006117d833611597565b151561181c576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b601080546001919060ff19168280610c8e565b600061183a33610d4a565b1515600114611890576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b50604051303190600160a060020a0383169082156108fc029083906000818181858888f193505050501580156118ca573d6000803e3d6000fd5b505050565b6118d833611597565b151561191c576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600e55565b600754600160a060020a031681565b600f5460009061195d9061195164e8d4a510006103e863ffffffff611b0016565b9063ffffffff611b7216565b905090565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600754600090600160a060020a03163314611a18576040805160e560020a62461bcd02815260206004820152602360248201527f52657175697265206d73672e73656e646572203d3d2070726f706f7365644f7760448201527f6e65720000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b506006805473ffffffffffffffffffffffffffffffffffffffff199081163317909155600780549091169055600190565b600d5481565b600854600090600160a060020a031615801590610bd7575050600854600160a060020a0390811691161490565b600080831515611a8f5760009150611af9565b50828202828482811515611a9f57fe5b0414611af5576040805160e560020a62461bcd02815260206004820152601260248201527f526571756972652072202f2061203d3d20620000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b60008183811515611b0d57fe5b049392505050565b600082820183811015611af5576040805160e560020a62461bcd02815260206004820152600e60248201527f526571756972652072203e3d2061000000000000000000000000000000000000604482015290519081900360640190fd5b600081831015611bcc576040805160e560020a62461bcd02815260206004820152600e60248201527f526571756972652061203e3d2062000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000611bde3384611f7e565b610d3a84848461203b565b6000806000600a54111515611c48576040805160e560020a62461bcd02815260206004820152601860248201527f73656c6c5072696365457468206d757374206265203e20300000000000000000604482015290519081900360640190fd5b600c54831015611cc8576040805160e560020a62461bcd02815260206004820152603660248201527f53656c6c20746f6b656e20616d6f756e74206d757374206265206c617267657260448201527f207468616e2050425454466f724761732076616c756500000000000000000000606482015290519081900360840190fd5b33600090815260046020526040902054831115611d55576040805160e560020a62461bcd02815260206004820152602360248201527f546f6b656e2062616c616e6365206973206e6f7420656e6f75676820746f207360448201527f6f6c640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600e5433311015611dd6576040805160e560020a62461bcd02815260206004820152603860248201527f53656c6c65722062616c616e6365206d75737420626520656e6f75676820746f60448201527f2070617920746865207472616e73616374696f6e206665650000000000000000606482015290519081900360840190fd5b600a54611dfb90611def856103e863ffffffff611b0016565b9063ffffffff611a7c16565b9150611e0e30318363ffffffff611b7216565b600d54909150811015611e91576040805160e560020a62461bcd02815260206004820152603560248201527f52656d61696e696e6720636f6e74726163742062616c616e6365206973206e6f60448201527f7420656e6f75676820666f722072657365727665640000000000000000000000606482015290519081900360840190fd5b600654600160a060020a0316600090815260046020526040902054611ebc908463ffffffff611b1516565b600654600160a060020a0316600090815260046020526040808220929092553381522054611ef0908463ffffffff611b7216565b33600081815260046020526040808220939093559151909184156108fc02918591818181858888f19350505050158015611f2e573d6000803e3d6000fd5b50600654604080518581529051600160a060020a039092169133916000805160206122d2833981519152919081900360200190a350919050565b6000611f743384611f7e565b610d3d83836121af565b600160085460a060020a900460ff166001811115611f9857fe5b1415611fa357610e04565b611fac81610d4a565b15611fb657610e04565b611fbf82611597565b1515610e04576040805160e560020a62461bcd02815260206004820152603460248201527f52657175697265206973206f776e6572206f72206f707320616c6c6f7765642060448201527f746f20696e697469617465207472616e73666572000000000000000000000000606482015290519081900360840190fd5b600160a060020a03831660009081526004602052604081205482118015906120865750600160a060020a03841660009081526005602090815260408083203384529091529020548211155b80156120ab5750600160a060020a038316600090815260046020526040902054828101115b156121a757600160a060020a0384166000908152600460205260409020546120d9908363ffffffff611b7216565b600160a060020a0385166000908152600460209081526040808320939093556005815282822033835290522054612116908363ffffffff611b7216565b600160a060020a03808616600090815260056020908152604080832033845282528083209490945591861681526004909152205461215a908363ffffffff611b1516565b600160a060020a0380851660008181526004602090815260409182902094909455805186815290519193928816926000805160206122d283398151915292918290030190a3506001610d3d565b506000610d3d565b3360009081526004602052604081205482118015906121e75750600160a060020a038316600090815260046020526040902054828101115b15612289573360009081526004602052604090205461220c908363ffffffff611b7216565b3360009081526004602052604080822092909255600160a060020a0385168152205461223e908363ffffffff611b1516565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206122d28339815191529281900390910190a3506001610bd7565b506000610bd7560052657175697265206f776e657220746f2065786563757465207472616e73616352657175697265206f6e6c79206f776e6572206f72206f707300000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820b2d27dd2545f7b783fc57e7762d2f1c51aaff50fb53eab124809c932a0bf0b430029
Deployed Bytecode
0x6080604052600436106101ed5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663015129a1811461032d57806302259b07146103545780630615f7c31461036c57806306a865391461038457806306fdde0314610399578063095ea7b3146104235780630d5260e71461045b5780631609a3971461047357806318160ddd1461048857806323b872dd1461049d57806328effe67146104c75780632f54bf6e146104dc578063313ce567146104fd57806339909f0b146105285780633c54caa51461053d57806342966c681461055257806347f1d8d71461056a5780634b6a33341461057f5780634bb278f31461059a5780635639bb3c146105af578063707789c5146105c457806370a08231146105e55780638da5cb5b146106065780638ea643761461063757806395d89b411461064c578063a5a899ec14610661578063a9059cbb1461069a578063adcf59ee146106be578063b3f05b97146106df578063b5f7f636146106f4578063c0b6f56114610709578063c27753471461072a578063c729a5671461073f578063c91d956c14610760578063d153b60c14610778578063d17866101461078d578063dd62ed3e146107a2578063e71a7811146107c9578063eea7570e146107de578063ef326c6d146107f3575b600654600160a060020a0316331461032b57600160085460a060020a900460ff16600181111561021957fe5b14610294576040805160e560020a62461bcd02815260206004820152602360248201527f5265717569726520736d61727420636f6e74726163742069732066696e616c6960448201527f7a65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600060105460ff1660018111156102a757fe5b14610321576040805160e560020a62461bcd028152602060048201526024808201527f5265717569726520736d61727420636f6e7472616374206973206e6f7420686160448201527f6c74656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610329610814565b505b005b34801561033957600080fd5b50610342610a38565b60408051918252519081900360200190f35b34801561036057600080fd5b5061032b600435610a3e565b34801561037857600080fd5b5061032b600435610a90565b34801561039057600080fd5b50610342610ae2565b3480156103a557600080fd5b506103ae610ae8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103e85781810151838201526020016103d0565b50505050905090810190601f1680156104155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561042f57600080fd5b50610447600160a060020a0360043516602435610b76565b604080519115158252519081900360200190f35b34801561046757600080fd5b5061032b600435610bdd565b34801561047f57600080fd5b50610447610c2f565b34801561049457600080fd5b50610342610c9a565b3480156104a957600080fd5b50610447600160a060020a0360043581169060243516604435610ca0565b3480156104d357600080fd5b50610342610d44565b3480156104e857600080fd5b50610447600160a060020a0360043516610d4a565b34801561050957600080fd5b50610512610d5e565b6040805160ff9092168252519081900360200190f35b34801561053457600080fd5b5061032b610d67565b34801561054957600080fd5b50610447610e08565b34801561055e57600080fd5b50610447600435610f10565b34801561057657600080fd5b50610342611079565b34801561058b57600080fd5b5061032b60043560243561107f565b3480156105a657600080fd5b506104476110d7565b3480156105bb57600080fd5b506103426111fa565b3480156105d057600080fd5b50610447600160a060020a0360043516611200565b3480156105f157600080fd5b50610342600160a060020a0360043516611380565b34801561061257600080fd5b5061061b61139b565b60408051600160a060020a039092168252519081900360200190f35b34801561064357600080fd5b5061061b6113aa565b34801561065857600080fd5b506103ae6113b9565b34801561066d57600080fd5b50610676611413565b6040518082600181111561068657fe5b60ff16815260200191505060405180910390f35b3480156106a657600080fd5b50610447600160a060020a036004351660243561141c565b3480156106ca57600080fd5b50610447600160a060020a0360043516611597565b3480156106eb57600080fd5b506106766115b1565b34801561070057600080fd5b506103426115c1565b34801561071557600080fd5b50610447600160a060020a03600435166115c7565b34801561073657600080fd5b506104476117cd565b34801561074b57600080fd5b5061032b600160a060020a036004351661182f565b34801561076c57600080fd5b5061032b6004356118cf565b34801561078457600080fd5b5061061b611921565b34801561079957600080fd5b50610342611930565b3480156107ae57600080fd5b50610342600160a060020a0360043581169060243516611962565b3480156107d557600080fd5b5061044761198d565b3480156107ea57600080fd5b50610342611a49565b3480156107ff57600080fd5b50610447600160a060020a0360043516611a4f565b600080600954111515610871576040805160e560020a62461bcd02815260206004820152601760248201527f6275795072696365457468206d757374206265203e2030000000000000000000604482015290519081900360640190fd5b6009543410156108f1576040805160e560020a62461bcd02815260206004820152602960248201527f5472616e73666572206d6f6e6579206d75737420626520656e6f75676820666f60448201527f72203120746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6009546109169061090a346103e863ffffffff611a7c16565b9063ffffffff611b0016565b600654600160a060020a031660009081526004602052604090205490915081111561098b576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63650000000000000000604482015290519081900360640190fd5b336000908152600460205260409020546109ab908263ffffffff611b1516565b3360009081526004602052604080822092909255600654600160a060020a0316815220546109df908263ffffffff611b7216565b60068054600160a060020a0390811660009081526004602090815260409182902094909455915482518581529251339491909216926000805160206122d2833981519152929081900390910190a3600f80548201905590565b600a5481565b610a4733611597565b1515610a8b576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600c55565b610a9933611597565b1515610add576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600b55565b600c5481565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b6e5780601f10610b4357610100808354040283529160200191610b6e565b820191906000526020600020905b815481529060010190602001808311610b5157829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610be633611597565b1515610c2a576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600d55565b6000610c3a33611597565b1515610c7e576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b601080546000919060ff19166001835b02179055506001905090565b60035481565b60008060105460ff166001811115610cb457fe5b14610d2f576040805160e560020a62461bcd02815260206004820152602d60248201527f5265717569726520736d61727420636f6e7472616374206973206e6f7420696e60448201527f2068616c74656420737461746500000000000000000000000000000000000000606482015290519081900360840190fd5b610d3a848484611bd2565b90505b9392505050565b600b5481565b600654600160a060020a0390811691161490565b60025460ff1681565b6000610d7233610d4a565b1515600114610dc8576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b50600654604051303191600160a060020a03169082156108fc029083906000818181858888f19350505050158015610e04573d6000803e3d6000fd5b5050565b6000806000610e1633610d4a565b1515600114610e6c576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b309150610e7882611380565b9050801515610e8a5760009250610f0b565b600160a060020a038216600090815260046020526040902054610eb3908263ffffffff611b7216565b600160a060020a038084166000908152600460205260408082209390935560065490911681522054610eeb908263ffffffff611b1516565b600654600160a060020a0316600090815260046020526040902055600192505b505090565b600080808311610f90576040805160e560020a62461bcd02815260206004820152602a60248201527f546f6b656e20616d6f756e7420746f206275726e206d757374206265206c617260448201527f676572207468616e203000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5033610f9b81611380565b831115611018576040805160e560020a62461bcd02815260206004820152602360248201527f596f752063616e6e6f74206275726e20746f6b656e20796f7520646f6e74206860448201527f6176650000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600090815260046020526040902054611041908463ffffffff611b7216565b600160a060020a03821660009081526004602052604090205560035461106d908463ffffffff611b7216565b60035550600192915050565b600e5481565b61108833611597565b15156110cc576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600991909155600a55565b60006110e233610d4a565b1515600114611138576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b600060085460a060020a900460ff16600181111561115257fe5b146111a7576040805160e560020a62461bcd02815260206004820152601260248201527f52657175697265202166696e616c697a65640000000000000000000000000000604482015290519081900360640190fd5b6008805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a150600190565b60095481565b600061120b33610d4a565b1515600114611261576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b600654600160a060020a03838116911614156112c7576040805160e560020a62461bcd02815260206004820152601e60248201527f52657175697265206e65774f70734164647265737320213d206f776e65720000604482015290519081900360640190fd5b600160a060020a03821630141561134e576040805160e560020a62461bcd02815260206004820152602660248201527f52657175697265206e65774f70734164647265737320213d206164647265737360448201527f2874686973290000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060088054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600160a060020a031660009081526004602052604090205490565b600654600160a060020a031681565b600854600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b6e5780601f10610b4357610100808354040283529160200191610b6e565b60105460ff1681565b60008060105460ff16600181111561143057fe5b146114ab576040805160e560020a62461bcd02815260206004820152602d60248201527f5265717569726520736d61727420636f6e7472616374206973206e6f7420696e60448201527f2068616c74656420737461746500000000000000000000000000000000000000606482015290519081900360840190fd5b600c5482101561152b576040805160e560020a62461bcd02815260206004820152602660248201527f546f6b656e20616d6f756e74206973206e6f7420656e6f75676820746f20747260448201527f616e736665720000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61153433611597565b1580156115495750600160a060020a03831630145b156115615761155782611be9565b5060019050610bd7565b61156a33611597565b1561158d5760065461158690600160a060020a03168484611bd2565b9050610bd7565b6115868383611f68565b60006115a282610d4a565b80610bd75750610bd782611a4f565b60085460a060020a900460ff1681565b600f5481565b60006115d233610d4a565b1515600114611628576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b600160a060020a03821615156116ae576040805160e560020a62461bcd02815260206004820152602360248201527f526571756972652070726f706f7365644f776e657220213d206164647265737360448201527f2830290000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038216301415611735576040805160e560020a62461bcd02815260206004820152602660248201527f526571756972652070726f706f7365644f776e657220213d206164647265737360448201527f2874686973290000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600654600160a060020a038381169116141561179b576040805160e560020a62461bcd02815260206004820152601e60248201527f526571756972652070726f706f7365644f776e657220213d206f776e65720000604482015290519081900360640190fd5b5060078054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60006117d833611597565b151561181c576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b601080546001919060ff19168280610c8e565b600061183a33610d4a565b1515600114611890576040805160e560020a62461bcd02815260206004820152602480820152600080516020612292833981519152604482015260e160020a633a34b7b702606482015290519081900360840190fd5b50604051303190600160a060020a0383169082156108fc029083906000818181858888f193505050501580156118ca573d6000803e3d6000fd5b505050565b6118d833611597565b151561191c576040805160e560020a62461bcd02815260206004820152601960248201526000805160206122b2833981519152604482015290519081900360640190fd5b600e55565b600754600160a060020a031681565b600f5460009061195d9061195164e8d4a510006103e863ffffffff611b0016565b9063ffffffff611b7216565b905090565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600754600090600160a060020a03163314611a18576040805160e560020a62461bcd02815260206004820152602360248201527f52657175697265206d73672e73656e646572203d3d2070726f706f7365644f7760448201527f6e65720000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b506006805473ffffffffffffffffffffffffffffffffffffffff199081163317909155600780549091169055600190565b600d5481565b600854600090600160a060020a031615801590610bd7575050600854600160a060020a0390811691161490565b600080831515611a8f5760009150611af9565b50828202828482811515611a9f57fe5b0414611af5576040805160e560020a62461bcd02815260206004820152601260248201527f526571756972652072202f2061203d3d20620000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b60008183811515611b0d57fe5b049392505050565b600082820183811015611af5576040805160e560020a62461bcd02815260206004820152600e60248201527f526571756972652072203e3d2061000000000000000000000000000000000000604482015290519081900360640190fd5b600081831015611bcc576040805160e560020a62461bcd02815260206004820152600e60248201527f526571756972652061203e3d2062000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000611bde3384611f7e565b610d3a84848461203b565b6000806000600a54111515611c48576040805160e560020a62461bcd02815260206004820152601860248201527f73656c6c5072696365457468206d757374206265203e20300000000000000000604482015290519081900360640190fd5b600c54831015611cc8576040805160e560020a62461bcd02815260206004820152603660248201527f53656c6c20746f6b656e20616d6f756e74206d757374206265206c617267657260448201527f207468616e2050425454466f724761732076616c756500000000000000000000606482015290519081900360840190fd5b33600090815260046020526040902054831115611d55576040805160e560020a62461bcd02815260206004820152602360248201527f546f6b656e2062616c616e6365206973206e6f7420656e6f75676820746f207360448201527f6f6c640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600e5433311015611dd6576040805160e560020a62461bcd02815260206004820152603860248201527f53656c6c65722062616c616e6365206d75737420626520656e6f75676820746f60448201527f2070617920746865207472616e73616374696f6e206665650000000000000000606482015290519081900360840190fd5b600a54611dfb90611def856103e863ffffffff611b0016565b9063ffffffff611a7c16565b9150611e0e30318363ffffffff611b7216565b600d54909150811015611e91576040805160e560020a62461bcd02815260206004820152603560248201527f52656d61696e696e6720636f6e74726163742062616c616e6365206973206e6f60448201527f7420656e6f75676820666f722072657365727665640000000000000000000000606482015290519081900360840190fd5b600654600160a060020a0316600090815260046020526040902054611ebc908463ffffffff611b1516565b600654600160a060020a0316600090815260046020526040808220929092553381522054611ef0908463ffffffff611b7216565b33600081815260046020526040808220939093559151909184156108fc02918591818181858888f19350505050158015611f2e573d6000803e3d6000fd5b50600654604080518581529051600160a060020a039092169133916000805160206122d2833981519152919081900360200190a350919050565b6000611f743384611f7e565b610d3d83836121af565b600160085460a060020a900460ff166001811115611f9857fe5b1415611fa357610e04565b611fac81610d4a565b15611fb657610e04565b611fbf82611597565b1515610e04576040805160e560020a62461bcd02815260206004820152603460248201527f52657175697265206973206f776e6572206f72206f707320616c6c6f7765642060448201527f746f20696e697469617465207472616e73666572000000000000000000000000606482015290519081900360840190fd5b600160a060020a03831660009081526004602052604081205482118015906120865750600160a060020a03841660009081526005602090815260408083203384529091529020548211155b80156120ab5750600160a060020a038316600090815260046020526040902054828101115b156121a757600160a060020a0384166000908152600460205260409020546120d9908363ffffffff611b7216565b600160a060020a0385166000908152600460209081526040808320939093556005815282822033835290522054612116908363ffffffff611b7216565b600160a060020a03808616600090815260056020908152604080832033845282528083209490945591861681526004909152205461215a908363ffffffff611b1516565b600160a060020a0380851660008181526004602090815260409182902094909455805186815290519193928816926000805160206122d283398151915292918290030190a3506001610d3d565b506000610d3d565b3360009081526004602052604081205482118015906121e75750600160a060020a038316600090815260046020526040902054828101115b15612289573360009081526004602052604090205461220c908363ffffffff611b7216565b3360009081526004602052604080822092909255600160a060020a0385168152205461223e908363ffffffff611b1516565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206122d28339815191529281900390910190a3506001610bd7565b506000610bd7560052657175697265206f776e657220746f2065786563757465207472616e73616352657175697265206f6e6c79206f776e6572206f72206f707300000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820b2d27dd2545f7b783fc57e7762d2f1c51aaff50fb53eab124809c932a0bf0b430029
Swarm Source
bzzr://b2d27dd2545f7b783fc57e7762d2f1c51aaff50fb53eab124809c932a0bf0b43
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.
Add Token to MetaMask (Web3)