More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 28 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Edit Fees | 18810522 | 261 days ago | IN | 0 ETH | 0.0121825 | ||||
Approve | 18810518 | 261 days ago | IN | 0 ETH | 0.00237032 | ||||
Approve | 18810513 | 261 days ago | IN | 0 ETH | 0.00248284 | ||||
Approve | 18810513 | 261 days ago | IN | 0 ETH | 0.00248284 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00251525 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00298149 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00344773 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00344773 | ||||
Approve | 18810512 | 261 days ago | IN | 0 ETH | 0.00461333 | ||||
Go Live | 18810511 | 261 days ago | IN | 0 ETH | 0.142149 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18810511 | 261 days ago | 1.2 ETH |
Loading...
Loading
Contract Name:
STIRLITZ
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-18 */ /* https://t.me/STIRLITZPORTAL */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 Mint(address indexed sender, uint amount0, uint amount1); 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 mint(address to) external returns (uint liquidity); 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 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 IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _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 _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } } 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 STIRLITZ is ERC20, Ownable { string _name = unicode"Stirlitz"; string _symbol = unicode"STIRLITZ"; using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private isSwppable; uint256 public balance; address private devWallet; uint256 public maxTransaction; uint256 public contractSellTreshold; uint256 public maxWalletHolding; bool public areLimitsOn = true; bool public emptyContractFull = false; uint256 public totalBuyTax; uint256 public devBuyTax; uint256 public liqBuyTax; uint256 public totalSellTax; uint256 public devSellTax; uint256 public liqSellTax; uint256 public tokensForLiquidity; uint256 public tokensForDev; // block number of opened trading uint256 launchedAt; /******************/ // exclude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event devWalletUpdated(address indexed newWallet, address indexed oldWallet); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event AutoNukeLP(); event ManualNukeLP(); constructor() ERC20(_name, _symbol) { uint256 _devBuyTax = 20; uint256 _liqBuyTax = 0; uint256 _devSellTax = 40; uint256 _liqSellTax = 0; uint256 totalSupply = 10000000000 * 1e18; maxTransaction = totalSupply * 20 / 1000; // 2% maxWalletHolding = totalSupply * 20 / 1000; // 2% contractSellTreshold = totalSupply * 1 / 1000; // 0.05% devBuyTax = _devBuyTax; liqBuyTax = _liqBuyTax; totalBuyTax = devBuyTax + liqBuyTax; devSellTax = _devSellTax; liqSellTax = _liqSellTax; totalSellTax = devSellTax + liqSellTax; devWallet = address(msg.sender); // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(address(devWallet), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromMaxTransaction(address(devWallet), true); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(address(this), totalSupply); } receive() external payable { } function goLive() external onlyOwner{ IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 ethAmount = address(this).balance; uint256 tokenAmount = balanceOf(address(this)); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function removeStuckEther() external onlyOwner { uint256 ethBalance = address(this).balance; require(ethBalance > 0, "ETH balance must be greater than 0"); (bool success,) = address(devWallet).call{value: ethBalance}(""); require(success, "Failed to clear ETH balance"); } function removeStuckTokenBalance() external onlyOwner { uint256 tokenBalance = balanceOf(address(this)); require(tokenBalance > 0, "Token balance must be greater than 0"); _transfer(address(this), devWallet, tokenBalance); } function vanishLimits() external onlyOwner { areLimitsOn = false; } function EnableEmptyContract(bool enabled) external onlyOwner{ emptyContractFull = enabled; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function editFees( uint256 _devBuy, uint256 _devSell, uint256 _liqBuy, uint256 _liqSell ) external onlyOwner { devBuyTax = _devBuy; liqBuyTax = _liqBuy; totalBuyTax = devBuyTax + liqBuyTax; devSellTax = _devSell; liqSellTax = _liqSell; totalSellTax = devSellTax + liqSellTax; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateDevWallet(address newDevWallet) external onlyOwner{ emit devWalletUpdated(newDevWallet, devWallet); devWallet = newDevWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if(amount == 0) { super._transfer(from, to, 0); return; } if(areLimitsOn){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !isSwppable ){ //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransaction, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWalletHolding, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransaction, "Sell transfer amount exceeds the maxTransactionAmount."); } else if(!_isExcludedMaxTransactionAmount[to]){ require(amount + balanceOf(to) <= maxWalletHolding, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= contractSellTreshold; if( canSwap && !isSwppable && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { isSwppable = true; swapBack(); isSwppable = false; } bool takeFee = !isSwppable; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if(takeFee){ // on sell if (automatedMarketMakerPairs[to] && totalSellTax > 0){ fees = amount.mul(totalSellTax).div(100); tokensForLiquidity += fees * liqSellTax / totalSellTax; tokensForDev += fees * devSellTax / totalSellTax; } // on buy else if(automatedMarketMakerPairs[from] && totalBuyTax > 0) { fees = amount.mul(totalBuyTax).div(100); tokensForLiquidity += fees * liqBuyTax / totalBuyTax; tokensForDev += fees * devBuyTax / totalBuyTax; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForDev; bool success; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(emptyContractFull == false){ if(contractBalance > contractSellTreshold * 20){ contractBalance = contractSellTreshold * 20; } }else{ contractBalance = balanceOf(address(this)); } // Halve the amount of liquidity tokens uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForDev; tokensForLiquidity = 0; tokensForDev = 0; if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity); } (success,) = address(devWallet).call{value: address(this).balance}(""); } }
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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"EnableEmptyContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"areLimitsOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSellTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devBuy","type":"uint256"},{"internalType":"uint256","name":"_devSell","type":"uint256"},{"internalType":"uint256","name":"_liqBuy","type":"uint256"},{"internalType":"uint256","name":"_liqSell","type":"uint256"}],"name":"editFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emptyContractFull","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletHolding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckTokenBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vanishLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600860809081526729ba34b93634ba3d60c11b60a0526006906200002990826200069e565b5060408051808201909152600881526729aa24a92624aa2d60c11b60208201526007906200005890826200069e565b50600f805461ffff1916600117905534801562000073575f80fd5b5060068054620000839062000613565b80601f0160208091040260200160405190810160405280929190818152602001828054620000b19062000613565b8015620001005780601f10620000d65761010080835404028352916020019162000100565b820191905f5260205f20905b815481529060010190602001808311620000e257829003601f168201915b505050505060078054620001149062000613565b80601f0160208091040260200160405190810160405280929190818152602001828054620001429062000613565b8015620001915780601f10620001675761010080835404028352916020019162000191565b820191905f5260205f20905b8154815290600101906020018083116200017357829003601f168201915b50505050508160039081620001a791906200069e565b506004620001b682826200069e565b5050505f620001ca6200038960201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060145f6028816b204fce5e3e250261100000006103e86200023982876200077a565b62000245919062000794565b600c556103e8620002588260146200077a565b62000264919062000794565b600e556103e8620002778260016200077a565b62000283919062000794565b600d55601185905560128490556200029c8486620007b4565b60105560148390556015829055620002b58284620007b4565b601355600b80546001600160a01b03191633179055620002e9620002e16005546001600160a01b031690565b60016200038d565b620002f63060016200038d565b6200030561dead60016200038d565b600b546200031e906001600160a01b031660016200038d565b6200033d620003356005546001600160a01b031690565b600162000439565b6200034a30600162000439565b6200035961dead600162000439565b600b5462000372906001600160a01b0316600162000439565b6200037e3082620004ad565b5050505050620007ca565b3390565b6005546001600160a01b03163314620003db5760405162461bcd60e51b815260206004820181905260248201525f8051602062002e2083398151915260448201526064015b60405180910390fd5b6001600160a01b0382165f81815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314620004835760405162461bcd60e51b815260206004820181905260248201525f8051602062002e208339815191526044820152606401620003d2565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6001600160a01b038216620005055760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003d2565b60025462000514908262000594565b6002556001600160a01b0382165f908152602081905260409020546200053b908262000594565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b5f80620005a28385620007b4565b905083811015620005f65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620003d2565b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200062857607f821691505b6020821081036200064757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200058f575f81815260208120601f850160051c81016020861015620006755750805b601f850160051c820191505b81811015620006965782815560010162000681565b505050505050565b81516001600160401b03811115620006ba57620006ba620005ff565b620006d281620006cb845462000613565b846200064d565b602080601f83116001811462000708575f8415620006f05750858301515b5f19600386901b1c1916600185901b17855562000696565b5f85815260208120601f198616915b82811015620007385788860151825594840194600190910190840162000717565b50858210156200075657878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620005f957620005f962000766565b5f82620007af57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620005f957620005f962000766565b61264880620007d85f395ff3fe6080604052600436106102cf575f3560e01c806370a082311161017b578063a457c2d7116100d1578063c024666811610087578063df6f93be11610062578063df6f93be146107a4578063e11d22cf146107b9578063f2fde38b146107cd575f80fd5b8063c02466681461072c578063c3f70b521461074b578063dd62ed3e14610760575f80fd5b8063b62496f5116100b7578063b62496f5146106d4578063b69ef8a814610702578063be85750414610717575f80fd5b8063a457c2d714610696578063a9059cbb146106b5575f80fd5b80638da5cb5b116101315780639a7a23d61161010c5780639a7a23d61461064e5780639ee2e9241461066d5780639fccce3214610681575f80fd5b80638da5cb5b146105ff578063945674fe1461061c57806395d89b411461063a575f80fd5b80637571336a116101615780637571336a146105ad578063863cf2cc146105cc57806387dd95c0146105eb575f80fd5b806370a0823114610565578063715018a614610599575f80fd5b806322eb66311161023057806346469afb116101e65780634fbee193116101c15780634fbee193146105045780635de0f2a01461053b5780636c7e15c914610550575f80fd5b806346469afb146104bb57806348d79155146104d057806349bd5a5e146104e5575f80fd5b80632c28f579116102165780632c28f5791461046d578063313ce56714610481578063395093511461049c575f80fd5b806322eb66311461043957806323b872dd1461044e575f80fd5b806318160ddd116102855780631a8145bb1161026b5780631a8145bb146103f05780631bff7898146104055780631d9305bf1461041a575f80fd5b806318160ddd146103b15780631816467f146103cf575f80fd5b80630e947809116102b55780630e9478091461033357806310d5de531461034c5780631694505e1461037a575f80fd5b806306fdde03146102da578063095ea7b314610304575f80fd5b366102d657005b5f80fd5b3480156102e5575f80fd5b506102ee6107ec565b6040516102fb9190612266565b60405180910390f35b34801561030f575f80fd5b5061032361031e3660046122c5565b61087c565b60405190151581526020016102fb565b34801561033e575f80fd5b50600f546103239060ff1681565b348015610357575f80fd5b506103236103663660046122ef565b601a6020525f908152604090205460ff1681565b348015610385575f80fd5b50600854610399906001600160a01b031681565b6040516001600160a01b0390911681526020016102fb565b3480156103bc575f80fd5b506002545b6040519081526020016102fb565b3480156103da575f80fd5b506103ee6103e93660046122ef565b610892565b005b3480156103fb575f80fd5b506103c160165481565b348015610410575f80fd5b506103c160135481565b348015610425575f80fd5b506103ee61043436600461230a565b61093a565b348015610444575f80fd5b506103c160145481565b348015610459575f80fd5b50610323610468366004612339565b6109b5565b348015610478575f80fd5b506103ee610a1c565b34801561048c575f80fd5b50604051601281526020016102fb565b3480156104a7575f80fd5b506103236104b63660046122c5565b610cf5565b3480156104c6575f80fd5b506103c160105481565b3480156104db575f80fd5b506103c1600e5481565b3480156104f0575f80fd5b50600954610399906001600160a01b031681565b34801561050f575f80fd5b5061032361051e3660046122ef565b6001600160a01b03165f9081526019602052604090205460ff1690565b348015610546575f80fd5b506103c1600d5481565b34801561055b575f80fd5b506103c160115481565b348015610570575f80fd5b506103c161057f3660046122ef565b6001600160a01b03165f9081526020819052604090205490565b3480156105a4575f80fd5b506103ee610d2a565b3480156105b8575f80fd5b506103ee6105c736600461238b565b610dba565b3480156105d7575f80fd5b506103ee6105e63660046123be565b610e2b565b3480156105f6575f80fd5b506103ee610e8c565b34801561060a575f80fd5b506005546001600160a01b0316610399565b348015610627575f80fd5b50600f5461032390610100900460ff1681565b348015610645575f80fd5b506102ee610fd0565b348015610659575f80fd5b506103ee61066836600461238b565b610fdf565b348015610678575f80fd5b506103ee6110b4565b34801561068c575f80fd5b506103c160175481565b3480156106a1575f80fd5b506103236106b03660046122c5565b61117e565b3480156106c0575f80fd5b506103236106cf3660046122c5565b6111cb565b3480156106df575f80fd5b506103236106ee3660046122ef565b601b6020525f908152604090205460ff1681565b34801561070d575f80fd5b506103c1600a5481565b348015610722575f80fd5b506103c160155481565b348015610737575f80fd5b506103ee61074636600461238b565b6111d7565b348015610756575f80fd5b506103c1600c5481565b34801561076b575f80fd5b506103c161077a3660046123d7565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107af575f80fd5b506103c160125481565b3480156107c4575f80fd5b506103ee61127c565b3480156107d8575f80fd5b506103ee6107e73660046122ef565b6112cf565b6060600380546107fb9061240e565b80601f01602080910402602001604051908101604052809291908181526020018280546108279061240e565b80156108725780601f1061084957610100808354040283529160200191610872565b820191905f5260205f20905b81548152906001019060200180831161085557829003601f168201915b5050505050905090565b5f610888338484611371565b5060015b92915050565b6005546001600160a01b031633146108de5760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064015b60405180910390fd5b600b546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743905f90a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109815760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b60118490556012829055610995828561245a565b601055601483905560158190556109ac818461245a565b60135550505050565b5f6109c1848484611495565b610a128433610a0d856040518060600160405280602881526020016125a6602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190611b0e565b611371565b5060019392505050565b6005546001600160a01b03163314610a635760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b737a250d5630b4cf539739df2c5dacb4c659f2488d610a83816001610dba565b600880546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610ada573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afe919061246d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d919061246d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf3919061246d565b600980546001600160a01b0319166001600160a01b03929092169182179055610c1d906001610dba565b600954610c34906001600160a01b03166001611b46565b305f818152602081905260409020546008544792610c5b916001600160a01b031683611371565b600854600b5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015610cc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ced9190612488565b505050505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610888918590610a0d9086611b99565b6005546001600160a01b03163314610d715760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e015760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e725760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b600f80549115156101000261ff0019909216919091179055565b6005546001600160a01b03163314610ed35760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b4780610f2c5760405162461bcd60e51b815260206004820152602260248201527f4554482062616c616e6365206d7573742062652067726561746572207468616e604482015261020360f41b60648201526084016108d5565b600b546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610f76576040519150601f19603f3d011682016040523d82523d5f602084013e610f7b565b606091505b5050905080610fcc5760405162461bcd60e51b815260206004820152601b60248201527f4661696c656420746f20636c656172204554482062616c616e6365000000000060448201526064016108d5565b5050565b6060600480546107fb9061240e565b6005546001600160a01b031633146110265760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6009546001600160a01b03908116908316036110aa5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108d5565b610fcc8282611b46565b6005546001600160a01b031633146110fb5760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b305f90815260208190526040902054806111635760405162461bcd60e51b8152602060048201526024808201527f546f6b656e2062616c616e6365206d75737420626520677265617465722074686044820152630616e20360e41b60648201526084016108d5565b600b5461117b9030906001600160a01b031683611495565b50565b5f6108883384610a0d856040518060600160405280602581526020016125ee60259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190611b0e565b5f610888338484611495565b6005546001600160a01b0316331461121e5760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6001600160a01b0382165f81815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112c35760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b600f805460ff19169055565b6005546001600160a01b031633146113165760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113d35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108d5565b6001600160a01b0382166114345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108d5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d5565b6001600160a01b03821661155b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d5565b805f036115725761156d83835f611bfe565b505050565b600f5460ff161561185d576005546001600160a01b038481169116148015906115a957506005546001600160a01b03838116911614155b80156115bd57506001600160a01b03821615155b80156115d457506001600160a01b03821661dead14155b80156115ea5750600954600160a01b900460ff16155b1561185d576001600160a01b0383165f908152601b602052604090205460ff16801561162e57506001600160a01b0382165f908152601a602052604090205460ff16155b1561171957600c548111156116ab5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d61785472616e73616374696f6e416d6f756e742e000000000000000000000060648201526084016108d5565b600e546001600160a01b0383165f908152602081905260409020546116d0908361245a565b11156117145760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108d5565b61185d565b6001600160a01b0382165f908152601b602052604090205460ff16801561175857506001600160a01b0383165f908152601a602052604090205460ff16155b156117d557600c548111156117145760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61785472616e73616374696f6e416d6f756e742e0000000000000000000060648201526084016108d5565b6001600160a01b0382165f908152601a602052604090205460ff1661185d57600e546001600160a01b0383165f90815260208190526040902054611819908361245a565b111561185d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108d5565b305f90815260208190526040902054600d548110801590819061188a5750600954600160a01b900460ff16155b80156118ae57506001600160a01b0385165f908152601b602052604090205460ff16155b80156118d257506001600160a01b0385165f9081526019602052604090205460ff16155b80156118f657506001600160a01b0384165f9081526019602052604090205460ff16155b15611924576009805460ff60a01b1916600160a01b179055611916611d7e565b6009805460ff60a01b191690555b6009546001600160a01b0386165f9081526019602052604090205460ff600160a01b90920482161591168061197057506001600160a01b0385165f9081526019602052604090205460ff165b1561197857505f5b5f8115611afa576001600160a01b0386165f908152601b602052604090205460ff1680156119a757505f601354115b15611a33576119cc60646119c660135488611f4490919063ffffffff16565b90611fc2565b9050601354601554826119df91906124b3565b6119e991906124ca565b60165f8282546119f9919061245a565b9091555050601354601454611a0e90836124b3565b611a1891906124ca565b60175f828254611a28919061245a565b90915550611adc9050565b6001600160a01b0387165f908152601b602052604090205460ff168015611a5b57505f601054115b15611adc57611a7a60646119c660105488611f4490919063ffffffff16565b905060105460125482611a8d91906124b3565b611a9791906124ca565b60165f828254611aa7919061245a565b9091555050601054601154611abc90836124b3565b611ac691906124ca565b60175f828254611ad6919061245a565b90915550505b8015611aed57611aed873083611bfe565b611af781866124e9565b94505b611b05878787611bfe565b50505050505050565b5f8184841115611b315760405162461bcd60e51b81526004016108d59190612266565b505f611b3d84866124e9565b95945050505050565b6001600160a01b0382165f818152601b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f80611ba5838561245a565b905083811015611bf75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108d5565b9392505050565b6001600160a01b038316611c625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d5565b6001600160a01b038216611cc45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d5565b611d0081604051806060016040528060268152602001612580602691396001600160a01b0386165f908152602081905260409020549190611b0e565b6001600160a01b038085165f908152602081905260408082209390935590841681522054611d2e9082611b99565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611488565b305f9081526020819052604081205490505f601754601654611da0919061245a565b90505f821580611dae575081155b15611db857505050565b600f54610100900460ff1615155f03611df657600d54611dd99060146124b3565b831115611df157600d54611dee9060146124b3565b92505b611e08565b305f9081526020819052604090205492505b5f60028360165486611e1a91906124b3565b611e2491906124ca565b611e2e91906124ca565b90505f611e3b8583612003565b905047611e4782612044565b5f611e524783612003565b90505f611e6e876119c660175485611f4490919063ffffffff16565b90505f611e7b82846124e9565b5f601681905560175590508515801590611e9457505f81115b15611ee757611ea3868261218c565b601654604080518781526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b600b546040516001600160a01b039091169047905f81818185875af1925050503d805f8114611f31576040519150601f19603f3d011682016040523d82523d5f602084013e611f36565b606091505b505050505050505050505050565b5f825f03611f5357505f61088c565b5f611f5e83856124b3565b905082611f6b85836124ca565b14611bf75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108d5565b5f611bf783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061223a565b5f611bf783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b0e565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612077576120776124fc565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f2919061246d565b81600181518110612105576121056124fc565b6001600160a01b03928316602091820292909201015260085461212b9130911684611371565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906121639085905f90869030904290600401612510565b5f604051808303815f87803b15801561217a575f80fd5b505af1158015610ced573d5f803e3d5ffd5b6008546121a49030906001600160a01b031684611371565b60085460405163f305d71960e01b81523060048201819052602482018590525f60448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561220e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122339190612488565b5050505050565b5f818361225a5760405162461bcd60e51b81526004016108d59190612266565b505f611b3d84866124ca565b5f6020808352835180828501525f5b8181101561229157858101830151858201604001528201612275565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461117b575f80fd5b5f80604083850312156122d6575f80fd5b82356122e1816122b1565b946020939093013593505050565b5f602082840312156122ff575f80fd5b8135611bf7816122b1565b5f805f806080858703121561231d575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f6060848603121561234b575f80fd5b8335612356816122b1565b92506020840135612366816122b1565b929592945050506040919091013590565b80358015158114612386575f80fd5b919050565b5f806040838503121561239c575f80fd5b82356123a7816122b1565b91506123b560208401612377565b90509250929050565b5f602082840312156123ce575f80fd5b611bf782612377565b5f80604083850312156123e8575f80fd5b82356123f3816122b1565b91506020830135612403816122b1565b809150509250929050565b600181811c9082168061242257607f821691505b60208210810361244057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561088c5761088c612446565b5f6020828403121561247d575f80fd5b8151611bf7816122b1565b5f805f6060848603121561249a575f80fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761088c5761088c612446565b5f826124e457634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561088c5761088c612446565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561255e5784516001600160a01b031683529383019391830191600101612539565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206b44542545a465d5fa90b65050cccd10deb46bedc97f6ad133ed779a6cd2333f64736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x6080604052600436106102cf575f3560e01c806370a082311161017b578063a457c2d7116100d1578063c024666811610087578063df6f93be11610062578063df6f93be146107a4578063e11d22cf146107b9578063f2fde38b146107cd575f80fd5b8063c02466681461072c578063c3f70b521461074b578063dd62ed3e14610760575f80fd5b8063b62496f5116100b7578063b62496f5146106d4578063b69ef8a814610702578063be85750414610717575f80fd5b8063a457c2d714610696578063a9059cbb146106b5575f80fd5b80638da5cb5b116101315780639a7a23d61161010c5780639a7a23d61461064e5780639ee2e9241461066d5780639fccce3214610681575f80fd5b80638da5cb5b146105ff578063945674fe1461061c57806395d89b411461063a575f80fd5b80637571336a116101615780637571336a146105ad578063863cf2cc146105cc57806387dd95c0146105eb575f80fd5b806370a0823114610565578063715018a614610599575f80fd5b806322eb66311161023057806346469afb116101e65780634fbee193116101c15780634fbee193146105045780635de0f2a01461053b5780636c7e15c914610550575f80fd5b806346469afb146104bb57806348d79155146104d057806349bd5a5e146104e5575f80fd5b80632c28f579116102165780632c28f5791461046d578063313ce56714610481578063395093511461049c575f80fd5b806322eb66311461043957806323b872dd1461044e575f80fd5b806318160ddd116102855780631a8145bb1161026b5780631a8145bb146103f05780631bff7898146104055780631d9305bf1461041a575f80fd5b806318160ddd146103b15780631816467f146103cf575f80fd5b80630e947809116102b55780630e9478091461033357806310d5de531461034c5780631694505e1461037a575f80fd5b806306fdde03146102da578063095ea7b314610304575f80fd5b366102d657005b5f80fd5b3480156102e5575f80fd5b506102ee6107ec565b6040516102fb9190612266565b60405180910390f35b34801561030f575f80fd5b5061032361031e3660046122c5565b61087c565b60405190151581526020016102fb565b34801561033e575f80fd5b50600f546103239060ff1681565b348015610357575f80fd5b506103236103663660046122ef565b601a6020525f908152604090205460ff1681565b348015610385575f80fd5b50600854610399906001600160a01b031681565b6040516001600160a01b0390911681526020016102fb565b3480156103bc575f80fd5b506002545b6040519081526020016102fb565b3480156103da575f80fd5b506103ee6103e93660046122ef565b610892565b005b3480156103fb575f80fd5b506103c160165481565b348015610410575f80fd5b506103c160135481565b348015610425575f80fd5b506103ee61043436600461230a565b61093a565b348015610444575f80fd5b506103c160145481565b348015610459575f80fd5b50610323610468366004612339565b6109b5565b348015610478575f80fd5b506103ee610a1c565b34801561048c575f80fd5b50604051601281526020016102fb565b3480156104a7575f80fd5b506103236104b63660046122c5565b610cf5565b3480156104c6575f80fd5b506103c160105481565b3480156104db575f80fd5b506103c1600e5481565b3480156104f0575f80fd5b50600954610399906001600160a01b031681565b34801561050f575f80fd5b5061032361051e3660046122ef565b6001600160a01b03165f9081526019602052604090205460ff1690565b348015610546575f80fd5b506103c1600d5481565b34801561055b575f80fd5b506103c160115481565b348015610570575f80fd5b506103c161057f3660046122ef565b6001600160a01b03165f9081526020819052604090205490565b3480156105a4575f80fd5b506103ee610d2a565b3480156105b8575f80fd5b506103ee6105c736600461238b565b610dba565b3480156105d7575f80fd5b506103ee6105e63660046123be565b610e2b565b3480156105f6575f80fd5b506103ee610e8c565b34801561060a575f80fd5b506005546001600160a01b0316610399565b348015610627575f80fd5b50600f5461032390610100900460ff1681565b348015610645575f80fd5b506102ee610fd0565b348015610659575f80fd5b506103ee61066836600461238b565b610fdf565b348015610678575f80fd5b506103ee6110b4565b34801561068c575f80fd5b506103c160175481565b3480156106a1575f80fd5b506103236106b03660046122c5565b61117e565b3480156106c0575f80fd5b506103236106cf3660046122c5565b6111cb565b3480156106df575f80fd5b506103236106ee3660046122ef565b601b6020525f908152604090205460ff1681565b34801561070d575f80fd5b506103c1600a5481565b348015610722575f80fd5b506103c160155481565b348015610737575f80fd5b506103ee61074636600461238b565b6111d7565b348015610756575f80fd5b506103c1600c5481565b34801561076b575f80fd5b506103c161077a3660046123d7565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107af575f80fd5b506103c160125481565b3480156107c4575f80fd5b506103ee61127c565b3480156107d8575f80fd5b506103ee6107e73660046122ef565b6112cf565b6060600380546107fb9061240e565b80601f01602080910402602001604051908101604052809291908181526020018280546108279061240e565b80156108725780601f1061084957610100808354040283529160200191610872565b820191905f5260205f20905b81548152906001019060200180831161085557829003601f168201915b5050505050905090565b5f610888338484611371565b5060015b92915050565b6005546001600160a01b031633146108de5760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064015b60405180910390fd5b600b546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743905f90a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109815760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b60118490556012829055610995828561245a565b601055601483905560158190556109ac818461245a565b60135550505050565b5f6109c1848484611495565b610a128433610a0d856040518060600160405280602881526020016125a6602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190611b0e565b611371565b5060019392505050565b6005546001600160a01b03163314610a635760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b737a250d5630b4cf539739df2c5dacb4c659f2488d610a83816001610dba565b600880546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610ada573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afe919061246d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d919061246d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf3919061246d565b600980546001600160a01b0319166001600160a01b03929092169182179055610c1d906001610dba565b600954610c34906001600160a01b03166001611b46565b305f818152602081905260409020546008544792610c5b916001600160a01b031683611371565b600854600b5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015610cc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ced9190612488565b505050505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610888918590610a0d9086611b99565b6005546001600160a01b03163314610d715760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e015760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e725760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b600f80549115156101000261ff0019909216919091179055565b6005546001600160a01b03163314610ed35760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b4780610f2c5760405162461bcd60e51b815260206004820152602260248201527f4554482062616c616e6365206d7573742062652067726561746572207468616e604482015261020360f41b60648201526084016108d5565b600b546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610f76576040519150601f19603f3d011682016040523d82523d5f602084013e610f7b565b606091505b5050905080610fcc5760405162461bcd60e51b815260206004820152601b60248201527f4661696c656420746f20636c656172204554482062616c616e6365000000000060448201526064016108d5565b5050565b6060600480546107fb9061240e565b6005546001600160a01b031633146110265760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6009546001600160a01b03908116908316036110aa5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108d5565b610fcc8282611b46565b6005546001600160a01b031633146110fb5760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b305f90815260208190526040902054806111635760405162461bcd60e51b8152602060048201526024808201527f546f6b656e2062616c616e6365206d75737420626520677265617465722074686044820152630616e20360e41b60648201526084016108d5565b600b5461117b9030906001600160a01b031683611495565b50565b5f6108883384610a0d856040518060600160405280602581526020016125ee60259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190611b0e565b5f610888338484611495565b6005546001600160a01b0316331461121e5760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6001600160a01b0382165f81815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112c35760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b600f805460ff19169055565b6005546001600160a01b031633146113165760405162461bcd60e51b815260206004820181905260248201525f805160206125ce83398151915260448201526064016108d5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113d35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108d5565b6001600160a01b0382166114345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108d5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d5565b6001600160a01b03821661155b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d5565b805f036115725761156d83835f611bfe565b505050565b600f5460ff161561185d576005546001600160a01b038481169116148015906115a957506005546001600160a01b03838116911614155b80156115bd57506001600160a01b03821615155b80156115d457506001600160a01b03821661dead14155b80156115ea5750600954600160a01b900460ff16155b1561185d576001600160a01b0383165f908152601b602052604090205460ff16801561162e57506001600160a01b0382165f908152601a602052604090205460ff16155b1561171957600c548111156116ab5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d61785472616e73616374696f6e416d6f756e742e000000000000000000000060648201526084016108d5565b600e546001600160a01b0383165f908152602081905260409020546116d0908361245a565b11156117145760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108d5565b61185d565b6001600160a01b0382165f908152601b602052604090205460ff16801561175857506001600160a01b0383165f908152601a602052604090205460ff16155b156117d557600c548111156117145760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61785472616e73616374696f6e416d6f756e742e0000000000000000000060648201526084016108d5565b6001600160a01b0382165f908152601a602052604090205460ff1661185d57600e546001600160a01b0383165f90815260208190526040902054611819908361245a565b111561185d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108d5565b305f90815260208190526040902054600d548110801590819061188a5750600954600160a01b900460ff16155b80156118ae57506001600160a01b0385165f908152601b602052604090205460ff16155b80156118d257506001600160a01b0385165f9081526019602052604090205460ff16155b80156118f657506001600160a01b0384165f9081526019602052604090205460ff16155b15611924576009805460ff60a01b1916600160a01b179055611916611d7e565b6009805460ff60a01b191690555b6009546001600160a01b0386165f9081526019602052604090205460ff600160a01b90920482161591168061197057506001600160a01b0385165f9081526019602052604090205460ff165b1561197857505f5b5f8115611afa576001600160a01b0386165f908152601b602052604090205460ff1680156119a757505f601354115b15611a33576119cc60646119c660135488611f4490919063ffffffff16565b90611fc2565b9050601354601554826119df91906124b3565b6119e991906124ca565b60165f8282546119f9919061245a565b9091555050601354601454611a0e90836124b3565b611a1891906124ca565b60175f828254611a28919061245a565b90915550611adc9050565b6001600160a01b0387165f908152601b602052604090205460ff168015611a5b57505f601054115b15611adc57611a7a60646119c660105488611f4490919063ffffffff16565b905060105460125482611a8d91906124b3565b611a9791906124ca565b60165f828254611aa7919061245a565b9091555050601054601154611abc90836124b3565b611ac691906124ca565b60175f828254611ad6919061245a565b90915550505b8015611aed57611aed873083611bfe565b611af781866124e9565b94505b611b05878787611bfe565b50505050505050565b5f8184841115611b315760405162461bcd60e51b81526004016108d59190612266565b505f611b3d84866124e9565b95945050505050565b6001600160a01b0382165f818152601b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f80611ba5838561245a565b905083811015611bf75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108d5565b9392505050565b6001600160a01b038316611c625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d5565b6001600160a01b038216611cc45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d5565b611d0081604051806060016040528060268152602001612580602691396001600160a01b0386165f908152602081905260409020549190611b0e565b6001600160a01b038085165f908152602081905260408082209390935590841681522054611d2e9082611b99565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611488565b305f9081526020819052604081205490505f601754601654611da0919061245a565b90505f821580611dae575081155b15611db857505050565b600f54610100900460ff1615155f03611df657600d54611dd99060146124b3565b831115611df157600d54611dee9060146124b3565b92505b611e08565b305f9081526020819052604090205492505b5f60028360165486611e1a91906124b3565b611e2491906124ca565b611e2e91906124ca565b90505f611e3b8583612003565b905047611e4782612044565b5f611e524783612003565b90505f611e6e876119c660175485611f4490919063ffffffff16565b90505f611e7b82846124e9565b5f601681905560175590508515801590611e9457505f81115b15611ee757611ea3868261218c565b601654604080518781526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b600b546040516001600160a01b039091169047905f81818185875af1925050503d805f8114611f31576040519150601f19603f3d011682016040523d82523d5f602084013e611f36565b606091505b505050505050505050505050565b5f825f03611f5357505f61088c565b5f611f5e83856124b3565b905082611f6b85836124ca565b14611bf75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108d5565b5f611bf783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061223a565b5f611bf783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b0e565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612077576120776124fc565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f2919061246d565b81600181518110612105576121056124fc565b6001600160a01b03928316602091820292909201015260085461212b9130911684611371565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906121639085905f90869030904290600401612510565b5f604051808303815f87803b15801561217a575f80fd5b505af1158015610ced573d5f803e3d5ffd5b6008546121a49030906001600160a01b031684611371565b60085460405163f305d71960e01b81523060048201819052602482018590525f60448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561220e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122339190612488565b5050505050565b5f818361225a5760405162461bcd60e51b81526004016108d59190612266565b505f611b3d84866124ca565b5f6020808352835180828501525f5b8181101561229157858101830151858201604001528201612275565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461117b575f80fd5b5f80604083850312156122d6575f80fd5b82356122e1816122b1565b946020939093013593505050565b5f602082840312156122ff575f80fd5b8135611bf7816122b1565b5f805f806080858703121561231d575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f6060848603121561234b575f80fd5b8335612356816122b1565b92506020840135612366816122b1565b929592945050506040919091013590565b80358015158114612386575f80fd5b919050565b5f806040838503121561239c575f80fd5b82356123a7816122b1565b91506123b560208401612377565b90509250929050565b5f602082840312156123ce575f80fd5b611bf782612377565b5f80604083850312156123e8575f80fd5b82356123f3816122b1565b91506020830135612403816122b1565b809150509250929050565b600181811c9082168061242257607f821691505b60208210810361244057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561088c5761088c612446565b5f6020828403121561247d575f80fd5b8151611bf7816122b1565b5f805f6060848603121561249a575f80fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761088c5761088c612446565b5f826124e457634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561088c5761088c612446565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561255e5784516001600160a01b031683529383019391830191600101612539565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206b44542545a465d5fa90b65050cccd10deb46bedc97f6ad133ed779a6cd2333f64736f6c63430008150033
Deployed Bytecode Sourcemap
17532:12458:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4795:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5709:169;;;;;;;;;;-1:-1:-1;5709:169:0;;;;;:::i;:::-;;:::i;:::-;;;1211:14:1;;1204:22;1186:41;;1174:2;1159:18;5709:169:0;1046:187:1;17994:30:0;;;;;;;;;;-1:-1:-1;17994:30:0;;;;;;;;18567:64;;;;;;;;;;-1:-1:-1;18567:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17695:41;;;;;;;;;;-1:-1:-1;17695:41:0;;;;-1:-1:-1;;;;;17695:41:0;;;;;;-1:-1:-1;;;;;1681:55:1;;;1663:74;;1651:2;1636:18;17695:41:0;1490:253:1;5116:108:0;;;;;;;;;;-1:-1:-1;5204:12:0;;5116:108;;;1894:25:1;;;1882:2;1867:18;5116:108:0;1748:177:1;23947:165:0;;;;;;;;;;-1:-1:-1;23947:165:0;;;;;:::i;:::-;;:::i;:::-;;18276:33;;;;;;;;;;;;;;;;18175:27;;;;;;;;;;;;;;;;22911:386;;;;;;;;;;-1:-1:-1;22911:386:0;;;;;:::i;:::-;;:::i;18209:25::-;;;;;;;;;;;;;;;;5886:355;;;;;;;;;;-1:-1:-1;5886:355:0;;;;;:::i;:::-;;:::i;20920:1026::-;;;;;;;;;;;;;:::i;5015:93::-;;;;;;;;;;-1:-1:-1;5015:93:0;;5098:2;2923:36:1;;2911:2;2896:18;5015:93:0;2781:184:1;6249:218:0;;;;;;;;;;-1:-1:-1;6249:218:0;;;;;:::i;:::-;;:::i;18077:26::-;;;;;;;;;;;;;;;;17953:31;;;;;;;;;;;;;;;;17743:28;;;;;;;;;;-1:-1:-1;17743:28:0;;;;-1:-1:-1;;;;;17743:28:0;;;24120:125;;;;;;;;;;-1:-1:-1;24120:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;24209:28:0;24185:4;24209:28;;;:19;:28;;;;;;;;;24120:125;17911:35;;;;;;;;;;;;;;;;18110:24;;;;;;;;;;;;;;;;5232:127;;;;;;;;;;-1:-1:-1;5232:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5333:18:0;5306:7;5333:18;;;;;;;;;;;;5232:127;10776:148;;;;;;;;;;;;;:::i;22755:144::-;;;;;;;;;;-1:-1:-1;22755:144:0;;;;;:::i;:::-;;:::i;22639:107::-;;;;;;;;;;-1:-1:-1;22639:107:0;;;;;:::i;:::-;;:::i;21964:313::-;;;;;;;;;;;;;:::i;10562:79::-;;;;;;;;;;-1:-1:-1;10627:6:0;;-1:-1:-1;;;;;10627:6:0;10562:79;;18031:37;;;;;;;;;;-1:-1:-1;18031:37:0;;;;;;;;;;;4903:104;;;;;;;;;;;;;:::i;23496:245::-;;;;;;;;;;-1:-1:-1;23496:245:0;;;;;:::i;:::-;;:::i;22285:256::-;;;;;;;;;;;;;:::i;18316:27::-;;;;;;;;;;;;;;;;6475:269;;;;;;;;;;-1:-1:-1;6475:269:0;;;;;:::i;:::-;;:::i;5367:175::-;;;;;;;;;;-1:-1:-1;5367:175:0;;;;;:::i;:::-;;:::i;18790:58::-;;;;;;;;;;-1:-1:-1;18790:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17811:22;;;;;;;;;;;;;;;;18241:25;;;;;;;;;;;;;;;;23305:182;;;;;;;;;;-1:-1:-1;23305:182:0;;;;;:::i;:::-;;:::i;17875:29::-;;;;;;;;;;;;;;;;5550:151;;;;;;;;;;-1:-1:-1;5550:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5666:18:0;;;5639:7;5666:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5550:151;18141:24;;;;;;;;;;;;;;;;22549:81;;;;;;;;;;;;;:::i;10932:169::-;;;;;;;;;;-1:-1:-1;10932:169:0;;;;;:::i;:::-;;:::i;4795:100::-;4849:13;4882:5;4875:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4795:100;:::o;5709:169::-;5792:4;5809:39;228:10;5832:7;5841:6;5809:8;:39::i;:::-;-1:-1:-1;5866:4:0;5709:169;;;;;:::o;23947:165::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;;;;;;;;;24059:9:::1;::::0;24028:41:::1;::::0;-1:-1:-1;;;;;24059:9:0;;::::1;::::0;24028:41;::::1;::::0;::::1;::::0;24059:9:::1;::::0;24028:41:::1;24080:9;:24:::0;;-1:-1:-1;;;;;;24080:24:0::1;-1:-1:-1::0;;;;;24080:24:0;;;::::1;::::0;;;::::1;::::0;;23947:165::o;22911:386::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;23072:9:::1;:19:::0;;;23102:9:::1;:19:::0;;;23146:21:::1;23114:7:::0;23084;23146:21:::1;:::i;:::-;23132:11;:35:::0;23178:10:::1;:21:::0;;;23210:10:::1;:21:::0;;;23257:23:::1;23223:8:::0;23191;23257:23:::1;:::i;:::-;23242:12;:38:::0;-1:-1:-1;;;;22911:386:0:o;5886:355::-;6026:4;6043:36;6053:6;6061:9;6072:6;6043:9;:36::i;:::-;6090:121;6099:6;228:10;6121:89;6159:6;6121:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6121:19:0;;;;;;:11;:19;;;;;;;;228:10;6121:33;;;;;;;;;;:37;:89::i;:::-;6090:8;:121::i;:::-;-1:-1:-1;6229:4:0;5886:355;;;;;:::o;20920:1026::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;21030:42:::1;21087:58;21030:42:::0;21140:4:::1;21087:25;:58::i;:::-;21156:15;:34:::0;;-1:-1:-1;;;;;;21156:34:0::1;-1:-1:-1::0;;;;;21156:34:0;::::1;::::0;;::::1;::::0;;;21238:26:::1;::::0;;-1:-1:-1;;;21238:26:0;;;;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;21156:34;21238:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21220:56:0::1;;21285:4;21292:16;-1:-1:-1::0;;;;;21292:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21220:96;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;5781:15:1;;;21220:96:0::1;::::0;::::1;5763:34:1::0;5833:15;;5813:18;;;5806:43;5675:18;;21220:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21204:13;:112:::0;;-1:-1:-1;;;;;;21204:112:0::1;-1:-1:-1::0;;;;;21204:112:0;;;::::1;::::0;;::::1;::::0;;21327:55:::1;::::0;-1:-1:-1;21327:25:0::1;:55::i;:::-;21430:13;::::0;21393:58:::1;::::0;-1:-1:-1;;;;;21430:13:0::1;::::0;21393:28:::1;:58::i;:::-;21564:4;21472:17;5333:18:::0;;;;;;;;;;;21633:15:::1;::::0;21492:21:::1;::::0;21601:62:::1;::::0;-1:-1:-1;;;;;21633:15:0::1;5333:18:::0;21601:8:::1;:62::i;:::-;21676:15;::::0;21888:9:::1;::::0;21676:262:::1;::::0;-1:-1:-1;;;21676:262:0;;21748:4:::1;21676:262;::::0;::::1;6224:34:1::0;6274:18;;;6267:34;;;21676:15:0::1;6317:18:1::0;;;6310:34;;;6360:18;;;6353:34;-1:-1:-1;;;;;21888:9:0;;::::1;6403:19:1::0;;;6396:44;21912:15:0::1;6456:19:1::0;;;6449:35;21676:15:0;::::1;::::0;:31:::1;::::0;21715:9;;6135:19:1;;21676:262:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20956:990;;;20920:1026::o:0;6249:218::-;228:10;6337:4;6386:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6386:34:0;;;;;;;;;;6337:4;;6354:83;;6377:7;;6386:50;;6425:10;6386:38;:50::i;10776:148::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;10867:6:::1;::::0;10846:40:::1;::::0;10883:1:::1;::::0;-1:-1:-1;;;;;10867:6:0::1;::::0;10846:40:::1;::::0;10883:1;;10846:40:::1;10897:6;:19:::0;;-1:-1:-1;;;;;;10897:19:0::1;::::0;;10776:148::o;22755:144::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;-1:-1:-1;;;;;22845:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;22845:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22755:144::o;22639:107::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;22711:17:::1;:27:::0;;;::::1;;;;-1:-1:-1::0;;22711:27:0;;::::1;::::0;;;::::1;::::0;;22639:107::o;21964:313::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;22043:21:::1;22083:14:::0;22075:61:::1;;;::::0;-1:-1:-1;;;22075:61:0;;7008:2:1;22075:61:0::1;::::0;::::1;6990:21:1::0;7047:2;7027:18;;;7020:30;7086:34;7066:18;;;7059:62;-1:-1:-1;;;7137:18:1;;;7130:32;7179:19;;22075:61:0::1;6806:398:1::0;22075:61:0::1;22173:9;::::0;22165:46:::1;::::0;22148:12:::1;::::0;-1:-1:-1;;;;;22173:9:0::1;::::0;22196:10;;22148:12;22165:46;22148:12;22165:46;22196:10;22173:9;22165:46:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22147:64;;;22230:7;22222:47;;;::::0;-1:-1:-1;;;22222:47:0;;7621:2:1;22222:47:0::1;::::0;::::1;7603:21:1::0;7660:2;7640:18;;;7633:30;7699:29;7679:18;;;7672:57;7746:18;;22222:47:0::1;7419:351:1::0;22222:47:0::1;22011:266;;21964:313::o:0;4903:104::-;4959:13;4992:7;4985:14;;;;;:::i;23496:245::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;23603:13:::1;::::0;-1:-1:-1;;;;;23603:13:0;;::::1;23595:21:::0;;::::1;::::0;23587:91:::1;;;::::0;-1:-1:-1;;;23587:91:0;;7977:2:1;23587:91:0::1;::::0;::::1;7959:21:1::0;8016:2;7996:18;;;7989:30;8055:34;8035:18;;;8028:62;8126:27;8106:18;;;8099:55;8171:19;;23587:91:0::1;7775:421:1::0;23587:91:0::1;23692:41;23721:4;23727:5;23692:28;:41::i;22285:256::-:0;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;22391:4:::1;22350:20;5333:18:::0;;;;;;;;;;;22416:16;22408:65:::1;;;::::0;-1:-1:-1;;;22408:65:0;;8403:2:1;22408:65:0::1;::::0;::::1;8385:21:1::0;8442:2;8422:18;;;8415:30;8481:34;8461:18;;;8454:62;-1:-1:-1;;;8532:18:1;;;8525:34;8576:19;;22408:65:0::1;8201:400:1::0;22408:65:0::1;22509:9;::::0;22484:49:::1;::::0;22502:4:::1;::::0;-1:-1:-1;;;;;22509:9:0::1;22520:12:::0;22484:9:::1;:49::i;:::-;22339:202;22285:256::o:0;6475:269::-;6568:4;6585:129;228:10;6608:7;6617:96;6656:15;6617:96;;;;;;;;;;;;;;;;;228:10;6617:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6617:34:0;;;;;;;;;;;;:38;:96::i;5367:175::-;5453:4;5470:42;228:10;5494:9;5505:6;5470:9;:42::i;23305:182::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;-1:-1:-1;;;;;23390:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;23390:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23445:34;;1186:41:1;;;23445:34:0::1;::::0;1159:18:1;23445:34:0::1;;;;;;;23305:182:::0;;:::o;22549:81::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;22603:11:::1;:19:::0;;-1:-1:-1;;22603:19:0::1;::::0;;22549:81::o;10932:169::-;10689:6;;-1:-1:-1;;;;;10689:6:0;228:10;10689:22;10681:67;;;;-1:-1:-1;;;10681:67:0;;4851:2:1;10681:67:0;;;4833:21:1;;;4870:18;;;4863:30;-1:-1:-1;;;;;;;;;;;4909:18:1;;;4902:62;4981:18;;10681:67:0;4649:356:1;10681:67:0;11048:6:::1;::::0;11027:38:::1;::::0;-1:-1:-1;;;;;11027:38:0;;::::1;::::0;11048:6:::1;::::0;11027:38:::1;::::0;11048:6:::1;::::0;11027:38:::1;11076:6;:17:::0;;-1:-1:-1;;;;;;11076:17:0::1;-1:-1:-1::0;;;;;11076:17:0;;;::::1;::::0;;;::::1;::::0;;10932:169::o;8151:381::-;-1:-1:-1;;;;;8287:19:0;;8279:68;;;;-1:-1:-1;;;8279:68:0;;8808:2:1;8279:68:0;;;8790:21:1;8847:2;8827:18;;;8820:30;8886:34;8866:18;;;8859:62;-1:-1:-1;;;8937:18:1;;;8930:34;8981:19;;8279:68:0;8606:400:1;8279:68:0;-1:-1:-1;;;;;8366:21:0;;8358:68;;;;-1:-1:-1;;;8358:68:0;;9213:2:1;8358:68:0;;;9195:21:1;9252:2;9232:18;;;9225:30;9291:34;9271:18;;;9264:62;-1:-1:-1;;;9342:18:1;;;9335:32;9384:19;;8358:68:0;9011:398:1;8358:68:0;-1:-1:-1;;;;;8440:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8492:32;;1894:25:1;;;8492:32:0;;1867:18:1;8492:32:0;;;;;;;;8151:381;;;:::o;24254:3112::-;-1:-1:-1;;;;;24386:18:0;;24378:68;;;;-1:-1:-1;;;24378:68:0;;9616:2:1;24378:68:0;;;9598:21:1;9655:2;9635:18;;;9628:30;9694:34;9674:18;;;9667:62;-1:-1:-1;;;9745:18:1;;;9738:35;9790:19;;24378:68:0;9414:401:1;24378:68:0;-1:-1:-1;;;;;24465:16:0;;24457:64;;;;-1:-1:-1;;;24457:64:0;;10022:2:1;24457:64:0;;;10004:21:1;10061:2;10041:18;;;10034:30;10100:34;10080:18;;;10073:62;-1:-1:-1;;;10151:18:1;;;10144:33;10194:19;;24457:64:0;9820:399:1;24457:64:0;24536:6;24546:1;24536:11;24533:92;;24564:28;24580:4;24586:2;24590:1;24564:15;:28::i;:::-;24254:3112;;;:::o;24533:92::-;24641:11;;;;24638:1083;;;10627:6;;-1:-1:-1;;;;;24690:15:0;;;10627:6;;24690:15;;;;:49;;-1:-1:-1;10627:6:0;;-1:-1:-1;;;;;24726:13:0;;;10627:6;;24726:13;;24690:49;:86;;;;-1:-1:-1;;;;;;24760:16:0;;;;24690:86;:128;;;;-1:-1:-1;;;;;;24797:21:0;;24811:6;24797:21;;24690:128;:160;;;;-1:-1:-1;24840:10:0;;-1:-1:-1;;;24840:10:0;;;;24839:11;24690:160;24668:1042;;;-1:-1:-1;;;;;24934:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;24970:35:0;;;;;;:31;:35;;;;;;;;24969:36;24934:71;24930:765;;;25052:14;;25042:6;:24;;25034:90;;;;-1:-1:-1;;;25034:90:0;;10426:2:1;25034:90:0;;;10408:21:1;10465:2;10445:18;;;10438:30;10504:34;10484:18;;;10477:62;10575:23;10555:18;;;10548:51;10616:19;;25034:90:0;10224:417:1;25034:90:0;25185:16;;-1:-1:-1;;;;;5333:18:0;;5306:7;5333:18;;;;;;;;;;;25159:22;;:6;:22;:::i;:::-;:42;;25151:74;;;;-1:-1:-1;;;25151:74:0;;10848:2:1;25151:74:0;;;10830:21:1;10887:2;10867:18;;;10860:30;-1:-1:-1;;;10906:18:1;;;10899:49;10965:18;;25151:74:0;10646:343:1;25151:74:0;24930:765;;;-1:-1:-1;;;;;25304:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;25338:37:0;;;;;;:31;:37;;;;;;;;25337:38;25304:71;25300:395;;;25422:14;;25412:6;:24;;25404:91;;;;-1:-1:-1;;;25404:91:0;;11196:2:1;25404:91:0;;;11178:21:1;11235:2;11215:18;;;11208:30;11274:34;11254:18;;;11247:62;11345:24;11325:18;;;11318:52;11387:19;;25404:91:0;10994:418:1;25300:395:0;-1:-1:-1;;;;;25542:35:0;;;;;;:31;:35;;;;;;;;25538:157;;25635:16;;-1:-1:-1;;;;;5333:18:0;;5306:7;5333:18;;;;;;;;;;;25609:22;;:6;:22;:::i;:::-;:42;;25601:74;;;;-1:-1:-1;;;25601:74:0;;10848:2:1;25601:74:0;;;10830:21:1;10887:2;10867:18;;;10860:30;-1:-1:-1;;;10906:18:1;;;10899:49;10965:18;;25601:74:0;10646:343:1;25601:74:0;25783:4;25734:28;5333:18;;;;;;;;;;;25842:20;;25818:44;;;;;;;25894:35;;-1:-1:-1;25919:10:0;;-1:-1:-1;;;25919:10:0;;;;25918:11;25894:35;:84;;;;-1:-1:-1;;;;;;25947:31:0;;;;;;:25;:31;;;;;;;;25946:32;25894:84;:127;;;;-1:-1:-1;;;;;;25996:25:0;;;;;;:19;:25;;;;;;;;25995:26;25894:127;:168;;;;-1:-1:-1;;;;;;26039:23:0;;;;;;:19;:23;;;;;;;;26038:24;25894:168;25876:306;;;26089:10;:17;;-1:-1:-1;;;;26089:17:0;-1:-1:-1;;;26089:17:0;;;26124:10;:8;:10::i;:::-;26152;:18;;-1:-1:-1;;;;26152:18:0;;;25876:306;26211:10;;-1:-1:-1;;;;;26323:25:0;;26195:12;26323:25;;;:19;:25;;;;;;26211:10;-1:-1:-1;;;26211:10:0;;;;;26210:11;;26323:25;;:52;;-1:-1:-1;;;;;;26352:23:0;;;;;;:19;:23;;;;;;;;26323:52;26320:99;;;-1:-1:-1;26402:5:0;26320:99;26432:12;26536:7;26533:779;;;-1:-1:-1;;;;;26587:29:0;;;;;;:25;:29;;;;;;;;:49;;;;;26635:1;26620:12;;:16;26587:49;26583:576;;;26663:33;26692:3;26663:24;26674:12;;26663:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;26656:40;;26757:12;;26744:10;;26737:4;:17;;;;:::i;:::-;:32;;;;:::i;:::-;26715:18;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;26824:12:0;;26811:10;;26804:17;;:4;:17;:::i;:::-;:32;;;;:::i;:::-;26788:12;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;26583:576:0;;-1:-1:-1;26583:576:0;;-1:-1:-1;;;;;26897:31:0;;;;;;:25;:31;;;;;;;;:50;;;;;26946:1;26932:11;;:15;26897:50;26894:265;;;26975:32;27003:3;26975:23;26986:11;;26975:6;:10;;:23;;;;:::i;:32::-;26968:39;;27067:11;;27055:9;;27048:4;:16;;;;:::i;:::-;:30;;;;:::i;:::-;27026:18;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;27132:11:0;;27120:9;;27113:16;;:4;:16;:::i;:::-;:30;;;;:::i;:::-;27097:12;;:46;;;;;;;:::i;:::-;;;;-1:-1:-1;;26894:265:0;27179:8;;27176:93;;27211:42;27227:4;27241;27248;27211:15;:42::i;:::-;27286:14;27296:4;27286:14;;:::i;:::-;;;26533:779;27325:33;27341:4;27347:2;27351:6;27325:15;:33::i;:::-;24367:2999;;;;24254:3112;;;:::o;9039:193::-;9125:7;9161:12;9153:6;;;;9145:29;;;;-1:-1:-1;;;9145:29:0;;;;;;;;:::i;:::-;-1:-1:-1;9185:9:0;9197:5;9201:1;9197;:5;:::i;:::-;9185:17;9039:193;-1:-1:-1;;;;;9039:193:0:o;23750:189::-;-1:-1:-1;;;;;23833:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;23833:39:0;;;;;;;;;;23891:40;;23833:39;;:31;23891:40;;;23750:189;;:::o;8705:182::-;8763:7;;8795:5;8799:1;8795;:5;:::i;:::-;8783:17;;8824:1;8819;:6;;8811:46;;;;-1:-1:-1;;;8811:46:0;;12147:2:1;8811:46:0;;;12129:21:1;12186:2;12166:18;;;12159:30;12225:29;12205:18;;;12198:57;12272:18;;8811:46:0;11945:351:1;8811:46:0;8878:1;8705:182;-1:-1:-1;;;8705:182:0:o;6752:575::-;-1:-1:-1;;;;;6892:20:0;;6884:70;;;;-1:-1:-1;;;6884:70:0;;9616:2:1;6884:70:0;;;9598:21:1;9655:2;9635:18;;;9628:30;9694:34;9674:18;;;9667:62;-1:-1:-1;;;9745:18:1;;;9738:35;9790:19;;6884:70:0;9414:401:1;6884:70:0;-1:-1:-1;;;;;6973:23:0;;6965:71;;;;-1:-1:-1;;;6965:71:0;;10022:2:1;6965:71:0;;;10004:21:1;10061:2;10041:18;;;10034:30;10100:34;10080:18;;;10073:62;-1:-1:-1;;;10151:18:1;;;10144:33;10194:19;;6965:71:0;9820:399:1;6965:71:0;7131;7153:6;7131:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7131:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;7111:17:0;;;:9;:17;;;;;;;;;;;:91;;;;7236:20;;;;;;;:32;;7261:6;7236:24;:32::i;:::-;-1:-1:-1;;;;;7213:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;7284:35;1894:25:1;;;7213:20:0;;7284:35;;;;;;1867:18:1;7284:35:0;1748:177:1;28510:1477:0;28593:4;28549:23;5333:18;;;;;;;;;;;28549:50;;28610:25;28659:12;;28638:18;;:33;;;;:::i;:::-;28610:61;-1:-1:-1;28682:12:0;28711:20;;;:46;;-1:-1:-1;28735:22:0;;28711:46;28708:60;;;28760:7;;;28510:1477::o;28708:60::-;28784:17;;;;;;;:26;;28805:5;28784:26;28781:254;;28847:20;;:25;;28870:2;28847:25;:::i;:::-;28829:15;:43;28826:125;;;28910:20;;:25;;28933:2;28910:25;:::i;:::-;28892:43;;28826:125;28781:254;;;29017:4;5306:7;5333:18;;;;;;;;;;;28981:42;;28781:254;29107:23;29192:1;29172:17;29151:18;;29133:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;29107:86;-1:-1:-1;29204:26:0;29233:36;:15;29107:86;29233:19;:36::i;:::-;29204:65;-1:-1:-1;29311:21:0;29346:36;29204:65;29346:16;:36::i;:::-;29397:18;29418:44;:21;29444:17;29418:25;:44::i;:::-;29397:65;;29476:17;29496:51;29529:17;29496:28;29511:12;;29496:10;:14;;:28;;;;:::i;:51::-;29476:71;-1:-1:-1;29558:23:0;29584:22;29476:71;29584:10;:22;:::i;:::-;29644:1;29623:18;:22;;;29656:12;:16;29558:48;-1:-1:-1;29689:19:0;;;;;:42;;;29730:1;29712:15;:19;29689:42;29686:210;;;29747:46;29760:15;29777;29747:12;:46::i;:::-;29865:18;;29813:71;;;12503:25:1;;;12559:2;12544:18;;12537:34;;;12587:18;;;12580:34;;;;29813:71:0;;;;;;12491:2:1;29813:71:0;;;29686:210;29930:9;;29922:57;;-1:-1:-1;;;;;29930:9:0;;;;29953:21;;29922:57;;;;29953:21;29930:9;29922:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;28510:1477:0:o;9240:254::-;9298:7;9324:1;9329;9324:6;9320:47;;-1:-1:-1;9354:1:0;9347:8;;9320:47;9380:9;9392:5;9396:1;9392;:5;:::i;:::-;9380:17;-1:-1:-1;9425:1:0;9416:5;9420:1;9380:17;9416:5;:::i;:::-;:10;9408:56;;;;-1:-1:-1;;;9408:56:0;;12827:2:1;9408:56:0;;;12809:21:1;12866:2;12846:18;;;12839:30;12905:34;12885:18;;;12878:62;-1:-1:-1;;;12956:18:1;;;12949:31;12997:19;;9408:56:0;12625:397:1;9502:132:0;9560:7;9587:39;9591:1;9594;9587:39;;;;;;;;;;;;;;;;;:3;:39::i;8895:136::-;8953:7;8980:43;8984:1;8987;8980:43;;;;;;;;;;;;;;;;;:3;:43::i;27375:597::-;27528:16;;;27542:1;27528:16;;;;;;;;27504:21;;27528:16;;;;;;;;;;-1:-1:-1;27528:16:0;27504:40;;27573:4;27555;27560:1;27555:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27555:23:0;;;:7;;;;;;;;;;:23;;;;27599:15;;:22;;;-1:-1:-1;;;27599:22:0;;;;:15;;;;;:20;;:22;;;;;27555:7;;27599:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27589:4;27594:1;27589:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27589:32:0;;;:7;;;;;;;;;:32;27667:15;;27635:62;;27652:4;;27667:15;27685:11;27635:8;:62::i;:::-;27737:15;;:224;;-1:-1:-1;;;27737:224:0;;-1:-1:-1;;;;;27737:15:0;;;;:66;;:224;;27818:11;;27737:15;;27888:4;;27915;;27935:15;;27737:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27981:520;28161:15;;28129:62;;28146:4;;-1:-1:-1;;;;;28161:15:0;28179:11;28129:8;:62::i;:::-;28235:15;;:258;;-1:-1:-1;;;28235:258:0;;28307:4;28235:258;;;6224:34:1;;;6274:18;;;6267:34;;;28235:15:0;6317:18:1;;;6310:34;;;6360:18;;;6353:34;6403:19;;;6396:44;28467:15:0;6456:19:1;;;6449:35;-1:-1:-1;;;;;28235:15:0;;;;:31;;28274:9;;6135:19:1;;28235:258:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27981:520;;:::o;9642:279::-;9728:7;9763:12;9756:5;9748:28;;;;-1:-1:-1;;;9748:28:0;;;;;;;;:::i;:::-;-1:-1:-1;9787:9:0;9799:5;9803:1;9799;: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:154::-;-1:-1:-1;;;;;646:5:1;642:54;635:5;632:65;622:93;;711:1;708;701:12;726:315;794:6;802;855:2;843:9;834:7;830:23;826:32;823:52;;;871:1;868;861:12;823:52;910:9;897:23;929:31;954:5;929:31;:::i;:::-;979:5;1031:2;1016:18;;;;1003:32;;-1:-1:-1;;;726:315:1:o;1238:247::-;1297:6;1350:2;1338:9;1329:7;1325:23;1321:32;1318:52;;;1366:1;1363;1356:12;1318:52;1405:9;1392:23;1424:31;1449:5;1424:31;:::i;1930:385::-;2016:6;2024;2032;2040;2093:3;2081:9;2072:7;2068:23;2064:33;2061:53;;;2110:1;2107;2100:12;2061:53;-1:-1:-1;;2133:23:1;;;2203:2;2188:18;;2175:32;;-1:-1:-1;2254:2:1;2239:18;;2226:32;;2305:2;2290:18;2277:32;;-1:-1:-1;1930:385:1;-1:-1:-1;1930:385:1:o;2320:456::-;2397:6;2405;2413;2466:2;2454:9;2445:7;2441:23;2437:32;2434:52;;;2482:1;2479;2472:12;2434:52;2521:9;2508:23;2540:31;2565:5;2540:31;:::i;:::-;2590:5;-1:-1:-1;2647:2:1;2632:18;;2619:32;2660:33;2619:32;2660:33;:::i;:::-;2320:456;;2712:7;;-1:-1:-1;;;2766:2:1;2751:18;;;;2738:32;;2320:456::o;3201:160::-;3266:20;;3322:13;;3315:21;3305:32;;3295:60;;3351:1;3348;3341:12;3295:60;3201:160;;;:::o;3366:315::-;3431:6;3439;3492:2;3480:9;3471:7;3467:23;3463:32;3460:52;;;3508:1;3505;3498:12;3460:52;3547:9;3534:23;3566:31;3591:5;3566:31;:::i;:::-;3616:5;-1:-1:-1;3640:35:1;3671:2;3656:18;;3640:35;:::i;:::-;3630:45;;3366:315;;;;;:::o;3686:180::-;3742:6;3795:2;3783:9;3774:7;3770:23;3766:32;3763:52;;;3811:1;3808;3801:12;3763:52;3834:26;3850:9;3834:26;:::i;3871:388::-;3939:6;3947;4000:2;3988:9;3979:7;3975:23;3971:32;3968:52;;;4016:1;4013;4006:12;3968:52;4055:9;4042:23;4074:31;4099:5;4074:31;:::i;:::-;4124:5;-1:-1:-1;4181:2:1;4166:18;;4153:32;4194:33;4153:32;4194:33;:::i;:::-;4246:7;4236:17;;;3871:388;;;;;:::o;4264:380::-;4343:1;4339:12;;;;4386;;;4407:61;;4461:4;4453:6;4449:17;4439:27;;4407:61;4514:2;4506:6;4503:14;4483:18;4480:38;4477:161;;4560:10;4555:3;4551:20;4548:1;4541:31;4595:4;4592:1;4585:15;4623:4;4620:1;4613:15;4477:161;;4264:380;;;:::o;5010:127::-;5071:10;5066:3;5062:20;5059:1;5052:31;5102:4;5099:1;5092:15;5126:4;5123:1;5116:15;5142:125;5207:9;;;5228:10;;;5225:36;;;5241:18;;:::i;5272:251::-;5342:6;5395:2;5383:9;5374:7;5370:23;5366:32;5363:52;;;5411:1;5408;5401:12;5363:52;5443:9;5437:16;5462:31;5487:5;5462:31;:::i;6495:306::-;6583:6;6591;6599;6652:2;6640:9;6631:7;6627:23;6623:32;6620:52;;;6668:1;6665;6658:12;6620:52;6697:9;6691:16;6681:26;;6747:2;6736:9;6732:18;6726:25;6716:35;;6791:2;6780:9;6776:18;6770:25;6760:35;;6495:306;;;;;:::o;11417:168::-;11490:9;;;11521;;11538:15;;;11532:22;;11518:37;11508:71;;11559:18;;:::i;11590:217::-;11630:1;11656;11646:132;;11700:10;11695:3;11691:20;11688:1;11681:31;11735:4;11732:1;11725:15;11763:4;11760:1;11753:15;11646:132;-1:-1:-1;11792:9:1;;11590:217::o;11812:128::-;11879:9;;;11900:11;;;11897:37;;;11914:18;;:::i;13159:127::-;13220:10;13215:3;13211:20;13208:1;13201:31;13251:4;13248:1;13241:15;13275:4;13272:1;13265:15;13291:1026;13553:4;13601:3;13590:9;13586:19;13632:6;13621:9;13614:25;13658:2;13696:6;13691:2;13680:9;13676:18;13669:34;13739:3;13734:2;13723:9;13719:18;13712:31;13763:6;13798;13792:13;13829:6;13821;13814:22;13867:3;13856:9;13852:19;13845:26;;13906:2;13898:6;13894:15;13880:29;;13927:1;13937:218;13951:6;13948:1;13945:13;13937:218;;;14016:13;;-1:-1:-1;;;;;14012:62:1;14000:75;;14130:15;;;;14095:12;;;;13973:1;13966:9;13937:218;;;-1:-1:-1;;;;;;;14211:55:1;;;;14206:2;14191:18;;14184:83;-1:-1:-1;;;14298:3:1;14283:19;14276:35;14172:3;13291:1026;-1:-1:-1;;;13291:1026:1:o
Swarm Source
ipfs://6b44542545a465d5fa90b65050cccd10deb46bedc97f6ad133ed779a6cd2333f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.