Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 HONOUR
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
166,020.632895739840885505 HONOURValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HonourTheBallsack
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-14 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.16; 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; } } abstract contract Ownable is Context { address internal _owner; address private _previousOwner; 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 IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, Ownable, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual 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; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IUniswapV2Pair { function factory() external view returns (address); } interface IUniswapV2Router01 { 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract HonourTheBallsack is ERC20 { using SafeMath for uint256; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedFromMaxWallet; mapping(address => bool) private _isExcludedFromMaxTnxLimit; address public marketingWallet; address constant _burnAddress = 0x000000000000000000000000000000000000dEaD; uint256 public buyMarketingFee = 10; uint256 public sellMarketingFee = 10; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndSendFeesEnabled = true; bool public tradingEnabled = false; uint256 public numTokensSellToSendFees; uint256 public maxWalletBalance; uint256 public maxTx; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event swapAndSendFeesEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() ERC20("Honour The Ballsack", "HONOUR") { numTokensSellToSendFees = 10000 * 10 ** decimals(); marketingWallet = 0x58AF785B846c3D80d5aB19F05C4081820962Ef65; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[_msgSender()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromMaxWallet[owner()] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxWallet[_burnAddress] = true; _isExcludedFromMaxWallet[marketingWallet] = true; _isExcludedFromMaxTnxLimit[owner()] = true; _isExcludedFromMaxTnxLimit[address(this)] = true; _isExcludedFromMaxTnxLimit[marketingWallet] = true; _mint(owner(), 10000000 * 10 ** decimals()); maxWalletBalance = (totalSupply() * 2) / 100; maxTx = (totalSupply() * 1) / 100; } function burn(uint tokens) external onlyOwner { _burn(msg.sender, tokens * 10 ** decimals()); } function includeAndExcludeFromMaxTnxLimit( address account, bool value ) public onlyOwner { _isExcludedFromMaxTnxLimit[account] = value; } function includeAndExcludeFromMaxWallet( address account, bool value ) public onlyOwner { _isExcludedFromMaxWallet[account] = value; } function includeAndExcludeFromFee( address account, bool value ) public onlyOwner { _isExcludedFromFee[account] = value; } function isExcludedFromMaxTnxLimit( address account ) public view returns (bool) { return _isExcludedFromMaxTnxLimit[account]; } function isExcludedFromMaxBalance( address account ) external view returns (bool) { return _isExcludedFromMaxWallet[account]; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function enableTrading() external onlyOwner { tradingEnabled = true; } function setBuyAndSellFee( uint256 buyFee, uint256 sellFee ) external onlyOwner { buyMarketingFee = buyFee; sellMarketingFee = sellFee; } function setmarketingWallet(address _addr) external onlyOwner { marketingWallet = _addr; } function setMaxBalance(uint256 maxBalancePercent) external onlyOwner { maxWalletBalance = maxBalancePercent * 10 ** decimals(); } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner { maxTx = maxTxAmount * 10 ** decimals(); } function setNumTokensSellToSendFees(uint256 amount) external onlyOwner { numTokensSellToSendFees = amount * 10 ** decimals(); } function setRouterAddress(address newRouter) external onlyOwner { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; } function setswapAndSendFeesEnabled(bool _enabled) external onlyOwner { swapAndSendFeesEnabled = _enabled; emit swapAndSendFeesEnabledUpdated(_enabled); } receive() external payable {} function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && !tradingEnabled) { require(tradingEnabled, "Trading is not enabled yet"); } if (from != owner() && to != owner()) require( _isExcludedFromMaxTnxLimit[from] || _isExcludedFromMaxTnxLimit[to] || amount <= maxTx, "ERC20: Transfer amount exceeds the maxTx." ); if ( from != owner() && to != address(this) && to != _burnAddress && to != uniswapV2Pair ) { uint256 currentBalance = balanceOf(to); require( _isExcludedFromMaxWallet[to] || (currentBalance + amount <= maxWalletBalance), "ERC20: Reached Max wallet holding" ); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToSendFees; if ( overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndSendFeesEnabled ) { contractTokenBalance = numTokensSellToSendFees; swapBack(contractTokenBalance); } bool takeFee = true; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { super._transfer(from, to, amount); takeFee = false; } else { if (from == uniswapV2Pair) { uint256 marketingTokens = amount.mul(buyMarketingFee).div(100); amount = amount.sub(marketingTokens); super._transfer(from, address(this), marketingTokens); super._transfer(from, to, amount); } else if (to == uniswapV2Pair) { uint256 marketingTokens = amount.mul(sellMarketingFee).div( 100 ); amount = amount.sub(marketingTokens); super._transfer(from, address(this), marketingTokens); super._transfer(from, to, amount); } else { super._transfer(from, to, amount); } } } function swapBack(uint256 contractBalance) private lockTheSwap { uint256 marketingTokens = contractBalance.mul(sellMarketingFee).div( 100 ); uint256 totalTokensToSwap = marketingTokens; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } bool success; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance; uint256 ethForMarketing = (ethBalance * marketingTokens) / (totalTokensToSwap); (success, ) = address(marketingWallet).call{ value: ethForMarketing }(""); } function swapTokensForEth(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, // accept any amount of ETH path, address(this), block.timestamp ); } }
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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"swapAndSendFeesEnabledUpdated","type":"event"},{"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":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyMarketingFee","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeFromMaxTnxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeFromMaxWallet","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":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTnxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","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":"numTokensSellToSendFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"setBuyAndSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBalancePercent","type":"uint256"}],"name":"setMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToSendFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setmarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setswapAndSendFeesEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndSendFeesEnabled","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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
6080604052600a600b819055600c55600e805461ffff60a81b1916600160a81b1790553480156200002f57600080fd5b506040518060400160405280601381526020017f486f6e6f7572205468652042616c6c7361636b00000000000000000000000000815250604051806040016040528060068152602001652427a727aaa960d11b81525062000095620004da60201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005620000ea8382620006a8565b506006620000f98282620006a8565b5062000106915050601290565b6200011390600a62000887565b620001219061271062000898565b600f55600a80546001600160a01b0319167358af785b846c3d80d5ab19f05c4081820962ef651790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c49190620008ba565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002389190620008ba565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac9190620008ba565b600e80546001600160a01b03199081166001600160a01b0393841617909155600d8054909116918316919091179055600160076000620002e93390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155600a54909116835290822080549093168117909255600890620003596000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260089093528183208054851660019081179091557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054861682179055600a54909116835290822080549093168117909255600990620003f26000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526009909352818320805485166001908117909155600a5490911683529120805490921617905562000483620004606000546001600160a01b031690565b6200046e6012600a62000887565b6200047d906298968062000898565b620004de565b60646200048f60045490565b6200049c90600262000898565b620004a89190620008ec565b6010556064620004b760045490565b620004c490600162000898565b620004d09190620008ec565b6011555062000925565b3390565b6001600160a01b038216620005395760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6200055581600454620005ed60201b62000fa21790919060201c565b6004556001600160a01b0382166000908152600260209081526040909120546200058a91839062000fa2620005ed821b17901c565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620005dc9085815260200190565b60405180910390a35050565b505050565b6000620005fb82846200090f565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062f57607f821691505b6020821081036200065057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005e857600081815260208120601f850160051c810160208610156200067f5750805b601f850160051c820191505b81811015620006a0578281556001016200068b565b505050505050565b81516001600160401b03811115620006c457620006c462000604565b620006dc81620006d584546200061a565b8462000656565b602080601f831160018114620007145760008415620006fb5750858301515b600019600386901b1c1916600185901b178555620006a0565b600085815260208120601f198616915b82811015620007455788860151825594840194600190910190840162000724565b5085821015620007645787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007cb578160001904821115620007af57620007af62000774565b80851615620007bd57918102915b93841c93908002906200078f565b509250929050565b600082620007e457506001620005fe565b81620007f357506000620005fe565b81600181146200080c5760028114620008175762000837565b6001915050620005fe565b60ff8411156200082b576200082b62000774565b50506001821b620005fe565b5060208310610133831016604e8410600b84101617156200085c575081810a620005fe565b6200086883836200078a565b80600019048211156200087f576200087f62000774565b029392505050565b6000620005fb60ff841683620007d3565b6000816000190483118215151615620008b557620008b562000774565b500290565b600060208284031215620008cd57600080fd5b81516001600160a01b0381168114620008e557600080fd5b9392505050565b6000826200090a57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005fe57620005fe62000774565b611f7680620009356000396000f3fe6080604052600436106102345760003560e01c806355874a791161012e57806395d89b41116100ab578063bbde77c11161006f578063bbde77c1146106c8578063da7e2c7f146106de578063dd62ed3e146106fe578063ec28438a14610744578063f2fde38b1461076457600080fd5b806395d89b41146106335780639d51d9b714610648578063a346304f14610668578063a457c2d714610688578063a9059cbb146106a857600080fd5b80637bce5a04116100f25780637bce5a04146105b457806384e2b88d146105ca5780638a8c523c146105ea5780638da5cb5b146105ff578063921369131461061d57600080fd5b806355874a79146104fa57806370a0823114610533578063715018a6146105695780637437681e1461057e57806375f0a8741461059457600080fd5b806323b872dd116101bc57806342966c681161018057806342966c681461044a57806349bd5a5e1461046a5780634ada218b1461048a5780635342acb4146104ab57806353cae9cf146104e457600080fd5b806323b872dd146103ae57806326d87362146103ce578063313ce567146103ee578063395093511461040a57806341cb87fc1461042a57600080fd5b8063153459041161020357806315345904146102de5780631694505e146102fe57806318160ddd14610336578063181cec1c14610355578063224611731461038e57600080fd5b806302a8b0411461024057806306fdde0314610262578063095ea7b31461028d578063148d2161146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b3660046119ef565b610784565b005b34801561026e57600080fd5b5061027761080f565b6040516102849190611a0a565b60405180910390f35b34801561029957600080fd5b506102ad6102a8366004611a6d565b6108a1565b6040519015158152602001610284565b3480156102c957600080fd5b50600e546102ad90600160a81b900460ff1681565b3480156102ea57600080fd5b506102606102f9366004611a99565b6108b8565b34801561030a57600080fd5b50600d5461031e906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561034257600080fd5b506004545b604051908152602001610284565b34801561036157600080fd5b506102ad610370366004611ace565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561039a57600080fd5b506102606103a9366004611ace565b61090d565b3480156103ba57600080fd5b506102ad6103c9366004611aeb565b610959565b3480156103da57600080fd5b506102606103e9366004611a99565b6109c2565b3480156103fa57600080fd5b5060405160128152602001610284565b34801561041657600080fd5b506102ad610425366004611a6d565b610a17565b34801561043657600080fd5b50610260610445366004611ace565b610a4d565b34801561045657600080fd5b50610260610465366004611b2c565b610bf2565b34801561047657600080fd5b50600e5461031e906001600160a01b031681565b34801561049657600080fd5b50600e546102ad90600160b01b900460ff1681565b3480156104b757600080fd5b506102ad6104c6366004611ace565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156104f057600080fd5b50610347600f5481565b34801561050657600080fd5b506102ad610515366004611ace565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561053f57600080fd5b5061034761054e366004611ace565b6001600160a01b031660009081526002602052604090205490565b34801561057557600080fd5b50610260610c3e565b34801561058a57600080fd5b5061034760115481565b3480156105a057600080fd5b50600a5461031e906001600160a01b031681565b3480156105c057600080fd5b50610347600b5481565b3480156105d657600080fd5b506102606105e5366004611b2c565b610cb2565b3480156105f657600080fd5b50610260610cf8565b34801561060b57600080fd5b506000546001600160a01b031661031e565b34801561062957600080fd5b50610347600c5481565b34801561063f57600080fd5b50610277610d37565b34801561065457600080fd5b50610260610663366004611b2c565b610d46565b34801561067457600080fd5b50610260610683366004611b45565b610d8c565b34801561069457600080fd5b506102ad6106a3366004611a6d565b610dc1565b3480156106b457600080fd5b506102ad6106c3366004611a6d565b610e10565b3480156106d457600080fd5b5061034760105481565b3480156106ea57600080fd5b506102606106f9366004611a99565b610e1d565b34801561070a57600080fd5b50610347610719366004611b67565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561075057600080fd5b5061026061075f366004611b2c565b610e72565b34801561077057600080fd5b5061026061077f366004611ace565b610eb8565b6000546001600160a01b031633146107b75760405162461bcd60e51b81526004016107ae90611ba0565b60405180910390fd5b600e8054821515600160a81b0260ff60a81b199091161790556040517f95104a55e36dd507aac6f3a5211027febb09c940366b18700bc6e6cedf67426b9061080490831515815260200190565b60405180910390a150565b60606005805461081e90611bd5565b80601f016020809104026020016040519081016040528092919081815260200182805461084a90611bd5565b80156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905090565b60006108ae338484610fb5565b5060015b92915050565b6000546001600160a01b031633146108e25760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109375760405162461bcd60e51b81526004016107ae90611ba0565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006109668484846110da565b6109b884336109b385604051806060016040528060288152602001611ef4602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061154d565b610fb5565b5060019392505050565b6000546001600160a01b031633146109ec5760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108ae9185906109b39086610fa2565b6000546001600160a01b03163314610a775760405162461bcd60e51b81526004016107ae90611ba0565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ade9190611c0f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4f9190611c0f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc09190611c0f565b600e80546001600160a01b039283166001600160a01b031991821617909155600d805493909216921691909117905550565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b81526004016107ae90611ba0565b610c3b33610c2c6012600a611d26565b610c369084611d35565b611579565b50565b6000546001600160a01b03163314610c685760405162461bcd60e51b81526004016107ae90611ba0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610cdc5760405162461bcd60e51b81526004016107ae90611ba0565b610ce86012600a611d26565b610cf29082611d35565b600f5550565b6000546001600160a01b03163314610d225760405162461bcd60e51b81526004016107ae90611ba0565b600e805460ff60b01b1916600160b01b179055565b60606006805461081e90611bd5565b6000546001600160a01b03163314610d705760405162461bcd60e51b81526004016107ae90611ba0565b610d7c6012600a611d26565b610d869082611d35565b60105550565b6000546001600160a01b03163314610db65760405162461bcd60e51b81526004016107ae90611ba0565b600b91909155600c55565b60006108ae33846109b385604051806060016040528060258152602001611f1c602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061154d565b60006108ae3384846110da565b6000546001600160a01b03163314610e475760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e9c5760405162461bcd60e51b81526004016107ae90611ba0565b610ea86012600a611d26565b610eb29082611d35565b60115550565b6000546001600160a01b03163314610ee25760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fae8284611d54565b9392505050565b6001600160a01b0383166110175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ae565b6001600160a01b0382166110785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ae565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166111005760405162461bcd60e51b81526004016107ae90611d67565b6001600160a01b0382166111265760405162461bcd60e51b81526004016107ae90611dac565b600081116111885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ae565b6000546001600160a01b038481169116148015906111b05750600e54600160b01b900460ff16155b1561120e57600e54600160b01b900460ff1661120e5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c65642079657400000000000060448201526064016107ae565b6000546001600160a01b0384811691161480159061123a57506000546001600160a01b03838116911614155b156112e9576001600160a01b03831660009081526009602052604090205460ff168061127e57506001600160a01b03821660009081526009602052604090205460ff165b8061128b57506011548111155b6112e95760405162461bcd60e51b815260206004820152602960248201527f45524332303a205472616e7366657220616d6f756e742065786365656473207460448201526834329036b0bc2a3c1760b91b60648201526084016107ae565b6000546001600160a01b0384811691161480159061131057506001600160a01b0382163014155b801561132757506001600160a01b03821661dead14155b80156113415750600e546001600160a01b03838116911614155b156113dc576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff168061138457506010546113818383611d54565b11155b6113da5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b60648201526084016107ae565b505b30600090815260026020526040902054600f548110801590819061140a5750600e54600160a01b900460ff16155b80156114245750600e546001600160a01b03868116911614155b80156114395750600e54600160a81b900460ff165b1561144c57600f54915061144c82611684565b6001600160a01b03851660009081526007602052604090205460019060ff168061148e57506001600160a01b03851660009081526007602052604090205460ff165b156114a65761149e868686611758565b506000611545565b600e546001600160a01b03908116908716036115085760006114de60646114d8600b548861186490919063ffffffff16565b90611870565b90506114ea858261187c565b94506114f7873083611758565b611502878787611758565b50611545565b600e546001600160a01b039081169086160361153a5760006114de60646114d8600c548861186490919063ffffffff16565b611545868686611758565b505050505050565b600081848411156115715760405162461bcd60e51b81526004016107ae9190611a0a565b505050900390565b6001600160a01b0382166115d95760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107ae565b61161681604051806060016040528060228152602001611eac602291396001600160a01b038516600090815260026020526040902054919061154d565b6001600160a01b03831660009081526002602052604090205560045461163c908261187c565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600e805460ff60a01b1916600160a01b179055600c546000906116af906064906114d8908590611864565b9050808215806116bd575080155b156116c9575050611748565b60006116d484611888565b476000836116e28684611d35565b6116ec9190611def565b600a546040519192506001600160a01b0316908290600081818185875af1925050503d806000811461173a576040519150601f19603f3d011682016040523d82523d6000602084013e61173f565b606091505b50505050505050505b50600e805460ff60a01b19169055565b6001600160a01b03831661177e5760405162461bcd60e51b81526004016107ae90611d67565b6001600160a01b0382166117a45760405162461bcd60e51b81526004016107ae90611dac565b6117e181604051806060016040528060268152602001611ece602691396001600160a01b038616600090815260026020526040902054919061154d565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546118109082610fa2565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110cd9085815260200190565b6000610fae8284611d35565b6000610fae8284611def565b6000610fae8284611e11565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118bd576118bd611e24565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193a9190611c0f565b8160018151811061194d5761194d611e24565b6001600160a01b039283166020918202929092010152600d546119739130911684610fb5565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906119ac908590600090869030904290600401611e3a565b600060405180830381600087803b1580156119c657600080fd5b505af1158015611545573d6000803e3d6000fd5b803580151581146119ea57600080fd5b919050565b600060208284031215611a0157600080fd5b610fae826119da565b600060208083528351808285015260005b81811015611a3757858101830151858201604001528201611a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c3b57600080fd5b60008060408385031215611a8057600080fd5b8235611a8b81611a58565b946020939093013593505050565b60008060408385031215611aac57600080fd5b8235611ab781611a58565b9150611ac5602084016119da565b90509250929050565b600060208284031215611ae057600080fd5b8135610fae81611a58565b600080600060608486031215611b0057600080fd5b8335611b0b81611a58565b92506020840135611b1b81611a58565b929592945050506040919091013590565b600060208284031215611b3e57600080fd5b5035919050565b60008060408385031215611b5857600080fd5b50508035926020909101359150565b60008060408385031215611b7a57600080fd5b8235611b8581611a58565b91506020830135611b9581611a58565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611be957607f821691505b602082108103611c0957634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611c2157600080fd5b8151610fae81611a58565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611c7d578160001904821115611c6357611c63611c2c565b80851615611c7057918102915b93841c9390800290611c47565b509250929050565b600082611c94575060016108b2565b81611ca1575060006108b2565b8160018114611cb75760028114611cc157611cdd565b60019150506108b2565b60ff841115611cd257611cd2611c2c565b50506001821b6108b2565b5060208310610133831016604e8410600b8410161715611d00575081810a6108b2565b611d0a8383611c42565b8060001904821115611d1e57611d1e611c2c565b029392505050565b6000610fae60ff841683611c85565b6000816000190483118215151615611d4f57611d4f611c2c565b500290565b808201808211156108b2576108b2611c2c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611e0c57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108b2576108b2611c2c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e8a5784516001600160a01b031683529383019391830191600101611e65565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aec46fe6a7f7e1670ef4808fa776348d528a707a7f8c0393d037311fada7832b64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106102345760003560e01c806355874a791161012e57806395d89b41116100ab578063bbde77c11161006f578063bbde77c1146106c8578063da7e2c7f146106de578063dd62ed3e146106fe578063ec28438a14610744578063f2fde38b1461076457600080fd5b806395d89b41146106335780639d51d9b714610648578063a346304f14610668578063a457c2d714610688578063a9059cbb146106a857600080fd5b80637bce5a04116100f25780637bce5a04146105b457806384e2b88d146105ca5780638a8c523c146105ea5780638da5cb5b146105ff578063921369131461061d57600080fd5b806355874a79146104fa57806370a0823114610533578063715018a6146105695780637437681e1461057e57806375f0a8741461059457600080fd5b806323b872dd116101bc57806342966c681161018057806342966c681461044a57806349bd5a5e1461046a5780634ada218b1461048a5780635342acb4146104ab57806353cae9cf146104e457600080fd5b806323b872dd146103ae57806326d87362146103ce578063313ce567146103ee578063395093511461040a57806341cb87fc1461042a57600080fd5b8063153459041161020357806315345904146102de5780631694505e146102fe57806318160ddd14610336578063181cec1c14610355578063224611731461038e57600080fd5b806302a8b0411461024057806306fdde0314610262578063095ea7b31461028d578063148d2161146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b3660046119ef565b610784565b005b34801561026e57600080fd5b5061027761080f565b6040516102849190611a0a565b60405180910390f35b34801561029957600080fd5b506102ad6102a8366004611a6d565b6108a1565b6040519015158152602001610284565b3480156102c957600080fd5b50600e546102ad90600160a81b900460ff1681565b3480156102ea57600080fd5b506102606102f9366004611a99565b6108b8565b34801561030a57600080fd5b50600d5461031e906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561034257600080fd5b506004545b604051908152602001610284565b34801561036157600080fd5b506102ad610370366004611ace565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561039a57600080fd5b506102606103a9366004611ace565b61090d565b3480156103ba57600080fd5b506102ad6103c9366004611aeb565b610959565b3480156103da57600080fd5b506102606103e9366004611a99565b6109c2565b3480156103fa57600080fd5b5060405160128152602001610284565b34801561041657600080fd5b506102ad610425366004611a6d565b610a17565b34801561043657600080fd5b50610260610445366004611ace565b610a4d565b34801561045657600080fd5b50610260610465366004611b2c565b610bf2565b34801561047657600080fd5b50600e5461031e906001600160a01b031681565b34801561049657600080fd5b50600e546102ad90600160b01b900460ff1681565b3480156104b757600080fd5b506102ad6104c6366004611ace565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156104f057600080fd5b50610347600f5481565b34801561050657600080fd5b506102ad610515366004611ace565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561053f57600080fd5b5061034761054e366004611ace565b6001600160a01b031660009081526002602052604090205490565b34801561057557600080fd5b50610260610c3e565b34801561058a57600080fd5b5061034760115481565b3480156105a057600080fd5b50600a5461031e906001600160a01b031681565b3480156105c057600080fd5b50610347600b5481565b3480156105d657600080fd5b506102606105e5366004611b2c565b610cb2565b3480156105f657600080fd5b50610260610cf8565b34801561060b57600080fd5b506000546001600160a01b031661031e565b34801561062957600080fd5b50610347600c5481565b34801561063f57600080fd5b50610277610d37565b34801561065457600080fd5b50610260610663366004611b2c565b610d46565b34801561067457600080fd5b50610260610683366004611b45565b610d8c565b34801561069457600080fd5b506102ad6106a3366004611a6d565b610dc1565b3480156106b457600080fd5b506102ad6106c3366004611a6d565b610e10565b3480156106d457600080fd5b5061034760105481565b3480156106ea57600080fd5b506102606106f9366004611a99565b610e1d565b34801561070a57600080fd5b50610347610719366004611b67565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561075057600080fd5b5061026061075f366004611b2c565b610e72565b34801561077057600080fd5b5061026061077f366004611ace565b610eb8565b6000546001600160a01b031633146107b75760405162461bcd60e51b81526004016107ae90611ba0565b60405180910390fd5b600e8054821515600160a81b0260ff60a81b199091161790556040517f95104a55e36dd507aac6f3a5211027febb09c940366b18700bc6e6cedf67426b9061080490831515815260200190565b60405180910390a150565b60606005805461081e90611bd5565b80601f016020809104026020016040519081016040528092919081815260200182805461084a90611bd5565b80156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905090565b60006108ae338484610fb5565b5060015b92915050565b6000546001600160a01b031633146108e25760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109375760405162461bcd60e51b81526004016107ae90611ba0565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006109668484846110da565b6109b884336109b385604051806060016040528060288152602001611ef4602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061154d565b610fb5565b5060019392505050565b6000546001600160a01b031633146109ec5760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108ae9185906109b39086610fa2565b6000546001600160a01b03163314610a775760405162461bcd60e51b81526004016107ae90611ba0565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ade9190611c0f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4f9190611c0f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc09190611c0f565b600e80546001600160a01b039283166001600160a01b031991821617909155600d805493909216921691909117905550565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b81526004016107ae90611ba0565b610c3b33610c2c6012600a611d26565b610c369084611d35565b611579565b50565b6000546001600160a01b03163314610c685760405162461bcd60e51b81526004016107ae90611ba0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610cdc5760405162461bcd60e51b81526004016107ae90611ba0565b610ce86012600a611d26565b610cf29082611d35565b600f5550565b6000546001600160a01b03163314610d225760405162461bcd60e51b81526004016107ae90611ba0565b600e805460ff60b01b1916600160b01b179055565b60606006805461081e90611bd5565b6000546001600160a01b03163314610d705760405162461bcd60e51b81526004016107ae90611ba0565b610d7c6012600a611d26565b610d869082611d35565b60105550565b6000546001600160a01b03163314610db65760405162461bcd60e51b81526004016107ae90611ba0565b600b91909155600c55565b60006108ae33846109b385604051806060016040528060258152602001611f1c602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061154d565b60006108ae3384846110da565b6000546001600160a01b03163314610e475760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e9c5760405162461bcd60e51b81526004016107ae90611ba0565b610ea86012600a611d26565b610eb29082611d35565b60115550565b6000546001600160a01b03163314610ee25760405162461bcd60e51b81526004016107ae90611ba0565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fae8284611d54565b9392505050565b6001600160a01b0383166110175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ae565b6001600160a01b0382166110785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ae565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166111005760405162461bcd60e51b81526004016107ae90611d67565b6001600160a01b0382166111265760405162461bcd60e51b81526004016107ae90611dac565b600081116111885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ae565b6000546001600160a01b038481169116148015906111b05750600e54600160b01b900460ff16155b1561120e57600e54600160b01b900460ff1661120e5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c65642079657400000000000060448201526064016107ae565b6000546001600160a01b0384811691161480159061123a57506000546001600160a01b03838116911614155b156112e9576001600160a01b03831660009081526009602052604090205460ff168061127e57506001600160a01b03821660009081526009602052604090205460ff165b8061128b57506011548111155b6112e95760405162461bcd60e51b815260206004820152602960248201527f45524332303a205472616e7366657220616d6f756e742065786365656473207460448201526834329036b0bc2a3c1760b91b60648201526084016107ae565b6000546001600160a01b0384811691161480159061131057506001600160a01b0382163014155b801561132757506001600160a01b03821661dead14155b80156113415750600e546001600160a01b03838116911614155b156113dc576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff168061138457506010546113818383611d54565b11155b6113da5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b60648201526084016107ae565b505b30600090815260026020526040902054600f548110801590819061140a5750600e54600160a01b900460ff16155b80156114245750600e546001600160a01b03868116911614155b80156114395750600e54600160a81b900460ff165b1561144c57600f54915061144c82611684565b6001600160a01b03851660009081526007602052604090205460019060ff168061148e57506001600160a01b03851660009081526007602052604090205460ff165b156114a65761149e868686611758565b506000611545565b600e546001600160a01b03908116908716036115085760006114de60646114d8600b548861186490919063ffffffff16565b90611870565b90506114ea858261187c565b94506114f7873083611758565b611502878787611758565b50611545565b600e546001600160a01b039081169086160361153a5760006114de60646114d8600c548861186490919063ffffffff16565b611545868686611758565b505050505050565b600081848411156115715760405162461bcd60e51b81526004016107ae9190611a0a565b505050900390565b6001600160a01b0382166115d95760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107ae565b61161681604051806060016040528060228152602001611eac602291396001600160a01b038516600090815260026020526040902054919061154d565b6001600160a01b03831660009081526002602052604090205560045461163c908261187c565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600e805460ff60a01b1916600160a01b179055600c546000906116af906064906114d8908590611864565b9050808215806116bd575080155b156116c9575050611748565b60006116d484611888565b476000836116e28684611d35565b6116ec9190611def565b600a546040519192506001600160a01b0316908290600081818185875af1925050503d806000811461173a576040519150601f19603f3d011682016040523d82523d6000602084013e61173f565b606091505b50505050505050505b50600e805460ff60a01b19169055565b6001600160a01b03831661177e5760405162461bcd60e51b81526004016107ae90611d67565b6001600160a01b0382166117a45760405162461bcd60e51b81526004016107ae90611dac565b6117e181604051806060016040528060268152602001611ece602691396001600160a01b038616600090815260026020526040902054919061154d565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546118109082610fa2565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110cd9085815260200190565b6000610fae8284611d35565b6000610fae8284611def565b6000610fae8284611e11565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118bd576118bd611e24565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193a9190611c0f565b8160018151811061194d5761194d611e24565b6001600160a01b039283166020918202929092010152600d546119739130911684610fb5565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906119ac908590600090869030904290600401611e3a565b600060405180830381600087803b1580156119c657600080fd5b505af1158015611545573d6000803e3d6000fd5b803580151581146119ea57600080fd5b919050565b600060208284031215611a0157600080fd5b610fae826119da565b600060208083528351808285015260005b81811015611a3757858101830151858201604001528201611a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c3b57600080fd5b60008060408385031215611a8057600080fd5b8235611a8b81611a58565b946020939093013593505050565b60008060408385031215611aac57600080fd5b8235611ab781611a58565b9150611ac5602084016119da565b90509250929050565b600060208284031215611ae057600080fd5b8135610fae81611a58565b600080600060608486031215611b0057600080fd5b8335611b0b81611a58565b92506020840135611b1b81611a58565b929592945050506040919091013590565b600060208284031215611b3e57600080fd5b5035919050565b60008060408385031215611b5857600080fd5b50508035926020909101359150565b60008060408385031215611b7a57600080fd5b8235611b8581611a58565b91506020830135611b9581611a58565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611be957607f821691505b602082108103611c0957634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611c2157600080fd5b8151610fae81611a58565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611c7d578160001904821115611c6357611c63611c2c565b80851615611c7057918102915b93841c9390800290611c47565b509250929050565b600082611c94575060016108b2565b81611ca1575060006108b2565b8160018114611cb75760028114611cc157611cdd565b60019150506108b2565b60ff841115611cd257611cd2611c2c565b50506001821b6108b2565b5060208310610133831016604e8410600b8410161715611d00575081810a6108b2565b611d0a8383611c42565b8060001904821115611d1e57611d1e611c2c565b029392505050565b6000610fae60ff841683611c85565b6000816000190483118215151615611d4f57611d4f611c2c565b500290565b808201808211156108b2576108b2611c2c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611e0c57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108b2576108b2611c2c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e8a5784516001600160a01b031683529383019391830191600101611e65565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aec46fe6a7f7e1670ef4808fa776348d528a707a7f8c0393d037311fada7832b64736f6c63430008100033
Deployed Bytecode Sourcemap
9071:8674:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13739:176;;;;;;;;;;-1:-1:-1;13739:176:0;;;;;:::i;:::-;;:::i;:::-;;3771:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4751:194;;;;;;;;;;-1:-1:-1;4751:194:0;;;;;:::i;:::-;;:::i;:::-;;;1538:14:1;;1531:22;1513:41;;1501:2;1486:18;4751:194:0;1373:187:1;9657:41:0;;;;;;;;;;-1:-1:-1;9657:41:0;;;;-1:-1:-1;;;9657:41:0;;;;;;11587:175;;;;;;;;;;-1:-1:-1;11587:175:0;;;;;:::i;:::-;;:::i;9546:41::-;;;;;;;;;;-1:-1:-1;9546:41:0;;;;-1:-1:-1;;;;;9546:41:0;;;;;;-1:-1:-1;;;;;2075:32:1;;;2057:51;;2045:2;2030:18;9546:41:0;1885:229:1;4092:108:0;;;;;;;;;;-1:-1:-1;4180:12:0;;4092:108;;;2265:25:1;;;2253:2;2238:18;4092:108:0;2119:177:1;12280:155:0;;;;;;;;;;-1:-1:-1;12280:155:0;;;;;:::i;:::-;-1:-1:-1;;;;;12394:33:0;12370:4;12394:33;;;:24;:33;;;;;;;;;12280:155;12858:104;;;;;;;;;;-1:-1:-1;12858:104:0;;;;;:::i;:::-;;:::i;4953:454::-;;;;;;;;;;-1:-1:-1;4953:454:0;;;;;:::i;:::-;;:::i;11770:171::-;;;;;;;;;;-1:-1:-1;11770:171:0;;;;;:::i;:::-;;:::i;3991:93::-;;;;;;;;;;-1:-1:-1;3991:93:0;;4074:2;3156:36:1;;3144:2;3129:18;3991:93:0;3014:184:1;5415:293:0;;;;;;;;;;-1:-1:-1;5415:293:0;;;;;:::i;:::-;;:::i;13399:332::-;;;;;;;;;;-1:-1:-1;13399:332:0;;;;;:::i;:::-;;:::i;11470:109::-;;;;;;;;;;-1:-1:-1;11470:109:0;;;;;:::i;:::-;;:::i;9594:28::-;;;;;;;;;;-1:-1:-1;9594:28:0;;;;-1:-1:-1;;;;;9594:28:0;;;9705:34;;;;;;;;;;-1:-1:-1;9705:34:0;;;;-1:-1:-1;;;9705:34:0;;;;;;12443:124;;;;;;;;;;-1:-1:-1;12443:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;12532:27:0;12508:4;12532:27;;;:18;:27;;;;;;;;;12443:124;9746:38;;;;;;;;;;;;;;;;12116:156;;;;;;;;;;-1:-1:-1;12116:156:0;;;;;:::i;:::-;-1:-1:-1;;;;;12229:35:0;12205:4;12229:35;;;:26;:35;;;;;;;;;12116:156;4208:143;;;;;;;;;;-1:-1:-1;4208:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4325:18:0;4298:7;4325:18;;;:9;:18;;;;;;;4208:143;2652:148;;;;;;;;;;;;;:::i;9829:20::-;;;;;;;;;;;;;;;;9339:30;;;;;;;;;;-1:-1:-1;9339:30:0;;;;-1:-1:-1;;;;;9339:30:0;;;9459:35;;;;;;;;;;;;;;;;13250:141;;;;;;;;;;-1:-1:-1;13250:141:0;;;;;:::i;:::-;;:::i;12575:84::-;;;;;;;;;;;;;:::i;2429:87::-;;;;;;;;;;-1:-1:-1;2475:7:0;2502:6;-1:-1:-1;;;;;2502:6:0;2429:87;;9501:36;;;;;;;;;;;;;;;;3879:104;;;;;;;;;;;;;:::i;12970:143::-;;;;;;;;;;-1:-1:-1;12970:143:0;;;;;:::i;:::-;;:::i;12667:183::-;;;;;;;;;;-1:-1:-1;12667:183:0;;;;;:::i;:::-;;:::i;5716:393::-;;;;;;;;;;-1:-1:-1;5716:393:0;;;;;:::i;:::-;;:::i;4359:200::-;;;;;;;;;;-1:-1:-1;4359:200:0;;;;;:::i;:::-;;:::i;9791:31::-;;;;;;;;;;;;;;;;11949:159;;;;;;;;;;-1:-1:-1;11949:159:0;;;;;:::i;:::-;;:::i;4567:176::-;;;;;;;;;;-1:-1:-1;4567:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;4708:18:0;;;4681:7;4708:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4567:176;13121:121;;;;;;;;;;-1:-1:-1;13121:121:0;;;;;:::i;:::-;;:::i;2808:281::-;;;;;;;;;;-1:-1:-1;2808:281:0;;;;;:::i;:::-;;:::i;13739:176::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;;;;;;;;;13819:22:::1;:33:::0;;;::::1;;-1:-1:-1::0;;;13819:33:0::1;-1:-1:-1::0;;;;13819:33:0;;::::1;;::::0;;13868:39:::1;::::0;::::1;::::0;::::1;::::0;13844:8;1538:14:1;1531:22;1513:41;;1501:2;1486:18;;1373:187;13868:39:0::1;;;;;;;;13739:176:::0;:::o;3771:100::-;3825:13;3858:5;3851:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3771:100;:::o;4751:194::-;4859:4;4876:39;1932:10;4899:7;4908:6;4876:8;:39::i;:::-;-1:-1:-1;4933:4:0;4751:194;;;;;:::o;11587:175::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11711:35:0;;;::::1;;::::0;;;:26:::1;:35;::::0;;;;:43;;-1:-1:-1;;11711:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11587:175::o;12858:104::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;12931:15:::1;:23:::0;;-1:-1:-1;;;;;;12931:23:0::1;-1:-1:-1::0;;;;;12931:23:0;;;::::1;::::0;;;::::1;::::0;;12858:104::o;4953:454::-;5093:4;5110:36;5120:6;5128:9;5139:6;5110:9;:36::i;:::-;5157:220;5180:6;1932:10;5228:138;5284:6;5228:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5228:19:0;;;;;;:11;:19;;;;;;;;1932:10;5228:33;;;;;;;;;;:37;:138::i;:::-;5157:8;:220::i;:::-;-1:-1:-1;5395:4:0;4953:454;;;;;:::o;11770:171::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11892:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;11892:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11770:171::o;5415:293::-;1932:10;5528:4;5617:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5617:34:0;;;;;;;;;;5528:4;;5545:133;;5595:7;;5617:50;;5656:10;5617:38;:50::i;13399:332::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;13474:35:::1;13531:9;13474:67;;13586:16;-1:-1:-1::0;;;;;13586:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13568:70:0::1;;13647:4;13654:16;-1:-1:-1::0;;;;;13654:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13568:110;::::0;-1:-1:-1;;;;;;13568:110:0::1;::::0;;;;;;-1:-1:-1;;;;;5474:15:1;;;13568:110:0::1;::::0;::::1;5456:34:1::0;5526:15;;5506:18;;;5499:43;5391:18;;13568:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13552:13;:126:::0;;-1:-1:-1;;;;;13552:126:0;;::::1;-1:-1:-1::0;;;;;;13552:126:0;;::::1;;::::0;;;13689:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;13399:332:0:o;11470:109::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;11527:44:::1;11533:10;11554:16;4074:2:::0;11554::::1;:16;:::i;:::-;11545:25;::::0;:6;:25:::1;:::i;:::-;11527:5;:44::i;:::-;11470:109:::0;:::o;2652:148::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;2759:1:::1;2743:6:::0;;2722:40:::1;::::0;-1:-1:-1;;;;;2743:6:0;;::::1;::::0;2722:40:::1;::::0;2759:1;;2722:40:::1;2790:1;2773:19:::0;;-1:-1:-1;;;;;;2773:19:0::1;::::0;;2652:148::o;13250:141::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;13367:16:::1;4074:2:::0;13367::::1;:16;:::i;:::-;13358:25;::::0;:6;:25:::1;:::i;:::-;13332:23;:51:::0;-1:-1:-1;13250:141:0:o;12575:84::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;12630:14:::1;:21:::0;;-1:-1:-1;;;;12630:21:0::1;-1:-1:-1::0;;;12630:21:0::1;::::0;;12575:84::o;3879:104::-;3935:13;3968:7;3961:14;;;;;:::i;12970:143::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;13089:16:::1;4074:2:::0;13089::::1;:16;:::i;:::-;13069:36;::::0;:17;:36:::1;:::i;:::-;13050:16;:55:::0;-1:-1:-1;12970:143:0:o;12667:183::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;12781:15:::1;:24:::0;;;;12816:16:::1;:26:::0;12667:183::o;5716:393::-;5834:4;5851:228;1932:10;5901:7;5923:145;5980:15;5923:145;;;;;;;;;;;;;;;;;1932:10;5923:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5923:34:0;;;;;;;;;;;;:38;:145::i;4359:200::-;4470:4;4487:42;1932:10;4511:9;4522:6;4487:9;:42::i;11949:159::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12065:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12065:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11949:159::o;13121:121::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;13218:16:::1;4074:2:::0;13218::::1;:16;:::i;:::-;13204:30;::::0;:11;:30:::1;:::i;:::-;13196:5;:38:::0;-1:-1:-1;13121:121:0:o;2808:281::-;2475:7;2502:6;-1:-1:-1;;;;;2502:6:0;1932:10;2564:23;2556:68;;;;-1:-1:-1;;;2556:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2911:22:0;::::1;2889:110;;;::::0;-1:-1:-1;;;2889:110:0;;7443:2:1;2889:110:0::1;::::0;::::1;7425:21:1::0;7482:2;7462:18;;;7455:30;7521:34;7501:18;;;7494:62;-1:-1:-1;;;7572:18:1;;;7565:36;7618:19;;2889:110:0::1;7241:402:1::0;2889:110:0::1;3036:6;::::0;;3015:38:::1;::::0;-1:-1:-1;;;;;3015:38:0;;::::1;::::0;3036:6;::::1;::::0;3015:38:::1;::::0;::::1;3064:6;:17:::0;;-1:-1:-1;;;;;;3064:17:0::1;-1:-1:-1::0;;;;;3064:17:0;;;::::1;::::0;;;::::1;::::0;;2808:281::o;901:98::-;959:7;986:5;990:1;986;:5;:::i;:::-;979:12;901:98;-1:-1:-1;;;901:98:0:o;7584:380::-;-1:-1:-1;;;;;7720:19:0;;7712:68;;;;-1:-1:-1;;;7712:68:0;;7980:2:1;7712:68:0;;;7962:21:1;8019:2;7999:18;;;7992:30;8058:34;8038:18;;;8031:62;-1:-1:-1;;;8109:18:1;;;8102:34;8153:19;;7712:68:0;7778:400:1;7712:68:0;-1:-1:-1;;;;;7799:21:0;;7791:68;;;;-1:-1:-1;;;7791:68:0;;8385:2:1;7791:68:0;;;8367:21:1;8424:2;8404:18;;;8397:30;8463:34;8443:18;;;8436:62;-1:-1:-1;;;8514:18:1;;;8507:32;8556:19;;7791:68:0;8183:398:1;7791:68:0;-1:-1:-1;;;;;7872:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7924:32;;2265:25:1;;;7924:32:0;;2238:18:1;7924:32:0;;;;;;;;7584:380;;;:::o;13960:2612::-;-1:-1:-1;;;;;14092:18:0;;14084:68;;;;-1:-1:-1;;;14084:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14171:16:0;;14163:64;;;;-1:-1:-1;;;14163:64:0;;;;;;;:::i;:::-;14255:1;14246:6;:10;14238:64;;;;-1:-1:-1;;;14238:64:0;;9598:2:1;14238:64:0;;;9580:21:1;9637:2;9617:18;;;9610:30;9676:34;9656:18;;;9649:62;-1:-1:-1;;;9727:18:1;;;9720:39;9776:19;;14238:64:0;9396:405:1;14238:64:0;2475:7;2502:6;-1:-1:-1;;;;;14319:15:0;;;2502:6;;14319:15;;;;:34;;-1:-1:-1;14339:14:0;;-1:-1:-1;;;14339:14:0;;;;14338:15;14319:34;14315:120;;;14378:14;;-1:-1:-1;;;14378:14:0;;;;14370:53;;;;-1:-1:-1;;;14370:53:0;;10008:2:1;14370:53:0;;;9990:21:1;10047:2;10027:18;;;10020:30;10086:28;10066:18;;;10059:56;10132:18;;14370:53:0;9806:350:1;14370:53:0;2475:7;2502:6;-1:-1:-1;;;;;14451:15:0;;;2502:6;;14451:15;;;;:32;;-1:-1:-1;2475:7:0;2502:6;-1:-1:-1;;;;;14470:13:0;;;2502:6;;14470:13;;14451:32;14447:281;;;-1:-1:-1;;;;;14524:32:0;;;;;;:26;:32;;;;;;;;;:87;;-1:-1:-1;;;;;;14581:30:0;;;;;;:26;:30;;;;;;;;14524:87;:127;;;;14646:5;;14636:6;:15;;14524:127;14498:230;;;;-1:-1:-1;;;14498:230:0;;10363:2:1;14498:230:0;;;10345:21:1;10402:2;10382:18;;;10375:30;10441:34;10421:18;;;10414:62;-1:-1:-1;;;10492:18:1;;;10485:39;10541:19;;14498:230:0;10161:405:1;14498:230:0;2475:7;2502:6;-1:-1:-1;;;;;14759:15:0;;;2502:6;;14759:15;;;;:51;;-1:-1:-1;;;;;;14791:19:0;;14805:4;14791:19;;14759:51;:86;;;;-1:-1:-1;;;;;;14827:18:0;;9408:42;14827:18;;14759:86;:122;;;;-1:-1:-1;14868:13:0;;-1:-1:-1;;;;;14862:19:0;;;14868:13;;14862:19;;14759:122;14741:425;;;-1:-1:-1;;;;;4325:18:0;;14908:22;4325:18;;;:9;:18;;;;;;;;;14987:24;:28;;;;;;;;;;:98;;-1:-1:-1;15068:16:0;;15041:23;15058:6;15041:14;:23;:::i;:::-;:43;;14987:98;14961:193;;;;-1:-1:-1;;;14961:193:0;;10773:2:1;14961:193:0;;;10755:21:1;10812:2;10792:18;;;10785:30;10851:34;10831:18;;;10824:62;-1:-1:-1;;;10902:18:1;;;10895:31;10943:19;;14961:193:0;10571:397:1;14961:193:0;14893:273;14741:425;15227:4;15178:28;4325:18;;;:9;:18;;;;;;15308:23;;15271:60;;;;;;;15360:53;;-1:-1:-1;15397:16:0;;-1:-1:-1;;;15397:16:0;;;;15396:17;15360:53;:91;;;;-1:-1:-1;15438:13:0;;-1:-1:-1;;;;;15430:21:0;;;15438:13;;15430:21;;15360:91;:130;;;;-1:-1:-1;15468:22:0;;-1:-1:-1;;;15468:22:0;;;;15360:130;15342:278;;;15540:23;;15517:46;;15578:30;15587:20;15578:8;:30::i;:::-;-1:-1:-1;;;;;15666:24:0;;15632:12;15666:24;;;:18;:24;;;;;;15647:4;;15666:24;;;:50;;-1:-1:-1;;;;;;15694:22:0;;;;;;:18;:22;;;;;;;;15666:50;15662:903;;;15733:33;15749:4;15755:2;15759:6;15733:15;:33::i;:::-;-1:-1:-1;15791:5:0;15662:903;;;15841:13;;-1:-1:-1;;;;;15841:13:0;;;15833:21;;;;15829:725;;15875:23;15901:36;15933:3;15901:27;15912:15;;15901:6;:10;;:27;;;;:::i;:::-;:31;;:36::i;:::-;15875:62;-1:-1:-1;15965:27:0;:6;15875:62;15965:10;:27::i;:::-;15956:36;;16011:53;16027:4;16041;16048:15;16011;:53::i;:::-;16083:33;16099:4;16105:2;16109:6;16083:15;:33::i;:::-;15856:276;15829:725;;;16148:13;;-1:-1:-1;;;;;16148:13:0;;;16142:19;;;;16138:416;;16182:23;16208:77;16263:3;16208:28;16219:16;;16208:6;:10;;:28;;;;:::i;16138:416::-;16505:33;16521:4;16527:2;16531:6;16505:15;:33::i;:::-;14073:2499;;;13960:2612;;;:::o;1325:240::-;1445:7;1506:12;1498:6;;;;1490:29;;;;-1:-1:-1;;;1490:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1541:5:0;;;1325:240::o;7121:455::-;-1:-1:-1;;;;;7205:21:0;;7197:67;;;;-1:-1:-1;;;7197:67:0;;11175:2:1;7197:67:0;;;11157:21:1;11214:2;11194:18;;;11187:30;11253:34;11233:18;;;11226:62;-1:-1:-1;;;11304:18:1;;;11297:31;11345:19;;7197:67:0;10973:397:1;7197:67:0;7360:105;7397:6;7360:105;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7360:18:0;;;;;;:9;:18;;;;;;;:105;:22;:105::i;:::-;-1:-1:-1;;;;;7339:18:0;;;;;;:9;:18;;;;;:126;7491:12;;:24;;7508:6;7491:16;:24::i;:::-;7476:12;:39;7531:37;;2265:25:1;;;7557:1:0;;-1:-1:-1;;;;;7531:37:0;;;;;2253:2:1;2238:18;7531:37:0;;;;;;;7121:455;;:::o;16580:655::-;10151:16;:23;;-1:-1:-1;;;;10151:23:0;-1:-1:-1;;;10151:23:0;;;16700:16:::1;::::0;10151:23;;16680:70:::1;::::0;16736:3:::1;::::0;16680:37:::1;::::0;:15;;:19:::1;:37::i;:70::-;16654:96:::0;-1:-1:-1;16654:96:0;16819:20;;;:46:::1;;-1:-1:-1::0;16843:22:0;;16819:46:::1;16815:85;;;16882:7;;;;16815:85;16910:12;16933:33;16950:15;16933:16;:33::i;:::-;16998:21;16977:18;17103:17:::0;17057:28:::1;17070:15:::0;16998:21;17057:28:::1;:::i;:::-;17056:65;;;;:::i;:::-;17154:15;::::0;17146:81:::1;::::0;17030:91;;-1:-1:-1;;;;;;17154:15:0::1;::::0;17030:91;;17146:81:::1;::::0;;;17030:91;17154:15;17146:81:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;10185:1:0::1;-1:-1:-1::0;10197:16:0;:24;;-1:-1:-1;;;;10197:24:0;;;16580:655::o;6117:610::-;-1:-1:-1;;;;;6257:20:0;;6249:70;;;;-1:-1:-1;;;6249:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6338:23:0;;6330:71;;;;-1:-1:-1;;;6330:71:0;;;;;;;:::i;:::-;6494:108;6530:6;6494:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6494:17:0;;;;;;:9;:17;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;6474:17:0;;;;;;;:9;:17;;;;;;:128;;;;6636:20;;;;;;;:32;;6661:6;6636:24;:32::i;:::-;-1:-1:-1;;;;;6613:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6684:35;;;;;;;;;;6712:6;2265:25:1;;2253:2;2238:18;;2119:177;1113:98:0;1171:7;1198:5;1202:1;1198;:5;:::i;1219:98::-;1277:7;1304:5;1308:1;1304;:5;:::i;1007:98::-;1065:7;1092:5;1096:1;1092;:5;:::i;17243:499::-;17333:16;;;17347:1;17333:16;;;;;;;;17309:21;;17333:16;;;;;;;;;;-1:-1:-1;17333:16:0;17309:40;;17378:4;17360;17365:1;17360:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17360:23:0;;;:7;;;;;;;;;;:23;;;;17404:15;;:22;;;-1:-1:-1;;;17404:22:0;;;;:15;;;;;:20;;:22;;;;;17360:7;;17404:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17394:4;17399:1;17394:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17394:32:0;;;:7;;;;;;;;;:32;17469:15;;17437:62;;17454:4;;17469:15;17487:11;17437:8;:62::i;:::-;17510:15;;:224;;-1:-1:-1;;;17510:224:0;;-1:-1:-1;;;;;17510:15:0;;;;:66;;:224;;17591:11;;17510:15;;17661:4;;17688;;17708:15;;17510:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:160:1;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:180::-;235:6;288:2;276:9;267:7;263:23;259:32;256:52;;;304:1;301;294:12;256:52;327:26;343:9;327:26;:::i;364:548::-;476:4;505:2;534;523:9;516:21;566:6;560:13;609:6;604:2;593:9;589:18;582:34;634:1;644:140;658:6;655:1;652:13;644:140;;;753:14;;;749:23;;743:30;719:17;;;738:2;715:26;708:66;673:10;;644:140;;;648:3;833:1;828:2;819:6;808:9;804:22;800:31;793:42;903:2;896;892:7;887:2;879:6;875:15;871:29;860:9;856:45;852:54;844:62;;;;364:548;;;;:::o;917:131::-;-1:-1:-1;;;;;992:31:1;;982:42;;972:70;;1038:1;1035;1028:12;1053:315;1121:6;1129;1182:2;1170:9;1161:7;1157:23;1153:32;1150:52;;;1198:1;1195;1188:12;1150:52;1237:9;1224:23;1256:31;1281:5;1256:31;:::i;:::-;1306:5;1358:2;1343:18;;;;1330:32;;-1:-1:-1;;;1053:315:1:o;1565:::-;1630:6;1638;1691:2;1679:9;1670:7;1666:23;1662:32;1659:52;;;1707:1;1704;1697:12;1659:52;1746:9;1733:23;1765:31;1790:5;1765:31;:::i;:::-;1815:5;-1:-1:-1;1839:35:1;1870:2;1855:18;;1839:35;:::i;:::-;1829:45;;1565:315;;;;;:::o;2301:247::-;2360:6;2413:2;2401:9;2392:7;2388:23;2384:32;2381:52;;;2429:1;2426;2419:12;2381:52;2468:9;2455:23;2487:31;2512:5;2487:31;:::i;2553:456::-;2630:6;2638;2646;2699:2;2687:9;2678:7;2674:23;2670:32;2667:52;;;2715:1;2712;2705:12;2667:52;2754:9;2741:23;2773:31;2798:5;2773:31;:::i;:::-;2823:5;-1:-1:-1;2880:2:1;2865:18;;2852:32;2893:33;2852:32;2893:33;:::i;:::-;2553:456;;2945:7;;-1:-1:-1;;;2999:2:1;2984:18;;;;2971:32;;2553:456::o;3203:180::-;3262:6;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;-1:-1:-1;3354:23:1;;3203:180;-1:-1:-1;3203:180:1:o;3596:248::-;3664:6;3672;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;-1:-1:-1;;3764:23:1;;;3834:2;3819:18;;;3806:32;;-1:-1:-1;3596:248:1:o;3849:388::-;3917:6;3925;3978:2;3966:9;3957:7;3953:23;3949:32;3946:52;;;3994:1;3991;3984:12;3946:52;4033:9;4020:23;4052:31;4077:5;4052:31;:::i;:::-;4102:5;-1:-1:-1;4159:2:1;4144:18;;4131:32;4172:33;4131:32;4172:33;:::i;:::-;4224:7;4214:17;;;3849:388;;;;;:::o;4242:356::-;4444:2;4426:21;;;4463:18;;;4456:30;4522:34;4517:2;4502:18;;4495:62;4589:2;4574:18;;4242:356::o;4603:380::-;4682:1;4678:12;;;;4725;;;4746:61;;4800:4;4792:6;4788:17;4778:27;;4746:61;4853:2;4845:6;4842:14;4822:18;4819:38;4816:161;;4899:10;4894:3;4890:20;4887:1;4880:31;4934:4;4931:1;4924:15;4962:4;4959:1;4952:15;4816:161;;4603:380;;;:::o;4988:251::-;5058:6;5111:2;5099:9;5090:7;5086:23;5082:32;5079:52;;;5127:1;5124;5117:12;5079:52;5159:9;5153:16;5178:31;5203:5;5178:31;:::i;5553:127::-;5614:10;5609:3;5605:20;5602:1;5595:31;5645:4;5642:1;5635:15;5669:4;5666:1;5659:15;5685:422;5774:1;5817:5;5774:1;5831:270;5852:7;5842:8;5839:21;5831:270;;;5911:4;5907:1;5903:6;5899:17;5893:4;5890:27;5887:53;;;5920:18;;:::i;:::-;5970:7;5960:8;5956:22;5953:55;;;5990:16;;;;5953:55;6069:22;;;;6029:15;;;;5831:270;;;5835:3;5685:422;;;;;:::o;6112:806::-;6161:5;6191:8;6181:80;;-1:-1:-1;6232:1:1;6246:5;;6181:80;6280:4;6270:76;;-1:-1:-1;6317:1:1;6331:5;;6270:76;6362:4;6380:1;6375:59;;;;6448:1;6443:130;;;;6355:218;;6375:59;6405:1;6396:10;;6419:5;;;6443:130;6480:3;6470:8;6467:17;6464:43;;;6487:18;;:::i;:::-;-1:-1:-1;;6543:1:1;6529:16;;6558:5;;6355:218;;6657:2;6647:8;6644:16;6638:3;6632:4;6629:13;6625:36;6619:2;6609:8;6606:16;6601:2;6595:4;6592:12;6588:35;6585:77;6582:159;;;-1:-1:-1;6694:19:1;;;6726:5;;6582:159;6773:34;6798:8;6792:4;6773:34;:::i;:::-;6843:6;6839:1;6835:6;6831:19;6822:7;6819:32;6816:58;;;6854:18;;:::i;:::-;6892:20;;6112:806;-1:-1:-1;;;6112:806:1:o;6923:140::-;6981:5;7010:47;7051:4;7041:8;7037:19;7031:4;7010:47;:::i;7068:168::-;7108:7;7174:1;7170;7166:6;7162:14;7159:1;7156:21;7151:1;7144:9;7137:17;7133:45;7130:71;;;7181:18;;:::i;:::-;-1:-1:-1;7221:9:1;;7068:168::o;7648:125::-;7713:9;;;7734:10;;;7731:36;;;7747:18;;:::i;8586:401::-;8788:2;8770:21;;;8827:2;8807:18;;;8800:30;8866:34;8861:2;8846:18;;8839:62;-1:-1:-1;;;8932:2:1;8917:18;;8910:35;8977:3;8962:19;;8586:401::o;8992:399::-;9194:2;9176:21;;;9233:2;9213:18;;;9206:30;9272:34;9267:2;9252:18;;9245:62;-1:-1:-1;;;9338:2:1;9323:18;;9316:33;9381:3;9366:19;;8992:399::o;11375:217::-;11415:1;11441;11431:132;;11485:10;11480:3;11476:20;11473:1;11466:31;11520:4;11517:1;11510:15;11548:4;11545:1;11538:15;11431:132;-1:-1:-1;11577:9:1;;11375:217::o;11807:128::-;11874:9;;;11895:11;;;11892:37;;;11909:18;;:::i;12072:127::-;12133:10;12128:3;12124:20;12121:1;12114:31;12164:4;12161:1;12154:15;12188:4;12185:1;12178:15;12204:980;12466:4;12514:3;12503:9;12499:19;12545:6;12534:9;12527:25;12571:2;12609:6;12604:2;12593:9;12589:18;12582:34;12652:3;12647:2;12636:9;12632:18;12625:31;12676:6;12711;12705:13;12742:6;12734;12727:22;12780:3;12769:9;12765:19;12758:26;;12819:2;12811:6;12807:15;12793:29;;12840:1;12850:195;12864:6;12861:1;12858:13;12850:195;;;12929:13;;-1:-1:-1;;;;;12925:39:1;12913:52;;13020:15;;;;12985:12;;;;12961:1;12879:9;12850:195;;;-1:-1:-1;;;;;;;13101:32:1;;;;13096:2;13081:18;;13074:60;-1:-1:-1;;;13165:3:1;13150:19;13143:35;13062:3;12204:980;-1:-1:-1;;;12204:980:1:o
Swarm Source
ipfs://aec46fe6a7f7e1670ef4808fa776348d528a707a7f8c0393d037311fada7832b
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.