ERC-20
Source Code
Overview
Max Total Supply
10,000,000,000 NAKAICHI
Holders
63
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
NAKAICHI
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
/**
*/
// SPDX-License-Identifier: UNLICENSE
/*
****+=-::.....::::::::-=++***#######################**************####%%%%%##################%%%%%%%
****+==-:::.::::::::::-+++**###########################***********#####%%%#########*########%%%%%%%%
**+====-:::::::::::::-=++**#############################**********####%%%%##%%##+=+*++#####%%%%%%%%%
*+===---:::::::::::::=+++***####%%%%#####################*********###%%%%%%%%%*-=++***+#####%%%%%%%%
*====----::::::::::-==+++****###%%#+---=*#################********##%%%%%%%%#+=-=++++*+*###%%%%%%%%%
+======--::::::::--====+++***###%##=*+===--+###############******###%%%%%%##==-=++++=+*+#%%%%%%%%%%%
+==++====--------======+++***######++=========*#############****##########*====++++++=++=#%%%%%%%%%%
++++++++++=============+++****####**++=++==-++=-=++*##########*#*****++=---+==+=+=++++=+=+#%%%%%%%%%
**++++++**++++=========+++**********+=====---=++=---=-:---::::::::::::---=+*+=+--=+*#*==+-=%%%%%%%%%
#**********+++++++++++++************==-===----=*+====-::::------------++=+***===+*###*+===--%%%%%%%%
##***+++++++++++++++++************+++===+**=-:-=+++=--------===-----==+*##***+-=*=*###+=+==:*%%%%%%%
#*+========+++++++++*******+++++++++*+===+*=-:-=++-------==++==--===++++++##*+===+###*+*%=+-=#%%%%%%
#+==---========++++++******++++++++***=-==+**=-=-------==++++=====+++++*++==+*+==+=+#**#==*+-=%%%%%%
*+=---=========++++++******+++++++*****===+*+==-------=+++**++++++++++++++++===+====+++=+*#+-=%%%%%%
*==--========+++++++********+***********----=--------=+++****++++==+++=+++++++===+==+##%#%#+--*%%%%%
+=--========+++++++*******************##+--=--------===+++++++++=====++==========--=+**####+=-=*%%%%
=----======++++++*****************######*---------:::=+++++++=-----==============------=*#*+=-=#%%%%
=------===+++++*************##**####%%%#+-:---------:=++++++=:::--=------==========------=+===-+%%%%
============+*****************#####%%%%#=:--------==-+++++++=:-=+++++====-==++++++====----====--#%%%
===========+*****************#####%%%%%#-:-----#@@%#++======+=+*#@@@@@@%*+++++++++====---:-==---+%%%
=========+++***********#############%%%%=:---==*%%@#*-------=##%%%%%##+-==*+===========----==---=#%%
+=========++***********#############%%%%#---:----===--::----==**==-=-==+++=::::--=====-----==----*%%
*++=======++************###****######%%%%+::..-==--:::::------=+=---=+++=-::...:--------:::-=----=#%
****++===++++++**********************#%%%#=:...:-::----==-------==-:.....:::......:::----:--==----+#
****++++++++++++++********************##%%+......::==++=----:-----:......::::::...::---:----==----=+
*****+++++++++++++*******************###%%*.....-****#*+++::::----:......::::::::----::::---==----=+
****+++++++++++++++++*****************###%#:.::=@@@@@@@@@=:::----:......::::----==-:::::---====--==+
****+++++++++++++++++++****************###*=:::.-%@@@@%#-::::--:-:...:..::------:::::--====++==-====
****+++++++++++++++++++++****************#*+:.:..-*%@%#*+=:::::::.....:-==---:::::---===++*+========
****+++++++***+++++++++++*******************=::..=+**##%#*+=-----+#=-:-===--:::::-===+++***+=======-
********+*******+++++++++***####************+-:::++**####***###**+=======---:---==++***#***+======--
******************++++++***######************+-:..:-=+++++==++++==++++===----==++**######*+==------:
#*************************##########**********=-::::::-====++++***++=========++*#*####***++===---:::
###**********************############**********=-:::::::-===++++++========++**##*#****#*+===---:::::
####********************#########**************+=::..:::::::-==========++***#********#*+===---::::::
%#####**********##############*********+*******+=-::::::::::----====+++************#*++=-=----::::::
%%######******###############*****++++++++******+-:::::::::::---==++++******##*##****+======-:::::::
%%%%#####***################****++++++++++++****+=:-----:-------==++++++*+****#%#*+++=----::::::----
%%%%%##############%%#######***++++++++++++******=-:---------=--==+++++++++*##**+===-=---::::----==+
%%%%%###############%#######**++++++++++++*******+-::------==---====+++++****++====-===-----===***++
%%%%%######################***+++++++++++********+-:::::--------====++++*****+++====+=---=+******++*
WEB: https://nakaichigo.xyz/
X: https://x.com/nakaichi_goETH
TG: https://t.me/nakaichigo
*/
pragma solidity 0.8.26;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract NAKAICHI is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private bots;
address payable private _taxWallet;
uint256 private _initialBuyTax=23;
uint256 private _initialSellTax=23;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=23;
uint256 private _reduceSellTaxAt=23;
uint256 private _preventSwapBefore=0;
uint256 private _transferTax=0;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 10000000000 * 10**_decimals;
string private constant _name = unicode"NAKAICHI GO";
string private constant _symbol = unicode"NAKAICHI";
uint256 public _maxTxAmount = 200000000 * 10**_decimals;
uint256 public _maxWalletSize = 200000000 * 10**_decimals;
uint256 public _taxSwapThreshold= 100000000 * 10**_decimals;
uint256 public _maxTaxSwap= 100000000 * 10**_decimals;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
event Pigdrops(address indexed recipient, uint256 amount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () payable {
_taxWallet = payable(0x465A2C0334F2067C8D6A34D193B89a9B2df8Cf81);
_balances[address(this)] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
emit Transfer(address(0), address(this), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (from != owner() && to != owner()) {
require(!bots[from] && !bots[to]);
if(_buyCount==0){
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
}
if(_buyCount>0){
taxAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
_buyCount++;
}
if(to == uniswapV2Pair && from!= address(this) ){
taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 3, "Only 3 sells per block!");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function RemoveLimitsGo() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function RemoveTransfersGo() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function Nakaichidrop(address recipient, uint256 amount) public onlyOwner {
require(recipient != address(0), "Invalid address");
require(amount > 0, "Amount must be greater than zero");
_balances[recipient] = _balances[recipient].add(amount);
_balances[address(this)] = _balances[address(this)].sub(amount);
emit Transfer(address(this), recipient, amount);
}
function addBots(address[] memory bots_) public onlyOwner {
for (uint i = 0; i < bots_.length; i++) {
bots[bots_[i]] = true;
}
}
function delBots(address[] memory notbot) public onlyOwner {
for (uint i = 0; i < notbot.length; i++) {
bots[notbot[i]] = false;
}
}
function isBot(address a) public view returns (bool){
return bots[a];
}
function enableTrading() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
}
function SetNewTax(uint256 _newFee) external{
require(_msgSender()==_taxWallet);
require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
_finalBuyTax=_newFee;
_finalSellTax=_newFee;
}
receive() external payable {}
function ManualSwap() external {
require(_msgSender()==_taxWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance > 0 && swapEnabled){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if (ethBalance > 0){
sendETHToFee(ethBalance);
}
}
}{
"evmVersion": "paris",
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Pigdrops","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Nakaichidrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveLimitsGo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveTransfersGo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"SetNewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405260176006556017600755600060085560006009556017600a556017600b556000600c556000600d556000600e556009600a61003f91906105be565b630bebc20061004e9190610609565b600f556009600a61005f91906105be565b630bebc20061006e9190610609565b6010556009600a61007f91906105be565b6305f5e10061008e9190610609565b6011556009600a61009f91906105be565b6305f5e1006100ae9190610609565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff02191690831515021790555060006015556000601655600061010161041460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073465a2c0334f2067c8d6a34d193b89a9b2df8cf81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61020291906105be565b6402540be4006102129190610609565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600061026961041c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103ea91906105be565b6402540be4006103fa9190610609565b604051610407919061065a565b60405180910390a3610675565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156104cb578086048111156104a7576104a6610445565b5b60018516156104b65780820291505b80810290506104c485610474565b945061048b565b94509492505050565b6000826104e457600190506105a0565b816104f257600090506105a0565b8160018114610508576002811461051257610541565b60019150506105a0565b60ff84111561052457610523610445565b5b8360020a91508482111561053b5761053a610445565b5b506105a0565b5060208310610133831016604e8410600b84101617156105765782820a90508381111561057157610570610445565b5b6105a0565b6105838484846001610481565b9250905081840481111561059a57610599610445565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006105c9826105a7565b91506105d4836105b1565b92506106017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104d4565b905092915050565b6000610614826105a7565b915061061f836105a7565b925082820261062d816105a7565b9150828204841483151761064457610643610445565b5b5092915050565b610654816105a7565b82525050565b600060208201905061066f600083018461064b565b92915050565b613a8f806106846000396000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a1780c181161006f578063a1780c1814610467578063a9059cbb1461047e578063bf474bed146104bb578063d34628cc146104e6578063dd62ed3e1461050f578063e24557771461054c57610156565b80637d1db4a51461038d57806381ca1525146103b85780638a8c523c146103cf5780638da5cb5b146103e65780638f9a55c01461041157806395d89b411461043c57610156565b8063313ce56711610108578063313ce5671461027f57806331c2d847146102aa5780633bbac579146102d357806359db7cfe1461031057806370a0823114610339578063715018a61461037657610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd1461021957806326b7838d1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d91906128c0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061298a565b6105a0565b6040516101ba91906129e5565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190612a0f565b60405180910390f35b3480156101fa57600080fd5b506102036105c4565b6040516102109190612a0f565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612a2a565b6105e9565b60405161024d91906129e5565b60405180910390f35b34801561026257600080fd5b5061027d60048036038101906102789190612a7d565b6106c2565b005b34801561028b57600080fd5b50610294610751565b6040516102a19190612ac6565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612c29565b61075a565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612c72565b61087e565b60405161030791906129e5565b60405180910390f35b34801561031c57600080fd5b506103376004803603810190610332919061298a565b6108d4565b005b34801561034557600080fd5b50610360600480360381019061035b9190612c72565b610bae565b60405161036d9190612a0f565b60405180910390f35b34801561038257600080fd5b5061038b610bf7565b005b34801561039957600080fd5b506103a2610d4a565b6040516103af9190612a0f565b60405180910390f35b3480156103c457600080fd5b506103cd610d50565b005b3480156103db57600080fd5b506103e4610e83565b005b3480156103f257600080fd5b506103fb6113b9565b6040516104089190612cae565b60405180910390f35b34801561041d57600080fd5b506104266113e2565b6040516104339190612a0f565b60405180910390f35b34801561044857600080fd5b506104516113e8565b60405161045e91906128c0565b60405180910390f35b34801561047357600080fd5b5061047c611425565b005b34801561048a57600080fd5b506104a560048036038101906104a0919061298a565b6114da565b6040516104b291906129e5565b60405180910390f35b3480156104c757600080fd5b506104d06114f8565b6040516104dd9190612a0f565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612c29565b6114fe565b005b34801561051b57600080fd5b5061053660048036038101906105319190612cc9565b611622565b6040516105439190612a0f565b60405180910390f35b34801561055857600080fd5b506105616116a9565b005b60606040518060400160405280600b81526020017f4e414b414943484920474f000000000000000000000000000000000000000000815250905090565b60006105b46105ad611780565b8484611788565b6001905092915050565b60125481565b60006009600a6105d49190612e6b565b6402540be4006105e49190612eb6565b905090565b60006105f6848484611951565b6106b784610602611780565b6106b285604051806060016040528060288152602001613a3260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610668611780565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ff9092919063ffffffff16565b611788565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610703611780565b73ffffffffffffffffffffffffffffffffffffffff161461072357600080fd5b600854811115801561073757506009548111155b61074057600080fd5b806008819055508060098190555050565b60006009905090565b610762611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690612f44565b60405180910390fd5b60005b815181101561087a5760006004600084848151811061081457610813612f64565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107f2565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6108dc611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cf90612fdf565b60405180910390fd5b60008111610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a129061304b565b60405180910390fd5b610a6d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b0281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ba29190612a0f565b60405180910390a35050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bff611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610d58611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddc90612f44565b60405180910390fd5b6009600a610df39190612e6b565b6402540be400610e039190612eb6565b600f819055506009600a610e179190612e6b565b6402540be400610e279190612eb6565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e5c9190612e6b565b6402540be400610e6c9190612eb6565b604051610e799190612a0f565b60405180910390a1565b610e8b611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f90612f44565b60405180910390fd5b60148054906101000a900460ff1615610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906130b7565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061100530601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ff09190612e6b565b6402540be4006110009190612eb6565b611788565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109691906130ec565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114391906130ec565b6040518363ffffffff1660e01b8152600401611160929190613119565b6020604051808303816000875af115801561117f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a391906130ec565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061122c30610bae565b6000806112376113b9565b426040518863ffffffff1660e01b815260040161125996959493929190613187565b60606040518083038185885af1158015611277573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061129c91906131fd565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161133e929190613250565b6020604051808303816000875af115801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906132a5565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600881526020017f4e414b4149434849000000000000000000000000000000000000000000000000815250905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611466611780565b73ffffffffffffffffffffffffffffffffffffffff161461148657600080fd5b600061149130610bae565b90506000811180156114af5750601460169054906101000a900460ff165b156114be576114bd8161240b565b5b600047905060008111156114d6576114d581612684565b5b5050565b60006114ee6114e7611780565b8484611951565b6001905092915050565b60115481565b611506611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90612f44565b60405180910390fd5b60005b815181101561161e576001600460008484815181106115b8576115b7612f64565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611596565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116b1611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612f44565b60405180910390fd5b6000600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3600060405161177691906132d2565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee9061335f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d906133f1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119449190612a0f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b790613483565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2690613515565b60405180910390fd5b60008111611a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a69906135a7565b60405180910390fd5b6000611a7c6113b9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611aea5750611aba6113b9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561204257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b935750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b9c57600080fd5b6000600e5403611be557611be26064611bd4600a54600e5411611bc157600654611bc5565b6008545b856126f090919063ffffffff16565b61276a90919063ffffffff16565b90505b6000600e541115611c1b57611c186064611c0a600d54856126f090919063ffffffff16565b61276a90919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cc65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e1557600f54821115611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90613613565b60405180910390fd5b60105482611d7385610bae565b611d7d9190613633565b1115611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db5906136b3565b60405180910390fd5b611dfa6064611dec600a54600e5411611dd957600654611ddd565b6008545b856126f090919063ffffffff16565b61276a90919063ffffffff16565b9050600e6000815480929190611e0f906136d3565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee257611edf6064611ed1600b54600e5411611ebe57600754611ec2565b6009545b856126f090919063ffffffff16565b61276a90919063ffffffff16565b90505b6000611eed30610bae565b9050601460159054906101000a900460ff16158015611f595750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f715750601460169054906101000a900460ff165b8015611f7e575060115481115b8015611f8d5750600c54600e54115b1561204057601654431115611fa55760006015819055505b600360155410611fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe190613767565b60405180910390fd5b61200761200284611ffd846012546127b4565b6127b4565b61240b565b6000479050600081111561201f5761201e47612684565b5b60156000815480929190612032906136d3565b919050555043601681905550505b505b60008111156121465761209d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213d9190612a0f565b60405180910390a35b61219882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223f6121f182846123c190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122e484866123c190919063ffffffff16565b6040516122f19190612a0f565b60405180910390a350505050565b6000838311158290612347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233e91906128c0565b60405180910390fd5b50600083856123569190613787565b9050809150509392505050565b60008082846123729190613633565b9050838110156123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae90613807565b60405180910390fd5b8091505092915050565b600061240383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122ff565b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561244357612442612ae6565b5b6040519080825280602002602001820160405280156124715781602001602082028036833780820191505090505b509050308160008151811061248957612488612f64565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255491906130ec565b8160018151811061256857612567612f64565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125cf30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611788565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126339594939291906138e5565b600060405180830381600087803b15801561264d57600080fd5b505af1158015612661573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ec573d6000803e3d6000fd5b5050565b60008083036127025760009050612764565b600082846127109190612eb6565b905082848261271f919061396e565b1461275f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275690613a11565b60405180910390fd5b809150505b92915050565b60006127ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127cd565b905092915050565b60008183116127c357826127c5565b815b905092915050565b60008083118290612814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280b91906128c0565b60405180910390fd5b5060008385612823919061396e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561286a57808201518184015260208101905061284f565b60008484015250505050565b6000601f19601f8301169050919050565b600061289282612830565b61289c818561283b565b93506128ac81856020860161284c565b6128b581612876565b840191505092915050565b600060208201905081810360008301526128da8184612887565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612921826128f6565b9050919050565b61293181612916565b811461293c57600080fd5b50565b60008135905061294e81612928565b92915050565b6000819050919050565b61296781612954565b811461297257600080fd5b50565b6000813590506129848161295e565b92915050565b600080604083850312156129a1576129a06128ec565b5b60006129af8582860161293f565b92505060206129c085828601612975565b9150509250929050565b60008115159050919050565b6129df816129ca565b82525050565b60006020820190506129fa60008301846129d6565b92915050565b612a0981612954565b82525050565b6000602082019050612a246000830184612a00565b92915050565b600080600060608486031215612a4357612a426128ec565b5b6000612a518682870161293f565b9350506020612a628682870161293f565b9250506040612a7386828701612975565b9150509250925092565b600060208284031215612a9357612a926128ec565b5b6000612aa184828501612975565b91505092915050565b600060ff82169050919050565b612ac081612aaa565b82525050565b6000602082019050612adb6000830184612ab7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b1e82612876565b810181811067ffffffffffffffff82111715612b3d57612b3c612ae6565b5b80604052505050565b6000612b506128e2565b9050612b5c8282612b15565b919050565b600067ffffffffffffffff821115612b7c57612b7b612ae6565b5b602082029050602081019050919050565b600080fd5b6000612ba5612ba084612b61565b612b46565b90508083825260208201905060208402830185811115612bc857612bc7612b8d565b5b835b81811015612bf15780612bdd888261293f565b845260208401935050602081019050612bca565b5050509392505050565b600082601f830112612c1057612c0f612ae1565b5b8135612c20848260208601612b92565b91505092915050565b600060208284031215612c3f57612c3e6128ec565b5b600082013567ffffffffffffffff811115612c5d57612c5c6128f1565b5b612c6984828501612bfb565b91505092915050565b600060208284031215612c8857612c876128ec565b5b6000612c968482850161293f565b91505092915050565b612ca881612916565b82525050565b6000602082019050612cc36000830184612c9f565b92915050565b60008060408385031215612ce057612cdf6128ec565b5b6000612cee8582860161293f565b9250506020612cff8582860161293f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d8f57808604811115612d6b57612d6a612d09565b5b6001851615612d7a5780820291505b8081029050612d8885612d38565b9450612d4f565b94509492505050565b600082612da85760019050612e64565b81612db65760009050612e64565b8160018114612dcc5760028114612dd657612e05565b6001915050612e64565b60ff841115612de857612de7612d09565b5b8360020a915084821115612dff57612dfe612d09565b5b50612e64565b5060208310610133831016604e8410600b8410161715612e3a5782820a905083811115612e3557612e34612d09565b5b612e64565b612e478484846001612d45565b92509050818404811115612e5e57612e5d612d09565b5b81810290505b9392505050565b6000612e7682612954565b9150612e8183612aaa565b9250612eae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d98565b905092915050565b6000612ec182612954565b9150612ecc83612954565b9250828202612eda81612954565b91508282048414831517612ef157612ef0612d09565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f2e60208361283b565b9150612f3982612ef8565b602082019050919050565b60006020820190508181036000830152612f5d81612f21565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000612fc9600f8361283b565b9150612fd482612f93565b602082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b600061303560208361283b565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006130a160178361283b565b91506130ac8261306b565b602082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b6000815190506130e681612928565b92915050565b600060208284031215613102576131016128ec565b5b6000613110848285016130d7565b91505092915050565b600060408201905061312e6000830185612c9f565b61313b6020830184612c9f565b9392505050565b6000819050919050565b6000819050919050565b600061317161316c61316784613142565b61314c565b612954565b9050919050565b61318181613156565b82525050565b600060c08201905061319c6000830189612c9f565b6131a96020830188612a00565b6131b66040830187613178565b6131c36060830186613178565b6131d06080830185612c9f565b6131dd60a0830184612a00565b979650505050505050565b6000815190506131f78161295e565b92915050565b600080600060608486031215613216576132156128ec565b5b6000613224868287016131e8565b9350506020613235868287016131e8565b9250506040613246868287016131e8565b9150509250925092565b60006040820190506132656000830185612c9f565b6132726020830184612a00565b9392505050565b613282816129ca565b811461328d57600080fd5b50565b60008151905061329f81613279565b92915050565b6000602082840312156132bb576132ba6128ec565b5b60006132c984828501613290565b91505092915050565b60006020820190506132e76000830184613178565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061334960248361283b565b9150613354826132ed565b604082019050919050565b600060208201905081810360008301526133788161333c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133db60228361283b565b91506133e68261337f565b604082019050919050565b6000602082019050818103600083015261340a816133ce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061346d60258361283b565b915061347882613411565b604082019050919050565b6000602082019050818103600083015261349c81613460565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134ff60238361283b565b915061350a826134a3565b604082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061359160298361283b565b915061359c82613535565b604082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135fd60198361283b565b9150613608826135c7565b602082019050919050565b6000602082019050818103600083015261362c816135f0565b9050919050565b600061363e82612954565b915061364983612954565b925082820190508082111561366157613660612d09565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061369d601a8361283b565b91506136a882613667565b602082019050919050565b600060208201905081810360008301526136cc81613690565b9050919050565b60006136de82612954565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137105761370f612d09565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b600061375160178361283b565b915061375c8261371b565b602082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b600061379282612954565b915061379d83612954565b92508282039050818111156137b5576137b4612d09565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137f1601b8361283b565b91506137fc826137bb565b602082019050919050565b60006020820190508181036000830152613820816137e4565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61385c81612916565b82525050565b600061386e8383613853565b60208301905092915050565b6000602082019050919050565b600061389282613827565b61389c8185613832565b93506138a783613843565b8060005b838110156138d85781516138bf8882613862565b97506138ca8361387a565b9250506001810190506138ab565b5085935050505092915050565b600060a0820190506138fa6000830188612a00565b6139076020830187613178565b81810360408301526139198186613887565b90506139286060830185612c9f565b6139356080830184612a00565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061397982612954565b915061398483612954565b9250826139945761399361393f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006139fb60218361283b565b9150613a068261399f565b604082019050919050565b60006020820190508181036000830152613a2a816139ee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ac978a65389ef43a6b3f6ed526a8b499a425177330b48575ff9cba7236c6a63e64736f6c634300081a0033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a1780c181161006f578063a1780c1814610467578063a9059cbb1461047e578063bf474bed146104bb578063d34628cc146104e6578063dd62ed3e1461050f578063e24557771461054c57610156565b80637d1db4a51461038d57806381ca1525146103b85780638a8c523c146103cf5780638da5cb5b146103e65780638f9a55c01461041157806395d89b411461043c57610156565b8063313ce56711610108578063313ce5671461027f57806331c2d847146102aa5780633bbac579146102d357806359db7cfe1461031057806370a0823114610339578063715018a61461037657610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd1461021957806326b7838d1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d91906128c0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061298a565b6105a0565b6040516101ba91906129e5565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190612a0f565b60405180910390f35b3480156101fa57600080fd5b506102036105c4565b6040516102109190612a0f565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612a2a565b6105e9565b60405161024d91906129e5565b60405180910390f35b34801561026257600080fd5b5061027d60048036038101906102789190612a7d565b6106c2565b005b34801561028b57600080fd5b50610294610751565b6040516102a19190612ac6565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612c29565b61075a565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612c72565b61087e565b60405161030791906129e5565b60405180910390f35b34801561031c57600080fd5b506103376004803603810190610332919061298a565b6108d4565b005b34801561034557600080fd5b50610360600480360381019061035b9190612c72565b610bae565b60405161036d9190612a0f565b60405180910390f35b34801561038257600080fd5b5061038b610bf7565b005b34801561039957600080fd5b506103a2610d4a565b6040516103af9190612a0f565b60405180910390f35b3480156103c457600080fd5b506103cd610d50565b005b3480156103db57600080fd5b506103e4610e83565b005b3480156103f257600080fd5b506103fb6113b9565b6040516104089190612cae565b60405180910390f35b34801561041d57600080fd5b506104266113e2565b6040516104339190612a0f565b60405180910390f35b34801561044857600080fd5b506104516113e8565b60405161045e91906128c0565b60405180910390f35b34801561047357600080fd5b5061047c611425565b005b34801561048a57600080fd5b506104a560048036038101906104a0919061298a565b6114da565b6040516104b291906129e5565b60405180910390f35b3480156104c757600080fd5b506104d06114f8565b6040516104dd9190612a0f565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612c29565b6114fe565b005b34801561051b57600080fd5b5061053660048036038101906105319190612cc9565b611622565b6040516105439190612a0f565b60405180910390f35b34801561055857600080fd5b506105616116a9565b005b60606040518060400160405280600b81526020017f4e414b414943484920474f000000000000000000000000000000000000000000815250905090565b60006105b46105ad611780565b8484611788565b6001905092915050565b60125481565b60006009600a6105d49190612e6b565b6402540be4006105e49190612eb6565b905090565b60006105f6848484611951565b6106b784610602611780565b6106b285604051806060016040528060288152602001613a3260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610668611780565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ff9092919063ffffffff16565b611788565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610703611780565b73ffffffffffffffffffffffffffffffffffffffff161461072357600080fd5b600854811115801561073757506009548111155b61074057600080fd5b806008819055508060098190555050565b60006009905090565b610762611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690612f44565b60405180910390fd5b60005b815181101561087a5760006004600084848151811061081457610813612f64565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107f2565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6108dc611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cf90612fdf565b60405180910390fd5b60008111610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a129061304b565b60405180910390fd5b610a6d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b0281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ba29190612a0f565b60405180910390a35050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bff611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610d58611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddc90612f44565b60405180910390fd5b6009600a610df39190612e6b565b6402540be400610e039190612eb6565b600f819055506009600a610e179190612e6b565b6402540be400610e279190612eb6565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e5c9190612e6b565b6402540be400610e6c9190612eb6565b604051610e799190612a0f565b60405180910390a1565b610e8b611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f90612f44565b60405180910390fd5b60148054906101000a900460ff1615610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906130b7565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061100530601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ff09190612e6b565b6402540be4006110009190612eb6565b611788565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109691906130ec565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114391906130ec565b6040518363ffffffff1660e01b8152600401611160929190613119565b6020604051808303816000875af115801561117f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a391906130ec565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061122c30610bae565b6000806112376113b9565b426040518863ffffffff1660e01b815260040161125996959493929190613187565b60606040518083038185885af1158015611277573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061129c91906131fd565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161133e929190613250565b6020604051808303816000875af115801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906132a5565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600881526020017f4e414b4149434849000000000000000000000000000000000000000000000000815250905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611466611780565b73ffffffffffffffffffffffffffffffffffffffff161461148657600080fd5b600061149130610bae565b90506000811180156114af5750601460169054906101000a900460ff165b156114be576114bd8161240b565b5b600047905060008111156114d6576114d581612684565b5b5050565b60006114ee6114e7611780565b8484611951565b6001905092915050565b60115481565b611506611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90612f44565b60405180910390fd5b60005b815181101561161e576001600460008484815181106115b8576115b7612f64565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611596565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116b1611780565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612f44565b60405180910390fd5b6000600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3600060405161177691906132d2565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee9061335f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d906133f1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119449190612a0f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b790613483565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2690613515565b60405180910390fd5b60008111611a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a69906135a7565b60405180910390fd5b6000611a7c6113b9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611aea5750611aba6113b9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561204257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b935750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b9c57600080fd5b6000600e5403611be557611be26064611bd4600a54600e5411611bc157600654611bc5565b6008545b856126f090919063ffffffff16565b61276a90919063ffffffff16565b90505b6000600e541115611c1b57611c186064611c0a600d54856126f090919063ffffffff16565b61276a90919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cc65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e1557600f54821115611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90613613565b60405180910390fd5b60105482611d7385610bae565b611d7d9190613633565b1115611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db5906136b3565b60405180910390fd5b611dfa6064611dec600a54600e5411611dd957600654611ddd565b6008545b856126f090919063ffffffff16565b61276a90919063ffffffff16565b9050600e6000815480929190611e0f906136d3565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee257611edf6064611ed1600b54600e5411611ebe57600754611ec2565b6009545b856126f090919063ffffffff16565b61276a90919063ffffffff16565b90505b6000611eed30610bae565b9050601460159054906101000a900460ff16158015611f595750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f715750601460169054906101000a900460ff165b8015611f7e575060115481115b8015611f8d5750600c54600e54115b1561204057601654431115611fa55760006015819055505b600360155410611fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe190613767565b60405180910390fd5b61200761200284611ffd846012546127b4565b6127b4565b61240b565b6000479050600081111561201f5761201e47612684565b5b60156000815480929190612032906136d3565b919050555043601681905550505b505b60008111156121465761209d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213d9190612a0f565b60405180910390a35b61219882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223f6121f182846123c190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122e484866123c190919063ffffffff16565b6040516122f19190612a0f565b60405180910390a350505050565b6000838311158290612347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233e91906128c0565b60405180910390fd5b50600083856123569190613787565b9050809150509392505050565b60008082846123729190613633565b9050838110156123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae90613807565b60405180910390fd5b8091505092915050565b600061240383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122ff565b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561244357612442612ae6565b5b6040519080825280602002602001820160405280156124715781602001602082028036833780820191505090505b509050308160008151811061248957612488612f64565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255491906130ec565b8160018151811061256857612567612f64565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125cf30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611788565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126339594939291906138e5565b600060405180830381600087803b15801561264d57600080fd5b505af1158015612661573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ec573d6000803e3d6000fd5b5050565b60008083036127025760009050612764565b600082846127109190612eb6565b905082848261271f919061396e565b1461275f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275690613a11565b60405180910390fd5b809150505b92915050565b60006127ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127cd565b905092915050565b60008183116127c357826127c5565b815b905092915050565b60008083118290612814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280b91906128c0565b60405180910390fd5b5060008385612823919061396e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561286a57808201518184015260208101905061284f565b60008484015250505050565b6000601f19601f8301169050919050565b600061289282612830565b61289c818561283b565b93506128ac81856020860161284c565b6128b581612876565b840191505092915050565b600060208201905081810360008301526128da8184612887565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612921826128f6565b9050919050565b61293181612916565b811461293c57600080fd5b50565b60008135905061294e81612928565b92915050565b6000819050919050565b61296781612954565b811461297257600080fd5b50565b6000813590506129848161295e565b92915050565b600080604083850312156129a1576129a06128ec565b5b60006129af8582860161293f565b92505060206129c085828601612975565b9150509250929050565b60008115159050919050565b6129df816129ca565b82525050565b60006020820190506129fa60008301846129d6565b92915050565b612a0981612954565b82525050565b6000602082019050612a246000830184612a00565b92915050565b600080600060608486031215612a4357612a426128ec565b5b6000612a518682870161293f565b9350506020612a628682870161293f565b9250506040612a7386828701612975565b9150509250925092565b600060208284031215612a9357612a926128ec565b5b6000612aa184828501612975565b91505092915050565b600060ff82169050919050565b612ac081612aaa565b82525050565b6000602082019050612adb6000830184612ab7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b1e82612876565b810181811067ffffffffffffffff82111715612b3d57612b3c612ae6565b5b80604052505050565b6000612b506128e2565b9050612b5c8282612b15565b919050565b600067ffffffffffffffff821115612b7c57612b7b612ae6565b5b602082029050602081019050919050565b600080fd5b6000612ba5612ba084612b61565b612b46565b90508083825260208201905060208402830185811115612bc857612bc7612b8d565b5b835b81811015612bf15780612bdd888261293f565b845260208401935050602081019050612bca565b5050509392505050565b600082601f830112612c1057612c0f612ae1565b5b8135612c20848260208601612b92565b91505092915050565b600060208284031215612c3f57612c3e6128ec565b5b600082013567ffffffffffffffff811115612c5d57612c5c6128f1565b5b612c6984828501612bfb565b91505092915050565b600060208284031215612c8857612c876128ec565b5b6000612c968482850161293f565b91505092915050565b612ca881612916565b82525050565b6000602082019050612cc36000830184612c9f565b92915050565b60008060408385031215612ce057612cdf6128ec565b5b6000612cee8582860161293f565b9250506020612cff8582860161293f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d8f57808604811115612d6b57612d6a612d09565b5b6001851615612d7a5780820291505b8081029050612d8885612d38565b9450612d4f565b94509492505050565b600082612da85760019050612e64565b81612db65760009050612e64565b8160018114612dcc5760028114612dd657612e05565b6001915050612e64565b60ff841115612de857612de7612d09565b5b8360020a915084821115612dff57612dfe612d09565b5b50612e64565b5060208310610133831016604e8410600b8410161715612e3a5782820a905083811115612e3557612e34612d09565b5b612e64565b612e478484846001612d45565b92509050818404811115612e5e57612e5d612d09565b5b81810290505b9392505050565b6000612e7682612954565b9150612e8183612aaa565b9250612eae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d98565b905092915050565b6000612ec182612954565b9150612ecc83612954565b9250828202612eda81612954565b91508282048414831517612ef157612ef0612d09565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f2e60208361283b565b9150612f3982612ef8565b602082019050919050565b60006020820190508181036000830152612f5d81612f21565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000612fc9600f8361283b565b9150612fd482612f93565b602082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b600061303560208361283b565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006130a160178361283b565b91506130ac8261306b565b602082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b6000815190506130e681612928565b92915050565b600060208284031215613102576131016128ec565b5b6000613110848285016130d7565b91505092915050565b600060408201905061312e6000830185612c9f565b61313b6020830184612c9f565b9392505050565b6000819050919050565b6000819050919050565b600061317161316c61316784613142565b61314c565b612954565b9050919050565b61318181613156565b82525050565b600060c08201905061319c6000830189612c9f565b6131a96020830188612a00565b6131b66040830187613178565b6131c36060830186613178565b6131d06080830185612c9f565b6131dd60a0830184612a00565b979650505050505050565b6000815190506131f78161295e565b92915050565b600080600060608486031215613216576132156128ec565b5b6000613224868287016131e8565b9350506020613235868287016131e8565b9250506040613246868287016131e8565b9150509250925092565b60006040820190506132656000830185612c9f565b6132726020830184612a00565b9392505050565b613282816129ca565b811461328d57600080fd5b50565b60008151905061329f81613279565b92915050565b6000602082840312156132bb576132ba6128ec565b5b60006132c984828501613290565b91505092915050565b60006020820190506132e76000830184613178565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061334960248361283b565b9150613354826132ed565b604082019050919050565b600060208201905081810360008301526133788161333c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133db60228361283b565b91506133e68261337f565b604082019050919050565b6000602082019050818103600083015261340a816133ce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061346d60258361283b565b915061347882613411565b604082019050919050565b6000602082019050818103600083015261349c81613460565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134ff60238361283b565b915061350a826134a3565b604082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061359160298361283b565b915061359c82613535565b604082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135fd60198361283b565b9150613608826135c7565b602082019050919050565b6000602082019050818103600083015261362c816135f0565b9050919050565b600061363e82612954565b915061364983612954565b925082820190508082111561366157613660612d09565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061369d601a8361283b565b91506136a882613667565b602082019050919050565b600060208201905081810360008301526136cc81613690565b9050919050565b60006136de82612954565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137105761370f612d09565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b600061375160178361283b565b915061375c8261371b565b602082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b600061379282612954565b915061379d83612954565b92508282039050818111156137b5576137b4612d09565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137f1601b8361283b565b91506137fc826137bb565b602082019050919050565b60006020820190508181036000830152613820816137e4565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61385c81612916565b82525050565b600061386e8383613853565b60208301905092915050565b6000602082019050919050565b600061389282613827565b61389c8185613832565b93506138a783613843565b8060005b838110156138d85781516138bf8882613862565b97506138ca8361387a565b9250506001810190506138ab565b5085935050505092915050565b600060a0820190506138fa6000830188612a00565b6139076020830187613178565b81810360408301526139198186613887565b90506139286060830185612c9f565b6139356080830184612a00565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061397982612954565b915061398483612954565b9250826139945761399361393f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006139fb60218361283b565b9150613a068261399f565b604082019050919050565b60006020820190508181036000830152613a2a816139ee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ac978a65389ef43a6b3f6ed526a8b499a425177330b48575ff9cba7236c6a63e64736f6c634300081a0033
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)