Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 BNB
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
15,000,000,000 BNBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CZ
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-06 */ // SPDX-License-Identifier: MIT /* */ pragma solidity ^0.8.9; contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract ERC20Ownable 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 virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "ERC20Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "ERC20Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view 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); } 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 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; 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 swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; 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 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; } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 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 (uint256); function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to); event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } contract CZ is Context, IERC20, ERC20Ownable { using SafeMath for uint256; using Address for address; string private constant tokenName = "Proof Of CZ"; string private constant tokenSymbol = "BNB"; uint8 private constant tokenDecimal = 18; uint256 private constant tokenSupply = 1e12 * 10**tokenDecimal; mapping(address => mapping(address => uint256)) private tokenAllowances; mapping(address => uint256) private tokenBalance; mapping(address => bool) private isContractsExcluded; mapping(address => bool) private isMaxWalletExcluded; mapping(address => bool) private isTaxExcluded; mapping(address => bool) public isSniper; mapping(address => bool) public isBot; address payable liquidityAddress; address payable marketingAddress; address payable devAddress; address dead = address(0xdead); address public uniV2Pair; IUniswapV2Router02 public uniV2Router; address public uniV3Router; uint256 private maxWallet; uint256 private minTaxSwap; uint256 private marketingTokens; uint256 private liquidityTokens; uint256 private totalBurnedTokens; uint256 private marketingTax; uint256 private liquidityTax; uint256 private divForSplitTax; uint256 private taxBuyMarketing; uint256 private taxBuyLiquidity; uint256 private taxSellMarketing; uint256 private taxSellTreasury; uint256 private taxSellLiquidity; uint256 public activeTradingBlock; uint256 public sniperPenaltyEnd; bool public limitsOn = false; bool public maxWalletOn = false; bool public live = false; bool public contractBlocker = false; bool inSwapAndLiquify; bool private swapAndLiquifyStatus = false; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() payable { tokenBalance[address(this)] = tokenSupply; maxWallet = tokenSupply.mul(4).div(100); minTaxSwap = tokenSupply.mul(5).div(10000); marketingAddress = payable(0xbF9998a646bf24bffC7b67516a9952E138891377); devAddress = payable(0xbF9998a646bf24bffC7b67516a9952E138891377); liquidityAddress = payable(owner()); //LEAVE AS OWNER taxBuyMarketing = 25; taxBuyLiquidity = 0; taxSellMarketing = 25; taxSellLiquidity = 0; isContractsExcluded[address(this)] = true; isTaxExcluded[owner()] = true; isTaxExcluded[dead] = true; isTaxExcluded[address(this)] = true; isTaxExcluded[marketingAddress] = true; isTaxExcluded[liquidityAddress] = true; isMaxWalletExcluded[address(this)] = true; isMaxWalletExcluded[owner()] = true; isMaxWalletExcluded[marketingAddress] = true; isMaxWalletExcluded[liquidityAddress] = true; isMaxWalletExcluded[dead] = true; emit Transfer(address(0), address(this), tokenSupply); } receive() external payable {} function name() external pure override returns (string memory) { return tokenName; } function symbol() external pure override returns (string memory) { return tokenSymbol; } function decimals() external pure override returns (uint8) { return tokenDecimal; } function totalSupply() external pure override returns (uint256) { return tokenSupply; } function balanceOf(address account) public view override returns (uint256) { return tokenBalance[account]; } function allowance(address owner, address spender) external view override returns (uint256) { return tokenAllowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(_msgSender() != address(0), "ERC20: Can not approve from zero address"); require(spender != address(0), "ERC20: Can not approve to zero address"); tokenAllowances[_msgSender()][spender] = amount; emit Approval(_msgSender(), spender, amount); return true; } function internalApprove(address owner,address spender,uint256 amount) internal { require(owner != address(0), "ERC20: Can not approve from zero address"); require(spender != address(0), "ERC20: Can not approve to zero address"); tokenAllowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transfer(address recipient, uint256 amount) external override returns (bool) { internalTransfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender,address recipient,uint256 amount) external override returns (bool) { internalTransfer(sender, recipient, amount); internalApprove(sender,_msgSender(), tokenAllowances[sender][_msgSender()].sub(amount, "ERC20: Can not transfer. Amount exceeds allowance")); return true; } function AirDrop(address[] memory wallets, uint256[] memory percent) external onlyOwner{ require(wallets.length < 100, "Can only airdrop 100 wallets per txn due to gas limits"); for(uint256 i = 0; i < wallets.length; i++){ address wallet = wallets[i]; uint256 amount = tokenSupply.mul(percent[i]).div(100); internalTransfer(_msgSender(), wallet, amount); } } function GoLive() external onlyOwner returns (bool){ require(!live, "ERC20: Trades already Live!"); activeTradingBlock = block.number; sniperPenaltyEnd = block.timestamp.add(2 days); IUniswapV2Router02 _uniV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniV2Router = _uniV2Router; uniV3Router = 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45; isContractsExcluded[address(uniV2Router)] = true; isContractsExcluded[address(uniV3Router)] = true; isMaxWalletExcluded[address(uniV2Router)] = true; internalApprove(address(this), address(uniV2Router), tokenSupply); uniV2Pair = IUniswapV2Factory(_uniV2Router.factory()).createPair(address(this), _uniV2Router.WETH()); isContractsExcluded[address(uniV2Pair)] = true; isMaxWalletExcluded[address(uniV2Pair)] = true; require(address(this).balance > 0, "ERC20: Must have ETH on contract to Go Live!"); addLiquidity(balanceOf(address(this)), address(this).balance); launchSetLiquidityAddress(dead); maxWalletOn = true; swapAndLiquifyStatus = true; limitsOn = true; live = true; return true; } function internalTransfer(address from, address to, uint256 amount) internal { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "ERC20: Transfer amount must be greater than zero"); require(!isBot[from], "ERC20: Can not transfer from BOT"); if(!live){ require(isTaxExcluded[from] || isTaxExcluded[to], "ERC20: Trading Is Not Live!"); } if (maxWalletOn == true && ! isMaxWalletExcluded[to]) { require(balanceOf(to).add(amount) <= maxWallet, "ERC20: Max amount of tokens for wallet reached"); } if(limitsOn){ if (from != owner() && to != owner() && to != address(0) && to != dead && to != uniV2Pair) { for (uint x = 0; x < 3; x++) { if(block.number == activeTradingBlock.add(x)) { isSniper[to] = true; } } } } if(contractBlocker) { require( !isContract(to) && isContractsExcluded[from] || !isContract(from) && isContractsExcluded[to] || isContract(from) && isContractsExcluded[to] || isContract(to) && isContractsExcluded[from] ); } uint256 totalTokensToSwap = liquidityTokens.add(marketingTokens); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minTaxSwap; if (!inSwapAndLiquify && swapAndLiquifyStatus && balanceOf(uniV2Pair) > 0 && totalTokensToSwap > 0 && !isTaxExcluded[to] && !isTaxExcluded[from] && to == uniV2Pair && overMinimumTokenBalance) { taxTokenSwap(); } if (isTaxExcluded[from] || isTaxExcluded[to]) { marketingTax = 0; liquidityTax = 0; divForSplitTax = marketingTax.add(liquidityTax); } else { if (from == uniV2Pair) { marketingTax = taxBuyMarketing; liquidityTax = taxBuyLiquidity; divForSplitTax = taxBuyMarketing.add(taxBuyLiquidity); }else if (to == uniV2Pair) { marketingTax = taxSellMarketing; liquidityTax = taxSellLiquidity; divForSplitTax = taxSellMarketing.add(taxSellLiquidity); if(isSniper[from] && sniperPenaltyEnd >= block.timestamp){ marketingTax = 85; liquidityTax = 10; divForSplitTax = marketingTax.add(liquidityTax); } }else { require(!isSniper[from] || sniperPenaltyEnd <= block.timestamp, "ERC20: Snipers can not transfer till penalty time is over"); marketingTax = 0; liquidityTax = 0; } } tokenTransfer(from, to, amount); } function taxTokenSwap() internal lockTheSwap { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = marketingTokens.add(liquidityTokens); uint256 swapLiquidityTokens = liquidityTokens.div(2); uint256 amountToSwapForETH = contractBalance.sub(swapLiquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForETH(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(marketingTokens).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance.sub(ethForMarketing); marketingTokens = 0; liquidityTokens = 0; (bool success,) = address(marketingAddress).call{value: ethForMarketing}(""); if(ethForLiquidity != 0 && swapLiquidityTokens != 0) { addLiquidity(swapLiquidityTokens, ethForLiquidity); } if(address(this).balance > 5 * 1e17){ (success,) = address(devAddress).call{value: address(this).balance}(""); } } function swapTokensForETH(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniV2Router.WETH(); internalApprove(address(this), address(uniV2Router), tokenAmount); uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal { internalApprove(address(this), address(uniV2Router), tokenAmount); uniV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, liquidityAddress, block.timestamp ); } function calculateTax(uint256 amount) internal view returns (uint256) { return amount.mul(marketingTax.add(liquidityTax)).div(100); } function splitTaxTokens(uint256 taxTokens) internal { marketingTokens += taxTokens.mul(marketingTax).div(divForSplitTax); liquidityTokens += taxTokens.mul(liquidityTax).div(divForSplitTax); } function tokenTransfer(address sender,address recipient,uint256 amount) internal { if(divForSplitTax != 0){ uint256 taxTokens = calculateTax(amount); uint256 transferTokens = amount.sub(taxTokens); splitTaxTokens(taxTokens); tokenBalance[sender] -= amount; tokenBalance[recipient] += transferTokens; tokenBalance[address(this)] += taxTokens; emit Transfer(sender, recipient, transferTokens); }else{ tokenBalance[sender] -= amount; tokenBalance[recipient] += amount; emit Transfer(sender, recipient, amount); } } function launchSetLiquidityAddress(address LPAddress) internal { liquidityAddress = payable(LPAddress); isTaxExcluded[liquidityAddress] = true; } function isContract(address account) public view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function addRemoveContract(address account, bool trueORfalse) external onlyOwner { isContractsExcluded[account] = trueORfalse; } function isExcludedContract(address account) public view returns (bool) { return isContractsExcluded[account]; } function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(owner()).call{value: address(this).balance}(""); } function withdrawStuckTokens(uint256 percent) external onlyOwner { internalTransfer(address(this), owner(), tokenSupply*percent/100); } function manualBurnTokensFromLP(uint256 percent) external onlyOwner returns (bool){ require(percent <= 10, "ERC20: May not nuke more than 10% of tokens in LP"); uint256 liquidityPairBalance = this.balanceOf(uniV2Pair); uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10**2); if (amountToBurn > 0){ internalTransfer(uniV2Pair, dead, amountToBurn); } totalBurnedTokens = balanceOf(dead); require(totalBurnedTokens <= tokenSupply * 50 / 10**2, "ERC20: Can not burn more then 50% of supply"); IUniswapV2Pair pair = IUniswapV2Pair(uniV2Pair); pair.sync(); return true; } function manualSwapTax() external onlyOwner { uint256 contractBalance = balanceOf(address(this)); require(contractBalance >= tokenSupply.mul(5).div(10000), "ERC20: Can only swap back if more than 0.05% of tokens stuck on contract"); taxTokenSwap(); } function addBot(address account) external onlyOwner { require(!isBot[account], "ERC20: Account already added"); isBot[account] = true; } function removeBot(address account) external onlyOwner { require(isBot[account], "ERC20: Account is not bot"); isBot[account] = false; } function removeSniper(address account) external onlyOwner { require(isSniper[account], "ERC20: Account is not sniper"); isSniper[account] = false; } function setExcludedContractAccount(address account, bool trueORfalse) external onlyOwner { isContractsExcluded[address(account)] = trueORfalse; } function setExcludedFromTax(address account, bool trueORfalse) external onlyOwner { isTaxExcluded[address(account)] = trueORfalse; } function setExcludedFromMaxWallet(address account, bool trueORfalse) external onlyOwner { isMaxWalletExcluded[address(account)] = trueORfalse; } function setMaxWalletAmount(uint256 percent, uint256 divider) external onlyOwner { maxWallet = tokenSupply.mul(percent).div(divider); require(maxWallet <=tokenSupply.mul(100).div(100), "ERC20: Can not set max wallet more than 4%"); } function setStatusLimits(bool trueORfalse) external onlyOwner { limitsOn = trueORfalse; } function setStatusMaxWallet(bool trueORfalse) external onlyOwner { maxWalletOn = trueORfalse; } function setStatusContractBlocker(bool trueORfalse) external onlyOwner { contractBlocker = trueORfalse; } function setSwapAndLiquifyStatus(bool trueORfalse) external onlyOwner { swapAndLiquifyStatus = trueORfalse; } function setTaxes(uint256 buyMarketingTax, uint256 buyLiquidityTax, uint256 sellMarketingTax, uint256 sellLiquidityTax) external onlyOwner { taxBuyMarketing = buyMarketingTax; taxBuyLiquidity = buyLiquidityTax; taxSellMarketing = sellMarketingTax; taxSellLiquidity = sellLiquidityTax; } function viewTaxes() public view returns(uint256 marketingBuy, uint256 liquidityBuy, uint256 marketingSell, uint256 liquiditySell) { return(taxBuyMarketing,taxBuyLiquidity,taxSellMarketing,taxSellLiquidity); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"percent","type":"uint256[]"}],"name":"AirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GoLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"activeTradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"addRemoveContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractBlocker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnTokensFromLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setExcludedContractAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setExcludedFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divider","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setStatusContractBlocker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setStatusLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setStatusMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setSwapAndLiquifyStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyMarketingTax","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"sellMarketingTax","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV3Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTaxes","outputs":[{"internalType":"uint256","name":"marketingBuy","type":"uint256"},{"internalType":"uint256","name":"liquidityBuy","type":"uint256"},{"internalType":"uint256","name":"marketingSell","type":"uint256"},{"internalType":"uint256","name":"liquiditySell","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600b80546001600160a01b03191661dead179055601e805465ff00ffffffff191690556000620000313390565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000896012600a620003fd565b6200009a9064e8d4a510006200040e565b30600090815260026020526040902055620000fd6064620000e96004620000c46012600a620003fd565b620000d59064e8d4a510006200040e565b620002c560201b62001a2b1790919060201c565b620002dc60201b62001a3e1790919060201c565b600f556200011b612710620000e96005620000c46012600a620003fd565b6010556009805473bf9998a646bf24bffc7b67516a9952e1388913776001600160a01b03199182168117909255600a80549091169091179055620001676000546001600160a01b031690565b600880546001600160a01b0319166001600160a01b039283161781556019601781905560006018819055908055601b81905530808252600360209081526040808420805460ff199081166001908117909255855488168652600584528286208054821683179055600b80548916875283872080548316841790558587528387208054831684179055600980548a168852848820805484168517905588548a1688528488208054841685179055868852600490955283872080548316841790558654891687528387208054831684179055935488168652828620805482168317905595548716855281852080548716821790559154909516835293822080549093169093179091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200029d6012600a620003fd565b620002ae9064e8d4a510006200040e565b60405190815260200160405180910390a362000453565b6000620002d382846200040e565b90505b92915050565b6000620002d3828462000430565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000341578160001904821115620003255762000325620002ea565b808516156200033357918102915b93841c939080029062000305565b509250929050565b6000826200035a57506001620002d6565b816200036957506000620002d6565b81600181146200038257600281146200038d57620003ad565b6001915050620002d6565b60ff841115620003a157620003a1620002ea565b50506001821b620002d6565b5060208310610133831016604e8410600b8410161715620003d2575081810a620002d6565b620003de838362000300565b8060001904821115620003f557620003f5620002ea565b029392505050565b6000620002d360ff84168362000349565b60008160001904831182151516156200042b576200042b620002ea565b500290565b6000826200044e57634e487b7160e01b600052601260045260246000fd5b500490565b612fce80620004636000396000f3fe6080604052600436106102765760003560e01c80637817be6c1161014f578063a73f9b58116100c1578063ee2e5a2e1161007a578063ee2e5a2e146107e2578063f0c0cf8714610802578063f2fde38b14610818578063f35900d014610838578063f5648a4f14610858578063ffecf5161461086d57600080fd5b8063a73f9b5814610731578063a9059cbb14610746578063c2ed286b14610766578063dd62ed3e14610786578063e4252ddf1461062b578063ea090d97146107cc57600080fd5b8063957aa58c11610113578063957aa58c1461064b578063958c2e521461066b57806395d89b411461068b57806396c9b442146106b7578063a12a7d61146106d8578063a20d9615146106f857600080fd5b80637817be6c146105ad5780638bcea939146105cd5780638c714f80146105ed5780638da5cb5b1461060d57806391c09d1e1461062b57600080fd5b80633b4e935a116101e85780635fafa589116101ac5780635fafa589146104e15780635fecd9261461051957806370a0823114610539578063715018a614610559578063745d032f1461056e57806375d0cc431461058d57600080fd5b80633b4e935a1461043c5780633bbac57914610451578063412201041461048157806351524e5b146104a15780635e6710de146104c157600080fd5b806318160ddd1161023a57806318160ddd14610381578063186d260d146103a45780631c42047a146103c657806323b872dd146103e0578063313ce5671461040057806333251a0b1461041c57600080fd5b806306fdde0314610282578063095ea7b3146102c85780630f3a325f146102f857806311abf53714610328578063162790551461036157600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5060408051808201909152600b81526a283937b7b31027b31021ad60a91b60208201525b6040516102bf9190612885565b60405180910390f35b3480156102d457600080fd5b506102e86102e33660046128ef565b61088d565b60405190151581526020016102bf565b34801561030457600080fd5b506102e861031336600461291b565b60066020526000908152604090205460ff1681565b34801561033457600080fd5b50601754601854601954601b546040805194855260208501939093529183015260608201526080016102bf565b34801561036d57600080fd5b506102e861037c36600461291b565b610940565b34801561038d57600080fd5b5061039661097c565b6040519081526020016102bf565b3480156103b057600080fd5b506103c46103bf366004612948565b61099e565b005b3480156103d257600080fd5b50601e546102e89060ff1681565b3480156103ec57600080fd5b506102e86103fb366004612963565b6109db565b34801561040c57600080fd5b50604051601281526020016102bf565b34801561042857600080fd5b506103c461043736600461291b565b610a44565b34801561044857600080fd5b506102e8610af7565b34801561045d57600080fd5b506102e861046c36600461291b565b60076020526000908152604090205460ff1681565b34801561048d57600080fd5b506103c461049c3660046129a4565b610eef565b3480156104ad57600080fd5b506103c46104bc366004612aaf565b610f44565b3480156104cd57600080fd5b506103c46104dc366004612b71565b61107c565b3480156104ed57600080fd5b50600e54610501906001600160a01b031681565b6040516001600160a01b0390911681526020016102bf565b34801561052557600080fd5b506103c461053436600461291b565b6110f6565b34801561054557600080fd5b5061039661055436600461291b565b6111a9565b34801561056557600080fd5b506103c46111c4565b34801561057a57600080fd5b50601e546102e890610100900460ff1681565b34801561059957600080fd5b506103c46105a8366004612948565b611238565b3480156105b957600080fd5b506102e86105c8366004612b71565b611280565b3480156105d957600080fd5b50600c54610501906001600160a01b031681565b3480156105f957600080fd5b506103c4610608366004612948565b6114db565b34801561061957600080fd5b506000546001600160a01b0316610501565b34801561063757600080fd5b506103c46106463660046129a4565b61151f565b34801561065757600080fd5b50601e546102e89062010000900460ff1681565b34801561067757600080fd5b50600d54610501906001600160a01b031681565b34801561069757600080fd5b5060408051808201909152600381526221272160e91b60208201526102b2565b3480156106c357600080fd5b50601e546102e8906301000000900460ff1681565b3480156106e457600080fd5b506103c46106f3366004612b8a565b611574565b34801561070457600080fd5b506102e861071336600461291b565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561073d57600080fd5b506103c46115b2565b34801561075257600080fd5b506102e86107613660046128ef565b61168e565b34801561077257600080fd5b506103c46107813660046129a4565b6116a4565b34801561079257600080fd5b506103966107a1366004612bbc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107d857600080fd5b50610396601c5481565b3480156107ee57600080fd5b506103c46107fd366004612948565b6116f9565b34801561080e57600080fd5b50610396601d5481565b34801561082457600080fd5b506103c461083336600461291b565b611745565b34801561084457600080fd5b506103c4610853366004612bf5565b611834565b34801561086457600080fd5b506103c46118f2565b34801561087957600080fd5b506103c461088836600461291b565b611974565b6000336108b55760405162461bcd60e51b81526004016108ac90612c17565b60405180910390fd5b6001600160a01b0383166108db5760405162461bcd60e51b81526004016108ac90612c5f565b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061097457508115155b949350505050565b600061098a6012600a612d9f565b6109999064e8d4a51000612dae565b905090565b6000546001600160a01b031633146109c85760405162461bcd60e51b81526004016108ac90612dcd565b601e805460ff1916911515919091179055565b60006109e8848484611a4a565b610a3a8433610a3585604051806060016040528060318152602001612f68603191396001600160a01b038a16600090815260016020908152604080832033845290915290205491906121b8565b6121e4565b5060019392505050565b6000546001600160a01b03163314610a6e5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03811660009081526006602052604090205460ff16610ad65760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e74206973206e6f7420736e697065720000000060448201526064016108ac565b6001600160a01b03166000908152600660205260409020805460ff19169055565b600080546001600160a01b03163314610b225760405162461bcd60e51b81526004016108ac90612dcd565b601e5462010000900460ff1615610b7b5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164657320616c7265616479204c69766521000000000060448201526064016108ac565b43601c55610b8c426202a300612292565b601d55600d80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d908117909255600e80549091167368b3465833fb72a70ecdf485e0e4c7bd8665fc451790557ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8805460ff1990811660019081179092557fdc51a0a44317b550a6b5ddb34687ce2bd40e4750eec27343e32b23e6867392088054821683179055600083905260046020527f1fc5acd025f7cc5cf2691b667dba808b5a149bf27192c208fc66f1f0ec4222d780549091169091179055610c883082610c796012600a612d9f565b610a359064e8d4a51000612dae565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190612e12565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b9190612e12565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610da8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcc9190612e12565b600c80546001600160a01b0319166001600160a01b0392831690811782556000908152600360209081526040808320805460ff19908116600190811790925594549095168352600490915290208054909116909117905547610e855760405162461bcd60e51b815260206004820152602c60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526b20746f20476f204c6976652160a01b60648201526084016108ac565b610e97610e91306111a9565b4761229e565b600b54600880546001600160a01b0319166001600160a01b0390921691821790556000908152600560205260409020805460ff191660011790555050601e805465ff0000ffffff191665010000010101179055600190565b6000546001600160a01b03163314610f195760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f6e5760405162461bcd60e51b81526004016108ac90612dcd565b6064825110610fde5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203130302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b60648201526084016108ac565b60005b8251811015611077576000838281518110610ffe57610ffe612e2f565b602002602001015190506000611055606461104f86868151811061102457611024612e2f565b60200260200101516012600a61103a9190612d9f565b6110499064e8d4a51000612dae565b90611a2b565b90611a3e565b9050611062338383611a4a565b5050808061106f90612e45565b915050610fe1565b505050565b6000546001600160a01b031633146110a65760405162461bcd60e51b81526004016108ac90612dcd565b6110f3306110bc6000546001600160a01b031690565b6064846110cb6012600a612d9f565b6110da9064e8d4a51000612dae565b6110e49190612dae565b6110ee9190612e5e565b611a4a565b50565b6000546001600160a01b031633146111205760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03811660009081526007602052604090205460ff166111885760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f740000000000000060448201526064016108ac565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b031633146111ee5760405162461bcd60e51b81526004016108ac90612dcd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112625760405162461bcd60e51b81526004016108ac90612dcd565b601e805491151563010000000263ff00000019909216919091179055565b600080546001600160a01b031633146112ab5760405162461bcd60e51b81526004016108ac90612dcd565b600a8211156113165760405162461bcd60e51b815260206004820152603160248201527f45524332303a204d6179206e6f74206e756b65206d6f7265207468616e203130604482015270025206f6620746f6b656e7320696e204c5607c1b60648201526084016108ac565b600c546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113859190612e80565b90506000611398606461104f8487611a2b565b905080156113bd57600c54600b546113bd916001600160a01b03908116911683611a4a565b600b546113d2906001600160a01b03166111a9565b60135560646113e36012600a612d9f565b6113f29064e8d4a51000612dae565b6113fd906032612dae565b6114079190612e5e565b601354111561146c5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a2043616e206e6f74206275726e206d6f7265207468656e20353060448201526a25206f6620737570706c7960a81b60648201526084016108ac565b600c546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b1580156114b657600080fd5b505af11580156114ca573d6000803e3d6000fd5b50505050600193505050505b919050565b6000546001600160a01b031633146115055760405162461bcd60e51b81526004016108ac90612dcd565b601e80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146115495760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461159e5760405162461bcd60e51b81526004016108ac90612dcd565b601793909355601891909155601955601b55565b6000546001600160a01b031633146115dc5760405162461bcd60e51b81526004016108ac90612dcd565b60006115e7306111a9565b905061160061271061104f600561103a6012600a612d9f565b8110156116865760405162461bcd60e51b815260206004820152604860248201527f45524332303a2043616e206f6e6c792073776170206261636b206966206d6f7260448201527f65207468616e20302e303525206f6620746f6b656e7320737475636b206f6e2060648201526718dbdb9d1c9858dd60c21b608482015260a4016108ac565b6110f3612352565b600061169b338484611a4a565b50600192915050565b6000546001600160a01b031633146116ce5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117235760405162461bcd60e51b81526004016108ac90612dcd565b601e8054911515650100000000000265ff000000000019909216919091179055565b6000546001600160a01b0316331461176f5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b0381166117d95760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b60648201526084016108ac565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461185e5760405162461bcd60e51b81526004016108ac90612dcd565b6118728161104f8461103a6012600a612d9f565b600f5561188a606461104f8161103a6012600a612d9f565b600f5411156118ee5760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b60648201526084016108ac565b5050565b6000546001600160a01b0316331461191c5760405162461bcd60e51b81526004016108ac90612dcd565b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114611969576040519150601f19603f3d011682016040523d82523d6000602084013e61196e565b606091505b50505050565b6000546001600160a01b0316331461199e5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03811660009081526007602052604090205460ff1615611a075760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c72656164792061646465640000000060448201526064016108ac565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000611a378284612dae565b9392505050565b6000611a378284612e5e565b6001600160a01b038316611aae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ac565b6001600160a01b038216611b105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ac565b60008111611b795760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016108ac565b6001600160a01b03831660009081526007602052604090205460ff1615611be25760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f5460448201526064016108ac565b601e5462010000900460ff16611c7d576001600160a01b03831660009081526005602052604090205460ff1680611c3157506001600160a01b03821660009081526005602052604090205460ff165b611c7d5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164696e67204973204e6f74204c69766521000000000060448201526064016108ac565b601e5460ff6101009091041615156001148015611cb357506001600160a01b03821660009081526004602052604090205460ff16155b15611d3357600f54611cce82611cc8856111a9565b90612292565b1115611d335760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b60648201526084016108ac565b601e5460ff1615611e0e576000546001600160a01b03848116911614801590611d6a57506000546001600160a01b03838116911614155b8015611d7e57506001600160a01b03821615155b8015611d985750600b546001600160a01b03838116911614155b8015611db25750600c546001600160a01b03838116911614155b15611e0e5760005b6003811015611e0c57601c54611dd09082612292565b4303611dfa576001600160a01b0383166000908152600660205260409020805460ff191660011790555b80611e0481612e45565b915050611dba565b505b601e546301000000900460ff1615611ef157611e2982610940565b158015611e4e57506001600160a01b03831660009081526003602052604090205460ff165b80611e825750611e5d83610940565b158015611e8257506001600160a01b03821660009081526003602052604090205460ff165b80611eb55750611e9183610940565b8015611eb557506001600160a01b03821660009081526003602052604090205460ff165b80611ee85750611ec482610940565b8015611ee857506001600160a01b03831660009081526003602052604090205460ff165b611ef157600080fd5b6000611f0a60115460125461229290919063ffffffff16565b90506000611f17306111a9565b601054601e5491925082101590640100000000900460ff16158015611f475750601e5465010000000000900460ff165b8015611f685750600c54600090611f66906001600160a01b03166111a9565b115b8015611f745750600083115b8015611f9957506001600160a01b03851660009081526005602052604090205460ff16155b8015611fbe57506001600160a01b03861660009081526005602052604090205460ff16155b8015611fd75750600c546001600160a01b038681169116145b8015611fe05750805b15611fed57611fed612352565b6001600160a01b03861660009081526005602052604090205460ff168061202c57506001600160a01b03851660009081526005602052604090205460ff165b1561204f576000601481905560158190556120479080612292565b6016556121a5565b600c546001600160a01b039081169087160361207f57601754601481905560185460158190556120479190612292565b600c546001600160a01b03908116908616036120fe576019546014819055601b5460158190556120af9190612292565b6016556001600160a01b03861660009081526006602052604090205460ff1680156120dc575042601d5410155b156120f95760556014819055600a60158190556120479190612292565b6121a5565b6001600160a01b03861660009081526006602052604090205460ff161580612128575042601d5411155b61219a5760405162461bcd60e51b815260206004820152603960248201527f45524332303a20536e69706572732063616e206e6f74207472616e736665722060448201527f74696c6c2070656e616c74792074696d65206973206f7665720000000000000060648201526084016108ac565b600060148190556015555b6121b08686866124fe565b505050505050565b600081848411156121dc5760405162461bcd60e51b81526004016108ac9190612885565b505050900390565b6001600160a01b03831661220a5760405162461bcd60e51b81526004016108ac90612c17565b6001600160a01b0382166122305760405162461bcd60e51b81526004016108ac90612c5f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000611a378284612e99565b600d546122b69030906001600160a01b0316846121e4565b600d5460085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612326573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061234b9190612eb1565b5050505050565b601e805464ff0000000019166401000000001790556000612372306111a9565b9050600061238d60125460115461229290919063ffffffff16565b905060006123a76002601254611a3e90919063ffffffff16565b905060006123b5848361269f565b9050476123c1826126ab565b60006123cd478361269f565b905060006123ea8661104f60115485611a2b90919063ffffffff16565b905060006123f8838361269f565b60006011819055601281905560095460405192935090916001600160a01b039091169084908381818185875af1925050503d8060008114612455576040519150601f19603f3d011682016040523d82523d6000602084013e61245a565b606091505b505090508160001415801561246e57508615155b1561247d5761247d878361229e565b6706f05b59d3b200004711156124e557600a546040516001600160a01b03909116904790600081818185875af1925050503d80600081146124da576040519150601f19603f3d011682016040523d82523d6000602084013e6124df565b606091505b50909150505b5050601e805464ff000000001916905550505050505050565b601654156125fe576000612511826127fd565b9050600061251f838361269f565b905061252a82612825565b6001600160a01b03851660009081526002602052604081208054859290612552908490612edf565b90915550506001600160a01b0384166000908152600260205260408120805483929061257f908490612e99565b909155505030600090815260026020526040812080548492906125a3908490612e99565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125ef91815260200190565b60405180910390a35050505050565b6001600160a01b03831660009081526002602052604081208054839290612626908490612edf565b90915550506001600160a01b03821660009081526002602052604081208054839290612653908490612e99565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161228591815260200190565b6000611a378284612edf565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126e0576126e0612e2f565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275d9190612e12565b8160018151811061277057612770612e2f565b6001600160a01b039283166020918202929092010152600d5461279691309116846121e4565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906127cf908590600090869030904290600401612ef6565b600060405180830381600087803b1580156127e957600080fd5b505af11580156121b0573d6000803e3d6000fd5b600061093a606461104f61281e60155460145461229290919063ffffffff16565b8590611a2b565b61284060165461104f60145484611a2b90919063ffffffff16565b601160008282546128519190612e99565b909155505060165460155461286c919061104f908490611a2b565b6012600082825461287d9190612e99565b909155505050565b600060208083528351808285015260005b818110156128b257858101830151858201604001528201612896565b818111156128c4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110f357600080fd5b6000806040838503121561290257600080fd5b823561290d816128da565b946020939093013593505050565b60006020828403121561292d57600080fd5b8135611a37816128da565b803580151581146114d657600080fd5b60006020828403121561295a57600080fd5b611a3782612938565b60008060006060848603121561297857600080fd5b8335612983816128da565b92506020840135612993816128da565b929592945050506040919091013590565b600080604083850312156129b757600080fd5b82356129c2816128da565b91506129d060208401612938565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a1857612a186129d9565b604052919050565b600067ffffffffffffffff821115612a3a57612a3a6129d9565b5060051b60200190565b600082601f830112612a5557600080fd5b81356020612a6a612a6583612a20565b6129ef565b82815260059290921b84018101918181019086841115612a8957600080fd5b8286015b84811015612aa45780358352918301918301612a8d565b509695505050505050565b60008060408385031215612ac257600080fd5b823567ffffffffffffffff80821115612ada57600080fd5b818501915085601f830112612aee57600080fd5b81356020612afe612a6583612a20565b82815260059290921b84018101918181019089841115612b1d57600080fd5b948201945b83861015612b44578535612b35816128da565b82529482019490820190612b22565b96505086013592505080821115612b5a57600080fd5b50612b6785828601612a44565b9150509250929050565b600060208284031215612b8357600080fd5b5035919050565b60008060008060808587031215612ba057600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215612bcf57600080fd5b8235612bda816128da565b91506020830135612bea816128da565b809150509250929050565b60008060408385031215612c0857600080fd5b50508035926020909101359150565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612cf6578160001904821115612cdc57612cdc612ca5565b80851615612ce957918102915b93841c9390800290612cc0565b509250929050565b600082612d0d5750600161093a565b81612d1a5750600061093a565b8160018114612d305760028114612d3a57612d56565b600191505061093a565b60ff841115612d4b57612d4b612ca5565b50506001821b61093a565b5060208310610133831016604e8410600b8410161715612d79575081810a61093a565b612d838383612cbb565b8060001904821115612d9757612d97612ca5565b029392505050565b6000611a3760ff841683612cfe565b6000816000190483118215151615612dc857612dc8612ca5565b500290565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b600060208284031215612e2457600080fd5b8151611a37816128da565b634e487b7160e01b600052603260045260246000fd5b600060018201612e5757612e57612ca5565b5060010190565b600082612e7b57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612e9257600080fd5b5051919050565b60008219821115612eac57612eac612ca5565b500190565b600080600060608486031215612ec657600080fd5b8351925060208401519150604084015190509250925092565b600082821015612ef157612ef1612ca5565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f465784516001600160a01b031683529383019391830191600101612f21565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220847d3b4413a9331230db4a9948c67d170cf1d5b9133c11b44f2f0ef0112bac7364736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106102765760003560e01c80637817be6c1161014f578063a73f9b58116100c1578063ee2e5a2e1161007a578063ee2e5a2e146107e2578063f0c0cf8714610802578063f2fde38b14610818578063f35900d014610838578063f5648a4f14610858578063ffecf5161461086d57600080fd5b8063a73f9b5814610731578063a9059cbb14610746578063c2ed286b14610766578063dd62ed3e14610786578063e4252ddf1461062b578063ea090d97146107cc57600080fd5b8063957aa58c11610113578063957aa58c1461064b578063958c2e521461066b57806395d89b411461068b57806396c9b442146106b7578063a12a7d61146106d8578063a20d9615146106f857600080fd5b80637817be6c146105ad5780638bcea939146105cd5780638c714f80146105ed5780638da5cb5b1461060d57806391c09d1e1461062b57600080fd5b80633b4e935a116101e85780635fafa589116101ac5780635fafa589146104e15780635fecd9261461051957806370a0823114610539578063715018a614610559578063745d032f1461056e57806375d0cc431461058d57600080fd5b80633b4e935a1461043c5780633bbac57914610451578063412201041461048157806351524e5b146104a15780635e6710de146104c157600080fd5b806318160ddd1161023a57806318160ddd14610381578063186d260d146103a45780631c42047a146103c657806323b872dd146103e0578063313ce5671461040057806333251a0b1461041c57600080fd5b806306fdde0314610282578063095ea7b3146102c85780630f3a325f146102f857806311abf53714610328578063162790551461036157600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5060408051808201909152600b81526a283937b7b31027b31021ad60a91b60208201525b6040516102bf9190612885565b60405180910390f35b3480156102d457600080fd5b506102e86102e33660046128ef565b61088d565b60405190151581526020016102bf565b34801561030457600080fd5b506102e861031336600461291b565b60066020526000908152604090205460ff1681565b34801561033457600080fd5b50601754601854601954601b546040805194855260208501939093529183015260608201526080016102bf565b34801561036d57600080fd5b506102e861037c36600461291b565b610940565b34801561038d57600080fd5b5061039661097c565b6040519081526020016102bf565b3480156103b057600080fd5b506103c46103bf366004612948565b61099e565b005b3480156103d257600080fd5b50601e546102e89060ff1681565b3480156103ec57600080fd5b506102e86103fb366004612963565b6109db565b34801561040c57600080fd5b50604051601281526020016102bf565b34801561042857600080fd5b506103c461043736600461291b565b610a44565b34801561044857600080fd5b506102e8610af7565b34801561045d57600080fd5b506102e861046c36600461291b565b60076020526000908152604090205460ff1681565b34801561048d57600080fd5b506103c461049c3660046129a4565b610eef565b3480156104ad57600080fd5b506103c46104bc366004612aaf565b610f44565b3480156104cd57600080fd5b506103c46104dc366004612b71565b61107c565b3480156104ed57600080fd5b50600e54610501906001600160a01b031681565b6040516001600160a01b0390911681526020016102bf565b34801561052557600080fd5b506103c461053436600461291b565b6110f6565b34801561054557600080fd5b5061039661055436600461291b565b6111a9565b34801561056557600080fd5b506103c46111c4565b34801561057a57600080fd5b50601e546102e890610100900460ff1681565b34801561059957600080fd5b506103c46105a8366004612948565b611238565b3480156105b957600080fd5b506102e86105c8366004612b71565b611280565b3480156105d957600080fd5b50600c54610501906001600160a01b031681565b3480156105f957600080fd5b506103c4610608366004612948565b6114db565b34801561061957600080fd5b506000546001600160a01b0316610501565b34801561063757600080fd5b506103c46106463660046129a4565b61151f565b34801561065757600080fd5b50601e546102e89062010000900460ff1681565b34801561067757600080fd5b50600d54610501906001600160a01b031681565b34801561069757600080fd5b5060408051808201909152600381526221272160e91b60208201526102b2565b3480156106c357600080fd5b50601e546102e8906301000000900460ff1681565b3480156106e457600080fd5b506103c46106f3366004612b8a565b611574565b34801561070457600080fd5b506102e861071336600461291b565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561073d57600080fd5b506103c46115b2565b34801561075257600080fd5b506102e86107613660046128ef565b61168e565b34801561077257600080fd5b506103c46107813660046129a4565b6116a4565b34801561079257600080fd5b506103966107a1366004612bbc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107d857600080fd5b50610396601c5481565b3480156107ee57600080fd5b506103c46107fd366004612948565b6116f9565b34801561080e57600080fd5b50610396601d5481565b34801561082457600080fd5b506103c461083336600461291b565b611745565b34801561084457600080fd5b506103c4610853366004612bf5565b611834565b34801561086457600080fd5b506103c46118f2565b34801561087957600080fd5b506103c461088836600461291b565b611974565b6000336108b55760405162461bcd60e51b81526004016108ac90612c17565b60405180910390fd5b6001600160a01b0383166108db5760405162461bcd60e51b81526004016108ac90612c5f565b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061097457508115155b949350505050565b600061098a6012600a612d9f565b6109999064e8d4a51000612dae565b905090565b6000546001600160a01b031633146109c85760405162461bcd60e51b81526004016108ac90612dcd565b601e805460ff1916911515919091179055565b60006109e8848484611a4a565b610a3a8433610a3585604051806060016040528060318152602001612f68603191396001600160a01b038a16600090815260016020908152604080832033845290915290205491906121b8565b6121e4565b5060019392505050565b6000546001600160a01b03163314610a6e5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03811660009081526006602052604090205460ff16610ad65760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e74206973206e6f7420736e697065720000000060448201526064016108ac565b6001600160a01b03166000908152600660205260409020805460ff19169055565b600080546001600160a01b03163314610b225760405162461bcd60e51b81526004016108ac90612dcd565b601e5462010000900460ff1615610b7b5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164657320616c7265616479204c69766521000000000060448201526064016108ac565b43601c55610b8c426202a300612292565b601d55600d80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d908117909255600e80549091167368b3465833fb72a70ecdf485e0e4c7bd8665fc451790557ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8805460ff1990811660019081179092557fdc51a0a44317b550a6b5ddb34687ce2bd40e4750eec27343e32b23e6867392088054821683179055600083905260046020527f1fc5acd025f7cc5cf2691b667dba808b5a149bf27192c208fc66f1f0ec4222d780549091169091179055610c883082610c796012600a612d9f565b610a359064e8d4a51000612dae565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190612e12565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b9190612e12565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610da8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcc9190612e12565b600c80546001600160a01b0319166001600160a01b0392831690811782556000908152600360209081526040808320805460ff19908116600190811790925594549095168352600490915290208054909116909117905547610e855760405162461bcd60e51b815260206004820152602c60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526b20746f20476f204c6976652160a01b60648201526084016108ac565b610e97610e91306111a9565b4761229e565b600b54600880546001600160a01b0319166001600160a01b0390921691821790556000908152600560205260409020805460ff191660011790555050601e805465ff0000ffffff191665010000010101179055600190565b6000546001600160a01b03163314610f195760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f6e5760405162461bcd60e51b81526004016108ac90612dcd565b6064825110610fde5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203130302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b60648201526084016108ac565b60005b8251811015611077576000838281518110610ffe57610ffe612e2f565b602002602001015190506000611055606461104f86868151811061102457611024612e2f565b60200260200101516012600a61103a9190612d9f565b6110499064e8d4a51000612dae565b90611a2b565b90611a3e565b9050611062338383611a4a565b5050808061106f90612e45565b915050610fe1565b505050565b6000546001600160a01b031633146110a65760405162461bcd60e51b81526004016108ac90612dcd565b6110f3306110bc6000546001600160a01b031690565b6064846110cb6012600a612d9f565b6110da9064e8d4a51000612dae565b6110e49190612dae565b6110ee9190612e5e565b611a4a565b50565b6000546001600160a01b031633146111205760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03811660009081526007602052604090205460ff166111885760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f740000000000000060448201526064016108ac565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b031633146111ee5760405162461bcd60e51b81526004016108ac90612dcd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112625760405162461bcd60e51b81526004016108ac90612dcd565b601e805491151563010000000263ff00000019909216919091179055565b600080546001600160a01b031633146112ab5760405162461bcd60e51b81526004016108ac90612dcd565b600a8211156113165760405162461bcd60e51b815260206004820152603160248201527f45524332303a204d6179206e6f74206e756b65206d6f7265207468616e203130604482015270025206f6620746f6b656e7320696e204c5607c1b60648201526084016108ac565b600c546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113859190612e80565b90506000611398606461104f8487611a2b565b905080156113bd57600c54600b546113bd916001600160a01b03908116911683611a4a565b600b546113d2906001600160a01b03166111a9565b60135560646113e36012600a612d9f565b6113f29064e8d4a51000612dae565b6113fd906032612dae565b6114079190612e5e565b601354111561146c5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a2043616e206e6f74206275726e206d6f7265207468656e20353060448201526a25206f6620737570706c7960a81b60648201526084016108ac565b600c546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b1580156114b657600080fd5b505af11580156114ca573d6000803e3d6000fd5b50505050600193505050505b919050565b6000546001600160a01b031633146115055760405162461bcd60e51b81526004016108ac90612dcd565b601e80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146115495760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461159e5760405162461bcd60e51b81526004016108ac90612dcd565b601793909355601891909155601955601b55565b6000546001600160a01b031633146115dc5760405162461bcd60e51b81526004016108ac90612dcd565b60006115e7306111a9565b905061160061271061104f600561103a6012600a612d9f565b8110156116865760405162461bcd60e51b815260206004820152604860248201527f45524332303a2043616e206f6e6c792073776170206261636b206966206d6f7260448201527f65207468616e20302e303525206f6620746f6b656e7320737475636b206f6e2060648201526718dbdb9d1c9858dd60c21b608482015260a4016108ac565b6110f3612352565b600061169b338484611a4a565b50600192915050565b6000546001600160a01b031633146116ce5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117235760405162461bcd60e51b81526004016108ac90612dcd565b601e8054911515650100000000000265ff000000000019909216919091179055565b6000546001600160a01b0316331461176f5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b0381166117d95760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b60648201526084016108ac565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461185e5760405162461bcd60e51b81526004016108ac90612dcd565b6118728161104f8461103a6012600a612d9f565b600f5561188a606461104f8161103a6012600a612d9f565b600f5411156118ee5760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b60648201526084016108ac565b5050565b6000546001600160a01b0316331461191c5760405162461bcd60e51b81526004016108ac90612dcd565b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114611969576040519150601f19603f3d011682016040523d82523d6000602084013e61196e565b606091505b50505050565b6000546001600160a01b0316331461199e5760405162461bcd60e51b81526004016108ac90612dcd565b6001600160a01b03811660009081526007602052604090205460ff1615611a075760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c72656164792061646465640000000060448201526064016108ac565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000611a378284612dae565b9392505050565b6000611a378284612e5e565b6001600160a01b038316611aae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ac565b6001600160a01b038216611b105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ac565b60008111611b795760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016108ac565b6001600160a01b03831660009081526007602052604090205460ff1615611be25760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f5460448201526064016108ac565b601e5462010000900460ff16611c7d576001600160a01b03831660009081526005602052604090205460ff1680611c3157506001600160a01b03821660009081526005602052604090205460ff165b611c7d5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164696e67204973204e6f74204c69766521000000000060448201526064016108ac565b601e5460ff6101009091041615156001148015611cb357506001600160a01b03821660009081526004602052604090205460ff16155b15611d3357600f54611cce82611cc8856111a9565b90612292565b1115611d335760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b60648201526084016108ac565b601e5460ff1615611e0e576000546001600160a01b03848116911614801590611d6a57506000546001600160a01b03838116911614155b8015611d7e57506001600160a01b03821615155b8015611d985750600b546001600160a01b03838116911614155b8015611db25750600c546001600160a01b03838116911614155b15611e0e5760005b6003811015611e0c57601c54611dd09082612292565b4303611dfa576001600160a01b0383166000908152600660205260409020805460ff191660011790555b80611e0481612e45565b915050611dba565b505b601e546301000000900460ff1615611ef157611e2982610940565b158015611e4e57506001600160a01b03831660009081526003602052604090205460ff165b80611e825750611e5d83610940565b158015611e8257506001600160a01b03821660009081526003602052604090205460ff165b80611eb55750611e9183610940565b8015611eb557506001600160a01b03821660009081526003602052604090205460ff165b80611ee85750611ec482610940565b8015611ee857506001600160a01b03831660009081526003602052604090205460ff165b611ef157600080fd5b6000611f0a60115460125461229290919063ffffffff16565b90506000611f17306111a9565b601054601e5491925082101590640100000000900460ff16158015611f475750601e5465010000000000900460ff165b8015611f685750600c54600090611f66906001600160a01b03166111a9565b115b8015611f745750600083115b8015611f9957506001600160a01b03851660009081526005602052604090205460ff16155b8015611fbe57506001600160a01b03861660009081526005602052604090205460ff16155b8015611fd75750600c546001600160a01b038681169116145b8015611fe05750805b15611fed57611fed612352565b6001600160a01b03861660009081526005602052604090205460ff168061202c57506001600160a01b03851660009081526005602052604090205460ff165b1561204f576000601481905560158190556120479080612292565b6016556121a5565b600c546001600160a01b039081169087160361207f57601754601481905560185460158190556120479190612292565b600c546001600160a01b03908116908616036120fe576019546014819055601b5460158190556120af9190612292565b6016556001600160a01b03861660009081526006602052604090205460ff1680156120dc575042601d5410155b156120f95760556014819055600a60158190556120479190612292565b6121a5565b6001600160a01b03861660009081526006602052604090205460ff161580612128575042601d5411155b61219a5760405162461bcd60e51b815260206004820152603960248201527f45524332303a20536e69706572732063616e206e6f74207472616e736665722060448201527f74696c6c2070656e616c74792074696d65206973206f7665720000000000000060648201526084016108ac565b600060148190556015555b6121b08686866124fe565b505050505050565b600081848411156121dc5760405162461bcd60e51b81526004016108ac9190612885565b505050900390565b6001600160a01b03831661220a5760405162461bcd60e51b81526004016108ac90612c17565b6001600160a01b0382166122305760405162461bcd60e51b81526004016108ac90612c5f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000611a378284612e99565b600d546122b69030906001600160a01b0316846121e4565b600d5460085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612326573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061234b9190612eb1565b5050505050565b601e805464ff0000000019166401000000001790556000612372306111a9565b9050600061238d60125460115461229290919063ffffffff16565b905060006123a76002601254611a3e90919063ffffffff16565b905060006123b5848361269f565b9050476123c1826126ab565b60006123cd478361269f565b905060006123ea8661104f60115485611a2b90919063ffffffff16565b905060006123f8838361269f565b60006011819055601281905560095460405192935090916001600160a01b039091169084908381818185875af1925050503d8060008114612455576040519150601f19603f3d011682016040523d82523d6000602084013e61245a565b606091505b505090508160001415801561246e57508615155b1561247d5761247d878361229e565b6706f05b59d3b200004711156124e557600a546040516001600160a01b03909116904790600081818185875af1925050503d80600081146124da576040519150601f19603f3d011682016040523d82523d6000602084013e6124df565b606091505b50909150505b5050601e805464ff000000001916905550505050505050565b601654156125fe576000612511826127fd565b9050600061251f838361269f565b905061252a82612825565b6001600160a01b03851660009081526002602052604081208054859290612552908490612edf565b90915550506001600160a01b0384166000908152600260205260408120805483929061257f908490612e99565b909155505030600090815260026020526040812080548492906125a3908490612e99565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125ef91815260200190565b60405180910390a35050505050565b6001600160a01b03831660009081526002602052604081208054839290612626908490612edf565b90915550506001600160a01b03821660009081526002602052604081208054839290612653908490612e99565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161228591815260200190565b6000611a378284612edf565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126e0576126e0612e2f565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275d9190612e12565b8160018151811061277057612770612e2f565b6001600160a01b039283166020918202929092010152600d5461279691309116846121e4565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906127cf908590600090869030904290600401612ef6565b600060405180830381600087803b1580156127e957600080fd5b505af11580156121b0573d6000803e3d6000fd5b600061093a606461104f61281e60155460145461229290919063ffffffff16565b8590611a2b565b61284060165461104f60145484611a2b90919063ffffffff16565b601160008282546128519190612e99565b909155505060165460155461286c919061104f908490611a2b565b6012600082825461287d9190612e99565b909155505050565b600060208083528351808285015260005b818110156128b257858101830151858201604001528201612896565b818111156128c4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110f357600080fd5b6000806040838503121561290257600080fd5b823561290d816128da565b946020939093013593505050565b60006020828403121561292d57600080fd5b8135611a37816128da565b803580151581146114d657600080fd5b60006020828403121561295a57600080fd5b611a3782612938565b60008060006060848603121561297857600080fd5b8335612983816128da565b92506020840135612993816128da565b929592945050506040919091013590565b600080604083850312156129b757600080fd5b82356129c2816128da565b91506129d060208401612938565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a1857612a186129d9565b604052919050565b600067ffffffffffffffff821115612a3a57612a3a6129d9565b5060051b60200190565b600082601f830112612a5557600080fd5b81356020612a6a612a6583612a20565b6129ef565b82815260059290921b84018101918181019086841115612a8957600080fd5b8286015b84811015612aa45780358352918301918301612a8d565b509695505050505050565b60008060408385031215612ac257600080fd5b823567ffffffffffffffff80821115612ada57600080fd5b818501915085601f830112612aee57600080fd5b81356020612afe612a6583612a20565b82815260059290921b84018101918181019089841115612b1d57600080fd5b948201945b83861015612b44578535612b35816128da565b82529482019490820190612b22565b96505086013592505080821115612b5a57600080fd5b50612b6785828601612a44565b9150509250929050565b600060208284031215612b8357600080fd5b5035919050565b60008060008060808587031215612ba057600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215612bcf57600080fd5b8235612bda816128da565b91506020830135612bea816128da565b809150509250929050565b60008060408385031215612c0857600080fd5b50508035926020909101359150565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612cf6578160001904821115612cdc57612cdc612ca5565b80851615612ce957918102915b93841c9390800290612cc0565b509250929050565b600082612d0d5750600161093a565b81612d1a5750600061093a565b8160018114612d305760028114612d3a57612d56565b600191505061093a565b60ff841115612d4b57612d4b612ca5565b50506001821b61093a565b5060208310610133831016604e8410600b8410161715612d79575081810a61093a565b612d838383612cbb565b8060001904821115612d9757612d97612ca5565b029392505050565b6000611a3760ff841683612cfe565b6000816000190483118215151615612dc857612dc8612ca5565b500290565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b600060208284031215612e2457600080fd5b8151611a37816128da565b634e487b7160e01b600052603260045260246000fd5b600060018201612e5757612e57612ca5565b5060010190565b600082612e7b57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612e9257600080fd5b5051919050565b60008219821115612eac57612eac612ca5565b500190565b600080600060608486031215612ec657600080fd5b8351925060208401519150604084015190509250925092565b600082821015612ef157612ef1612ca5565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f465784516001600160a01b031683529383019391830191600101612f21565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220847d3b4413a9331230db4a9948c67d170cf1d5b9133c11b44f2f0ef0112bac7364736f6c634300080f0033
Deployed Bytecode Sourcemap
18125:17203:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21203:98;;;;;;;;;;-1:-1:-1;21284:9:0;;;;;;;;;;;;-1:-1:-1;;;21284:9:0;;;;21203:98;;;;;;;:::i;:::-;;;;;;;;21908:397;;;;;;;;;;-1:-1:-1;21908:397:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;21908:397:0;1072:187:1;18772:40:0;;;;;;;;;;-1:-1:-1;18772:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;35102:223;;;;;;;;;;-1:-1:-1;35251:15:0;;35267;;35283:16;;35300;;35102:223;;;1747:25:1;;;1803:2;1788:18;;1781:34;;;;1831:18;;;1824:34;1889:2;1874:18;;1867:34;1734:3;1719:19;35102:223:0;1516:391:1;31126:337:0;;;;;;;;;;-1:-1:-1;31126:337:0;;;;;:::i;:::-;;:::i;21518:101::-;;;;;;;;;;;;;:::i;:::-;;;2058:25:1;;;2046:2;2031:18;21518:101:0;1912:177:1;34292:103:0;;;;;;;;;;-1:-1:-1;34292:103:0;;;;;:::i;:::-;;:::i;:::-;;19688:28;;;;;;;;;;-1:-1:-1;19688:28:0;;;;;;;;22852:348;;;;;;;;;;-1:-1:-1;22852:348:0;;;;;:::i;:::-;;:::i;21415:97::-;;;;;;;;;;-1:-1:-1;21415:97:0;;18388:2;3047:36:1;;3035:2;3020:18;21415:97:0;2905:184:1;33371:171:0;;;;;;;;;;-1:-1:-1;33371:171:0;;;;;:::i;:::-;;:::i;23641:1249::-;;;;;;;;;;;;;:::i;18819:37::-;;;;;;;;;;-1:-1:-1;18819:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;33866:158;;;;;;;;;;-1:-1:-1;33866:158:0;;;;;:::i;:::-;;:::i;23206:429::-;;;;;;;;;;-1:-1:-1;23206:429:0;;;;;:::i;:::-;;:::i;31912:149::-;;;;;;;;;;-1:-1:-1;31912:149:0;;;;;:::i;:::-;;:::i;19088:26::-;;;;;;;;;;-1:-1:-1;19088:26:0;;;;-1:-1:-1;;;;;19088:26:0;;;;;;-1:-1:-1;;;;;6250:32:1;;;6232:51;;6220:2;6205:18;19088:26:0;6086:203:1;33209:159:0;;;;;;;;;;-1:-1:-1;33209:159:0;;;;;:::i;:::-;;:::i;21625:122::-;;;;;;;;;;-1:-1:-1;21625:122:0;;;;;:::i;:::-;;:::i;739:148::-;;;;;;;;;;;;;:::i;19723:31::-;;;;;;;;;;-1:-1:-1;19723:31:0;;;;;;;;;;;34515:119;;;;;;;;;;-1:-1:-1;34515:119:0;;;;;:::i;:::-;;:::i;32067:686::-;;;;;;;;;;-1:-1:-1;32067:686:0;;;;;:::i;:::-;;:::i;19013:24::-;;;;;;;;;;-1:-1:-1;19013:24:0;;;;-1:-1:-1;;;;;19013:24:0;;;34401:108;;;;;;;;;;-1:-1:-1;34401:108:0;;;;;:::i;:::-;;:::i;515:87::-;;;;;;;;;;-1:-1:-1;561:7:0;588:6;-1:-1:-1;;;;;588:6:0;515:87;;33548:160;;;;;;;;;;-1:-1:-1;33548:160:0;;;;;:::i;:::-;;:::i;19761:24::-;;;;;;;;;;-1:-1:-1;19761:24:0;;;;;;;;;;;19044:37;;;;;;;;;;-1:-1:-1;19044:37:0;;;;-1:-1:-1;;;;;19044:37:0;;;21307:102;;;;;;;;;;-1:-1:-1;21390:11:0;;;;;;;;;;;;-1:-1:-1;;;21390:11:0;;;;21307:102;;19792:35;;;;;;;;;;-1:-1:-1;19792:35:0;;;;;;;;;;;34769:327;;;;;;;;;;-1:-1:-1;34769:327:0;;;;;:::i;:::-;;:::i;31617:126::-;;;;;;;;;;-1:-1:-1;31617:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;31707:28:0;31683:4;31707:28;;;:19;:28;;;;;;;;;31617:126;32759:282;;;;;;;;;;;;;:::i;22670:176::-;;;;;;;;;;-1:-1:-1;22670:176:0;;;;;:::i;:::-;;:::i;33714:146::-;;;;;;;;;;-1:-1:-1;33714:146:0;;;;;:::i;:::-;;:::i;21753:149::-;;;;;;;;;;-1:-1:-1;21753:149:0;;;;;:::i;:::-;-1:-1:-1;;;;;21863:22:0;;;21836:7;21863:22;;;:15;:22;;;;;;;;:31;;;;;;;;;;;;;21753:149;19608:33;;;;;;;;;;;;;;;;34640:123;;;;;;;;;;-1:-1:-1;34640:123:0;;;;;:::i;:::-;;:::i;19648:31::-;;;;;;;;;;;;;;;;893:249;;;;;;;;;;-1:-1:-1;893:249:0;;;;;:::i;:::-;;:::i;34030:256::-;;;;;;;;;;-1:-1:-1;34030:256:0;;;;;:::i;:::-;;:::i;31749:157::-;;;;;;;;;;;;;:::i;33047:159::-;;;;;;;;;;-1:-1:-1;33047:159:0;;;;;:::i;:::-;;:::i;21908:397::-;21983:4;174:10;22000:79;;;;-1:-1:-1;;;22000:79:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;22098:21:0;;22090:72;;;;-1:-1:-1;;;22090:72:0;;;;;;;:::i;:::-;174:10;22173:29;;;;:15;:29;;;;;;;;-1:-1:-1;;;;;22173:38:0;;;;;;;;;;;;:47;;;22236:39;2058:25:1;;;22173:38:0;;174:10;22236:39;;2031:18:1;22236:39:0;;;;;;;-1:-1:-1;22293:4:0;21908:397;;;;;:::o;31126:337::-;31184:4;31363:20;;31250:66;31412:23;;;;;;:42;;-1:-1:-1;31439:15:0;;;31412:42;31404:51;31126:337;-1:-1:-1;;;;31126:337:0:o;21518:101::-;21573:7;18443:16;18388:2;18443;:16;:::i;:::-;18436:23;;:4;:23;:::i;:::-;21593:18;;21518:101;:::o;34292:103::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;34365:8:::1;:22:::0;;-1:-1:-1;;34365:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;34292:103::o;22852:348::-;22950:4;22967:43;22984:6;22992:9;23003:6;22967:16;:43::i;:::-;23021:149;23037:6;174:10;23067:102;23109:6;23067:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23067:23:0;;;;;;:15;:23;;;;;;;;174:10;23067:37;;;;;;;;;;:41;:102::i;:::-;23021:15;:149::i;:::-;-1:-1:-1;23188:4:0;22852:348;;;;;:::o;33371:171::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33448:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;;::::1;;33440:58;;;::::0;-1:-1:-1;;;33440:58:0;;10677:2:1;33440:58:0::1;::::0;::::1;10659:21:1::0;10716:2;10696:18;;;10689:30;10755;10735:18;;;10728:58;10803:18;;33440:58:0::1;10475:352:1::0;33440:58:0::1;-1:-1:-1::0;;;;;33509:17:0::1;33529:5;33509:17:::0;;;:8:::1;:17;::::0;;;;:25;;-1:-1:-1;;33509:25:0::1;::::0;;33371:171::o;23641:1249::-;23687:4;588:6;;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;23712:4:::1;::::0;;;::::1;;;23711:5;23703:45;;;::::0;-1:-1:-1;;;23703:45:0;;11034:2:1;23703:45:0::1;::::0;::::1;11016:21:1::0;11073:2;11053:18;;;11046:30;11112:29;11092:18;;;11085:57;11159:18;;23703:45:0::1;10832:351:1::0;23703:45:0::1;23780:12;23759:18;:33:::0;23822:27:::1;:15;23842:6;23822:19;:27::i;:::-;23803:16;:46:::0;23967:11:::1;:26:::0;;-1:-1:-1;;;;;;23967:26:0;;::::1;23913:42;23967:26:::0;;::::1;::::0;;;24004:11:::1;:56:::0;;;;::::1;24018:42;24004:56;::::0;;24071:41;:48;;-1:-1:-1;;24071:48:0;;::::1;23967:26:::0;24071:48;;::::1;::::0;;;24130:41;:48;;;::::1;::::0;::::1;::::0;;23860:31:::1;24189:41:::0;;;:19:::1;24071:41;24189::::0;;:48;;;;::::1;::::0;;::::1;::::0;;24248:65:::1;24272:4;23913:42:::0;18443:16:::1;18388:2;18443;:16;:::i;:::-;18436:23;::::0;:4:::1;:23;:::i;24248:65::-;24354:12;-1:-1:-1::0;;;;;24354:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24336:52:0::1;;24397:4;24404:12;-1:-1:-1::0;;;;;24404:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24336:88;::::0;-1:-1:-1;;;;;;24336:88:0::1;::::0;;;;;;-1:-1:-1;;;;;11674:15:1;;;24336:88:0::1;::::0;::::1;11656:34:1::0;11726:15;;11706:18;;;11699:43;11591:18;;24336:88:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24324:9;:100:::0;;-1:-1:-1;;;;;;24324:100:0::1;-1:-1:-1::0;;;;;24324:100:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;24435:39:0;;;:19:::1;:39;::::0;;;;;;;:46;;-1:-1:-1;;24435:46:0;;::::1;-1:-1:-1::0;24435:46:0;;::::1;::::0;;;24520:9;;;;::::1;24492:39:::0;;:19:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;24557:21:::1;24549:82;;;::::0;-1:-1:-1;;;24549:82:0;;11955:2:1;24549:82:0::1;::::0;::::1;11937:21:1::0;11994:2;11974:18;;;11967:30;12033:34;12013:18;;;12006:62;-1:-1:-1;;;12084:18:1;;;12077:42;12136:19;;24549:82:0::1;11753:408:1::0;24549:82:0::1;24642:61;24655:24;24673:4;24655:9;:24::i;:::-;24681:21;24642:12;:61::i;:::-;24740:4;::::0;31026:16;:37;;-1:-1:-1;;;;;;31026:37:0;-1:-1:-1;;;;;24740:4:0;;::::1;31026:37:::0;;;;;-1:-1:-1;31074:31:0;;;:13;:31;;;;;:38;;-1:-1:-1;;31074:38:0;-1:-1:-1;31074:38:0;;;-1:-1:-1;;24756:11:0::1;:18:::0;;-1:-1:-1;;24849:11:0;;;;;-1:-1:-1;;23641:1249:0:o;33866:158::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33965:37:0;;;::::1;;::::0;;;:19:::1;:37;::::0;;;;:51;;-1:-1:-1;;33965:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;33866:158::o;23206:429::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;23329:3:::1;23312:7;:14;:20;23304:87;;;::::0;-1:-1:-1;;;23304:87:0;;12368:2:1;23304:87:0::1;::::0;::::1;12350:21:1::0;12407:2;12387:18;;;12380:30;12446:34;12426:18;;;12419:62;-1:-1:-1;;;12497:18:1;;;12490:52;12559:19;;23304:87:0::1;12166:418:1::0;23304:87:0::1;23406:9;23402:226;23425:7;:14;23421:1;:18;23402:226;;;23460:14;23477:7;23485:1;23477:10;;;;;;;;:::i;:::-;;;;;;;23460:27;;23502:14;23519:36;23551:3;23519:27;23535:7;23543:1;23535:10;;;;;;;;:::i;:::-;;;;;;;18388:2;18443;:16;;;;:::i;:::-;18436:23;::::0;:4:::1;:23;:::i;:::-;23519:15:::0;::::1;:27::i;:::-;:31:::0;::::1;:36::i;:::-;23502:53:::0;-1:-1:-1;23570:46:0::1;174:10:::0;23601:6:::1;23609;23570:16;:46::i;:::-;23445:183;;23441:3;;;;;:::i;:::-;;;;23402:226;;;;23206:429:::0;;:::o;31912:149::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;31988:65:::1;32013:4;32020:7;561::::0;588:6;-1:-1:-1;;;;;588:6:0;;515:87;32020:7:::1;32049:3;32041:7:::0;18443:16:::1;18388:2;18443;:16;:::i;:::-;18436:23;::::0;:4:::1;:23;:::i;:::-;32029:19;;;;:::i;:::-;:23;;;;:::i;:::-;31988:16;:65::i;:::-;31912:149:::0;:::o;33209:159::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33283:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;;::::1;;33275:52;;;::::0;-1:-1:-1;;;33275:52:0;;13285:2:1;33275:52:0::1;::::0;::::1;13267:21:1::0;13324:2;13304:18;;;13297:30;13363:27;13343:18;;;13336:55;13408:18;;33275:52:0::1;13083:349:1::0;33275:52:0::1;-1:-1:-1::0;;;;;33338:14:0::1;33355:5;33338:14:::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;33338:22:0::1;::::0;;33209:159::o;21625:122::-;-1:-1:-1;;;;;21718:21:0;21691:7;21718:21;;;:12;:21;;;;;;;21625:122::o;739:148::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;846:1:::1;830:6:::0;;809:40:::1;::::0;-1:-1:-1;;;;;830:6:0;;::::1;::::0;809:40:::1;::::0;846:1;;809:40:::1;877:1;860:19:::0;;-1:-1:-1;;;;;;860:19:0::1;::::0;;739:148::o;34515:119::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;34597:15:::1;:29:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;34597:29:0;;::::1;::::0;;;::::1;::::0;;34515:119::o;32067:686::-;32144:4;588:6;;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;32179:2:::1;32168:7;:13;;32160:75;;;::::0;-1:-1:-1;;;32160:75:0;;13639:2:1;32160:75:0::1;::::0;::::1;13621:21:1::0;13678:2;13658:18;;;13651:30;13717:34;13697:18;;;13690:62;-1:-1:-1;;;13768:18:1;;;13761:47;13825:19;;32160:75:0::1;13437:413:1::0;32160:75:0::1;32292:9;::::0;32277:25:::1;::::0;-1:-1:-1;;;32277:25:0;;-1:-1:-1;;;;;32292:9:0;;::::1;32277:25;::::0;::::1;6232:51:1::0;32246:28:0::1;::::0;32277:4:::1;::::0;:14:::1;::::0;6205:18:1;;32277:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32246:56:::0;-1:-1:-1;32313:20:0::1;32336:44;32374:5;32336:33;32246:56:::0;32361:7;32336:24:::1;:33::i;:44::-;32313:67:::0;-1:-1:-1;32395:16:0;;32391:95:::1;;32444:9;::::0;32455:4:::1;::::0;32427:47:::1;::::0;-1:-1:-1;;;;;32444:9:0;;::::1;::::0;32455:4:::1;32461:12:::0;32427:16:::1;:47::i;:::-;32526:4;::::0;32516:15:::1;::::0;-1:-1:-1;;;;;32526:4:0::1;32516:9;:15::i;:::-;32496:17;:35:::0;32590:5:::1;18443:16;18388:2;18443;:16;:::i;:::-;18436:23;::::0;:4:::1;:23;:::i;:::-;32571:16;::::0;32585:2:::1;32571:16;:::i;:::-;:24;;;;:::i;:::-;32550:17;;:45;;32542:101;;;::::0;-1:-1:-1;;;32542:101:0;;14246:2:1;32542:101:0::1;::::0;::::1;14228:21:1::0;14285:2;14265:18;;;14258:30;14324:34;14304:18;;;14297:62;-1:-1:-1;;;14375:18:1;;;14368:41;14426:19;;32542:101:0::1;14044:407:1::0;32542:101:0::1;32691:9;::::0;32712:11:::1;::::0;;-1:-1:-1;;;;;;32712:11:0;;;;-1:-1:-1;;;;;32691:9:0;;::::1;::::0;;;32712::::1;::::0;:11:::1;::::0;;::::1;::::0;32654:19:::1;::::0;32712:11;;;;;;;32654:19;32691:9;32712:11;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;32741:4;32734:11;;;;;724:1;32067:686:::0;;;:::o;34401:108::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;34476:11:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;34476:25:0;;::::1;::::0;;;::::1;::::0;;34401:108::o;33548:160::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33649:37:0;;;::::1;;::::0;;;:19:::1;:37;::::0;;;;:51;;-1:-1:-1;;33649:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;33548:160::o;34769:327::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;34919:15:::1;:33:::0;;;;34963:15:::1;:33:::0;;;;35007:16:::1;:35:::0;35053:16:::1;:35:::0;34769:327::o;32759:282::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;32814:23:::1;32840:24;32858:4;32840:9;:24::i;:::-;32814:50:::0;-1:-1:-1;32902:29:0::1;32925:5;32902:18;32918:1;18443:16;18388:2;18443;:16;:::i;32902:29::-;32883:15;:48;;32875:133;;;::::0;-1:-1:-1;;;32875:133:0;;14658:2:1;32875:133:0::1;::::0;::::1;14640:21:1::0;14697:2;14677:18;;;14670:30;14736:34;14716:18;;;14709:62;14807:34;14787:18;;;14780:62;-1:-1:-1;;;14858:19:1;;;14851:39;14907:19;;32875:133:0::1;14456:476:1::0;32875:133:0::1;33019:14;:12;:14::i;22670:176::-:0;22750:4;22767:49;174:10;22798:9;22809:6;22767:16;:49::i;:::-;-1:-1:-1;22834:4:0;22670:176;;;;:::o;33714:146::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33807:31:0;;;::::1;;::::0;;;:13:::1;:31;::::0;;;;:45;;-1:-1:-1;;33807:45:0::1;::::0;::::1;;::::0;;;::::1;::::0;;33714:146::o;34640:123::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;34721:20:::1;:34:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;34721:34:0;;::::1;::::0;;;::::1;::::0;;34640:123::o;893:249::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;982:22:0;::::1;974:78;;;::::0;-1:-1:-1;;;974:78:0;;15139:2:1;974:78:0::1;::::0;::::1;15121:21:1::0;15178:2;15158:18;;;15151:30;15217:34;15197:18;;;15190:62;-1:-1:-1;;;15268:18:1;;;15261:41;15319:19;;974:78:0::1;14937:407:1::0;974:78:0::1;1089:6;::::0;;1068:38:::1;::::0;-1:-1:-1;;;;;1068:38:0;;::::1;::::0;1089:6;::::1;::::0;1068:38:::1;::::0;::::1;1117:6;:17:::0;;-1:-1:-1;;;;;;1117:17:0::1;-1:-1:-1::0;;;;;1117:17:0;;;::::1;::::0;;;::::1;::::0;;893:249::o;34030:256::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;34134:37:::1;34163:7:::0;34134:24:::1;34150:7:::0;18443:16:::1;18388:2;18443;:16;:::i;34134:37::-;34122:9;:49:::0;34202:29:::1;34227:3;34202:20;34227:3:::0;18443:16:::1;18388:2;18443;:16;:::i;34202:29::-;34190:9;;:41;;34182:96;;;::::0;-1:-1:-1;;;34182:96:0;;15551:2:1;34182:96:0::1;::::0;::::1;15533:21:1::0;15590:2;15570:18;;;15563:30;15629:34;15609:18;;;15602:62;-1:-1:-1;;;15680:18:1;;;15673:40;15730:19;;34182:96:0::1;15349:406:1::0;34182:96:0::1;34030:256:::0;;:::o;31749:157::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;31807:12:::1;588:6:::0;;31843:55:::1;::::0;-1:-1:-1;;;;;588:6:0;;;;31872:21:::1;::::0;31807:12;31843:55;31807:12;31843:55;31872:21;588:6;31843:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;31749:157:0:o;33047:159::-;561:7;588:6;-1:-1:-1;;;;;588:6:0;174:10;648:23;640:73;;;;-1:-1:-1;;;640:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33119:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;;::::1;;33118:15;33110:56;;;::::0;-1:-1:-1;;;33110:56:0;;16172:2:1;33110:56:0::1;::::0;::::1;16154:21:1::0;16211:2;16191:18;;;16184:30;16250;16230:18;;;16223:58;16298:18;;33110:56:0::1;15970:352:1::0;33110:56:0::1;-1:-1:-1::0;;;;;33177:14:0::1;;::::0;;;:5:::1;:14;::::0;;;;:21;;-1:-1:-1;;33177:21:0::1;33194:4;33177:21;::::0;;33047:159::o;2718:98::-;2776:7;2803:5;2807:1;2803;:5;:::i;:::-;2796:12;2718:98;-1:-1:-1;;;2718:98:0:o;2822:::-;2880:7;2907:5;2911:1;2907;:5;:::i;24896:3038::-;-1:-1:-1;;;;;24992:18:0;;24984:68;;;;-1:-1:-1;;;24984:68:0;;16529:2:1;24984:68:0;;;16511:21:1;16568:2;16548:18;;;16541:30;16607:34;16587:18;;;16580:62;-1:-1:-1;;;16658:18:1;;;16651:35;16703:19;;24984:68:0;16327:401:1;24984:68:0;-1:-1:-1;;;;;25071:16:0;;25063:64;;;;-1:-1:-1;;;25063:64:0;;16935:2:1;25063:64:0;;;16917:21:1;16974:2;16954:18;;;16947:30;17013:34;16993:18;;;16986:62;-1:-1:-1;;;17064:18:1;;;17057:33;17107:19;;25063:64:0;16733:399:1;25063:64:0;25155:1;25146:6;:10;25138:71;;;;-1:-1:-1;;;25138:71:0;;17339:2:1;25138:71:0;;;17321:21:1;17378:2;17358:18;;;17351:30;17417:34;17397:18;;;17390:62;-1:-1:-1;;;17468:18:1;;;17461:46;17524:19;;25138:71:0;17137:412:1;25138:71:0;-1:-1:-1;;;;;25229:11:0;;;;;;:5;:11;;;;;;;;25228:12;25220:57;;;;-1:-1:-1;;;25220:57:0;;17756:2:1;25220:57:0;;;17738:21:1;;;17775:18;;;17768:30;17834:34;17814:18;;;17807:62;17886:18;;25220:57:0;17554:356:1;25220:57:0;25292:4;;;;;;;25288:116;;-1:-1:-1;;;;;25320:19:0;;;;;;:13;:19;;;;;;;;;:40;;-1:-1:-1;;;;;;25343:17:0;;;;;;:13;:17;;;;;;;;25320:40;25312:80;;;;-1:-1:-1;;;25312:80:0;;18117:2:1;25312:80:0;;;18099:21:1;18156:2;18136:18;;;18129:30;18195:29;18175:18;;;18168:57;18242:18;;25312:80:0;17915:351:1;25312:80:0;25418:11;;;;;;;;:19;;:11;:19;:48;;;;-1:-1:-1;;;;;;25443:23:0;;;;;;:19;:23;;;;;;;;25441:25;25418:48;25414:178;;;25520:9;;25491:25;25509:6;25491:13;25501:2;25491:9;:13::i;:::-;:17;;:25::i;:::-;:38;;25483:97;;;;-1:-1:-1;;;25483:97:0;;18473:2:1;25483:97:0;;;18455:21:1;18512:2;18492:18;;;18485:30;18551:34;18531:18;;;18524:62;-1:-1:-1;;;18602:18:1;;;18595:44;18656:19;;25483:97:0;18271:410:1;25483:97:0;25605:8;;;;25602:350;;;561:7;588:6;-1:-1:-1;;;;;25633:15:0;;;588:6;;25633:15;;;;:32;;-1:-1:-1;561:7:0;588:6;-1:-1:-1;;;;;25652:13:0;;;588:6;;25652:13;;25633:32;:52;;;;-1:-1:-1;;;;;;25669:16:0;;;;25633:52;:66;;;;-1:-1:-1;25695:4:0;;-1:-1:-1;;;;;25689:10:0;;;25695:4;;25689:10;;25633:66;:85;;;;-1:-1:-1;25709:9:0;;-1:-1:-1;;;;;25703:15:0;;;25709:9;;25703:15;;25633:85;25629:312;;;25744:6;25739:187;25760:1;25756;:5;25739:187;;;25810:18;;:25;;25833:1;25810:22;:25::i;:::-;25794:12;:41;25791:116;;-1:-1:-1;;;;;25864:12:0;;;;;;:8;:12;;;;;:19;;-1:-1:-1;;25864:19:0;25879:4;25864:19;;;25791:116;25763:3;;;;:::i;:::-;;;;25739:187;;;;25629:312;25965:15;;;;;;;25962:331;;;26024:14;26035:2;26024:10;:14::i;:::-;26023:15;:44;;;;-1:-1:-1;;;;;;26042:25:0;;;;;;:19;:25;;;;;;;;26023:44;:109;;;;26089:16;26100:4;26089:10;:16::i;:::-;26088:17;:44;;;;-1:-1:-1;;;;;;26109:23:0;;;;;;:19;:23;;;;;;;;26088:44;26023:174;;;;26154:16;26165:4;26154:10;:16::i;:::-;:43;;;;-1:-1:-1;;;;;;26174:23:0;;;;;;:19;:23;;;;;;;;26154:43;26023:239;;;;26219:14;26230:2;26219:10;:14::i;:::-;:43;;;;-1:-1:-1;;;;;;26237:25:0;;;;;;:19;:25;;;;;;;;26219:43;25997:284;;;;;;26303:25;26331:36;26351:15;;26331;;:19;;:36;;;;:::i;:::-;26303:64;;26378:28;26409:24;26427:4;26409:9;:24::i;:::-;26499:10;;26525:16;;26378:55;;-1:-1:-1;26475:34:0;;;;26525:16;;;;;26524:17;:41;;;;-1:-1:-1;26545:20:0;;;;;;;26524:41;:69;;;;-1:-1:-1;26579:9:0;;26592:1;;26569:20;;-1:-1:-1;;;;;26579:9:0;26569;:20::i;:::-;:24;26524:69;:94;;;;;26617:1;26597:17;:21;26524:94;:116;;;;-1:-1:-1;;;;;;26623:17:0;;;;;;:13;:17;;;;;;;;26622:18;26524:116;:140;;;;-1:-1:-1;;;;;;26645:19:0;;;;;;:13;:19;;;;;;;;26644:20;26524:140;:159;;;;-1:-1:-1;26674:9:0;;-1:-1:-1;;;;;26668:15:0;;;26674:9;;26668:15;26524:159;:186;;;;;26687:23;26524:186;26520:237;;;26727:14;:12;:14::i;:::-;-1:-1:-1;;;;;26771:19:0;;;;;;:13;:19;;;;;;;;;:40;;-1:-1:-1;;;;;;26794:17:0;;;;;;:13;:17;;;;;;;;26771:40;26767:1118;;;26843:1;26828:12;:16;;;26859:12;:16;;;26907:30;;26843:1;26907:16;:30::i;:::-;26890:14;:47;26767:1118;;;26982:9;;-1:-1:-1;;;;;26982:9:0;;;26974:17;;;;26970:904;;27027:15;;27012:12;:30;;;27076:15;;27061:12;:30;;;27127:36;;27027:15;27127:19;:36::i;26970:904::-;27194:9;;-1:-1:-1;;;;;27194:9:0;;;27188:15;;;;27184:690;;27239:16;;27224:12;:31;;;27289:16;;27274:12;:31;;;27341:38;;27239:16;27341:20;:38::i;:::-;27324:14;:55;-1:-1:-1;;;;;27401:14:0;;;;;;:8;:14;;;;;;;;:53;;;;;27439:15;27419:16;;:35;;27401:53;27398:227;;;27493:2;27478:12;:17;;;27533:2;27518:12;:17;;;27575:30;;27493:2;27575:16;:30::i;27398:227::-;27184:690;;;-1:-1:-1;;;;;27673:14:0;;;;;;:8;:14;;;;;;;;27672:15;;:54;;;27711:15;27691:16;;:35;;27672:54;27664:124;;;;-1:-1:-1;;;27664:124:0;;18888:2:1;27664:124:0;;;18870:21:1;18927:2;18907:18;;;18900:30;18966:34;18946:18;;;18939:62;19037:27;19017:18;;;19010:55;19082:19;;27664:124:0;18686:421:1;27664:124:0;27822:1;27807:12;:16;;;27842:12;:16;27184:690;27895:31;27909:4;27915:2;27919:6;27895:13;:31::i;:::-;24973:2961;;;24896:3038;;;:::o;3030:206::-;3116:7;3177:12;3169:6;;;;3161:29;;;;-1:-1:-1;;;3161:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3212:5:0;;;3030:206::o;22311:353::-;-1:-1:-1;;;;;22410:19:0;;22402:72;;;;-1:-1:-1;;;22402:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22493:21:0;;22485:72;;;;-1:-1:-1;;;22485:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22568:22:0;;;;;;;:15;:22;;;;;;;;:31;;;;;;;;;;;;;:40;;;22624:32;;2058:25:1;;;22624:32:0;;2031:18:1;22624:32:0;;;;;;;;22311:353;;;:::o;2510:98::-;2568:7;2595:5;2599:1;2595;:5;:::i;29525:369::-;29646:11;;29607:65;;29631:4;;-1:-1:-1;;;;;29646:11:0;29660;29607:15;:65::i;:::-;29683:11;;29829:16;;29683:203;;-1:-1:-1;;;29683:203:0;;29751:4;29683:203;;;19594:34:1;19644:18;;;19637:34;;;29683:11:0;19687:18:1;;;19680:34;;;19730:18;;;19723:34;-1:-1:-1;;;;;29829:16:0;;;19773:19:1;;;19766:44;29860:15:0;19826:19:1;;;19819:35;29683:11:0;;;:27;;29718:9;;19528:19:1;;29683:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29525:369;;:::o;27940:1106::-;19944:16;:23;;-1:-1:-1;;19944:23:0;;;;;;28022:24:::1;28040:4;28022:9;:24::i;:::-;27996:50;;28057:25;28085:36;28105:15;;28085;;:19;;:36;;;;:::i;:::-;28057:64;;28132:27;28162:22;28182:1;28162:15;;:19;;:22;;;;:::i;:::-;28132:52:::0;-1:-1:-1;28195:26:0::1;28224:40;:15:::0;28132:52;28224:19:::1;:40::i;:::-;28195:69:::0;-1:-1:-1;28303:21:0::1;28335:36;28195:69:::0;28335:16:::1;:36::i;:::-;28383:18;28404:44;:21;28430:17:::0;28404:25:::1;:44::i;:::-;28383:65;;28459:23;28485:54;28521:17;28485:31;28500:15;;28485:10;:14;;:31;;;;:::i;:54::-;28459:80:::0;-1:-1:-1;28550:23:0::1;28576:31;:10:::0;28459:80;28576:14:::1;:31::i;:::-;28636:1;28618:15;:19:::0;;;28648:15:::1;:19:::0;;;28704:16:::1;::::0;28696:58:::1;::::0;28550:57;;-1:-1:-1;28636:1:0;;-1:-1:-1;;;;;28704:16:0;;::::1;::::0;28734:15;;28636:1;28696:58;28636:1;28696:58;28734:15;28704:16;28696:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28678:76;;;28768:15;28787:1;28768:20;;:48;;;;-1:-1:-1::0;28792:24:0;;::::1;28768:48;28765:130;;;28833:50;28846:19;28867:15;28833:12;:50::i;:::-;28932:8;28908:21;:32;28905:134;;;28977:10;::::0;28969:58:::1;::::0;-1:-1:-1;;;;;28977:10:0;;::::1;::::0;29001:21:::1;::::0;28969:58:::1;::::0;;;29001:21;28977:10;28969:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;28956:71:0;;-1:-1:-1;;28905:134:0::1;-1:-1:-1::0;;19990:16:0;:24;;-1:-1:-1;;19990:24:0;;;-1:-1:-1;;;;;;;27940:1106:0:o;30273:673::-;30368:14;;:19;30365:574;;30403:17;30423:20;30436:6;30423:12;:20::i;:::-;30403:40;-1:-1:-1;30458:22:0;30483:21;:6;30403:40;30483:10;:21::i;:::-;30458:46;;30519:25;30534:9;30519:14;:25::i;:::-;-1:-1:-1;;;;;30559:20:0;;;;;;:12;:20;;;;;:30;;30583:6;;30559:20;:30;;30583:6;;30559:30;:::i;:::-;;;;-1:-1:-1;;;;;;;30604:23:0;;;;;;:12;:23;;;;;:41;;30631:14;;30604:23;:41;;30631:14;;30604:41;:::i;:::-;;;;-1:-1:-1;;30681:4:0;30660:27;;;;:12;:27;;;;;:40;;30691:9;;30660:27;:40;;30691:9;;30660:40;:::i;:::-;;;;;;;;30737:9;-1:-1:-1;;;;;30720:43:0;30729:6;-1:-1:-1;;;;;30720:43:0;;30748:14;30720:43;;;;2058:25:1;;2046:2;2031:18;;1912:177;30720:43:0;;;;;;;;30388:387;;23402:226:::1;23206:429:::0;;:::o;30365:574::-;-1:-1:-1;;;;;30794:20:0;;;;;;:12;:20;;;;;:30;;30818:6;;30794:20;:30;;30818:6;;30794:30;:::i;:::-;;;;-1:-1:-1;;;;;;;30839:23:0;;;;;;:12;:23;;;;;:33;;30866:6;;30839:23;:33;;30866:6;;30839:33;:::i;:::-;;;;;;;;30909:9;-1:-1:-1;;;;;30892:35:0;30901:6;-1:-1:-1;;;;;30892:35:0;;30920:6;30892:35;;;;2058:25:1;;2046:2;2031:18;;1912:177;2614:98:0;2672:7;2699:5;2703:1;2699;:5;:::i;29052:467::-;29143:16;;;29157:1;29143:16;;;;;;;;29119:21;;29143:16;;;;;;;;;;-1:-1:-1;29143:16:0;29119:40;;29188:4;29170;29175:1;29170:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29170:23:0;;;:7;;;;;;;;;;:23;;;;29214:11;;:18;;;-1:-1:-1;;;29214:18:0;;;;:11;;;;;:16;;:18;;;;;29170:7;;29214:18;;;;;:11;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29204:4;29209:1;29204:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29204:28:0;;;:7;;;;;;;;;:28;29282:11;;29243:65;;29267:4;;29282:11;29296;29243:15;:65::i;:::-;29319:11;;:192;;-1:-1:-1;;;29319:192:0;;-1:-1:-1;;;;;29319:11:0;;;;:62;;:192;;29396:11;;29319;;29438:4;;29465;;29485:15;;29319:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29900:147;29961:7;29988:51;30035:3;29988:42;29999:30;30016:12;;29999;;:16;;:30;;;;:::i;:::-;29988:6;;:10;:42::i;30053:214::-;30135:47;30167:14;;30135:27;30149:12;;30135:9;:13;;:27;;;;:::i;:47::-;30116:15;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;30244:14:0;;30226:12;;30212:47;;30244:14;30212:27;;:9;;:13;:27::i;:47::-;30193:15;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;;30053:214:0:o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;2094:160::-;2159:20;;2215:13;;2208:21;2198:32;;2188:60;;2244:1;2241;2234:12;2259:180;2315:6;2368:2;2356:9;2347:7;2343:23;2339:32;2336:52;;;2384:1;2381;2374:12;2336:52;2407:26;2423:9;2407:26;:::i;2444:456::-;2521:6;2529;2537;2590:2;2578:9;2569:7;2565:23;2561:32;2558:52;;;2606:1;2603;2596:12;2558:52;2645:9;2632:23;2664:31;2689:5;2664:31;:::i;:::-;2714:5;-1:-1:-1;2771:2:1;2756:18;;2743:32;2784:33;2743:32;2784:33;:::i;:::-;2444:456;;2836:7;;-1:-1:-1;;;2890:2:1;2875:18;;;;2862:32;;2444:456::o;3094:315::-;3159:6;3167;3220:2;3208:9;3199:7;3195:23;3191:32;3188:52;;;3236:1;3233;3226:12;3188:52;3275:9;3262:23;3294:31;3319:5;3294:31;:::i;:::-;3344:5;-1:-1:-1;3368:35:1;3399:2;3384:18;;3368:35;:::i;:::-;3358:45;;3094:315;;;;;:::o;3414:127::-;3475:10;3470:3;3466:20;3463:1;3456:31;3506:4;3503:1;3496:15;3530:4;3527:1;3520:15;3546:275;3617:2;3611:9;3682:2;3663:13;;-1:-1:-1;;3659:27:1;3647:40;;3717:18;3702:34;;3738:22;;;3699:62;3696:88;;;3764:18;;:::i;:::-;3800:2;3793:22;3546:275;;-1:-1:-1;3546:275:1:o;3826:183::-;3886:4;3919:18;3911:6;3908:30;3905:56;;;3941:18;;:::i;:::-;-1:-1:-1;3986:1:1;3982:14;3998:4;3978:25;;3826:183::o;4014:662::-;4068:5;4121:3;4114:4;4106:6;4102:17;4098:27;4088:55;;4139:1;4136;4129:12;4088:55;4175:6;4162:20;4201:4;4225:60;4241:43;4281:2;4241:43;:::i;:::-;4225:60;:::i;:::-;4319:15;;;4405:1;4401:10;;;;4389:23;;4385:32;;;4350:12;;;;4429:15;;;4426:35;;;4457:1;4454;4447:12;4426:35;4493:2;4485:6;4481:15;4505:142;4521:6;4516:3;4513:15;4505:142;;;4587:17;;4575:30;;4625:12;;;;4538;;4505:142;;;-1:-1:-1;4665:5:1;4014:662;-1:-1:-1;;;;;;4014:662:1:o;4681:1215::-;4799:6;4807;4860:2;4848:9;4839:7;4835:23;4831:32;4828:52;;;4876:1;4873;4866:12;4828:52;4916:9;4903:23;4945:18;4986:2;4978:6;4975:14;4972:34;;;5002:1;4999;4992:12;4972:34;5040:6;5029:9;5025:22;5015:32;;5085:7;5078:4;5074:2;5070:13;5066:27;5056:55;;5107:1;5104;5097:12;5056:55;5143:2;5130:16;5165:4;5189:60;5205:43;5245:2;5205:43;:::i;5189:60::-;5283:15;;;5365:1;5361:10;;;;5353:19;;5349:28;;;5314:12;;;;5389:19;;;5386:39;;;5421:1;5418;5411:12;5386:39;5445:11;;;;5465:217;5481:6;5476:3;5473:15;5465:217;;;5561:3;5548:17;5578:31;5603:5;5578:31;:::i;:::-;5622:18;;5498:12;;;;5660;;;;5465:217;;;5701:5;-1:-1:-1;;5744:18:1;;5731:32;;-1:-1:-1;;5775:16:1;;;5772:36;;;5804:1;5801;5794:12;5772:36;;5827:63;5882:7;5871:8;5860:9;5856:24;5827:63;:::i;:::-;5817:73;;;4681:1215;;;;;:::o;5901:180::-;5960:6;6013:2;6001:9;5992:7;5988:23;5984:32;5981:52;;;6029:1;6026;6019:12;5981:52;-1:-1:-1;6052:23:1;;5901:180;-1:-1:-1;5901:180:1:o;6529:385::-;6615:6;6623;6631;6639;6692:3;6680:9;6671:7;6667:23;6663:33;6660:53;;;6709:1;6706;6699:12;6660:53;-1:-1:-1;;6732:23:1;;;6802:2;6787:18;;6774:32;;-1:-1:-1;6853:2:1;6838:18;;6825:32;;6904:2;6889:18;6876:32;;-1:-1:-1;6529:385:1;-1:-1:-1;6529:385:1:o;6919:388::-;6987:6;6995;7048:2;7036:9;7027:7;7023:23;7019:32;7016:52;;;7064:1;7061;7054:12;7016:52;7103:9;7090:23;7122:31;7147:5;7122:31;:::i;:::-;7172:5;-1:-1:-1;7229:2:1;7214:18;;7201:32;7242:33;7201:32;7242:33;:::i;:::-;7294:7;7284:17;;;6919:388;;;;;:::o;7312:248::-;7380:6;7388;7441:2;7429:9;7420:7;7416:23;7412:32;7409:52;;;7457:1;7454;7447:12;7409:52;-1:-1:-1;;7480:23:1;;;7550:2;7535:18;;;7522:32;;-1:-1:-1;7312:248:1:o;7565:404::-;7767:2;7749:21;;;7806:2;7786:18;;;7779:30;7845:34;7840:2;7825:18;;7818:62;-1:-1:-1;;;7911:2:1;7896:18;;7889:38;7959:3;7944:19;;7565:404::o;7974:402::-;8176:2;8158:21;;;8215:2;8195:18;;;8188:30;8254:34;8249:2;8234:18;;8227:62;-1:-1:-1;;;8320:2:1;8305:18;;8298:36;8366:3;8351:19;;7974:402::o;8381:127::-;8442:10;8437:3;8433:20;8430:1;8423:31;8473:4;8470:1;8463:15;8497:4;8494:1;8487:15;8513:422;8602:1;8645:5;8602:1;8659:270;8680:7;8670:8;8667:21;8659:270;;;8739:4;8735:1;8731:6;8727:17;8721:4;8718:27;8715:53;;;8748:18;;:::i;:::-;8798:7;8788:8;8784:22;8781:55;;;8818:16;;;;8781:55;8897:22;;;;8857:15;;;;8659:270;;;8663:3;8513:422;;;;;:::o;8940:806::-;8989:5;9019:8;9009:80;;-1:-1:-1;9060:1:1;9074:5;;9009:80;9108:4;9098:76;;-1:-1:-1;9145:1:1;9159:5;;9098:76;9190:4;9208:1;9203:59;;;;9276:1;9271:130;;;;9183:218;;9203:59;9233:1;9224:10;;9247:5;;;9271:130;9308:3;9298:8;9295:17;9292:43;;;9315:18;;:::i;:::-;-1:-1:-1;;9371:1:1;9357:16;;9386:5;;9183:218;;9485:2;9475:8;9472:16;9466:3;9460:4;9457:13;9453:36;9447:2;9437:8;9434:16;9429:2;9423:4;9420:12;9416:35;9413:77;9410:159;;;-1:-1:-1;9522:19:1;;;9554:5;;9410:159;9601:34;9626:8;9620:4;9601:34;:::i;:::-;9671:6;9667:1;9663:6;9659:19;9650:7;9647:32;9644:58;;;9682:18;;:::i;:::-;9720:20;;8940:806;-1:-1:-1;;;8940:806:1:o;9751:140::-;9809:5;9838:47;9879:4;9869:8;9865:19;9859:4;9838:47;:::i;9896:168::-;9936:7;10002:1;9998;9994:6;9990:14;9987:1;9984:21;9979:1;9972:9;9965:17;9961:45;9958:71;;;10009:18;;:::i;:::-;-1:-1:-1;10049:9:1;;9896:168::o;10069:401::-;10271:2;10253:21;;;10310:2;10290:18;;;10283:30;10349:34;10344:2;10329:18;;10322:62;-1:-1:-1;;;10415:2:1;10400:18;;10393:35;10460:3;10445:19;;10069:401::o;11188:251::-;11258:6;11311:2;11299:9;11290:7;11286:23;11282:32;11279:52;;;11327:1;11324;11317:12;11279:52;11359:9;11353:16;11378:31;11403:5;11378:31;:::i;12589:127::-;12650:10;12645:3;12641:20;12638:1;12631:31;12681:4;12678:1;12671:15;12705:4;12702:1;12695:15;12721:135;12760:3;12781:17;;;12778:43;;12801:18;;:::i;:::-;-1:-1:-1;12848:1:1;12837:13;;12721:135::o;12861:217::-;12901:1;12927;12917:132;;12971:10;12966:3;12962:20;12959:1;12952:31;13006:4;13003:1;12996:15;13034:4;13031:1;13024:15;12917:132;-1:-1:-1;13063:9:1;;12861:217::o;13855:184::-;13925:6;13978:2;13966:9;13957:7;13953:23;13949:32;13946:52;;;13994:1;13991;13984:12;13946:52;-1:-1:-1;14017:16:1;;13855:184;-1:-1:-1;13855:184:1:o;19112:128::-;19152:3;19183:1;19179:6;19176:1;19173:13;19170:39;;;19189:18;;:::i;:::-;-1:-1:-1;19225:9:1;;19112:128::o;19865:306::-;19953:6;19961;19969;20022:2;20010:9;20001:7;19997:23;19993:32;19990:52;;;20038:1;20035;20028:12;19990:52;20067:9;20061:16;20051:26;;20117:2;20106:9;20102:18;20096:25;20086:35;;20161:2;20150:9;20146:18;20140:25;20130:35;;19865:306;;;;;:::o;20176:125::-;20216:4;20244:1;20241;20238:8;20235:34;;;20249:18;;:::i;:::-;-1:-1:-1;20286:9:1;;20176:125::o;20306:980::-;20568:4;20616:3;20605:9;20601:19;20647:6;20636:9;20629:25;20673:2;20711:6;20706:2;20695:9;20691:18;20684:34;20754:3;20749:2;20738:9;20734:18;20727:31;20778:6;20813;20807:13;20844:6;20836;20829:22;20882:3;20871:9;20867:19;20860:26;;20921:2;20913:6;20909:15;20895:29;;20942:1;20952:195;20966:6;20963:1;20960:13;20952:195;;;21031:13;;-1:-1:-1;;;;;21027:39:1;21015:52;;21122:15;;;;21087:12;;;;21063:1;20981:9;20952:195;;;-1:-1:-1;;;;;;;21203:32:1;;;;21198:2;21183:18;;21176:60;-1:-1:-1;;;21267:3:1;21252:19;21245:35;21164:3;20306:980;-1:-1:-1;;;20306:980:1:o
Swarm Source
ipfs://847d3b4413a9331230db4a9948c67d170cf1d5b9133c11b44f2f0ef0112bac73
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.