ERC-20
Overview
Max Total Supply
1,000,000,000,000 FLAI
Holders
36
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
6,742,646,943.444930304507067854 FLAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FlashLoanArbitrageAI
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-17 */ /* //Flash Loan Arbitrage AI- all in one tool for passive income on arbitrage. //FLAI tools: flash loan trades, arbitrage platform with success rate 80%, custom alert of token's dip //lP locked on Unicrypt, 2/3 tax //Telegram: https://t.me/FlashLoanArbitrageERC */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = 0x290CDdF225Bf88070e14f9C10ee6E06D02cf4f62; emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract FlashLoanArbitrageAI is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; mapping (address => bool) public _isBlacklisted; bool public noBlackList; address payable private Wallet_Dev = payable(0x290CDdF225Bf88070e14f9C10ee6E06D02cf4f62); address payable private Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); address payable private Wallet_zero = payable(0x0000000000000000000000000000000000000000); string private _name = "Flash Loan Arbitrage AI"; string private _symbol = "FLAI"; uint8 private _decimals = 18; uint256 private _tTotal = 1000000000000 * 10**18; uint256 private _tFeeTotal; uint8 private txCount = 0; uint8 private swapTrigger = 3; uint256 private maxPossibleFee = 99; uint256 private _TotalFee = 20; uint256 public _buyFee = 10; uint256 public _sellFee = 10; uint256 private _previousTotalFee = _TotalFee; uint256 private _previousBuyFee = _buyFee; uint256 private _previousSellFee = _sellFee; uint256 public _maxWalletToken = _tTotal.mul(2).div(100); uint256 private _previousMaxWalletToken = _maxWalletToken; uint256 public _maxTxAmount = _tTotal.mul(2).div(100); uint256 private _previousMaxTxAmount = _maxTxAmount; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { _tOwned[owner()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[Wallet_Dev] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function _set_Fees(uint256 Buy_Fee, uint256 Sell_Fee) external onlyOwner() { require((Buy_Fee + Sell_Fee) <= maxPossibleFee, "Fee is too high!"); _sellFee = Sell_Fee; _buyFee = Buy_Fee; } function Wallet_Update_Dev(address payable wallet) public onlyOwner() { Wallet_Dev = wallet; _isExcludedFromFee[Wallet_Dev] = true; } function set_Swap_And_Liquify_Enabled(bool true_or_false) public onlyOwner { swapAndLiquifyEnabled = true_or_false; emit SwapAndLiquifyEnabledUpdated(true_or_false); } function set_Number_Of_Transactions_Before_Liquify_Trigger(uint8 number_of_transactions) public onlyOwner { swapTrigger = number_of_transactions; } receive() external payable {} function Approve_Wallets(address[] calldata addresses) external onlyOwner { uint256 startGas; uint256 gasUsed; for (uint256 i; i < addresses.length; ++i) { if(gasUsed < gasleft()) { startGas = gasleft(); if(!_isBlacklisted[addresses[i]]){ _isBlacklisted[addresses[i]] = true;} gasUsed = startGas - gasleft(); } } } function blacklist_Remove_Wallets(address[] calldata addresses) external onlyOwner { uint256 startGas; uint256 gasUsed; for (uint256 i; i < addresses.length; ++i) { if(gasUsed < gasleft()) { startGas = gasleft(); if(_isBlacklisted[addresses[i]]){ _isBlacklisted[addresses[i]] = false;} gasUsed = startGas - gasleft(); } } } function blacklist_Switch(bool true_or_false) public onlyOwner { noBlackList = true_or_false; } bool public noFeeToTransfer = true; function set_Transfers_Without_Fees(bool true_or_false) external onlyOwner { noFeeToTransfer = true_or_false; } function set_Max_Transaction_Percent(uint256 maxTxPercent_x100) external onlyOwner() { _maxTxAmount = _tTotal*maxTxPercent_x100/10000; } function set_Max_Wallet_Percent(uint256 maxWallPercent_x100) external onlyOwner() { _maxWalletToken = _tTotal*maxWallPercent_x100/10000; } function removeAllFee() private { if(_TotalFee == 0 && _buyFee == 0 && _sellFee == 0) return; _previousBuyFee = _buyFee; _previousSellFee = _sellFee; _previousTotalFee = _TotalFee; _buyFee = 0; _sellFee = 0; _TotalFee = 0; } function restoreAllFee() private { _TotalFee = _previousTotalFee; _buyFee = _previousBuyFee; _sellFee = _previousSellFee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "ERR: zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { if (to != owner() && to != Wallet_Dev && to != address(this) && to != uniswapV2Pair && to != Wallet_Burn && from != owner()){ uint256 heldTokens = balanceOf(to); require((heldTokens + amount) <= _maxWalletToken,"You are trying to buy too many tokens. You have reached the limit for one wallet.");} if (from != owner() && to != owner()) require(amount <= _maxTxAmount, "You are trying to buy more than the max transaction limit."); if (noBlackList){ require(!_isBlacklisted[from] && !_isBlacklisted[to], "This address is blacklisted. Transaction reverted.");} require(from != address(0) && to != address(0), "ERR: Using 0 address!"); require(amount > 0, "Token value must be higher than zero."); if( txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { txCount = 0; uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;} if(contractTokenBalance > 0){ swapAndLiquify(contractTokenBalance); } } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || (noFeeToTransfer && from != uniswapV2Pair && to != uniswapV2Pair)){ takeFee = false; } else if (from == uniswapV2Pair){_TotalFee = _buyFee;} else if (to == uniswapV2Pair){_TotalFee = _sellFee;} _tokenTransfer(from,to,amount,takeFee); } function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { swapTokensForETH(contractTokenBalance); uint256 contractETH = address(this).balance; sendToWallet(Wallet_Dev,contractETH); } function process_Tokens_Now (uint256 percent_Of_Tokens_To_Process) public onlyOwner { require(!inSwapAndLiquify, "Currently processing, try later."); if (percent_Of_Tokens_To_Process > 100){percent_Of_Tokens_To_Process == 100;} uint256 tokensOnContract = balanceOf(address(this)); uint256 sendTokens = tokensOnContract*percent_Of_Tokens_To_Process/100; swapAndLiquify(sendTokens); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function remove_Random_Tokens(address random_Token_Address, address send_to_wallet, uint256 number_of_tokens) public onlyOwner returns(bool _sent){ require(random_Token_Address != address(this), "Can not remove native token"); uint256 randomBalance = IERC20(random_Token_Address).balanceOf(address(this)); if (number_of_tokens > randomBalance){number_of_tokens = randomBalance;} _sent = IERC20(random_Token_Address).transfer(send_to_wallet, number_of_tokens); } function set_New_Router_and_Make_Pair(address newRouter) public onlyOwner() { IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter); uniswapV2Pair = IUniswapV2Factory(_newPCSRouter.factory()).createPair(address(this), _newPCSRouter.WETH()); uniswapV2Router = _newPCSRouter; } function set_New_Router_Address(address newRouter) public onlyOwner() { IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter); uniswapV2Router = _newPCSRouter; } function set_New_Pair_Address(address newPair) public onlyOwner() { uniswapV2Pair = newPair; } function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private { if(!takeFee){ removeAllFee(); } else { txCount++; } _transferTokens(sender, recipient, amount); if(!takeFee) restoreAllFee(); } function _transferTokens(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tDev) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tDev); emit Transfer(sender, recipient, tTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tDev = tAmount*_TotalFee/100; uint256 tTransferAmount = tAmount.sub(tDev); return (tTransferAmount, tDev); } }
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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"Approve_Wallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"Wallet_Update_Dev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"_set_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"blacklist_Remove_Wallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"blacklist_Switch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_Of_Tokens_To_Process","type":"uint256"}],"name":"process_Tokens_Now","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"address","name":"send_to_wallet","type":"address"},{"internalType":"uint256","name":"number_of_tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent_x100","type":"uint256"}],"name":"set_Max_Transaction_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_x100","type":"uint256"}],"name":"set_Max_Wallet_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"set_New_Pair_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_and_Make_Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"number_of_transactions","type":"uint8"}],"name":"set_Number_Of_Transactions_Before_Liquify_Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Swap_And_Liquify_Enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Transfers_Without_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60058054610100600160a81b03191674290cddf225bf88070e14f9c10ee6e06d02cf4f62001790556006805461dead6001600160a01b03199182161790915560078054909116905560c0604052601760809081527f466c617368204c6f616e2041726269747261676520414900000000000000000060a05260089062000086908262000561565b50604080518082019091526004815263464c414960e01b6020820152600990620000b1908262000561565b50600a8054601260ff19909116811782556c0c9f2c9cd04674edea40000000600b819055600d805461ffff19166103001790556063600e556014600f819055601084905560118490559182905560138390559190556200013b906064906200012790600262000497602090811b6200151e17901c565b620004ae60201b620015311790919060201c565b601555601554601655620001676064620001276002600b546200049760201b6200151e1790919060201c565b6017819055601855601a805461ffff60a81b191661010160a81b1790553480156200019157600080fd5b50600080546001600160a01b03191673290cddf225bf88070e14f9c10ee6e06d02cf4f6290811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600b5460016000620001ff6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a191906200062d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031591906200062d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038991906200062d565b601a80546001600160a01b03199081166001600160a01b039384161790915560198054909116918316919091179055600160036000620003d16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620004406000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200048891815260200190565b60405180910390a350620006a8565b6000620004a582846200065f565b90505b92915050565b6000620004a5828462000685565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004e757607f821691505b6020821081036200050857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200055c57600081815260208120601f850160051c81016020861015620005375750805b601f850160051c820191505b81811015620005585782815560010162000543565b5050505b505050565b81516001600160401b038111156200057d576200057d620004bc565b62000595816200058e8454620004d2565b846200050e565b602080601f831160018114620005cd5760008415620005b45750858301515b600019600386901b1c1916600185901b17855562000558565b600085815260208120601f198616915b82811015620005fe57888601518255948401946001909101908401620005dd565b50858210156200061d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200064057600080fd5b81516001600160a01b03811681146200065857600080fd5b9392505050565b8082028115828204841417620004a857634e487b7160e01b600052601160045260246000fd5b600082620006a357634e487b7160e01b600052601260045260246000fd5b500490565b61237380620006b86000396000f3fe6080604052600436106102605760003560e01c806370a0823111610144578063a457c2d7116100b6578063d785d5be1161007a578063d785d5be14610735578063dd62ed3e14610755578063ddbf52661461079b578063ea2f0b37146107bb578063f2fde38b146107db578063f7739b5f146107fb57600080fd5b8063a457c2d714610695578063a514a07d146106b5578063a9059cbb146106d5578063b78f1c83146106f5578063c1f619081461071557600080fd5b80637d1db4a5116101085780637d1db4a5146105ec5780638824e16e146106025780638da5cb5b146106225780638ec0e9a114610640578063942201841461066057806395d89b411461068057600080fd5b806370a082311461053b578063715018a614610571578063768dc7101461058657806378109e54146105b65780637caefa89146105cc57600080fd5b8063313ce567116101dd578063437823ec116101a1578063437823ec1461048a57806349bd5a5e146104aa5780634a74bb02146104ca578063590f897e146104eb57806367cbd84c146105015780636f0941f61461052157600080fd5b8063313ce567146103f25780633343ab831461041457806336b1a1bc14610434578063395093511461045457806340b9a54b1461047457600080fd5b806318160ddd1161022457806318160ddd146103425780631cdd3be314610361578063220f66961461039157806323b872dd146103b25780632e39c6c6146103d257600080fd5b806306fdde031461026c578063095ea7b3146102975780631282a0a0146102c757806313fad07a146102e95780631694505e1461030a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028161081b565b60405161028e9190611ed3565b60405180910390f35b3480156102a357600080fd5b506102b76102b2366004611f39565b6108ad565b604051901515815260200161028e565b3480156102d357600080fd5b506102e76102e2366004611f65565b6108c4565b005b3480156102f557600080fd5b50601a546102b790600160b01b900460ff1681565b34801561031657600080fd5b5060195461032a906001600160a01b031681565b6040516001600160a01b03909116815260200161028e565b34801561034e57600080fd5b50600b545b60405190815260200161028e565b34801561036d57600080fd5b506102b761037c366004611f65565b60046020526000908152604090205460ff1681565b34801561039d57600080fd5b50601a546102b790600160a01b900460ff1681565b3480156103be57600080fd5b506102b76103cd366004611f82565b610a72565b3480156103de57600080fd5b506102e76103ed366004611fc3565b610adb565b3480156103fe57600080fd5b50600a5460405160ff909116815260200161028e565b34801561042057600080fd5b506102b761042f366004611f82565b610b26565b34801561044057600080fd5b506102e761044f366004611f65565b610c9e565b34801561046057600080fd5b506102b761046f366004611f39565b610cea565b34801561048057600080fd5b5061035360105481565b34801561049657600080fd5b506102e76104a5366004611f65565b610d20565b3480156104b657600080fd5b50601a5461032a906001600160a01b031681565b3480156104d657600080fd5b50601a546102b790600160a81b900460ff1681565b3480156104f757600080fd5b5061035360115481565b34801561050d57600080fd5b506102e761051c366004611fdc565b610d6e565b34801561052d57600080fd5b506005546102b79060ff1681565b34801561054757600080fd5b50610353610556366004611f65565b6001600160a01b031660009081526001602052604090205490565b34801561057d57600080fd5b506102e7610dee565b34801561059257600080fd5b506102b76105a1366004611f65565b60036020526000908152604090205460ff1681565b3480156105c257600080fd5b5061035360155481565b3480156105d857600080fd5b506102e76105e7366004611ffe565b610e62565b3480156105f857600080fd5b5061035360175481565b34801561060e57600080fd5b506102e761061d366004611f65565b610ea8565b34801561062e57600080fd5b506000546001600160a01b031661032a565b34801561064c57600080fd5b506102e761065b366004612021565b610f17565b34801561066c57600080fd5b506102e761067b366004611fc3565b611022565b34801561068c57600080fd5b5061028161106d565b3480156106a157600080fd5b506102b76106b0366004611f39565b61107c565b3480156106c157600080fd5b506102e76106d03660046120a4565b6110cb565b3480156106e157600080fd5b506102b76106f0366004611f39565b611113565b34801561070157600080fd5b506102e7610710366004612021565b611120565b34801561072157600080fd5b506102e76107303660046120a4565b611223565b34801561074157600080fd5b506102e7610750366004611f65565b611260565b34801561076157600080fd5b506103536107703660046120c1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156107a757600080fd5b506102e76107b6366004611fc3565b6112ac565b3480156107c757600080fd5b506102e76107d6366004611f65565b611367565b3480156107e757600080fd5b506102e76107f6366004611f65565b6113b2565b34801561080757600080fd5b506102e76108163660046120a4565b61149c565b60606008805461082a906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610856906120fa565b80156108a35780601f10610878576101008083540402835291602001916108a3565b820191906000526020600020905b81548152906001019060200180831161088657829003601f168201915b5050505050905090565b60006108ba33848461153d565b5060015b92915050565b6000546001600160a01b031633146108f75760405162461bcd60e51b81526004016108ee90612134565b60405180910390fd5b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095e9190612169565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190612169565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190612169565b601a80546001600160a01b039283166001600160a01b0319918216179091556019805493909216921691909117905550565b6000610a7f8484846115fe565b610ad18433610acc856040518060600160405280602881526020016122f1602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611ae6565b61153d565b5060019392505050565b6000546001600160a01b03163314610b055760405162461bcd60e51b81526004016108ee90612134565b61271081600b54610b16919061219c565b610b2091906121b3565b60175550565b600080546001600160a01b03163314610b515760405162461bcd60e51b81526004016108ee90612134565b306001600160a01b03851603610ba95760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064016108ee565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1491906121d5565b905080831115610c22578092505b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb906044016020604051808303816000875af1158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9591906121ee565b95945050505050565b6000546001600160a01b03163314610cc85760405162461bcd60e51b81526004016108ee90612134565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916108ba918590610acc9086611b12565b6000546001600160a01b03163314610d4a5760405162461bcd60e51b81526004016108ee90612134565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610d985760405162461bcd60e51b81526004016108ee90612134565b600e54610da5828461220b565b1115610de65760405162461bcd60e51b815260206004820152601060248201526f46656520697320746f6f20686967682160801b60448201526064016108ee565b601155601055565b6000546001600160a01b03163314610e185760405162461bcd60e51b81526004016108ee90612134565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e8c5760405162461bcd60e51b81526004016108ee90612134565b600d805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b03163314610ed25760405162461bcd60e51b81526004016108ee90612134565b60058054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610f415760405162461bcd60e51b81526004016108ee90612134565b60008060005b8381101561101b575a82101561100b575a925060046000868684818110610f7057610f7061221e565b9050602002016020810190610f859190611f65565b6001600160a01b0316815260208101919091526040016000205460ff1615610ffd57600060046000878785818110610fbf57610fbf61221e565b9050602002016020810190610fd49190611f65565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a6110089084612234565b91505b61101481612247565b9050610f47565b5050505050565b6000546001600160a01b0316331461104c5760405162461bcd60e51b81526004016108ee90612134565b61271081600b5461105d919061219c565b61106791906121b3565b60155550565b60606009805461082a906120fa565b60006108ba3384610acc85604051806060016040528060258152602001612319602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611ae6565b6000546001600160a01b031633146110f55760405162461bcd60e51b81526004016108ee90612134565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b60006108ba3384846115fe565b6000546001600160a01b0316331461114a5760405162461bcd60e51b81526004016108ee90612134565b60008060005b8381101561101b575a821015611213575a9250600460008686848181106111795761117961221e565b905060200201602081019061118e9190611f65565b6001600160a01b0316815260208101919091526040016000205460ff16611205576001600460008787858181106111c7576111c761221e565b90506020020160208101906111dc9190611f65565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a6112109084612234565b91505b61121c81612247565b9050611150565b6000546001600160a01b0316331461124d5760405162461bcd60e51b81526004016108ee90612134565b6005805460ff1916911515919091179055565b6000546001600160a01b0316331461128a5760405162461bcd60e51b81526004016108ee90612134565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112d65760405162461bcd60e51b81526004016108ee90612134565b601a54600160a01b900460ff16156113305760405162461bcd60e51b815260206004820181905260248201527f43757272656e746c792070726f63657373696e672c20747279206c617465722e60448201526064016108ee565b3060009081526001602052604081205490606461134d848461219c565b61135791906121b3565b905061136281611b1e565b505050565b6000546001600160a01b031633146113915760405162461bcd60e51b81526004016108ee90612134565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146113dc5760405162461bcd60e51b81526004016108ee90612134565b6001600160a01b0381166114415760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ee565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114c65760405162461bcd60e51b81526004016108ee90612134565b601a8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061151390831515815260200190565b60405180910390a150565b600061152a828461219c565b9392505050565b600061152a82846121b3565b6001600160a01b0383161580159061155d57506001600160a01b03821615155b61159d5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016108ee565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061162f57506005546001600160a01b038381166101009092041614155b801561164457506001600160a01b0382163014155b801561165e5750601a546001600160a01b03838116911614155b801561167857506006546001600160a01b03838116911614155b801561169257506000546001600160a01b03848116911614155b1561174d576001600160a01b0382166000908152600160205260409020546015546116bd838361220b565b111561174b5760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a4016108ee565b505b6000546001600160a01b0384811691161480159061177957506000546001600160a01b03838116911614155b156117f6576017548111156117f65760405162461bcd60e51b815260206004820152603a60248201527f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060448201527f746865206d6178207472616e73616374696f6e206c696d69742e00000000000060648201526084016108ee565b60055460ff16156118aa576001600160a01b03831660009081526004602052604090205460ff1615801561184357506001600160a01b03821660009081526004602052604090205460ff16155b6118aa5760405162461bcd60e51b815260206004820152603260248201527f54686973206164647265737320697320626c61636b6c69737465642e205472616044820152713739b0b1ba34b7b7103932bb32b93a32b21760711b60648201526084016108ee565b6001600160a01b038316158015906118ca57506001600160a01b03821615155b61190e5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016108ee565b6000811161196c5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016108ee565b600d5460ff610100820481169116108015906119925750601a54600160a01b900460ff16155b80156119ac5750601a546001600160a01b03848116911614155b80156119c15750601a54600160a81b900460ff165b15611a0057600d805460ff19169055306000908152600160205260409020546017548111156119ef57506017545b80156119fe576119fe81611b1e565b505b6001600160a01b03831660009081526003602052604090205460019060ff1680611a4257506001600160a01b03831660009081526003602052604090205460ff165b80611a895750601a54600160b01b900460ff168015611a6f5750601a546001600160a01b03858116911614155b8015611a895750601a546001600160a01b03848116911614155b15611a9657506000611ad4565b601a546001600160a01b0390811690851603611ab757601054600f55611ad4565b601a546001600160a01b0390811690841603611ad457601154600f555b611ae084848484611b68565b50505050565b60008184841115611b0a5760405162461bcd60e51b81526004016108ee9190611ed3565b505050900390565b600061152a828461220b565b601a805460ff60a01b1916600160a01b179055611b3a81611bce565b6005544790611b579061010090046001600160a01b031682611d28565b5050601a805460ff60a01b19169055565b80611b7a57611b75611d5e565b611ba7565b600d805460ff16906000611b8d83612260565b91906101000a81548160ff021916908360ff160217905550505b611bb2848484611da3565b80611ae057611ae0601254600f55601354601055601454601155565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0357611c0361221e565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c809190612169565b81600181518110611c9357611c9361221e565b6001600160a01b039283166020918202929092010152601954611cb9913091168461153d565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cf290859060009086903090429060040161227f565b600060405180830381600087803b158015611d0c57600080fd5b505af1158015611d20573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611362573d6000803e3d6000fd5b600f54158015611d6e5750601054155b8015611d7a5750601154155b15611d8157565b6010805460135560118054601455600f80546012556000928390559082905555565b600080611daf83611e8f565b6001600160a01b0387166000908152600160205260409020549193509150611dd79084611ec7565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611e069083611b12565b6001600160a01b038516600090815260016020526040808220929092553081522054611e329082611b12565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b60008060006064600f5485611ea4919061219c565b611eae91906121b3565b90506000611ebc8583611ec7565b959194509092505050565b600061152a8284612234565b600060208083528351808285015260005b81811015611f0057858101830151858201604001528201611ee4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611f3657600080fd5b50565b60008060408385031215611f4c57600080fd5b8235611f5781611f21565b946020939093013593505050565b600060208284031215611f7757600080fd5b813561152a81611f21565b600080600060608486031215611f9757600080fd5b8335611fa281611f21565b92506020840135611fb281611f21565b929592945050506040919091013590565b600060208284031215611fd557600080fd5b5035919050565b60008060408385031215611fef57600080fd5b50508035926020909101359150565b60006020828403121561201057600080fd5b813560ff8116811461152a57600080fd5b6000806020838503121561203457600080fd5b823567ffffffffffffffff8082111561204c57600080fd5b818501915085601f83011261206057600080fd5b81358181111561206f57600080fd5b8660208260051b850101111561208457600080fd5b60209290920196919550909350505050565b8015158114611f3657600080fd5b6000602082840312156120b657600080fd5b813561152a81612096565b600080604083850312156120d457600080fd5b82356120df81611f21565b915060208301356120ef81611f21565b809150509250929050565b600181811c9082168061210e57607f821691505b60208210810361212e57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561217b57600080fd5b815161152a81611f21565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108be576108be612186565b6000826121d057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156121e757600080fd5b5051919050565b60006020828403121561220057600080fd5b815161152a81612096565b808201808211156108be576108be612186565b634e487b7160e01b600052603260045260246000fd5b818103818111156108be576108be612186565b60006001820161225957612259612186565b5060010190565b600060ff821660ff810361227657612276612186565b60010192915050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122cf5784516001600160a01b0316835293830193918301916001016122aa565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202fea12b82c6cb0173a29c106c94e56e18bf3cf00bc45d9339e75a4bfe45582c364736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102605760003560e01c806370a0823111610144578063a457c2d7116100b6578063d785d5be1161007a578063d785d5be14610735578063dd62ed3e14610755578063ddbf52661461079b578063ea2f0b37146107bb578063f2fde38b146107db578063f7739b5f146107fb57600080fd5b8063a457c2d714610695578063a514a07d146106b5578063a9059cbb146106d5578063b78f1c83146106f5578063c1f619081461071557600080fd5b80637d1db4a5116101085780637d1db4a5146105ec5780638824e16e146106025780638da5cb5b146106225780638ec0e9a114610640578063942201841461066057806395d89b411461068057600080fd5b806370a082311461053b578063715018a614610571578063768dc7101461058657806378109e54146105b65780637caefa89146105cc57600080fd5b8063313ce567116101dd578063437823ec116101a1578063437823ec1461048a57806349bd5a5e146104aa5780634a74bb02146104ca578063590f897e146104eb57806367cbd84c146105015780636f0941f61461052157600080fd5b8063313ce567146103f25780633343ab831461041457806336b1a1bc14610434578063395093511461045457806340b9a54b1461047457600080fd5b806318160ddd1161022457806318160ddd146103425780631cdd3be314610361578063220f66961461039157806323b872dd146103b25780632e39c6c6146103d257600080fd5b806306fdde031461026c578063095ea7b3146102975780631282a0a0146102c757806313fad07a146102e95780631694505e1461030a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028161081b565b60405161028e9190611ed3565b60405180910390f35b3480156102a357600080fd5b506102b76102b2366004611f39565b6108ad565b604051901515815260200161028e565b3480156102d357600080fd5b506102e76102e2366004611f65565b6108c4565b005b3480156102f557600080fd5b50601a546102b790600160b01b900460ff1681565b34801561031657600080fd5b5060195461032a906001600160a01b031681565b6040516001600160a01b03909116815260200161028e565b34801561034e57600080fd5b50600b545b60405190815260200161028e565b34801561036d57600080fd5b506102b761037c366004611f65565b60046020526000908152604090205460ff1681565b34801561039d57600080fd5b50601a546102b790600160a01b900460ff1681565b3480156103be57600080fd5b506102b76103cd366004611f82565b610a72565b3480156103de57600080fd5b506102e76103ed366004611fc3565b610adb565b3480156103fe57600080fd5b50600a5460405160ff909116815260200161028e565b34801561042057600080fd5b506102b761042f366004611f82565b610b26565b34801561044057600080fd5b506102e761044f366004611f65565b610c9e565b34801561046057600080fd5b506102b761046f366004611f39565b610cea565b34801561048057600080fd5b5061035360105481565b34801561049657600080fd5b506102e76104a5366004611f65565b610d20565b3480156104b657600080fd5b50601a5461032a906001600160a01b031681565b3480156104d657600080fd5b50601a546102b790600160a81b900460ff1681565b3480156104f757600080fd5b5061035360115481565b34801561050d57600080fd5b506102e761051c366004611fdc565b610d6e565b34801561052d57600080fd5b506005546102b79060ff1681565b34801561054757600080fd5b50610353610556366004611f65565b6001600160a01b031660009081526001602052604090205490565b34801561057d57600080fd5b506102e7610dee565b34801561059257600080fd5b506102b76105a1366004611f65565b60036020526000908152604090205460ff1681565b3480156105c257600080fd5b5061035360155481565b3480156105d857600080fd5b506102e76105e7366004611ffe565b610e62565b3480156105f857600080fd5b5061035360175481565b34801561060e57600080fd5b506102e761061d366004611f65565b610ea8565b34801561062e57600080fd5b506000546001600160a01b031661032a565b34801561064c57600080fd5b506102e761065b366004612021565b610f17565b34801561066c57600080fd5b506102e761067b366004611fc3565b611022565b34801561068c57600080fd5b5061028161106d565b3480156106a157600080fd5b506102b76106b0366004611f39565b61107c565b3480156106c157600080fd5b506102e76106d03660046120a4565b6110cb565b3480156106e157600080fd5b506102b76106f0366004611f39565b611113565b34801561070157600080fd5b506102e7610710366004612021565b611120565b34801561072157600080fd5b506102e76107303660046120a4565b611223565b34801561074157600080fd5b506102e7610750366004611f65565b611260565b34801561076157600080fd5b506103536107703660046120c1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156107a757600080fd5b506102e76107b6366004611fc3565b6112ac565b3480156107c757600080fd5b506102e76107d6366004611f65565b611367565b3480156107e757600080fd5b506102e76107f6366004611f65565b6113b2565b34801561080757600080fd5b506102e76108163660046120a4565b61149c565b60606008805461082a906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610856906120fa565b80156108a35780601f10610878576101008083540402835291602001916108a3565b820191906000526020600020905b81548152906001019060200180831161088657829003601f168201915b5050505050905090565b60006108ba33848461153d565b5060015b92915050565b6000546001600160a01b031633146108f75760405162461bcd60e51b81526004016108ee90612134565b60405180910390fd5b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095e9190612169565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190612169565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190612169565b601a80546001600160a01b039283166001600160a01b0319918216179091556019805493909216921691909117905550565b6000610a7f8484846115fe565b610ad18433610acc856040518060600160405280602881526020016122f1602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611ae6565b61153d565b5060019392505050565b6000546001600160a01b03163314610b055760405162461bcd60e51b81526004016108ee90612134565b61271081600b54610b16919061219c565b610b2091906121b3565b60175550565b600080546001600160a01b03163314610b515760405162461bcd60e51b81526004016108ee90612134565b306001600160a01b03851603610ba95760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064016108ee565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1491906121d5565b905080831115610c22578092505b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb906044016020604051808303816000875af1158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9591906121ee565b95945050505050565b6000546001600160a01b03163314610cc85760405162461bcd60e51b81526004016108ee90612134565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916108ba918590610acc9086611b12565b6000546001600160a01b03163314610d4a5760405162461bcd60e51b81526004016108ee90612134565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610d985760405162461bcd60e51b81526004016108ee90612134565b600e54610da5828461220b565b1115610de65760405162461bcd60e51b815260206004820152601060248201526f46656520697320746f6f20686967682160801b60448201526064016108ee565b601155601055565b6000546001600160a01b03163314610e185760405162461bcd60e51b81526004016108ee90612134565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e8c5760405162461bcd60e51b81526004016108ee90612134565b600d805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b03163314610ed25760405162461bcd60e51b81526004016108ee90612134565b60058054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610f415760405162461bcd60e51b81526004016108ee90612134565b60008060005b8381101561101b575a82101561100b575a925060046000868684818110610f7057610f7061221e565b9050602002016020810190610f859190611f65565b6001600160a01b0316815260208101919091526040016000205460ff1615610ffd57600060046000878785818110610fbf57610fbf61221e565b9050602002016020810190610fd49190611f65565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a6110089084612234565b91505b61101481612247565b9050610f47565b5050505050565b6000546001600160a01b0316331461104c5760405162461bcd60e51b81526004016108ee90612134565b61271081600b5461105d919061219c565b61106791906121b3565b60155550565b60606009805461082a906120fa565b60006108ba3384610acc85604051806060016040528060258152602001612319602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611ae6565b6000546001600160a01b031633146110f55760405162461bcd60e51b81526004016108ee90612134565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b60006108ba3384846115fe565b6000546001600160a01b0316331461114a5760405162461bcd60e51b81526004016108ee90612134565b60008060005b8381101561101b575a821015611213575a9250600460008686848181106111795761117961221e565b905060200201602081019061118e9190611f65565b6001600160a01b0316815260208101919091526040016000205460ff16611205576001600460008787858181106111c7576111c761221e565b90506020020160208101906111dc9190611f65565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a6112109084612234565b91505b61121c81612247565b9050611150565b6000546001600160a01b0316331461124d5760405162461bcd60e51b81526004016108ee90612134565b6005805460ff1916911515919091179055565b6000546001600160a01b0316331461128a5760405162461bcd60e51b81526004016108ee90612134565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112d65760405162461bcd60e51b81526004016108ee90612134565b601a54600160a01b900460ff16156113305760405162461bcd60e51b815260206004820181905260248201527f43757272656e746c792070726f63657373696e672c20747279206c617465722e60448201526064016108ee565b3060009081526001602052604081205490606461134d848461219c565b61135791906121b3565b905061136281611b1e565b505050565b6000546001600160a01b031633146113915760405162461bcd60e51b81526004016108ee90612134565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146113dc5760405162461bcd60e51b81526004016108ee90612134565b6001600160a01b0381166114415760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ee565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114c65760405162461bcd60e51b81526004016108ee90612134565b601a8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061151390831515815260200190565b60405180910390a150565b600061152a828461219c565b9392505050565b600061152a82846121b3565b6001600160a01b0383161580159061155d57506001600160a01b03821615155b61159d5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016108ee565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061162f57506005546001600160a01b038381166101009092041614155b801561164457506001600160a01b0382163014155b801561165e5750601a546001600160a01b03838116911614155b801561167857506006546001600160a01b03838116911614155b801561169257506000546001600160a01b03848116911614155b1561174d576001600160a01b0382166000908152600160205260409020546015546116bd838361220b565b111561174b5760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a4016108ee565b505b6000546001600160a01b0384811691161480159061177957506000546001600160a01b03838116911614155b156117f6576017548111156117f65760405162461bcd60e51b815260206004820152603a60248201527f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060448201527f746865206d6178207472616e73616374696f6e206c696d69742e00000000000060648201526084016108ee565b60055460ff16156118aa576001600160a01b03831660009081526004602052604090205460ff1615801561184357506001600160a01b03821660009081526004602052604090205460ff16155b6118aa5760405162461bcd60e51b815260206004820152603260248201527f54686973206164647265737320697320626c61636b6c69737465642e205472616044820152713739b0b1ba34b7b7103932bb32b93a32b21760711b60648201526084016108ee565b6001600160a01b038316158015906118ca57506001600160a01b03821615155b61190e5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016108ee565b6000811161196c5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016108ee565b600d5460ff610100820481169116108015906119925750601a54600160a01b900460ff16155b80156119ac5750601a546001600160a01b03848116911614155b80156119c15750601a54600160a81b900460ff165b15611a0057600d805460ff19169055306000908152600160205260409020546017548111156119ef57506017545b80156119fe576119fe81611b1e565b505b6001600160a01b03831660009081526003602052604090205460019060ff1680611a4257506001600160a01b03831660009081526003602052604090205460ff165b80611a895750601a54600160b01b900460ff168015611a6f5750601a546001600160a01b03858116911614155b8015611a895750601a546001600160a01b03848116911614155b15611a9657506000611ad4565b601a546001600160a01b0390811690851603611ab757601054600f55611ad4565b601a546001600160a01b0390811690841603611ad457601154600f555b611ae084848484611b68565b50505050565b60008184841115611b0a5760405162461bcd60e51b81526004016108ee9190611ed3565b505050900390565b600061152a828461220b565b601a805460ff60a01b1916600160a01b179055611b3a81611bce565b6005544790611b579061010090046001600160a01b031682611d28565b5050601a805460ff60a01b19169055565b80611b7a57611b75611d5e565b611ba7565b600d805460ff16906000611b8d83612260565b91906101000a81548160ff021916908360ff160217905550505b611bb2848484611da3565b80611ae057611ae0601254600f55601354601055601454601155565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0357611c0361221e565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c809190612169565b81600181518110611c9357611c9361221e565b6001600160a01b039283166020918202929092010152601954611cb9913091168461153d565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cf290859060009086903090429060040161227f565b600060405180830381600087803b158015611d0c57600080fd5b505af1158015611d20573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611362573d6000803e3d6000fd5b600f54158015611d6e5750601054155b8015611d7a5750601154155b15611d8157565b6010805460135560118054601455600f80546012556000928390559082905555565b600080611daf83611e8f565b6001600160a01b0387166000908152600160205260409020549193509150611dd79084611ec7565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611e069083611b12565b6001600160a01b038516600090815260016020526040808220929092553081522054611e329082611b12565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b60008060006064600f5485611ea4919061219c565b611eae91906121b3565b90506000611ebc8583611ec7565b959194509092505050565b600061152a8284612234565b600060208083528351808285015260005b81811015611f0057858101830151858201604001528201611ee4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611f3657600080fd5b50565b60008060408385031215611f4c57600080fd5b8235611f5781611f21565b946020939093013593505050565b600060208284031215611f7757600080fd5b813561152a81611f21565b600080600060608486031215611f9757600080fd5b8335611fa281611f21565b92506020840135611fb281611f21565b929592945050506040919091013590565b600060208284031215611fd557600080fd5b5035919050565b60008060408385031215611fef57600080fd5b50508035926020909101359150565b60006020828403121561201057600080fd5b813560ff8116811461152a57600080fd5b6000806020838503121561203457600080fd5b823567ffffffffffffffff8082111561204c57600080fd5b818501915085601f83011261206057600080fd5b81358181111561206f57600080fd5b8660208260051b850101111561208457600080fd5b60209290920196919550909350505050565b8015158114611f3657600080fd5b6000602082840312156120b657600080fd5b813561152a81612096565b600080604083850312156120d457600080fd5b82356120df81611f21565b915060208301356120ef81611f21565b809150509250929050565b600181811c9082168061210e57607f821691505b60208210810361212e57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561217b57600080fd5b815161152a81611f21565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108be576108be612186565b6000826121d057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156121e757600080fd5b5051919050565b60006020828403121561220057600080fd5b815161152a81612096565b808201808211156108be576108be612186565b634e487b7160e01b600052603260045260246000fd5b818103818111156108be576108be612186565b60006001820161225957612259612186565b5060010190565b600060ff821660ff810361227657612276612186565b60010192915050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122cf5784516001600160a01b0316835293830193918301916001016122aa565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202fea12b82c6cb0173a29c106c94e56e18bf3cf00bc45d9339e75a4bfe45582c364736f6c63430008110033
Deployed Bytecode Sourcemap
14264:13206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16961:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17792:161;;;;;;;;;;-1:-1:-1;17792:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;17792:161:0;1023:187:1;25792:318:0;;;;;;;;;;-1:-1:-1;25792:318:0;;;;;:::i;:::-;;:::i;:::-;;20793:34;;;;;;;;;;-1:-1:-1;20793:34:0;;;;-1:-1:-1;;;20793:34:0;;;;;;15863:41;;;;;;;;;;-1:-1:-1;15863:41:0;;;;-1:-1:-1;;;;;15863:41:0;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;15863:41:0;1467:230:1;17238:95:0;;;;;;;;;;-1:-1:-1;17318:7:0;;17238:95;;;1848:25:1;;;1836:2;1821:18;17238:95:0;1702:177:1;14587:47:0;;;;;;;;;;-1:-1:-1;14587:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15946:28;;;;;;;;;;-1:-1:-1;15946:28:0;;;;-1:-1:-1;;;15946:28:0;;;;;;17961:313;;;;;;;;;;-1:-1:-1;17961:313:0;;;;;:::i;:::-;;:::i;20970:150::-;;;;;;;;;;-1:-1:-1;20970:150:0;;;;;:::i;:::-;;:::i;17147:83::-;;;;;;;;;;-1:-1:-1;17213:9:0;;17147:83;;17213:9;;;;2672:36:1;;2660:2;2645:18;17147:83:0;2530:184:1;25282:502:0;;;;;;;;;;-1:-1:-1;25282:502:0;;;;;:::i;:::-;;:::i;26118:195::-;;;;;;;;;;-1:-1:-1;26118:195:0;;;;;:::i;:::-;;:::i;18282:218::-;;;;;;;;;;-1:-1:-1;18282:218:0;;;;;:::i;:::-;;:::i;15345:27::-;;;;;;;;;;;;;;;;18788:111;;;;;;;;;;-1:-1:-1;18788:111:0;;;;;:::i;:::-;;:::i;15911:28::-;;;;;;;;;;-1:-1:-1;15911:28:0;;;;-1:-1:-1;;;;;15911:28:0;;;15981:40;;;;;;;;;;-1:-1:-1;15981:40:0;;;;-1:-1:-1;;;15981:40:0;;;;;;15379:28;;;;;;;;;;;;;;;;19030:223;;;;;;;;;;-1:-1:-1;19030:223:0;;;;;:::i;:::-;;:::i;14643:23::-;;;;;;;;;;-1:-1:-1;14643:23:0;;;;;;;;17341:117;;;;;;;;;;-1:-1:-1;17341:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;17434:16:0;17407:7;17434:16;;;:7;:16;;;;;;;17341:117;6055:148;;;;;;;;;;;;;:::i;14526:51::-;;;;;;;;;;-1:-1:-1;14526:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15572:56;;;;;;;;;;;;;;;;19623:161;;;;;;;;;;-1:-1:-1;19623:161:0;;;;;:::i;:::-;;:::i;15701:53::-;;;;;;;;;;;;;;;;19261:156;;;;;;;;;;-1:-1:-1;19261:156:0;;;;;:::i;:::-;;:::i;5832:87::-;;;;;;;;;;-1:-1:-1;5878:7:0;5905:6;-1:-1:-1;;;;;5905:6:0;5832:87;;20249:417;;;;;;;;;;-1:-1:-1;20249:417:0;;;;;:::i;:::-;;:::i;21143:152::-;;;;;;;;;;-1:-1:-1;21143:152:0;;;;;:::i;:::-;;:::i;17052:87::-;;;;;;;;;;;;;:::i;18508:269::-;;;;;;;;;;-1:-1:-1;18508:269:0;;;;;:::i;:::-;;:::i;20836:125::-;;;;;;;;;;-1:-1:-1;20836:125:0;;;;;:::i;:::-;;:::i;17466:167::-;;;;;;;;;;-1:-1:-1;17466:167:0;;;;;:::i;:::-;;:::i;19833:408::-;;;;;;;;;;-1:-1:-1;19833:408:0;;;;;:::i;:::-;;:::i;20675:109::-;;;;;;;;;;-1:-1:-1;20675:109:0;;;;;:::i;:::-;;:::i;26322:108::-;;;;;;;;;;-1:-1:-1;26322:108:0;;;;;:::i;:::-;;:::i;17641:143::-;;;;;;;;;;-1:-1:-1;17641:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17749:18:0;;;17722:7;17749:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17641:143;24349:443;;;;;;;;;;-1:-1:-1;24349:443:0;;;;;:::i;:::-;;:::i;18910:110::-;;;;;;;;;;-1:-1:-1;18910:110:0;;;;;:::i;:::-;;:::i;6211:244::-;;;;;;;;;;-1:-1:-1;6211:244:0;;;;;:::i;:::-;;:::i;19425:190::-;;;;;;;;;;-1:-1:-1;19425:190:0;;;;;:::i;:::-;;:::i;16961:83::-;16998:13;17031:5;17024:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16961:83;:::o;17792:161::-;17867:4;17884:39;2033:10;17907:7;17916:6;17884:8;:39::i;:::-;-1:-1:-1;17941:4:0;17792:161;;;;;:::o;25792:318::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;;;;;;;;;25879:32:::1;25933:9;25879:64;;25988:13;-1:-1:-1::0;;;;;25988:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25970:53:0::1;;26032:4;26039:13;-1:-1:-1::0;;;;;26039:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25970:90;::::0;-1:-1:-1;;;;;;25970:90:0::1;::::0;;;;;;-1:-1:-1;;;;;6328:15:1;;;25970:90:0::1;::::0;::::1;6310:34:1::0;6380:15;;6360:18;;;6353:43;6245:18;;25970:90:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25954:13;:106:::0;;-1:-1:-1;;;;;25954:106:0;;::::1;-1:-1:-1::0;;;;;;25954:106:0;;::::1;;::::0;;;26071:15:::1;:31:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;25792:318:0:o;17961:313::-;18059:4;18076:36;18086:6;18094:9;18105:6;18076:9;:36::i;:::-;18123:121;18132:6;2033:10;18154:89;18192:6;18154:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18154:19:0;;;;;;:11;:19;;;;;;;;2033:10;18154:33;;;;;;;;;;:37;:89::i;:::-;18123:8;:121::i;:::-;-1:-1:-1;18262:4:0;17961:313;;;;;:::o;20970:150::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;21107:5:::1;21089:17;21081:7;;:25;;;;:::i;:::-;:31;;;;:::i;:::-;21066:12;:46:::0;-1:-1:-1;20970:150:0:o;25282:502::-;25417:10;5905:6;;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;25479:4:::1;-1:-1:-1::0;;;;;25447:37:0;::::1;::::0;25439:77:::1;;;::::0;-1:-1:-1;;;25439:77:0;;7136:2:1;25439:77:0::1;::::0;::::1;7118:21:1::0;7175:2;7155:18;;;7148:30;7214:29;7194:18;;;7187:57;7261:18;;25439:77:0::1;6934:351:1::0;25439:77:0::1;25551:53;::::0;-1:-1:-1;;;25551:53:0;;25598:4:::1;25551:53;::::0;::::1;1640:51:1::0;25527:21:0::1;::::0;-1:-1:-1;;;;;25551:38:0;::::1;::::0;::::1;::::0;1613:18:1;;25551:53:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25527:77;;25638:13;25619:16;:32;25615:72;;;25672:13;25653:32;;25615:72;25705:71;::::0;-1:-1:-1;;;25705:71:0;;-1:-1:-1;;;;;7671:32:1;;;25705:71:0::1;::::0;::::1;7653:51:1::0;7720:18;;;7713:34;;;25705:37:0;::::1;::::0;::::1;::::0;7626:18:1;;25705:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25697:79:::0;25282:502;-1:-1:-1;;;;;25282:502:0:o;26118:195::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;26274:15:::1;:31:::0;;-1:-1:-1;;;;;;26274:31:0::1;-1:-1:-1::0;;;;;26274:31:0;;;::::1;::::0;;;::::1;::::0;;26118:195::o;18282:218::-;2033:10;18370:4;18419:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18419:34:0;;;;;;;;;;18370:4;;18387:83;;18410:7;;18419:50;;18458:10;18419:38;:50::i;18788:111::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18857:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;18857:34:0::1;18887:4;18857:34;::::0;;18788:111::o;19030:223::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;19150:14:::1;::::0;19127:18:::1;19137:8:::0;19127:7;:18:::1;:::i;:::-;19126:38;;19118:67;;;::::0;-1:-1:-1;;;19118:67:0;;8340:2:1;19118:67:0::1;::::0;::::1;8322:21:1::0;8379:2;8359:18;;;8352:30;-1:-1:-1;;;8398:18:1;;;8391:46;8454:18;;19118:67:0::1;8138:340:1::0;19118:67:0::1;19196:8;:19:::0;19226:7:::1;:17:::0;19030:223::o;6055:148::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;6162:1:::1;6146:6:::0;;6125:40:::1;::::0;-1:-1:-1;;;;;6146:6:0;;::::1;::::0;6125:40:::1;::::0;6162:1;;6125:40:::1;6193:1;6176:19:::0;;-1:-1:-1;;;;;;6176:19:0::1;::::0;;6055:148::o;19623:161::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;19740:11:::1;:36:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;19740:36:0;;::::1;::::0;;;::::1;::::0;;19623:161::o;19261:156::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;19342:10:::1;:19:::0;;-1:-1:-1;;;;;;19342:19:0::1;;-1:-1:-1::0;;;;;19342:19:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;19391:10;::::1;;-1:-1:-1::0;19372:30:0;;;:18:::1;:30;::::0;;;;:37;;-1:-1:-1;;19372:37:0::1;-1:-1:-1::0;19372:37:0::1;::::0;;19261:156::o;20249:417::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;20352:16:::1;20379:15:::0;20408:9:::1;20403:256;20419:20:::0;;::::1;20403:256;;;20470:9;20460:7;:19;20457:195;;;20503:9;20492:20;;20526:14;:28;20541:9;;20551:1;20541:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20526:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20526:28:0;;::::1;;20523:81;;;20597:5;20566:14;:28;20581:9;;20591:1;20581:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20566:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20566:28:0;:36;;-1:-1:-1;;20566:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20523:81:::1;20635:9;20624:20;::::0;:8;:20:::1;:::i;:::-;20614:30;;20457:195;20441:3;::::0;::::1;:::i;:::-;;;20403:256;;;;20332:334;;20249:417:::0;;:::o;21143:152::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;21282:5:::1;21262:19;21254:7;;:27;;;;:::i;:::-;:33;;;;:::i;:::-;21236:15;:51:::0;-1:-1:-1;21143:152:0:o;17052:87::-;17091:13;17124:7;17117:14;;;;;:::i;18508:269::-;18601:4;18618:129;2033:10;18641:7;18650:96;18689:15;18650:96;;;;;;;;;;;;;;;;;2033:10;18650:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18650:34:0;;;;;;;;;;;;:38;:96::i;20836:125::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;20922:15:::1;:31:::0;;;::::1;;-1:-1:-1::0;;;20922:31:0::1;-1:-1:-1::0;;;;20922:31:0;;::::1;::::0;;;::::1;::::0;;20836:125::o;17466:167::-;17544:4;17561:42;2033:10;17585:9;17596:6;17561:9;:42::i;19833:408::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;19927:16:::1;19954:15:::0;19983:9:::1;19978:256;19994:20:::0;;::::1;19978:256;;;20045:9;20035:7;:19;20032:195;;;20078:9;20067:20;;20102:14;:28;20117:9;;20127:1;20117:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20102:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20102:28:0;;::::1;;20098:81;;20173:4;20142:14;:28;20157:9;;20167:1;20157:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20142:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20142:28:0;:35;;-1:-1:-1;;20142:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20098:81:::1;20210:9;20199:20;::::0;:8;:20:::1;:::i;:::-;20189:30;;20032:195;20016:3;::::0;::::1;:::i;:::-;;;19978:256;;20675:109:::0;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;20749:11:::1;:27:::0;;-1:-1:-1;;20749:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20675:109::o;26322:108::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;26399:13:::1;:23:::0;;-1:-1:-1;;;;;;26399:23:0::1;-1:-1:-1::0;;;;;26399:23:0;;;::::1;::::0;;;::::1;::::0;;26322:108::o;24349:443::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;24463:16:::1;::::0;-1:-1:-1;;;24463:16:0;::::1;;;24462:17;24454:62;;;::::0;-1:-1:-1;;;24454:62:0;;9090:2:1;24454:62:0::1;::::0;::::1;9072:21:1::0;;;9109:18;;;9102:30;9168:34;9148:18;;;9141:62;9220:18;;24454:62:0::1;8888:356:1::0;24454:62:0::1;24660:4;24615:24;17434:16:::0;;;:7;:16;;;;;;;24744:3:::1;24698:45;24715:28:::0;17434:16;24698:45:::1;:::i;:::-;:49;;;;:::i;:::-;24677:70;;24758:26;24773:10;24758:14;:26::i;:::-;24433:359;;24349:443:::0;:::o;18910:110::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18977:27:0::1;19007:5;18977:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;18977:35:0::1;::::0;;18910:110::o;6211:244::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6300:22:0;::::1;6292:73;;;::::0;-1:-1:-1;;;6292:73:0;;9451:2:1;6292:73:0::1;::::0;::::1;9433:21:1::0;9490:2;9470:18;;;9463:30;9529:34;9509:18;;;9502:62;-1:-1:-1;;;9580:18:1;;;9573:36;9626:19;;6292:73:0::1;9249:402:1::0;6292:73:0::1;6402:6;::::0;;6381:38:::1;::::0;-1:-1:-1;;;;;6381:38:0;;::::1;::::0;6402:6;::::1;::::0;6381:38:::1;::::0;::::1;6430:6;:17:::0;;-1:-1:-1;;;;;;6430:17:0::1;-1:-1:-1::0;;;;;6430:17:0;;;::::1;::::0;;;::::1;::::0;;6211:244::o;19425:190::-;5878:7;5905:6;-1:-1:-1;;;;;5905:6:0;2033:10;5967:23;5959:68;;;;-1:-1:-1;;;5959:68:0;;;;;;;:::i;:::-;19511:21:::1;:37:::0;;;::::1;;-1:-1:-1::0;;;19511:37:0::1;-1:-1:-1::0;;;;19511:37:0;;::::1;;::::0;;19564:43:::1;::::0;::::1;::::0;::::1;::::0;19535:13;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;19564:43:0::1;;;;;;;;19425:190:::0;:::o;1268:98::-;1326:7;1353:5;1357:1;1353;:5;:::i;:::-;1346:12;1268:98;-1:-1:-1;;;1268:98:0:o;1378:::-;1436:7;1463:5;1467:1;1463;:5;:::i;21776:266::-;-1:-1:-1;;;;;21871:19:0;;;;;;:44;;-1:-1:-1;;;;;;21894:21:0;;;;21871:44;21863:74;;;;-1:-1:-1;;;21863:74:0;;9858:2:1;21863:74:0;;;9840:21:1;9897:2;9877:18;;;9870:30;-1:-1:-1;;;9916:18:1;;;9909:47;9973:18;;21863:74:0;9656:341:1;21863:74:0;-1:-1:-1;;;;;21948:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22000:32;;1848:25:1;;;22000:32:0;;1821:18:1;22000:32:0;;;;;;;21776:266;;;:::o;22050:1909::-;5878:7;5905:6;-1:-1:-1;;;;;22180:13:0;;;5905:6;;22180:13;;;;:46;;-1:-1:-1;22216:10:0;;-1:-1:-1;;;;;22210:16:0;;;22216:10;;;;;22210:16;;22180:46;:82;;;;-1:-1:-1;;;;;;22243:19:0;;22257:4;22243:19;;22180:82;:118;;;;-1:-1:-1;22285:13:0;;-1:-1:-1;;;;;22279:19:0;;;22285:13;;22279:19;;22180:118;:152;;;;-1:-1:-1;22321:11:0;;-1:-1:-1;;;;;22315:17:0;;;22321:11;;22315:17;;22180:152;:184;;;;-1:-1:-1;5878:7:0;5905:6;-1:-1:-1;;;;;22349:15:0;;;5905:6;;22349:15;;22180:184;22176:388;;;-1:-1:-1;;;;;17434:16:0;;22380:18;17434:16;;;:7;:16;;;;;;22462:15;;22438:19;22451:6;17434:16;22438:19;:::i;:::-;22437:40;;22429:133;;;;-1:-1:-1;;;22429:133:0;;10204:2:1;22429:133:0;;;10186:21:1;10243:2;10223:18;;;10216:30;10282:34;10262:18;;;10255:62;10353:34;10333:18;;;10326:62;-1:-1:-1;;;10404:19:1;;;10397:48;10462:19;;22429:133:0;10002:485:1;22429:133:0;22365:199;22176:388;5878:7;5905:6;-1:-1:-1;;;;;22582:15:0;;;5905:6;;22582:15;;;;:32;;-1:-1:-1;5878:7:0;5905:6;-1:-1:-1;;;;;22601:13:0;;;5905:6;;22601:13;;22582:32;22578:144;;;22647:12;;22637:6;:22;;22629:93;;;;-1:-1:-1;;;22629:93:0;;10694:2:1;22629:93:0;;;10676:21:1;10733:2;10713:18;;;10706:30;10772:34;10752:18;;;10745:62;10843:28;10823:18;;;10816:56;10889:19;;22629:93:0;10492:422:1;22629:93:0;22753:11;;;;22749:136;;;-1:-1:-1;;;;;22785:20:0;;;;;;:14;:20;;;;;;;;22784:21;:44;;;;-1:-1:-1;;;;;;22810:18:0;;;;;;:14;:18;;;;;;;;22809:19;22784:44;22776:107;;;;-1:-1:-1;;;22776:107:0;;11121:2:1;22776:107:0;;;11103:21:1;11160:2;11140:18;;;11133:30;11199:34;11179:18;;;11172:62;-1:-1:-1;;;11250:18:1;;;11243:48;11308:19;;22776:107:0;10919:414:1;22776:107:0;-1:-1:-1;;;;;22907:18:0;;;;;;:38;;-1:-1:-1;;;;;;22929:16:0;;;;22907:38;22899:72;;;;-1:-1:-1;;;22899:72:0;;11540:2:1;22899:72:0;;;11522:21:1;11579:2;11559:18;;;11552:30;-1:-1:-1;;;11598:18:1;;;11591:51;11659:18;;22899:72:0;11338:345:1;22899:72:0;22999:1;22990:6;:10;22982:60;;;;-1:-1:-1;;;22982:60:0;;11890:2:1;22982:60:0;;;11872:21:1;11929:2;11909:18;;;11902:30;11968:34;11948:18;;;11941:62;-1:-1:-1;;;12019:18:1;;;12012:35;12064:19;;22982:60:0;11688:401:1;22982:60:0;23087:11;;;;;;;;23076:7;;:22;;;;:57;;-1:-1:-1;23117:16:0;;-1:-1:-1;;;23117:16:0;;;;23116:17;23076:57;:95;;;;-1:-1:-1;23158:13:0;;-1:-1:-1;;;;;23150:21:0;;;23158:13;;23150:21;;23076:95;:133;;;;-1:-1:-1;23188:21:0;;-1:-1:-1;;;23188:21:0;;;;23076:133;23059:497;;;23266:7;:11;;-1:-1:-1;;23266:11:0;;;23341:4;-1:-1:-1;17434:16:0;;;-1:-1:-1;17434:16:0;;;;;;23388:12;;23365:35;;23362:78;;;-1:-1:-1;23426:12:0;;23362:78;23457:24;;23454:91;;23497:36;23512:20;23497:14;:36::i;:::-;23235:321;23059:497;-1:-1:-1;;;;;23624:24:0;;23580:12;23624:24;;;:18;:24;;;;;;23595:4;;23624:24;;;:50;;-1:-1:-1;;;;;;23652:22:0;;;;;;:18;:22;;;;;;;;23624:50;:119;;;-1:-1:-1;23679:15:0;;-1:-1:-1;;;23679:15:0;;;;:40;;;;-1:-1:-1;23706:13:0;;-1:-1:-1;;;;;23698:21:0;;;23706:13;;23698:21;;23679:40;:63;;;;-1:-1:-1;23729:13:0;;-1:-1:-1;;;;;23723:19:0;;;23729:13;;23723:19;;23679:63;23621:272;;;-1:-1:-1;23769:5:0;23621:272;;;23804:13;;-1:-1:-1;;;;;23804:13:0;;;23796:21;;;;23792:101;;23831:7;;23819:9;:19;23792:101;;;23856:13;;-1:-1:-1;;;;;23856:13:0;;;23850:19;;;;23846:47;;23883:8;;23871:9;:20;23846:47;23913:38;23928:4;23933:2;23936:6;23943:7;23913:14;:38::i;:::-;22153:1806;22050:1909;;;:::o;1484:206::-;1570:7;1631:12;1623:6;;;;1615:29;;;;-1:-1:-1;;;1615:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1666:5:0;;;1484:206::o;1056:98::-;1114:7;1141:5;1145:1;1141;:5;:::i;24097:242::-;16267:16;:23;;-1:-1:-1;;;;16267:23:0;-1:-1:-1;;;16267:23:0;;;24192:38:::1;24209:20:::0;24192:16:::1;:38::i;:::-;24308:10;::::0;24263:21:::1;::::0;24295:36:::1;::::0;24308:10:::1;::::0;::::1;-1:-1:-1::0;;;;;24308:10:0::1;24263:21:::0;24295:12:::1;:36::i;:::-;-1:-1:-1::0;;16313:16:0;:24;;-1:-1:-1;;;;16313:24:0;;;24097:242::o;26438:360::-;26569:7;26565:107;;26592:14;:12;:14::i;:::-;26565:107;;;26647:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;26565:107;26686:42;26702:6;26710:9;26721:6;26686:15;:42::i;:::-;26753:7;26749:41;;26775:15;21673:17;;21661:9;:29;21707:15;;21697:7;:25;21741:16;;21730:8;:27;21615:153;24800:474;24892:16;;;24906:1;24892:16;;;;;;;;24868:21;;24892:16;;;;;;;;;;-1:-1:-1;24892:16:0;24868:40;;24937:4;24919;24924:1;24919:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24919:23:0;;;:7;;;;;;;;;;:23;;;;24963:15;;:22;;;-1:-1:-1;;;24963:22:0;;;;:15;;;;;:20;;:22;;;;;24919:7;;24963:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24953:4;24958:1;24953:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24953:32:0;;;:7;;;;;;;;;:32;25028:15;;24996:62;;25013:4;;25028:15;25046:11;24996:8;:62::i;:::-;25069:15;;:197;;-1:-1:-1;;;25069:197:0;;-1:-1:-1;;;;;25069:15:0;;;;:66;;:197;;25150:11;;25069:15;;25193:4;;25220;;25240:15;;25069:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24855:419;24800:474;:::o;23967:120::-;24052:23;;-1:-1:-1;;;;;24052:15:0;;;:23;;;;;24068:6;;24052:23;;;;24068:6;24052:15;:23;;;;;;;;;;;;;;;;;;;21303:300;21349:9;;:14;:30;;;;-1:-1:-1;21367:7:0;;:12;21349:30;:47;;;;-1:-1:-1;21383:8:0;;:13;21349:47;21346:59;;;21303:300::o;21346:59::-;21437:7;;;21419:15;:25;21475:8;;;21456:16;:27;21515:9;;;21495:17;:29;-1:-1:-1;21535:11:0;;;;21557:12;;;;21580:13;21303:300::o;26806:424::-;26903:23;26928:12;26944:19;26955:7;26944:10;:19::i;:::-;-1:-1:-1;;;;;26992:15:0;;;;;;:7;:15;;;;;;26902:61;;-1:-1:-1;26902:61:0;-1:-1:-1;26992:28:0;;27012:7;26992:19;:28::i;:::-;-1:-1:-1;;;;;26974:15:0;;;;;;;:7;:15;;;;;;:46;;;;27052:18;;;;;;;:39;;27075:15;27052:22;:39::i;:::-;-1:-1:-1;;;;;27031:18:0;;;;;;:7;:18;;;;;;:60;;;;27143:4;27127:22;;;;:32;;27154:4;27127:26;:32::i;:::-;27118:4;27102:22;;;;:7;:22;;;;;;;;;:57;;;;27178:44;1848:25:1;;;-1:-1:-1;;;;;27178:44:0;;;;;;;;;;1821:18:1;27178:44:0;;;;;;;26891:339;;26806:424;;;:::o;27238:227::-;27297:7;27306;27326:12;27359:3;27349:9;;27341:7;:17;;;;:::i;:::-;:21;;;;:::i;:::-;27326:36;-1:-1:-1;27373:23:0;27399:17;:7;27326:36;27399:11;:17::i;:::-;27373:43;27452:4;;-1:-1:-1;27238:227:0;;-1:-1:-1;;;27238:227:0:o;1162:98::-;1220:7;1247:5;1251:1;1247;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2345:180::-;2404:6;2457:2;2445:9;2436:7;2432:23;2428:32;2425:52;;;2473:1;2470;2463:12;2425:52;-1:-1:-1;2496:23:1;;2345:180;-1:-1:-1;2345:180:1:o;2927:248::-;2995:6;3003;3056:2;3044:9;3035:7;3031:23;3027:32;3024:52;;;3072:1;3069;3062:12;3024:52;-1:-1:-1;;3095:23:1;;;3165:2;3150:18;;;3137:32;;-1:-1:-1;2927:248:1:o;3180:269::-;3237:6;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3345:9;3332:23;3395:4;3388:5;3384:16;3377:5;3374:27;3364:55;;3415:1;3412;3405:12;3714:615;3800:6;3808;3861:2;3849:9;3840:7;3836:23;3832:32;3829:52;;;3877:1;3874;3867:12;3829:52;3917:9;3904:23;3946:18;3987:2;3979:6;3976:14;3973:34;;;4003:1;4000;3993:12;3973:34;4041:6;4030:9;4026:22;4016:32;;4086:7;4079:4;4075:2;4071:13;4067:27;4057:55;;4108:1;4105;4098:12;4057:55;4148:2;4135:16;4174:2;4166:6;4163:14;4160:34;;;4190:1;4187;4180:12;4160:34;4243:7;4238:2;4228:6;4225:1;4221:14;4217:2;4213:23;4209:32;4206:45;4203:65;;;4264:1;4261;4254:12;4203:65;4295:2;4287:11;;;;;4317:6;;-1:-1:-1;3714:615:1;;-1:-1:-1;;;;3714:615:1:o;4334:118::-;4420:5;4413:13;4406:21;4399:5;4396:32;4386:60;;4442:1;4439;4432:12;4457:241;4513:6;4566:2;4554:9;4545:7;4541:23;4537:32;4534:52;;;4582:1;4579;4572:12;4534:52;4621:9;4608:23;4640:28;4662:5;4640:28;:::i;4703:388::-;4771:6;4779;4832:2;4820:9;4811:7;4807:23;4803:32;4800:52;;;4848:1;4845;4838:12;4800:52;4887:9;4874:23;4906:31;4931:5;4906:31;:::i;:::-;4956:5;-1:-1:-1;5013:2:1;4998:18;;4985:32;5026:33;4985:32;5026:33;:::i;:::-;5078:7;5068:17;;;4703:388;;;;;:::o;5096:380::-;5175:1;5171:12;;;;5218;;;5239:61;;5293:4;5285:6;5281:17;5271:27;;5239:61;5346:2;5338:6;5335:14;5315:18;5312:38;5309:161;;5392:10;5387:3;5383:20;5380:1;5373:31;5427:4;5424:1;5417:15;5455:4;5452:1;5445:15;5309:161;;5096:380;;;:::o;5481:356::-;5683:2;5665:21;;;5702:18;;;5695:30;5761:34;5756:2;5741:18;;5734:62;5828:2;5813:18;;5481:356::o;5842:251::-;5912:6;5965:2;5953:9;5944:7;5940:23;5936:32;5933:52;;;5981:1;5978;5971:12;5933:52;6013:9;6007:16;6032:31;6057:5;6032:31;:::i;6407:127::-;6468:10;6463:3;6459:20;6456:1;6449:31;6499:4;6496:1;6489:15;6523:4;6520:1;6513:15;6539:168;6612:9;;;6643;;6660:15;;;6654:22;;6640:37;6630:71;;6681:18;;:::i;6712:217::-;6752:1;6778;6768:132;;6822:10;6817:3;6813:20;6810:1;6803:31;6857:4;6854:1;6847:15;6885:4;6882:1;6875:15;6768:132;-1:-1:-1;6914:9:1;;6712:217::o;7290:184::-;7360:6;7413:2;7401:9;7392:7;7388:23;7384:32;7381:52;;;7429:1;7426;7419:12;7381:52;-1:-1:-1;7452:16:1;;7290:184;-1:-1:-1;7290:184:1:o;7758:245::-;7825:6;7878:2;7866:9;7857:7;7853:23;7849:32;7846:52;;;7894:1;7891;7884:12;7846:52;7926:9;7920:16;7945:28;7967:5;7945:28;:::i;8008:125::-;8073:9;;;8094:10;;;8091:36;;;8107:18;;:::i;8483:127::-;8544:10;8539:3;8535:20;8532:1;8525:31;8575:4;8572:1;8565:15;8599:4;8596:1;8589:15;8615:128;8682:9;;;8703:11;;;8700:37;;;8717:18;;:::i;8748:135::-;8787:3;8808:17;;;8805:43;;8828:18;;:::i;:::-;-1:-1:-1;8875:1:1;8864:13;;8748:135::o;12094:175::-;12131:3;12175:4;12168:5;12164:16;12204:4;12195:7;12192:17;12189:43;;12212:18;;:::i;:::-;12261:1;12248:15;;12094:175;-1:-1:-1;;12094:175:1:o;12406:980::-;12668:4;12716:3;12705:9;12701:19;12747:6;12736:9;12729:25;12773:2;12811:6;12806:2;12795:9;12791:18;12784:34;12854:3;12849:2;12838:9;12834:18;12827:31;12878:6;12913;12907:13;12944:6;12936;12929:22;12982:3;12971:9;12967:19;12960:26;;13021:2;13013:6;13009:15;12995:29;;13042:1;13052:195;13066:6;13063:1;13060:13;13052:195;;;13131:13;;-1:-1:-1;;;;;13127:39:1;13115:52;;13222:15;;;;13187:12;;;;13163:1;13081:9;13052:195;;;-1:-1:-1;;;;;;;13303:32:1;;;;13298:2;13283:18;;13276:60;-1:-1:-1;;;13367:3:1;13352:19;13345:35;13264:3;12406:980;-1:-1:-1;;;12406:980:1:o
Swarm Source
ipfs://2fea12b82c6cb0173a29c106c94e56e18bf3cf00bc45d9339e75a4bfe45582c3
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.