ERC-20
Overview
Max Total Supply
420,690,000,000,000 PEPENG
Holders
126
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
820,644,945,787.888333673566085753 PEPENGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PepengZhao
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-10 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.18; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view 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; } } contract ERC20 is Context, IERC20, IERC20Metadata { 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) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } 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); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _init(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(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); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(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 {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract PepengZhao is ERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedFromMaxWalletLimit; uint256 public buyFee; uint256 public sellFee; uint256 public maxWalletAmount; bool public maxWalletLimitEnabled; bool public tradingEnabled; uint256 public tradingActiveTime; address public marketingWallet; event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded); event MaxWalletLimitAmountChanged(uint256 maxWalletLimitRate); event MaxWalletLimitStateChanged(bool maxWalletLimit); constructor () ERC20("Pepeng Zhao", "PEPENG") { address newOwner = 0x1A0786ce4CB81c533aaA46d98A15Ed9D97F8dC24; transferOwnership(newOwner); address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH UniswapV2 Router IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _approve(address(this), address(uniswapV2Router), type(uint256).max); buyFee = 1; sellFee = 1; marketingWallet = 0x20F2e01A5E74FFE277De0a47F4aDc6BBaEa10Fb6; _isExcludedFromMaxWalletLimit[address(this)] = true; _isExcludedFromMaxWalletLimit[owner()] = true; _isExcludedFromMaxWalletLimit[address(0xdead)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(0xdead)] = true; _isExcludedFromFees[address(this)] = true; _init(owner(), 420_690_000_000_000 ether); maxWalletLimitEnabled = true; maxWalletAmount = (totalSupply() / 100); } receive() external payable { } function enableTrading() public onlyOwner{ require(!tradingEnabled, "Trading is already enabled"); tradingEnabled = true; tradingActiveTime = block.timestamp; } function claimStuckTokens(address token) external onlyOwner { require(token != address(this), "Owner cannot claim contract's balance of its own tokens"); if (token == address(0x0)) { (bool success,) = msg.sender.call{value: address(this).balance}(""); require(success, "Claim failed"); return; } IERC20 ERC20token = IERC20(token); uint256 balance = ERC20token.balanceOf(address(this)); ERC20token.transfer(msg.sender, balance); } function excludeFromFees(address account, bool excluded) external onlyOwner{ require(_isExcludedFromFees[account] != excluded,"Account is already the value of 'excluded'"); _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function changeMarketingWallet(address _marketingWallet) external onlyOwner { require(_marketingWallet != address(0), "Marketing wallet cannot be the zero address"); marketingWallet = _marketingWallet; } function enableMaxWalletLimit() external onlyOwner { require(!maxWalletLimitEnabled, "Max Wallet Limit is already enabled"); maxWalletLimitEnabled = true; emit MaxWalletLimitStateChanged(maxWalletLimitEnabled); } function disableMaxWalletLimit() external onlyOwner { require(maxWalletLimitEnabled, "Max Wallet Limit is already disabled"); maxWalletLimitEnabled = false; emit MaxWalletLimitStateChanged(maxWalletLimitEnabled); } function setMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner { maxWalletAmount = _maxWalletAmount * (10 ** decimals()); emit MaxWalletLimitAmountChanged(maxWalletAmount); } function setExcludeFromMaxWallet(address account, bool exclude) external onlyOwner { require( _isExcludedFromMaxWalletLimit[account] != exclude, "Account is already set to that state" ); _isExcludedFromMaxWalletLimit[account] = exclude; emit ExcludedFromMaxWalletLimit(account, exclude); } function isExcludedFromMaxWalletLimit(address account) public view returns(bool) { return _isExcludedFromMaxWalletLimit[account]; } 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((tradingEnabled && block.timestamp - tradingActiveTime > 120) || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not enabled yet"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 _totalFees; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { _totalFees = 0; } else if (from == uniswapV2Pair) { _totalFees = buyFee; } else if (to == uniswapV2Pair) { if (block.timestamp - tradingActiveTime <= 7 minutes) _totalFees = 20; else _totalFees = sellFee; } else { _totalFees = 0; } if (_totalFees > 0) { uint256 fees = (amount * _totalFees) / 100; amount = amount - fees; super._transfer(from, address(marketingWallet), fees); } if (maxWalletLimitEnabled) { if (_isExcludedFromMaxWalletLimit[from] == false && _isExcludedFromMaxWalletLimit[to] == false && to != uniswapV2Pair ) { uint256 balance = balanceOf(to); require( balance + amount <= maxWalletAmount, "Recipient exceeds the max wallet limit" ); } } super._transfer(from, to, amount); } }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletLimitRate","type":"uint256"}],"name":"MaxWalletLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxWalletLimit","type":"bool"}],"name":"MaxWalletLimitStateChanged","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","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":"disableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","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":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","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":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","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":"tradingActiveTime","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
60806040523480156200001157600080fd5b506040518060400160405280600b81526020016a506570656e67205a68616f60a81b81525060405180604001604052806006815260200165504550454e4760d01b815250816003908162000066919062000804565b50600462000075828262000804565b50505060006200008a6200043860201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620024ba833981519152908290a350731a0786ce4cb81c533aaa46d98a15ed9d97f8dc24620000e7816200043c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000146573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016c9190620008d0565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e09190620008d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002549190620008d0565b600680546001600160a01b038086166001600160a01b031992831681179093556007805491851691909216179055909150620002959030906000196200054e565b6001600a819055600b819055600f80546001600160a01b0319167320f2e01a5e74ffe277de0a47f4adc6bbaea10fb61790553060009081526009602081905260408220805460ff19168417905590620002f66005546001600160a01b031690565b6001600160a01b031681526020808201929092526040016000908120805493151560ff1994851617905561dead815260099091527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb193075003785805490921660019081179092556008906200036e6005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905560089092527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054841660019081179091553083529120805490921617905562000405620003f06005546001600160a01b031690565b6d14bddab3e51a57cff87a5000000062000676565b600d805460ff1916600117905560646200041e60025490565b6200042a919062000902565b600c55506200094d92505050565b3390565b6005546001600160a01b031633146200049c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620005035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000493565b6005546040516001600160a01b03808416921690600080516020620024ba83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316620005b25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000493565b6001600160a01b038216620006155760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000493565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006ce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000493565b8060026000828254620006e2919062000925565b90915550506001600160a01b038216600090815260208190526040812080548392906200071190849062000925565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200078b57607f821691505b602082108103620007ac57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200075b57600081815260208120601f850160051c81016020861015620007db5750805b601f850160051c820191505b81811015620007fc57828155600101620007e7565b505050505050565b81516001600160401b0381111562000820576200082062000760565b620008388162000831845462000776565b84620007b2565b602080601f831160018114620008705760008415620008575750858301515b600019600386901b1c1916600185901b178555620007fc565b600085815260208120601f198616915b82811015620008a15788860151825594840194600190910190840162000880565b5085821015620008c05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008e357600080fd5b81516001600160a01b0381168114620008fb57600080fd5b9392505050565b6000826200092057634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200094757634e487b7160e01b600052601160045260246000fd5b92915050565b611b5d806200095d6000396000f3fe6080604052600436106101f25760003560e01c806370a082311161010d578063a8a69b9d116100a0578063c02466681161006f578063c024666814610599578063d82e8c06146105b9578063dd62ed3e146105ce578063f2fde38b14610614578063f9d0831a1461063457600080fd5b8063a8a69b9d1461050a578063a9059cbb14610543578063aa4bde2814610563578063bb85c6d11461057957600080fd5b80638da5cb5b116100dc5780638da5cb5b14610497578063929f1360146104b557806395d89b41146104d5578063a457c2d7146104ea57600080fd5b806370a0823114610417578063715018a61461044d57806375f0a874146104625780638a8c523c1461048257600080fd5b8063313ce567116101855780634ada218b116101545780634ada218b146103945780634fbee193146103b35780635031595f146103ec578063585251a61461040257600080fd5b8063313ce56714610322578063395093511461033e578063470624021461035e57806349bd5a5e1461037457600080fd5b806321a9d82a116101c157806321a9d82a146102b057806323b872dd146102ca57806327a14fc2146102ea5780632b14ca561461030c57600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610654565b604051610220919061170f565b60405180910390f35b34801561023557600080fd5b50610249610244366004611779565b6106e6565b6040519015158152602001610220565b34801561026557600080fd5b50600654610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b50600d546102499060ff1681565b3480156102d657600080fd5b506102496102e53660046117a3565b6106fd565b3480156102f657600080fd5b5061030a6103053660046117df565b6107b3565b005b34801561031857600080fd5b506102a2600b5481565b34801561032e57600080fd5b5060405160128152602001610220565b34801561034a57600080fd5b50610249610359366004611779565b61082e565b34801561036a57600080fd5b506102a2600a5481565b34801561038057600080fd5b50600754610279906001600160a01b031681565b3480156103a057600080fd5b50600d5461024990610100900460ff1681565b3480156103bf57600080fd5b506102496103ce3660046117f8565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103f857600080fd5b506102a2600e5481565b34801561040e57600080fd5b5061030a61086a565b34801561042357600080fd5b506102a26104323660046117f8565b6001600160a01b031660009081526020819052604090205490565b34801561045957600080fd5b5061030a610939565b34801561046e57600080fd5b50600f54610279906001600160a01b031681565b34801561048e57600080fd5b5061030a6109ad565b3480156104a357600080fd5b506005546001600160a01b0316610279565b3480156104c157600080fd5b5061030a6104d0366004611828565b610a44565b3480156104e157600080fd5b50610213610b4a565b3480156104f657600080fd5b50610249610505366004611779565b610b59565b34801561051657600080fd5b506102496105253660046117f8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561054f57600080fd5b5061024961055e366004611779565b610bf2565b34801561056f57600080fd5b506102a2600c5481565b34801561058557600080fd5b5061030a6105943660046117f8565b610bff565b3480156105a557600080fd5b5061030a6105b4366004611828565b610cb5565b3480156105c557600080fd5b5061030a610dba565b3480156105da57600080fd5b506102a26105e936600461185f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062057600080fd5b5061030a61062f3660046117f8565b610e7d565b34801561064057600080fd5b5061030a61064f3660046117f8565b610f68565b60606003805461066390611892565b80601f016020809104026020016040519081016040528092919081815260200182805461068f90611892565b80156106dc5780601f106106b1576101008083540402835291602001916106dc565b820191906000526020600020905b8154815290600101906020018083116106bf57829003601f168201915b5050505050905090565b60006106f3338484611191565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461079d57828110156107905760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61079d8533858403611191565b6107a88585856112b5565b506001949350505050565b6005546001600160a01b031633146107dd5760405162461bcd60e51b8152600401610787906118cc565b6107e96012600a6119fb565b6107f39082611a0a565b600c8190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59429060200160405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106f3918590610865908690611a21565b611191565b6005546001600160a01b031633146108945760405162461bcd60e51b8152600401610787906118cc565b600d5460ff16156108f35760405162461bcd60e51b815260206004820152602360248201527f4d61782057616c6c6574204c696d697420697320616c726561647920656e61626044820152621b195960ea1b6064820152608401610787565b600d805460ff191660019081179091556040519081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1906020015b60405180910390a1565b6005546001600160a01b031633146109635760405162461bcd60e51b8152600401610787906118cc565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146109d75760405162461bcd60e51b8152600401610787906118cc565b600d54610100900460ff1615610a2f5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610787565b600d805461ff00191661010017905542600e55565b6005546001600160a01b03163314610a6e5760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610aea5760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b6064820152608401610787565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c91015b60405180910390a25050565b60606004805461066390611892565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610bdb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610787565b610be83385858403611191565b5060019392505050565b60006106f33384846112b5565b6005546001600160a01b03163314610c295760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b038116610c935760405162461bcd60e51b815260206004820152602b60248201527f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60448201526a65726f206164647265737360a81b6064820152608401610787565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610cdf5760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b03821660009081526008602052604090205481151560ff909116151503610d625760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b6064820152608401610787565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610b3e565b6005546001600160a01b03163314610de45760405162461bcd60e51b8152600401610787906118cc565b600d5460ff16610e425760405162461bcd60e51b8152602060048201526024808201527f4d61782057616c6c6574204c696d697420697320616c72656164792064697361604482015263189b195960e21b6064820152608401610787565b600d805460ff19169055604051600081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f19060200161092f565b6005546001600160a01b03163314610ea75760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b038116610f0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610787565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f925760405162461bcd60e51b8152600401610787906118cc565b306001600160a01b038216036110105760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e730000000000000000006064820152608401610787565b6001600160a01b0381166110a957604051600090339047908381818185875af1925050503d8060008114611060576040519150601f19603f3d011682016040523d82523d6000602084013e611065565b606091505b50509050806110a55760405162461bcd60e51b815260206004820152600c60248201526b10db185a5b4819985a5b195960a21b6044820152606401610787565b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111169190611a34565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190611a4d565b5050505b50565b6001600160a01b0383166111f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610787565b6001600160a01b0382166112545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610787565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112db5760405162461bcd60e51b815260040161078790611a6a565b6001600160a01b0382166113015760405162461bcd60e51b815260040161078790611aaf565b600d54610100900460ff16801561132557506078600e54426113239190611af2565b115b8061134857506001600160a01b03831660009081526008602052604090205460ff165b8061136b57506001600160a01b03821660009081526008602052604090205460ff165b6113b75760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610787565b806000036113d0576113cb838360006115bb565b505050565b6001600160a01b03831660009081526008602052604081205460ff168061140f57506001600160a01b03831660009081526008602052604090205460ff165b1561141c5750600061147c565b6007546001600160a01b039081169085160361143b5750600a5461147c565b6007546001600160a01b0390811690841603611478576101a4600e54426114629190611af2565b1161146f5750601461147c565b50600b5461147c565b5060005b80156114c357600060646114908385611a0a565b61149a9190611b05565b90506114a68184611af2565b600f549093506114c19086906001600160a01b0316836115bb565b505b600d5460ff16156115b4576001600160a01b03841660009081526009602052604090205460ff1615801561151057506001600160a01b03831660009081526009602052604090205460ff16155b801561152a57506007546001600160a01b03848116911614155b156115b4576001600160a01b038316600090815260208190526040902054600c546115558483611a21565b11156115b25760405162461bcd60e51b815260206004820152602660248201527f526563697069656e74206578636565647320746865206d61782077616c6c6574604482015265081b1a5b5a5d60d21b6064820152608401610787565b505b61118a8484845b6001600160a01b0383166115e15760405162461bcd60e51b815260040161078790611a6a565b6001600160a01b0382166116075760405162461bcd60e51b815260040161078790611aaf565b6001600160a01b0383166000908152602081905260409020548181101561167f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610787565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906116b6908490611a21565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161170291815260200190565b60405180910390a361118a565b600060208083528351808285015260005b8181101561173c57858101830151858201604001528201611720565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461177457600080fd5b919050565b6000806040838503121561178c57600080fd5b6117958361175d565b946020939093013593505050565b6000806000606084860312156117b857600080fd5b6117c18461175d565b92506117cf6020850161175d565b9150604084013590509250925092565b6000602082840312156117f157600080fd5b5035919050565b60006020828403121561180a57600080fd5b6118138261175d565b9392505050565b801515811461118e57600080fd5b6000806040838503121561183b57600080fd5b6118448361175d565b915060208301356118548161181a565b809150509250929050565b6000806040838503121561187257600080fd5b61187b8361175d565b91506118896020840161175d565b90509250929050565b600181811c908216806118a657607f821691505b6020821081036118c657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561195257816000190482111561193857611938611901565b8085161561194557918102915b93841c939080029061191c565b509250929050565b600082611969575060016106f7565b81611976575060006106f7565b816001811461198c5760028114611996576119b2565b60019150506106f7565b60ff8411156119a7576119a7611901565b50506001821b6106f7565b5060208310610133831016604e8410600b84101617156119d5575081810a6106f7565b6119df8383611917565b80600019048211156119f3576119f3611901565b029392505050565b600061181360ff84168361195a565b80820281158282048414176106f7576106f7611901565b808201808211156106f7576106f7611901565b600060208284031215611a4657600080fd5b5051919050565b600060208284031215611a5f57600080fd5b81516118138161181a565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106f7576106f7611901565b600082611b2257634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d57ae689334d2c330ad37ee88ec86344f91a2b745dc6be1d44834710288bc9b564736f6c634300081200338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x6080604052600436106101f25760003560e01c806370a082311161010d578063a8a69b9d116100a0578063c02466681161006f578063c024666814610599578063d82e8c06146105b9578063dd62ed3e146105ce578063f2fde38b14610614578063f9d0831a1461063457600080fd5b8063a8a69b9d1461050a578063a9059cbb14610543578063aa4bde2814610563578063bb85c6d11461057957600080fd5b80638da5cb5b116100dc5780638da5cb5b14610497578063929f1360146104b557806395d89b41146104d5578063a457c2d7146104ea57600080fd5b806370a0823114610417578063715018a61461044d57806375f0a874146104625780638a8c523c1461048257600080fd5b8063313ce567116101855780634ada218b116101545780634ada218b146103945780634fbee193146103b35780635031595f146103ec578063585251a61461040257600080fd5b8063313ce56714610322578063395093511461033e578063470624021461035e57806349bd5a5e1461037457600080fd5b806321a9d82a116101c157806321a9d82a146102b057806323b872dd146102ca57806327a14fc2146102ea5780632b14ca561461030c57600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610654565b604051610220919061170f565b60405180910390f35b34801561023557600080fd5b50610249610244366004611779565b6106e6565b6040519015158152602001610220565b34801561026557600080fd5b50600654610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b50600d546102499060ff1681565b3480156102d657600080fd5b506102496102e53660046117a3565b6106fd565b3480156102f657600080fd5b5061030a6103053660046117df565b6107b3565b005b34801561031857600080fd5b506102a2600b5481565b34801561032e57600080fd5b5060405160128152602001610220565b34801561034a57600080fd5b50610249610359366004611779565b61082e565b34801561036a57600080fd5b506102a2600a5481565b34801561038057600080fd5b50600754610279906001600160a01b031681565b3480156103a057600080fd5b50600d5461024990610100900460ff1681565b3480156103bf57600080fd5b506102496103ce3660046117f8565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103f857600080fd5b506102a2600e5481565b34801561040e57600080fd5b5061030a61086a565b34801561042357600080fd5b506102a26104323660046117f8565b6001600160a01b031660009081526020819052604090205490565b34801561045957600080fd5b5061030a610939565b34801561046e57600080fd5b50600f54610279906001600160a01b031681565b34801561048e57600080fd5b5061030a6109ad565b3480156104a357600080fd5b506005546001600160a01b0316610279565b3480156104c157600080fd5b5061030a6104d0366004611828565b610a44565b3480156104e157600080fd5b50610213610b4a565b3480156104f657600080fd5b50610249610505366004611779565b610b59565b34801561051657600080fd5b506102496105253660046117f8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561054f57600080fd5b5061024961055e366004611779565b610bf2565b34801561056f57600080fd5b506102a2600c5481565b34801561058557600080fd5b5061030a6105943660046117f8565b610bff565b3480156105a557600080fd5b5061030a6105b4366004611828565b610cb5565b3480156105c557600080fd5b5061030a610dba565b3480156105da57600080fd5b506102a26105e936600461185f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062057600080fd5b5061030a61062f3660046117f8565b610e7d565b34801561064057600080fd5b5061030a61064f3660046117f8565b610f68565b60606003805461066390611892565b80601f016020809104026020016040519081016040528092919081815260200182805461068f90611892565b80156106dc5780601f106106b1576101008083540402835291602001916106dc565b820191906000526020600020905b8154815290600101906020018083116106bf57829003601f168201915b5050505050905090565b60006106f3338484611191565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461079d57828110156107905760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61079d8533858403611191565b6107a88585856112b5565b506001949350505050565b6005546001600160a01b031633146107dd5760405162461bcd60e51b8152600401610787906118cc565b6107e96012600a6119fb565b6107f39082611a0a565b600c8190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59429060200160405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106f3918590610865908690611a21565b611191565b6005546001600160a01b031633146108945760405162461bcd60e51b8152600401610787906118cc565b600d5460ff16156108f35760405162461bcd60e51b815260206004820152602360248201527f4d61782057616c6c6574204c696d697420697320616c726561647920656e61626044820152621b195960ea1b6064820152608401610787565b600d805460ff191660019081179091556040519081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1906020015b60405180910390a1565b6005546001600160a01b031633146109635760405162461bcd60e51b8152600401610787906118cc565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146109d75760405162461bcd60e51b8152600401610787906118cc565b600d54610100900460ff1615610a2f5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610787565b600d805461ff00191661010017905542600e55565b6005546001600160a01b03163314610a6e5760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610aea5760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b6064820152608401610787565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c91015b60405180910390a25050565b60606004805461066390611892565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610bdb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610787565b610be83385858403611191565b5060019392505050565b60006106f33384846112b5565b6005546001600160a01b03163314610c295760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b038116610c935760405162461bcd60e51b815260206004820152602b60248201527f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60448201526a65726f206164647265737360a81b6064820152608401610787565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610cdf5760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b03821660009081526008602052604090205481151560ff909116151503610d625760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b6064820152608401610787565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610b3e565b6005546001600160a01b03163314610de45760405162461bcd60e51b8152600401610787906118cc565b600d5460ff16610e425760405162461bcd60e51b8152602060048201526024808201527f4d61782057616c6c6574204c696d697420697320616c72656164792064697361604482015263189b195960e21b6064820152608401610787565b600d805460ff19169055604051600081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f19060200161092f565b6005546001600160a01b03163314610ea75760405162461bcd60e51b8152600401610787906118cc565b6001600160a01b038116610f0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610787565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f925760405162461bcd60e51b8152600401610787906118cc565b306001600160a01b038216036110105760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e730000000000000000006064820152608401610787565b6001600160a01b0381166110a957604051600090339047908381818185875af1925050503d8060008114611060576040519150601f19603f3d011682016040523d82523d6000602084013e611065565b606091505b50509050806110a55760405162461bcd60e51b815260206004820152600c60248201526b10db185a5b4819985a5b195960a21b6044820152606401610787565b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111169190611a34565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190611a4d565b5050505b50565b6001600160a01b0383166111f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610787565b6001600160a01b0382166112545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610787565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112db5760405162461bcd60e51b815260040161078790611a6a565b6001600160a01b0382166113015760405162461bcd60e51b815260040161078790611aaf565b600d54610100900460ff16801561132557506078600e54426113239190611af2565b115b8061134857506001600160a01b03831660009081526008602052604090205460ff165b8061136b57506001600160a01b03821660009081526008602052604090205460ff165b6113b75760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610787565b806000036113d0576113cb838360006115bb565b505050565b6001600160a01b03831660009081526008602052604081205460ff168061140f57506001600160a01b03831660009081526008602052604090205460ff165b1561141c5750600061147c565b6007546001600160a01b039081169085160361143b5750600a5461147c565b6007546001600160a01b0390811690841603611478576101a4600e54426114629190611af2565b1161146f5750601461147c565b50600b5461147c565b5060005b80156114c357600060646114908385611a0a565b61149a9190611b05565b90506114a68184611af2565b600f549093506114c19086906001600160a01b0316836115bb565b505b600d5460ff16156115b4576001600160a01b03841660009081526009602052604090205460ff1615801561151057506001600160a01b03831660009081526009602052604090205460ff16155b801561152a57506007546001600160a01b03848116911614155b156115b4576001600160a01b038316600090815260208190526040902054600c546115558483611a21565b11156115b25760405162461bcd60e51b815260206004820152602660248201527f526563697069656e74206578636565647320746865206d61782077616c6c6574604482015265081b1a5b5a5d60d21b6064820152608401610787565b505b61118a8484845b6001600160a01b0383166115e15760405162461bcd60e51b815260040161078790611a6a565b6001600160a01b0382166116075760405162461bcd60e51b815260040161078790611aaf565b6001600160a01b0383166000908152602081905260409020548181101561167f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610787565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906116b6908490611a21565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161170291815260200190565b60405180910390a361118a565b600060208083528351808285015260005b8181101561173c57858101830151858201604001528201611720565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461177457600080fd5b919050565b6000806040838503121561178c57600080fd5b6117958361175d565b946020939093013593505050565b6000806000606084860312156117b857600080fd5b6117c18461175d565b92506117cf6020850161175d565b9150604084013590509250925092565b6000602082840312156117f157600080fd5b5035919050565b60006020828403121561180a57600080fd5b6118138261175d565b9392505050565b801515811461118e57600080fd5b6000806040838503121561183b57600080fd5b6118448361175d565b915060208301356118548161181a565b809150509250929050565b6000806040838503121561187257600080fd5b61187b8361175d565b91506118896020840161175d565b90509250929050565b600181811c908216806118a657607f821691505b6020821081036118c657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561195257816000190482111561193857611938611901565b8085161561194557918102915b93841c939080029061191c565b509250929050565b600082611969575060016106f7565b81611976575060006106f7565b816001811461198c5760028114611996576119b2565b60019150506106f7565b60ff8411156119a7576119a7611901565b50506001821b6106f7565b5060208310610133831016604e8410600b84101617156119d5575081810a6106f7565b6119df8383611917565b80600019048211156119f3576119f3611901565b029392505050565b600061181360ff84168361195a565b80820281158282048414176106f7576106f7611901565b808201808211156106f7576106f7611901565b600060208284031215611a4657600080fd5b5051919050565b600060208284031215611a5f57600080fd5b81516118138161181a565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106f7576106f7611901565b600082611b2257634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d57ae689334d2c330ad37ee88ec86344f91a2b745dc6be1d44834710288bc9b564736f6c63430008120033
Deployed Bytecode Sourcemap
12958:6512:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8243:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9157:169;;;;;;;;;;-1:-1:-1;9157:169:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;9157:169:0;1004:187:1;13003:41:0;;;;;;;;;;-1:-1:-1;13003:41:0;;;;-1:-1:-1;;;;;13003:41:0;;;;;;-1:-1:-1;;;;;1386:32:1;;;1368:51;;1356:2;1341:18;13003:41:0;1196:229:1;8564:108:0;;;;;;;;;;-1:-1:-1;8652:12:0;;8564:108;;;1576:25:1;;;1564:2;1549:18;8564:108:0;1430:177:1;13317:36:0;;;;;;;;;;-1:-1:-1;13317:36:0;;;;;;;;9334:573;;;;;;;;;;-1:-1:-1;9334:573:0;;;;;:::i;:::-;;:::i;17010:207::-;;;;;;;;;;-1:-1:-1;17010:207:0;;;;;:::i;:::-;;:::i;:::-;;13251:22;;;;;;;;;;;;;;;;8463:93;;;;;;;;;;-1:-1:-1;8463:93:0;;8546:2;2272:36:1;;2260:2;2245:18;8463:93:0;2130:184:1;9915:215:0;;;;;;;;;;-1:-1:-1;9915:215:0;;;;;:::i;:::-;;:::i;13219:21::-;;;;;;;;;;;;;;;;13051:29;;;;;;;;;;-1:-1:-1;13051:29:0;;;;-1:-1:-1;;;;;13051:29:0;;;13360;;;;;;;;;;-1:-1:-1;13360:29:0;;;;;;;;;;;16130:125;;;;;;;;;;-1:-1:-1;16130:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;16219:28:0;16195:4;16219:28;;;:19;:28;;;;;;;;;16130:125;13398:32;;;;;;;;;;;;;;;;16504:244;;;;;;;;;;;;;:::i;8680:127::-;;;;;;;;;;-1:-1:-1;8680:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8781:18:0;8754:7;8781:18;;;;;;;;;;;;8680:127;7430:148;;;;;;;;;;;;;:::i;13439:30::-;;;;;;;;;;-1:-1:-1;13439:30:0;;;;-1:-1:-1;;;;;13439:30:0;;;15095:192;;;;;;;;;;;;;:::i;7216:79::-;;;;;;;;;;-1:-1:-1;7281:6:0;;-1:-1:-1;;;;;7281:6:0;7216:79;;17225:357;;;;;;;;;;-1:-1:-1;17225:357:0;;;;;:::i;:::-;;:::i;8351:104::-;;;;;;;;;;;;;:::i;10138:413::-;;;;;;;;;;-1:-1:-1;10138:413:0;;;;;:::i;:::-;;:::i;17590:145::-;;;;;;;;;;-1:-1:-1;17590:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;17689:38:0;17665:4;17689:38;;;:29;:38;;;;;;;;;17590:145;8815:175;;;;;;;;;;-1:-1:-1;8815:175:0;;;;;:::i;:::-;;:::i;13280:30::-;;;;;;;;;;;;;;;;16263:226;;;;;;;;;;-1:-1:-1;16263:226:0;;;;;:::i;:::-;;:::i;15832:290::-;;;;;;;;;;-1:-1:-1;15832:290:0;;;;;:::i;:::-;;:::i;16756:246::-;;;;;;;;;;;;;:::i;8998:151::-;;;;;;;;;;-1:-1:-1;8998:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;9114:18:0;;;9087:7;9114:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8998:151;7586:244;;;;;;;;;;-1:-1:-1;7586:244:0;;;;;:::i;:::-;;:::i;15297:527::-;;;;;;;;;;-1:-1:-1;15297:527:0;;;;;:::i;:::-;;:::i;8243:100::-;8297:13;8330:5;8323:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8243:100;:::o;9157:169::-;9240:4;9257:39;6619:10;9280:7;9289:6;9257:8;:39::i;:::-;-1:-1:-1;9314:4:0;9157:169;;;;;:::o;9334:573::-;-1:-1:-1;;;;;9518:19:0;;9474:4;9518:19;;;:11;:19;;;;;;;;6619:10;9518:33;;;;;;;;-1:-1:-1;;9566:37:0;;9562:265;;9648:6;9628:16;:26;;9620:79;;;;-1:-1:-1;;;9620:79:0;;4013:2:1;9620:79:0;;;3995:21:1;4052:2;4032:18;;;4025:30;4091:34;4071:18;;;4064:62;-1:-1:-1;;;4142:18:1;;;4135:38;4190:19;;9620:79:0;;;;;;;;;9743:57;9752:6;6619:10;9793:6;9774:16;:25;9743:8;:57::i;:::-;9839:36;9849:6;9857:9;9868:6;9839:9;:36::i;:::-;-1:-1:-1;9895:4:0;;9334:573;-1:-1:-1;;;;9334:573:0:o;17010:207::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;17132:16:::1;8546:2:::0;17132::::1;:16;:::i;:::-;17112:37;::::0;:16;:37:::1;:::i;:::-;17094:15;:55:::0;;;17165:44:::1;::::0;1576:25:1;;;17165:44:0::1;::::0;1564:2:1;1549:18;17165:44:0::1;;;;;;;17010:207:::0;:::o;9915:215::-;6619:10;10003:4;10052:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10052:34:0;;;;;;;;;;10003:4;;10020:80;;10043:7;;10052:47;;10089:10;;10052:47;:::i;:::-;10020:8;:80::i;16504:244::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;16575:21:::1;::::0;::::1;;16574:22;16566:70;;;::::0;-1:-1:-1;;;16566:70:0;;6601:2:1;16566:70:0::1;::::0;::::1;6583:21:1::0;6640:2;6620:18;;;6613:30;6679:34;6659:18;;;6652:62;-1:-1:-1;;;6730:18:1;;;6723:33;6773:19;;16566:70:0::1;6399:399:1::0;16566:70:0::1;16647:21;:28:::0;;-1:-1:-1;;16647:28:0::1;16671:4;16647:28:::0;;::::1;::::0;;;16691:49:::1;::::0;1144:41:1;;;16691:49:0::1;::::0;1132:2:1;1117:18;16691:49:0::1;;;;;;;;16504:244::o:0;7430:148::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;7521:6:::1;::::0;7500:40:::1;::::0;7537:1:::1;::::0;-1:-1:-1;;;;;7521:6:0::1;::::0;7500:40:::1;::::0;7537:1;;7500:40:::1;7551:6;:19:::0;;-1:-1:-1;;;;;;7551:19:0::1;::::0;;7430:148::o;15095:192::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;15156:14:::1;::::0;::::1;::::0;::::1;;;15155:15;15147:54;;;::::0;-1:-1:-1;;;15147:54:0;;7005:2:1;15147:54:0::1;::::0;::::1;6987:21:1::0;7044:2;7024:18;;;7017:30;7083:28;7063:18;;;7056:56;7129:18;;15147:54:0::1;6803:350:1::0;15147:54:0::1;15212:14;:21:::0;;-1:-1:-1;;15212:21:0::1;;;::::0;;15264:15:::1;15244:17;:35:::0;15095:192::o;17225:357::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17341:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:49;::::1;;:38;::::0;;::::1;:49;;::::0;17319:136:::1;;;::::0;-1:-1:-1;;;17319:136:0;;7360:2:1;17319:136:0::1;::::0;::::1;7342:21:1::0;7399:2;7379:18;;;7372:30;7438:34;7418:18;;;7411:62;-1:-1:-1;;;7489:18:1;;;7482:34;7533:19;;17319:136:0::1;7158:400:1::0;17319:136:0::1;-1:-1:-1::0;;;;;17466:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:48;;-1:-1:-1;;17466:48:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17530:44;;1144:41:1;;;17530:44:0::1;::::0;1117:18:1;17530:44:0::1;;;;;;;;17225:357:::0;;:::o;8351:104::-;8407:13;8440:7;8433:14;;;;;:::i;10138:413::-;6619:10;10231:4;10275:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10275:34:0;;;;;;;;;;10328:35;;;;10320:85;;;;-1:-1:-1;;;10320:85:0;;7765:2:1;10320:85:0;;;7747:21:1;7804:2;7784:18;;;7777:30;7843:34;7823:18;;;7816:62;-1:-1:-1;;;7894:18:1;;;7887:35;7939:19;;10320:85:0;7563:401:1;10320:85:0;10441:67;6619:10;10464:7;10492:15;10473:16;:34;10441:8;:67::i;:::-;-1:-1:-1;10539:4:0;;10138:413;-1:-1:-1;;;10138:413:0:o;8815:175::-;8901:4;8918:42;6619:10;8942:9;8953:6;8918:9;:42::i;16263:226::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16358:30:0;::::1;16350:86;;;::::0;-1:-1:-1;;;16350:86:0;;8171:2:1;16350:86:0::1;::::0;::::1;8153:21:1::0;8210:2;8190:18;;;8183:30;8249:34;8229:18;;;8222:62;-1:-1:-1;;;8300:18:1;;;8293:41;8351:19;;16350:86:0::1;7969:407:1::0;16350:86:0::1;16447:15;:34:::0;;-1:-1:-1;;;;;;16447:34:0::1;-1:-1:-1::0;;;;;16447:34:0;;;::::1;::::0;;;::::1;::::0;;16263:226::o;15832:290::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15926:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:40;::::1;;:28;::::0;;::::1;:40;;::::0;15918:94:::1;;;::::0;-1:-1:-1;;;15918:94:0;;8583:2:1;15918:94:0::1;::::0;::::1;8565:21:1::0;8622:2;8602:18;;;8595:30;8661:34;8641:18;;;8634:62;-1:-1:-1;;;8712:18:1;;;8705:40;8762:19;;15918:94:0::1;8381:406:1::0;15918:94:0::1;-1:-1:-1::0;;;;;16023:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;16023:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16080:34;;1144:41:1;;;16080:34:0::1;::::0;1117:18:1;16080:34:0::1;1004:187:1::0;16756:246:0;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;16827:21:::1;::::0;::::1;;16819:70;;;::::0;-1:-1:-1;;;16819:70:0;;8994:2:1;16819:70:0::1;::::0;::::1;8976:21:1::0;9033:2;9013:18;;;9006:30;9072:34;9052:18;;;9045:62;-1:-1:-1;;;9123:18:1;;;9116:34;9167:19;;16819:70:0::1;8792:400:1::0;16819:70:0::1;16900:21;:29:::0;;-1:-1:-1;;16900:29:0::1;::::0;;16945:49:::1;::::0;-1:-1:-1;1144:41:1;;16945:49:0::1;::::0;1132:2:1;1117:18;16945:49:0::1;1004:187:1::0;7586:244:0;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7675:22:0;::::1;7667:73;;;::::0;-1:-1:-1;;;7667:73:0;;9399:2:1;7667:73:0::1;::::0;::::1;9381:21:1::0;9438:2;9418:18;;;9411:30;9477:34;9457:18;;;9450:62;-1:-1:-1;;;9528:18:1;;;9521:36;9574:19;;7667:73:0::1;9197:402:1::0;7667:73:0::1;7777:6;::::0;7756:38:::1;::::0;-1:-1:-1;;;;;7756:38:0;;::::1;::::0;7777:6:::1;::::0;7756:38:::1;::::0;7777:6:::1;::::0;7756:38:::1;7805:6;:17:::0;;-1:-1:-1;;;;;;7805:17:0::1;-1:-1:-1::0;;;;;7805:17:0;;;::::1;::::0;;;::::1;::::0;;7586:244::o;15297:527::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;15393:4:::1;-1:-1:-1::0;;;;;15376:22:0;::::1;::::0;15368:90:::1;;;::::0;-1:-1:-1;;;15368:90:0;;9806:2:1;15368:90:0::1;::::0;::::1;9788:21:1::0;9845:2;9825:18;;;9818:30;9884:34;9864:18;;;9857:62;9955:25;9935:18;;;9928:53;9998:19;;15368:90:0::1;9604:419:1::0;15368:90:0::1;-1:-1:-1::0;;;;;15473:21:0;::::1;15469:189;;15529:49;::::0;15512:12:::1;::::0;15529:10:::1;::::0;15552:21:::1;::::0;15512:12;15529:49;15512:12;15529:49;15552:21;15529:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15511:67;;;15601:7;15593:32;;;::::0;-1:-1:-1;;;15593:32:0;;10440:2:1;15593:32:0::1;::::0;::::1;10422:21:1::0;10479:2;10459:18;;;10452:30;-1:-1:-1;;;10498:18:1;;;10491:42;10550:18;;15593:32:0::1;10238:336:1::0;15593:32:0::1;15640:7;15297:527:::0;:::o;15469:189::-:1;15730:35;::::0;-1:-1:-1;;;15730:35:0;;15759:4:::1;15730:35;::::0;::::1;1368:51:1::0;15695:5:0;;15668:17:::1;::::0;-1:-1:-1;;;;;15730:20:0;::::1;::::0;::::1;::::0;1341:18:1;;15730:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15776:40;::::0;-1:-1:-1;;;15776:40:0;;15796:10:::1;15776:40;::::0;::::1;10942:51:1::0;11009:18;;;11002:34;;;15712:53:0;;-1:-1:-1;;;;;;15776:19:0;::::1;::::0;::::1;::::0;10915:18:1;;15776:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15357:467;;7413:1;15297:527:::0;:::o;12306:380::-;-1:-1:-1;;;;;12442:19:0;;12434:68;;;;-1:-1:-1;;;12434:68:0;;11499:2:1;12434:68:0;;;11481:21:1;11538:2;11518:18;;;11511:30;11577:34;11557:18;;;11550:62;-1:-1:-1;;;11628:18:1;;;11621:34;11672:19;;12434:68:0;11297:400:1;12434:68:0;-1:-1:-1;;;;;12521:21:0;;12513:68;;;;-1:-1:-1;;;12513:68:0;;11904:2:1;12513:68:0;;;11886:21:1;11943:2;11923:18;;;11916:30;11982:34;11962:18;;;11955:62;-1:-1:-1;;;12033:18:1;;;12026:32;12075:19;;12513:68:0;11702:398:1;12513:68:0;-1:-1:-1;;;;;12594:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12646:32;;1576:25:1;;;12646:32:0;;1549:18:1;12646:32:0;;;;;;;12306:380;;;:::o;17744:1718::-;-1:-1:-1;;;;;17841:18:0;;17833:68;;;;-1:-1:-1;;;17833:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17920:16:0;;17912:64;;;;-1:-1:-1;;;17912:64:0;;;;;;;:::i;:::-;17996:14;;;;;;;:59;;;;;18052:3;18032:17;;18014:15;:35;;;;:::i;:::-;:41;17996:59;17995:90;;;-1:-1:-1;;;;;;18060:25:0;;;;;;:19;:25;;;;;;;;17995:90;:117;;;-1:-1:-1;;;;;;18089:23:0;;;;;;:19;:23;;;;;;;;17995:117;17987:156;;;;-1:-1:-1;;;17987:156:0;;13250:2:1;17987:156:0;;;13232:21:1;13289:2;13269:18;;;13262:30;13328:28;13308:18;;;13301:56;13374:18;;17987:156:0;13048:350:1;17987:156:0;18160:6;18170:1;18160:11;18156:93;;18188:28;18204:4;18210:2;18214:1;18188:15;:28::i;:::-;17744:1718;;;:::o;18156:93::-;-1:-1:-1;;;;;18308:25:0;;18275:18;18308:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18337:23:0;;;;;;:19;:23;;;;;;;;18308:52;18304:421;;;-1:-1:-1;18390:1:0;18304:421;;;18421:13;;-1:-1:-1;;;;;18421:13:0;;;18413:21;;;;18409:316;;-1:-1:-1;18464:6:0;;18409:316;;;18498:13;;-1:-1:-1;;;;;18498:13:0;;;18492:19;;;;18488:237;;18587:9;18566:17;;18548:15;:35;;;;:::i;:::-;:48;18544:122;;-1:-1:-1;18624:2:0;18488:237;;18544:122;-1:-1:-1;18659:7:0;;18488:237;;;-1:-1:-1;18712:1:0;18488:237;18748:14;;18744:194;;18779:12;18818:3;18795:19;18804:10;18795:6;:19;:::i;:::-;18794:27;;;;:::i;:::-;18779:42;-1:-1:-1;18845:13:0;18779:42;18845:6;:13;:::i;:::-;18903:15;;18836:22;;-1:-1:-1;18873:53:0;;18889:4;;-1:-1:-1;;;;;18903:15:0;18921:4;18873:15;:53::i;:::-;18764:174;18744:194;18954:21;;;;18950:458;;;-1:-1:-1;;;;;18996:35:0;;;;;;:29;:35;;;;;;;;:45;;;:112;;-1:-1:-1;;;;;;19063:33:0;;;;;;:29;:33;;;;;;;;:45;18996:112;:152;;;;-1:-1:-1;19135:13:0;;-1:-1:-1;;;;;19129:19:0;;;19135:13;;19129:19;;18996:152;18992:405;;;-1:-1:-1;;;;;8781:18:0;;19183:15;8781:18;;;;;;;;;;;19283:15;;19263:16;19273:6;8781:18;19263:16;:::i;:::-;:35;;19233:148;;;;-1:-1:-1;;;19233:148:0;;13827:2:1;19233:148:0;;;13809:21:1;13866:2;13846:18;;;13839:30;13905:34;13885:18;;;13878:62;-1:-1:-1;;;13956:18:1;;;13949:36;14002:19;;19233:148:0;13625:402:1;19233:148:0;19164:233;18992:405;19421:33;19437:4;19443:2;19447:6;10559:733;-1:-1:-1;;;;;10699:20:0;;10691:70;;;;-1:-1:-1;;;10691:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10780:23:0;;10772:71;;;;-1:-1:-1;;;10772:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10940:17:0;;10916:21;10940:17;;;;;;;;;;;10976:23;;;;10968:74;;;;-1:-1:-1;;;10968:74:0;;14234:2:1;10968:74:0;;;14216:21:1;14273:2;14253:18;;;14246:30;14312:34;14292:18;;;14285:62;-1:-1:-1;;;14363:18:1;;;14356:36;14409:19;;10968:74:0;14032:402:1;10968:74:0;-1:-1:-1;;;;;11078:17:0;;;:9;:17;;;;;;;;;;;11098:22;;;11078:42;;11142:20;;;;;;;;:30;;11114:6;;11078:9;11142:30;;11114:6;;11142:30;:::i;:::-;;;;;;;;11207:9;-1:-1:-1;;;;;11190:35:0;11199:6;-1:-1:-1;;;;;11190:35:0;;11218:6;11190:35;;;;1576:25:1;;1564:2;1549:18;;1430:177;11190:35:0;;;;;;;;11238:46;17744:1718;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1612:328::-;1689:6;1697;1705;1758:2;1746:9;1737:7;1733:23;1729:32;1726:52;;;1774:1;1771;1764:12;1726:52;1797:29;1816:9;1797:29;:::i;:::-;1787:39;;1845:38;1879:2;1868:9;1864:18;1845:38;:::i;:::-;1835:48;;1930:2;1919:9;1915:18;1902:32;1892:42;;1612:328;;;;;:::o;1945:180::-;2004:6;2057:2;2045:9;2036:7;2032:23;2028:32;2025:52;;;2073:1;2070;2063:12;2025:52;-1:-1:-1;2096:23:1;;1945:180;-1:-1:-1;1945:180:1:o;2527:186::-;2586:6;2639:2;2627:9;2618:7;2614:23;2610:32;2607:52;;;2655:1;2652;2645:12;2607:52;2678:29;2697:9;2678:29;:::i;:::-;2668:39;2527:186;-1:-1:-1;;;2527:186:1:o;2718:118::-;2804:5;2797:13;2790:21;2783:5;2780:32;2770:60;;2826:1;2823;2816:12;2841:315;2906:6;2914;2967:2;2955:9;2946:7;2942:23;2938:32;2935:52;;;2983:1;2980;2973:12;2935:52;3006:29;3025:9;3006:29;:::i;:::-;2996:39;;3085:2;3074:9;3070:18;3057:32;3098:28;3120:5;3098:28;:::i;:::-;3145:5;3135:15;;;2841:315;;;;;:::o;3161:260::-;3229:6;3237;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3329:29;3348:9;3329:29;:::i;:::-;3319:39;;3377:38;3411:2;3400:9;3396:18;3377:38;:::i;:::-;3367:48;;3161:260;;;;;:::o;3426:380::-;3505:1;3501:12;;;;3548;;;3569:61;;3623:4;3615:6;3611:17;3601:27;;3569:61;3676:2;3668:6;3665:14;3645:18;3642:38;3639:161;;3722:10;3717:3;3713:20;3710:1;3703:31;3757:4;3754:1;3747:15;3785:4;3782:1;3775:15;3639:161;;3426:380;;;:::o;4220:356::-;4422:2;4404:21;;;4441:18;;;4434:30;4500:34;4495:2;4480:18;;4473:62;4567:2;4552:18;;4220:356::o;4581:127::-;4642:10;4637:3;4633:20;4630:1;4623:31;4673:4;4670:1;4663:15;4697:4;4694:1;4687:15;4713:422;4802:1;4845:5;4802:1;4859:270;4880:7;4870:8;4867:21;4859:270;;;4939:4;4935:1;4931:6;4927:17;4921:4;4918:27;4915:53;;;4948:18;;:::i;:::-;4998:7;4988:8;4984:22;4981:55;;;5018:16;;;;4981:55;5097:22;;;;5057:15;;;;4859:270;;;4863:3;4713:422;;;;;:::o;5140:806::-;5189:5;5219:8;5209:80;;-1:-1:-1;5260:1:1;5274:5;;5209:80;5308:4;5298:76;;-1:-1:-1;5345:1:1;5359:5;;5298:76;5390:4;5408:1;5403:59;;;;5476:1;5471:130;;;;5383:218;;5403:59;5433:1;5424:10;;5447:5;;;5471:130;5508:3;5498:8;5495:17;5492:43;;;5515:18;;:::i;:::-;-1:-1:-1;;5571:1:1;5557:16;;5586:5;;5383:218;;5685:2;5675:8;5672:16;5666:3;5660:4;5657:13;5653:36;5647:2;5637:8;5634:16;5629:2;5623:4;5620:12;5616:35;5613:77;5610:159;;;-1:-1:-1;5722:19:1;;;5754:5;;5610:159;5801:34;5826:8;5820:4;5801:34;:::i;:::-;5871:6;5867:1;5863:6;5859:19;5850:7;5847:32;5844:58;;;5882:18;;:::i;:::-;5920:20;;5140:806;-1:-1:-1;;;5140:806:1:o;5951:140::-;6009:5;6038:47;6079:4;6069:8;6065:19;6059:4;6038:47;:::i;6096:168::-;6169:9;;;6200;;6217:15;;;6211:22;;6197:37;6187:71;;6238:18;;:::i;6269:125::-;6334:9;;;6355:10;;;6352:36;;;6368:18;;:::i;10579:184::-;10649:6;10702:2;10690:9;10681:7;10677:23;10673:32;10670:52;;;10718:1;10715;10708:12;10670:52;-1:-1:-1;10741:16:1;;10579:184;-1:-1:-1;10579:184:1:o;11047:245::-;11114:6;11167:2;11155:9;11146:7;11142:23;11138:32;11135:52;;;11183:1;11180;11173:12;11135:52;11215:9;11209:16;11234:28;11256:5;11234:28;:::i;12105:401::-;12307:2;12289:21;;;12346:2;12326:18;;;12319:30;12385:34;12380:2;12365:18;;12358:62;-1:-1:-1;;;12451:2:1;12436:18;;12429:35;12496:3;12481:19;;12105:401::o;12511:399::-;12713:2;12695:21;;;12752:2;12732:18;;;12725:30;12791:34;12786:2;12771:18;;12764:62;-1:-1:-1;;;12857:2:1;12842:18;;12835:33;12900:3;12885:19;;12511:399::o;12915:128::-;12982:9;;;13003:11;;;13000:37;;;13017:18;;:::i;13403:217::-;13443:1;13469;13459:132;;13513:10;13508:3;13504:20;13501:1;13494:31;13548:4;13545:1;13538:15;13576:4;13573:1;13566:15;13459:132;-1:-1:-1;13605:9:1;;13403:217::o
Swarm Source
ipfs://d57ae689334d2c330ad37ee88ec86344f91a2b745dc6be1d44834710288bc9b5
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.