ERC-20
Overview
Max Total Supply
420,696,696,969 APU
Holders
13
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,041,032,128.783365035918306637 APUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
APU
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-02 */ /** Apu might be the greatest token ever seen, but he’ll still jeet you an expired hotdog for $1.99 plus 🌭 apueth.app */ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @dev Returns the amount of tokens in existence. */ 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } pragma solidity ^0.8.19; interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address UNISWAP_V2_PAIR); } contract APU is IERC20, Ownable { event Reflect(uint256 amountReflected, uint256 newTotalProportion); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; uint256 constant MAX_FEE = 10; IUniswapV2Router02 public constant UNISWAP_V2_ROUTER = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public immutable UNISWAP_V2_PAIR; mapping(address => bool) public automatedMarketMakerPairs; struct Fee { uint8 reflection; uint8 marketing; uint8 lp; uint8 buyback; uint8 burn; uint128 total; } string _name = "APU"; string _symbol = "APU"; uint256 _totalSupply = 420_696_696_969 ether; uint256 public _maxTxAmount = _totalSupply * 10 / 1000; uint256 public _maxWalletAmount = _totalSupply * 15 / 1000; /* 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; bool public tradingActive = false; bool public transferDelayEnabled = false; bool public limitsEnabled = true; mapping(address => bool) isFeeExempt; mapping(address => bool) isLimitExempt; Fee public buyFee = Fee({reflection: 0, marketing: 10, lp: 5, buyback: 10, burn: 0, total: 25}); Fee public sellFee = Fee({reflection: 0, marketing: 10, lp: 5, buyback: 10, burn: 0, total: 25}); address private marketingFeeReceiver; address private lpFeeReceiver; address private buybackFeeReceiver; bool public claimingFees = false; uint256 public swapThreshold = (_totalSupply * 3) / 1000; bool inSwap; mapping(address => bool) public blacklists; mapping(address => uint256) private _holderLastTransferTimestamp; modifier swapping() { inSwap = true; _; inSwap = false; } constructor() { // create uniswap pair address _uniswapPair = IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH()); UNISWAP_V2_PAIR = _uniswapPair; _setAutomatedMarketMakerPair(address(_uniswapPair), true); _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max; _allowances[address(this)][owner()] = type(uint256).max; isLimitExempt[address(this)] = true; isLimitExempt[DEAD] = true; isLimitExempt[owner()] = true; isLimitExempt[UNISWAP_V2_PAIR] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD] = true; isFeeExempt[owner()] = true; marketingFeeReceiver = 0xa3f0BEddaa6f0a30D3634860cDA3f41317eA65EC; lpFeeReceiver = 0xa3f0BEddaa6f0a30D3634860cDA3f41317eA65EC; buybackFeeReceiver = 0xa3f0BEddaa6f0a30D3634860cDA3f41317eA65EC; _rOwned[tx.origin] = _totalSupply; emit Transfer(address(0), tx.origin, _totalSupply); } receive() external payable {} 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) { require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance"); _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return 18; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory) { return _symbol; } 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 tokensToProportion(uint256 tokens) public view returns (uint256) { return tokens * _totalProportion / _totalSupply; } function tokenFromReflection(uint256 proportion) public view returns (uint256) { return proportion * _totalSupply / _totalProportion; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO); } function enableTrading() external onlyOwner { tradingActive = true; claimingFees = true; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != UNISWAP_V2_PAIR, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require( newNum >= ((_totalSupply * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%" ); _maxTxAmount = newNum * (10**18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require( newNum >= ((_totalSupply * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%" ); _maxWalletAmount = newNum * (10**18); } function clearStuckBalance() external onlyOwner { (bool success,) = payable(msg.sender).call{value: address(this).balance}(""); require(success); } function clearStuckToken() external onlyOwner { _transferFrom(address(this), msg.sender, balanceOf(address(this))); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { claimingFees = _enabled; swapThreshold = _amount; } function changeFees( uint8 reflectionFeeBuy, uint8 marketingFeeBuy, uint8 lpFeeBuy, uint8 buybackFeeBuy, uint8 burnFeeBuy, uint8 reflectionFeeSell, uint8 marketingFeeSell, uint8 lpFeeSell, uint8 buybackFeeSell, uint8 burnFeeSell ) external onlyOwner { uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy; uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell; buyFee = Fee({ reflection: reflectionFeeBuy, marketing: marketingFeeBuy, lp: lpFeeBuy, buyback: buybackFeeBuy, burn: burnFeeBuy, total: __totalBuyFee }); sellFee = Fee({ reflection: reflectionFeeSell, marketing: marketingFeeSell, lp: lpFeeSell, buyback: buybackFeeSell, burn: burnFeeSell, total: __totalSellFee }); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner { marketingFeeReceiver = m_; lpFeeReceiver = lp_; buybackFeeReceiver = b_; } function setLimitsEnabled(bool e_) external onlyOwner { limitsEnabled = e_; } // Set Transfer delay function disableTransferDelay(bool e_) external onlyOwner returns (bool) { transferDelayEnabled = e_; return true; } function blacklist(address _address, bool _isBlacklisting) external onlyOwner { blacklists[_address] = _isBlacklisting; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!blacklists[recipient] && !blacklists[sender], "Blacklisted"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (limitsEnabled) { if (!tradingActive) { require( isFeeExempt[sender] || isFeeExempt[recipient], "Trading is not active." ); } //when buy if (automatedMarketMakerPairs[sender] && !isLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[recipient] && !isLimitExempt[sender]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } else if (!isLimitExempt[recipient]) { require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded"); } if (transferDelayEnabled) { if ( recipient != owner() && recipient != address(UNISWAP_V2_ROUTER) && recipient != UNISWAP_V2_PAIR ) { require( _holderLastTransferTimestamp[tx.origin] + 1 < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per two blocks allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } } if (_shouldSwapBack()) { _swapBack(); } uint256 proportionAmount = tokensToProportion(amount); require(_rOwned[sender] >= proportionAmount, "Insufficient Balance"); _rOwned[sender] = _rOwned[sender] - proportionAmount; uint256 proportionReceived = _shouldTakeFee(sender, recipient) ? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount) : proportionAmount; _rOwned[recipient] = _rOwned[recipient] + proportionReceived; emit Transfer(sender, recipient, tokenFromReflection(proportionReceived)); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 proportionAmount = tokensToProportion(amount); require(_rOwned[sender] >= proportionAmount, "Insufficient Balance"); _rOwned[sender] = _rOwned[sender] - proportionAmount; _rOwned[recipient] = _rOwned[recipient] + proportionAmount; emit Transfer(sender, recipient, amount); return true; } function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) { Fee memory __buyFee = buyFee; Fee memory __sellFee = sellFee; uint256 proportionFeeAmount = buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100; // reflect uint256 proportionReflected = buying == true ? proportionFeeAmount * __buyFee.reflection / __buyFee.total : proportionFeeAmount * __sellFee.reflection / __sellFee.total; _totalProportion = _totalProportion - proportionReflected; // take fees uint256 _proportionToContract = proportionFeeAmount - proportionReflected; if (_proportionToContract > 0) { _rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract; emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract)); } emit Reflect(proportionReflected, _totalProportion); return proportionAmount - proportionFeeAmount; } function _shouldSwapBack() internal view returns (bool) { return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold; } function _swapBack() internal swapping { Fee memory __sellFee = sellFee; uint256 __swapThreshold = swapThreshold; uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total; uint256 amountToSwap = __swapThreshold - amountToBurn; approve(address(UNISWAP_V2_ROUTER), amountToSwap); if(amountToBurn > 0) { // burn _transferFrom(address(this), DEAD, amountToBurn); } // swap address[] memory path = new address[](2); path[0] = address(this); path[1] = UNISWAP_V2_ROUTER.WETH(); UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn; uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee; uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee; uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee; // send (bool tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}(""); (tmpSuccess,) = address(marketingFeeReceiver).call{value: address(this).balance}(""); } function _shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","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":"tradingActive","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600360a09081526241505560e81b60c05260029062000024908262000694565b506040805180820190915260038082526241505560e81b6020830152906200004d908262000694565b506c054f5826c8903389f4348400006004556103e8600454600a62000073919062000760565b6200007f91906200078c565b6005556103e8600454600f62000096919062000760565b620000a291906200078c565b6006556004546008819055600a805462ffffff1916620100001781556040805160c0808201835260008083526020808401869052600584860181905260608086018890526080808701859052601960a0978801819052600d80546519000a050a006001600160a81b031991821681179092558a519889018b528789529588018b9052988701939093529085019790975295830191909152910192909252600e80549092161790556011805460ff60a01b191690556103e8906200016790600362000760565b6200017391906200078c565b6012553480156200018357600080fd5b506200018f336200054b565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a9190620007af565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002929190620007af565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003069190620007af565b6001600160a01b0381166080529050620003228160016200059b565b306000818152600960208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d85528083529084206000199081905594845291905290620003726000546001600160a01b031690565b6001600160a01b031681526020808201929092526040908101600090812093909355308352600c9182905282208054600160ff19918216811790925561dead84527f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c80549091168217905591620003f16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556080519091168152600c8352818120805485166001908117909155308252600b93849052918120805485168317905561dead81527f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac34158054909416821790935591620004926000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805460ff191694151594909417909355600f805473a3f0beddaa6f0a30d3634860cda3f41317ea65ec6001600160a01b0319918216811790925560108054821683179055601180549091169091179055600454328085526007845282852082905591519081529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620007e1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260016020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200061a57607f821691505b6020821081036200063b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200068f57600081815260208120601f850160051c810160208610156200066a5750805b601f850160051c820191505b818110156200068b5782815560010162000676565b5050505b505050565b81516001600160401b03811115620006b057620006b0620005ef565b620006c881620006c1845462000605565b8462000641565b602080601f831160018114620007005760008415620006e75750858301515b600019600386901b1c1916600185901b1785556200068b565b600085815260208120601f198616915b82811015620007315788860151825594840194600190910190840162000710565b5085821015620007505787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200078657634e487b7160e01b600052601160045260246000fd5b92915050565b600082620007aa57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007c257600080fd5b81516001600160a01b0381168114620007da57600080fd5b9392505050565b6080516126a462000819600039600081816108a701528181610d8501528181611632015281816118010152611ab001526126a46000f3fe60806040526004361061026b5760003560e01c80636c0a24eb11610144578063b62496f5116100b6578063d7c010321161007a578063d7c01032146107da578063d85a2828146107fa578063dd62ed3e1461080f578063df20fd4914610855578063f2fde38b14610875578063f40acc3d1461089557600080fd5b8063b62496f514610731578063bbc0c74214610761578063c18bc1951461077b578063c38a31de1461079b578063c876d0b9146107bb57600080fd5b80638da5cb5b116101085780638da5cb5b1461066157806395d89b41146106935780639a7a23d6146106a8578063a82ed9ec146106c8578063a9059cbb146106f0578063b0f7ec381461071057600080fd5b80636c0a24eb146105eb57806370a0823114610601578063715018a6146106215780637d1db4a5146106365780638a8c523c1461064c57600080fd5b80632d838119116101dd578063404e5129116101a1578063404e5129146104f957806341aea9de1461051957806345ce5365146105395780634706240214610559578063571ac8b0146105ab578063658d4b7f146105cb57600080fd5b80632d83811914610468578063313ce5671461048857806334b86560146104a45780633582ad23146104c4578063364333f4146104e457600080fd5b8063178002871161022f578063178002871461034f57806318160ddd14610365578063203e727e1461037a57806323b872dd1461039c5780632b112e49146103bc5780632b14ca56146103d157600080fd5b80630445b6671461027757806306fdde03146102a0578063095ea7b3146102c25780630cfc15f9146102f257806316c021291461031f57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60125481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b56108c9565b60405161029791906121c2565b3480156102ce57600080fd5b506102e26102dd366004612225565b61095b565b6040519015158152602001610297565b3480156102fe57600080fd5b5061028d61030d366004612251565b60076020526000908152604090205481565b34801561032b57600080fd5b506102e261033a366004612251565b60146020526000908152604090205460ff1681565b34801561035b57600080fd5b5061028d60085481565b34801561037157600080fd5b5060045461028d565b34801561038657600080fd5b5061039a61039536600461226e565b6109c8565b005b3480156103a857600080fd5b506102e26103b7366004612287565b610a83565b3480156103c857600080fd5b5061028d610b8b565b3480156103dd57600080fd5b50600e546104239060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c001610297565b34801561047457600080fd5b5061028d61048336600461226e565b610bbe565b34801561049457600080fd5b5060405160128152602001610297565b3480156104b057600080fd5b506102e26104bf3660046122d8565b610bdb565b3480156104d057600080fd5b50600a546102e29062010000900460ff1681565b3480156104f057600080fd5b5061039a610c01565b34801561050557600080fd5b5061039a6105143660046122f3565b610c61565b34801561052557600080fd5b5061039a6105343660046122d8565b610c94565b34801561054557600080fd5b5061028d61055436600461226e565b610cb8565b34801561056557600080fd5b50600d546104239060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b3480156105b757600080fd5b506102e26105c6366004612251565b610ccb565b3480156105d757600080fd5b5061039a6105e63660046122f3565b610cd9565b3480156105f757600080fd5b5061028d60065481565b34801561060d57600080fd5b5061028d61061c366004612251565b610d0c565b34801561062d57600080fd5b5061039a610d2e565b34801561064257600080fd5b5061028d60055481565b34801561065857600080fd5b5061039a610d42565b34801561066d57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561069f57600080fd5b506102b5610d6c565b3480156106b457600080fd5b5061039a6106c33660046122f3565b610d7b565b3480156106d457600080fd5b5061067b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156106fc57600080fd5b506102e261070b366004612225565b610e38565b34801561071c57600080fd5b506011546102e290600160a01b900460ff1681565b34801561073d57600080fd5b506102e261074c366004612251565b60016020526000908152604090205460ff1681565b34801561076d57600080fd5b50600a546102e29060ff1681565b34801561078757600080fd5b5061039a61079636600461226e565b610e45565b3480156107a757600080fd5b5061039a6107b6366004612339565b610eef565b3480156107c757600080fd5b50600a546102e290610100900460ff1681565b3480156107e657600080fd5b5061039a6107f53660046123f3565b6111a1565b34801561080657600080fd5b5061039a6111e8565b34801561081b57600080fd5b5061028d61082a36600461243e565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561086157600080fd5b5061039a610870366004612477565b611203565b34801561088157600080fd5b5061039a610890366004612251565b61122d565b3480156108a157600080fd5b5061067b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600280546108d890612493565b80601f016020809104026020016040519081016040528092919081815260200182805461090490612493565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109b69086815260200190565b60405180910390a35060015b92915050565b6109d06112a3565b670de0b6b3a76400006103e860045460016109eb91906124e3565b6109f591906124fa565b6109ff91906124fa565b811015610a6b5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084015b60405180910390fd5b610a7d81670de0b6b3a76400006124e3565b60055550565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610b76576001600160a01b0384166000908152600960209081526040808320338452909152902054821115610b225760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a62565b6001600160a01b0384166000908152600960209081526040808320338452909152902054610b5190839061251c565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b818484846112fd565b90505b9392505050565b6000610b976000610d0c565b610ba261dead610d0c565b600454610baf919061251c565b610bb9919061251c565b905090565b600060085460045483610bd191906124e3565b6109c291906124fa565b6000610be56112a3565b50600a805461ff0019166101008315150217905560015b919050565b610c096112a3565b604051600090339047908381818185875af1925050503d8060008114610c4b576040519150601f19603f3d011682016040523d82523d6000602084013e610c50565b606091505b5050905080610c5e57600080fd5b50565b610c696112a3565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b610c9c6112a3565b600a8054911515620100000262ff000019909216919091179055565b600060045460085483610bd191906124e3565b60006109c28260001961095b565b610ce16112a3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600760205260408120546109c290610bbe565b610d366112a3565b610d4060006118d6565b565b610d4a6112a3565b600a805460ff191660011790556011805460ff60a01b1916600160a01b179055565b6060600380546108d890612493565b610d836112a3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610e2a5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a62565b610e348282611926565b5050565b6000610b843384846112fd565b610e4d6112a3565b670de0b6b3a76400006103e86004546005610e6891906124e3565b610e7291906124fa565b610e7c91906124fa565b811015610ed75760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610a62565b610ee981670de0b6b3a76400006124e3565b60065550565b610ef76112a3565b600086888a610f068d8f61252f565b610f10919061252f565b610f1a919061252f565b610f24919061252f565b60ff1690506000828486610f38898b61252f565b610f42919061252f565b610f4c919061252f565b610f56919061252f565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836001600160801b0316815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826001600160801b0316815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b6111a96112a3565b600f80546001600160a01b039485166001600160a01b031991821617909155601080549385169382169390931790925560118054919093169116179055565b6111f06112a3565b610c5e30336111fe30610d0c565b6112fd565b61120b6112a3565b60118054921515600160a01b0260ff60a01b1990931692909217909155601255565b6112356112a3565b6001600160a01b03811661129a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a62565b610c5e816118d6565b6000546001600160a01b03163314610d405760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a62565b6001600160a01b03821660009081526014602052604081205460ff1615801561133f57506001600160a01b03841660009081526014602052604090205460ff16155b6113795760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610a62565b60135460ff16156113965761138f84848461197a565b9050610b84565b600a5462010000900460ff161561172657600a5460ff16611435576001600160a01b0384166000908152600b602052604090205460ff16806113f057506001600160a01b0383166000908152600b602052604090205460ff165b6114355760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a62565b6001600160a01b03841660009081526001602052604090205460ff16801561147657506001600160a01b0383166000908152600c602052604090205460ff16155b156114fc5760055482111561149d5760405162461bcd60e51b8152600401610a6290612548565b6006546114a984610d0c565b6114b39084612590565b11156114f75760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a62565b6115de565b6001600160a01b03831660009081526001602052604090205460ff16801561153d57506001600160a01b0384166000908152600c602052604090205460ff16155b15611564576005548211156114f75760405162461bcd60e51b8152600401610a6290612548565b6001600160a01b0383166000908152600c602052604090205460ff166115de5760065461159084610d0c565b61159a9084612590565b11156115de5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a62565b600a54610100900460ff1615611726576000546001600160a01b0384811691161480159061162957506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b801561166757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b1561172657326000908152601560205260409020544390611689906001612590565b106117135760405162461bcd60e51b815260206004820152604e60248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260648201526d3637b1b5b99030b63637bbb2b21760911b608482015260a401610a62565b3260009081526015602052604090204390555b61172e611aa3565b1561173b5761173b611b10565b600061174683610cb8565b6001600160a01b0386166000908152600760205260409020549091508111156117a85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610a62565b6001600160a01b0385166000908152600760205260409020546117cc90829061251c565b6001600160a01b0386166000908152600760205260408120919091556117f28686611f09565b6117fc5781611849565b6118497f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b03161461183f576000611842565b60015b8784611f4f565b6001600160a01b038616600090815260076020526040902054909150611870908290612590565b6001600160a01b0380871660008181526007602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118b984610bbe565b60405190815260200160405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260016020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60008061198683610cb8565b6001600160a01b0386166000908152600760205260409020549091508111156119e85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610a62565b6001600160a01b038516600090815260076020526040902054611a0c90829061251c565b6001600160a01b038087166000908152600760205260408082209390935590861681522054611a3c908290612590565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a909087815260200190565b60405180910390a3506001949350505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611ae1575060135460ff16155b8015611af65750601154600160a01b900460ff165b8015610bb95750601254611b0930610d0c565b1015905090565b60138054600160ff199091161790556040805160c081018252600e5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a08201819052601254919260009190611b9990846124e3565b611ba391906124fa565b90506000611bb1828461251c565b9050611bd1737a250d5630b4cf539739df2c5dacb4c659f2488d8261095b565b508115611be757611be53061dead846112fd565b505b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1c57611c1c6125a3565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb291906125b9565b81600181518110611cc557611cc56125a3565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611d1d9085906000908690309042906004016125d6565b600060405180830381600087803b158015611d3757600080fd5b505af1158015611d4b573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a00151611d759190612647565b611d7f9190612647565b6001600160801b03169050600081886020015160ff1684611da091906124e3565b611daa91906124fa565b9050600082896040015160ff1685611dc291906124e3565b611dcc91906124fa565b90506000838a6060015160ff1686611de491906124e3565b611dee91906124fa565b6010546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611e40576040519150601f19603f3d011682016040523d82523d6000602084013e611e45565b606091505b50506011546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611e95576040519150601f19603f3d011682016040523d82523d6000602084013e611e9a565b606091505b5050600f546040519192506001600160a01b0316904790600081818185875af1925050503d8060008114611eea576040519150601f19603f3d011682016040523d82523d6000602084013e611eef565b606091505b50506013805460ff19169055505050505050505050505050565b6001600160a01b0382166000908152600b602052604081205460ff16158015610b845750506001600160a01b03166000908152600b602052604090205460ff1615919050565b6040805160c08082018352600d5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600e54808b168d529889048a16978c019790975294870488169b8a019b909b52918504861690880152830490931696850196909652919091041692810192909252600091828615156001146120455760648260a001516001600160801b03168661203691906124e3565b61204091906124fa565b61206a565b60648360a001516001600160801b03168661206091906124e3565b61206a91906124fa565b905060006001881515146120a8578260a001516001600160801b0316836000015160ff168361209991906124e3565b6120a391906124fa565b6120d3565b8360a001516001600160801b0316846000015160ff16836120c991906124e3565b6120d391906124fa565b9050806008546120e3919061251c565b60085560006120f2828461251c565b9050801561216e5730600090815260076020526040902054612115908290612590565b306000818152600760205260409020919091556001600160a01b0389167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61215c84610bbe565b60405190815260200160405180910390a35b6008546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a16121b5838861251c565b9998505050505050505050565b600060208083528351808285015260005b818110156121ef578581018301518582016040015282016121d3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c5e57600080fd5b6000806040838503121561223857600080fd5b823561224381612210565b946020939093013593505050565b60006020828403121561226357600080fd5b8135610b8481612210565b60006020828403121561228057600080fd5b5035919050565b60008060006060848603121561229c57600080fd5b83356122a781612210565b925060208401356122b781612210565b929592945050506040919091013590565b80358015158114610bfc57600080fd5b6000602082840312156122ea57600080fd5b610b84826122c8565b6000806040838503121561230657600080fd5b823561231181612210565b915061231f602084016122c8565b90509250929050565b803560ff81168114610bfc57600080fd5b6000806000806000806000806000806101408b8d03121561235957600080fd5b6123628b612328565b995061237060208c01612328565b985061237e60408c01612328565b975061238c60608c01612328565b965061239a60808c01612328565b95506123a860a08c01612328565b94506123b660c08c01612328565b93506123c460e08c01612328565b92506123d36101008c01612328565b91506123e26101208c01612328565b90509295989b9194979a5092959850565b60008060006060848603121561240857600080fd5b833561241381612210565b9250602084013561242381612210565b9150604084013561243381612210565b809150509250925092565b6000806040838503121561245157600080fd5b823561245c81612210565b9150602083013561246c81612210565b809150509250929050565b6000806040838503121561248a57600080fd5b612243836122c8565b600181811c908216806124a757607f821691505b6020821081036124c757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109c2576109c26124cd565b60008261251757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109c2576109c26124cd565b60ff81811683821601908111156109c2576109c26124cd565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b808201808211156109c2576109c26124cd565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156125cb57600080fd5b8151610b8481612210565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126265784516001600160a01b031683529383019391830191600101612601565b50506001600160a01b03969096166060850152505050608001529392505050565b6001600160801b03828116828216039080821115612667576126676124cd565b509291505056fea26469706673582212206193411a51f3d2063011e93c9e9ed962e1d7b850f179c1d2ba599738e47fafd064736f6c63430008130033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c80636c0a24eb11610144578063b62496f5116100b6578063d7c010321161007a578063d7c01032146107da578063d85a2828146107fa578063dd62ed3e1461080f578063df20fd4914610855578063f2fde38b14610875578063f40acc3d1461089557600080fd5b8063b62496f514610731578063bbc0c74214610761578063c18bc1951461077b578063c38a31de1461079b578063c876d0b9146107bb57600080fd5b80638da5cb5b116101085780638da5cb5b1461066157806395d89b41146106935780639a7a23d6146106a8578063a82ed9ec146106c8578063a9059cbb146106f0578063b0f7ec381461071057600080fd5b80636c0a24eb146105eb57806370a0823114610601578063715018a6146106215780637d1db4a5146106365780638a8c523c1461064c57600080fd5b80632d838119116101dd578063404e5129116101a1578063404e5129146104f957806341aea9de1461051957806345ce5365146105395780634706240214610559578063571ac8b0146105ab578063658d4b7f146105cb57600080fd5b80632d83811914610468578063313ce5671461048857806334b86560146104a45780633582ad23146104c4578063364333f4146104e457600080fd5b8063178002871161022f578063178002871461034f57806318160ddd14610365578063203e727e1461037a57806323b872dd1461039c5780632b112e49146103bc5780632b14ca56146103d157600080fd5b80630445b6671461027757806306fdde03146102a0578063095ea7b3146102c25780630cfc15f9146102f257806316c021291461031f57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60125481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b56108c9565b60405161029791906121c2565b3480156102ce57600080fd5b506102e26102dd366004612225565b61095b565b6040519015158152602001610297565b3480156102fe57600080fd5b5061028d61030d366004612251565b60076020526000908152604090205481565b34801561032b57600080fd5b506102e261033a366004612251565b60146020526000908152604090205460ff1681565b34801561035b57600080fd5b5061028d60085481565b34801561037157600080fd5b5060045461028d565b34801561038657600080fd5b5061039a61039536600461226e565b6109c8565b005b3480156103a857600080fd5b506102e26103b7366004612287565b610a83565b3480156103c857600080fd5b5061028d610b8b565b3480156103dd57600080fd5b50600e546104239060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c001610297565b34801561047457600080fd5b5061028d61048336600461226e565b610bbe565b34801561049457600080fd5b5060405160128152602001610297565b3480156104b057600080fd5b506102e26104bf3660046122d8565b610bdb565b3480156104d057600080fd5b50600a546102e29062010000900460ff1681565b3480156104f057600080fd5b5061039a610c01565b34801561050557600080fd5b5061039a6105143660046122f3565b610c61565b34801561052557600080fd5b5061039a6105343660046122d8565b610c94565b34801561054557600080fd5b5061028d61055436600461226e565b610cb8565b34801561056557600080fd5b50600d546104239060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b3480156105b757600080fd5b506102e26105c6366004612251565b610ccb565b3480156105d757600080fd5b5061039a6105e63660046122f3565b610cd9565b3480156105f757600080fd5b5061028d60065481565b34801561060d57600080fd5b5061028d61061c366004612251565b610d0c565b34801561062d57600080fd5b5061039a610d2e565b34801561064257600080fd5b5061028d60055481565b34801561065857600080fd5b5061039a610d42565b34801561066d57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561069f57600080fd5b506102b5610d6c565b3480156106b457600080fd5b5061039a6106c33660046122f3565b610d7b565b3480156106d457600080fd5b5061067b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156106fc57600080fd5b506102e261070b366004612225565b610e38565b34801561071c57600080fd5b506011546102e290600160a01b900460ff1681565b34801561073d57600080fd5b506102e261074c366004612251565b60016020526000908152604090205460ff1681565b34801561076d57600080fd5b50600a546102e29060ff1681565b34801561078757600080fd5b5061039a61079636600461226e565b610e45565b3480156107a757600080fd5b5061039a6107b6366004612339565b610eef565b3480156107c757600080fd5b50600a546102e290610100900460ff1681565b3480156107e657600080fd5b5061039a6107f53660046123f3565b6111a1565b34801561080657600080fd5b5061039a6111e8565b34801561081b57600080fd5b5061028d61082a36600461243e565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561086157600080fd5b5061039a610870366004612477565b611203565b34801561088157600080fd5b5061039a610890366004612251565b61122d565b3480156108a157600080fd5b5061067b7f00000000000000000000000052129727dde8458ce25bb86907d3ebeb1ea8fd5a81565b6060600280546108d890612493565b80601f016020809104026020016040519081016040528092919081815260200182805461090490612493565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109b69086815260200190565b60405180910390a35060015b92915050565b6109d06112a3565b670de0b6b3a76400006103e860045460016109eb91906124e3565b6109f591906124fa565b6109ff91906124fa565b811015610a6b5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084015b60405180910390fd5b610a7d81670de0b6b3a76400006124e3565b60055550565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610b76576001600160a01b0384166000908152600960209081526040808320338452909152902054821115610b225760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a62565b6001600160a01b0384166000908152600960209081526040808320338452909152902054610b5190839061251c565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b818484846112fd565b90505b9392505050565b6000610b976000610d0c565b610ba261dead610d0c565b600454610baf919061251c565b610bb9919061251c565b905090565b600060085460045483610bd191906124e3565b6109c291906124fa565b6000610be56112a3565b50600a805461ff0019166101008315150217905560015b919050565b610c096112a3565b604051600090339047908381818185875af1925050503d8060008114610c4b576040519150601f19603f3d011682016040523d82523d6000602084013e610c50565b606091505b5050905080610c5e57600080fd5b50565b610c696112a3565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b610c9c6112a3565b600a8054911515620100000262ff000019909216919091179055565b600060045460085483610bd191906124e3565b60006109c28260001961095b565b610ce16112a3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600760205260408120546109c290610bbe565b610d366112a3565b610d4060006118d6565b565b610d4a6112a3565b600a805460ff191660011790556011805460ff60a01b1916600160a01b179055565b6060600380546108d890612493565b610d836112a3565b7f00000000000000000000000052129727dde8458ce25bb86907d3ebeb1ea8fd5a6001600160a01b0316826001600160a01b031603610e2a5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a62565b610e348282611926565b5050565b6000610b843384846112fd565b610e4d6112a3565b670de0b6b3a76400006103e86004546005610e6891906124e3565b610e7291906124fa565b610e7c91906124fa565b811015610ed75760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610a62565b610ee981670de0b6b3a76400006124e3565b60065550565b610ef76112a3565b600086888a610f068d8f61252f565b610f10919061252f565b610f1a919061252f565b610f24919061252f565b60ff1690506000828486610f38898b61252f565b610f42919061252f565b610f4c919061252f565b610f56919061252f565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836001600160801b0316815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826001600160801b0316815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b6111a96112a3565b600f80546001600160a01b039485166001600160a01b031991821617909155601080549385169382169390931790925560118054919093169116179055565b6111f06112a3565b610c5e30336111fe30610d0c565b6112fd565b61120b6112a3565b60118054921515600160a01b0260ff60a01b1990931692909217909155601255565b6112356112a3565b6001600160a01b03811661129a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a62565b610c5e816118d6565b6000546001600160a01b03163314610d405760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a62565b6001600160a01b03821660009081526014602052604081205460ff1615801561133f57506001600160a01b03841660009081526014602052604090205460ff16155b6113795760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610a62565b60135460ff16156113965761138f84848461197a565b9050610b84565b600a5462010000900460ff161561172657600a5460ff16611435576001600160a01b0384166000908152600b602052604090205460ff16806113f057506001600160a01b0383166000908152600b602052604090205460ff165b6114355760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a62565b6001600160a01b03841660009081526001602052604090205460ff16801561147657506001600160a01b0383166000908152600c602052604090205460ff16155b156114fc5760055482111561149d5760405162461bcd60e51b8152600401610a6290612548565b6006546114a984610d0c565b6114b39084612590565b11156114f75760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a62565b6115de565b6001600160a01b03831660009081526001602052604090205460ff16801561153d57506001600160a01b0384166000908152600c602052604090205460ff16155b15611564576005548211156114f75760405162461bcd60e51b8152600401610a6290612548565b6001600160a01b0383166000908152600c602052604090205460ff166115de5760065461159084610d0c565b61159a9084612590565b11156115de5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a62565b600a54610100900460ff1615611726576000546001600160a01b0384811691161480159061162957506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b801561166757507f00000000000000000000000052129727dde8458ce25bb86907d3ebeb1ea8fd5a6001600160a01b0316836001600160a01b031614155b1561172657326000908152601560205260409020544390611689906001612590565b106117135760405162461bcd60e51b815260206004820152604e60248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260648201526d3637b1b5b99030b63637bbb2b21760911b608482015260a401610a62565b3260009081526015602052604090204390555b61172e611aa3565b1561173b5761173b611b10565b600061174683610cb8565b6001600160a01b0386166000908152600760205260409020549091508111156117a85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610a62565b6001600160a01b0385166000908152600760205260409020546117cc90829061251c565b6001600160a01b0386166000908152600760205260408120919091556117f28686611f09565b6117fc5781611849565b6118497f00000000000000000000000052129727dde8458ce25bb86907d3ebeb1ea8fd5a6001600160a01b0316876001600160a01b03161461183f576000611842565b60015b8784611f4f565b6001600160a01b038616600090815260076020526040902054909150611870908290612590565b6001600160a01b0380871660008181526007602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118b984610bbe565b60405190815260200160405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260016020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60008061198683610cb8565b6001600160a01b0386166000908152600760205260409020549091508111156119e85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610a62565b6001600160a01b038516600090815260076020526040902054611a0c90829061251c565b6001600160a01b038087166000908152600760205260408082209390935590861681522054611a3c908290612590565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a909087815260200190565b60405180910390a3506001949350505050565b6000336001600160a01b037f00000000000000000000000052129727dde8458ce25bb86907d3ebeb1ea8fd5a1614801590611ae1575060135460ff16155b8015611af65750601154600160a01b900460ff165b8015610bb95750601254611b0930610d0c565b1015905090565b60138054600160ff199091161790556040805160c081018252600e5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a08201819052601254919260009190611b9990846124e3565b611ba391906124fa565b90506000611bb1828461251c565b9050611bd1737a250d5630b4cf539739df2c5dacb4c659f2488d8261095b565b508115611be757611be53061dead846112fd565b505b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1c57611c1c6125a3565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb291906125b9565b81600181518110611cc557611cc56125a3565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611d1d9085906000908690309042906004016125d6565b600060405180830381600087803b158015611d3757600080fd5b505af1158015611d4b573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a00151611d759190612647565b611d7f9190612647565b6001600160801b03169050600081886020015160ff1684611da091906124e3565b611daa91906124fa565b9050600082896040015160ff1685611dc291906124e3565b611dcc91906124fa565b90506000838a6060015160ff1686611de491906124e3565b611dee91906124fa565b6010546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611e40576040519150601f19603f3d011682016040523d82523d6000602084013e611e45565b606091505b50506011546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611e95576040519150601f19603f3d011682016040523d82523d6000602084013e611e9a565b606091505b5050600f546040519192506001600160a01b0316904790600081818185875af1925050503d8060008114611eea576040519150601f19603f3d011682016040523d82523d6000602084013e611eef565b606091505b50506013805460ff19169055505050505050505050505050565b6001600160a01b0382166000908152600b602052604081205460ff16158015610b845750506001600160a01b03166000908152600b602052604090205460ff1615919050565b6040805160c08082018352600d5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600e54808b168d529889048a16978c019790975294870488169b8a019b909b52918504861690880152830490931696850196909652919091041692810192909252600091828615156001146120455760648260a001516001600160801b03168661203691906124e3565b61204091906124fa565b61206a565b60648360a001516001600160801b03168661206091906124e3565b61206a91906124fa565b905060006001881515146120a8578260a001516001600160801b0316836000015160ff168361209991906124e3565b6120a391906124fa565b6120d3565b8360a001516001600160801b0316846000015160ff16836120c991906124e3565b6120d391906124fa565b9050806008546120e3919061251c565b60085560006120f2828461251c565b9050801561216e5730600090815260076020526040902054612115908290612590565b306000818152600760205260409020919091556001600160a01b0389167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61215c84610bbe565b60405190815260200160405180910390a35b6008546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a16121b5838861251c565b9998505050505050505050565b600060208083528351808285015260005b818110156121ef578581018301518582016040015282016121d3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c5e57600080fd5b6000806040838503121561223857600080fd5b823561224381612210565b946020939093013593505050565b60006020828403121561226357600080fd5b8135610b8481612210565b60006020828403121561228057600080fd5b5035919050565b60008060006060848603121561229c57600080fd5b83356122a781612210565b925060208401356122b781612210565b929592945050506040919091013590565b80358015158114610bfc57600080fd5b6000602082840312156122ea57600080fd5b610b84826122c8565b6000806040838503121561230657600080fd5b823561231181612210565b915061231f602084016122c8565b90509250929050565b803560ff81168114610bfc57600080fd5b6000806000806000806000806000806101408b8d03121561235957600080fd5b6123628b612328565b995061237060208c01612328565b985061237e60408c01612328565b975061238c60608c01612328565b965061239a60808c01612328565b95506123a860a08c01612328565b94506123b660c08c01612328565b93506123c460e08c01612328565b92506123d36101008c01612328565b91506123e26101208c01612328565b90509295989b9194979a5092959850565b60008060006060848603121561240857600080fd5b833561241381612210565b9250602084013561242381612210565b9150604084013561243381612210565b809150509250925092565b6000806040838503121561245157600080fd5b823561245c81612210565b9150602083013561246c81612210565b809150509250929050565b6000806040838503121561248a57600080fd5b612243836122c8565b600181811c908216806124a757607f821691505b6020821081036124c757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109c2576109c26124cd565b60008261251757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109c2576109c26124cd565b60ff81811683821601908111156109c2576109c26124cd565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b808201808211156109c2576109c26124cd565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156125cb57600080fd5b8151610b8481612210565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126265784516001600160a01b031683529383019391830191600101612601565b50506001600160a01b03969096166060850152505050608001529392505050565b6001600160801b03828116828216039080821115612667576126676124cd565b509291505056fea26469706673582212206193411a51f3d2063011e93c9e9ed962e1d7b850f179c1d2ba599738e47fafd064736f6c63430008130033
Deployed Bytecode Sourcemap
7002:14996:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8913:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8913:56:0;;;;;;;;11510:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10347:216::-;;;;;;;;;;-1:-1:-1;10347:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;10347:216:0;1205:187:1;8157:42:0;;;;;;;;;;-1:-1:-1;8157:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;8994;;;;;;;;;;-1:-1:-1;8994:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8206:46;;;;;;;;;;;;;;;;11314:102;;;;;;;;;;-1:-1:-1;11396:12:0;;11314:102;;13081:266;;;;;;;;;;-1:-1:-1;13081:266:0;;;;;:::i;:::-;;:::i;:::-;;10865:441;;;;;;;;;;-1:-1:-1;10865:441:0;;;;;:::i;:::-;;:::i;12306:136::-;;;;;;;;;;;;;:::i;8647:96::-;;;;;;;;;;-1:-1:-1;8647:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8647:96:0;;-1:-1:-1;;;;;8647:96:0;;;;;;;2592:4:1;2580:17;;;2562:36;;2634:17;;;2629:2;2614:18;;2607:45;2688:17;;;2668:18;;;2661:45;;;;2742:17;;;2737:2;2722:18;;2715:45;2797:17;;;2791:3;2776:19;;2769:46;-1:-1:-1;;;;;2852:47:1;;;2846:3;2831:19;;2824:76;2549:3;2534:19;8647:96:0;2295:611:1;12149:149:0;;;;;;;;;;-1:-1:-1;12149:149:0;;;;;:::i;:::-;;:::i;11424:78::-;;;;;;;;;;-1:-1:-1;11424:78:0;;11492:2;3053:36:1;;3041:2;3026:18;11424:78:0;2911:184:1;15660:139:0;;;;;;;;;;-1:-1:-1;15660:139:0;;;;;:::i;:::-;;:::i;8416:32::-;;;;;;;;;;-1:-1:-1;8416:32:0;;;;;;;;;;;13625:170;;;;;;;;;;;;;:::i;15807:135::-;;;;;;;;;;-1:-1:-1;15807:135:0;;;;;:::i;:::-;;:::i;15534:91::-;;;;;;;;;;-1:-1:-1;15534:91:0;;;;;:::i;:::-;;:::i;12001:140::-;;;;;;;;;;-1:-1:-1;12001:140:0;;;;;:::i;:::-;;:::i;8545:95::-;;;;;;;;;;-1:-1:-1;8545:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8545:95:0;;-1:-1:-1;;;;;8545:95:0;;;10571:122;;;;;;;;;;-1:-1:-1;10571:122:0;;;;;:::i;:::-;;:::i;15202:119::-;;;;;;;;;;-1:-1:-1;15202:119:0;;;;;:::i;:::-;;:::i;7970:58::-;;;;;;;;;;;;;;;;11700:138;;;;;;;;;;-1:-1:-1;11700:138:0;;;;;:::i;:::-;;:::i;2828:103::-;;;;;;;;;;;;;:::i;7909:54::-;;;;;;;;;;;;;;;;12450:113;;;;;;;;;;;;;:::i;2180:87::-;;;;;;;;;;-1:-1:-1;2226:7:0;2253:6;-1:-1:-1;;;;;2253:6:0;2180:87;;;-1:-1:-1;;;;;3934:32:1;;;3916:51;;3904:2;3889:18;2180:87:0;3770:203:1;11603:89:0;;;;;;;;;;;;;:::i;12571:306::-;;;;;;;;;;-1:-1:-1;12571:306:0;;;;;:::i;:::-;;:::i;7386:126::-;;;;;;;;;;;;7469:42;7386:126;;10701:156;;;;;;;;;;-1:-1:-1;10701:156:0;;;;;:::i;:::-;;:::i;8874:32::-;;;;;;;;;;-1:-1:-1;8874:32:0;;;;-1:-1:-1;;;8874:32:0;;;;;;7566:57;;;;;;;;;;-1:-1:-1;7566:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8329:33;;;;;;;;;;-1:-1:-1;8329:33:0;;;;;;;;13355:262;;;;;;;;;;-1:-1:-1;13355:262:0;;;;;:::i;:::-;;:::i;14106:1088::-;;;;;;;;;;-1:-1:-1;14106:1088:0;;;;;:::i;:::-;;:::i;8369:40::-;;;;;;;;;;-1:-1:-1;8369:40:0;;;;;;;;;;;15337:189;;;;;;;;;;-1:-1:-1;15337:189:0;;;;;:::i;:::-;;:::i;13803:131::-;;;;;;;;;;;;;:::i;11846:147::-;;;;;;;;;;-1:-1:-1;11846:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;11957:19:0;;;11930:7;11957:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11846:147;13942:156;;;;;;;;;;-1:-1:-1;13942:156:0;;;;;:::i;:::-;;:::i;3086:201::-;;;;;;;;;;-1:-1:-1;3086:201:0;;;;;:::i;:::-;;:::i;7519:40::-;;;;;;;;;;;;;;;11510:85;11549:13;11582:5;11575:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11510:85;:::o;10347:216::-;10451:10;10422:4;10439:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10439:32:0;;;;;;;;;;:41;;;10496:37;10422:4;;10439:32;;10496:37;;;;10474:6;160:25:1;;148:2;133:18;;14:177;10496:37:0;;;;;;;;-1:-1:-1;10551:4:0;10347:216;;;;;:::o;13081:266::-;2066:13;:11;:13::i;:::-;13217:4:::1;13209;13189:12;;13204:1;13189:16;;;;:::i;:::-;13188:25;;;;:::i;:::-;13187:34;;;;:::i;:::-;13177:6;:44;;13155:141;;;::::0;-1:-1:-1;;;13155:141:0;;7491:2:1;13155:141:0::1;::::0;::::1;7473:21:1::0;7530:2;7510:18;;;7503:30;7569:34;7549:18;;;7542:62;-1:-1:-1;;;7620:18:1;;;7613:45;7675:19;;13155:141:0::1;;;;;;;;;13322:17;:6:::0;13332::::1;13322:17;:::i;:::-;13307:12;:32:::0;-1:-1:-1;13081:266:0:o;10865:441::-;-1:-1:-1;;;;;10986:19:0;;10965:4;10986:19;;;:11;:19;;;;;;;;11006:10;10986:31;;;;;;;;-1:-1:-1;;10986:52:0;10982:257;;-1:-1:-1;;;;;11063:19:0;;;;;;:11;:19;;;;;;;;11083:10;11063:31;;;;;;;;:41;-1:-1:-1;11063:41:0;11055:83;;;;-1:-1:-1;;;11055:83:0;;7907:2:1;11055:83:0;;;7889:21:1;7946:2;7926:18;;;7919:30;7985:31;7965:18;;;7958:59;8034:18;;11055:83:0;7705:353:1;11055:83:0;-1:-1:-1;;;;;11187:19:0;;;;;;:11;:19;;;;;;;;11207:10;11187:31;;;;;;;;:40;;11221:6;;11187:40;:::i;:::-;-1:-1:-1;;;;;11153:19:0;;;;;;:11;:19;;;;;;;;11173:10;11153:31;;;;;;;:74;10982:257;11258:40;11272:6;11280:9;11291:6;11258:13;:40::i;:::-;11251:47;;10865:441;;;;;;:::o;12306:136::-;12359:7;12419:15;7297:42;12419:9;:15::i;:::-;12401;7224:42;12401:9;:15::i;:::-;12386:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;12379:55;;12306:136;:::o;12149:149::-;12219:7;12274:16;;12259:12;;12246:10;:25;;;;:::i;:::-;:44;;;;:::i;15660:139::-;15727:4;2066:13;:11;:13::i;:::-;-1:-1:-1;15744:20:0::1;:25:::0;;-1:-1:-1;;15744:25:0::1;;::::0;::::1;;;;::::0;;-1:-1:-1;2090:1:0::1;15660:139:::0;;;:::o;13625:170::-;2066:13;:11;:13::i;:::-;13702:58:::1;::::0;13685:12:::1;::::0;13710:10:::1;::::0;13734:21:::1;::::0;13685:12;13702:58;13685:12;13702:58;13734:21;13710:10;13702:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13684:76;;;13779:7;13771:16;;;::::0;::::1;;13673:122;13625:170::o:0;15807:135::-;2066:13;:11;:13::i;:::-;-1:-1:-1;;;;;15896:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;15896:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15807:135::o;15534:91::-;2066:13;:11;:13::i;:::-;15599::::1;:18:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;15599:18:0;;::::1;::::0;;;::::1;::::0;;15534:91::o;12001:140::-;12066:7;12121:12;;12102:16;;12093:6;:25;;;;:::i;10571:122::-;10626:4;10650:35;10658:7;-1:-1:-1;;10650:7:0;:35::i;15202:119::-;2066:13;:11;:13::i;:::-;-1:-1:-1;;;;;15285:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15285:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15202:119::o;11700:138::-;-1:-1:-1;;;;;11813:16:0;;11766:7;11813:16;;;:7;:16;;;;;;11793:37;;:19;:37::i;2828:103::-;2066:13;:11;:13::i;:::-;2893:30:::1;2920:1;2893:18;:30::i;:::-;2828:103::o:0;12450:113::-;2066:13;:11;:13::i;:::-;12505::::1;:20:::0;;-1:-1:-1;;12505:20:0::1;12521:4;12505:20;::::0;;12536:12:::1;:19:::0;;-1:-1:-1;;;;12536:19:0::1;-1:-1:-1::0;;;12536:19:0::1;::::0;;12450:113::o;11603:89::-;11644:13;11677:7;11670:14;;;;;:::i;12571:306::-;2066:13;:11;:13::i;:::-;12715:15:::1;-1:-1:-1::0;;;;;12707:23:0::1;:4;-1:-1:-1::0;;;;;12707:23:0::1;::::0;12685:130:::1;;;::::0;-1:-1:-1;;;12685:130:0;;8608:2:1;12685:130:0::1;::::0;::::1;8590:21:1::0;8647:2;8627:18;;;8620:30;8686:34;8666:18;;;8659:62;8757:27;8737:18;;;8730:55;8802:19;;12685:130:0::1;8406:421:1::0;12685:130:0::1;12828:41;12857:4;12863:5;12828:28;:41::i;:::-;12571:306:::0;;:::o;10701:156::-;10781:4;10805:44;10819:10;10831:9;10842:6;10805:13;:44::i;13355:262::-;2066:13;:11;:13::i;:::-;13494:4:::1;13486;13466:12;;13481:1;13466:16;;;;:::i;:::-;13465:25;;;;:::i;:::-;13464:34;;;;:::i;:::-;13454:6;:44;;13432:130;;;::::0;-1:-1:-1;;;13432:130:0;;9034:2:1;13432:130:0::1;::::0;::::1;9016:21:1::0;9073:2;9053:18;;;9046:30;9112:34;9092:18;;;9085:62;-1:-1:-1;;;9163:18:1;;;9156:34;9207:19;;13432:130:0::1;8832:400:1::0;13432:130:0::1;13592:17;:6:::0;13602::::1;13592:17;:::i;:::-;13573:16;:36:::0;-1:-1:-1;13355:262:0:o;14106:1088::-;2066:13;:11;:13::i;:::-;14462:21:::1;14550:10:::0;14534:13;14523:8;14486:34:::1;14505:15:::0;14486:16;:34:::1;:::i;:::-;:45;;;;:::i;:::-;:61;;;;:::i;:::-;:74;;;;:::i;:::-;14462:98;;::::0;-1:-1:-1;14571:22:0::1;14664:11:::0;14647:14;14635:9;14596:36:::1;14616:16:::0;14596:17;:36:::1;:::i;:::-;:48;;;;:::i;:::-;:65;;;;:::i;:::-;:79;;;;:::i;:::-;14571:104;;;;14697:230;;;;;;;;14728:16;14697:230;;;;;;14770:15;14697:230;;;;;;14804:8;14697:230;;;;;;14836:13;14697:230;;;;;;14870:10;14697:230;;;;;;14902:13;-1:-1:-1::0;;;;;14697:230:0::1;;;::::0;14688:6:::1;:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14688:239:0::1;;;;;-1:-1:-1::0;;;;;14688:239:0::1;;;;;;;;;14950:236;;;;;;;;14981:17;14950:236;;;;;;15024:16;14950:236;;;;;;15059:9;14950:236;;;;;;15092:14;14950:236;;;;;;15127:11;14950:236;;;;;;15160:14;-1:-1:-1::0;;;;;14950:236:0::1;;;::::0;14940:7:::1;:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14940:246:0::1;;;;;-1:-1:-1::0;;;;;14940:246:0::1;;;;;;;;;14451:743;;14106:1088:::0;;;;;;;;;;:::o;15337:189::-;2066:13;:11;:13::i;:::-;15429:20:::1;:25:::0;;-1:-1:-1;;;;;15429:25:0;;::::1;-1:-1:-1::0;;;;;;15429:25:0;;::::1;;::::0;;;15465:13:::1;:19:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;15495:18:::1;:23:::0;;;;;::::1;::::0;::::1;;::::0;;15337:189::o;13803:131::-;2066:13;:11;:13::i;:::-;13860:66:::1;13882:4;13889:10;13901:24;13919:4;13901:9;:24::i;:::-;13860:13;:66::i;13942:156::-:0;2066:13;:11;:13::i;:::-;14033:12:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;14033:23:0::1;-1:-1:-1::0;;;;14033:23:0;;::::1;::::0;;;::::1;::::0;;;14067:13:::1;:23:::0;13942:156::o;3086:201::-;2066:13;:11;:13::i;:::-;-1:-1:-1;;;;;3175:22:0;::::1;3167:73;;;::::0;-1:-1:-1;;;3167:73:0;;9592:2:1;3167:73:0::1;::::0;::::1;9574:21:1::0;9631:2;9611:18;;;9604:30;9670:34;9650:18;;;9643:62;-1:-1:-1;;;9721:18:1;;;9714:36;9767:19;;3167:73:0::1;9390:402:1::0;3167:73:0::1;3251:28;3270:8;3251:18;:28::i;2345:132::-:0;2226:7;2253:6;-1:-1:-1;;;;;2253:6:0;870:10;2409:23;2401:68;;;;-1:-1:-1;;;2401:68:0;;9999:2:1;2401:68:0;;;9981:21:1;;;10018:18;;;10011:30;10077:34;10057:18;;;10050:62;10129:18;;2401:68:0;9797:356:1;15950:2626:0;-1:-1:-1;;;;;16068:21:0;;16042:4;16068:21;;;:10;:21;;;;;;;;16067:22;:45;;;;-1:-1:-1;;;;;;16094:18:0;;;;;;:10;:18;;;;;;;;16093:19;16067:45;16059:69;;;;-1:-1:-1;;;16059:69:0;;10360:2:1;16059:69:0;;;10342:21:1;10399:2;10379:18;;;10372:30;-1:-1:-1;;;10418:18:1;;;10411:41;10469:18;;16059:69:0;10158:335:1;16059:69:0;16145:6;;;;16141:87;;;16175:41;16190:6;16198:9;16209:6;16175:14;:41::i;:::-;16168:48;;;;16141:87;16244:13;;;;;;;16240:1657;;;16279:13;;;;16274:210;;-1:-1:-1;;;;;16357:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;16380:22:0;;;;;;:11;:22;;;;;;;;16357:45;16327:141;;;;-1:-1:-1;;;16327:141:0;;10700:2:1;16327:141:0;;;10682:21:1;10739:2;10719:18;;;10712:30;-1:-1:-1;;;10758:18:1;;;10751:52;10820:18;;16327:141:0;10498:346:1;16327:141:0;-1:-1:-1;;;;;16528:33:0;;;;;;:25;:33;;;;;;;;:62;;;;-1:-1:-1;;;;;;16566:24:0;;;;;;:13;:24;;;;;;;;16565:25;16528:62;16524:707;;;16643:12;;16633:6;:22;;16625:75;;;;-1:-1:-1;;;16625:75:0;;;;;;;:::i;:::-;16760:16;;16736:20;16746:9;16736;:20::i;:::-;16727:29;;:6;:29;:::i;:::-;:49;;16719:81;;;;-1:-1:-1;;;16719:81:0;;11590:2:1;16719:81:0;;;11572:21:1;11629:2;11609:18;;;11602:30;-1:-1:-1;;;11648:18:1;;;11641:49;11707:18;;16719:81:0;11388:343:1;16719:81:0;16524:707;;;-1:-1:-1;;;;;16864:36:0;;;;;;:25;:36;;;;;;;;:62;;;;-1:-1:-1;;;;;;16905:21:0;;;;;;:13;:21;;;;;;;;16904:22;16864:62;16860:371;;;16978:12;;16968:6;:22;;16960:75;;;;-1:-1:-1;;;16960:75:0;;;;;;;:::i;16860:371::-;-1:-1:-1;;;;;17075:24:0;;;;;;:13;:24;;;;;;;;17070:161;;17175:16;;17151:20;17161:9;17151;:20::i;:::-;17142:29;;:6;:29;:::i;:::-;:49;;17134:81;;;;-1:-1:-1;;;17134:81:0;;11590:2:1;17134:81:0;;;11572:21:1;11629:2;11609:18;;;11602:30;-1:-1:-1;;;11648:18:1;;;11641:49;11707:18;;17134:81:0;11388:343:1;17134:81:0;17276:20;;;;;;;17272:614;;;2226:7;2253:6;-1:-1:-1;;;;;17343:20:0;;;2253:6;;17343:20;;;;:84;;-1:-1:-1;;;;;;17388:39:0;;7469:42;17388:39;;17343:84;:137;;;;;17465:15;-1:-1:-1;;;;;17452:28:0;:9;-1:-1:-1;;;;;17452:28:0;;;17343:137;17317:554;;;17586:9;17557:39;;;;:28;:39;;;;;;17632:12;;17557:43;;17599:1;17557:43;:::i;:::-;:87;17523:251;;;;-1:-1:-1;;;17523:251:0;;11938:2:1;17523:251:0;;;11920:21:1;11977:2;11957:18;;;11950:30;12016:34;11996:18;;;11989:62;12087:34;12067:18;;;12060:62;-1:-1:-1;;;12138:19:1;;;12131:45;12193:19;;17523:251:0;11736:482:1;17523:251:0;17826:9;17797:39;;;;:28;:39;;;;;17839:12;17797:54;;17317:554;17913:17;:15;:17::i;:::-;17909:61;;;17947:11;:9;:11::i;:::-;17982:24;18009:26;18028:6;18009:18;:26::i;:::-;-1:-1:-1;;;;;18054:15:0;;;;;;:7;:15;;;;;;17982:53;;-1:-1:-1;18054:35:0;-1:-1:-1;18054:35:0;18046:68;;;;-1:-1:-1;;;18046:68:0;;12425:2:1;18046:68:0;;;12407:21:1;12464:2;12444:18;;;12437:30;-1:-1:-1;;;12483:18:1;;;12476:50;12543:18;;18046:68:0;12223:344:1;18046:68:0;-1:-1:-1;;;;;18143:15:0;;;;;;:7;:15;;;;;;:34;;18161:16;;18143:34;:::i;:::-;-1:-1:-1;;;;;18125:15:0;;;;;;:7;:15;;;;;:52;;;;18219:33;18133:6;18242:9;18219:14;:33::i;:::-;:170;;18373:16;18219:170;;;18268:89;18300:15;-1:-1:-1;;;;;18290:25:0;:6;-1:-1:-1;;;;;18290:25:0;;:40;;18325:5;18290:40;;;18318:4;18290:40;18332:6;18340:16;18268:21;:89::i;:::-;-1:-1:-1;;;;;18421:18:0;;;;;;:7;:18;;;;;;18190:199;;-1:-1:-1;18421:39:0;;18190:199;;18421:39;:::i;:::-;-1:-1:-1;;;;;18400:18:0;;;;;;;:7;:18;;;;;:60;;;;18478:68;;;18506:39;18526:18;18506:19;:39::i;:::-;18478:68;;160:25:1;;;148:2;133:18;18478:68:0;;;;;;;-1:-1:-1;18564:4:0;;15950:2626;-1:-1:-1;;;;;15950:2626:0:o;3447:191::-;3521:16;3540:6;;-1:-1:-1;;;;;3557:17:0;;;-1:-1:-1;;;;;;3557:17:0;;;;;;3590:40;;3540:6;;;;;;;3590:40;;3521:16;3590:40;3510:128;3447:191;:::o;12885:188::-;-1:-1:-1;;;;;12968:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;12968:39:0;;;;;;;;;;13025:40;;12968:39;;:31;13025:40;;;12885:188;;:::o;18584:455::-;18677:4;18694:24;18721:26;18740:6;18721:18;:26::i;:::-;-1:-1:-1;;;;;18766:15:0;;;;;;:7;:15;;;;;;18694:53;;-1:-1:-1;18766:35:0;-1:-1:-1;18766:35:0;18758:68;;;;-1:-1:-1;;;18758:68:0;;12425:2:1;18758:68:0;;;12407:21:1;12464:2;12444:18;;;12437:30;-1:-1:-1;;;12483:18:1;;;12476:50;12543:18;;18758:68:0;12223:344:1;18758:68:0;-1:-1:-1;;;;;18855:15:0;;;;;;:7;:15;;;;;;:34;;18873:16;;18855:34;:::i;:::-;-1:-1:-1;;;;;18837:15:0;;;;;;;:7;:15;;;;;;:52;;;;18921:18;;;;;;;:37;;18942:16;;18921:37;:::i;:::-;-1:-1:-1;;;;;18900:18:0;;;;;;;:7;:18;;;;;;;:58;;;;18974:35;;;;;;;;;;19002:6;160:25:1;;148:2;133:18;;14:177;18974:35:0;;;;;;;;-1:-1:-1;19027:4:0;;18584:455;-1:-1:-1;;;;18584:455:0:o;20170:183::-;20220:4;20244:10;-1:-1:-1;;;;;20258:15:0;20244:29;;;;;:40;;-1:-1:-1;20278:6:0;;;;20277:7;20244:40;:56;;;;-1:-1:-1;20288:12:0;;-1:-1:-1;;;20288:12:0;;;;20244:56;:101;;;;;20332:13;;20304:24;20322:4;20304:9;:24::i;:::-;:41;;20237:108;;20170:183;:::o;20361:1465::-;9147:6;:13;;9156:4;-1:-1:-1;;9147:13:0;;;;;;20411:30:::1;::::0;;::::1;::::0;::::1;::::0;;20434:7:::1;20411:30:::0;9147:13;20411:30;;::::1;::::0;;9147:13;20411:30;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;20411:30:0;;::::1;-1:-1:-1::0;;;;;20411:30:0::1;::::0;;;;;;20480:13:::1;::::0;20411:30;;-1:-1:-1;;20411:30:0;20527:32:::1;::::0;20480:13;20527:32:::1;:::i;:::-;:50;;;;:::i;:::-;20504:73:::0;-1:-1:-1;20588:20:0::1;20611:30;20504:73:::0;20611:15;:30:::1;:::i;:::-;20588:53;;20652:49;7469:42;20688:12;20652:7;:49::i;:::-;-1:-1:-1::0;20717:16:0;;20714:126:::1;;20780:48;20802:4;7224:42;20815:12;20780:13;:48::i;:::-;;20714:126;20893:16;::::0;;20907:1:::1;20893:16:::0;;;;;::::1;::::0;;20869:21:::1;::::0;20893:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20893:16:0::1;20869:40;;20938:4;20920;20925:1;20920:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;20920:23:0::1;;;-1:-1:-1::0;;;;;20920:23:0::1;;;::::0;::::1;7469:42;-1:-1:-1::0;;;;;20964:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20954:4;20959:1;20954:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20954:34:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:34;21001:147:::1;::::0;-1:-1:-1;;;21001:147:0;;7469:42:::1;::::0;21001:68:::1;::::0;:147:::1;::::0;21084:12;;21098:1:::1;::::0;21101:4;;21115::::1;::::0;21122:15:::1;::::0;21001:147:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21161:17;21181:21;21161:41;;21215:20;21279:9;:14;;;21238:55;;21256:9;:20;;;21238:38;;:9;:15;;;:38;;;;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1::0;;;;;21215:78:0::1;;;21304:26;21367:12;21345:9;:19;;;21333:31;;:9;:31;;;;:::i;:::-;:46;;;;:::i;:::-;21304:75;;21390:19;21439:12;21424:9;:12;;;21412:24;;:9;:24;;;;:::i;:::-;:39;;;;:::i;:::-;21390:61;;21462:24;21521:12;21501:9;:17;;;21489:29;;:9;:29;;;;:::i;:::-;:44;;;;:::i;:::-;21592:13;::::0;21584:51:::1;::::0;21462:71;;-1:-1:-1;21564:15:0::1;::::0;-1:-1:-1;;;;;21592:13:0;;::::1;::::0;21619:11;;21564:15;21584:51;21564:15;21584:51;21619:11;21592:13;21584:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;21670:18:0::1;::::0;21662:61:::1;::::0;21563:72;;-1:-1:-1;;;;;;21670:18:0::1;::::0;21702:16;;21662:61:::1;::::0;;;21702:16;21670:18;21662:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;21758:20:0::1;::::0;21750:68:::1;::::0;21646:77;;-1:-1:-1;;;;;;21758:20:0::1;::::0;21792:21:::1;::::0;21750:68:::1;::::0;;;21792:21;21758:20;21750:68:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;9183:6:0;:14;;-1:-1:-1;;9183:14:0;;;-1:-1:-1;;;;;;;;;;;;20361:1465:0:o;21834:161::-;-1:-1:-1;;;;;21941:19:0;;21916:4;21941:19;;;:11;:19;;;;;;;;21940:20;:47;;;;-1:-1:-1;;;;;;;21965:22:0;;;;;:11;:22;;;;;;;;21964:23;;21834:161;-1:-1:-1;21834:161:0:o;19047:1115::-;19171:28;;;;;;;;;19193:6;19171:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;19171:28:0;;;;;;;;;;;;;;19210:30;;;;;;;19233:7;19210:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19151:7;;;19296:14;;;19171:28;19296:14;:99;;19392:3;19374:9;:15;;;-1:-1:-1;;;;;19355:34:0;:16;:34;;;;:::i;:::-;:40;;;;:::i;:::-;19296:99;;;19349:3;19332:8;:14;;;-1:-1:-1;;;;;19313:33:0;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;19253:142;-1:-1:-1;19428:27:0;19468:4;19458:14;;;;:164;;19607:9;:15;;;-1:-1:-1;;;;;19562:60:0;19584:9;:20;;;19562:42;;:19;:42;;;;:::i;:::-;:60;;;;:::i;:::-;19458:164;;;19532:8;:14;;;-1:-1:-1;;;;;19488:58:0;19510:8;:19;;;19488:41;;:19;:41;;;;:::i;:::-;:58;;;;:::i;:::-;19428:194;;19673:19;19654:16;;:38;;;;:::i;:::-;19635:16;:57;19727:29;19759:41;19781:19;19759;:41;:::i;:::-;19727:73;-1:-1:-1;19815:25:0;;19811:226;;19898:4;19882:22;;;;:7;:22;;;;;;:46;;19907:21;;19882:46;:::i;:::-;19873:4;19857:22;;;;:7;:22;;;;;:71;;;;-1:-1:-1;;;;;19950:75:0;;;19982:42;20002:21;19982:19;:42::i;:::-;19950:75;;160:25:1;;;148:2;133:18;19950:75:0;;;;;;;19811:226;20081:16;;20052:46;;;14456:25:1;;;14512:2;14497:18;;14490:34;;;;20052:46:0;;14429:18:1;20052:46:0;;;;;;;20116:38;20135:19;20116:16;:38;:::i;:::-;20109:45;19047:1115;-1:-1:-1;;;;;;;;;19047:1115:0:o;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:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:180::-;1708:6;1761:2;1749:9;1740:7;1736:23;1732:32;1729:52;;;1777:1;1774;1767:12;1729:52;-1:-1:-1;1800:23:1;;1649:180;-1:-1:-1;1649:180:1:o;1834:456::-;1911:6;1919;1927;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2035:9;2022:23;2054:31;2079:5;2054:31;:::i;:::-;2104:5;-1:-1:-1;2161:2:1;2146:18;;2133:32;2174:33;2133:32;2174:33;:::i;:::-;1834:456;;2226:7;;-1:-1:-1;;;2280:2:1;2265:18;;;;2252:32;;1834:456::o;3100:160::-;3165:20;;3221:13;;3214:21;3204:32;;3194:60;;3250:1;3247;3240:12;3265:180;3321:6;3374:2;3362:9;3353:7;3349:23;3345:32;3342:52;;;3390:1;3387;3380:12;3342:52;3413:26;3429:9;3413:26;:::i;3450:315::-;3515:6;3523;3576:2;3564:9;3555:7;3551:23;3547:32;3544:52;;;3592:1;3589;3582:12;3544:52;3631:9;3618:23;3650:31;3675:5;3650:31;:::i;:::-;3700:5;-1:-1:-1;3724:35:1;3755:2;3740:18;;3724:35;:::i;:::-;3714:45;;3450:315;;;;;:::o;4212:156::-;4278:20;;4338:4;4327:16;;4317:27;;4307:55;;4358:1;4355;4348:12;4373:819;4493:6;4501;4509;4517;4525;4533;4541;4549;4557;4565;4618:3;4606:9;4597:7;4593:23;4589:33;4586:53;;;4635:1;4632;4625:12;4586:53;4658:27;4675:9;4658:27;:::i;:::-;4648:37;;4704:36;4736:2;4725:9;4721:18;4704:36;:::i;:::-;4694:46;;4759:36;4791:2;4780:9;4776:18;4759:36;:::i;:::-;4749:46;;4814:36;4846:2;4835:9;4831:18;4814:36;:::i;:::-;4804:46;;4869:37;4901:3;4890:9;4886:19;4869:37;:::i;:::-;4859:47;;4925:37;4957:3;4946:9;4942:19;4925:37;:::i;:::-;4915:47;;4981:37;5013:3;5002:9;4998:19;4981:37;:::i;:::-;4971:47;;5037:37;5069:3;5058:9;5054:19;5037:37;:::i;:::-;5027:47;;5093:37;5125:3;5114:9;5110:19;5093:37;:::i;:::-;5083:47;;5149:37;5181:3;5170:9;5166:19;5149:37;:::i;:::-;5139:47;;4373:819;;;;;;;;;;;;;:::o;5197:529::-;5274:6;5282;5290;5343:2;5331:9;5322:7;5318:23;5314:32;5311:52;;;5359:1;5356;5349:12;5311:52;5398:9;5385:23;5417:31;5442:5;5417:31;:::i;:::-;5467:5;-1:-1:-1;5524:2:1;5509:18;;5496:32;5537:33;5496:32;5537:33;:::i;:::-;5589:7;-1:-1:-1;5648:2:1;5633:18;;5620:32;5661:33;5620:32;5661:33;:::i;:::-;5713:7;5703:17;;;5197:529;;;;;:::o;5731:388::-;5799:6;5807;5860:2;5848:9;5839:7;5835:23;5831:32;5828:52;;;5876:1;5873;5866:12;5828:52;5915:9;5902:23;5934:31;5959:5;5934:31;:::i;:::-;5984:5;-1:-1:-1;6041:2:1;6026:18;;6013:32;6054:33;6013:32;6054:33;:::i;:::-;6106:7;6096:17;;;5731:388;;;;;:::o;6124:248::-;6189:6;6197;6250:2;6238:9;6229:7;6225:23;6221:32;6218:52;;;6266:1;6263;6256:12;6218:52;6289:26;6305:9;6289:26;:::i;6377:380::-;6456:1;6452:12;;;;6499;;;6520:61;;6574:4;6566:6;6562:17;6552:27;;6520:61;6627:2;6619:6;6616:14;6596:18;6593:38;6590:161;;6673:10;6668:3;6664:20;6661:1;6654:31;6708:4;6705:1;6698:15;6736:4;6733:1;6726:15;6590:161;;6377:380;;;:::o;6762:127::-;6823:10;6818:3;6814:20;6811:1;6804:31;6854:4;6851:1;6844:15;6878:4;6875:1;6868:15;6894:168;6967:9;;;6998;;7015:15;;;7009:22;;6995:37;6985:71;;7036:18;;:::i;7067:217::-;7107:1;7133;7123:132;;7177:10;7172:3;7168:20;7165:1;7158:31;7212:4;7209:1;7202:15;7240:4;7237:1;7230:15;7123:132;-1:-1:-1;7269:9:1;;7067:217::o;8063:128::-;8130:9;;;8151:11;;;8148:37;;;8165:18;;:::i;9237:148::-;9325:4;9304:12;;;9318;;;9300:31;;9343:13;;9340:39;;;9359:18;;:::i;10849:404::-;11051:2;11033:21;;;11090:2;11070:18;;;11063:30;11129:34;11124:2;11109:18;;11102:62;-1:-1:-1;;;11195:2:1;11180:18;;11173:38;11243:3;11228:19;;10849:404::o;11258:125::-;11323:9;;;11344:10;;;11341:36;;;11357:18;;:::i;12704:127::-;12765:10;12760:3;12756:20;12753:1;12746:31;12796:4;12793:1;12786:15;12820:4;12817:1;12810:15;12836:251;12906:6;12959:2;12947:9;12938:7;12934:23;12930:32;12927:52;;;12975:1;12972;12965:12;12927:52;13007:9;13001:16;13026:31;13051:5;13026:31;:::i;13092:980::-;13354:4;13402:3;13391:9;13387:19;13433:6;13422:9;13415:25;13459:2;13497:6;13492:2;13481:9;13477:18;13470:34;13540:3;13535:2;13524:9;13520:18;13513:31;13564:6;13599;13593:13;13630:6;13622;13615:22;13668:3;13657:9;13653:19;13646:26;;13707:2;13699:6;13695:15;13681:29;;13728:1;13738:195;13752:6;13749:1;13746:13;13738:195;;;13817:13;;-1:-1:-1;;;;;13813:39:1;13801:52;;13908:15;;;;13873:12;;;;13849:1;13767:9;13738:195;;;-1:-1:-1;;;;;;;13989:32:1;;;;13984:2;13969:18;;13962:60;-1:-1:-1;;;14053:3:1;14038:19;14031:35;13950:3;13092:980;-1:-1:-1;;;13092:980:1:o;14077:200::-;-1:-1:-1;;;;;14213:10:1;;;14201;;;14197:27;;14236:12;;;14233:38;;;14251:18;;:::i;:::-;14233:38;14077:200;;;;:::o
Swarm Source
ipfs://6193411a51f3d2063011e93c9e9ed962e1d7b850f179c1d2ba599738e47fafd0
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.