ERC-20
Overview
Max Total Supply
250,000,000 BONES
Holders
804
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000001792868969897 BONESValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BONES
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-29 */ /* $BONES - The Gas token of $SHIBA Telegram: https://t.me/Shiba_Portal Twitter: https://twitter.com/RebirthOfShiba Website: https://www.shibacoin.tech/ */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred( address indexed previousOwner, address indexed newOwnr ); 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 newOwnr) public virtual onlyOwner { require( newOwnr != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwnr); _owner = newOwnr; } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint ); function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IUniswapV2Pair { function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; 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 swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract LockToken is Ownable { bool public isOpen = false; mapping(address => bool) private _whiteList; modifier open(address from, address to) { require(isOpen || _whiteList[from] || _whiteList[to], "Not Open"); _; } constructor() { _whiteList[msg.sender] = true; _whiteList[address(this)] = true; } function openTrade() external onlyOwner { isOpen = true; } function includeToWhiteList(address _address) public onlyOwner { _whiteList[_address] = true; } } contract BONES is Context, IERC20, LockToken { using SafeMath for uint256; address payable public marketingWallet = payable(0x44343Bae9f6d8dB1d5b0614783EE22a0A36D5F5b); address payable public devWallet = payable(0x44343Bae9f6d8dB1d5b0614783EE22a0A36D5F5b); address public newOwnr = 0xb640b82989Ba33B221685f0305Fa29b2Bfa2F11E; address public uniRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _feeWhitelisted; mapping(address => bool) private _limitWhitelisted; mapping(address => bool) private _isExcluded; address[] private _excluded; string private _name = "Bones"; string private _symbol = "BONES"; uint8 private _decimals = 18; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 250000000 * 10 ** 18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public _liquidityFeeBuys = 0; uint256 public _marketingFeeBuys = 300; uint256 public _devFeeBuys = 0; uint256 public _totalFeeBuys = _liquidityFeeBuys + _marketingFeeBuys + _devFeeBuys; uint256[] buyFeesBackup = [_liquidityFeeBuys, _marketingFeeBuys, _devFeeBuys]; uint256 public _liquidityFeeSells = 0; uint256 public _marketingFeeSells = 300; uint256 public _devFeeSells = 0; uint256 public _totalFeeSells = _liquidityFeeSells + _marketingFeeSells + _devFeeSells; uint256 public _liquidityTokens = 0; uint256 public _marketingTokens = 0; uint256 public _devTokens = 0; uint256 public transferTotalFee = _liquidityTokens + _marketingTokens + _devTokens; uint256 public _txLimit = _tTotal.div(100).mul(1); //x% of total supply uint256 public _walletLimit = _tTotal.div(100).mul(2); //x% of total supply uint256 private _minBalanceForSwapback = 2500000 * 10 ** 18; IUniswapV2Router02 public immutable uniRouterContract; address public immutable uniPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapTokensForETH(uint256 amountIn, address[] path); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { _rOwned[newOwnr] = _rTotal; IUniswapV2Router02 _uniRouterContract = IUniswapV2Router02(uniRouter); uniPair = IUniswapV2Factory(_uniRouterContract.factory()) .createPair(address(this), _uniRouterContract.WETH()); uniRouterContract = _uniRouterContract; _feeWhitelisted[newOwnr] = true; _feeWhitelisted[address(this)] = true; includeToWhiteList(newOwnr); _limitWhitelisted[newOwnr] = true; emit Transfer(address(0), newOwnr, _tTotal); excludeWalletsFromWhales(); transferOwnership(newOwnr); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function _minBalanceForSwapbackAmount() public view returns (uint256) { return _minBalanceForSwapback; } function tokenFromReflection( uint256 rAmount ) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private open(from, to) { 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() && to != owner()) { require( amount <= _txLimit, "Transfer amount exceeds the maxTxAmount." ); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= _minBalanceForSwapback; checkForWhale(from, to, amount); if ( !inSwapAndLiquify && swapAndLiquifyEnabled && from != uniPair ) { if (overMinimumTokenBalance) { contractTokenBalance = _minBalanceForSwapback; swapTokens(contractTokenBalance); } } bool takeFee = true; //if any account belongs to _feeWhitelisted account then remove the fee if (_feeWhitelisted[from] || _feeWhitelisted[to]) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function swapTokens(uint256 contractTokenBalance) private lockTheSwap { uint256 ___totalFeeBuys = _liquidityFeeBuys.add(_marketingFeeBuys).add( _devFeeBuys ); uint256 ___totalFeeSells = _liquidityFeeSells.add(_marketingFeeSells).add( _devFeeSells ); uint256 totalSwapableFees = ___totalFeeBuys.add(___totalFeeSells); uint256 halfLiquidityTokens = contractTokenBalance .mul(_liquidityFeeBuys + _liquidityFeeSells) .div(totalSwapableFees) .div(2); uint256 swapableTokens = contractTokenBalance.sub(halfLiquidityTokens); swapTokensForEth(swapableTokens); uint256 newBalance = address(this).balance; uint256 ethForLiquidity = newBalance .mul(_liquidityFeeBuys + _liquidityFeeSells) .div(totalSwapableFees) .div(2); if (halfLiquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(halfLiquidityTokens, ethForLiquidity); } uint256 ethForMarketing = newBalance .mul(_marketingFeeBuys + _marketingFeeSells) .div(totalSwapableFees); if (ethForMarketing > 0) { marketingWallet.transfer(ethForMarketing); } uint256 ethForDev = newBalance.sub(ethForLiquidity).sub( ethForMarketing ); if (ethForDev > 0) { devWallet.transfer(ethForDev); } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniRouterContract.WETH(); _approve(address(this), address(uniRouterContract), tokenAmount); uniRouterContract.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniRouterContract), tokenAmount); // add the liquidity uniRouterContract.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) { removeAllFee(); } else { if (recipient == uniPair) { setSellFee(); } if (sender != uniPair && recipient != uniPair) { setWalletToWalletTransferFee(); } } if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function _transferToExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function _transferFromExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function _transferBothExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function _getValues( uint256 tAmount ) private view returns (uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tLiquidity) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount) = _getRValues( tAmount, tLiquidity, _getRate() ); return (rAmount, rTransferAmount, tTransferAmount, tLiquidity); } function _getTValues( uint256 tAmount ) private view returns (uint256, uint256) { uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tTransferAmount = tAmount.sub(tLiquidity); return (tTransferAmount, tLiquidity); } function _getRValues( uint256 tAmount, uint256 tLiquidity, uint256 currentRate ) private pure returns (uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rLiquidity); return (rAmount, rTransferAmount); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if ( _rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply ) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeLiquidity(uint256 tLiquidity) private { uint256 currentRate = _getRate(); uint256 rLiquidity = tLiquidity.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity); if (_isExcluded[address(this)]) { _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity); } } function calculateLiquidityFee( uint256 _amount ) private view returns (uint256) { uint256 fees = _liquidityFeeBuys.add(_marketingFeeBuys).add(_devFeeBuys); return _amount.mul(fees).div(1000); } function isExcludedFromFee( address account ) public view onlyOwner returns (bool) { return _feeWhitelisted[account]; } function excludeFromFee(address account) public onlyOwner { _feeWhitelisted[account] = true; } function includeInFee(address account) public onlyOwner { _feeWhitelisted[account] = false; } function removeAllFee() private { _liquidityFeeBuys = 0; _marketingFeeBuys = 0; _devFeeBuys = 0; } function restoreAllFee() private { _liquidityFeeBuys = buyFeesBackup[0]; _marketingFeeBuys = buyFeesBackup[1]; _devFeeBuys = buyFeesBackup[2]; } function setSellFee() private { _liquidityFeeBuys = _liquidityFeeSells; _marketingFeeBuys = _marketingFeeSells; _devFeeBuys = _devFeeSells; } function setWalletToWalletTransferFee() private { _liquidityFeeBuys = _liquidityTokens; _marketingFeeBuys = _marketingTokens; _devFeeBuys = _devTokens; } function _setBuyFees( uint256 _liquidityFee, uint256 _marketingFee, uint256 _devFee ) external onlyOwner { _liquidityFeeBuys = _liquidityFee; _marketingFeeBuys = _marketingFee; _devFeeBuys = _devFee; buyFeesBackup = [_liquidityFeeBuys, _marketingFeeBuys, _devFeeBuys]; uint256 totalFee = _liquidityFee.add(_marketingFee).add(_devFee); _totalFeeBuys = _liquidityFeeBuys + _marketingFeeBuys + _devFeeBuys; require(totalFee <= 700, "Too High Fee"); } function _setSellFees( uint256 _liquidityFee, uint256 _marketingFee, uint256 _devFee ) external onlyOwner { _liquidityFeeSells = _liquidityFee; _marketingFeeSells = _marketingFee; _devFeeSells = _devFee; uint256 totalFee = _liquidityFee.add(_marketingFee).add(_devFee); _totalFeeSells = _liquidityFeeSells + _marketingFeeSells + _devFeeSells; require(totalFee <= 700, "Too High Fee"); } function _setTransferFees( uint256 _liquidityFee, uint256 _marketingFee, uint256 _devFee ) external onlyOwner { _liquidityTokens = _liquidityFee; _marketingTokens = _marketingFee; _devTokens = _devFee; transferTotalFee = _liquidityTokens + _marketingTokens + _devTokens; uint256 totalFee = _liquidityFee.add(_marketingFee).add(_devFee); require(totalFee <= 100, "Too High Fee"); } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner { _txLimit = maxTxAmount; require(_txLimit >= _tTotal.div(5), "Too low limit"); } function setMinimumTokensBeforeSwap( uint256 __minBalanceForSwapback ) external onlyOwner { _minBalanceForSwapback = __minBalanceForSwapback; } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = payable(_marketingWallet); } function setDevAWallet(address _devWallet) external onlyOwner { devWallet = payable(_devWallet); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function excludeWalletsFromWhales() private { _limitWhitelisted[owner()] = true; _limitWhitelisted[address(this)] = true; _limitWhitelisted[uniPair] = true; _limitWhitelisted[devWallet] = true; _limitWhitelisted[marketingWallet] = true; } function checkForWhale( address from, address to, uint256 amount ) private view { uint256 newBalance = balanceOf(to).add(amount); if (!_limitWhitelisted[from] && !_limitWhitelisted[to]) { require( newBalance <= _walletLimit, "Exceeding max tokens limit in the wallet" ); } if (from == uniPair && !_limitWhitelisted[to]) { require( newBalance <= _walletLimit, "Exceeding max tokens limit in the wallet" ); } } function setExcludedFromWhale( address account, bool _enabled ) public onlyOwner { _limitWhitelisted[account] = _enabled; } function setWalletMaxHoldingLimit(uint256 _amount) public onlyOwner { _walletLimit = _amount; require( _walletLimit > _tTotal.div(100).mul(1), "Too less limit" ); //min 1% } function rescueStuckBalance() public onlyOwner { (bool success, ) = msg.sender.call{value: address(this).balance}(""); require(success, "Transfer failed."); } function triggerSwapback() public { uint256 allBalance = balanceOf(address(this)); swapTokens(allBalance); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwnr","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_devFeeBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devFeeSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minBalanceForSwapbackAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"_setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"_setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"_setTransferFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_totalFeeBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalFeeSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"includeToWhiteList","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":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwnr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","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":"rescueStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setDevAWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setExcludedFromWhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__minBalanceForSwapback","type":"uint256"}],"name":"setMinimumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setWalletMaxHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwnr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"triggerSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouterContract","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6003805460ff19169055600580546001600160a01b03199081167344343bae9f6d8db1d5b0614783ee22a0a36d5f5b9081178355600680548316909117905560078054821673b640b82989ba33b221685f0305fa29b2bfa2f11e17905560088054909116737a250d5630b4cf539739df2c5dacb4c659f2488d17905561010060405260c090815264426f6e657360d81b60e052601090620000a190826200090f565b50604080518082019091526005815264424f4e455360d81b6020820152601190620000cd90826200090f565b506012805460ff1916811790556acecb8f27f4200f3a0000006013819055620000f990600019620009f1565b620001079060001962000a1e565b6014556000601681905561012c601781905560188290556200012a908262000a34565b62000136919062000a34565b601955604051806060016040528060165481526020016017548152602001601854815250601a9060036200016c92919062000803565b506000601b81905561012c601c819055601d8290556200018d908262000a34565b62000199919062000a34565b601e556000601f81905560208190556021819055620001b9818062000a34565b620001c5919062000a34565b602255601354620001e790600190620001e0906064620004e5565b9062000538565b6023556013546200020290600290620001e0906064620004e5565b6024556a02116545850052128000006025556026805461ff0019166101001790553480156200023057600080fd5b50600080546001600160a01b0319163390811782556040519091829160008051602062003924833981519152908290a3503360009081526004602081815260408084208054600160ff199182168117909255308652828620805490911690911790556014546007546001600160a01b039081168652600984529482902055600854815163c45a015560e01b81529151941693849363c45a01559383820193909291908290030181865afa158015620002ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000312919062000a4a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000360573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000386919062000a4a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fa919062000a4a565b6001600160a01b0390811660a0528181166080526007805482166000908152600c60205260408082208054600160ff199182168117909255308452919092208054909116909117905554620004509116620005c6565b600780546001600160a01b039081166000908152600d6020526040808220805460ff191660011790559254601354935192169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620004b59190815260200190565b60405180910390a3620004c762000635565b600754620004de906001600160a01b0316620006cb565b5062000af6565b60006200052f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007c760201b60201c565b90505b92915050565b6000826000036200054c5750600062000532565b60006200055a838562000a75565b90508262000569858362000a8f565b146200052f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b6000546001600160a01b03163314620006115760405162461bcd60e51b81526020600482018190526024820152600080516020620039048339815191526044820152606401620005bd565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6001600d60006200064e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600d90935281832080548516600190811790915560a051821684528284208054861682179055600654821684528284208054861682179055600554909116835291208054909216179055565b6000546001600160a01b03163314620007165760405162461bcd60e51b81526020600482018190526024820152600080516020620039048339815191526044820152606401620005bd565b6001600160a01b0381166200077d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620005bd565b600080546040516001600160a01b03808516939216916000805160206200392483398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008183620007eb5760405162461bcd60e51b8152600401620005bd919062000aa6565b506000620007fa848662000a8f565b95945050505050565b82805482825590600052602060002090810192821562000841579160200282015b828111156200084157825182559160200191906001019062000824565b506200084f92915062000853565b5090565b5b808211156200084f576000815560010162000854565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200089557607f821691505b602082108103620008b657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200090a57600081815260208120601f850160051c81016020861015620008e55750805b601f850160051c820191505b818110156200090657828155600101620008f1565b5050505b505050565b81516001600160401b038111156200092b576200092b6200086a565b62000943816200093c845462000880565b84620008bc565b602080601f8311600181146200097b5760008415620009625750858301515b600019600386901b1c1916600185901b17855562000906565b600085815260208120601f198616915b82811015620009ac578886015182559484019460019091019084016200098b565b5085821015620009cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b60008262000a035762000a03620009db565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000532576200053262000a08565b8082018082111562000532576200053262000a08565b60006020828403121562000a5d57600080fd5b81516001600160a01b03811681146200052f57600080fd5b808202811582820484141762000532576200053262000a08565b60008262000aa15762000aa1620009db565b500490565b600060208083528351808285015260005b8181101562000ad55785810183015185820160400152820162000ab7565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a051612da262000b6260003960008181610489015281816117ba01528181611c8301528181611d2201528181611d720152611daf01526000818161079f01528181611ff4015281816120ad015281816120e90152818161219c01526121c30152612da26000f3fe6080604052600436106103545760003560e01c8063715018a6116101c6578063a457c2d7116100f7578063c49b9a8011610095578063ec1c14f11161006f578063ec1c14f11461097b578063ec28438a14610991578063f2fde38b146109b1578063fb201b1d146109d157600080fd5b8063c49b9a80146108f5578063dd62ed3e14610915578063ea2f0b371461095b57600080fd5b8063ade44a8f116100d1578063ade44a8f1461088a578063aee50b1e146108aa578063b70ee799146108ca578063b863864c146108df57600080fd5b8063a457c2d714610834578063a9059cbb14610854578063aa13008f1461087457600080fd5b806383ac614d116101645780638da5cb5b1161013e5780638da5cb5b146107c15780638ea5220f146107df57806395d89b41146107ff578063a0e47bf61461081457600080fd5b806383ac614d14610757578063848ad89e1461077757806384ee9d9c1461078d57600080fd5b80637560a8d9116101a05780637560a8d9146106f557806375f0a8741461070b578063794fbd2e1461072b57806383a9f0c71461074157600080fd5b8063715018a6146106aa5780637409c4ea146106bf578063749e8cb6146106d557600080fd5b8063437823ec116102a05780634e3c06b11161023e57806363553e7c1161021857806363553e7c1461063f5780636f4b6f0c146106555780636fee4f7a1461067557806370a082311461068a57600080fd5b80634e3c06b1146105df5780635342acb4146105ff5780635d098b381461061f57600080fd5b8063476643461161027a578063476643461461056b57806348990b7a1461058b5780634a74bb02146105a05780634b880e88146105bf57600080fd5b8063437823ec1461050f57806344d4225f1461053157806347535d7b1461055157600080fd5b806323b872dd1161030d57806332972e46116102e757806332972e461461047757806334302720146104c357806339509351146104d95780634197d5ca146104f957600080fd5b806323b872dd1461041f57806323e6958a1461043f578063313ce5671461045557600080fd5b806306fdde0314610360578063095ea7b31461038b5780630e2351e2146103bb57806313114a9d146103df57806318160ddd146103f45780631e25abbb1461040957600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b506103756109e6565b60405161038291906128e7565b60405180910390f35b34801561039757600080fd5b506103ab6103a636600461294a565b610a78565b6040519015158152602001610382565b3480156103c757600080fd5b506103d160245481565b604051908152602001610382565b3480156103eb57600080fd5b506015546103d1565b34801561040057600080fd5b506013546103d1565b34801561041557600080fd5b506103d160205481565b34801561042b57600080fd5b506103ab61043a366004612976565b610a8f565b34801561044b57600080fd5b506103d1601b5481565b34801561046157600080fd5b5060125460405160ff9091168152602001610382565b34801561048357600080fd5b506104ab7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610382565b3480156104cf57600080fd5b506103d160195481565b3480156104e557600080fd5b506103ab6104f436600461294a565b610af8565b34801561050557600080fd5b506103d160175481565b34801561051b57600080fd5b5061052f61052a3660046129b7565b610b2e565b005b34801561053d57600080fd5b5061052f61054c3660046129d4565b610b85565b34801561055d57600080fd5b506003546103ab9060ff1681565b34801561057757600080fd5b5061052f6105863660046129b7565b610c13565b34801561059757600080fd5b506025546103d1565b3480156105ac57600080fd5b506026546103ab90610100900460ff1681565b3480156105cb57600080fd5b5061052f6105da3660046129b7565b610c5f565b3480156105eb57600080fd5b5061052f6105fa3660046129fd565b610cad565b34801561060b57600080fd5b506103ab61061a3660046129b7565b610d02565b34801561062b57600080fd5b5061052f61063a3660046129b7565b610d50565b34801561064b57600080fd5b506103d160235481565b34801561066157600080fd5b506007546104ab906001600160a01b031681565b34801561068157600080fd5b5061052f610d9c565b34801561069657600080fd5b506103d16106a53660046129b7565b610e51565b3480156106b657600080fd5b5061052f610eb0565b3480156106cb57600080fd5b506103d1601d5481565b3480156106e157600080fd5b5061052f6106f0366004612a32565b610f24565b34801561070157600080fd5b506103d160215481565b34801561071757600080fd5b506005546104ab906001600160a01b031681565b34801561073757600080fd5b506103d160185481565b34801561074d57600080fd5b506103d160165481565b34801561076357600080fd5b5061052f610772366004612a32565b610fbd565b34801561078357600080fd5b506103d1601f5481565b34801561079957600080fd5b506104ab7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107cd57600080fd5b506000546001600160a01b03166104ab565b3480156107eb57600080fd5b506006546104ab906001600160a01b031681565b34801561080b57600080fd5b50610375611073565b34801561082057600080fd5b506008546104ab906001600160a01b031681565b34801561084057600080fd5b506103ab61084f36600461294a565b611082565b34801561086057600080fd5b506103ab61086f36600461294a565b6110d1565b34801561088057600080fd5b506103d1601c5481565b34801561089657600080fd5b5061052f6108a5366004612a32565b6110de565b3480156108b657600080fd5b5061052f6108c53660046129d4565b611162565b3480156108d657600080fd5b5061052f611191565b3480156108eb57600080fd5b506103d160225481565b34801561090157600080fd5b5061052f610910366004612a5e565b6111a7565b34801561092157600080fd5b506103d1610930366004612a79565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561096757600080fd5b5061052f6109763660046129b7565b611225565b34801561098757600080fd5b506103d1601e5481565b34801561099d57600080fd5b5061052f6109ac3660046129d4565b611270565b3480156109bd57600080fd5b5061052f6109cc3660046129b7565b6112ee565b3480156109dd57600080fd5b5061052f6113d8565b6060601080546109f590612ab2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2190612ab2565b8015610a6e5780601f10610a4357610100808354040283529160200191610a6e565b820191906000526020600020905b815481529060010190602001808311610a5157829003601f168201915b5050505050905090565b6000610a85338484611411565b5060015b92915050565b6000610a9c848484611535565b610aee8433610ae985604051806060016040528060288152602001612d20602891396001600160a01b038a166000908152600b602090815260408083203384529091529020549190611869565b611411565b5060019392505050565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610a85918590610ae990866118a3565b6000546001600160a01b03163314610b615760405162461bcd60e51b8152600401610b5890612aec565b60405180910390fd5b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000546001600160a01b03163314610baf5760405162461bcd60e51b8152600401610b5890612aec565b6024819055601354610bcf90600190610bc9906064611909565b9061194b565b60245411610c105760405162461bcd60e51b815260206004820152600e60248201526d151bdbc81b195cdcc81b1a5b5a5d60921b6044820152606401610b58565b50565b6000546001600160a01b03163314610c3d5760405162461bcd60e51b8152600401610b5890612aec565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c895760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610cd75760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610d2d5760405162461bcd60e51b8152600401610b5890612aec565b506001600160a01b0381166000908152600c602052604090205460ff165b919050565b6000546001600160a01b03163314610d7a5760405162461bcd60e51b8152600401610b5890612aec565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610dc65760405162461bcd60e51b8152600401610b5890612aec565b604051600090339047908381818185875af1925050503d8060008114610e08576040519150601f19603f3d011682016040523d82523d6000602084013e610e0d565b606091505b5050905080610c105760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606401610b58565b6001600160a01b0381166000908152600e602052604081205460ff1615610e8e57506001600160a01b03166000908152600a602052604090205490565b6001600160a01b038216600090815260096020526040902054610a89906119cd565b6000546001600160a01b03163314610eda5760405162461bcd60e51b8152600401610b5890612aec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f4e5760405162461bcd60e51b8152600401610b5890612aec565b601b839055601c829055601d8190556000610f7382610f6d86866118a3565b906118a3565b9050601d54601c54601b54610f889190612b37565b610f929190612b37565b601e556102bc811115610fb75760405162461bcd60e51b8152600401610b5890612b4a565b50505050565b6000546001600160a01b03163314610fe75760405162461bcd60e51b8152600401610b5890612aec565b601683905560178290556018819055604080516060810182528481526020810184905290810182905261101e90601a906003612887565b50600061102f82610f6d86866118a3565b90506018546017546016546110449190612b37565b61104e9190612b37565b6019556102bc811115610fb75760405162461bcd60e51b8152600401610b5890612b4a565b6060601180546109f590612ab2565b6000610a853384610ae985604051806060016040528060258152602001612d4860259139336000908152600b602090815260408083206001600160a01b038d1684529091529020549190611869565b6000610a85338484611535565b6000546001600160a01b031633146111085760405162461bcd60e51b8152600401610b5890612aec565b601f83905560208290556021819055806111228385612b37565b61112c9190612b37565b602255600061113f82610f6d86866118a3565b90506064811115610fb75760405162461bcd60e51b8152600401610b5890612b4a565b6000546001600160a01b0316331461118c5760405162461bcd60e51b8152600401610b5890612aec565b602555565b600061119c30610e51565b9050610c1081611a4a565b6000546001600160a01b031633146111d15760405162461bcd60e51b8152600401610b5890612aec565b602680548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061121a90831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b6000546001600160a01b0316331461129a5760405162461bcd60e51b8152600401610b5890612aec565b60238190556013546112ad906005611909565b6023541015610c105760405162461bcd60e51b815260206004820152600d60248201526c151bdbc81b1bddc81b1a5b5a5d609a1b6044820152606401610b58565b6000546001600160a01b031633146113185760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03811661137d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b58565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114025760405162461bcd60e51b8152600401610b5890612aec565b6003805460ff19166001179055565b6001600160a01b0383166114735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b58565b6001600160a01b0382166114d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b58565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6003548390839060ff168061156257506001600160a01b03821660009081526004602052604090205460ff165b8061158557506001600160a01b03811660009081526004602052604090205460ff165b6115bc5760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b6044820152606401610b58565b6001600160a01b0385166116205760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b58565b6001600160a01b0384166116825760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b58565b600083116116e45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b58565b6000546001600160a01b0386811691161480159061171057506000546001600160a01b03858116911614155b15611778576023548311156117785760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b58565b600061178330610e51565b602554909150811015611797878787611c06565b60265460ff161580156117b15750602654610100900460ff165b80156117ef57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614155b1561180857801561180857602554915061180882611a4a565b6001600160a01b0387166000908152600c602052604090205460019060ff168061184a57506001600160a01b0387166000908152600c602052604090205460ff165b15611853575060005b61185f88888884611d02565b5050505050505050565b6000818484111561188d5760405162461bcd60e51b8152600401610b5891906128e7565b50600061189a8486612b70565b95945050505050565b6000806118b08385612b37565b9050838110156119025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b58565b9392505050565b600061190283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f0a565b60008260000361195d57506000610a89565b60006119698385612b83565b9050826119768583612b9a565b146119025760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b58565b6000601454821115611a345760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b58565b6000611a3e611f38565b90506119028382611909565b6026805460ff19166001179055601854601754601654600092611a72929091610f6d916118a3565b90506000611a93601d54610f6d601c54601b546118a390919063ffffffff16565b90506000611aa183836118a3565b90506000611ace6002611ac884611ac8601b54601654611ac19190612b37565b8a9061194b565b90611909565b90506000611adc8683611f5b565b9050611ae781611f9d565b60004790506000611b116002611ac887611ac8601b54601654611b0a9190612b37565b879061194b565b9050600084118015611b235750600081115b15611b3257611b328482612196565b6000611b5286611ac8601c54601754611b4b9190612b37565b869061194b565b90508015611b96576005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b94573d6000803e3d6000fd5b505b6000611bac82611ba68686611f5b565b90611f5b565b90508015611bf0576006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611bee573d6000803e3d6000fd5b505b50506026805460ff191690555050505050505050565b6000611c1582610f6d85610e51565b6001600160a01b0385166000908152600d602052604090205490915060ff16158015611c5a57506001600160a01b0383166000908152600d602052604090205460ff16155b15611c8157602454811115611c815760405162461bcd60e51b8152600401610b5890612bbc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015611cdb57506001600160a01b0383166000908152600d602052604090205460ff16155b15610fb757602454811115610fb75760405162461bcd60e51b8152600401610b5890612bbc565b80611d2057611d1b600060168190556017819055601855565b611e00565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611d7057611d70601b54601655601c54601755601d54601855565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614158015611de457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611e0057611e00601f54601655602054601755602154601855565b6001600160a01b0384166000908152600e602052604090205460ff168015611e4157506001600160a01b0383166000908152600e602052604090205460ff16155b15611e5657611e5184848461229c565b611f02565b6001600160a01b0384166000908152600e602052604090205460ff16158015611e9757506001600160a01b0383166000908152600e602052604090205460ff165b15611ea757611e518484846123f5565b6001600160a01b0384166000908152600e602052604090205460ff168015611ee757506001600160a01b0383166000908152600e602052604090205460ff165b15611ef757611e51848484612496565b611f02848484612501565b610fb761253d565b60008183611f2b5760405162461bcd60e51b8152600401610b5891906128e7565b50600061189a8486612b9a565b6000806000611f456125ac565b9092509050611f548282611909565b9250505090565b600061190283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611869565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fd257611fd2612c04565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120749190612c1a565b8160018151811061208757612087612c04565b60200260200101906001600160a01b031690816001600160a01b0316815250506120d2307f000000000000000000000000000000000000000000000000000000000000000084611411565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612127908590600090869030904290600401612c7b565b600060405180830381600087803b15801561214157600080fd5b505af1158015612155573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161218a929190612cb7565b60405180910390a15050565b6121c1307f000000000000000000000000000000000000000000000000000000000000000084611411565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806122086000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612270573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122959190612cd8565b5050505050565b6000806000806122ab8561272e565b6001600160a01b038b166000908152600a6020526040902054939750919550935091506122d89086611f5b565b6001600160a01b0388166000908152600a60209081526040808320939093556009905220546123079085611f5b565b6001600160a01b03808916600090815260096020526040808220939093559088168152205461233690846118a3565b6001600160a01b0387166000908152600960205260409020556123588161276c565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239d91815260200190565b60405180910390a380156123ec5760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b6000806000806124048561272e565b6001600160a01b038b16600090815260096020526040902054939750919550935091506124319085611f5b565b6001600160a01b038089166000908152600960209081526040808320949094559189168152600a909152205461246790836118a3565b6001600160a01b0387166000908152600a602090815260408083209390935560099052205461233690846118a3565b6000806000806124a58561272e565b6001600160a01b038b166000908152600a6020526040902054939750919550935091506124d29086611f5b565b6001600160a01b0388166000908152600a60209081526040808320939093556009905220546124319085611f5b565b6000806000806125108561272e565b6001600160a01b038b16600090815260096020526040902054939750919550935091506123079085611f5b565b601a60008154811061255157612551612c04565b9060005260206000200154601681905550601a60018154811061257657612576612c04565b9060005260206000200154601781905550601a60028154811061259b5761259b612c04565b600091825260209091200154601855565b6014546013546000918291825b600f548110156126fe578260096000600f84815481106125db576125db612c04565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612646575081600a6000600f848154811061261f5761261f612c04565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561265c57601454601354945094505050509091565b6126a260096000600f848154811061267657612676612c04565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611f5b565b92506126ea600a6000600f84815481106126be576126be612c04565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611f5b565b9150806126f681612d06565b9150506125b9565b5060135460145461270e91611909565b821015612725576014546013549350935050509091565b90939092509050565b600080600080600080612740876127f5565b915091506000806127598984612754611f38565b61281c565b909a909950939750919550919350505050565b6000612776611f38565b90506000612784838361194b565b306000908152600960205260409020549091506127a190826118a3565b30600090815260096020908152604080832093909355600e9052205460ff16156127f057306000908152600a60205260409020546127df90846118a3565b306000908152600a60205260409020555b505050565b600080600061280384612855565b905060006128118583611f5b565b959194509092505050565b6000808061282a868561194b565b90506000612838868661194b565b905060006128468383611f5b565b92989297509195505050505050565b600080612875601854610f6d6017546016546118a390919063ffffffff16565b90506119026103e8611ac8858461194b565b8280548282559060005260206000209081019282156128c2579160200282015b828111156128c25782518255916020019190600101906128a7565b506128ce9291506128d2565b5090565b5b808211156128ce57600081556001016128d3565b600060208083528351808285015260005b81811015612914578581018301518582016040015282016128f8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c1057600080fd5b6000806040838503121561295d57600080fd5b823561296881612935565b946020939093013593505050565b60008060006060848603121561298b57600080fd5b833561299681612935565b925060208401356129a681612935565b929592945050506040919091013590565b6000602082840312156129c957600080fd5b813561190281612935565b6000602082840312156129e657600080fd5b5035919050565b80358015158114610d4b57600080fd5b60008060408385031215612a1057600080fd5b8235612a1b81612935565b9150612a29602084016129ed565b90509250929050565b600080600060608486031215612a4757600080fd5b505081359360208301359350604090920135919050565b600060208284031215612a7057600080fd5b611902826129ed565b60008060408385031215612a8c57600080fd5b8235612a9781612935565b91506020830135612aa781612935565b809150509250929050565b600181811c90821680612ac657607f821691505b602082108103612ae657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a8957610a89612b21565b6020808252600c908201526b546f6f20486967682046656560a01b604082015260600190565b81810381811115610a8957610a89612b21565b8082028115828204841417610a8957610a89612b21565b600082612bb757634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f457863656564696e67206d617820746f6b656e73206c696d697420696e20746860408201526719481dd85b1b195d60c21b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612c2c57600080fd5b815161190281612935565b600081518084526020808501945080840160005b83811015612c705781516001600160a01b031687529582019590820190600101612c4b565b509495945050505050565b85815284602082015260a060408201526000612c9a60a0830186612c37565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612cd06040830184612c37565b949350505050565b600080600060608486031215612ced57600080fd5b8351925060208401519150604084015190509250925092565b600060018201612d1857612d18612b21565b506001019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122042cc33140e0036c91c9228acf61f4a475abb565031d47ebf478dfca70ca96d4864736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x6080604052600436106103545760003560e01c8063715018a6116101c6578063a457c2d7116100f7578063c49b9a8011610095578063ec1c14f11161006f578063ec1c14f11461097b578063ec28438a14610991578063f2fde38b146109b1578063fb201b1d146109d157600080fd5b8063c49b9a80146108f5578063dd62ed3e14610915578063ea2f0b371461095b57600080fd5b8063ade44a8f116100d1578063ade44a8f1461088a578063aee50b1e146108aa578063b70ee799146108ca578063b863864c146108df57600080fd5b8063a457c2d714610834578063a9059cbb14610854578063aa13008f1461087457600080fd5b806383ac614d116101645780638da5cb5b1161013e5780638da5cb5b146107c15780638ea5220f146107df57806395d89b41146107ff578063a0e47bf61461081457600080fd5b806383ac614d14610757578063848ad89e1461077757806384ee9d9c1461078d57600080fd5b80637560a8d9116101a05780637560a8d9146106f557806375f0a8741461070b578063794fbd2e1461072b57806383a9f0c71461074157600080fd5b8063715018a6146106aa5780637409c4ea146106bf578063749e8cb6146106d557600080fd5b8063437823ec116102a05780634e3c06b11161023e57806363553e7c1161021857806363553e7c1461063f5780636f4b6f0c146106555780636fee4f7a1461067557806370a082311461068a57600080fd5b80634e3c06b1146105df5780635342acb4146105ff5780635d098b381461061f57600080fd5b8063476643461161027a578063476643461461056b57806348990b7a1461058b5780634a74bb02146105a05780634b880e88146105bf57600080fd5b8063437823ec1461050f57806344d4225f1461053157806347535d7b1461055157600080fd5b806323b872dd1161030d57806332972e46116102e757806332972e461461047757806334302720146104c357806339509351146104d95780634197d5ca146104f957600080fd5b806323b872dd1461041f57806323e6958a1461043f578063313ce5671461045557600080fd5b806306fdde0314610360578063095ea7b31461038b5780630e2351e2146103bb57806313114a9d146103df57806318160ddd146103f45780631e25abbb1461040957600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b506103756109e6565b60405161038291906128e7565b60405180910390f35b34801561039757600080fd5b506103ab6103a636600461294a565b610a78565b6040519015158152602001610382565b3480156103c757600080fd5b506103d160245481565b604051908152602001610382565b3480156103eb57600080fd5b506015546103d1565b34801561040057600080fd5b506013546103d1565b34801561041557600080fd5b506103d160205481565b34801561042b57600080fd5b506103ab61043a366004612976565b610a8f565b34801561044b57600080fd5b506103d1601b5481565b34801561046157600080fd5b5060125460405160ff9091168152602001610382565b34801561048357600080fd5b506104ab7f0000000000000000000000005208890448b4fac76378367fb6087bca8a8e864081565b6040516001600160a01b039091168152602001610382565b3480156104cf57600080fd5b506103d160195481565b3480156104e557600080fd5b506103ab6104f436600461294a565b610af8565b34801561050557600080fd5b506103d160175481565b34801561051b57600080fd5b5061052f61052a3660046129b7565b610b2e565b005b34801561053d57600080fd5b5061052f61054c3660046129d4565b610b85565b34801561055d57600080fd5b506003546103ab9060ff1681565b34801561057757600080fd5b5061052f6105863660046129b7565b610c13565b34801561059757600080fd5b506025546103d1565b3480156105ac57600080fd5b506026546103ab90610100900460ff1681565b3480156105cb57600080fd5b5061052f6105da3660046129b7565b610c5f565b3480156105eb57600080fd5b5061052f6105fa3660046129fd565b610cad565b34801561060b57600080fd5b506103ab61061a3660046129b7565b610d02565b34801561062b57600080fd5b5061052f61063a3660046129b7565b610d50565b34801561064b57600080fd5b506103d160235481565b34801561066157600080fd5b506007546104ab906001600160a01b031681565b34801561068157600080fd5b5061052f610d9c565b34801561069657600080fd5b506103d16106a53660046129b7565b610e51565b3480156106b657600080fd5b5061052f610eb0565b3480156106cb57600080fd5b506103d1601d5481565b3480156106e157600080fd5b5061052f6106f0366004612a32565b610f24565b34801561070157600080fd5b506103d160215481565b34801561071757600080fd5b506005546104ab906001600160a01b031681565b34801561073757600080fd5b506103d160185481565b34801561074d57600080fd5b506103d160165481565b34801561076357600080fd5b5061052f610772366004612a32565b610fbd565b34801561078357600080fd5b506103d1601f5481565b34801561079957600080fd5b506104ab7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156107cd57600080fd5b506000546001600160a01b03166104ab565b3480156107eb57600080fd5b506006546104ab906001600160a01b031681565b34801561080b57600080fd5b50610375611073565b34801561082057600080fd5b506008546104ab906001600160a01b031681565b34801561084057600080fd5b506103ab61084f36600461294a565b611082565b34801561086057600080fd5b506103ab61086f36600461294a565b6110d1565b34801561088057600080fd5b506103d1601c5481565b34801561089657600080fd5b5061052f6108a5366004612a32565b6110de565b3480156108b657600080fd5b5061052f6108c53660046129d4565b611162565b3480156108d657600080fd5b5061052f611191565b3480156108eb57600080fd5b506103d160225481565b34801561090157600080fd5b5061052f610910366004612a5e565b6111a7565b34801561092157600080fd5b506103d1610930366004612a79565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561096757600080fd5b5061052f6109763660046129b7565b611225565b34801561098757600080fd5b506103d1601e5481565b34801561099d57600080fd5b5061052f6109ac3660046129d4565b611270565b3480156109bd57600080fd5b5061052f6109cc3660046129b7565b6112ee565b3480156109dd57600080fd5b5061052f6113d8565b6060601080546109f590612ab2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2190612ab2565b8015610a6e5780601f10610a4357610100808354040283529160200191610a6e565b820191906000526020600020905b815481529060010190602001808311610a5157829003601f168201915b5050505050905090565b6000610a85338484611411565b5060015b92915050565b6000610a9c848484611535565b610aee8433610ae985604051806060016040528060288152602001612d20602891396001600160a01b038a166000908152600b602090815260408083203384529091529020549190611869565b611411565b5060019392505050565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610a85918590610ae990866118a3565b6000546001600160a01b03163314610b615760405162461bcd60e51b8152600401610b5890612aec565b60405180910390fd5b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000546001600160a01b03163314610baf5760405162461bcd60e51b8152600401610b5890612aec565b6024819055601354610bcf90600190610bc9906064611909565b9061194b565b60245411610c105760405162461bcd60e51b815260206004820152600e60248201526d151bdbc81b195cdcc81b1a5b5a5d60921b6044820152606401610b58565b50565b6000546001600160a01b03163314610c3d5760405162461bcd60e51b8152600401610b5890612aec565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c895760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610cd75760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610d2d5760405162461bcd60e51b8152600401610b5890612aec565b506001600160a01b0381166000908152600c602052604090205460ff165b919050565b6000546001600160a01b03163314610d7a5760405162461bcd60e51b8152600401610b5890612aec565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610dc65760405162461bcd60e51b8152600401610b5890612aec565b604051600090339047908381818185875af1925050503d8060008114610e08576040519150601f19603f3d011682016040523d82523d6000602084013e610e0d565b606091505b5050905080610c105760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606401610b58565b6001600160a01b0381166000908152600e602052604081205460ff1615610e8e57506001600160a01b03166000908152600a602052604090205490565b6001600160a01b038216600090815260096020526040902054610a89906119cd565b6000546001600160a01b03163314610eda5760405162461bcd60e51b8152600401610b5890612aec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f4e5760405162461bcd60e51b8152600401610b5890612aec565b601b839055601c829055601d8190556000610f7382610f6d86866118a3565b906118a3565b9050601d54601c54601b54610f889190612b37565b610f929190612b37565b601e556102bc811115610fb75760405162461bcd60e51b8152600401610b5890612b4a565b50505050565b6000546001600160a01b03163314610fe75760405162461bcd60e51b8152600401610b5890612aec565b601683905560178290556018819055604080516060810182528481526020810184905290810182905261101e90601a906003612887565b50600061102f82610f6d86866118a3565b90506018546017546016546110449190612b37565b61104e9190612b37565b6019556102bc811115610fb75760405162461bcd60e51b8152600401610b5890612b4a565b6060601180546109f590612ab2565b6000610a853384610ae985604051806060016040528060258152602001612d4860259139336000908152600b602090815260408083206001600160a01b038d1684529091529020549190611869565b6000610a85338484611535565b6000546001600160a01b031633146111085760405162461bcd60e51b8152600401610b5890612aec565b601f83905560208290556021819055806111228385612b37565b61112c9190612b37565b602255600061113f82610f6d86866118a3565b90506064811115610fb75760405162461bcd60e51b8152600401610b5890612b4a565b6000546001600160a01b0316331461118c5760405162461bcd60e51b8152600401610b5890612aec565b602555565b600061119c30610e51565b9050610c1081611a4a565b6000546001600160a01b031633146111d15760405162461bcd60e51b8152600401610b5890612aec565b602680548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061121a90831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b6000546001600160a01b0316331461129a5760405162461bcd60e51b8152600401610b5890612aec565b60238190556013546112ad906005611909565b6023541015610c105760405162461bcd60e51b815260206004820152600d60248201526c151bdbc81b1bddc81b1a5b5a5d609a1b6044820152606401610b58565b6000546001600160a01b031633146113185760405162461bcd60e51b8152600401610b5890612aec565b6001600160a01b03811661137d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b58565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114025760405162461bcd60e51b8152600401610b5890612aec565b6003805460ff19166001179055565b6001600160a01b0383166114735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b58565b6001600160a01b0382166114d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b58565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6003548390839060ff168061156257506001600160a01b03821660009081526004602052604090205460ff165b8061158557506001600160a01b03811660009081526004602052604090205460ff165b6115bc5760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b6044820152606401610b58565b6001600160a01b0385166116205760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b58565b6001600160a01b0384166116825760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b58565b600083116116e45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b58565b6000546001600160a01b0386811691161480159061171057506000546001600160a01b03858116911614155b15611778576023548311156117785760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b58565b600061178330610e51565b602554909150811015611797878787611c06565b60265460ff161580156117b15750602654610100900460ff165b80156117ef57507f0000000000000000000000005208890448b4fac76378367fb6087bca8a8e86406001600160a01b0316876001600160a01b031614155b1561180857801561180857602554915061180882611a4a565b6001600160a01b0387166000908152600c602052604090205460019060ff168061184a57506001600160a01b0387166000908152600c602052604090205460ff165b15611853575060005b61185f88888884611d02565b5050505050505050565b6000818484111561188d5760405162461bcd60e51b8152600401610b5891906128e7565b50600061189a8486612b70565b95945050505050565b6000806118b08385612b37565b9050838110156119025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b58565b9392505050565b600061190283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f0a565b60008260000361195d57506000610a89565b60006119698385612b83565b9050826119768583612b9a565b146119025760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b58565b6000601454821115611a345760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b58565b6000611a3e611f38565b90506119028382611909565b6026805460ff19166001179055601854601754601654600092611a72929091610f6d916118a3565b90506000611a93601d54610f6d601c54601b546118a390919063ffffffff16565b90506000611aa183836118a3565b90506000611ace6002611ac884611ac8601b54601654611ac19190612b37565b8a9061194b565b90611909565b90506000611adc8683611f5b565b9050611ae781611f9d565b60004790506000611b116002611ac887611ac8601b54601654611b0a9190612b37565b879061194b565b9050600084118015611b235750600081115b15611b3257611b328482612196565b6000611b5286611ac8601c54601754611b4b9190612b37565b869061194b565b90508015611b96576005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b94573d6000803e3d6000fd5b505b6000611bac82611ba68686611f5b565b90611f5b565b90508015611bf0576006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611bee573d6000803e3d6000fd5b505b50506026805460ff191690555050505050505050565b6000611c1582610f6d85610e51565b6001600160a01b0385166000908152600d602052604090205490915060ff16158015611c5a57506001600160a01b0383166000908152600d602052604090205460ff16155b15611c8157602454811115611c815760405162461bcd60e51b8152600401610b5890612bbc565b7f0000000000000000000000005208890448b4fac76378367fb6087bca8a8e86406001600160a01b0316846001600160a01b0316148015611cdb57506001600160a01b0383166000908152600d602052604090205460ff16155b15610fb757602454811115610fb75760405162461bcd60e51b8152600401610b5890612bbc565b80611d2057611d1b600060168190556017819055601855565b611e00565b7f0000000000000000000000005208890448b4fac76378367fb6087bca8a8e86406001600160a01b0316836001600160a01b031603611d7057611d70601b54601655601c54601755601d54601855565b7f0000000000000000000000005208890448b4fac76378367fb6087bca8a8e86406001600160a01b0316846001600160a01b031614158015611de457507f0000000000000000000000005208890448b4fac76378367fb6087bca8a8e86406001600160a01b0316836001600160a01b031614155b15611e0057611e00601f54601655602054601755602154601855565b6001600160a01b0384166000908152600e602052604090205460ff168015611e4157506001600160a01b0383166000908152600e602052604090205460ff16155b15611e5657611e5184848461229c565b611f02565b6001600160a01b0384166000908152600e602052604090205460ff16158015611e9757506001600160a01b0383166000908152600e602052604090205460ff165b15611ea757611e518484846123f5565b6001600160a01b0384166000908152600e602052604090205460ff168015611ee757506001600160a01b0383166000908152600e602052604090205460ff165b15611ef757611e51848484612496565b611f02848484612501565b610fb761253d565b60008183611f2b5760405162461bcd60e51b8152600401610b5891906128e7565b50600061189a8486612b9a565b6000806000611f456125ac565b9092509050611f548282611909565b9250505090565b600061190283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611869565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fd257611fd2612c04565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120749190612c1a565b8160018151811061208757612087612c04565b60200260200101906001600160a01b031690816001600160a01b0316815250506120d2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611411565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612127908590600090869030904290600401612c7b565b600060405180830381600087803b15801561214157600080fd5b505af1158015612155573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161218a929190612cb7565b60405180910390a15050565b6121c1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611411565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230856000806122086000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612270573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122959190612cd8565b5050505050565b6000806000806122ab8561272e565b6001600160a01b038b166000908152600a6020526040902054939750919550935091506122d89086611f5b565b6001600160a01b0388166000908152600a60209081526040808320939093556009905220546123079085611f5b565b6001600160a01b03808916600090815260096020526040808220939093559088168152205461233690846118a3565b6001600160a01b0387166000908152600960205260409020556123588161276c565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239d91815260200190565b60405180910390a380156123ec5760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b6000806000806124048561272e565b6001600160a01b038b16600090815260096020526040902054939750919550935091506124319085611f5b565b6001600160a01b038089166000908152600960209081526040808320949094559189168152600a909152205461246790836118a3565b6001600160a01b0387166000908152600a602090815260408083209390935560099052205461233690846118a3565b6000806000806124a58561272e565b6001600160a01b038b166000908152600a6020526040902054939750919550935091506124d29086611f5b565b6001600160a01b0388166000908152600a60209081526040808320939093556009905220546124319085611f5b565b6000806000806125108561272e565b6001600160a01b038b16600090815260096020526040902054939750919550935091506123079085611f5b565b601a60008154811061255157612551612c04565b9060005260206000200154601681905550601a60018154811061257657612576612c04565b9060005260206000200154601781905550601a60028154811061259b5761259b612c04565b600091825260209091200154601855565b6014546013546000918291825b600f548110156126fe578260096000600f84815481106125db576125db612c04565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612646575081600a6000600f848154811061261f5761261f612c04565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561265c57601454601354945094505050509091565b6126a260096000600f848154811061267657612676612c04565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611f5b565b92506126ea600a6000600f84815481106126be576126be612c04565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611f5b565b9150806126f681612d06565b9150506125b9565b5060135460145461270e91611909565b821015612725576014546013549350935050509091565b90939092509050565b600080600080600080612740876127f5565b915091506000806127598984612754611f38565b61281c565b909a909950939750919550919350505050565b6000612776611f38565b90506000612784838361194b565b306000908152600960205260409020549091506127a190826118a3565b30600090815260096020908152604080832093909355600e9052205460ff16156127f057306000908152600a60205260409020546127df90846118a3565b306000908152600a60205260409020555b505050565b600080600061280384612855565b905060006128118583611f5b565b959194509092505050565b6000808061282a868561194b565b90506000612838868661194b565b905060006128468383611f5b565b92989297509195505050505050565b600080612875601854610f6d6017546016546118a390919063ffffffff16565b90506119026103e8611ac8858461194b565b8280548282559060005260206000209081019282156128c2579160200282015b828111156128c25782518255916020019190600101906128a7565b506128ce9291506128d2565b5090565b5b808211156128ce57600081556001016128d3565b600060208083528351808285015260005b81811015612914578581018301518582016040015282016128f8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c1057600080fd5b6000806040838503121561295d57600080fd5b823561296881612935565b946020939093013593505050565b60008060006060848603121561298b57600080fd5b833561299681612935565b925060208401356129a681612935565b929592945050506040919091013590565b6000602082840312156129c957600080fd5b813561190281612935565b6000602082840312156129e657600080fd5b5035919050565b80358015158114610d4b57600080fd5b60008060408385031215612a1057600080fd5b8235612a1b81612935565b9150612a29602084016129ed565b90509250929050565b600080600060608486031215612a4757600080fd5b505081359360208301359350604090920135919050565b600060208284031215612a7057600080fd5b611902826129ed565b60008060408385031215612a8c57600080fd5b8235612a9781612935565b91506020830135612aa781612935565b809150509250929050565b600181811c90821680612ac657607f821691505b602082108103612ae657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a8957610a89612b21565b6020808252600c908201526b546f6f20486967682046656560a01b604082015260600190565b81810381811115610a8957610a89612b21565b8082028115828204841417610a8957610a89612b21565b600082612bb757634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f457863656564696e67206d617820746f6b656e73206c696d697420696e20746860408201526719481dd85b1b195d60c21b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612c2c57600080fd5b815161190281612935565b600081518084526020808501945080840160005b83811015612c705781516001600160a01b031687529582019590820190600101612c4b565b509495945050505050565b85815284602082015260a060408201526000612c9a60a0830186612c37565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612cd06040830184612c37565b949350505050565b600080600060608486031215612ced57600080fd5b8351925060208401519150604084015190509250925092565b600060018201612d1857612d18612b21565b506001019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122042cc33140e0036c91c9228acf61f4a475abb565031d47ebf478dfca70ca96d4864736f6c63430008130033
Deployed Bytecode Sourcemap
6220:21774:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9509:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10471:186;;;;;;;;;;-1:-1:-1;10471:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10471:186:0;1023:187:1;8174:53:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;8174:53:0;1215:177:1;11821:87:0;;;;;;;;;;-1:-1:-1;11890:10:0;;11821:87;;9786:95;;;;;;;;;;-1:-1:-1;9866:7:0;;9786:95;;7919:35;;;;;;;;;;;;;;;;10665:446;;;;;;;;;;-1:-1:-1;10665:446:0;;;;;:::i;:::-;;:::i;7645:37::-;;;;;;;;;;;;;;;;9695:83;;;;;;;;;;-1:-1:-1;9761:9:0;;9695:83;;9761:9;;;;2000:36:1;;1988:2;1973:18;9695:83:0;1858:184:1;8383:32:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;8383:32:0;2047:203:1;7463:91:0;;;;;;;;;;;;;;;;11119:293;;;;;;;;;;-1:-1:-1;11119:293:0;;;;;:::i;:::-;;:::i;7381:38::-;;;;;;;;;;;;;;;;23070:108;;;;;;;;;;-1:-1:-1;23070:108:0;;;;;:::i;:::-;;:::i;:::-;;27395:231;;;;;;;;;;-1:-1:-1;27395:231:0;;;;;:::i;:::-;;:::i;5684:26::-;;;;;;;;;;-1:-1:-1;5684:26:0;;;;;;;;26014:112;;;;;;;;;;-1:-1:-1;26014:112:0;;;;;:::i;:::-;;:::i;11916:118::-;;;;;;;;;;-1:-1:-1;12004:22:0;;11916:118;;8452:40;;;;;;;;;;-1:-1:-1;8452:40:0;;;;;;;;;;;6104:109;;;;;;;;;;-1:-1:-1;6104:109:0;;;;;:::i;:::-;;:::i;27227:160::-;;;;;;;;;;-1:-1:-1;27227:160:0;;;;;:::i;:::-;;:::i;22915:147::-;;;;;;;;;;-1:-1:-1;22915:147:0;;;;;:::i;:::-;;:::i;25871:135::-;;;;;;;;;;-1:-1:-1;25871:135:0;;;;;:::i;:::-;;:::i;8097:49::-;;;;;;;;;;;;;;;;6515:67;;;;;;;;;;-1:-1:-1;6515:67:0;;;;-1:-1:-1;;;;;6515:67:0;;;27634:181;;;;;;;;;;;;;:::i;9889:198::-;;;;;;;;;;-1:-1:-1;9889:198:0;;;;;:::i;:::-;;:::i;3711:148::-;;;;;;;;;;;;;:::i;7735:31::-;;;;;;;;;;;;;;;;24552:477;;;;;;;;;;-1:-1:-1;24552:477:0;;;;;:::i;:::-;;:::i;7961:29::-;;;;;;;;;;;;;;;;6305:101;;;;;;;;;;-1:-1:-1;6305:101:0;;;;-1:-1:-1;;;;;6305:101:0;;;7426:30;;;;;;;;;;;;;;;;7338:36;;;;;;;;;;;;;;;;23997:547;;;;;;;;;;-1:-1:-1;23997:547:0;;;;;:::i;:::-;;:::i;7877:35::-;;;;;;;;;;;;;;;;8323:53;;;;;;;;;;;;;;;3497:79;;;;;;;;;;-1:-1:-1;3535:7:0;3562:6;-1:-1:-1;;;;;3562:6:0;3497:79;;6413:95;;;;;;;;;;-1:-1:-1;6413:95:0;;;;-1:-1:-1;;;;;6413:95:0;;;9600:87;;;;;;;;;;;;;:::i;6589:69::-;;;;;;;;;;-1:-1:-1;6589:69:0;;;;-1:-1:-1;;;;;6589:69:0;;;11420:393;;;;;;;;;;-1:-1:-1;11420:393:0;;;;;:::i;:::-;;:::i;10095:192::-;;;;;;;;;;-1:-1:-1;10095:192:0;;;;;:::i;:::-;;:::i;7689:39::-;;;;;;;;;;;;;;;;25037:471;;;;;;;;;;-1:-1:-1;25037:471:0;;;;;:::i;:::-;;:::i;25692:171::-;;;;;;;;;;-1:-1:-1;25692:171:0;;;;;:::i;:::-;;:::i;27823:131::-;;;;;;;;;;;;;:::i;7997:91::-;;;;;;;;;;;;;;;;26134:171;;;;;;;;;;-1:-1:-1;26134:171:0;;;;;:::i;:::-;;:::i;10295:168::-;;;;;;;;;;-1:-1:-1;10295:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;10428:18:0;;;10401:7;10428:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10295:168;23186:107;;;;;;;;;;-1:-1:-1;23186:107:0;;;;;:::i;:::-;;:::i;7773:95::-;;;;;;;;;;;;;;;;25516:168;;;;;;;;;;-1:-1:-1;25516:168:0;;;;;:::i;:::-;;:::i;3867:277::-;;;;;;;;;;-1:-1:-1;3867:277:0;;;;;:::i;:::-;;:::i;6024:72::-;;;;;;;;;;;;;:::i;9509:83::-;9546:13;9579:5;9572:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9509:83;:::o;10471:186::-;10571:4;10588:39;357:10;10611:7;10620:6;10588:8;:39::i;:::-;-1:-1:-1;10645:4:0;10471:186;;;;;:::o;10665:446::-;10797:4;10814:36;10824:6;10832:9;10843:6;10814:9;:36::i;:::-;10861:220;10884:6;357:10;10932:138;10988:6;10932:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10932:19:0;;;;;;:11;:19;;;;;;;;357:10;10932:33;;;;;;;;;;:37;:138::i;:::-;10861:8;:220::i;:::-;-1:-1:-1;11099:4:0;10665:446;;;;;:::o;11119:293::-;357:10;11232:4;11321:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11321:34:0;;;;;;;;;;11232:4;;11249:133;;11299:7;;11321:50;;11360:10;11321:38;:50::i;23070:108::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;23139:24:0::1;;::::0;;;:15:::1;:24;::::0;;;;:31;;-1:-1:-1;;23139:31:0::1;23166:4;23139:31;::::0;;23070:108::o;27395:231::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;27474:12:::1;:22:::0;;;27544:7:::1;::::0;:23:::1;::::0;27565:1:::1;::::0;27544:16:::1;::::0;27556:3:::1;27544:11;:16::i;:::-;:20:::0;::::1;:23::i;:::-;27529:12;;:38;27507:102;;;::::0;-1:-1:-1;;;27507:102:0;;5482:2:1;27507:102:0::1;::::0;::::1;5464:21:1::0;5521:2;5501:18;;;5494:30;-1:-1:-1;;;5540:18:1;;;5533:44;5594:18;;27507:102:0::1;5280:338:1::0;27507:102:0::1;27395:231:::0;:::o;26014:112::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;26087:9:::1;:31:::0;;-1:-1:-1;;;;;;26087:31:0::1;-1:-1:-1::0;;;;;26087:31:0;;;::::1;::::0;;;::::1;::::0;;26014:112::o;6104:109::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6178:20:0::1;;::::0;;;:10:::1;:20;::::0;;;;:27;;-1:-1:-1;;6178:27:0::1;6201:4;6178:27;::::0;;6104:109::o;27227:160::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27342:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;27342:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27227:160::o;22915:147::-;23006:4;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;23030:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;;::::1;;3694:1;22915:147:::0;;;:::o;25871:135::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;25955:15:::1;:43:::0;;-1:-1:-1;;;;;;25955:43:0::1;-1:-1:-1::0;;;;;25955:43:0;;;::::1;::::0;;;::::1;::::0;;25871:135::o;27634:181::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;27711:49:::1;::::0;27693:12:::1;::::0;27711:10:::1;::::0;27734:21:::1;::::0;27693:12;27711:49;27693:12;27711:49;27734:21;27711:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27692:68;;;27779:7;27771:36;;;::::0;-1:-1:-1;;;27771:36:0;;6035:2:1;27771:36:0::1;::::0;::::1;6017:21:1::0;6074:2;6054:18;;;6047:30;-1:-1:-1;;;6093:18:1;;;6086:46;6149:18;;27771:36:0::1;5833:340:1::0;9889:198:0;-1:-1:-1;;;;;9979:20:0;;9955:7;9979:20;;;:11;:20;;;;;;;;9975:49;;;-1:-1:-1;;;;;;10008:16:0;;;;;:7;:16;;;;;;;9889:198::o;9975:49::-;-1:-1:-1;;;;;10062:16:0;;;;;;:7;:16;;;;;;10042:37;;:19;:37::i;3711:148::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;3818:1:::1;3802:6:::0;;3781:40:::1;::::0;-1:-1:-1;;;;;3802:6:0;;::::1;::::0;3781:40:::1;::::0;3818:1;;3781:40:::1;3849:1;3832:19:::0;;-1:-1:-1;;;;;;3832:19:0::1;::::0;;3711:148::o;24552:477::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;24701:18:::1;:34:::0;;;24746:18:::1;:34:::0;;;24791:12:::1;:22:::0;;;-1:-1:-1;24843:45:0::1;24806:7:::0;24843:32:::1;24722:13:::0;24767;24843:17:::1;:32::i;:::-;:36:::0;::::1;:45::i;:::-;24824:64;;24958:12;;24937:18;;24916;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;24899:14;:71:::0;25001:3:::1;24989:15:::0;::::1;;24981:40;;;;-1:-1:-1::0;;;24981:40:0::1;;;;;;;:::i;:::-;24690:339;24552:477:::0;;;:::o;23997:547::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;24145:17:::1;:33:::0;;;24189:17:::1;:33:::0;;;24233:11:::1;:21:::0;;;24265:67:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;:13:::1;::::0;:67:::1;;:::i;:::-;-1:-1:-1::0;24343:16:0::1;24362:45;24399:7:::0;24362:32:::1;:13:::0;24380;24362:17:::1;:32::i;:45::-;24343:64;;24474:11;;24454:17;;24434;;:37;;;;:::i;:::-;:51;;;;:::i;:::-;24418:13;:67:::0;24516:3:::1;24504:15:::0;::::1;;24496:40;;;;-1:-1:-1::0;;;24496:40:0::1;;;;;;;:::i;9600:87::-:0;9639:13;9672:7;9665:14;;;;;:::i;11420:393::-;11538:4;11555:228;357:10;11605:7;11627:145;11684:15;11627:145;;;;;;;;;;;;;;;;;357:10;11627:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11627:34:0;;;;;;;;;;;;:38;:145::i;10095:192::-;10198:4;10215:42;357:10;10239:9;10250:6;10215:9;:42::i;25037:471::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;25190:16:::1;:32:::0;;;25233:16:::1;:32:::0;;;25276:10:::1;:20:::0;;;25289:7;25326:35:::1;25252:13:::0;25209;25326:35:::1;:::i;:::-;:48;;;;:::i;:::-;25307:16;:67:::0;25385:16:::1;25404:45;25441:7:::0;25404:32:::1;:13:::0;25422;25404:17:::1;:32::i;:45::-;25385:64;;25480:3;25468:8;:15;;25460:40;;;;-1:-1:-1::0;;;25460:40:0::1;;;;;;;:::i;25692:171::-:0;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;25807:22:::1;:48:::0;25692:171::o;27823:131::-;27868:18;27889:24;27907:4;27889:9;:24::i;:::-;27868:45;;27924:22;27935:10;27924;:22::i;26134:171::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;26211:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;26211:32:0;;::::1;;::::0;;26259:38:::1;::::0;::::1;::::0;::::1;::::0;26235:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;26259:38:0::1;;;;;;;;26134:171:::0;:::o;23186:107::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23253:24:0::1;23280:5;23253:24:::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;23253:32:0::1;::::0;;23186:107::o;25516:168::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;25591:8:::1;:22:::0;;;25644:7:::1;::::0;:14:::1;::::0;25656:1:::1;25644:11;:14::i;:::-;25632:8;;:26;;25624:52;;;::::0;-1:-1:-1;;;25624:52:0;;6983:2:1;25624:52:0::1;::::0;::::1;6965:21:1::0;7022:2;7002:18;;;6995:30;-1:-1:-1;;;7041:18:1;;;7034:43;7094:18;;25624:52:0::1;6781:337:1::0;3867:277:0;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3969:21:0;::::1;3947:109;;;::::0;-1:-1:-1;;;3947:109:0;;7325:2:1;3947:109:0::1;::::0;::::1;7307:21:1::0;7364:2;7344:18;;;7337:30;7403:34;7383:18;;;7376:62;-1:-1:-1;;;7454:18:1;;;7447:36;7500:19;;3947:109:0::1;7123:402:1::0;3947:109:0::1;4093:6;::::0;;4072:37:::1;::::0;-1:-1:-1;;;;;4072:37:0;;::::1;::::0;4093:6;::::1;::::0;4072:37:::1;::::0;::::1;4120:6;:16:::0;;-1:-1:-1;;;;;;4120:16:0::1;-1:-1:-1::0;;;;;4120:16:0;;;::::1;::::0;;;::::1;::::0;;3867:277::o;6024:72::-;3624:6;;-1:-1:-1;;;;;3624:6:0;357:10;3624:22;3616:67;;;;-1:-1:-1;;;3616:67:0;;;;;;;:::i;:::-;6075:6:::1;:13:::0;;-1:-1:-1;;6075:13:0::1;6084:4;6075:13;::::0;;6024:72::o;12357:335::-;-1:-1:-1;;;;;12450:19:0;;12442:68;;;;-1:-1:-1;;;12442:68:0;;7732:2:1;12442:68:0;;;7714:21:1;7771:2;7751:18;;;7744:30;7810:34;7790:18;;;7783:62;-1:-1:-1;;;7861:18:1;;;7854:34;7905:19;;12442:68:0;7530:400:1;12442:68:0;-1:-1:-1;;;;;12529:21:0;;12521:68;;;;-1:-1:-1;;;12521:68:0;;8137:2:1;12521:68:0;;;8119:21:1;8176:2;8156:18;;;8149:30;8215:34;8195:18;;;8188:62;-1:-1:-1;;;8266:18:1;;;8259:32;8308:19;;12521:68:0;7935:398:1;12521:68:0;-1:-1:-1;;;;;12600:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12652:32;;1361:25:1;;;12652:32:0;;1334:18:1;12652:32:0;;;;;;;12357:335;;;:::o;12700:1321::-;5826:6;;12808:4;;12814:2;;5826:6;;;:26;;-1:-1:-1;;;;;;5836:16:0;;;;;;:10;:16;;;;;;;;5826:26;:44;;;-1:-1:-1;;;;;;5856:14:0;;;;;;:10;:14;;;;;;;;5826:44;5818:65;;;;-1:-1:-1;;;5818:65:0;;8540:2:1;5818:65:0;;;8522:21:1;8579:1;8559:18;;;8552:29;-1:-1:-1;;;8597:18:1;;;8590:38;8645:18;;5818:65:0;8338:331:1;5818:65:0;-1:-1:-1;;;;;12837:18:0;::::1;12829:68;;;::::0;-1:-1:-1;;;12829:68:0;;8876:2:1;12829:68:0::1;::::0;::::1;8858:21:1::0;8915:2;8895:18;;;8888:30;8954:34;8934:18;;;8927:62;-1:-1:-1;;;9005:18:1;;;8998:35;9050:19;;12829:68:0::1;8674:401:1::0;12829:68:0::1;-1:-1:-1::0;;;;;12916:16:0;::::1;12908:64;;;::::0;-1:-1:-1;;;12908:64:0;;9282:2:1;12908:64:0::1;::::0;::::1;9264:21:1::0;9321:2;9301:18;;;9294:30;9360:34;9340:18;;;9333:62;-1:-1:-1;;;9411:18:1;;;9404:33;9454:19;;12908:64:0::1;9080:399:1::0;12908:64:0::1;13000:1;12991:6;:10;12983:64;;;::::0;-1:-1:-1;;;12983:64:0;;9686:2:1;12983:64:0::1;::::0;::::1;9668:21:1::0;9725:2;9705:18;;;9698:30;9764:34;9744:18;;;9737:62;-1:-1:-1;;;9815:18:1;;;9808:39;9864:19;;12983:64:0::1;9484:405:1::0;12983:64:0::1;3535:7:::0;3562:6;-1:-1:-1;;;;;13062:15:0;;::::1;3562:6:::0;;13062:15:::1;::::0;::::1;::::0;:32:::1;;-1:-1:-1::0;3535:7:0;3562:6;-1:-1:-1;;;;;13081:13:0;;::::1;3562:6:::0;;13081:13:::1;;13062:32;13058:185;;;13147:8;;13137:6;:18;;13111:120;;;::::0;-1:-1:-1;;;13111:120:0;;10096:2:1;13111:120:0::1;::::0;::::1;10078:21:1::0;10135:2;10115:18;;;10108:30;10174:34;10154:18;;;10147:62;-1:-1:-1;;;10225:18:1;;;10218:38;10273:19;;13111:120:0::1;9894:404:1::0;13111:120:0::1;13255:28;13286:24;13304:4;13286:9;:24::i;:::-;13389:22;::::0;13255:55;;-1:-1:-1;13352:59:0;::::1;;13424:31;13438:4:::0;13444:2;13448:6;13424:13:::1;:31::i;:::-;13487:16;::::0;::::1;;13486:17;:42:::0;::::1;;;-1:-1:-1::0;13507:21:0::1;::::0;::::1;::::0;::::1;;;13486:42;:61;;;;;13540:7;-1:-1:-1::0;;;;;13532:15:0::1;:4;-1:-1:-1::0;;;;;13532:15:0::1;;;13486:61;13468:277;;;13578:23;13574:160;;;13645:22;;13622:45;;13686:32;13697:20;13686:10;:32::i;:::-;-1:-1:-1::0;;;;;13874:21:0;::::1;13757:12;13874:21:::0;;;:15:::1;:21;::::0;;;;;13772:4:::1;::::0;13874:21:::1;;::::0;:44:::1;;-1:-1:-1::0;;;;;;13899:19:0;::::1;;::::0;;;:15:::1;:19;::::0;;;;;::::1;;13874:44;13870:92;;;-1:-1:-1::0;13945:5:0::1;13870:92;13972:41;13987:4;13993:2;13997:6;14005:7;13972:14;:41::i;:::-;12818:1203;;;12700:1321:::0;;;;;:::o;1788:226::-;1908:7;1944:12;1936:6;;;;1928:29;;;;-1:-1:-1;;;1928:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1968:9:0;1980:5;1984:1;1980;:5;:::i;:::-;1968:17;1788:226;-1:-1:-1;;;;;1788:226:0:o;1455:181::-;1513:7;;1545:5;1549:1;1545;:5;:::i;:::-;1533:17;;1574:1;1569;:6;;1561:46;;;;-1:-1:-1;;;1561:46:0;;10638:2:1;1561:46:0;;;10620:21:1;10677:2;10657:18;;;10650:30;10716:29;10696:18;;;10689:57;10763:18;;1561:46:0;10436:351:1;1561:46:0;1627:1;1455:181;-1:-1:-1;;;1455:181:0:o;2280:132::-;2338:7;2365:39;2369:1;2372;2365:39;;;;;;;;;;;;;;;;;:3;:39::i;2022:250::-;2080:7;2104:1;2109;2104:6;2100:47;;-1:-1:-1;2134:1:0;2127:8;;2100:47;2159:9;2171:5;2175:1;2171;:5;:::i;:::-;2159:17;-1:-1:-1;2204:1:0;2195:5;2199:1;2159:17;2195:5;:::i;:::-;:10;2187:56;;;;-1:-1:-1;;;2187:56:0;;11389:2:1;2187:56:0;;;11371:21:1;11428:2;11408:18;;;11401:30;11467:34;11447:18;;;11440:62;-1:-1:-1;;;11518:18:1;;;11511:31;11559:19;;2187:56:0;11187:397:1;12042:307:0;12126:7;12179;;12168;:18;;12146:110;;;;-1:-1:-1;;;12146:110:0;;11791:2:1;12146:110:0;;;11773:21:1;11830:2;11810:18;;;11803:30;11869:34;11849:18;;;11842:62;-1:-1:-1;;;11920:18:1;;;11913:40;11970:19;;12146:110:0;11589:406:1;12146:110:0;12267:19;12289:10;:8;:10::i;:::-;12267:32;-1:-1:-1;12317:24:0;:7;12267:32;12317:11;:24::i;14029:1497::-;8790:16;:23;;-1:-1:-1;;8790:23:0;8809:4;8790:23;;;14195:11:::1;::::0;14158:17:::1;::::0;14136::::1;::::0;8790:16;;14136:81:::1;::::0;14195:11;;14136:40:::1;::::0;:21:::1;:40::i;:81::-;14110:107;;14228:24;14255:84;14316:12;;14255:42;14278:18;;14255;;:22;;:42;;;;:::i;:84::-;14228:111:::0;-1:-1:-1;14350:25:0::1;14378:37;:15:::0;14228:111;14378:19:::1;:37::i;:::-;14350:65;;14428:27;14458:136;14592:1;14458:115;14555:17;14458:78;14517:18;;14497:17;;:38;;;;:::i;:::-;14458:20:::0;;:38:::1;:78::i;:::-;:96:::0;::::1;:115::i;:136::-;14428:166:::0;-1:-1:-1;14605:22:0::1;14630:45;:20:::0;14428:166;14630:24:::1;:45::i;:::-;14605:70;;14686:32;14703:14;14686:16;:32::i;:::-;14731:18;14752:21;14731:42;;14784:23;14810:126;14934:1;14810:105;14897:17;14810:68;14859:18;;14839:17;;:38;;;;:::i;:::-;14810:10:::0;;:28:::1;:68::i;:126::-;14784:152;;14975:1;14953:19;:23;:46;;;;;14998:1;14980:15;:19;14953:46;14949:129;;;15016:50;15029:19;15050:15;15016:12;:50::i;:::-;15090:23;15116:105;15203:17;15116:68;15165:18;;15145:17;;:38;;;;:::i;:::-;15116:10:::0;;:28:::1;:68::i;:105::-;15090:131:::0;-1:-1:-1;15236:19:0;;15232:93:::1;;15272:15;::::0;:41:::1;::::0;-1:-1:-1;;;;;15272:15:0;;::::1;::::0;:41;::::1;;;::::0;15297:15;;15272::::1;:41:::0;:15;:41;15297:15;15272;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15232:93;15337:17;15357:76;15407:15:::0;15357:31:::1;:10:::0;15372:15;15357:14:::1;:31::i;:::-;:35:::0;::::1;:76::i;:::-;15337:96:::0;-1:-1:-1;15448:13:0;;15444:75:::1;;15478:9;::::0;:29:::1;::::0;-1:-1:-1;;;;;15478:9:0;;::::1;::::0;:29;::::1;;;::::0;15497:9;;15478::::1;:29:::0;:9;:29;15497:9;15478;:29;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15444:75;-1:-1:-1::0;;8836:16:0;:24;;-1:-1:-1;;8836:24:0;;;-1:-1:-1;;;;;;;;14029:1497:0:o;26609:610::-;26732:18;26753:25;26771:6;26753:13;26763:2;26753:9;:13::i;:25::-;-1:-1:-1;;;;;26794:23:0;;;;;;:17;:23;;;;;;26732:46;;-1:-1:-1;26794:23:0;;26793:24;:50;;;;-1:-1:-1;;;;;;26822:21:0;;;;;;:17;:21;;;;;;;;26821:22;26793:50;26789:211;;;26900:12;;26886:10;:26;;26860:128;;;;-1:-1:-1;;;26860:128:0;;;;;;;:::i;:::-;27022:7;-1:-1:-1;;;;;27014:15:0;:4;-1:-1:-1;;;;;27014:15:0;;:41;;;;-1:-1:-1;;;;;;27034:21:0;;;;;;:17;:21;;;;;;;;27033:22;27014:41;27010:202;;;27112:12;;27098:10;:26;;27072:128;;;;-1:-1:-1;;;27072:128:0;;;;;;;:::i;16595:953::-;16751:7;16746:288;;16775:14;23364:1;23344:17;:21;;;23376:17;:21;;;23408:11;:15;23301:130;16775:14;16746:288;;;16839:7;-1:-1:-1;;;;;16826:20:0;:9;-1:-1:-1;;;;;16826:20:0;;16822:73;;16867:12;23684:18;;23664:17;:38;23733:18;;23713:17;:38;23776:12;;23762:11;:26;23623:173;16867:12;16925:7;-1:-1:-1;;;;;16915:17:0;:6;-1:-1:-1;;;;;16915:17:0;;;:41;;;;;16949:7;-1:-1:-1;;;;;16936:20:0;:9;-1:-1:-1;;;;;16936:20:0;;;16915:41;16911:112;;;16977:30;23883:16;;23863:17;:36;23930:16;;23910:17;:36;23971:10;;23957:11;:24;23804:185;16977:30;-1:-1:-1;;;;;17050:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;17074:22:0;;;;;;:11;:22;;;;;;;;17073:23;17050:46;17046:467;;;17113:48;17135:6;17143:9;17154:6;17113:21;:48::i;:::-;17046:467;;;-1:-1:-1;;;;;17184:19:0;;;;;;:11;:19;;;;;;;;17183:20;:46;;;;-1:-1:-1;;;;;;17207:22:0;;;;;;:11;:22;;;;;;;;17183:46;17179:334;;;17246:46;17266:6;17274:9;17285:6;17246:19;:46::i;17179:334::-;-1:-1:-1;;;;;17314:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;17337:22:0;;;;;;:11;:22;;;;;;;;17314:45;17310:203;;;17376:48;17398:6;17406:9;17417:6;17376:21;:48::i;17310:203::-;17457:44;17475:6;17483:9;17494:6;17457:17;:44::i;:::-;17525:15;:13;:15::i;2420:312::-;2540:7;2575:12;2568:5;2560:28;;;;-1:-1:-1;;;2560:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2599:9:0;2611:5;2615:1;2611;:5;:::i;21515:164::-;21557:7;21578:15;21595;21614:19;:17;:19::i;:::-;21577:56;;-1:-1:-1;21577:56:0;-1:-1:-1;21651:20:0;21577:56;;21651:11;:20::i;:::-;21644:27;;;;21515:164;:::o;1644:136::-;1702:7;1729:43;1733:1;1736;1729:43;;;;;;;;;;;;;;;;;:3;:43::i;15534:528::-;15624:16;;;15638:1;15624:16;;;;;;;;15600:21;;15624:16;;;;;;;;;;-1:-1:-1;15624:16:0;15600:40;;15669:4;15651;15656:1;15651:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15651:23:0;;;-1:-1:-1;;;;;15651:23:0;;;;;15695:17;-1:-1:-1;;;;;15695:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15685:4;15690:1;15685:7;;;;;;;;:::i;:::-;;;;;;:34;-1:-1:-1;;;;;15685:34:0;;;-1:-1:-1;;;;;15685:34:0;;;;;15730:64;15747:4;15762:17;15782:11;15730:8;:64::i;:::-;15805:198;;-1:-1:-1;;;15805:198:0;;-1:-1:-1;;;;;15805:17:0;:68;;;;:198;;15888:11;;15914:1;;15930:4;;15957;;15977:15;;15805:198;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16019:35;16036:11;16049:4;16019:35;;;;;;;:::i;:::-;;;;;;;;15589:473;15534:528;:::o;16070:517::-;16218:64;16235:4;16250:17;16270:11;16218:8;:64::i;:::-;16325:17;-1:-1:-1;;;;;16325:33:0;;16366:9;16399:4;16419:11;16445:1;16488;16531:7;3535;3562:6;-1:-1:-1;;;;;3562:6:0;;3497:79;16531:7;16325:254;;;;;;-1:-1:-1;;;;;;16325:254:0;;;-1:-1:-1;;;;;14678:15:1;;;16325:254:0;;;14660:34:1;14710:18;;;14703:34;;;;14753:18;;;14746:34;;;;14796:18;;;14789:34;14860:15;;;14839:19;;;14832:44;16553:15:0;14892:19:1;;;14885:35;14594:19;;16325:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16070:517;;:::o;18929:703::-;19080:15;19110:23;19148;19186:18;19218:19;19229:7;19218:10;:19::i;:::-;-1:-1:-1;;;;;19266:15:0;;;;;;:7;:15;;;;;;19065:172;;-1:-1:-1;19065:172:0;;-1:-1:-1;19065:172:0;-1:-1:-1;19065:172:0;-1:-1:-1;19266:28:0;;19286:7;19266:19;:28::i;:::-;-1:-1:-1;;;;;19248:15:0;;;;;;:7;:15;;;;;;;;:46;;;;19323:7;:15;;;;:28;;19343:7;19323:19;:28::i;:::-;-1:-1:-1;;;;;19305:15:0;;;;;;;:7;:15;;;;;;:46;;;;19383:18;;;;;;;:39;;19406:15;19383:22;:39::i;:::-;-1:-1:-1;;;;;19362:18:0;;;;;;:7;:18;;;;;:60;19433:26;19448:10;19433:14;:26::i;:::-;19492:9;-1:-1:-1;;;;;19475:44:0;19484:6;-1:-1:-1;;;;;19475:44:0;;19503:15;19475:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;19475:44:0;;;;;;;;19534:14;;19530:95;;19570:43;;1361:25:1;;;19595:4:0;;-1:-1:-1;;;;;19570:43:0;;;;;1349:2:1;1334:18;19570:43:0;;;;;;;19530:95;19054:578;;;;18929:703;;;:::o;18206:715::-;18355:15;18385:23;18423;18461:18;18493:19;18504:7;18493:10;:19::i;:::-;-1:-1:-1;;;;;18541:15:0;;;;;;:7;:15;;;;;;18340:172;;-1:-1:-1;18340:172:0;;-1:-1:-1;18340:172:0;-1:-1:-1;18340:172:0;-1:-1:-1;18541:28:0;;18340:172;18541:19;:28::i;:::-;-1:-1:-1;;;;;18523:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;18601:18;;;;;:7;:18;;;;;:39;;18624:15;18601:22;:39::i;:::-;-1:-1:-1;;;;;18580:18:0;;;;;;:7;:18;;;;;;;;:60;;;;18672:7;:18;;;;:39;;18695:15;18672:22;:39::i;19640:774::-;19791:15;19821:23;19859;19897:18;19929:19;19940:7;19929:10;:19::i;:::-;-1:-1:-1;;;;;19977:15:0;;;;;;:7;:15;;;;;;19776:172;;-1:-1:-1;19776:172:0;;-1:-1:-1;19776:172:0;-1:-1:-1;19776:172:0;-1:-1:-1;19977:28:0;;19997:7;19977:19;:28::i;:::-;-1:-1:-1;;;;;19959:15:0;;;;;;:7;:15;;;;;;;;:46;;;;20034:7;:15;;;;:28;;20054:7;20034:19;:28::i;17556:642::-;17703:15;17733:23;17771;17809:18;17841:19;17852:7;17841:10;:19::i;:::-;-1:-1:-1;;;;;17889:15:0;;;;;;:7;:15;;;;;;17688:172;;-1:-1:-1;17688:172:0;;-1:-1:-1;17688:172:0;-1:-1:-1;17688:172:0;-1:-1:-1;17889:28:0;;17688:172;17889:19;:28::i;23439:176::-;23503:13;23517:1;23503:16;;;;;;;;:::i;:::-;;;;;;;;;23483:17;:36;;;;23550:13;23564:1;23550:16;;;;;;;;:::i;:::-;;;;;;;;;23530:17;:36;;;;23591:13;23605:1;23591:16;;;;;;;;:::i;:::-;;;;;;;;;;;23577:11;:30;23439:176::o;21687:605::-;21785:7;;21821;;21738;;;;;21839:338;21863:9;:16;21859:20;;21839:338;;;21947:7;21923;:21;21931:9;21941:1;21931:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21931:12:0;21923:21;;;;;;;;;;;;;:31;;:83;;;21999:7;21975;:21;21983:9;21993:1;21983:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21983:12:0;21975:21;;;;;;;;;;;;;:31;21923:83;21901:146;;;22030:7;;22039;;22022:25;;;;;;;21687:605;;:::o;21901:146::-;22072:34;22084:7;:21;22092:9;22102:1;22092:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22092:12:0;22084:21;;;;;;;;;;;;;22072:7;;:11;:34::i;:::-;22062:44;;22131:34;22143:7;:21;22151:9;22161:1;22151:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22151:12:0;22143:21;;;;;;;;;;;;;22131:7;;:11;:34::i;:::-;22121:44;-1:-1:-1;21881:3:0;;;;:::i;:::-;;;;21839:338;;;-1:-1:-1;22213:7:0;;22201;;:20;;:11;:20::i;:::-;22191:7;:30;22187:61;;;22231:7;;22240;;22223:25;;;;;;21687:605;;:::o;22187:61::-;22267:7;;22276;;-1:-1:-1;21687:605:0;-1:-1:-1;21687:605:0:o;20422:421::-;20497:7;20506;20515;20524;20545:23;20570:18;20592:20;20604:7;20592:11;:20::i;:::-;20544:68;;;;20624:15;20641:23;20668:94;20694:7;20716:10;20741;:8;:10::i;:::-;20668:11;:94::i;:::-;20623:139;;;;-1:-1:-1;20807:15:0;;-1:-1:-1;20824:10:0;;-1:-1:-1;20422:421:0;;-1:-1:-1;;;;20422:421:0:o;22300:368::-;22363:19;22385:10;:8;:10::i;:::-;22363:32;-1:-1:-1;22406:18:0;22427:27;:10;22363:32;22427:14;:27::i;:::-;22506:4;22490:22;;;;:7;:22;;;;;;22406:48;;-1:-1:-1;22490:38:0;;22406:48;22490:26;:38::i;:::-;22481:4;22465:22;;;;:7;:22;;;;;;;;:63;;;;22543:11;:26;;;;;;22539:122;;;22627:4;22611:22;;;;:7;:22;;;;;;:38;;22638:10;22611:26;:38::i;:::-;22602:4;22586:22;;;;:7;:22;;;;;:63;22539:122;22352:316;;22300:368;:::o;20851:271::-;20927:7;20936;20956:18;20977:30;20999:7;20977:21;:30::i;:::-;20956:51;-1:-1:-1;21018:23:0;21044;:7;20956:51;21044:11;:23::i;:::-;21018:49;21103:10;;-1:-1:-1;20851:271:0;;-1:-1:-1;;;20851:271:0:o;21130:377::-;21265:7;;;21312:24;:7;21324:11;21312;:24::i;:::-;21294:42;-1:-1:-1;21347:18:0;21368:27;:10;21383:11;21368:14;:27::i;:::-;21347:48;-1:-1:-1;21406:23:0;21432;:7;21347:48;21432:11;:23::i;:::-;21474:7;;;;-1:-1:-1;21130:377:0;;-1:-1:-1;;;;;;21130:377:0:o;22676:231::-;22762:7;22782:12;22797:57;22842:11;;22797:40;22819:17;;22797;;:21;;:40;;;;:::i;:57::-;22782:72;-1:-1:-1;22872:27:0;22894:4;22872:17;:7;22782:72;22872:11;:17::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:160::-;2757:20;;2813:13;;2806:21;2796:32;;2786:60;;2842:1;2839;2832:12;2857:315;2922:6;2930;2983:2;2971:9;2962:7;2958:23;2954:32;2951:52;;;2999:1;2996;2989:12;2951:52;3038:9;3025:23;3057:31;3082:5;3057:31;:::i;:::-;3107:5;-1:-1:-1;3131:35:1;3162:2;3147:18;;3131:35;:::i;:::-;3121:45;;2857:315;;;;;:::o;3177:316::-;3254:6;3262;3270;3323:2;3311:9;3302:7;3298:23;3294:32;3291:52;;;3339:1;3336;3329:12;3291:52;-1:-1:-1;;3362:23:1;;;3432:2;3417:18;;3404:32;;-1:-1:-1;3483:2:1;3468:18;;;3455:32;;3177:316;-1:-1:-1;3177:316:1:o;3956:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;4104:26;4120:9;4104:26;:::i;4141:388::-;4209:6;4217;4270:2;4258:9;4249:7;4245:23;4241:32;4238:52;;;4286:1;4283;4276:12;4238:52;4325:9;4312:23;4344:31;4369:5;4344:31;:::i;:::-;4394:5;-1:-1:-1;4451:2:1;4436:18;;4423:32;4464:33;4423:32;4464:33;:::i;:::-;4516:7;4506:17;;;4141:388;;;;;:::o;4534:380::-;4613:1;4609:12;;;;4656;;;4677:61;;4731:4;4723:6;4719:17;4709:27;;4677:61;4784:2;4776:6;4773:14;4753:18;4750:38;4747:161;;4830:10;4825:3;4821:20;4818:1;4811:31;4865:4;4862:1;4855:15;4893:4;4890:1;4883:15;4747:161;;4534:380;;;:::o;4919:356::-;5121:2;5103:21;;;5140:18;;;5133:30;5199:34;5194:2;5179:18;;5172:62;5266:2;5251:18;;4919:356::o;6178:127::-;6239:10;6234:3;6230:20;6227:1;6220:31;6270:4;6267:1;6260:15;6294:4;6291:1;6284:15;6310:125;6375:9;;;6396:10;;;6393:36;;;6409:18;;:::i;6440:336::-;6642:2;6624:21;;;6681:2;6661:18;;;6654:30;-1:-1:-1;;;6715:2:1;6700:18;;6693:42;6767:2;6752:18;;6440:336::o;10303:128::-;10370:9;;;10391:11;;;10388:37;;;10405:18;;:::i;10792:168::-;10865:9;;;10896;;10913:15;;;10907:22;;10893:37;10883:71;;10934:18;;:::i;10965:217::-;11005:1;11031;11021:132;;11075:10;11070:3;11066:20;11063:1;11056:31;11110:4;11107:1;11100:15;11138:4;11135:1;11128:15;11021:132;-1:-1:-1;11167:9:1;;10965:217::o;12000:404::-;12202:2;12184:21;;;12241:2;12221:18;;;12214:30;12280:34;12275:2;12260:18;;12253:62;-1:-1:-1;;;12346:2:1;12331:18;;12324:38;12394:3;12379:19;;12000:404::o;12541:127::-;12602:10;12597:3;12593:20;12590:1;12583:31;12633:4;12630:1;12623:15;12657:4;12654:1;12647:15;12673:251;12743:6;12796:2;12784:9;12775:7;12771:23;12767:32;12764:52;;;12812:1;12809;12802:12;12764:52;12844:9;12838:16;12863:31;12888:5;12863:31;:::i;12929:461::-;12982:3;13020:5;13014:12;13047:6;13042:3;13035:19;13073:4;13102:2;13097:3;13093:12;13086:19;;13139:2;13132:5;13128:14;13160:1;13170:195;13184:6;13181:1;13178:13;13170:195;;;13249:13;;-1:-1:-1;;;;;13245:39:1;13233:52;;13305:12;;;;13340:15;;;;13281:1;13199:9;13170:195;;;-1:-1:-1;13381:3:1;;12929:461;-1:-1:-1;;;;;12929:461:1:o;13395:582::-;13694:6;13683:9;13676:25;13737:6;13732:2;13721:9;13717:18;13710:34;13780:3;13775:2;13764:9;13760:18;13753:31;13657:4;13801:57;13853:3;13842:9;13838:19;13830:6;13801:57;:::i;:::-;-1:-1:-1;;;;;13894:32:1;;;;13889:2;13874:18;;13867:60;-1:-1:-1;13958:3:1;13943:19;13936:35;13793:65;13395:582;-1:-1:-1;;;13395:582:1:o;13982:332::-;14189:6;14178:9;14171:25;14232:2;14227;14216:9;14212:18;14205:30;14152:4;14252:56;14304:2;14293:9;14289:18;14281:6;14252:56;:::i;:::-;14244:64;13982:332;-1:-1:-1;;;;13982:332:1:o;14931:306::-;15019:6;15027;15035;15088:2;15076:9;15067:7;15063:23;15059:32;15056:52;;;15104:1;15101;15094:12;15056:52;15133:9;15127:16;15117:26;;15183:2;15172:9;15168:18;15162:25;15152:35;;15227:2;15216:9;15212:18;15206:25;15196:35;;14931:306;;;;;:::o;15242:135::-;15281:3;15302:17;;;15299:43;;15322:18;;:::i;:::-;-1:-1:-1;15369:1:1;15358:13;;15242:135::o
Swarm Source
ipfs://42cc33140e0036c91c9228acf61f4a475abb565031d47ebf478dfca70ca96d48
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.