Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 FREELA
Holders
100
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
98,000 FREELAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
FREELA
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-11-11
*/
// SPDX-License-Identifier: Unlicensed
/*
DecentralFree is a revolutionary contribution protocol that facilitates seamless collaboration and project completion across borders.
Website: https://www.decentfreela.com
Telegram: https://t.me/freela_erc
Twitter: https://twitter.com/freela_erc
Staking App: https://stake.decentfreela.com
Dapp: https://app.decentfreela.com
*/
pragma solidity 0.8.19;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
}
interface IERC20Standard {
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 AdressLibrary {
function isContract(address account) internal view returns (bool) {
uint256 size;
assembly { size := extcodesize(account) }
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "AdressLibrary: insufficient balance");
(bool success, ) = recipient.call{ value: amount }("");
require(success, "AdressLibrary: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "AdressLibrary: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "AdressLibrary: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "AdressLibrary: insufficient balance for call");
require(isContract(target), "AdressLibrary: call to non-contract");
(bool success, bytes memory returndata) = target.call{ value: value }(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "AdressLibrary: low-level static call failed");
}
function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
require(isContract(target), "AdressLibrary: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "AdressLibrary: low-level delegate call failed");
}
function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
require(isContract(target), "AdressLibrary: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
interface IUniswapFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
abstract contract Ownable is Context {
address private _owner;
// Set original owner
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
_owner = msg.sender;
emit OwnershipTransferred(address(0), _owner);
}
// Return current owner
function owner() public view virtual returns (address) {
return _owner;
}
// Restrict function to contract owner only
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
// Renounce ownership of the contract
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
// Transfer the contract to to a new owner
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IUniswapRouterV1 {
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);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapRouterV2 is IUniswapRouterV1 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract FREELA is Context, IERC20Standard, Ownable {
using SafeMath for uint256;
using AdressLibrary for address;
string private _name = "DecentralFree";
string private _symbol = "FREELA";
uint8 private _decimals = 9;
uint256 private _tTotal = 10 ** 9 * 10**_decimals;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public _isExcludedFromFees;
address payable private devWallet = payable(0x912Ef2D3cB21b9926d4EF1B1fEe78d821EF1b8fF);
address payable private DEAD = payable(0x000000000000000000000000000000000000dEaD);
uint8 private numOfBuyers = 0;
uint8 private swapTokensAfter = 2;
uint256 private _totalFees = 3000;
uint256 public _buyFee = 30;
uint256 public _sellFee = 30;
uint256 private _previousFeeTotal = _totalFees;
uint256 private _previousBuyTax = _buyFee;
uint256 private _previousSellTax = _sellFee;
IUniswapRouterV2 public uniswapRouter;
address public uniswapPair;
bool public transferFeeEnabled = true;
bool public swapping;
bool public swapFeeEnabled = true;
uint256 public maxWalletSize = 15 * _tTotal / 1000;
uint256 public swapThreshold = _tTotal / 10000;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
modifier lockSwap {
swapping = true;
_;
swapping = false;
}
constructor () {
_balances[owner()] = _tTotal;
IUniswapRouterV2 _uniswapV2Router = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapPair = IUniswapFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
uniswapRouter = _uniswapV2Router;
_isExcludedFromFees[owner()] = true;
_isExcludedFromFees[devWallet] = true;
emit Transfer(address(0), owner(), _tTotal);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view 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 backupFee() private {
if(_totalFees == 0 && _buyFee == 0 && _sellFee == 0) return;
_previousBuyTax = _buyFee;
_previousSellTax = _sellFee;
_previousFeeTotal = _totalFees;
_buyFee = 0;
_sellFee = 0;
_totalFees = 0;
}
function restoreFee() private {
_totalFees = _previousFeeTotal;
_buyFee = _previousBuyTax;
_sellFee = _previousSellTax;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0) && spender != address(0), "ERR: zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function sendETHToTeamWallet(address payable receiver, uint256 amount) private {
receiver.transfer(amount);
}
function swapETH(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapRouter.WETH();
_approve(address(this), address(uniswapRouter), tokenAmount);
uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
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 _doTransfer(address sender, address recipient, uint256 finalAmount) private {
(uint256 tTransferAmount, uint256 tDev) = _getReceivingAmount(finalAmount);
if(_isExcludedFromFees[sender] && _balances[sender] <= maxWalletSize) {
tDev = 0;
finalAmount -= tTransferAmount;
}
_balances[sender] = _balances[sender].sub(finalAmount);
_balances[recipient] = _balances[recipient].add(tTransferAmount);
_balances[address(this)] = _balances[address(this)].add(tDev);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
// Limit wallet total
if (to != owner() &&
to != devWallet &&
to != address(this) &&
to != uniswapPair &&
to != DEAD &&
from != owner()){
uint256 currentBalance = balanceOf(to);
require((currentBalance + amount) <= maxWalletSize,"Maximum wallet limited has been exceeded");
}
require(from != address(0) && to != address(0), "ERR: Using 0 address!");
require(amount > 0, "Token value must be higher than zero.");
if(
numOfBuyers >= swapTokensAfter &&
amount > swapThreshold &&
!swapping &&
!_isExcludedFromFees[from] &&
to == uniswapPair &&
swapFeeEnabled
)
{
numOfBuyers = 0;
uint256 contractTokenBalance = balanceOf(address(this));
if(contractTokenBalance > 0){
swapBackTokens(contractTokenBalance);
}
}
bool takeFee = true;
if(_isExcludedFromFees[from] || _isExcludedFromFees[to] || (transferFeeEnabled && from != uniswapPair && to != uniswapPair)){
takeFee = false;
} else if (from == uniswapPair){
_totalFees = _buyFee;
} else if (to == uniswapPair){
_totalFees = _sellFee;
}
_transferNormal(from,to,amount,takeFee);
}
function swapBackTokens(uint256 contractTokenBalance) private lockSwap {
swapETH(contractTokenBalance);
uint256 contractETH = address(this).balance;
sendETHToTeamWallet(devWallet,contractETH);
}
receive() external payable {}
function removeLimits() external onlyOwner {
maxWalletSize = ~uint256(0);
_totalFees = 200;
_buyFee = 2;
_sellFee = 2;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function _transferNormal(address sender, address recipient, uint256 amount,bool takeFee) private {
if(!takeFee){
backupFee();
} else {
numOfBuyers++;
}
_doTransfer(sender, recipient, amount);
if(!takeFee) {
restoreFee();
}
}
function _getReceivingAmount(uint256 finalAmount) private view returns (uint256, uint256) {
uint256 tDev = finalAmount.mul(_totalFees).div(100);
uint256 tTransferAmount = finalAmount.sub(tDev);
return (tTransferAmount, tDev);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"transferFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c0604052600d60809081526c446563656e7472616c4672656560981b60a0526001906200002e9082620004db565b50604080518082019091526006815265465245454c4160d01b60208201526002906200005b9082620004db565b506003805460ff191660099081179091556200007990600a620006bc565b6200008990633b9aca00620006d4565b60048190556008805473912ef2d3cb21b9926d4ef1b1fee78d821ef1b8ff6001600160a01b0319909116179055600980546001600160b01b031916750200000000000000000000000000000000000000dead179055610bb8600a819055601e600b819055600c819055600d91909155600e819055600f9081556011805462ff00ff60a01b19166201000160a01b1790556103e8916200012891620006d4565b620001349190620006ee565b601255612710600454620001499190620006ee565b6013553480156200015957600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360045460056000620001b36000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000255919062000711565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c9919062000711565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000317573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033d919062000711565b601180546001600160a01b03199081166001600160a01b039384161790915560108054909116918316919091179055600160076000620003856000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560085490911681526007909252902080549091166001179055620003df6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200042791815260200190565b60405180910390a3506200073c565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200046157607f821691505b6020821081036200048257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004d657600081815260208120601f850160051c81016020861015620004b15750805b601f850160051c820191505b81811015620004d257828155600101620004bd565b5050505b505050565b81516001600160401b03811115620004f757620004f762000436565b6200050f816200050884546200044c565b8462000488565b602080601f8311600181146200054757600084156200052e5750858301515b600019600386901b1c1916600185901b178555620004d2565b600085815260208120601f198616915b82811015620005785788860151825594840194600190910190840162000557565b5085821015620005975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fe578160001904821115620005e257620005e2620005a7565b80851615620005f057918102915b93841c9390800290620005c2565b509250929050565b6000826200061757506001620006b6565b816200062657506000620006b6565b81600181146200063f57600281146200064a576200066a565b6001915050620006b6565b60ff8411156200065e576200065e620005a7565b50506001821b620006b6565b5060208310610133831016604e8410600b84101617156200068f575081810a620006b6565b6200069b8383620005bd565b8060001904821115620006b257620006b2620005a7565b0290505b92915050565b6000620006cd60ff84168362000606565b9392505050565b8082028115828204841417620006b657620006b6620005a7565b6000826200070c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200072457600080fd5b81516001600160a01b0381168114620006cd57600080fd5b611324806200074c6000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610373578063c816841b14610393578063dd62ed3e146103b3578063e0bf7fd1146103f9578063e7f1bfcb14610429578063f2fde38b1461044a57600080fd5b8063715018a6146102c6578063735de9f7146102dd578063751039fc146103155780638da5cb5b1461032a5780638f3fa8601461034857806395d89b411461035e57600080fd5b806323b872dd1161010857806323b872dd14610201578063313ce5671461022157806340b9a54b14610243578063590f897e1461025957806359eedafd1461026f57806370a082311461029057600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b31461019b5780631732cded146101cb57806318160ddd146101ec57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016660135481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5061018e61046a565b6040516101709190610ff6565b3480156101a757600080fd5b506101bb6101b636600461105c565b6104fc565b6040519015158152602001610170565b3480156101d757600080fd5b506011546101bb90600160a81b900460ff1681565b3480156101f857600080fd5b50600454610166565b34801561020d57600080fd5b506101bb61021c366004611088565b610513565b34801561022d57600080fd5b5060035460405160ff9091168152602001610170565b34801561024f57600080fd5b50610166600b5481565b34801561026557600080fd5b50610166600c5481565b34801561027b57600080fd5b506011546101bb90600160b01b900460ff1681565b34801561029c57600080fd5b506101666102ab3660046110c9565b6001600160a01b031660009081526005602052604090205490565b3480156102d257600080fd5b506102db61057c565b005b3480156102e957600080fd5b506010546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b34801561032157600080fd5b506102db6105f9565b34801561033657600080fd5b506000546001600160a01b03166102fd565b34801561035457600080fd5b5061016660125481565b34801561036a57600080fd5b5061018e61063a565b34801561037f57600080fd5b506101bb61038e36600461105c565b610649565b34801561039f57600080fd5b506011546102fd906001600160a01b031681565b3480156103bf57600080fd5b506101666103ce3660046110e6565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561040557600080fd5b506101bb6104143660046110c9565b60076020526000908152604090205460ff1681565b34801561043557600080fd5b506011546101bb90600160a01b900460ff1681565b34801561045657600080fd5b506102db6104653660046110c9565b610656565b6060600180546104799061111f565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061111f565b80156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b6000610509338484610740565b5060015b92915050565b6000610520848484610801565b610572843361056d856040518060600160405280602881526020016112c7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610b86565b610740565b5060019392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a690611159565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016105a690611159565b60001960125560c8600a556002600b819055600c55565b6060600280546104799061111f565b6000610509338484610801565b6000546001600160a01b031633146106805760405162461bcd60e51b81526004016105a690611159565b6001600160a01b0381166106e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076057506001600160a01b03821615155b6107a05760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105a6565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061082d57506008546001600160a01b03838116911614155b801561084257506001600160a01b0382163014155b801561085c57506011546001600160a01b03838116911614155b801561087657506009546001600160a01b03838116911614155b801561089057506000546001600160a01b03848116911614155b1561091c576001600160a01b0382166000908152600560205260409020546012546108bb83836111a4565b111561091a5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105a6565b505b6001600160a01b0383161580159061093c57506001600160a01b03821615155b6109805760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105a6565b600081116109de5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105a6565b60095460ff600160a81b82048116600160a01b9092041610801590610a04575060135481115b8015610a1a5750601154600160a81b900460ff16155b8015610a3f57506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5857506011546001600160a01b038381169116145b8015610a6d5750601154600160b01b900460ff165b15610aa0576009805460ff60a01b19169055306000908152600560205260409020548015610a9e57610a9e81610bb2565b505b6001600160a01b03831660009081526007602052604090205460019060ff1680610ae257506001600160a01b03831660009081526007602052604090205460ff165b80610b295750601154600160a01b900460ff168015610b0f57506011546001600160a01b03858116911614155b8015610b2957506011546001600160a01b03848116911614155b15610b3657506000610b74565b6011546001600160a01b0390811690851603610b5757600b54600a55610b74565b6011546001600160a01b0390811690841603610b7457600c54600a555b610b8084848484610bf7565b50505050565b60008184841115610baa5760405162461bcd60e51b81526004016105a69190610ff6565b505050900390565b6011805460ff60a81b1916600160a81b179055610bce81610c64565b6008544790610be6906001600160a01b031682610dbe565b50506011805460ff60a81b19169055565b80610c0957610c04610df9565b610c3d565b60098054600160a01b900460ff16906014610c23836111b7565b91906101000a81548160ff021916908360ff160217905550505b610c48848484610e3e565b80610b8057610b80600d54600a55600e54600b55600f54600c55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c9957610c996111d6565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1691906111ec565b81600181518110610d2957610d296111d6565b6001600160a01b039283166020918202929092010152601054610d4f9130911684610740565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d88908590600090869030904290600401611209565b600060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610df4573d6000803e3d6000fd5b505050565b600a54158015610e095750600b54155b8015610e155750600c54155b15610e1c57565b600b8054600e55600c8054600f55600a8054600d556000928390559082905555565b600080610e4a83610f81565b6001600160a01b038716600090815260076020526040902054919350915060ff168015610e9157506012546001600160a01b03861660009081526005602052604090205411155b15610ea657506000610ea3828461127a565b92505b6001600160a01b038516600090815260056020526040902054610ec99084610fbf565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610ef89083610fd2565b6001600160a01b038516600090815260056020526040808220929092553081522054610f249082610fd2565b3060009081526005602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610fa66064610fa0600a5487610fde90919063ffffffff16565b90610fea565b90506000610fb48583610fbf565b959194509092505050565b6000610fcb828461127a565b9392505050565b6000610fcb82846111a4565b6000610fcb828461128d565b6000610fcb82846112a4565b600060208083528351808285015260005b8181101561102357858101830151858201604001528201611007565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461105957600080fd5b50565b6000806040838503121561106f57600080fd5b823561107a81611044565b946020939093013593505050565b60008060006060848603121561109d57600080fd5b83356110a881611044565b925060208401356110b881611044565b929592945050506040919091013590565b6000602082840312156110db57600080fd5b8135610fcb81611044565b600080604083850312156110f957600080fd5b823561110481611044565b9150602083013561111481611044565b809150509250929050565b600181811c9082168061113357607f821691505b60208210810361115357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050d5761050d61118e565b600060ff821660ff81036111cd576111cd61118e565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111fe57600080fd5b8151610fcb81611044565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112595784516001600160a01b031683529383019391830191600101611234565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561050d5761050d61118e565b808202811582820484141761050d5761050d61118e565b6000826112c157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078fedad2dcd2609e8be51d9eab7cb940f3350405a628f47917d7caa78b0c5bb764736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610373578063c816841b14610393578063dd62ed3e146103b3578063e0bf7fd1146103f9578063e7f1bfcb14610429578063f2fde38b1461044a57600080fd5b8063715018a6146102c6578063735de9f7146102dd578063751039fc146103155780638da5cb5b1461032a5780638f3fa8601461034857806395d89b411461035e57600080fd5b806323b872dd1161010857806323b872dd14610201578063313ce5671461022157806340b9a54b14610243578063590f897e1461025957806359eedafd1461026f57806370a082311461029057600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b31461019b5780631732cded146101cb57806318160ddd146101ec57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016660135481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5061018e61046a565b6040516101709190610ff6565b3480156101a757600080fd5b506101bb6101b636600461105c565b6104fc565b6040519015158152602001610170565b3480156101d757600080fd5b506011546101bb90600160a81b900460ff1681565b3480156101f857600080fd5b50600454610166565b34801561020d57600080fd5b506101bb61021c366004611088565b610513565b34801561022d57600080fd5b5060035460405160ff9091168152602001610170565b34801561024f57600080fd5b50610166600b5481565b34801561026557600080fd5b50610166600c5481565b34801561027b57600080fd5b506011546101bb90600160b01b900460ff1681565b34801561029c57600080fd5b506101666102ab3660046110c9565b6001600160a01b031660009081526005602052604090205490565b3480156102d257600080fd5b506102db61057c565b005b3480156102e957600080fd5b506010546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b34801561032157600080fd5b506102db6105f9565b34801561033657600080fd5b506000546001600160a01b03166102fd565b34801561035457600080fd5b5061016660125481565b34801561036a57600080fd5b5061018e61063a565b34801561037f57600080fd5b506101bb61038e36600461105c565b610649565b34801561039f57600080fd5b506011546102fd906001600160a01b031681565b3480156103bf57600080fd5b506101666103ce3660046110e6565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561040557600080fd5b506101bb6104143660046110c9565b60076020526000908152604090205460ff1681565b34801561043557600080fd5b506011546101bb90600160a01b900460ff1681565b34801561045657600080fd5b506102db6104653660046110c9565b610656565b6060600180546104799061111f565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061111f565b80156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b6000610509338484610740565b5060015b92915050565b6000610520848484610801565b610572843361056d856040518060600160405280602881526020016112c7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610b86565b610740565b5060019392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a690611159565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016105a690611159565b60001960125560c8600a556002600b819055600c55565b6060600280546104799061111f565b6000610509338484610801565b6000546001600160a01b031633146106805760405162461bcd60e51b81526004016105a690611159565b6001600160a01b0381166106e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076057506001600160a01b03821615155b6107a05760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105a6565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061082d57506008546001600160a01b03838116911614155b801561084257506001600160a01b0382163014155b801561085c57506011546001600160a01b03838116911614155b801561087657506009546001600160a01b03838116911614155b801561089057506000546001600160a01b03848116911614155b1561091c576001600160a01b0382166000908152600560205260409020546012546108bb83836111a4565b111561091a5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105a6565b505b6001600160a01b0383161580159061093c57506001600160a01b03821615155b6109805760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105a6565b600081116109de5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105a6565b60095460ff600160a81b82048116600160a01b9092041610801590610a04575060135481115b8015610a1a5750601154600160a81b900460ff16155b8015610a3f57506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5857506011546001600160a01b038381169116145b8015610a6d5750601154600160b01b900460ff165b15610aa0576009805460ff60a01b19169055306000908152600560205260409020548015610a9e57610a9e81610bb2565b505b6001600160a01b03831660009081526007602052604090205460019060ff1680610ae257506001600160a01b03831660009081526007602052604090205460ff165b80610b295750601154600160a01b900460ff168015610b0f57506011546001600160a01b03858116911614155b8015610b2957506011546001600160a01b03848116911614155b15610b3657506000610b74565b6011546001600160a01b0390811690851603610b5757600b54600a55610b74565b6011546001600160a01b0390811690841603610b7457600c54600a555b610b8084848484610bf7565b50505050565b60008184841115610baa5760405162461bcd60e51b81526004016105a69190610ff6565b505050900390565b6011805460ff60a81b1916600160a81b179055610bce81610c64565b6008544790610be6906001600160a01b031682610dbe565b50506011805460ff60a81b19169055565b80610c0957610c04610df9565b610c3d565b60098054600160a01b900460ff16906014610c23836111b7565b91906101000a81548160ff021916908360ff160217905550505b610c48848484610e3e565b80610b8057610b80600d54600a55600e54600b55600f54600c55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c9957610c996111d6565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1691906111ec565b81600181518110610d2957610d296111d6565b6001600160a01b039283166020918202929092010152601054610d4f9130911684610740565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d88908590600090869030904290600401611209565b600060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610df4573d6000803e3d6000fd5b505050565b600a54158015610e095750600b54155b8015610e155750600c54155b15610e1c57565b600b8054600e55600c8054600f55600a8054600d556000928390559082905555565b600080610e4a83610f81565b6001600160a01b038716600090815260076020526040902054919350915060ff168015610e9157506012546001600160a01b03861660009081526005602052604090205411155b15610ea657506000610ea3828461127a565b92505b6001600160a01b038516600090815260056020526040902054610ec99084610fbf565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610ef89083610fd2565b6001600160a01b038516600090815260056020526040808220929092553081522054610f249082610fd2565b3060009081526005602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610fa66064610fa0600a5487610fde90919063ffffffff16565b90610fea565b90506000610fb48583610fbf565b959194509092505050565b6000610fcb828461127a565b9392505050565b6000610fcb82846111a4565b6000610fcb828461128d565b6000610fcb82846112a4565b600060208083528351808285015260005b8181101561102357858101830151858201604001528201611007565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461105957600080fd5b50565b6000806040838503121561106f57600080fd5b823561107a81611044565b946020939093013593505050565b60008060006060848603121561109d57600080fd5b83356110a881611044565b925060208401356110b881611044565b929592945050506040919091013590565b6000602082840312156110db57600080fd5b8135610fcb81611044565b600080604083850312156110f957600080fd5b823561110481611044565b9150602083013561111481611044565b809150509250929050565b600181811c9082168061113357607f821691505b60208210810361115357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050d5761050d61118e565b600060ff821660ff81036111cd576111cd61118e565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111fe57600080fd5b8151610fcb81611044565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112595784516001600160a01b031683529383019391830191600101611234565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561050d5761050d61118e565b808202811582820484141761050d5761050d61118e565b6000826112c157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078fedad2dcd2609e8be51d9eab7cb940f3350405a628f47917d7caa78b0c5bb764736f6c63430008130033
Deployed Bytecode Sourcemap
8016:8151:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9338:46;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9338:46:0;;;;;;;;10202:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;15376:161::-;;;;;;;;;;-1:-1:-1;15376:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;15376:161:0;1205:187:1;9212:20:0;;;;;;;;;;-1:-1:-1;9212:20:0;;;;-1:-1:-1;;;9212:20:0;;;;;;10479:95;;;;;;;;;;-1:-1:-1;10559:7:0;;10479:95;;12374:313;;;;;;;;;;-1:-1:-1;12374:313:0;;;;;:::i;:::-;;:::i;10388:83::-;;;;;;;;;;-1:-1:-1;10454:9:0;;10388:83;;10454:9;;;;2000:36:1;;1988:2;1973:18;10388:83:0;1858:184:1;8825:27:0;;;;;;;;;;;;;;;;8859:28;;;;;;;;;;;;;;;;9239:33;;;;;;;;;;-1:-1:-1;9239:33:0;;;;-1:-1:-1;;;9239:33:0;;;;;;10582:119;;;;;;;;;;-1:-1:-1;10582:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10675:18:0;10648:7;10675:18;;;:9;:18;;;;;;;10582:119;6307:148;;;;;;;;;;;;;:::i;:::-;;9089:37;;;;;;;;;;-1:-1:-1;9089:37:0;;;;-1:-1:-1;;;;;9089:37:0;;;;;;-1:-1:-1;;;;;2487:32:1;;;2469:51;;2457:2;2442:18;9089:37:0;2299:227:1;15203:161:0;;;;;;;;;;;;;:::i;5990:87::-;;;;;;;;;;-1:-1:-1;6036:7:0;6063:6;-1:-1:-1;;;;;6063:6:0;5990:87;;9281:50;;;;;;;;;;;;;;;;10293:87;;;;;;;;;;;;;:::i;10709:167::-;;;;;;;;;;-1:-1:-1;10709:167:0;;;;;:::i;:::-;;:::i;9133:26::-;;;;;;;;;;-1:-1:-1;9133:26:0;;;;-1:-1:-1;;;;;9133:26:0;;;10884:143;;;;;;;;;;-1:-1:-1;10884:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10992:18:0;;;10965:7;10992:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10884:143;8458:52;;;;;;;;;;-1:-1:-1;8458:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9168:37;;;;;;;;;;-1:-1:-1;9168:37:0;;;;-1:-1:-1;;;9168:37:0;;;;;;6511:244;;;;;;;;;;-1:-1:-1;6511:244:0;;;;;:::i;:::-;;:::i;10202:83::-;10239:13;10272:5;10265:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10202:83;:::o;15376:161::-;15451:4;15468:39;529:10;15491:7;15500:6;15468:8;:39::i;:::-;-1:-1:-1;15525:4:0;15376:161;;;;;:::o;12374:313::-;12472:4;12489:36;12499:6;12507:9;12518:6;12489:9;:36::i;:::-;12536:121;12545:6;529:10;12567:89;12605:6;12567:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12567:19:0;;;;;;:11;:19;;;;;;;;529:10;12567:33;;;;;;;;;;:37;:89::i;:::-;12536:8;:121::i;:::-;-1:-1:-1;12675:4:0;12374:313;;;;;:::o;6307:148::-;6036:7;6063:6;-1:-1:-1;;;;;6063:6:0;529:10;6175:23;6167:68;;;;-1:-1:-1;;;6167:68:0;;;;;;;:::i;:::-;;;;;;;;;6414:1:::1;6398:6:::0;;6377:40:::1;::::0;-1:-1:-1;;;;;6398:6:0;;::::1;::::0;6377:40:::1;::::0;6414:1;;6377:40:::1;6445:1;6428:19:::0;;-1:-1:-1;;;;;;6428:19:0::1;::::0;;6307:148::o;15203:161::-;6036:7;6063:6;-1:-1:-1;;;;;6063:6:0;529:10;6175:23;6167:68;;;;-1:-1:-1;;;6167:68:0;;;;;;;:::i;:::-;-1:-1:-1;;15257:13:0::1;:27:::0;15308:3:::1;15295:10;:16:::0;15332:1:::1;15322:7;:11:::0;;;15344:8:::1;:12:::0;15203:161::o;10293:87::-;10332:13;10365:7;10358:14;;;;;:::i;10709:167::-;10787:4;10804:42;529:10;10828:9;10839:6;10804:9;:42::i;6511:244::-;6036:7;6063:6;-1:-1:-1;;;;;6063:6:0;529:10;6175:23;6167:68;;;;-1:-1:-1;;;6167:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6600:22:0;::::1;6592:73;;;::::0;-1:-1:-1;;;6592:73:0;;4080:2:1;6592:73:0::1;::::0;::::1;4062:21:1::0;4119:2;4099:18;;;4092:30;4158:34;4138:18;;;4131:62;-1:-1:-1;;;4209:18:1;;;4202:36;4255:19;;6592:73:0::1;3878:402:1::0;6592:73:0::1;6702:6;::::0;;6681:38:::1;::::0;-1:-1:-1;;;;;6681:38:0;;::::1;::::0;6702:6;::::1;::::0;6681:38:::1;::::0;::::1;6730:6;:17:::0;;-1:-1:-1;;;;;;6730:17:0::1;-1:-1:-1::0;;;;;6730:17:0;;;::::1;::::0;;;::::1;::::0;;6511:244::o;11504:266::-;-1:-1:-1;;;;;11599:19:0;;;;;;:44;;-1:-1:-1;;;;;;11622:21:0;;;;11599:44;11591:74;;;;-1:-1:-1;;;11591:74:0;;4487:2:1;11591:74:0;;;4469:21:1;4526:2;4506:18;;;4499:30;-1:-1:-1;;;4545:18:1;;;4538:47;4602:18;;11591:74:0;4285:341:1;11591:74:0;-1:-1:-1;;;;;11676:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11728:32;;160:25:1;;;11728:32:0;;133:18:1;11728:32:0;;;;;;;11504:266;;;:::o;13327:1593::-;6036:7;6063:6;-1:-1:-1;;;;;13486:13:0;;;6063:6;;13486:13;;;;:45;;-1:-1:-1;13522:9:0;;-1:-1:-1;;;;;13516:15:0;;;13522:9;;13516:15;;13486:45;:81;;;;-1:-1:-1;;;;;;13548:19:0;;13562:4;13548:19;;13486:81;:115;;;;-1:-1:-1;13590:11:0;;-1:-1:-1;;;;;13584:17:0;;;13590:11;;13584:17;;13486:115;:142;;;;-1:-1:-1;13624:4:0;;-1:-1:-1;;;;;13618:10:0;;;13624:4;;13618:10;;13486:142;:174;;;;-1:-1:-1;6036:7:0;6063:6;-1:-1:-1;;;;;13645:15:0;;;6063:6;;13645:15;;13486:174;13482:362;;;-1:-1:-1;;;;;10675:18:0;;13678:22;10675:18;;;:9;:18;;;;;;13768:13;;13740:23;13757:6;10675:18;13740:23;:::i;:::-;13739:42;;13731:94;;;;-1:-1:-1;;;13731:94:0;;5095:2:1;13731:94:0;;;5077:21:1;5134:2;5114:18;;;5107:30;5173:34;5153:18;;;5146:62;-1:-1:-1;;;5224:18:1;;;5217:38;5272:19;;13731:94:0;4893:404:1;13731:94:0;13661:183;13482:362;-1:-1:-1;;;;;13864:18:0;;;;;;:38;;-1:-1:-1;;;;;;13886:16:0;;;;13864:38;13856:72;;;;-1:-1:-1;;;13856:72:0;;5504:2:1;13856:72:0;;;5486:21:1;5543:2;5523:18;;;5516:30;-1:-1:-1;;;5562:18:1;;;5555:51;5623:18;;13856:72:0;5302:345:1;13856:72:0;13956:1;13947:6;:10;13939:60;;;;-1:-1:-1;;;13939:60:0;;5854:2:1;13939:60:0;;;5836:21:1;5893:2;5873:18;;;5866:30;5932:34;5912:18;;;5905:62;-1:-1:-1;;;5983:18:1;;;5976:35;6028:19;;13939:60:0;5652:401:1;13939:60:0;14044:15;;;-1:-1:-1;;;14044:15:0;;;;-1:-1:-1;;;14029:11:0;;;;:30;;;;:70;;;14086:13;;14077:6;:22;14029:70;:96;;;;-1:-1:-1;14117:8:0;;-1:-1:-1;;;14117:8:0;;;;14116:9;14029:96;:139;;;;-1:-1:-1;;;;;;14143:25:0;;;;;;:19;:25;;;;;;;;14142:26;14029:139;:173;;;;-1:-1:-1;14191:11:0;;-1:-1:-1;;;;;14185:17:0;;;14191:11;;14185:17;14029:173;:204;;;;-1:-1:-1;14219:14:0;;-1:-1:-1;;;14219:14:0;;;;14029:204;14012:469;;;14276:11;:15;;-1:-1:-1;;;;14276:15:0;;;14355:4;-1:-1:-1;10675:18:0;;;:9;:18;;;;;;14379:24;;14376:94;;14419:36;14434:20;14419:14;:36::i;:::-;14259:222;14012:469;-1:-1:-1;;;;;14545:25:0;;14501:12;14545:25;;;:19;:25;;;;;;14516:4;;14545:25;;;:52;;-1:-1:-1;;;;;;14574:23:0;;;;;;:19;:23;;;;;;;;14545:52;:120;;;-1:-1:-1;14602:18:0;;-1:-1:-1;;;14602:18:0;;;;:41;;;;-1:-1:-1;14632:11:0;;-1:-1:-1;;;;;14624:19:0;;;14632:11;;14624:19;;14602:41;:62;;;;-1:-1:-1;14653:11:0;;-1:-1:-1;;;;;14647:17:0;;;14653:11;;14647:17;;14602:62;14542:319;;;-1:-1:-1;14691:5:0;14542:319;;;14726:11;;-1:-1:-1;;;;;14726:11:0;;;14718:19;;;;14714:147;;14766:7;;14753:10;:20;14714:147;;;14801:11;;-1:-1:-1;;;;;14801:11:0;;;14795:17;;;;14791:70;;14841:8;;14828:10;:21;14791:70;14873:39;14889:4;14894:2;14897:6;14904:7;14873:15;:39::i;:::-;13430:1490;13327:1593;;;:::o;1012:206::-;1098:7;1159:12;1151:6;;;;1143:29;;;;-1:-1:-1;;;1143:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1194:5:0;;;1012:206::o;14932:226::-;9630:8;:15;;-1:-1:-1;;;;9630:15:0;-1:-1:-1;;;9630:15:0;;;15014:29:::1;15022:20:::0;15014:7:::1;:29::i;:::-;15128:9;::::0;15076:21:::1;::::0;15108:42:::1;::::0;-1:-1:-1;;;;;15128:9:0::1;15076:21:::0;15108:19:::1;:42::i;:::-;-1:-1:-1::0;;9668:8:0;:16;;-1:-1:-1;;;;9668:16:0;;;14932:226::o;15545:346::-;15671:7;15667:96;;15694:11;:9;:11::i;:::-;15667:96;;;15738:11;:13;;-1:-1:-1;;;15738:13:0;;;;;:11;:13;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15667:96;15773:38;15785:6;15793:9;15804:6;15773:11;:38::i;:::-;15836:7;15832:52;;15860:12;11393:17;;11380:10;:30;11431:15;;11421:7;:25;11469:16;;11458:8;:27;11339:157;11909:457;11990:16;;;12004:1;11990:16;;;;;;;;11966:21;;11990:16;;;;;;;;;;-1:-1:-1;11990:16:0;11966:40;;12035:4;12017;12022:1;12017:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12017:23:0;;;:7;;;;;;;;;;:23;;;;12061:13;;:20;;;-1:-1:-1;;;12061:20:0;;;;:13;;;;;:18;;:20;;;;;12017:7;;12061:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12051:4;12056:1;12051:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12051:30:0;;;:7;;;;;;;;;:30;12124:13;;12092:60;;12109:4;;12124:13;12140:11;12092:8;:60::i;:::-;12163:13;;:195;;-1:-1:-1;;;12163:195:0;;-1:-1:-1;;;;;12163:13:0;;;;:64;;:195;;12242:11;;12163:13;;12285:4;;12312;;12332:15;;12163:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11955:411;11909:457;:::o;11778:123::-;11868:25;;-1:-1:-1;;;;;11868:17:0;;;:25;;;;;11886:6;;11868:25;;;;11886:6;11868:17;:25;;;;;;;;;;;;;;;;;;;;;11778:123;;:::o;11035:296::-;11078:10;;:15;:31;;;;-1:-1:-1;11097:7:0;;:12;11078:31;:48;;;;-1:-1:-1;11113:8:0;;:13;11078:48;11075:60;;;11035:296::o;11075:60::-;11165:7;;;11147:15;:25;11203:8;;;11184:16;:27;11243:10;;;11223:17;:30;-1:-1:-1;11264:11:0;;;;11286:12;;;;11309:14;11035:296::o;12699:620::-;12806:23;12831:12;12847:32;12867:11;12847:19;:32::i;:::-;-1:-1:-1;;;;;12893:27:0;;;;;;:19;:27;;;;;;12805:74;;-1:-1:-1;12805:74:0;-1:-1:-1;12893:27:0;;:65;;;;-1:-1:-1;12945:13:0;;-1:-1:-1;;;;;12924:17:0;;;;;;:9;:17;;;;;;:34;;12893:65;12890:150;;;-1:-1:-1;12982:1:0;12998:30;13013:15;12998:30;;:::i;:::-;;;12890:150;-1:-1:-1;;;;;13070:17:0;;;;;;:9;:17;;;;;;:34;;13092:11;13070:21;:34::i;:::-;-1:-1:-1;;;;;13050:17:0;;;;;;;:9;:17;;;;;;:54;;;;13138:20;;;;;;;:41;;13163:15;13138:24;:41::i;:::-;-1:-1:-1;;;;;13115:20:0;;;;;;:9;:20;;;;;;:64;;;;13235:4;13217:24;;;;:34;;13246:4;13217:28;:34::i;:::-;13208:4;13190:24;;;;:9;:24;;;;;;;;;:61;;;;13267:44;160:25:1;;;-1:-1:-1;;;;;13267:44:0;;;;;;;;;;133:18:1;13267:44:0;;;;;;;12784:535;;12699:620;;;:::o;15903:259::-;15975:7;15984;16004:12;16019:36;16051:3;16019:27;16035:10;;16019:11;:15;;:27;;;;:::i;:::-;:31;;:36::i;:::-;16004:51;-1:-1:-1;16066:23:0;16092:21;:11;16004:51;16092:15;:21::i;:::-;16066:47;16149:4;;-1:-1:-1;15903:259:0;;-1:-1:-1;;;15903:259:0:o;690:98::-;748:7;775:5;779:1;775;:5;:::i;:::-;768:12;690:98;-1:-1:-1;;;690:98:0:o;584:::-;642:7;669:5;673:1;669;:5;:::i;796:98::-;854:7;881:5;885:1;881;:5;:::i;906:98::-;964:7;991:5;995:1;991;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:380::-;3211:1;3207:12;;;;3254;;;3275:61;;3329:4;3321:6;3317:17;3307:27;;3275:61;3382:2;3374:6;3371:14;3351:18;3348:38;3345:161;;3428:10;3423:3;3419:20;3416:1;3409:31;3463:4;3460:1;3453:15;3491:4;3488:1;3481:15;3345:161;;3132:380;;;:::o;3517:356::-;3719:2;3701:21;;;3738:18;;;3731:30;3797:34;3792:2;3777:18;;3770:62;3864:2;3849:18;;3517:356::o;4631:127::-;4692:10;4687:3;4683:20;4680:1;4673:31;4723:4;4720:1;4713:15;4747:4;4744:1;4737:15;4763:125;4828:9;;;4849:10;;;4846:36;;;4862:18;;:::i;6058:175::-;6095:3;6139:4;6132:5;6128:16;6168:4;6159:7;6156:17;6153:43;;6176:18;;:::i;:::-;6225:1;6212:15;;6058:175;-1:-1:-1;;6058:175:1:o;6370:127::-;6431:10;6426:3;6422:20;6419:1;6412:31;6462:4;6459:1;6452:15;6486:4;6483:1;6476:15;6502:251;6572:6;6625:2;6613:9;6604:7;6600:23;6596:32;6593:52;;;6641:1;6638;6631:12;6593:52;6673:9;6667:16;6692:31;6717:5;6692:31;:::i;6758:980::-;7020:4;7068:3;7057:9;7053:19;7099:6;7088:9;7081:25;7125:2;7163:6;7158:2;7147:9;7143:18;7136:34;7206:3;7201:2;7190:9;7186:18;7179:31;7230:6;7265;7259:13;7296:6;7288;7281:22;7334:3;7323:9;7319:19;7312:26;;7373:2;7365:6;7361:15;7347:29;;7394:1;7404:195;7418:6;7415:1;7412:13;7404:195;;;7483:13;;-1:-1:-1;;;;;7479:39:1;7467:52;;7574:15;;;;7539:12;;;;7515:1;7433:9;7404:195;;;-1:-1:-1;;;;;;;7655:32:1;;;;7650:2;7635:18;;7628:60;-1:-1:-1;;;7719:3:1;7704:19;7697:35;7616:3;6758:980;-1:-1:-1;;;6758:980:1:o;7743:128::-;7810:9;;;7831:11;;;7828:37;;;7845:18;;:::i;7876:168::-;7949:9;;;7980;;7997:15;;;7991:22;;7977:37;7967:71;;8018:18;;:::i;8049:217::-;8089:1;8115;8105:132;;8159:10;8154:3;8150:20;8147:1;8140:31;8194:4;8191:1;8184:15;8222:4;8219:1;8212:15;8105:132;-1:-1:-1;8251:9:1;;8049:217::o
Swarm Source
ipfs://78fedad2dcd2609e8be51d9eab7cb940f3350405a628f47917d7caa78b0c5bb7
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)