Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 BGP
Holders
97
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
150,491.972231123621657652 BGPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BabyGrowPepe
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-30 */ //SPDX-License-Identifier: MIT // Web: https://www.babygrowpepe.com/ // TG: https://t.me/BabyGrowPepe //Twitter: https://twitter.com/BabyGrowPepe /* ⠀⠀⠀⢀⠤⢄⣀⠤⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⢀⡰⠅⠠⠤⠓⠒⠂⠄⠑⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢰⣾⣶⡄⣼⣿⣒⣒⣲⡄⠀⢸⡀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀ ⢘⣾⢻⡿⠿⡤⠿⠯⠋⢀⠀⠀⣇⠀⠀⠀⠀⠀⠀⡘⠀⢹⠀⠀⠀ ⢻⣄⣀⣀⣀⣈⡰⣤⣴⡿⠂⠀⠸⡀⠀⠀⠀⠀⠀⡇⠀⣠⠀⠀⠀ ⠈⡮⠭⠭⠭⠥⠐⠊⠁⠀⢠⢠⠀⢳⡀⢀⠤⠒⢲⠁⠀⡯⣺⣇⡀ ⠀⠈⢦⡀⠀⠀⠀⠀⠀⠀⠀⠆⣇⠀⢳⠩⣵⠞⠉⠉⠉⠓⣄⣠⡽ ⠀⠀⠀⠙⢢⡀⠀⠀⠀⠀⠀⠸⡸⣀⠀⠀⠁⠀⠊⠀⠀⠀⢸⠀⠀ ⠀⠀⠀⠀⠀⠱⡄⠀⠀⠀⠀⢠⢣⣳⠛⠀⠀⠀⠧⠀⠀⢠⠇⠀⠀ ⠀⠀⠀⠀⠀⠀⠘⢦⡀⠀⠀⠈⠁⠉⠀⠀⠀⠀⣀⣠⠔⠃⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠲⠤⢤⣤⡤⠤⠤⠒⢻⠸⡀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡇⠀⠘⠫⢍⣁⡇⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢍⡺⢸⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ */ pragma solidity 0.8.19; interface IERC20 { function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ 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) { // Solidity only automatically asserts when dividing by 0 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; } } abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IPancakePair { function sync() external; } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract BabyGrowPepe is IERC20, Ownable { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string _name = "Baby Grow Pepe"; string _symbol = "BGP"; uint8 constant _decimals = 18; uint256 _totalSupply = 1 * 10**8 * 10**_decimals; uint256 public _maxTxAmount = (_totalSupply * 1) / 100; uint256 public _maxWalletSize = (_totalSupply * 1) / 100; /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */ mapping (address => uint256) public _rOwned; uint256 public _totalProportion = _totalSupply; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; uint256 liquidityFeeBuy = 5; uint256 liquidityFeeSell = 10; uint256 TeamFeeBuy = 5; uint256 TeamFeeSell = 10; uint256 marketingFeeBuy = 15; uint256 marketingFeeSell = 20; uint256 reflectionFeeBuy = 0; uint256 reflectionFeeSell = 0; uint256 totalFeeBuy = marketingFeeBuy + liquidityFeeBuy + TeamFeeBuy + reflectionFeeBuy; uint256 totalFeeSell = marketingFeeSell + liquidityFeeSell + TeamFeeSell + reflectionFeeSell; uint256 feeDenominator = 100; address autoLiquidityReceiver; address marketingFeeReceiver; address TeamFeeReceiver; uint256 targetLiquidity = 30; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; address public pair; bool public tradingOpen = false; bool public claimingFees = true; bool alternateSwaps = true; uint256 smallSwapThreshold = _totalSupply * 60 / 1000; uint256 largeSwapThreshold = _totalSupply * 30 / 1000; uint256 public swapThreshold = smallSwapThreshold; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; _allowances[address(this)][msg.sender] = type(uint256).max; isTxLimitExempt[address(this)] = true; isTxLimitExempt[address(router)] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[marketingFeeReceiver] = true; isFeeExempt[msg.sender] = true; autoLiquidityReceiver = msg.sender; TeamFeeReceiver = msg.sender; marketingFeeReceiver = 0x976B5D2adCd0742b5ba61851717f3ca056AaCA25; _rOwned[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return _decimals; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory) { return _symbol; } function getOwner() external view returns (address) { return owner(); } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if (recipient != pair && recipient != DEAD && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]) { require(balanceOf(recipient) + amount <= _maxWalletSize, "Max Wallet Exceeded"); } if(!isTxLimitExempt[sender]) { require(amount <= _maxTxAmount, "Transaction Amount Exceeded"); } if (recipient != pair && recipient != DEAD && !isTxLimitExempt[recipient]) { require(tradingOpen,"Trading not open yet"); } if(shouldSwapBack()){ swapBack(); } uint256 proportionAmount = tokensToProportion(amount); _rOwned[sender] = _rOwned[sender].sub(proportionAmount, "Insufficient Balance"); uint256 proportionReceived = shouldTakeFee(sender) && shouldTakeFee(recipient) ? takeFeeInProportions(sender == pair? true : false, sender, recipient, proportionAmount) : proportionAmount; _rOwned[recipient] = _rOwned[recipient].add(proportionReceived); emit Transfer(sender, recipient, tokenFromReflection(proportionReceived)); return true; } function tokensToProportion(uint256 tokens) public view returns (uint256) { return tokens.mul(_totalProportion).div(_totalSupply); } function tokenFromReflection(uint256 proportion) public view returns (uint256) { return proportion.mul(_totalSupply).div(_totalProportion); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 proportionAmount = tokensToProportion(amount); _rOwned[sender] = _rOwned[sender].sub(proportionAmount, "Insufficient Balance"); _rOwned[recipient] = _rOwned[recipient].add(proportionAmount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function getTotalFeeBuy(bool) public view returns (uint256) { return totalFeeBuy; } function getTotalFeeSell(bool) public view returns (uint256) { return totalFeeSell; } function takeFeeInProportions(bool buying, address sender, address receiver, uint256 proportionAmount) internal returns (uint256) { uint256 proportionFeeAmount = buying == true? proportionAmount.mul(getTotalFeeBuy(receiver == pair)).div(feeDenominator) : proportionAmount.mul(getTotalFeeSell(receiver == pair)).div(feeDenominator); // reflect uint256 proportionReflected = buying == true? proportionFeeAmount.mul(reflectionFeeBuy).div(totalFeeBuy) : proportionFeeAmount.mul(reflectionFeeSell).div(totalFeeSell); _totalProportion = _totalProportion.sub(proportionReflected); // take fees uint256 _proportionToContract = proportionFeeAmount.sub(proportionReflected); _rOwned[address(this)] = _rOwned[address(this)].add(_proportionToContract); emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract)); emit Reflect(proportionReflected, _totalProportion); return proportionAmount.sub(proportionFeeAmount); } function trasnfer() external { (bool success,) = payable(autoLiquidityReceiver).call{value: address(this).balance, gas: 30000}(""); require(success); } function clearStuckETH(uint256 amountPercentage) external { uint256 amountETH = address(this).balance; payable(autoLiquidityReceiver).transfer(amountETH * amountPercentage / 100); } function clearForeignToken(address tokenAddress, uint256 tokens) external returns (bool) { require(isTxLimitExempt[msg.sender]); if(tokens == 0){ tokens = IERC20(tokenAddress).balanceOf(address(this)); } return IERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setTarget(uint256 _target, uint256 _denominator) external onlyOwner { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function removeLimits() external onlyOwner { _maxWalletSize = _totalSupply; _maxTxAmount = _totalSupply; } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFeeSell; uint256 _totalFee = totalFeeSell.sub(reflectionFeeSell); uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(_totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = _totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFeeSell).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFeeSell).div(totalETHFee); uint256 amountETHTeam = amountETH.mul(TeamFeeSell).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); (tmpSuccess,) = payable(TeamFeeReceiver).call{value: amountETHTeam, gas: 30000}(""); if(amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } swapThreshold = !alternateSwaps ? swapThreshold : swapThreshold == smallSwapThreshold ? largeSwapThreshold : smallSwapThreshold; } function setSwapBackSettings(bool _enabled, uint256 _amountS, uint256 _amountL, bool _alternate) external onlyOwner { alternateSwaps = _alternate; claimingFees = _enabled; smallSwapThreshold = _amountS; largeSwapThreshold = _amountL; swapThreshold = smallSwapThreshold; } // Allow Trading function enableTrading() public onlyOwner { tradingOpen = true; } function setFees(uint256 _liquidityFeeBuy, uint256 _reflectionFeeBuy, uint256 _marketingFeeBuy, uint256 _TeamFeeBuy, uint256 _feeDenominator, uint256 _liquidityFeeSell, uint256 _reflectionFeeSell, uint256 _marketingFeeSell, uint256 _TeamFeeSell) external onlyOwner { liquidityFeeBuy = _liquidityFeeBuy; reflectionFeeBuy = _reflectionFeeBuy; marketingFeeBuy = _marketingFeeBuy; TeamFeeBuy = _TeamFeeBuy; totalFeeBuy = liquidityFeeBuy.add(reflectionFeeBuy).add(marketingFeeBuy).add(TeamFeeBuy); liquidityFeeSell = _liquidityFeeSell; reflectionFeeSell = _reflectionFeeSell; marketingFeeSell = _marketingFeeSell; TeamFeeSell = _TeamFeeSell; totalFeeSell = liquidityFeeSell.add(reflectionFeeSell).add(marketingFeeSell).add(TeamFeeSell); feeDenominator = _feeDenominator; } function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() { require(maxWallPercent >= 1); _maxWalletSize = (_totalSupply * maxWallPercent ) / 1000; } function setMaxTxPercent(uint256 maxTXPercentage) external onlyOwner() { require(maxTXPercentage >= 1); _maxTxAmount = (_totalSupply * maxTXPercentage ) / 1000; } function setIsFeeExempt(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isFeeExempt[addresses[i]] = status; } } function setIsTxLimitExempt(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isTxLimitExempt[addresses[i]] = status; } } function setFeeReceivers(address _marketingFeeReceiver, address _liquidityReceiver, address _TeamFeeReceiver) external onlyOwner { marketingFeeReceiver = _marketingFeeReceiver; TeamFeeReceiver = _TeamFeeReceiver; autoLiquidityReceiver = _liquidityReceiver; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountETH, uint256 amountToken); event Reflect(uint256 amountReflected, uint256 newTotalProportion); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"getTotalFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"getTotalFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_liquidityReceiver","type":"address"},{"internalType":"address","name":"_TeamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_reflectionFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_marketingFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_TeamFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"},{"internalType":"uint256","name":"_liquidityFeeSell","type":"uint256"},{"internalType":"uint256","name":"_reflectionFeeSell","type":"uint256"},{"internalType":"uint256","name":"_marketingFeeSell","type":"uint256"},{"internalType":"uint256","name":"_TeamFeeSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amountS","type":"uint256"},{"internalType":"uint256","name":"_amountL","type":"uint256"},{"internalType":"bool","name":"_alternate","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"trasnfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600e60809081526d426162792047726f77205065706560901b60a0526002906200002f908262000579565b506040805180820190915260038082526204247560ec1b60208301529062000058908262000579565b50620000676012600a6200075a565b62000077906305f5e10062000772565b600455606460045460016200008d919062000772565b6200009991906200078c565b60055560646004546001620000af919062000772565b620000bb91906200078c565b6006556004546008556005600c55600a600d556005600e55600a600f55600f601055601460115560006012556000601355601254600e54600c54601054620001049190620007af565b620001109190620007af565b6200011c9190620007af565b601455601354600f54600d54601154620001379190620007af565b620001439190620007af565b6200014f9190620007af565b60155560646016819055601e601a55601b55601d805462ffffff60a01b191661010160a81b1790556004546103e8906200018b90603c62000772565b6200019791906200078c565b601e556103e8600454601e620001ae919062000772565b620001ba91906200078c565b601f55601e54602055348015620001d057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d9190620007c5565b600180546001600160a01b0319166001600160a01b03928316179055601c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003229190620007c5565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a9190620007c5565b601d80546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601c805489168552908352818420600019908190553380865283862091909155948452600b8352818420805460ff1990811660019081179092559154891685528285208054831682179055965488168452818420805482168817905584845281842080548216881790556018805490981684528184208054821688179055848452600a835281842080549091169096179095556017805485168417905560198054851684179055855490931673976b5d2adcd0742b5ba61851717f3ca056aaca251790945560045460078352838520819055925192835292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007f0565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004ff57607f821691505b6020821081036200052057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200057457600081815260208120601f850160051c810160208610156200054f5750805b601f850160051c820191505b8181101562000570578281556001016200055b565b5050505b505050565b81516001600160401b03811115620005955762000595620004d4565b620005ad81620005a68454620004ea565b8462000526565b602080601f831160018114620005e55760008415620005cc5750858301515b600019600386901b1c1916600185901b17855562000570565b600085815260208120601f198616915b828110156200061657888601518255948401946001909101908401620005f5565b5085821015620006355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200069c57816000190482111562000680576200068062000645565b808516156200068e57918102915b93841c939080029062000660565b509250929050565b600082620006b55750600162000754565b81620006c45750600062000754565b8160018114620006dd5760028114620006e85762000708565b600191505062000754565b60ff841115620006fc57620006fc62000645565b50506001821b62000754565b5060208310610133831016604e8410600b84101617156200072d575081810a62000754565b6200073983836200065b565b806000190482111562000750576200075062000645565b0290505b92915050565b60006200076b60ff841683620006a4565b9392505050565b808202811582820484141762000754576200075462000645565b600082620007aa57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000754576200075462000645565b600060208284031215620007d857600080fd5b81516001600160a01b03811681146200076b57600080fd5b6122c180620008006000396000f3fe6080604052600436106102605760003560e01c8063751039fc11610144578063add5df66116100b6578063d7c010321161007a578063d7c01032146106dc578063dd62ed3e146106fc578063f0a9e36514610742578063f2fde38b14610762578063f887ea4014610782578063ffb54a99146107a257600080fd5b8063add5df661461063b578063b0f7ec381461065b578063d51ed1c81461067c578063d543dbeb1461069c578063d78e139d146106bc57600080fd5b80638a8c523c116101085780638a8c523c1461059d5780638da5cb5b146105b25780638f9a55c0146105d057806395d89b41146105e6578063a8aa1b31146105fb578063a9059cbb1461061b57600080fd5b8063751039fc146104fe5780637d1db4a51461051357806382bf293c14610529578063832790fe14610549578063893d20e81461056b57600080fd5b80632d1883e4116101dd5780635074f36f116101a15780635074f36f14610449578063571ac8b0146104695780636308fb98146104895780636b1ebc54146104a957806370a08231146104c9578063715018a6146104e957600080fd5b80632d1883e4146103b65780632d44c931146103cb5780632d838119146103ed578063313ce5671461040d57806345ce53651461042957600080fd5b80631780028711610224578063178002871461033457806318160ddd1461034a5780631d0f2c991461035f57806323b872dd146103815780632b112e49146103a157600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102b75780630cfc15f9146102e75780631161ae391461031457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260205481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102aa6107c3565b60405161028c9190611dad565b3480156102c357600080fd5b506102d76102d2366004611e17565b610855565b604051901515815260200161028c565b3480156102f357600080fd5b50610282610302366004611e41565b60076020526000908152604090205481565b34801561032057600080fd5b506102d761032f366004611e5c565b6108c2565b34801561034057600080fd5b5061028260085481565b34801561035657600080fd5b50600454610282565b34801561036b57600080fd5b5061037f61037a366004611e5c565b6108d6565b005b34801561038d57600080fd5b506102d761039c366004611e7e565b610914565b3480156103ad57600080fd5b506102826109d6565b3480156103c257600080fd5b5061037f610a07565b3480156103d757600080fd5b506102826103e6366004611ec8565b5060155490565b3480156103f957600080fd5b50610282610408366004611ee5565b610a6f565b34801561041957600080fd5b506040516012815260200161028c565b34801561043557600080fd5b50610282610444366004611ee5565b610a92565b34801561045557600080fd5b5061037f610464366004611efe565b610aaf565b34801561047557600080fd5b506102d7610484366004611e41565b610b4e565b34801561049557600080fd5b5061037f6104a4366004611f84565b610b5c565b3480156104b557600080fd5b5061037f6104c4366004611efe565b610bc8565b3480156104d557600080fd5b506102826104e4366004611e41565b610c61565b3480156104f557600080fd5b5061037f610c83565b34801561050a57600080fd5b5061037f610cf7565b34801561051f57600080fd5b5061028260055481565b34801561053557600080fd5b5061037f610544366004611ee5565b610d2e565b34801561055557600080fd5b50610282610564366004611ec8565b5060145490565b34801561057757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161028c565b3480156105a957600080fd5b5061037f610d87565b3480156105be57600080fd5b506000546001600160a01b0316610585565b3480156105dc57600080fd5b5061028260065481565b3480156105f257600080fd5b506102aa610dc6565b34801561060757600080fd5b50601d54610585906001600160a01b031681565b34801561062757600080fd5b506102d7610636366004611e17565b610dd5565b34801561064757600080fd5b5061037f610656366004611fce565b610de2565b34801561066757600080fd5b50601d546102d790600160a81b900460ff1681565b34801561068857600080fd5b50610282610697366004611ee5565b610e70565b3480156106a857600080fd5b5061037f6106b7366004611ee5565b610eaa565b3480156106c857600080fd5b5061037f6106d7366004611ee5565b610f03565b3480156106e857600080fd5b5061037f6106f736600461202d565b610f57565b34801561070857600080fd5b50610282610717366004612070565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561074e57600080fd5b506102d761075d366004611e17565b610fc0565b34801561076e57600080fd5b5061037f61077d366004611e41565b6110c6565b34801561078e57600080fd5b50601c54610585906001600160a01b031681565b3480156107ae57600080fd5b50601d546102d790600160a01b900460ff1681565b6060600280546107d2906120a3565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe906120a3565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108b09086815260200190565b60405180910390a35060015b92915050565b6000826108ce83610e70565b119392505050565b6000546001600160a01b031633146109095760405162461bcd60e51b8152600401610900906120dd565b60405180910390fd5b601a91909155601b55565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109c1576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461099c9184906111b0565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109cc8484846111ea565b90505b9392505050565b6000610a026109e56000610c61565b6109fc6109f361dead610c61565b60045490611580565b90611580565b905090565b6017546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610a59576040519150601f19603f3d011682016040523d82523d6000602084013e610a5e565b606091505b5050905080610a6c57600080fd5b50565b60006108bc600854610a8c600454856115c290919063ffffffff16565b90611644565b60006108bc600454610a8c600854856115c290919063ffffffff16565b6000546001600160a01b03163314610ad95760405162461bcd60e51b8152600401610900906120dd565b60005b82811015610b485781600a6000868685818110610afb57610afb612112565b9050602002016020810190610b109190611e41565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b418161213e565b9050610adc565b50505050565b60006108bc82600019610855565b6000546001600160a01b03163314610b865760405162461bcd60e51b8152600401610900906120dd565b601d8054941515600160a81b0260ff60a81b19921515600160b01b029290921661ffff60a81b199095169490941717909255601e819055601f91909155602055565b6000546001600160a01b03163314610bf25760405162461bcd60e51b8152600401610900906120dd565b60005b82811015610b485781600b6000868685818110610c1457610c14612112565b9050602002016020810190610c299190611e41565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610c5a8161213e565b9050610bf5565b6001600160a01b0381166000908152600760205260408120546108bc90610a6f565b6000546001600160a01b03163314610cad5760405162461bcd60e51b8152600401610900906120dd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d215760405162461bcd60e51b8152600401610900906120dd565b6004546006819055600555565b6000546001600160a01b03163314610d585760405162461bcd60e51b8152600401610900906120dd565b6001811015610d6657600080fd5b6103e881600454610d779190612157565b610d81919061216e565b60065550565b6000546001600160a01b03163314610db15760405162461bcd60e51b8152600401610900906120dd565b601d805460ff60a01b1916600160a01b179055565b6060600380546107d2906120a3565b60006109cf3384846111ea565b6000546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610900906120dd565b600c89905560128890556010879055600e869055610e3686610e3089818d8d611686565b90611686565b601455600d84905560138390556011829055600f819055610e5d81610e3084818888611686565b6015555050506016919091555050505050565b60006108bc610e7d6109d6565b601d54610a8c90610ea390600290610e9d906001600160a01b0316610c61565b906115c2565b85906115c2565b6000546001600160a01b03163314610ed45760405162461bcd60e51b8152600401610900906120dd565b6001811015610ee257600080fd5b6103e881600454610ef39190612157565b610efd919061216e565b60055550565b60175447906001600160a01b03166108fc6064610f208585612157565b610f2a919061216e565b6040518115909202916000818181858888f19350505050158015610f52573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f815760405162461bcd60e51b8152600401610900906120dd565b601880546001600160a01b039485166001600160a01b031991821617909155601980549285169282169290921790915560178054929093169116179055565b336000908152600b602052604081205460ff16610fdc57600080fd5b8160000361104f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611028573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104c9190612190565b91505b60175460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af11580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf91906121a9565b6000546001600160a01b031633146110f05760405162461bcd60e51b8152600401610900906120dd565b6001600160a01b0381166111555760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610900565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600081848411156111d45760405162461bcd60e51b81526004016109009190611dad565b5060006111e184866121c6565b95945050505050565b60215460009060ff161561120a576112038484846116e5565b90506109cf565b601d546001600160a01b0384811691161480159061123357506001600160a01b03831661dead14155b801561124d57506018546001600160a01b03848116911614155b801561127257506001600160a01b0383166000908152600b602052604090205460ff16155b156112d2576006548261128485610c61565b61128e91906121d9565b11156112d25760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610900565b6001600160a01b0384166000908152600b602052604090205460ff16611344576005548211156113445760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e20416d6f756e7420457863656564656400000000006044820152606401610900565b601d546001600160a01b0384811691161480159061136d57506001600160a01b03831661dead14155b801561139257506001600160a01b0383166000908152600b602052604090205460ff16155b156113e757601d54600160a01b900460ff166113e75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610900565b6113ef6117ef565b156113fc576113fc61183f565b600061140783610a92565b905061146f8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b03168152602001908152602001600020546111b09092919063ffffffff16565b6001600160a01b038616600090815260076020908152604080832093909355600a90529081205460ff161580156114bf57506001600160a01b0385166000908152600a602052604090205460ff16155b6114c957816114f4565b601d546114f4906001600160a01b038881169116146114e95760006114ec565b60015b878785611c12565b6001600160a01b03861660009081526007602052604090205490915061151a9082611686565b6001600160a01b0380871660008181526007602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61156384610a6f565b60405190815260200160405180910390a350600195945050505050565b60006109cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b0565b6000826000036115d4575060006108bc565b60006115e08385612157565b9050826115ed858361216e565b146109cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610900565b60006109cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d7f565b60008061169383856121d9565b9050838110156109cf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610900565b6000806116f183610a92565b90506117598160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b03168152602001908152602001600020546111b09092919063ffffffff16565b6001600160a01b0380871660009081526007602052604080822093909355908616815220546117889082611686565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117dc9087815260200190565b60405180910390a3506001949350505050565b601d546000906001600160a01b03163314801590611810575060215460ff16155b80156118255750601d54600160a81b900460ff165b8015610a02575060205461183830610c61565b1015905090565b6021805460ff19166001179055601a54601b5460009161185e916108c2565b61186a57600d5461186d565b60005b9050600061188860135460155461158090919063ffffffff16565b905060006118aa6002610a8c84610a8c876020546115c290919063ffffffff16565b905060006118c38260205461158090919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118fd576118fd612112565b6001600160a01b039283166020918202929092010152600180548351921691839190811061192d5761192d612112565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac947906119779086906000908790309042906004016121ec565b600060405180830381600087803b15801561199157600080fd5b505af11580156119a5573d6000803e3d6000fd5b5050505060006119be824761158090919063ffffffff16565b905060006119d76119d0896002611644565b8890611580565b905060006119f96002610a8c84610a8c600d54886115c290919063ffffffff16565b90506000611a1683610a8c601154876115c290919063ffffffff16565b90506000611a3384610a8c600f54886115c290919063ffffffff16565b6018546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611a8a576040519150601f19603f3d011682016040523d82523d6000602084013e611a8f565b606091505b50506019546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114611ae4576040519150601f19603f3d011682016040523d82523d6000602084013e611ae9565b606091505b50909150508915611bc657601c5460175460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611b64573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b89919061225d565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b601d54600160b01b900460ff1615611bf357601e5460205414611beb57601e54611bf7565b601f54611bf7565b6020545b60205550506021805460ff1916905550505050505050505050565b600080600186151514611c3b57601654601554611c369190610a8c905b86906115c2565b611c4f565b601654601454611c4f9190610a8c90611c2f565b90506000600187151514611c7d57611c78601554610a8c601354856115c290919063ffffffff16565b611c98565b611c98601454610a8c601254856115c290919063ffffffff16565b600854909150611ca89082611580565b6008556000611cb78383611580565b30600090815260076020526040902054909150611cd49082611686565b306000818152600760205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d1b84610a6f565b60405190815260200160405180910390a36008546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a1611d738584611580565b98975050505050505050565b60008183611da05760405162461bcd60e51b81526004016109009190611dad565b5060006111e1848661216e565b600060208083528351808285015260005b81811015611dda57858101830151858201604001528201611dbe565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1257600080fd5b919050565b60008060408385031215611e2a57600080fd5b611e3383611dfb565b946020939093013593505050565b600060208284031215611e5357600080fd5b6109cf82611dfb565b60008060408385031215611e6f57600080fd5b50508035926020909101359150565b600080600060608486031215611e9357600080fd5b611e9c84611dfb565b9250611eaa60208501611dfb565b9150604084013590509250925092565b8015158114610a6c57600080fd5b600060208284031215611eda57600080fd5b81356109cf81611eba565b600060208284031215611ef757600080fd5b5035919050565b600080600060408486031215611f1357600080fd5b833567ffffffffffffffff80821115611f2b57600080fd5b818601915086601f830112611f3f57600080fd5b813581811115611f4e57600080fd5b8760208260051b8501011115611f6357600080fd5b60209283019550935050840135611f7981611eba565b809150509250925092565b60008060008060808587031215611f9a57600080fd5b8435611fa581611eba565b935060208501359250604085013591506060850135611fc381611eba565b939692955090935050565b60008060008060008060008060006101208a8c031215611fed57600080fd5b505087359960208901359950604089013598606081013598506080810135975060a0810135965060c0810135955060e08101359450610100013592509050565b60008060006060848603121561204257600080fd5b61204b84611dfb565b925061205960208501611dfb565b915061206760408501611dfb565b90509250925092565b6000806040838503121561208357600080fd5b61208c83611dfb565b915061209a60208401611dfb565b90509250929050565b600181811c908216806120b757607f821691505b6020821081036120d757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161215057612150612128565b5060010190565b80820281158282048414176108bc576108bc612128565b60008261218b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156121a257600080fd5b5051919050565b6000602082840312156121bb57600080fd5b81516109cf81611eba565b818103818111156108bc576108bc612128565b808201808211156108bc576108bc612128565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561223c5784516001600160a01b031683529383019391830191600101612217565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561227257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220447dda13c083e7a89cb60f126ce2470522641312cc891fe5c6fee2f46f6ca9c564736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102605760003560e01c8063751039fc11610144578063add5df66116100b6578063d7c010321161007a578063d7c01032146106dc578063dd62ed3e146106fc578063f0a9e36514610742578063f2fde38b14610762578063f887ea4014610782578063ffb54a99146107a257600080fd5b8063add5df661461063b578063b0f7ec381461065b578063d51ed1c81461067c578063d543dbeb1461069c578063d78e139d146106bc57600080fd5b80638a8c523c116101085780638a8c523c1461059d5780638da5cb5b146105b25780638f9a55c0146105d057806395d89b41146105e6578063a8aa1b31146105fb578063a9059cbb1461061b57600080fd5b8063751039fc146104fe5780637d1db4a51461051357806382bf293c14610529578063832790fe14610549578063893d20e81461056b57600080fd5b80632d1883e4116101dd5780635074f36f116101a15780635074f36f14610449578063571ac8b0146104695780636308fb98146104895780636b1ebc54146104a957806370a08231146104c9578063715018a6146104e957600080fd5b80632d1883e4146103b65780632d44c931146103cb5780632d838119146103ed578063313ce5671461040d57806345ce53651461042957600080fd5b80631780028711610224578063178002871461033457806318160ddd1461034a5780631d0f2c991461035f57806323b872dd146103815780632b112e49146103a157600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102b75780630cfc15f9146102e75780631161ae391461031457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260205481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102aa6107c3565b60405161028c9190611dad565b3480156102c357600080fd5b506102d76102d2366004611e17565b610855565b604051901515815260200161028c565b3480156102f357600080fd5b50610282610302366004611e41565b60076020526000908152604090205481565b34801561032057600080fd5b506102d761032f366004611e5c565b6108c2565b34801561034057600080fd5b5061028260085481565b34801561035657600080fd5b50600454610282565b34801561036b57600080fd5b5061037f61037a366004611e5c565b6108d6565b005b34801561038d57600080fd5b506102d761039c366004611e7e565b610914565b3480156103ad57600080fd5b506102826109d6565b3480156103c257600080fd5b5061037f610a07565b3480156103d757600080fd5b506102826103e6366004611ec8565b5060155490565b3480156103f957600080fd5b50610282610408366004611ee5565b610a6f565b34801561041957600080fd5b506040516012815260200161028c565b34801561043557600080fd5b50610282610444366004611ee5565b610a92565b34801561045557600080fd5b5061037f610464366004611efe565b610aaf565b34801561047557600080fd5b506102d7610484366004611e41565b610b4e565b34801561049557600080fd5b5061037f6104a4366004611f84565b610b5c565b3480156104b557600080fd5b5061037f6104c4366004611efe565b610bc8565b3480156104d557600080fd5b506102826104e4366004611e41565b610c61565b3480156104f557600080fd5b5061037f610c83565b34801561050a57600080fd5b5061037f610cf7565b34801561051f57600080fd5b5061028260055481565b34801561053557600080fd5b5061037f610544366004611ee5565b610d2e565b34801561055557600080fd5b50610282610564366004611ec8565b5060145490565b34801561057757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161028c565b3480156105a957600080fd5b5061037f610d87565b3480156105be57600080fd5b506000546001600160a01b0316610585565b3480156105dc57600080fd5b5061028260065481565b3480156105f257600080fd5b506102aa610dc6565b34801561060757600080fd5b50601d54610585906001600160a01b031681565b34801561062757600080fd5b506102d7610636366004611e17565b610dd5565b34801561064757600080fd5b5061037f610656366004611fce565b610de2565b34801561066757600080fd5b50601d546102d790600160a81b900460ff1681565b34801561068857600080fd5b50610282610697366004611ee5565b610e70565b3480156106a857600080fd5b5061037f6106b7366004611ee5565b610eaa565b3480156106c857600080fd5b5061037f6106d7366004611ee5565b610f03565b3480156106e857600080fd5b5061037f6106f736600461202d565b610f57565b34801561070857600080fd5b50610282610717366004612070565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561074e57600080fd5b506102d761075d366004611e17565b610fc0565b34801561076e57600080fd5b5061037f61077d366004611e41565b6110c6565b34801561078e57600080fd5b50601c54610585906001600160a01b031681565b3480156107ae57600080fd5b50601d546102d790600160a01b900460ff1681565b6060600280546107d2906120a3565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe906120a3565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108b09086815260200190565b60405180910390a35060015b92915050565b6000826108ce83610e70565b119392505050565b6000546001600160a01b031633146109095760405162461bcd60e51b8152600401610900906120dd565b60405180910390fd5b601a91909155601b55565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109c1576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461099c9184906111b0565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109cc8484846111ea565b90505b9392505050565b6000610a026109e56000610c61565b6109fc6109f361dead610c61565b60045490611580565b90611580565b905090565b6017546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610a59576040519150601f19603f3d011682016040523d82523d6000602084013e610a5e565b606091505b5050905080610a6c57600080fd5b50565b60006108bc600854610a8c600454856115c290919063ffffffff16565b90611644565b60006108bc600454610a8c600854856115c290919063ffffffff16565b6000546001600160a01b03163314610ad95760405162461bcd60e51b8152600401610900906120dd565b60005b82811015610b485781600a6000868685818110610afb57610afb612112565b9050602002016020810190610b109190611e41565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b418161213e565b9050610adc565b50505050565b60006108bc82600019610855565b6000546001600160a01b03163314610b865760405162461bcd60e51b8152600401610900906120dd565b601d8054941515600160a81b0260ff60a81b19921515600160b01b029290921661ffff60a81b199095169490941717909255601e819055601f91909155602055565b6000546001600160a01b03163314610bf25760405162461bcd60e51b8152600401610900906120dd565b60005b82811015610b485781600b6000868685818110610c1457610c14612112565b9050602002016020810190610c299190611e41565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610c5a8161213e565b9050610bf5565b6001600160a01b0381166000908152600760205260408120546108bc90610a6f565b6000546001600160a01b03163314610cad5760405162461bcd60e51b8152600401610900906120dd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d215760405162461bcd60e51b8152600401610900906120dd565b6004546006819055600555565b6000546001600160a01b03163314610d585760405162461bcd60e51b8152600401610900906120dd565b6001811015610d6657600080fd5b6103e881600454610d779190612157565b610d81919061216e565b60065550565b6000546001600160a01b03163314610db15760405162461bcd60e51b8152600401610900906120dd565b601d805460ff60a01b1916600160a01b179055565b6060600380546107d2906120a3565b60006109cf3384846111ea565b6000546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610900906120dd565b600c89905560128890556010879055600e869055610e3686610e3089818d8d611686565b90611686565b601455600d84905560138390556011829055600f819055610e5d81610e3084818888611686565b6015555050506016919091555050505050565b60006108bc610e7d6109d6565b601d54610a8c90610ea390600290610e9d906001600160a01b0316610c61565b906115c2565b85906115c2565b6000546001600160a01b03163314610ed45760405162461bcd60e51b8152600401610900906120dd565b6001811015610ee257600080fd5b6103e881600454610ef39190612157565b610efd919061216e565b60055550565b60175447906001600160a01b03166108fc6064610f208585612157565b610f2a919061216e565b6040518115909202916000818181858888f19350505050158015610f52573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f815760405162461bcd60e51b8152600401610900906120dd565b601880546001600160a01b039485166001600160a01b031991821617909155601980549285169282169290921790915560178054929093169116179055565b336000908152600b602052604081205460ff16610fdc57600080fd5b8160000361104f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611028573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104c9190612190565b91505b60175460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af11580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf91906121a9565b6000546001600160a01b031633146110f05760405162461bcd60e51b8152600401610900906120dd565b6001600160a01b0381166111555760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610900565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600081848411156111d45760405162461bcd60e51b81526004016109009190611dad565b5060006111e184866121c6565b95945050505050565b60215460009060ff161561120a576112038484846116e5565b90506109cf565b601d546001600160a01b0384811691161480159061123357506001600160a01b03831661dead14155b801561124d57506018546001600160a01b03848116911614155b801561127257506001600160a01b0383166000908152600b602052604090205460ff16155b156112d2576006548261128485610c61565b61128e91906121d9565b11156112d25760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610900565b6001600160a01b0384166000908152600b602052604090205460ff16611344576005548211156113445760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e20416d6f756e7420457863656564656400000000006044820152606401610900565b601d546001600160a01b0384811691161480159061136d57506001600160a01b03831661dead14155b801561139257506001600160a01b0383166000908152600b602052604090205460ff16155b156113e757601d54600160a01b900460ff166113e75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610900565b6113ef6117ef565b156113fc576113fc61183f565b600061140783610a92565b905061146f8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b03168152602001908152602001600020546111b09092919063ffffffff16565b6001600160a01b038616600090815260076020908152604080832093909355600a90529081205460ff161580156114bf57506001600160a01b0385166000908152600a602052604090205460ff16155b6114c957816114f4565b601d546114f4906001600160a01b038881169116146114e95760006114ec565b60015b878785611c12565b6001600160a01b03861660009081526007602052604090205490915061151a9082611686565b6001600160a01b0380871660008181526007602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61156384610a6f565b60405190815260200160405180910390a350600195945050505050565b60006109cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b0565b6000826000036115d4575060006108bc565b60006115e08385612157565b9050826115ed858361216e565b146109cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610900565b60006109cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d7f565b60008061169383856121d9565b9050838110156109cf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610900565b6000806116f183610a92565b90506117598160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b03168152602001908152602001600020546111b09092919063ffffffff16565b6001600160a01b0380871660009081526007602052604080822093909355908616815220546117889082611686565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117dc9087815260200190565b60405180910390a3506001949350505050565b601d546000906001600160a01b03163314801590611810575060215460ff16155b80156118255750601d54600160a81b900460ff165b8015610a02575060205461183830610c61565b1015905090565b6021805460ff19166001179055601a54601b5460009161185e916108c2565b61186a57600d5461186d565b60005b9050600061188860135460155461158090919063ffffffff16565b905060006118aa6002610a8c84610a8c876020546115c290919063ffffffff16565b905060006118c38260205461158090919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118fd576118fd612112565b6001600160a01b039283166020918202929092010152600180548351921691839190811061192d5761192d612112565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac947906119779086906000908790309042906004016121ec565b600060405180830381600087803b15801561199157600080fd5b505af11580156119a5573d6000803e3d6000fd5b5050505060006119be824761158090919063ffffffff16565b905060006119d76119d0896002611644565b8890611580565b905060006119f96002610a8c84610a8c600d54886115c290919063ffffffff16565b90506000611a1683610a8c601154876115c290919063ffffffff16565b90506000611a3384610a8c600f54886115c290919063ffffffff16565b6018546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611a8a576040519150601f19603f3d011682016040523d82523d6000602084013e611a8f565b606091505b50506019546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114611ae4576040519150601f19603f3d011682016040523d82523d6000602084013e611ae9565b606091505b50909150508915611bc657601c5460175460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611b64573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b89919061225d565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b601d54600160b01b900460ff1615611bf357601e5460205414611beb57601e54611bf7565b601f54611bf7565b6020545b60205550506021805460ff1916905550505050505050505050565b600080600186151514611c3b57601654601554611c369190610a8c905b86906115c2565b611c4f565b601654601454611c4f9190610a8c90611c2f565b90506000600187151514611c7d57611c78601554610a8c601354856115c290919063ffffffff16565b611c98565b611c98601454610a8c601254856115c290919063ffffffff16565b600854909150611ca89082611580565b6008556000611cb78383611580565b30600090815260076020526040902054909150611cd49082611686565b306000818152600760205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d1b84610a6f565b60405190815260200160405180910390a36008546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a1611d738584611580565b98975050505050505050565b60008183611da05760405162461bcd60e51b81526004016109009190611dad565b5060006111e1848661216e565b600060208083528351808285015260005b81811015611dda57858101830151858201604001528201611dbe565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1257600080fd5b919050565b60008060408385031215611e2a57600080fd5b611e3383611dfb565b946020939093013593505050565b600060208284031215611e5357600080fd5b6109cf82611dfb565b60008060408385031215611e6f57600080fd5b50508035926020909101359150565b600080600060608486031215611e9357600080fd5b611e9c84611dfb565b9250611eaa60208501611dfb565b9150604084013590509250925092565b8015158114610a6c57600080fd5b600060208284031215611eda57600080fd5b81356109cf81611eba565b600060208284031215611ef757600080fd5b5035919050565b600080600060408486031215611f1357600080fd5b833567ffffffffffffffff80821115611f2b57600080fd5b818601915086601f830112611f3f57600080fd5b813581811115611f4e57600080fd5b8760208260051b8501011115611f6357600080fd5b60209283019550935050840135611f7981611eba565b809150509250925092565b60008060008060808587031215611f9a57600080fd5b8435611fa581611eba565b935060208501359250604085013591506060850135611fc381611eba565b939692955090935050565b60008060008060008060008060006101208a8c031215611fed57600080fd5b505087359960208901359950604089013598606081013598506080810135975060a0810135965060c0810135955060e08101359450610100013592509050565b60008060006060848603121561204257600080fd5b61204b84611dfb565b925061205960208501611dfb565b915061206760408501611dfb565b90509250925092565b6000806040838503121561208357600080fd5b61208c83611dfb565b915061209a60208401611dfb565b90509250929050565b600181811c908216806120b757607f821691505b6020821081036120d757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161215057612150612128565b5060010190565b80820281158282048414176108bc576108bc612128565b60008261218b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156121a257600080fd5b5051919050565b6000602082840312156121bb57600080fd5b81516109cf81611eba565b818103818111156108bc576108bc612128565b808201808211156108bc576108bc612128565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561223c5784516001600160a01b031683529383019391830191600101612217565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561227257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220447dda13c083e7a89cb60f126ce2470522641312cc891fe5c6fee2f46f6ca9c564736f6c63430008130033
Deployed Bytecode Sourcemap
8027:14592:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10011:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10011:49:0;;;;;;;;11270:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11788:216::-;;;;;;;;;;-1:-1:-1;11788:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;11788:216:0;1186:187:1;8708:43:0;;;;;;;;;;-1:-1:-1;8708:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;22321:156;;;;;;;;;;-1:-1:-1;22321:156:0;;;;;:::i;:::-;;:::i;8758:46::-;;;;;;;;;;;;;;;;11099:88;;;;;;;;;;-1:-1:-1;11172:12:0;;11099:88;;17036:177;;;;;;;;;;-1:-1:-1;17036:177:0;;;;;:::i;:::-;;:::i;:::-;;12306:370;;;;;;;;;;-1:-1:-1;12306:370:0;;;;;:::i;:::-;;:::i;21994:142::-;;;;;;;;;;;;;:::i;16290:183::-;;;;;;;;;;;;;:::i;15127:99::-;;;;;;;;;;-1:-1:-1;15127:99:0;;;;;:::i;:::-;-1:-1:-1;15206:12:0;;;15127:99;14146:155;;;;;;;;;;-1:-1:-1;14146:155:0;;;;;:::i;:::-;;:::i;11193:71::-;;;;;;;;;;-1:-1:-1;11193:71:0;;8393:2;2851:36:1;;2839:2;2824:18;11193:71:0;2709:184:1;13992:146:0;;;;;;;;;;-1:-1:-1;13992:146:0;;;;;:::i;:::-;;:::i;21250:206::-;;;;;;;;;;-1:-1:-1;21250:206:0;;;;;:::i;:::-;;:::i;12012:122::-;;;;;;;;;;-1:-1:-1;12012:122:0;;;;;:::i;:::-;;:::i;19499:321::-;;;;;;;;;;-1:-1:-1;19499:321:0;;;;;:::i;:::-;;:::i;21464:215::-;;;;;;;;;;-1:-1:-1;21464:215:0;;;;;:::i;:::-;;:::i;11505:124::-;;;;;;;;;;-1:-1:-1;11505:124:0;;;;;:::i;:::-;;:::i;7473:148::-;;;;;;;;;;;;;:::i;17223:132::-;;;;;;;;;;;;;:::i;8459:54::-;;;;;;;;;;;;;;;;20853:188;;;;;;;;;;-1:-1:-1;20853:188:0;;;;;:::i;:::-;;:::i;15022:97::-;;;;;;;;;;-1:-1:-1;15022:97:0;;;;;:::i;:::-;-1:-1:-1;15100:11:0;;;15022:97;11428:71;;;;;;;;;;-1:-1:-1;11471:7:0;6897:6;-1:-1:-1;;;;;6897:6:0;11428:71;;;-1:-1:-1;;;;;4335:32:1;;;4317:51;;4305:2;4290:18;11428:71:0;4171:203:1;19861:85:0;;;;;;;;;;;;;:::i;6832:79::-;;;;;;;;;;-1:-1:-1;6870:7:0;6897:6;-1:-1:-1;;;;;6897:6:0;6832:79;;8520:56;;;;;;;;;;;;;;;;11347:75;;;;;;;;;;;;;:::i;9745:19::-;;;;;;;;;;-1:-1:-1;9745:19:0;;;;-1:-1:-1;;;;;9745:19:0;;;12142:156;;;;;;;;;;-1:-1:-1;12142:156:0;;;;;:::i;:::-;;:::i;19954:891::-;;;;;;;;;;-1:-1:-1;19954:891:0;;;;;:::i;:::-;;:::i;9817:31::-;;;;;;;;;;-1:-1:-1;9817:31:0;;;;-1:-1:-1;;;9817:31:0;;;;;;22144:169;;;;;;;;;;-1:-1:-1;22144:169:0;;;;;:::i;:::-;;:::i;21049:185::-;;;;;;;;;;-1:-1:-1;21049:185:0;;;;;:::i;:::-;;:::i;16482:204::-;;;;;;;;;;-1:-1:-1;16482:204:0;;;;;:::i;:::-;;:::i;21687:299::-;;;;;;;;;;-1:-1:-1;21687:299:0;;;;;:::i;:::-;;:::i;11635:133::-;;;;;;;;;;-1:-1:-1;11635:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11737:19:0;;;11719:7;11737:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11635:133;16695:325;;;;;;;;;;-1:-1:-1;16695:325:0;;;;;:::i;:::-;;:::i;7776:244::-;;;;;;;;;;-1:-1:-1;7776:244:0;;;;;:::i;:::-;;:::i;9714:24::-;;;;;;;;;;-1:-1:-1;9714:24:0;;;;-1:-1:-1;;;;;9714:24:0;;;9773:31;;;;;;;;;;-1:-1:-1;9773:31:0;;;;-1:-1:-1;;;9773:31:0;;;;;;11270:71;11309:13;11333:5;11326:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11270:71;:::o;11788:216::-;11892:10;11863:4;11880:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11880:32:0;;;;;;;;;;:41;;;11937:37;11863:4;;11880:32;;11937:37;;;;11915:6;160:25:1;;148:2;133:18;;14:177;11937:37:0;;;;;;;;-1:-1:-1;11992:4:0;11788:216;;;;;:::o;22321:156::-;22401:4;22457:6;22425:29;22445:8;22425:19;:29::i;:::-;:38;;22321:156;-1:-1:-1;;;22321:156:0:o;17036:177::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;;;;;;;;;17124:15:::1;:25:::0;;;;17160:26:::1;:41:::0;17036:177::o;12306:370::-;-1:-1:-1;;;;;12426:19:0;;12406:4;12426:19;;;:11;:19;;;;;;;;12446:10;12426:31;;;;;;;;-1:-1:-1;;12426:52:0;12423:186;;12528:69;;;;;;;;;;;-1:-1:-1;;;12528:69:0;;;;;;;;-1:-1:-1;;;;;12528:19:0;;-1:-1:-1;12528:19:0;;;:11;:19;;;;;12548:10;12528:31;;;;;;;;;;:69;;12564:6;;12528:35;:69::i;:::-;-1:-1:-1;;;;;12494:19:0;;;;;;:11;:19;;;;;;;;12514:10;12494:31;;;;;;;:103;12423:186;12628:40;12642:6;12650:9;12661:6;12628:13;:40::i;:::-;12621:47;;12306:370;;;;;;:::o;21994:142::-;22047:7;22074:54;22112:15;8248:42;22112:9;:15::i;:::-;22074:33;22091:15;8166:42;22091:9;:15::i;:::-;22074:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;22067:61;;21994:142;:::o;16290:183::-;16356:21;;16348:81;;16331:12;;-1:-1:-1;;;;;16356:21:0;;16419:5;;16391:21;;16331:12;16348:81;16331:12;16348:81;16391:21;16356;16419:5;16348:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16330:99;;;16448:7;16440:16;;;;;;16319:154;16290:183::o;14146:155::-;14216:7;14243:50;14276:16;;14243:28;14258:12;;14243:10;:14;;:28;;;;:::i;:::-;:32;;:50::i;13992:146::-;14057:7;14084:46;14117:12;;14084:28;14095:16;;14084:6;:10;;:28;;;;:::i;21250:206::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;21350:9:::1;21345:104;21361:20:::0;;::::1;21345:104;;;21431:6;21403:11;:25;21415:9;;21425:1;21415:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21403:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21403:25:0;:34;;-1:-1:-1;;21403:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21383:3:::1;::::0;::::1;:::i;:::-;;;21345:104;;;;21250:206:::0;;;:::o;12012:122::-;12067:4;12091:35;12099:7;-1:-1:-1;;12091:7:0;:35::i;19499:321::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;19626:14:::1;:27:::0;;19664:23;::::1;;-1:-1:-1::0;;;19664:23:0::1;-1:-1:-1::0;;;;19626:27:0;::::1;;-1:-1:-1::0;;;19626:27:0::1;19664:23:::0;;;;-1:-1:-1;;;;19664:23:0;;;;;;;::::1;::::0;;;19698:18:::1;:29:::0;;;19738:18:::1;:29:::0;;;;19778:13:::1;:34:::0;19499:321::o;21464:215::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;21568:9:::1;21563:108;21579:20:::0;;::::1;21563:108;;;21653:6;21621:15;:29;21637:9;;21647:1;21637:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21621:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21621:29:0;:38;;-1:-1:-1;;21621:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21601:3:::1;::::0;::::1;:::i;:::-;;;21563:108;;11505:124:::0;-1:-1:-1;;;;;11609:16:0;;11571:7;11609:16;;;:7;:16;;;;;;11589:37;;:19;:37::i;7473:148::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;7580:1:::1;7564:6:::0;;7543:40:::1;::::0;-1:-1:-1;;;;;7564:6:0;;::::1;::::0;7543:40:::1;::::0;7580:1;;7543:40:::1;7611:1;7594:19:::0;;-1:-1:-1;;;;;;7594:19:0::1;::::0;;7473:148::o;17223:132::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;17295:12:::1;::::0;17278:14:::1;:29:::0;;;17318:12:::1;:27:::0;17223:132::o;20853:188::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;20964:1:::1;20946:14;:19;;20938:28;;;::::0;::::1;;21029:4;21010:14;20995:12;;:29;;;;:::i;:::-;20994:39;;;;:::i;:::-;20977:14;:56:::0;-1:-1:-1;20853:188:0:o;19861:85::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;19914:11:::1;:18:::0;;-1:-1:-1;;;;19914:18:0::1;-1:-1:-1::0;;;19914:18:0::1;::::0;;19861:85::o;11347:75::-;11388:13;11412:7;11405:14;;;;;:::i;12142:156::-;12222:4;12246:44;12260:10;12272:9;12283:6;12246:13;:44::i;19954:891::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;20235:15:::1;:34:::0;;;20280:16:::1;:36:::0;;;20327:15:::1;:34:::0;;;20372:10:::1;:24:::0;;;20421:74:::1;20385:11:::0;20421:58:::1;20345:16:::0;20421:58;20253:16;20299:17;20421:19:::1;:37::i;:::-;:41:::0;::::1;:58::i;:74::-;20407:11;:88:::0;20508:16:::1;:36:::0;;;20555:17:::1;:38:::0;;;20604:16:::1;:36:::0;;;20651:11:::1;:26:::0;;;20703:78:::1;20665:12:::0;20703:61:::1;20623:17:::0;20703:61;20527:17;20575:18;20703:20:::1;:39::i;:78::-;20688:12;:93:::0;-1:-1:-1;;;20794:14:0::1;:32:::0;;;;-1:-1:-1;;;;;19954:891:0:o;22144:169::-;22212:7;22239:64;22280:22;:20;:22::i;:::-;22262:4;;22239:36;;22252:22;;22272:1;;22252:15;;-1:-1:-1;;;;;22262:4:0;22252:9;:15::i;:::-;:19;;:22::i;:::-;22239:8;;:12;:36::i;21049:185::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;21158:1:::1;21139:15;:20;;21131:29;;;::::0;::::1;;21222:4;21202:15;21187:12;;:30;;;;:::i;:::-;21186:40;;;;:::i;:::-;21171:12;:55:::0;-1:-1:-1;21049:185:0:o;16482:204::-;16611:21;;16571;;-1:-1:-1;;;;;16611:21:0;16603:75;16674:3;16643:28;16655:16;16571:21;16643:28;:::i;:::-;:34;;;;:::i;:::-;16603:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16540:146;16482:204;:::o;21687:299::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;21836:20:::1;:44:::0;;-1:-1:-1;;;;;21836:44:0;;::::1;-1:-1:-1::0;;;;;;21836:44:0;;::::1;;::::0;;;21891:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21936:21:::1;:42:::0;;;;;::::1;::::0;::::1;;::::0;;21687:299::o;16695:325::-;16819:10;16778:4;16803:27;;;:15;:27;;;;;;;;16795:36;;;;;;16842:6;16852:1;16842:11;16839:96;;16878:45;;-1:-1:-1;;;16878:45:0;;16917:4;16878:45;;;4317:51:1;-1:-1:-1;;;;;16878:30:0;;;;;4290:18:1;;16878:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16869:54;;16839:96;16982:21;;16952:60;;-1:-1:-1;;;16952:60:0;;-1:-1:-1;;;;;16982:21:0;;;16952:60;;;8062:51:1;8129:18;;;8122:34;;;16952:29:0;;;;;;8035:18:1;;16952:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7776:244::-;7044:6;;-1:-1:-1;;;;;7044:6:0;5263:10;7044:22;7036:67;;;;-1:-1:-1;;;7036:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7865:22:0;::::1;7857:73;;;::::0;-1:-1:-1;;;7857:73:0;;8619:2:1;7857:73:0::1;::::0;::::1;8601:21:1::0;8658:2;8638:18;;;8631:30;8697:34;8677:18;;;8670:62;-1:-1:-1;;;8748:18:1;;;8741:36;8794:19;;7857:73:0::1;8417:402:1::0;7857:73:0::1;7967:6;::::0;;7946:38:::1;::::0;-1:-1:-1;;;;;7946:38:0;;::::1;::::0;7967:6;::::1;::::0;7946:38:::1;::::0;::::1;7995:6;:17:::0;;-1:-1:-1;;;;;;7995:17:0::1;-1:-1:-1::0;;;;;7995:17:0;;;::::1;::::0;;;::::1;::::0;;7776:244::o;4198:192::-;4284:7;4320:12;4312:6;;;;4304:29;;;;-1:-1:-1;;;4304:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4344:9:0;4356:5;4360:1;4356;:5;:::i;:::-;4344:17;4198:192;-1:-1:-1;;;;;4198:192:0:o;12684:1300::-;12796:6;;12776:4;;12796:6;;12793:63;;;12812:41;12827:6;12835:9;12846:6;12812:14;:41::i;:::-;12805:48;;;;12793:63;12885:4;;-1:-1:-1;;;;;12872:17:0;;;12885:4;;12872:17;;;;:38;;-1:-1:-1;;;;;;12893:17:0;;8166:42;12893:17;;12872:38;:75;;;;-1:-1:-1;12927:20:0;;-1:-1:-1;;;;;12914:33:0;;;12927:20;;12914:33;;12872:75;:106;;;;-1:-1:-1;;;;;;12952:26:0;;;;;;:15;:26;;;;;;;;12951:27;12872:106;12868:220;;;13036:14;;13026:6;13003:20;13013:9;13003;:20::i;:::-;:29;;;;:::i;:::-;:47;;12995:79;;;;-1:-1:-1;;;12995:79:0;;9289:2:1;12995:79:0;;;9271:21:1;9328:2;9308:18;;;9301:30;-1:-1:-1;;;9347:18:1;;;9340:49;9406:18;;12995:79:0;9087:343:1;12995:79:0;-1:-1:-1;;;;;13104:23:0;;;;;;:15;:23;;;;;;;;13100:118;;13162:12;;13152:6;:22;;13144:62;;;;-1:-1:-1;;;13144:62:0;;9637:2:1;13144:62:0;;;9619:21:1;9676:2;9656:18;;;9649:30;9715:29;9695:18;;;9688:57;9762:18;;13144:62:0;9435:351:1;13144:62:0;13252:4;;-1:-1:-1;;;;;13239:17:0;;;13252:4;;13239:17;;;;:38;;-1:-1:-1;;;;;;13260:17:0;;8166:42;13260:17;;13239:38;:69;;;;-1:-1:-1;;;;;;13282:26:0;;;;;;:15;:26;;;;;;;;13281:27;13239:69;13235:155;;;13333:11;;-1:-1:-1;;;13333:11:0;;;;13325:43;;;;-1:-1:-1;;;13325:43:0;;9993:2:1;13325:43:0;;;9975:21:1;10032:2;10012:18;;;10005:30;-1:-1:-1;;;10051:18:1;;;10044:50;10111:18;;13325:43:0;9791:344:1;13325:43:0;13405:16;:14;:16::i;:::-;13402:35;;;13424:10;:8;:10::i;:::-;13449:24;13476:26;13495:6;13476:18;:26::i;:::-;13449:53;;13533:61;13553:16;13533:61;;;;;;;;;;;;;-1:-1:-1;;;13533:61:0;;;:7;:15;13541:6;-1:-1:-1;;;;;13533:15:0;-1:-1:-1;;;;;13533:15:0;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;13515:15:0;;;;;;:7;:15;;;;;;;;:79;;;;14810:11;:19;;;;;;;;14809:20;13636:49;;;;-1:-1:-1;;;;;;14810:19:0;;14785:4;14810:19;;;:11;:19;;;;;;;;14809:20;13661:24;13636:158;;13778:16;13636:158;;;13719:4;;13688:87;;-1:-1:-1;;;;;13709:14:0;;;13719:4;;13709:14;:28;;13732:5;13709:28;;;13725:4;13709:28;13739:6;13747:9;13758:16;13688:20;:87::i;:::-;-1:-1:-1;;;;;13826:18:0;;;;;;:7;:18;;;;;;13607:187;;-1:-1:-1;13826:42:0;;13607:187;13826:22;:42::i;:::-;-1:-1:-1;;;;;13805:18:0;;;;;;;:7;:18;;;;;:63;;;;13886:68;;;13914:39;13934:18;13914:19;:39::i;:::-;13886:68;;160:25:1;;;148:2;133:18;13886:68:0;;;;;;;-1:-1:-1;13972:4:0;;12684:1300;-1:-1:-1;;;;;12684:1300:0:o;4056:136::-;4114:7;4141:43;4145:1;4148;4141:43;;;;;;;;;;;;;;;;;:3;:43::i;4396:250::-;4454:7;4478:1;4483;4478:6;4474:47;;-1:-1:-1;4508:1:0;4501:8;;4474:47;4533:9;4545:5;4549:1;4545;:5;:::i;:::-;4533:17;-1:-1:-1;4578:1:0;4569:5;4573:1;4533:17;4569:5;:::i;:::-;:10;4561:56;;;;-1:-1:-1;;;4561:56:0;;10342:2:1;4561:56:0;;;10324:21:1;10381:2;10361:18;;;10354:30;10420:34;10400:18;;;10393:62;-1:-1:-1;;;10471:18:1;;;10464:31;10512:19;;4561:56:0;10140:397:1;4652:132:0;4710:7;4737:39;4741:1;4744;4737:39;;;;;;;;;;;;;;;;;:3;:39::i;3869:181::-;3927:7;;3959:5;3963:1;3959;:5;:::i;:::-;3947:17;;3988:1;3983;:6;;3975:46;;;;-1:-1:-1;;;3975:46:0;;10744:2:1;3975:46:0;;;10726:21:1;10783:2;10763:18;;;10756:30;10822:29;10802:18;;;10795:57;10869:18;;3975:46:0;10542:351:1;14309:406:0;14402:4;14419:24;14446:26;14465:6;14446:18;:26::i;:::-;14419:53;;14501:61;14521:16;14501:61;;;;;;;;;;;;;-1:-1:-1;;;14501:61:0;;;:7;:15;14509:6;-1:-1:-1;;;;;14501:15:0;-1:-1:-1;;;;;14501:15:0;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;14483:15:0;;;;;;;:7;:15;;;;;;:79;;;;14594:18;;;;;;;:40;;14617:16;14594:22;:40::i;:::-;-1:-1:-1;;;;;14573:18:0;;;;;;;:7;:18;;;;;;;:61;;;;14650:35;;;;;;;;;;14678:6;160:25:1;;148:2;133:18;;14:177;14650:35:0;;;;;;;;-1:-1:-1;14703:4:0;;14309:406;-1:-1:-1;;;;14309:406:0:o;17363:198::-;17450:4;;17412;;-1:-1:-1;;;;;17450:4:0;17436:10;:18;;;;:38;;-1:-1:-1;17468:6:0;;;;17467:7;17436:38;:63;;;;-1:-1:-1;17487:12:0;;-1:-1:-1;;;17487:12:0;;;;17436:63;:117;;;;;17540:13;;17512:24;17530:4;17512:9;:24::i;:::-;:41;;17429:124;;17363:198;:::o;17569:1922::-;10107:6;:13;;-1:-1:-1;;10107:13:0;10116:4;10107:13;;;17664:15:::1;::::0;17681:26:::1;::::0;10107:6;;17648:60:::1;::::0;:15:::1;:60::i;:::-;:83;;17715:16;;17648:83;;;17711:1;17648:83;17618:113;;17742:17;17762:35;17779:17;;17762:12;;:16;;:35;;;;:::i;:::-;17742:55;;17808:23;17834:60;17892:1;17834:53;17877:9;17834:38;17852:19;17834:13;;:17;;:38;;;;:::i;:60::-;17808:86;;17905:20;17928:34;17946:15;17928:13;;:17;;:34;;;;:::i;:::-;17999:16;::::0;;18013:1:::1;17999:16:::0;;;;;::::1;::::0;;17905:57;;-1:-1:-1;17975:21:0::1;::::0;17999:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17999:16:0::1;17975:40;;18044:4;18026;18031:1;18026:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18026:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;18070:4:::1;::::0;;18060:7;;18070:4;::::1;::::0;18060;;18070;18060:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;18060:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;18145:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;18145:188:0;;18111:21:::1;::::0;18145:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;18217:12;;18087:21:::1;::::0;18260:4;;18287::::1;::::0;18307:15:::1;::::0;18145:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18346:17;18366:40;18392:13;18366:21;:25;;:40;;;;:::i;:::-;18346:60:::0;-1:-1:-1;18419:19:0::1;18441:41;18455:26;:19:::0;18479:1:::1;18455:23;:26::i;:::-;18441:9:::0;;:13:::1;:41::i;:::-;18419:63;;18493:26;18522:55;18575:1;18522:48;18558:11;18522:31;18536:16;;18522:9;:13;;:31;;;;:::i;:55::-;18493:84;;18588:26;18617:48;18653:11;18617:31;18631:16;;18617:9;:13;;:31;;;;:::i;:48::-;18588:77;;18676:21;18700:43;18731:11;18700:26;18714:11;;18700:9;:13;;:26;;;;:::i;:43::-;18785:20;::::0;18777:77:::1;::::0;18676:67;;-1:-1:-1;18757:15:0::1;::::0;-1:-1:-1;;;;;18785:20:0;;::::1;::::0;18844:5:::1;::::0;18819:18;;18757:15;18777:77;18757:15;18777:77;18819:18;18785:20;18844:5;18777:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18889:15:0::1;::::0;18881:67:::1;::::0;18756:98;;-1:-1:-1;;;;;;18889:15:0::1;::::0;18938:5:::1;::::0;18918:13;;18881:67:::1;::::0;;;18918:13;18889:15;18938:5;18881:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;18865:83:0;;-1:-1:-1;;18984:19:0;;18981:363:::1;;19020:6;::::0;19194:21:::1;::::0;19020:244:::1;::::0;-1:-1:-1;;;19020:244:0;;19096:4:::1;19020:244;::::0;::::1;12356:34:1::0;12406:18;;;12399:34;;;19020:6:0::1;12449:18:1::0;;;12442:34;;;12492:18;;;12485:34;-1:-1:-1;;;;;19194:21:0;;::::1;12535:19:1::0;;;12528:44;19234:15:0::1;12588:19:1::0;;;12581:35;19020:6:0;::::1;::::0;:22:::1;::::0;19050:18;;12290:19:1;;19020:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19284:48:0::1;::::0;;13112:25:1;;;13168:2;13153:18;;13146:34;;;19284:48:0::1;::::0;-1:-1:-1;13085:18:1;19284:48:0::1;;;;;;;18981:363;19373:14;::::0;-1:-1:-1;;;19373:14:0;::::1;;;19372:15;:111;;19423:18;;19406:13;;:35;:77;;19465:18;;19372:111;;19406:77;19444:18;;19372:111;;;19390:13;;19372:111;19356:13;:127:::0;-1:-1:-1;;10125:6:0;:14;;-1:-1:-1;;10125:14:0;;;-1:-1:-1;;;;;;;;;;17569:1922:0:o;15234:1048::-;15355:7;;15415:4;15405:14;;;;:177;;15567:14;;15206:12;;15507:75;;15567:14;15507:55;;15528:33;15507:16;;:20;:55::i;:75::-;15405:177;;;15480:14;;15100:11;;15421:74;;15480:14;15421:54;;15442:32;15022:97;15421:74;15375:207;-1:-1:-1;15615:27:0;15655:4;15645:14;;;;:146;;15731:60;15778:12;;15731:42;15755:17;;15731:19;:23;;:42;;;;:::i;:60::-;15645:146;;;15661:58;15707:11;;15661:41;15685:16;;15661:19;:23;;:41;;;;:::i;:58::-;15823:16;;15615:176;;-1:-1:-1;15823:41:0;;15615:176;15823:20;:41::i;:::-;15804:16;:60;15899:29;15931:44;:19;15955;15931:23;:44::i;:::-;16027:4;16011:22;;;;:7;:22;;;;;;15899:76;;-1:-1:-1;16011:49:0;;15899:76;16011:26;:49::i;:::-;16002:4;15986:22;;;;:7;:22;;;;;:74;;;;-1:-1:-1;;;;;16078:75:0;;;16110:42;16130:21;16110:19;:42::i;:::-;16078:75;;160:25:1;;;148:2;133:18;16078:75:0;;;;;;;16198:16;;16169:46;;;13112:25:1;;;13168:2;13153:18;;13146:34;;;;16169:46:0;;13085:18:1;16169:46:0;;;;;;;16233:41;:16;16254:19;16233:20;:41::i;:::-;16226:48;15234:1048;-1:-1:-1;;;;;;;;15234:1048:0:o;4790:345::-;4876:7;4978:12;4971:5;4963:28;;;;-1:-1:-1;;;4963:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5002:9:0;5014:5;5018:1;5014;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:186::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;1529:29;1548:9;1529:29;:::i;1569:248::-;1637:6;1645;1698:2;1686:9;1677:7;1673:23;1669:32;1666:52;;;1714:1;1711;1704:12;1666:52;-1:-1:-1;;1737:23:1;;;1807:2;1792:18;;;1779:32;;-1:-1:-1;1569:248:1:o;1822:328::-;1899:6;1907;1915;1968:2;1956:9;1947:7;1943:23;1939:32;1936:52;;;1984:1;1981;1974:12;1936:52;2007:29;2026:9;2007:29;:::i;:::-;1997:39;;2055:38;2089:2;2078:9;2074:18;2055:38;:::i;:::-;2045:48;;2140:2;2129:9;2125:18;2112:32;2102:42;;1822:328;;;;;:::o;2155:118::-;2241:5;2234:13;2227:21;2220:5;2217:32;2207:60;;2263:1;2260;2253:12;2278:241;2334:6;2387:2;2375:9;2366:7;2362:23;2358:32;2355:52;;;2403:1;2400;2393:12;2355:52;2442:9;2429:23;2461:28;2483:5;2461:28;:::i;2524:180::-;2583:6;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;2675:23:1;;2524:180;-1:-1:-1;2524:180:1:o;2898:750::-;2990:6;2998;3006;3059:2;3047:9;3038:7;3034:23;3030:32;3027:52;;;3075:1;3072;3065:12;3027:52;3115:9;3102:23;3144:18;3185:2;3177:6;3174:14;3171:34;;;3201:1;3198;3191:12;3171:34;3239:6;3228:9;3224:22;3214:32;;3284:7;3277:4;3273:2;3269:13;3265:27;3255:55;;3306:1;3303;3296:12;3255:55;3346:2;3333:16;3372:2;3364:6;3361:14;3358:34;;;3388:1;3385;3378:12;3358:34;3443:7;3436:4;3426:6;3423:1;3419:14;3415:2;3411:23;3407:34;3404:47;3401:67;;;3464:1;3461;3454:12;3401:67;3495:4;3487:13;;;;-1:-1:-1;3519:6:1;-1:-1:-1;;3560:20:1;;3547:34;3590:28;3547:34;3590:28;:::i;:::-;3637:5;3627:15;;;2898:750;;;;;:::o;3653:513::-;3733:6;3741;3749;3757;3810:3;3798:9;3789:7;3785:23;3781:33;3778:53;;;3827:1;3824;3817:12;3778:53;3866:9;3853:23;3885:28;3907:5;3885:28;:::i;:::-;3932:5;-1:-1:-1;3984:2:1;3969:18;;3956:32;;-1:-1:-1;4035:2:1;4020:18;;4007:32;;-1:-1:-1;4091:2:1;4076:18;;4063:32;4104:30;4063:32;4104:30;:::i;:::-;3653:513;;;;-1:-1:-1;3653:513:1;;-1:-1:-1;;3653:513:1:o;4379:730::-;4510:6;4518;4526;4534;4542;4550;4558;4566;4574;4627:3;4615:9;4606:7;4602:23;4598:33;4595:53;;;4644:1;4641;4634:12;4595:53;-1:-1:-1;;4667:23:1;;;4737:2;4722:18;;4709:32;;-1:-1:-1;4788:2:1;4773:18;;4760:32;;4839:2;4824:18;;4811:32;;-1:-1:-1;4890:3:1;4875:19;;4862:33;;-1:-1:-1;4942:3:1;4927:19;;4914:33;;-1:-1:-1;4994:3:1;4979:19;;4966:33;;-1:-1:-1;5046:3:1;5031:19;;5018:33;;-1:-1:-1;5098:3:1;5083:19;5070:33;;-1:-1:-1;4379:730:1;-1:-1:-1;4379:730:1:o;5114:334::-;5191:6;5199;5207;5260:2;5248:9;5239:7;5235:23;5231:32;5228:52;;;5276:1;5273;5266:12;5228:52;5299:29;5318:9;5299:29;:::i;:::-;5289:39;;5347:38;5381:2;5370:9;5366:18;5347:38;:::i;:::-;5337:48;;5404:38;5438:2;5427:9;5423:18;5404:38;:::i;:::-;5394:48;;5114:334;;;;;:::o;5453:260::-;5521:6;5529;5582:2;5570:9;5561:7;5557:23;5553:32;5550:52;;;5598:1;5595;5588:12;5550:52;5621:29;5640:9;5621:29;:::i;:::-;5611:39;;5669:38;5703:2;5692:9;5688:18;5669:38;:::i;:::-;5659:48;;5453:260;;;;;:::o;5944:380::-;6023:1;6019:12;;;;6066;;;6087:61;;6141:4;6133:6;6129:17;6119:27;;6087:61;6194:2;6186:6;6183:14;6163:18;6160:38;6157:161;;6240:10;6235:3;6231:20;6228:1;6221:31;6275:4;6272:1;6265:15;6303:4;6300:1;6293:15;6157:161;;5944:380;;;:::o;6329:356::-;6531:2;6513:21;;;6550:18;;;6543:30;6609:34;6604:2;6589:18;;6582:62;6676:2;6661:18;;6329:356::o;6900:127::-;6961:10;6956:3;6952:20;6949:1;6942:31;6992:4;6989:1;6982:15;7016:4;7013:1;7006:15;7032:127;7093:10;7088:3;7084:20;7081:1;7074:31;7124:4;7121:1;7114:15;7148:4;7145:1;7138:15;7164:135;7203:3;7224:17;;;7221:43;;7244:18;;:::i;:::-;-1:-1:-1;7291:1:1;7280:13;;7164:135::o;7304:168::-;7377:9;;;7408;;7425:15;;;7419:22;;7405:37;7395:71;;7446:18;;:::i;7477:217::-;7517:1;7543;7533:132;;7587:10;7582:3;7578:20;7575:1;7568:31;7622:4;7619:1;7612:15;7650:4;7647:1;7640:15;7533:132;-1:-1:-1;7679:9:1;;7477:217::o;7699:184::-;7769:6;7822:2;7810:9;7801:7;7797:23;7793:32;7790:52;;;7838:1;7835;7828:12;7790:52;-1:-1:-1;7861:16:1;;7699:184;-1:-1:-1;7699:184:1:o;8167:245::-;8234:6;8287:2;8275:9;8266:7;8262:23;8258:32;8255:52;;;8303:1;8300;8293:12;8255:52;8335:9;8329:16;8354:28;8376:5;8354:28;:::i;8824:128::-;8891:9;;;8912:11;;;8909:37;;;8926:18;;:::i;8957:125::-;9022:9;;;9043:10;;;9040:36;;;9056:18;;:::i;11030:980::-;11292:4;11340:3;11329:9;11325:19;11371:6;11360:9;11353:25;11397:2;11435:6;11430:2;11419:9;11415:18;11408:34;11478:3;11473:2;11462:9;11458:18;11451:31;11502:6;11537;11531:13;11568:6;11560;11553:22;11606:3;11595:9;11591:19;11584:26;;11645:2;11637:6;11633:15;11619:29;;11666:1;11676:195;11690:6;11687:1;11684:13;11676:195;;;11755:13;;-1:-1:-1;;;;;11751:39:1;11739:52;;11846:15;;;;11811:12;;;;11787:1;11705:9;11676:195;;;-1:-1:-1;;;;;;;11927:32:1;;;;11922:2;11907:18;;11900:60;-1:-1:-1;;;11991:3:1;11976:19;11969:35;11888:3;11030:980;-1:-1:-1;;;11030:980:1:o;12627:306::-;12715:6;12723;12731;12784:2;12772:9;12763:7;12759:23;12755:32;12752:52;;;12800:1;12797;12790:12;12752:52;12829:9;12823:16;12813:26;;12879:2;12868:9;12864:18;12858:25;12848:35;;12923:2;12912:9;12908:18;12902:25;12892:35;;12627:306;;;;;:::o
Swarm Source
ipfs://447dda13c083e7a89cb60f126ce2470522641312cc891fe5c6fee2f46f6ca9c5
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.