BEP-20
Source Code
Overview
Max Total Supply
770,000,000,000,000,000BB
Holders
162
Transfers
-
0
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x540Ab715...B37912DD1 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
PandaToken
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2025-11-09
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
library Math {
function min(uint x, uint y) internal pure returns (uint z) {
z = x < y ? x : y;
}
function sqrt(uint y) internal pure returns (uint z) {
if (y > 3) {
z = y;
uint x = y / 2 + 1;
while (x < z) {
z = x;
x = (y / x + x) / 2;
}
} else if (y != 0) {
z = 1;
}
}
}
interface IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint256);
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
);
}
interface ISwapRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}
interface ISwapFactory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface ISwapPair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(
address owner,
address spender
) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(
address from,
address to,
uint value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(
address owner,
address spender,
uint value,
uint deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(
address indexed sender,
uint amount0,
uint amount1,
address indexed to
);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(
uint amount0Out,
uint amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
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;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
}
contract PandaToken is IERC20 {
using SafeMath for uint256;
mapping(address => uint256) public _rOwned;
mapping(address => mapping(address => uint256)) private _allowances;
address public fundAddress;
string private _name;
string private _symbol;
uint256 private _decimals;
uint256 private _tTotal;
uint256 private _rTotal;
uint256 private _tFeeTotal;
mapping(address => bool) public _feeWhiteList;
ISwapRouter public _swapRouter;
address public currency;
mapping(address => bool) public _swapPairList;
uint256 private constant MAX = ~uint256(0);
uint256 public _buyFundFee;
uint256 public _buyLPFee;
uint256 public _buyReflectFee;
uint256 public buy_burnFee;
uint256 public _sellFundFee;
uint256 public _sellLPFee;
uint256 public _sellReflectFee;
uint256 public sell_burnFee;
bool private airdropEnable;
uint256 private airdropNumbs;
address public _mainPair;
constructor(
string[] memory stringParams,
address[] memory addressParams,
uint256[] memory numberParams,
bool[] memory boolParams
) {
_name = stringParams[0];
_symbol = stringParams[1];
_decimals = numberParams[0];
_tTotal = numberParams[1];
_rTotal = (MAX - (MAX % _tTotal));
fundAddress = addressParams[0];
currency = addressParams[1];
_swapRouter = ISwapRouter(addressParams[2]);
address ReceiveAddress = addressParams[3];
IERC20(currency).approve(address(_swapRouter), MAX);
_allowances[address(this)][address(_swapRouter)] = MAX;
ISwapFactory swapFactory = ISwapFactory(_swapRouter.factory());
_mainPair = swapFactory.createPair(address(this), currency);
_swapPairList[_mainPair] = true;
_buyFundFee = numberParams[2];
_buyLPFee = numberParams[3];
_buyReflectFee = numberParams[4];
buy_burnFee = numberParams[5];
_sellFundFee = numberParams[6];
_sellLPFee = numberParams[7];
_sellReflectFee = numberParams[8];
sell_burnFee = numberParams[9];
require(
_buyFundFee + _buyLPFee + _buyReflectFee + buy_burnFee < 2500 &&
_sellFundFee + _sellLPFee + _sellReflectFee + sell_burnFee < 2500
);
airdropEnable = boolParams[0];
airdropNumbs = numberParams[10];
require(airdropNumbs <= 5, "!<= 5");
_rOwned[ReceiveAddress] = _rTotal;
emit Transfer(address(0), ReceiveAddress, _tTotal);
_feeWhiteList[fundAddress] = true;
_feeWhiteList[ReceiveAddress] = true;
_feeWhiteList[address(this)] = true;
// _feeWhiteList[address(_swapRouter)] = true;
_feeWhiteList[tx.origin] = true;
}
function symbol() external view override returns (string memory) {
return _symbol;
}
function name() external view override returns (string memory) {
return _name;
}
function decimals() external view override returns (uint256) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return tokenFromReflection(_rOwned[account]);
}
function owner() public pure returns (address) {
return address(0xdead);
}
function transfer(
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function allowance(
address owner1,
address spender
) public view override returns (uint256) {
return _allowances[owner1][spender];
}
function approve(
address spender,
uint256 amount
) public override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
if (_allowances[sender][msg.sender] != MAX) {
_allowances[sender][msg.sender] =
_allowances[sender][msg.sender] -
amount;
}
return true;
}
function _approve(address owner1, address spender, uint256 amount) private {
_allowances[owner1][spender] = amount;
emit Approval(owner1, spender, amount);
}
function addOrRemove(
address from,
address to,
uint256 amount
) internal view returns (bool isAddLP, bool isRemoveLP) {
uint256 addLPLiquidity;
if (_swapPairList[to] && msg.sender == address(_swapRouter)) {
addLPLiquidity = _isAddLiquidity(to, amount);
if (addLPLiquidity > 0) {
isAddLP = true;
}
}
uint256 removeLPLiquidity;
if (_swapPairList[from]) {
removeLPLiquidity = _isRemoveLiquidity(from, amount);
}
if (removeLPLiquidity > 0) {
isRemoveLP = true;
}
}
function _isAddLiquidity(
address pair,
uint256 amount
) internal view returns (uint256 liquidity) {
(uint256 rOther, uint256 rThis, uint256 balanceOther) = _getReserves(
pair
);
uint256 amountOther;
if (rOther > 0 && rThis > 0) {
amountOther = (amount * rOther) / rThis;
}
//isAddLP
if (balanceOther >= rOther + amountOther) {
(liquidity, ) = calLiquidity(
pair,
balanceOther,
amount,
rOther,
rThis
);
}
}
function calLiquidity(
address pair,
uint256 balanceA,
uint256 amount,
uint256 r0,
uint256 r1
) private view returns (uint256 liquidity, uint256 feeToLiquidity) {
uint256 pairTotalSupply = ISwapPair(pair).totalSupply();
address feeTo = ISwapFactory(_swapRouter.factory()).feeTo();
bool feeOn = feeTo != address(0);
uint256 _kLast = ISwapPair(pair).kLast();
if (feeOn) {
if (_kLast != 0) {
uint256 rootK = Math.sqrt(r0 * r1);
uint256 rootKLast = Math.sqrt(_kLast);
if (rootK > rootKLast) {
uint256 numerator;
uint256 denominator;
if (
address(_swapRouter) ==
address(0x10ED43C718714eb63d5aA57B78B54704E256024E) || address(_swapRouter) ==
address(0x881fB2f98c13d521009464e7D1CBf16E1b394e8E)
) {
// BSC Pancake
numerator = pairTotalSupply * (rootK - rootKLast) * 8;
denominator = rootK * 17 + (rootKLast * 8);
} else if (
address(_swapRouter) ==
address(0xD99D1c33F9fC3444f8101754aBC46c52416550D1)
) {
//BSC testnet Pancake
numerator = pairTotalSupply * (rootK - rootKLast);
denominator = rootK * 3 + rootKLast;
} else {
//SushiSwap,UniSwap,OK Cherry Swap
numerator = pairTotalSupply * (rootK - rootKLast);
denominator = rootK * 5 + rootKLast;
}
feeToLiquidity = numerator / denominator;
if (feeToLiquidity > 0) pairTotalSupply += feeToLiquidity;
}
}
}
uint256 amount0 = balanceA - r0;
if (pairTotalSupply == 0) {
if (amount0 > 0) {
liquidity = Math.sqrt(amount0 * amount) - 1000;
}
} else {
liquidity = Math.min(
(amount0 * pairTotalSupply) / r0,
(amount * pairTotalSupply) / r1
);
}
}
function _getReserves(
address pair
)
public
view
returns (uint256 rOther, uint256 rThis, uint256 balanceOther)
{
ISwapPair mainPair = ISwapPair(pair);
(uint r0, uint256 r1, ) = mainPair.getReserves();
address tokenOther = mainPair.token0() == address(this)
? mainPair.token1()
: mainPair.token0();
if (tokenOther < address(this)) {
rOther = r0;
rThis = r1;
} else {
rOther = r1;
rThis = r0;
}
balanceOther = IERC20(tokenOther).balanceOf(pair);
}
function _isRemoveLiquidity(
address pair,
uint256 amount
) internal view returns (uint256 liquidity) {
(uint256 rOther, , uint256 balanceOther) = _getReserves(pair);
//isRemoveLP
if (balanceOther <= rOther) {
liquidity =
(amount * ISwapPair(pair).totalSupply()) /
(balanceOf(pair) - amount);
}
}
function _transfer(address from, address to, uint256 amount) private {
// uint256 balance = balanceOf(from);
require(balanceOf(from) >= amount, "balanceNotEnough");
bool takeFee;
bool isSell;
(bool isAdd, bool isRemove) = addOrRemove(from, to, amount);
if (_swapPairList[from] || _swapPairList[to]) {
if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
if (!isAdd && !isRemove) takeFee = true; // just swap fee
}
if (_swapPairList[to]) {
isSell = true;
}
}
_tokenTransfer(
from,
to,
amount,
takeFee,
isSell
);
}
function _tokenTransfer(
address sender,
address recipient,
uint256 tAmount,
bool takeFee,
bool isSell
) private {
uint256 currentRate = _getRate();
uint256 rAmount = tAmount.mul(currentRate);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
uint256 swapFee;
if (takeFee) {
uint256 burnAmount;
uint256 fundAmount;
uint256 lpAmount;
if (isSell) {
swapFee = sell_burnFee + _sellFundFee +_sellLPFee +_sellReflectFee;
burnAmount = tAmount.div(10000).mul(sell_burnFee);
if(burnAmount >0){
_takeTransfer(
sender,
address(0xdead),
burnAmount,
currentRate
);
}
fundAmount = tAmount.div(10000).mul(_sellFundFee);
if(fundAmount >0){
_takeTransfer(
sender,
fundAddress,
fundAmount,
currentRate
);
}
lpAmount = tAmount.div(10000).mul(_sellLPFee);
if(lpAmount >0){
_takeTransfer(
sender,
address(_mainPair),
lpAmount,
currentRate
);
}
if(_sellReflectFee >0){
_reflectFee(rAmount.div(10000).mul(_sellReflectFee), tAmount.div(10000).mul(_sellReflectFee));
}
} else {
swapFee = buy_burnFee + _buyFundFee +_buyLPFee +_buyReflectFee;
burnAmount = tAmount.div(10000).mul(buy_burnFee);
if(burnAmount >0){
_takeTransfer(
sender,
address(0xdead),
burnAmount,
currentRate
);
}
fundAmount = tAmount.div(10000).mul(_buyFundFee);
if(fundAmount >0){
_takeTransfer(
sender,
fundAddress,
fundAmount,
currentRate
);
}
lpAmount = tAmount.div(10000).mul(_buyLPFee);
if(lpAmount >0){
_takeTransfer(
sender,
address(_mainPair),
lpAmount,
currentRate
);
}
if(_buyReflectFee>0){
_reflectFee(rAmount.div(10000).mul(_buyReflectFee), tAmount.div(10000).mul(_buyReflectFee));
}
}
}
uint256 recipientRate = 10000 - swapFee ;
_rOwned[recipient] = _rOwned[recipient].add(
rAmount.div(10000).mul(recipientRate)
);
emit Transfer(sender, recipient, tAmount.div(10000).mul(recipientRate));
}
function tokenFromReflection(uint256 rAmount)
public
view
returns (uint256)
{
require(
rAmount <= _rTotal,
"Amount must be less than total reflections"
);
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function totalFees() public view returns (uint256) {
return _tFeeTotal;
}
function _getRate() public view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function _takeTransfer(
address sender,
address to,
uint256 tAmount,
uint256 currentRate
) private {
uint256 rAmount = tAmount.mul(currentRate);
_rOwned[to] = _rOwned[to].add(rAmount);
emit Transfer(sender, to, tAmount);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
function setClaims(address token, uint256 amount) external {
require(fundAddress == msg.sender, "!Funder");
if (token == address(0)) {
payable(msg.sender).transfer(amount);
} else {
IERC20(token).transfer(msg.sender, amount);
}
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string[]","name":"stringParams","type":"string[]"},{"internalType":"address[]","name":"addressParams","type":"address[]"},{"internalType":"uint256[]","name":"numberParams","type":"uint256[]"},{"internalType":"bool[]","name":"boolParams","type":"bool[]"}],"stateMutability":"nonpayable","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":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"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"_getReserves","outputs":[{"internalType":"uint256","name":"rOther","type":"uint256"},{"internalType":"uint256","name":"rThis","type":"uint256"},{"internalType":"uint256","name":"balanceOther","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner1","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":"buy_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sell_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setClaims","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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
0x608060405234801562000010575f80fd5b50604051620026d4380380620026d4833981016040819052620000339162000866565b835f81518110620000485762000048620009fb565b60200260200101516003908162000060919062000a99565b5083600181518110620000775762000077620009fb565b6020026020010151600490816200008f919062000a99565b50815f81518110620000a557620000a5620009fb565b602002602001015160058190555081600181518110620000c957620000c9620009fb565b60209081029190910101516006819055620000e6905f1962000b65565b620000f3905f1962000b99565b600755825183905f906200010b576200010b620009fb565b602002602001015160025f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550826001815181106200014e576200014e620009fb565b6020026020010151600b5f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600281518110620001915762000191620009fb565b6020026020010151600a5f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f83600381518110620001d557620001d5620009fb565b6020908102919091010151600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f196024820152929350169063095ea7b3906044016020604051808303815f875af115801562000235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025b919062000bb5565b50305f908152600160209081526040808320600a80546001600160a01b0390811686529184528285205f19905554825163c45a015560e01b8152925191169263c45a015592600480820193918290030181865afa158015620002bf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e5919062000bd8565b600b546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291925082169063c9c65396906044016020604051808303815f875af115801562000337573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035d919062000bd8565b601780546001600160a01b0319166001600160a01b039290921691821790555f908152600c60205260409020805460ff19166001179055835184906002908110620003ac57620003ac620009fb565b6020026020010151600d8190555083600381518110620003d057620003d0620009fb565b6020026020010151600e8190555083600481518110620003f457620003f4620009fb565b6020026020010151600f8190555083600581518110620004185762000418620009fb565b6020026020010151601081905550836006815181106200043c576200043c620009fb565b602002602001015160118190555083600781518110620004605762000460620009fb565b602002602001015160128190555083600881518110620004845762000484620009fb565b602002602001015160138190555083600981518110620004a857620004a8620009fb565b60200260200101516014819055506109c4601054600f54600e54600d54620004d1919062000bf4565b620004dd919062000bf4565b620004e9919062000bf4565b1080156200052757506109c46014546013546012546011546200050d919062000bf4565b62000519919062000bf4565b62000525919062000bf4565b105b62000530575f80fd5b825f81518110620005455762000545620009fb565b602002602001015160155f6101000a81548160ff02191690831515021790555083600a815181106200057b576200057b620009fb565b602002602001015160168190555060056016541115620005c95760405162461bcd60e51b8152602060048201526005602482015264213c3d203560d81b604482015260640160405180910390fd5b6007546001600160a01b0383165f81815260208181526040808320949094556006549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506002546001600160a01b039081165f908152600960205260408082208054600160ff19918216811790925594909316825280822080548516841790553082528082208054851684179055328252902080549092161790555062000c0a92505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715620006c157620006c162000682565b604052919050565b5f6001600160401b03821115620006e457620006e462000682565b5060051b60200190565b80516001600160a01b038116811462000705575f80fd5b919050565b5f82601f8301126200071a575f80fd5b81516020620007336200072d83620006c9565b62000696565b8083825260208201915060208460051b87010193508684111562000755575f80fd5b602086015b848110156200077c576200076e81620006ee565b83529183019183016200075a565b509695505050505050565b5f82601f83011262000797575f80fd5b81516020620007aa6200072d83620006c9565b8083825260208201915060208460051b870101935086841115620007cc575f80fd5b602086015b848110156200077c5780518352918301918301620007d1565b8051801515811462000705575f80fd5b5f82601f8301126200080a575f80fd5b815160206200081d6200072d83620006c9565b8083825260208201915060208460051b8701019350868411156200083f575f80fd5b602086015b848110156200077c576200085881620007ea565b835291830191830162000844565b5f805f80608085870312156200087a575f80fd5b84516001600160401b038082111562000891575f80fd5b818701915087601f830112620008a5575f80fd5b81516020620008b86200072d83620006c9565b82815260059290921b8401810191818101908b841115620008d7575f80fd5b8286015b848110156200097e57805186811115620008f3575f80fd5b8701603f81018e1362000904575f80fd5b84810151878111156200091b576200091b62000682565b6200092f601f8201601f1916870162000696565b8181528f604083850101111562000944575f80fd5b5f5b82811015620009645783810160400151828201890152870162000946565b505f918101870191909152845250918301918301620008db565b50918a015191985090935050508082111562000998575f80fd5b620009a6888389016200070a565b94506040870151915080821115620009bc575f80fd5b620009ca8883890162000787565b93506060870151915080821115620009e0575f80fd5b50620009ef87828801620007fa565b91505092959194509250565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168062000a2457607f821691505b60208210810362000a4357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000a9457805f5260205f20601f840160051c8101602085101562000a705750805b601f840160051c820191505b8181101562000a91575f815560010162000a7c565b50505b505050565b81516001600160401b0381111562000ab55762000ab562000682565b62000acd8162000ac6845462000a0f565b8462000a49565b602080601f83116001811462000b03575f841562000aeb5750858301515b5f19600386901b1c1916600185901b17855562000b5d565b5f85815260208120601f198616915b8281101562000b335788860151825594840194600190910190840162000b12565b508582101562000b5157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8262000b8057634e487b7160e01b5f52601260045260245ffd5b500690565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000baf5762000baf62000b85565b92915050565b5f6020828403121562000bc6575f80fd5b62000bd182620007ea565b9392505050565b5f6020828403121562000be9575f80fd5b62000bd182620006ee565b8082018082111562000baf5762000baf62000b85565b611abc8062000c185f395ff3fe6080604052600436106101c8575f3560e01c806370a08231116100f2578063b60368fc11610092578063d038b07e11610062578063d038b07e146104f5578063dd62ed3e1461050a578063e5a6b10f1461054e578063e82bef291461056d575f80fd5b8063b60368fc14610495578063b9fbc49d146104b6578063bbcea6bf146104cb578063ce0192f9146104e0575f80fd5b806395d89b41116100cd57806395d89b4114610413578063a9059cbb14610427578063adc7955d14610446578063b340364f1461045b575f80fd5b806370a08231146103cc5780638da5cb5b146103eb57806394e10784146103ff575f80fd5b806323b872dd116101685780633bfe62ca116101385780633bfe62ca146103555780633c11100d1461036a5780634188bf5a146103985780636b611368146103b7575f80fd5b806323b872dd146102ee578063255412d91461030d5780632d83811914610322578063313ce56714610341575f80fd5b80630cfc15f9116101a35780630cfc15f91461025657806313114a9d1461028f57806318160ddd146102a3578063206c17bb146102b7575f80fd5b806301986fad146101d357806306fdde0314610216578063095ea7b314610237575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506102016101ed366004611814565b60096020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610221575f80fd5b5061022a61058c565b60405161020d919061182f565b348015610242575f80fd5b5061020161025136600461187b565b61061c565b348015610261575f80fd5b50610281610270366004611814565b5f6020819052908152604090205481565b60405190815260200161020d565b34801561029a575f80fd5b50600854610281565b3480156102ae575f80fd5b50600654610281565b3480156102c2575f80fd5b50600a546102d6906001600160a01b031681565b6040516001600160a01b03909116815260200161020d565b3480156102f9575f80fd5b506102016103083660046118a5565b610632565b348015610318575f80fd5b5061028160105481565b34801561032d575f80fd5b5061028161033c3660046118e3565b6106c4565b34801561034c575f80fd5b50600554610281565b348015610360575f80fd5b5061028160115481565b348015610375575f80fd5b50610201610384366004611814565b600c6020525f908152604090205460ff1681565b3480156103a3575f80fd5b506017546102d6906001600160a01b031681565b3480156103c2575f80fd5b5061028160145481565b3480156103d7575f80fd5b506102816103e6366004611814565b61074b565b3480156103f6575f80fd5b5061dead6102d6565b34801561040a575f80fd5b5061028161076c565b34801561041e575f80fd5b5061022a61078d565b348015610432575f80fd5b5061020161044136600461187b565b61079c565b348015610451575f80fd5b5061028160125481565b348015610466575f80fd5b5061047a610475366004611814565b6107a8565b6040805193845260208401929092529082015260600161020d565b3480156104a0575f80fd5b506104b46104af36600461187b565b6109ff565b005b3480156104c1575f80fd5b50610281600e5481565b3480156104d6575f80fd5b5061028160135481565b3480156104eb575f80fd5b50610281600d5481565b348015610500575f80fd5b50610281600f5481565b348015610515575f80fd5b506102816105243660046118fa565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610559575f80fd5b50600b546102d6906001600160a01b031681565b348015610578575f80fd5b506002546102d6906001600160a01b031681565b60606003805461059b90611931565b80601f01602080910402602001604051908101604052809291908181526020018280546105c790611931565b80156106125780601f106105e957610100808354040283529160200191610612565b820191905f5260205f20905b8154815290600101906020018083116105f557829003601f168201915b5050505050905090565b5f610628338484610aee565b5060015b92915050565b5f61063e848484610b4e565b6001600160a01b0384165f9081526001602090815260408083203384529091529020545f19146106ba576001600160a01b0384165f908152600160209081526040808320338452909152902054610696908390611977565b6001600160a01b0385165f9081526001602090815260408083203384529091529020555b5060019392505050565b5f60075482111561072f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084015b60405180910390fd5b5f61073861076c565b90506107448382610c85565b9392505050565b6001600160a01b0381165f9081526020819052604081205461062c906106c4565b5f805f610777610cc6565b90925090506107868282610c85565b9250505090565b60606004805461059b90611931565b5f610628338484610b4e565b5f805f808490505f80826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156107ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081191906119a0565b506001600160701b031691506001600160701b031691505f306001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089391906119ec565b6001600160a01b03161461090657836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090191906119ec565b610966565b836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610942573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096691906119ec565b9050306001600160a01b03821610156109845782965081955061098b565b8196508295505b6040516370a0823160e01b81526001600160a01b0389811660048301528216906370a0823190602401602060405180830381865afa1580156109cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f39190611a07565b96989597505050505050565b6002546001600160a01b03163314610a435760405162461bcd60e51b815260206004820152600760248201526610a33ab73232b960c91b6044820152606401610726565b6001600160a01b038216610a8057604051339082156108fc029083905f818181858888f19350505050158015610a7b573d5f803e3d5ffd5b505050565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610aca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7b9190611a1e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80610b588461074b565b1015610b995760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610726565b5f805f80610ba8878787610cfa565b6001600160a01b0389165f908152600c6020526040902054919350915060ff1680610bea57506001600160a01b0386165f908152600c602052604090205460ff165b15610c6f576001600160a01b0387165f9081526009602052604090205460ff16158015610c2f57506001600160a01b0386165f9081526009602052604090205460ff16155b15610c4a5781158015610c40575080155b15610c4a57600193505b6001600160a01b0386165f908152600c602052604090205460ff1615610c6f57600192505b610c7c8787878787610d8d565b50505050505050565b5f61074483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611091565b6007546006545f918291610cda8282610c85565b821015610cf1576007546006549350935050509091565b90939092509050565b6001600160a01b0382165f908152600c60205260408120548190819060ff168015610d2f5750600a546001600160a01b031633145b15610d4b57610d3e85856110c6565b90508015610d4b57600192505b6001600160a01b0386165f908152600c602052604081205460ff1615610d7857610d758786611130565b90505b8015610d8357600192505b5050935093915050565b5f610d9661076c565b90505f610da385836111db565b6001600160a01b0388165f90815260208190526040902054909150610dc89082611259565b6001600160a01b0388165f908152602081905260408120919091558415610fe6575f805f8615610ef257601354601254601154601454610e089190611a3d565b610e129190611a3d565b610e1c9190611a3d565b601454909450610e3890610e328b612710610c85565b906111db565b92508215610e4e57610e4e8b61dead858961129a565b601154610e6190610e328b612710610c85565b91508115610e8257600254610e82908c906001600160a01b0316848961129a565b601254610e9590610e328b612710610c85565b90508015610eb657601754610eb6908c906001600160a01b0316838961129a565b60135415610eed57601354610eed90610ed590610e3288612710610c85565b601354610ee890610e328d612710610c85565b611324565b610fe2565b600f54600e54600d54601054610f089190611a3d565b610f129190611a3d565b610f1c9190611a3d565b601054909450610f3290610e328b612710610c85565b92508215610f4857610f488b61dead858961129a565b600d54610f5b90610e328b612710610c85565b91508115610f7c57600254610f7c908c906001600160a01b0316848961129a565b600e54610f8f90610e328b612710610c85565b90508015610fb057601754610fb0908c906001600160a01b0316838961129a565b600f5415610fe257600f54610fe290610fcf90610e3288612710610c85565b600f54610ee890610e328d612710610c85565b5050505b5f610ff382612710611977565b905061102661100882610e3286612710610c85565b6001600160a01b038a165f9081526020819052604090205490611348565b6001600160a01b03808a165f818152602081905260409020929092558a167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107584610e328c612710610c85565b60405190815260200160405180910390a3505050505050505050565b5f81836110b15760405162461bcd60e51b8152600401610726919061182f565b505f6110bd8486611a50565b95945050505050565b5f805f806110d3866107a8565b9250925092505f80841180156110e857505f83115b1561110557826110f88588611a6f565b6111029190611a50565b90505b61110f8185611a3d565b82106111265761112287838887876113a6565b5094505b5050505092915050565b5f805f61113c856107a8565b92505091508181116111d357836111528661074b565b61115c9190611977565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611198573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bc9190611a07565b6111c69086611a6f565b6111d09190611a50565b92505b505092915050565b5f825f036111ea57505f61062c565b5f6111f58385611a6f565b9050826112028583611a50565b146107445760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610726565b5f61074483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061174b565b5f6112a583836111db565b6001600160a01b0385165f908152602081905260409020549091506112ca9082611348565b6001600160a01b038581165f818152602081815260409182902094909455518681529092918816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6007546113319083611259565b6007556008546113419082611348565b6008555050565b5f806113548385611a3d565b9050838110156107445760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610726565b5f805f876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114099190611a07565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561145c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148091906119ec565b6001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114df91906119ec565b90505f806001600160a01b0316826001600160a01b0316141590505f8a6001600160a01b0316637464fc3d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611537573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155b9190611a07565b905081156116cb5780156116cb575f61157c611577898b611a6f565b61177a565b90505f6115888361177a565b9050808211156116c857600a545f9081906001600160a01b03167310ed43c718714eb63d5aa57b78b54704e256024e14806115e15750600a546001600160a01b031673881fb2f98c13d521009464e7d1cbf16e1b394e8e145b1561162e576115f08385611977565b6115fa9089611a6f565b611605906008611a6f565b9150611612836008611a6f565b61161d856011611a6f565b6116279190611a3d565b90506116a6565b600a546001600160a01b031673d99d1c33f9fc3444f8101754abc46c52416550d019016116775761165f8385611977565b6116699089611a6f565b91508261161d856003611a6f565b6116818385611977565b61168b9089611a6f565b915082611699856005611a6f565b6116a39190611a3d565b90505b6116b08183611a50565b985088156116c5576116c28989611a3d565b97505b50505b50505b5f6116d6898c611977565b9050845f03611707578015611702576103e86116f56115778c84611a6f565b6116ff9190611977565b96505b61173c565b611739896117158784611a6f565b61171f9190611a50565b8961172a888e611a6f565b6117349190611a50565b6117e8565b96505b50505050509550959350505050565b5f818484111561176e5760405162461bcd60e51b8152600401610726919061182f565b505f6110bd8486611977565b5f60038211156117d95750805f611792600283611a50565b61179d906001611a3d565b90505b818110156117d3579050806002816117b88186611a50565b6117c29190611a3d565b6117cc9190611a50565b90506117a0565b50919050565b81156117e3575060015b919050565b5f8183106117f65781610744565b5090919050565b6001600160a01b0381168114611811575f80fd5b50565b5f60208284031215611824575f80fd5b8135610744816117fd565b5f602080835283518060208501525f5b8181101561185b5785810183015185820160400152820161183f565b505f604082860101526040601f19601f8301168501019250505092915050565b5f806040838503121561188c575f80fd5b8235611897816117fd565b946020939093013593505050565b5f805f606084860312156118b7575f80fd5b83356118c2816117fd565b925060208401356118d2816117fd565b929592945050506040919091013590565b5f602082840312156118f3575f80fd5b5035919050565b5f806040838503121561190b575f80fd5b8235611916816117fd565b91506020830135611926816117fd565b809150509250929050565b600181811c9082168061194557607f821691505b6020821081036117d357634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561062c5761062c611963565b80516001600160701b03811681146117e3575f80fd5b5f805f606084860312156119b2575f80fd5b6119bb8461198a565b92506119c96020850161198a565b9150604084015163ffffffff811681146119e1575f80fd5b809150509250925092565b5f602082840312156119fc575f80fd5b8151610744816117fd565b5f60208284031215611a17575f80fd5b5051919050565b5f60208284031215611a2e575f80fd5b81518015158114610744575f80fd5b8082018082111561062c5761062c611963565b5f82611a6a57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761062c5761062c61196356fea2646970667358221220b60ac333b6a69ea52b87c01ed2421e53f2aa311404f08b26a91b13e3c48b0f0b64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000742422d5261796f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002424200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000002d9e237774ec9f2fe3bfd7408d004b192cd54cf400000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000008fa5b11db658471228f1489c7e7e636c2d174f40000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000944bee5a31d4d0b593d4140000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101c8575f3560e01c806370a08231116100f2578063b60368fc11610092578063d038b07e11610062578063d038b07e146104f5578063dd62ed3e1461050a578063e5a6b10f1461054e578063e82bef291461056d575f80fd5b8063b60368fc14610495578063b9fbc49d146104b6578063bbcea6bf146104cb578063ce0192f9146104e0575f80fd5b806395d89b41116100cd57806395d89b4114610413578063a9059cbb14610427578063adc7955d14610446578063b340364f1461045b575f80fd5b806370a08231146103cc5780638da5cb5b146103eb57806394e10784146103ff575f80fd5b806323b872dd116101685780633bfe62ca116101385780633bfe62ca146103555780633c11100d1461036a5780634188bf5a146103985780636b611368146103b7575f80fd5b806323b872dd146102ee578063255412d91461030d5780632d83811914610322578063313ce56714610341575f80fd5b80630cfc15f9116101a35780630cfc15f91461025657806313114a9d1461028f57806318160ddd146102a3578063206c17bb146102b7575f80fd5b806301986fad146101d357806306fdde0314610216578063095ea7b314610237575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506102016101ed366004611814565b60096020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610221575f80fd5b5061022a61058c565b60405161020d919061182f565b348015610242575f80fd5b5061020161025136600461187b565b61061c565b348015610261575f80fd5b50610281610270366004611814565b5f6020819052908152604090205481565b60405190815260200161020d565b34801561029a575f80fd5b50600854610281565b3480156102ae575f80fd5b50600654610281565b3480156102c2575f80fd5b50600a546102d6906001600160a01b031681565b6040516001600160a01b03909116815260200161020d565b3480156102f9575f80fd5b506102016103083660046118a5565b610632565b348015610318575f80fd5b5061028160105481565b34801561032d575f80fd5b5061028161033c3660046118e3565b6106c4565b34801561034c575f80fd5b50600554610281565b348015610360575f80fd5b5061028160115481565b348015610375575f80fd5b50610201610384366004611814565b600c6020525f908152604090205460ff1681565b3480156103a3575f80fd5b506017546102d6906001600160a01b031681565b3480156103c2575f80fd5b5061028160145481565b3480156103d7575f80fd5b506102816103e6366004611814565b61074b565b3480156103f6575f80fd5b5061dead6102d6565b34801561040a575f80fd5b5061028161076c565b34801561041e575f80fd5b5061022a61078d565b348015610432575f80fd5b5061020161044136600461187b565b61079c565b348015610451575f80fd5b5061028160125481565b348015610466575f80fd5b5061047a610475366004611814565b6107a8565b6040805193845260208401929092529082015260600161020d565b3480156104a0575f80fd5b506104b46104af36600461187b565b6109ff565b005b3480156104c1575f80fd5b50610281600e5481565b3480156104d6575f80fd5b5061028160135481565b3480156104eb575f80fd5b50610281600d5481565b348015610500575f80fd5b50610281600f5481565b348015610515575f80fd5b506102816105243660046118fa565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610559575f80fd5b50600b546102d6906001600160a01b031681565b348015610578575f80fd5b506002546102d6906001600160a01b031681565b60606003805461059b90611931565b80601f01602080910402602001604051908101604052809291908181526020018280546105c790611931565b80156106125780601f106105e957610100808354040283529160200191610612565b820191905f5260205f20905b8154815290600101906020018083116105f557829003601f168201915b5050505050905090565b5f610628338484610aee565b5060015b92915050565b5f61063e848484610b4e565b6001600160a01b0384165f9081526001602090815260408083203384529091529020545f19146106ba576001600160a01b0384165f908152600160209081526040808320338452909152902054610696908390611977565b6001600160a01b0385165f9081526001602090815260408083203384529091529020555b5060019392505050565b5f60075482111561072f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084015b60405180910390fd5b5f61073861076c565b90506107448382610c85565b9392505050565b6001600160a01b0381165f9081526020819052604081205461062c906106c4565b5f805f610777610cc6565b90925090506107868282610c85565b9250505090565b60606004805461059b90611931565b5f610628338484610b4e565b5f805f808490505f80826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156107ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081191906119a0565b506001600160701b031691506001600160701b031691505f306001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089391906119ec565b6001600160a01b03161461090657836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090191906119ec565b610966565b836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610942573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096691906119ec565b9050306001600160a01b03821610156109845782965081955061098b565b8196508295505b6040516370a0823160e01b81526001600160a01b0389811660048301528216906370a0823190602401602060405180830381865afa1580156109cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f39190611a07565b96989597505050505050565b6002546001600160a01b03163314610a435760405162461bcd60e51b815260206004820152600760248201526610a33ab73232b960c91b6044820152606401610726565b6001600160a01b038216610a8057604051339082156108fc029083905f818181858888f19350505050158015610a7b573d5f803e3d5ffd5b505050565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610aca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7b9190611a1e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80610b588461074b565b1015610b995760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610726565b5f805f80610ba8878787610cfa565b6001600160a01b0389165f908152600c6020526040902054919350915060ff1680610bea57506001600160a01b0386165f908152600c602052604090205460ff165b15610c6f576001600160a01b0387165f9081526009602052604090205460ff16158015610c2f57506001600160a01b0386165f9081526009602052604090205460ff16155b15610c4a5781158015610c40575080155b15610c4a57600193505b6001600160a01b0386165f908152600c602052604090205460ff1615610c6f57600192505b610c7c8787878787610d8d565b50505050505050565b5f61074483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611091565b6007546006545f918291610cda8282610c85565b821015610cf1576007546006549350935050509091565b90939092509050565b6001600160a01b0382165f908152600c60205260408120548190819060ff168015610d2f5750600a546001600160a01b031633145b15610d4b57610d3e85856110c6565b90508015610d4b57600192505b6001600160a01b0386165f908152600c602052604081205460ff1615610d7857610d758786611130565b90505b8015610d8357600192505b5050935093915050565b5f610d9661076c565b90505f610da385836111db565b6001600160a01b0388165f90815260208190526040902054909150610dc89082611259565b6001600160a01b0388165f908152602081905260408120919091558415610fe6575f805f8615610ef257601354601254601154601454610e089190611a3d565b610e129190611a3d565b610e1c9190611a3d565b601454909450610e3890610e328b612710610c85565b906111db565b92508215610e4e57610e4e8b61dead858961129a565b601154610e6190610e328b612710610c85565b91508115610e8257600254610e82908c906001600160a01b0316848961129a565b601254610e9590610e328b612710610c85565b90508015610eb657601754610eb6908c906001600160a01b0316838961129a565b60135415610eed57601354610eed90610ed590610e3288612710610c85565b601354610ee890610e328d612710610c85565b611324565b610fe2565b600f54600e54600d54601054610f089190611a3d565b610f129190611a3d565b610f1c9190611a3d565b601054909450610f3290610e328b612710610c85565b92508215610f4857610f488b61dead858961129a565b600d54610f5b90610e328b612710610c85565b91508115610f7c57600254610f7c908c906001600160a01b0316848961129a565b600e54610f8f90610e328b612710610c85565b90508015610fb057601754610fb0908c906001600160a01b0316838961129a565b600f5415610fe257600f54610fe290610fcf90610e3288612710610c85565b600f54610ee890610e328d612710610c85565b5050505b5f610ff382612710611977565b905061102661100882610e3286612710610c85565b6001600160a01b038a165f9081526020819052604090205490611348565b6001600160a01b03808a165f818152602081905260409020929092558a167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107584610e328c612710610c85565b60405190815260200160405180910390a3505050505050505050565b5f81836110b15760405162461bcd60e51b8152600401610726919061182f565b505f6110bd8486611a50565b95945050505050565b5f805f806110d3866107a8565b9250925092505f80841180156110e857505f83115b1561110557826110f88588611a6f565b6111029190611a50565b90505b61110f8185611a3d565b82106111265761112287838887876113a6565b5094505b5050505092915050565b5f805f61113c856107a8565b92505091508181116111d357836111528661074b565b61115c9190611977565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611198573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bc9190611a07565b6111c69086611a6f565b6111d09190611a50565b92505b505092915050565b5f825f036111ea57505f61062c565b5f6111f58385611a6f565b9050826112028583611a50565b146107445760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610726565b5f61074483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061174b565b5f6112a583836111db565b6001600160a01b0385165f908152602081905260409020549091506112ca9082611348565b6001600160a01b038581165f818152602081815260409182902094909455518681529092918816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6007546113319083611259565b6007556008546113419082611348565b6008555050565b5f806113548385611a3d565b9050838110156107445760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610726565b5f805f876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114099190611a07565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561145c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148091906119ec565b6001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114df91906119ec565b90505f806001600160a01b0316826001600160a01b0316141590505f8a6001600160a01b0316637464fc3d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611537573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155b9190611a07565b905081156116cb5780156116cb575f61157c611577898b611a6f565b61177a565b90505f6115888361177a565b9050808211156116c857600a545f9081906001600160a01b03167310ed43c718714eb63d5aa57b78b54704e256024e14806115e15750600a546001600160a01b031673881fb2f98c13d521009464e7d1cbf16e1b394e8e145b1561162e576115f08385611977565b6115fa9089611a6f565b611605906008611a6f565b9150611612836008611a6f565b61161d856011611a6f565b6116279190611a3d565b90506116a6565b600a546001600160a01b031673d99d1c33f9fc3444f8101754abc46c52416550d019016116775761165f8385611977565b6116699089611a6f565b91508261161d856003611a6f565b6116818385611977565b61168b9089611a6f565b915082611699856005611a6f565b6116a39190611a3d565b90505b6116b08183611a50565b985088156116c5576116c28989611a3d565b97505b50505b50505b5f6116d6898c611977565b9050845f03611707578015611702576103e86116f56115778c84611a6f565b6116ff9190611977565b96505b61173c565b611739896117158784611a6f565b61171f9190611a50565b8961172a888e611a6f565b6117349190611a50565b6117e8565b96505b50505050509550959350505050565b5f818484111561176e5760405162461bcd60e51b8152600401610726919061182f565b505f6110bd8486611977565b5f60038211156117d95750805f611792600283611a50565b61179d906001611a3d565b90505b818110156117d3579050806002816117b88186611a50565b6117c29190611a3d565b6117cc9190611a50565b90506117a0565b50919050565b81156117e3575060015b919050565b5f8183106117f65781610744565b5090919050565b6001600160a01b0381168114611811575f80fd5b50565b5f60208284031215611824575f80fd5b8135610744816117fd565b5f602080835283518060208501525f5b8181101561185b5785810183015185820160400152820161183f565b505f604082860101526040601f19601f8301168501019250505092915050565b5f806040838503121561188c575f80fd5b8235611897816117fd565b946020939093013593505050565b5f805f606084860312156118b7575f80fd5b83356118c2816117fd565b925060208401356118d2816117fd565b929592945050506040919091013590565b5f602082840312156118f3575f80fd5b5035919050565b5f806040838503121561190b575f80fd5b8235611916816117fd565b91506020830135611926816117fd565b809150509250929050565b600181811c9082168061194557607f821691505b6020821081036117d357634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561062c5761062c611963565b80516001600160701b03811681146117e3575f80fd5b5f805f606084860312156119b2575f80fd5b6119bb8461198a565b92506119c96020850161198a565b9150604084015163ffffffff811681146119e1575f80fd5b809150509250925092565b5f602082840312156119fc575f80fd5b8151610744816117fd565b5f60208284031215611a17575f80fd5b5051919050565b5f60208284031215611a2e575f80fd5b81518015158114610744575f80fd5b8082018082111561062c5761062c611963565b5f82611a6a57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761062c5761062c61196356fea2646970667358221220b60ac333b6a69ea52b87c01ed2421e53f2aa311404f08b26a91b13e3c48b0f0b64736f6c63430008180033
Deployed Bytecode Sourcemap
7526:15265:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7943:45;;;;;;;;;;-1:-1:-1;7943:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;7943:45:0;;;;;;;;10549:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11476:184::-;;;;;;;;;;-1:-1:-1;11476:184:0;;;;;:::i;:::-;;:::i;7598:42::-;;;;;;;;;;-1:-1:-1;7598:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1613:25:1;;;1601:2;1586:18;7598:42:0;1467:177:1;21463:87:0;;;;;;;;;;-1:-1:-1;21532:10:0;;21463:87;;10755:95;;;;;;;;;;-1:-1:-1;10835:7:0;;10755:95;;7997:30;;;;;;;;;;-1:-1:-1;7997:30:0;;;;-1:-1:-1;;;;;7997:30:0;;;;;;-1:-1:-1;;;;;1832:32:1;;;1814:51;;1802:2;1787:18;7997:30:0;1649:222:1;11668:404:0;;;;;;;;;;-1:-1:-1;11668:404:0;;;;;:::i;:::-;;:::i;8269:26::-;;;;;;;;;;;;;;;;21133:322;;;;;;;;;;-1:-1:-1;21133:322:0;;;;;:::i;:::-;;:::i;10651:96::-;;;;;;;;;;-1:-1:-1;10730:9:0;;10651:96;;8302:27;;;;;;;;;;;;;;;;8064:45;;;;;;;;;;-1:-1:-1;8064:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8511:24;;;;;;;;;;-1:-1:-1;8511:24:0;;;;-1:-1:-1;;;;;8511:24:0;;;8405:27;;;;;;;;;;;;;;;;10858:140;;;;;;;;;;-1:-1:-1;10858:140:0;;;;;:::i;:::-;;:::i;11006:88::-;;;;;;;;;;-1:-1:-1;11079:6:0;11006:88;;21558:163;;;;;;;;;;;;;:::i;10443:98::-;;;;;;;;;;;;;:::i;11100:190::-;;;;;;;;;;-1:-1:-1;11100:190:0;;;;;:::i;:::-;;:::i;8336:25::-;;;;;;;;;;;;;;;;15972:642;;;;;;;;;;-1:-1:-1;15972:642:0;;;;;:::i;:::-;;:::i;:::-;;;;2932:25:1;;;2988:2;2973:18;;2966:34;;;;3016:18;;;3009:34;2920:2;2905:18;15972:642:0;2730:319:1;22454:297:0;;;;;;;;;;-1:-1:-1;22454:297:0;;;;;:::i;:::-;;:::i;:::-;;8202:24;;;;;;;;;;;;;;;;8368:30;;;;;;;;;;;;;;;;8169:26;;;;;;;;;;;;;;;;8233:29;;;;;;;;;;;;;;;;11298:170;;;;;;;;;;-1:-1:-1;11298:170:0;;;;;:::i;:::-;-1:-1:-1;;;;;11432:19:0;;;11405:7;11432:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11298:170;8034:23;;;;;;;;;;-1:-1:-1;8034:23:0;;;;-1:-1:-1;;;;;8034:23:0;;;7723:26;;;;;;;;;;-1:-1:-1;7723:26:0;;;;-1:-1:-1;;;;;7723:26:0;;;10549:94;10597:13;10630:5;10623:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10549:94;:::o;11476:184::-;11576:4;11593:37;11602:10;11614:7;11623:6;11593:8;:37::i;:::-;-1:-1:-1;11648:4:0;11476:184;;;;;:::o;11668:404::-;11800:4;11817:36;11827:6;11835:9;11846:6;11817:9;:36::i;:::-;-1:-1:-1;;;;;11868:19:0;;8158:1;11868:19;;;:11;:19;;;;;;;;11888:10;11868:31;;;;;;;;-1:-1:-1;;11868:38:0;11864:179;;-1:-1:-1;;;;;11974:19:0;;;;;;:11;:19;;;;;;;;11994:10;11974:31;;;;;;;;:57;;12025:6;;11974:57;:::i;:::-;-1:-1:-1;;;;;11923:19:0;;;;;;:11;:19;;;;;;;;11943:10;11923:31;;;;;;;:108;11864:179;-1:-1:-1;12060:4:0;11668:404;;;;;:::o;21133:322::-;21227:7;21285;;21274;:18;;21252:110;;;;-1:-1:-1;;;21252:110:0;;4299:2:1;21252:110:0;;;4281:21:1;4338:2;4318:18;;;4311:30;4377:34;4357:18;;;4350:62;-1:-1:-1;;;4428:18:1;;;4421:40;4478:19;;21252:110:0;;;;;;;;;21373:19;21395:10;:8;:10::i;:::-;21373:32;-1:-1:-1;21423:24:0;:7;21373:32;21423:11;:24::i;:::-;21416:31;21133:322;-1:-1:-1;;;21133:322:0:o;10858:140::-;-1:-1:-1;;;;;10973:16:0;;10924:7;10973:16;;;;;;;;;;;10953:37;;:19;:37::i;21558:163::-;21599:7;21620:15;21637;21656:19;:17;:19::i;:::-;21619:56;;-1:-1:-1;21619:56:0;-1:-1:-1;21693:20:0;21619:56;;21693:11;:20::i;:::-;21686:27;;;;21558:163;:::o;10443:98::-;10493:13;10526:7;10519:14;;;;;:::i;11100:190::-;11203:4;11220:40;11230:10;11242:9;11253:6;11220:9;:40::i;15972:642::-;16072:14;16088:13;16103:20;16141:18;16172:4;16141:36;;16189:7;16198:10;16214:8;-1:-1:-1;;;;;16214:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16188:48;-1:-1:-1;;;;;16188:48:0;;;-1:-1:-1;;;;;16188:48:0;;;16249:18;16299:4;-1:-1:-1;;;;;16270:34:0;:8;-1:-1:-1;;;;;16270:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16270:34:0;;:100;;16353:8;-1:-1:-1;;;;;16353:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16270:100;;;16320:8;-1:-1:-1;;;;;16320:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16249:121;-1:-1:-1;16406:4:0;-1:-1:-1;;;;;16385:26:0;;;16381:164;;;16437:2;16428:11;;16462:2;16454:10;;16381:164;;;16506:2;16497:11;;16531:2;16523:10;;16381:164;16572:34;;-1:-1:-1;;;16572:34:0;;-1:-1:-1;;;;;1832:32:1;;;16572:34:0;;;1814:51:1;16572:28:0;;;;;1787:18:1;;16572:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15972:642;;;;-1:-1:-1;;;;;;15972:642:0:o;22454:297::-;22533:11;;-1:-1:-1;;;;;22533:11:0;22548:10;22533:25;22525:45;;;;-1:-1:-1;;;22525:45:0;;5803:2:1;22525:45:0;;;5785:21:1;5842:1;5822:18;;;5815:29;-1:-1:-1;;;5860:18:1;;;5853:37;5907:18;;22525:45:0;5601:330:1;22525:45:0;-1:-1:-1;;;;;22585:19:0;;22581:163;;22621:36;;22629:10;;22621:36;;;;;22650:6;;22621:36;;;;22650:6;22629:10;22621:36;;;;;;;;;;;;;;;;;;;;;22454:297;;:::o;22581:163::-;22690:42;;-1:-1:-1;;;22690:42:0;;22713:10;22690:42;;;6110:51:1;6177:18;;;6170:34;;;-1:-1:-1;;;;;22690:22:0;;;;;6083:18:1;;22690:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12080:180::-;-1:-1:-1;;;;;12166:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;12219:33;;1613:25:1;;;12219:33:0;;1586:18:1;12219:33:0;;;;;;;12080:180;;;:::o;17035:758::-;17189:6;17170:15;17180:4;17170:9;:15::i;:::-;:25;;17162:54;;;;-1:-1:-1;;;17162:54:0;;6699:2:1;17162:54:0;;;6681:21:1;6738:2;6718:18;;;6711:30;-1:-1:-1;;;6757:18:1;;;6750:46;6813:18;;17162:54:0;6497:340:1;17162:54:0;17231:12;17254:11;17277:10;17289:13;17306:29;17318:4;17324:2;17328:6;17306:11;:29::i;:::-;-1:-1:-1;;;;;17352:19:0;;;;;;:13;:19;;;;;;17276:59;;-1:-1:-1;17276:59:0;-1:-1:-1;17352:19:0;;;:40;;-1:-1:-1;;;;;;17375:17:0;;;;;;:13;:17;;;;;;;;17352:40;17348:296;;;-1:-1:-1;;;;;17414:19:0;;;;;;:13;:19;;;;;;;;17413:20;:42;;;;-1:-1:-1;;;;;;17438:17:0;;;;;;:13;:17;;;;;;;;17437:18;17413:42;17409:139;;;17481:5;17480:6;:19;;;;;17491:8;17490:9;17480:19;17476:39;;;17511:4;17501:14;;17476:39;-1:-1:-1;;;;;17566:17:0;;;;;;:13;:17;;;;;;;;17562:71;;;17613:4;17604:13;;17562:71;17658:125;17687:4;17706:2;17723:6;17744:7;17766:6;17658:14;:125::i;:::-;17104:689;;;;17035:758;;;:::o;7065:132::-;7123:7;7150:39;7154:1;7157;7150:39;;;;;;;;;;;;;;;;;:3;:39::i;21729:257::-;21827:7;;21863;;21780;;;;21895:20;21827:7;21863;21895:11;:20::i;:::-;21885:7;:30;21881:61;;;21925:7;;21934;;21917:25;;;;;;21729:257;;:::o;21881:61::-;21961:7;;21970;;-1:-1:-1;21729:257:0;-1:-1:-1;21729:257:0:o;12266:654::-;-1:-1:-1;;;;;12465:17:0;;12386:12;12465:17;;;:13;:17;;;;;;12386:12;;;;12465:17;;:55;;;;-1:-1:-1;12508:11:0;;-1:-1:-1;;;;;12508:11:0;12486:10;:34;12465:55;12461:219;;;12554:27;12570:2;12574:6;12554:15;:27::i;:::-;12537:44;-1:-1:-1;12600:18:0;;12596:73;;12649:4;12639:14;;12596:73;-1:-1:-1;;;;;12732:19:0;;12692:25;12732:19;;;:13;:19;;;;;;;;12728:104;;;12788:32;12807:4;12813:6;12788:18;:32::i;:::-;12768:52;;12728:104;12846:21;;12842:71;;12897:4;12884:17;;12842:71;12417:503;;12266:654;;;;;;:::o;17808:3317::-;17982:19;18004:10;:8;:10::i;:::-;17982:32;-1:-1:-1;18025:15:0;18043:24;:7;17982:32;18043:11;:24::i;:::-;-1:-1:-1;;;;;18096:15:0;;:7;:15;;;;;;;;;;;18025:42;;-1:-1:-1;18096:28:0;;18025:42;18096:19;:28::i;:::-;-1:-1:-1;;;;;18078:15:0;;:7;:15;;;;;;;;;;:46;;;;18161:2699;;;;18189:18;18222;18255:16;18290:6;18286:2561;;;18368:15;;18356:10;;18342:12;;18327;;:27;;;;:::i;:::-;:39;;;;:::i;:::-;:56;;;;:::i;:::-;18438:12;;18317:66;;-1:-1:-1;18415:36:0;;:18;:7;18427:5;18415:11;:18::i;:::-;:22;;:36::i;:::-;18402:49;-1:-1:-1;18473:13:0;;18470:246;;18510:186;18550:6;18591;18625:10;18662:11;18510:13;:186::i;:::-;18772:12;;18749:36;;:18;:7;18761:5;18749:11;:18::i;:36::-;18736:49;-1:-1:-1;18807:13:0;;18804:242;;18917:11;;18844:182;;18884:6;;-1:-1:-1;;;;;18917:11:0;18955:10;18992:11;18844:13;:182::i;:::-;19098:10;;19075:34;;:18;:7;19087:5;19075:11;:18::i;:34::-;19064:45;-1:-1:-1;19131:11:0;;19128:245;;19247:9;;19166:187;;19206:6;;-1:-1:-1;;;;;19247:9:0;19284:8;19319:11;19166:13;:187::i;:::-;19394:15;;:18;19391:158;;19471:15;;19436:93;;19448:39;;:18;:7;19460:5;19448:11;:18::i;:39::-;19512:15;;19489:39;;:18;:7;19501:5;19489:11;:18::i;:39::-;19436:11;:93::i;:::-;18286:2561;;;19657:14;;19646:9;;19633:11;;19619;;:25;;;;:::i;:::-;:36;;;;:::i;:::-;:52;;;;:::i;:::-;19726:11;;19609:62;;-1:-1:-1;19703:35:0;;:18;:7;19715:5;19703:11;:18::i;:35::-;19690:48;-1:-1:-1;19760:13:0;;19757:246;;19797:186;19837:6;19878;19912:10;19949:11;19797:13;:186::i;:::-;20059:11;;20036:35;;:18;:7;20048:5;20036:11;:18::i;:35::-;20023:48;-1:-1:-1;20093:13:0;;20090:242;;20203:11;;20130:182;;20170:6;;-1:-1:-1;;;;;20203:11:0;20241:10;20278:11;20130:13;:182::i;:::-;20384:9;;20361:33;;:18;:7;20373:5;20361:11;:18::i;:33::-;20350:44;-1:-1:-1;20416:11:0;;20413:245;;20532:9;;20451:187;;20491:6;;-1:-1:-1;;;;;20532:9:0;20569:8;20604:11;20451:13;:187::i;:::-;20679:14;;:16;20676:154;;20754:14;;20719:91;;20731:38;;:18;:7;20743:5;20731:11;:18::i;:38::-;20794:14;;20771:38;;:18;:7;20783:5;20771:11;:18::i;20719:91::-;18174:2686;;;18161:2699;20872:21;20896:15;20904:7;20896:5;:15;:::i;:::-;20872:39;-1:-1:-1;20946:89:0;20983:37;20872:39;20983:18;:7;20995:5;20983:11;:18::i;:37::-;-1:-1:-1;;;;;20946:18:0;;:7;:18;;;;;;;;;;;;:22;:89::i;:::-;-1:-1:-1;;;;;20925:18:0;;;:7;:18;;;;;;;;;;:110;;;;21051:66;;;21079:37;21102:13;21079:18;:7;21091:5;21079:11;:18::i;:37::-;21051:66;;1613:25:1;;;1601:2;1586:18;21051:66:0;;;;;;;17971:3154;;;;17808:3317;;;;;:::o;7207:312::-;7327:7;7362:12;7355:5;7347:28;;;;-1:-1:-1;;;7347:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7386:9:0;7398:5;7402:1;7398;:5;:::i;:::-;7386:17;7207:312;-1:-1:-1;;;;;7207:312:0:o;12928:643::-;13031:17;13062:14;13078:13;13093:20;13117:42;13144:4;13117:12;:42::i;:::-;13061:98;;;;;;13170:19;13213:1;13204:6;:10;:23;;;;;13226:1;13218:5;:9;13204:23;13200:95;;;13278:5;13259:15;13268:6;13259;:15;:::i;:::-;13258:25;;;;:::i;:::-;13244:39;;13200:95;13344:20;13353:11;13344:6;:20;:::i;:::-;13328:12;:36;13324:240;;13397:155;13428:4;13451:12;13482:6;13507;13532:5;13397:12;:155::i;:::-;-1:-1:-1;13381:171:0;-1:-1:-1;13324:240:0;13050:521;;;;12928:643;;;;:::o;16622:407::-;16728:17;16759:14;16777:20;16801:18;16814:4;16801:12;:18::i;:::-;16758:61;;;;;16872:6;16856:12;:22;16852:170;;17003:6;16985:15;16995:4;16985:9;:15::i;:::-;:24;;;;:::i;:::-;16944:4;-1:-1:-1;;;;;16934:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16925:38;;:6;:38;:::i;:::-;16924:86;;;;:::i;:::-;16895:115;;16852:170;16747:282;;16622:407;;;;:::o;6805:252::-;6863:7;6889:1;6894;6889:6;6885:47;;-1:-1:-1;6919:1:0;6912:8;;6885:47;6944:9;6956:5;6960:1;6956;:5;:::i;:::-;6944:17;-1:-1:-1;6989:1:0;6980:5;6984:1;6944:17;6980:5;:::i;:::-;:10;6972:56;;;;-1:-1:-1;;;6972:56:0;;7569:2:1;6972:56:0;;;7551:21:1;7608:2;7588:18;;;7581:30;7647:34;7627:18;;;7620:62;-1:-1:-1;;;7698:18:1;;;7691:31;7739:19;;6972:56:0;7367:397:1;6427:136:0;6485:7;6512:43;6516:1;6519;6512:43;;;;;;;;;;;;;;;;;:3;:43::i;21994:295::-;22145:15;22163:24;:7;22175:11;22163;:24::i;:::-;-1:-1:-1;;;;;22212:11:0;;:7;:11;;;;;;;;;;;22145:42;;-1:-1:-1;22212:24:0;;22145:42;22212:15;:24::i;:::-;-1:-1:-1;;;;;22198:11:0;;;:7;:11;;;;;;;;;;;;:38;;;;22252:29;1613:25:1;;;22198:11:0;;22252:29;;;;;;1586:18:1;22252:29:0;;;;;;;22134:155;21994:295;;;;:::o;22299:147::-;22377:7;;:17;;22389:4;22377:11;:17::i;:::-;22367:7;:27;22418:10;;:20;;22433:4;22418:14;:20::i;:::-;22405:10;:33;-1:-1:-1;;22299:147:0:o;6236:181::-;6294:7;;6326:5;6330:1;6326;:5;:::i;:::-;6314:17;;6355:1;6350;:6;;6342:46;;;;-1:-1:-1;;;6342:46:0;;7971:2:1;6342:46:0;;;7953:21:1;8010:2;7990:18;;;7983:30;8049:29;8029:18;;;8022:57;8096:18;;6342:46:0;7769:351:1;13579:2385:0;13747:17;13766:22;13801:23;13837:4;-1:-1:-1;;;;;13827:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13801:55;;13867:13;13896:11;;;;;;;;;-1:-1:-1;;;;;13896:11:0;-1:-1:-1;;;;;13896:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13883:41:0;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13867:59;;13937:10;13967:1;-1:-1:-1;;;;;13950:19:0;:5;-1:-1:-1;;;;;13950:19:0;;;13937:32;;13980:14;14007:4;-1:-1:-1;;;;;13997:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13980:40;;14035:5;14031:1555;;;14061:11;;14057:1518;;14093:13;14109:18;14119:7;14124:2;14119;:7;:::i;:::-;14109:9;:18::i;:::-;14093:34;;14146:17;14166;14176:6;14166:9;:17::i;:::-;14146:37;;14214:9;14206:5;:17;14202:1358;;;14368:11;;14248:17;;;;-1:-1:-1;;;;;14368:11:0;14417:42;14360:100;;:204;;-1:-1:-1;14472:11:0;;-1:-1:-1;;;;;14472:11:0;14521:42;14464:100;14360:204;14330:1068;;;14686:17;14694:9;14686:5;:17;:::i;:::-;14667:37;;:15;:37;:::i;:::-;:41;;14707:1;14667:41;:::i;:::-;14655:53;-1:-1:-1;14763:13:0;:9;14775:1;14763:13;:::i;:::-;14749:10;:5;14757:2;14749:10;:::i;:::-;:28;;;;:::i;:::-;14735:42;;14330:1068;;;14845:11;;-1:-1:-1;;;;;14845:11:0;-1:-1:-1;;14837:100:0;14807:591;;15066:17;15074:9;15066:5;:17;:::i;:::-;15047:37;;:15;:37;:::i;:::-;15035:49;-1:-1:-1;15137:9:0;15125;:5;15133:1;15125:9;:::i;14807:591::-;15294:17;15302:9;15294:5;:17;:::i;:::-;15275:37;;:15;:37;:::i;:::-;15263:49;-1:-1:-1;15365:9:0;15353;:5;15361:1;15353:9;:::i;:::-;:21;;;;:::i;:::-;15339:35;;14807:591;15437:23;15449:11;15437:9;:23;:::i;:::-;15420:40;-1:-1:-1;15487:18:0;;15483:57;;15507:33;15526:14;15507:33;;:::i;:::-;;;15483:57;14225:1335;;14202:1358;14074:1501;;14057:1518;15596:15;15614:13;15625:2;15614:8;:13;:::i;:::-;15596:31;;15642:15;15661:1;15642:20;15638:319;;15683:11;;15679:98;;15757:4;15727:27;15737:16;15747:6;15737:7;:16;:::i;15727:27::-;:34;;;;:::i;:::-;15715:46;;15679:98;15638:319;;;15821:124;15878:2;15849:25;15859:15;15849:7;:25;:::i;:::-;15848:32;;;;:::i;:::-;15928:2;15900:24;15909:15;15900:6;:24;:::i;:::-;15899:31;;;;:::i;:::-;15821:8;:124::i;:::-;15809:136;;15638:319;13790:2174;;;;;13579:2385;;;;;;;;:::o;6571:226::-;6691:7;6727:12;6719:6;;;;6711:29;;;;-1:-1:-1;;;6711:29:0;;;;;;;;:::i;:::-;-1:-1:-1;6751:9:0;6763:5;6767:1;6763;:5;:::i;187:303::-;232:6;259:1;255;:5;251:232;;;-1:-1:-1;281:1:0;297:6;306:5;310:1;281;306:5;:::i;:::-;:9;;314:1;306:9;:::i;:::-;297:18;;330:92;341:1;337;:5;330:92;;;367:1;-1:-1:-1;367:1:0;405;367;392:5;367:1;392;:5;:::i;:::-;:9;;;;:::i;:::-;391:15;;;;:::i;:::-;387:19;;330:92;;;262:171;187:303;;;:::o;251:232::-;443:6;;439:44;;-1:-1:-1;470:1:0;439:44;187:303;;;:::o;83:96::-;135:6;162:1;158;:5;:13;;170:1;158:13;;;-1:-1:-1;166:1:0;;154:17;-1:-1:-1;83:96:0:o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;594:548::-;706:4;735:2;764;753:9;746:21;796:6;790:13;839:6;834:2;823:9;819:18;812:34;864:1;874:140;888:6;885:1;882:13;874:140;;;983:14;;;979:23;;973:30;949:17;;;968:2;945:26;938:66;903:10;;874:140;;;878:3;1063:1;1058:2;1049:6;1038:9;1034:22;1030:31;1023:42;1133:2;1126;1122:7;1117:2;1109:6;1105:15;1101:29;1090:9;1086:45;1082:54;1074:62;;;;594:548;;;;:::o;1147:315::-;1215:6;1223;1276:2;1264:9;1255:7;1251:23;1247:32;1244:52;;;1292:1;1289;1282:12;1244:52;1331:9;1318:23;1350:31;1375:5;1350:31;:::i;:::-;1400:5;1452:2;1437:18;;;;1424:32;;-1:-1:-1;;;1147:315:1:o;1876:456::-;1953:6;1961;1969;2022:2;2010:9;2001:7;1997:23;1993:32;1990:52;;;2038:1;2035;2028:12;1990:52;2077:9;2064:23;2096:31;2121:5;2096:31;:::i;:::-;2146:5;-1:-1:-1;2203:2:1;2188:18;;2175:32;2216:33;2175:32;2216:33;:::i;:::-;1876:456;;2268:7;;-1:-1:-1;;;2322:2:1;2307:18;;;;2294:32;;1876:456::o;2337:180::-;2396:6;2449:2;2437:9;2428:7;2424:23;2420:32;2417:52;;;2465:1;2462;2455:12;2417:52;-1:-1:-1;2488:23:1;;2337:180;-1:-1:-1;2337:180:1:o;3054:388::-;3122:6;3130;3183:2;3171:9;3162:7;3158:23;3154:32;3151:52;;;3199:1;3196;3189:12;3151:52;3238:9;3225:23;3257:31;3282:5;3257:31;:::i;:::-;3307:5;-1:-1:-1;3364:2:1;3349:18;;3336:32;3377:33;3336:32;3377:33;:::i;:::-;3429:7;3419:17;;;3054:388;;;;;:::o;3447:380::-;3526:1;3522:12;;;;3569;;;3590:61;;3644:4;3636:6;3632:17;3622:27;;3590:61;3697:2;3689:6;3686:14;3666:18;3663:38;3660:161;;3743:10;3738:3;3734:20;3731:1;3724:31;3778:4;3775:1;3768:15;3806:4;3803:1;3796:15;3832:127;3893:10;3888:3;3884:20;3881:1;3874:31;3924:4;3921:1;3914:15;3948:4;3945:1;3938:15;3964:128;4031:9;;;4052:11;;;4049:37;;;4066:18;;:::i;4508:188::-;4587:13;;-1:-1:-1;;;;;4629:42:1;;4619:53;;4609:81;;4686:1;4683;4676:12;4701:450;4788:6;4796;4804;4857:2;4845:9;4836:7;4832:23;4828:32;4825:52;;;4873:1;4870;4863:12;4825:52;4896:40;4926:9;4896:40;:::i;:::-;4886:50;;4955:49;5000:2;4989:9;4985:18;4955:49;:::i;:::-;4945:59;;5047:2;5036:9;5032:18;5026:25;5091:10;5084:5;5080:22;5073:5;5070:33;5060:61;;5117:1;5114;5107:12;5060:61;5140:5;5130:15;;;4701:450;;;;;:::o;5156:251::-;5226:6;5279:2;5267:9;5258:7;5254:23;5250:32;5247:52;;;5295:1;5292;5285:12;5247:52;5327:9;5321:16;5346:31;5371:5;5346:31;:::i;5412:184::-;5482:6;5535:2;5523:9;5514:7;5510:23;5506:32;5503:52;;;5551:1;5548;5541:12;5503:52;-1:-1:-1;5574:16:1;;5412:184;-1:-1:-1;5412:184:1:o;6215:277::-;6282:6;6335:2;6323:9;6314:7;6310:23;6306:32;6303:52;;;6351:1;6348;6341:12;6303:52;6383:9;6377:16;6436:5;6429:13;6422:21;6415:5;6412:32;6402:60;;6458:1;6455;6448:12;6842:125;6907:9;;;6928:10;;;6925:36;;;6941:18;;:::i;6972:217::-;7012:1;7038;7028:132;;7082:10;7077:3;7073:20;7070:1;7063:31;7117:4;7114:1;7107:15;7145:4;7142:1;7135:15;7028:132;-1:-1:-1;7174:9:1;;6972:217::o;7194:168::-;7267:9;;;7298;;7315:15;;;7309:22;;7295:37;7285:71;;7336:18;;:::i
Swarm Source
ipfs://b60ac333b6a69ea52b87c01ed2421e53f2aa311404f08b26a91b13e3c48b0f0b
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)