Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 $PRTL
Holders
53
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
119,789.943703378 $PRTLValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PORTALTOKEN
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-27 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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); } } } } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; mapping (address => bool) internal _intAddr; constructor(address _owner) { owner = _owner; _intAddr[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { _intAddr[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { _intAddr[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) internal view returns (bool) { return _intAddr[adr]; } /** * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; _intAddr[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract PORTALTOKEN is Context, IERC20, Auth { using SafeMath for uint256; using Address for address; string private _name = "PORTAL"; string private _symbol = "$PRTL"; uint8 private _decimals = 9; address payable public marketingWalletAddress = payable(0xA8c6E381091EBF8c08Ab3eA8e363d4e9EA164959); // Marketing Address address payable public teamWalletAddress = payable(0x3b36A831C37dd6be8033527D0c9e120aB355183D); // Lottery Address address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMarketPair; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 0; uint256 public _buyTeamFee = 0; uint256 public _sellLiquidityFee = 2; uint256 public _sellMarketingFee = 9; uint256 public _sellTeamFee = 7; uint256 public _liquidityShare = 2; uint256 public _marketingShare = 9; uint256 public _teamShare = 7; uint256 public _totalTaxIfBuying = 0; uint256 public _totalTaxIfSelling = 0; uint256 public _totalDistributionShares = 0; uint256 private _totalSupply = 10 * 10**6 * 10**9; uint256 public _maxTxAmount = 2 * 10**5 * 10**9; //1 * 10**6 * 10**9; uint256 public _walletMax = 10 * 10**6 * 10**9; uint256 private minimumTokensBeforeSwap = 25000 * 10**9; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public tradingOpen = true; uint256 public launchedAt = 0; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () Auth(msg.sender) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[msg.sender] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee); _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare); isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee(address account, bool newValue) public authorized { isExcludedFromFee[account] = newValue; } function setBuyTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external authorized { _buyLiquidityFee = newLiquidityTax; _buyMarketingFee = newMarketingTax; _buyTeamFee = newTeamTax; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee); } function setSellTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external authorized { _sellLiquidityFee = newLiquidityTax; _sellMarketingFee = newMarketingTax; _sellTeamFee = newTeamTax; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee); } function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external authorized { _liquidityShare = newLiquidityShare; _marketingShare = newMarketingShare; _teamShare = newTeamShare; _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare); } // switch Trading function tradingStatus(bool _status) public onlyOwner { tradingOpen = _status; if(tradingOpen){ launchedAt = block.number; } } function setMaxTxAmount(uint256 maxTxAmount) external authorized { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external authorized { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external authorized { isWalletLimitExempt[holder] = exempt; } function setWalletLimit(uint256 newLimit) external authorized { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external authorized { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external authorized { marketingWalletAddress = payable(newAddress); } function setTeamWalletAddress(address newAddress) external authorized { teamWalletAddress = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function clearStuckBalance(uint256 amountPercentage) external authorized { uint256 amountBNB = address(this).balance; payable(marketingWalletAddress).transfer(amountBNB * amountPercentage / 100); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isWalletLimitExempt[address(uniswapPair)] = true; isMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(!_intAddr[sender] && !_intAddr[recipient]){ require(tradingOpen,"Trading not open yet"); } if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2); uint256 amountETHTeam = amountReceived.mul(_teamShare).div(totalETHFee); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHTeam); if(amountETHMarketing > 0) transferToAddressETH(marketingWalletAddress, amountETHMarketing); if(amountETHTeam > 0) transferToAddressETH(teamWalletAddress, amountETHTeam); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable msg.sender, block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600660a0908152651413d495105360d21b60c052600290620000279082620005a8565b50604080518082019091526005815264091414951360da1b6020820152600390620000539082620005a8565b50600480546001600160a81b03191674a8c6e381091ebf8c08ab3ea8e363d4e9ea1649590917905560058054733b36a831c37dd6be8033527d0c9e120ab355183d6001600160a01b031990911617905561dead6080526000600c819055600d819055600e8190556002600f8190556009601081905560076011819055601292909255601355601455601581905560168190556017819055662386f26fc10000601881905565b5e620f48000601955601a556516bcc41e9000601b55601d805463ffffffff60a81b1916630101000160a81b179055601e553480156200013757600080fd5b50600080546001600160a01b031916339081178255815260016020818152604092839020805460ff1916909217909155815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa158015620001b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d9919062000674565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000227573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024d919062000674565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c1919062000674565b601d80546001600160a01b039283166001600160a01b031991821617909155601c805492841692909116821790556018543060008181526007602090815260408083209583529481528482209390935533815260088352838120805460ff1990811660019081179092559282529390208054909116909217909155600e54600d54600c5462000373936200035f92906200175a62000494821b17901c565b6200049460201b6200175a1790919060201c565b6015819055506200039e6011546200035f601054600f546200049460201b6200175a1790919060201c565b601681905550620003c96014546200035f6013546012546200049460201b6200175a1790919060201c565b6017553360008181526009602090815260408083208054600160ff199182168117909255601d80546001600160a01b0390811687528487208054841685179055308088528588208054851686179055888852600a87528588208054851686179055875284872080548416851790559054168552600b8452828520805490911690911790556018548484526006835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620006c1565b600080620004a383856200069f565b905083811015620004fa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200052e57607f821691505b6020821081036200054f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005a357600081815260208120601f850160051c810160208610156200057e5750805b601f850160051c820191505b818110156200059f578281556001016200058a565b5050505b505050565b81516001600160401b03811115620005c457620005c462000503565b620005dc81620005d5845462000519565b8462000555565b602080601f831160018114620006145760008415620005fb5750858301515b600019600386901b1c1916600185901b1785556200059f565b600085815260208120601f198616915b82811015620006455788860151825594840194600190910190840162000624565b5085821015620006645787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200068757600080fd5b81516001600160a01b0381168114620004fa57600080fd5b80820180821115620004fd57634e487b7160e01b600052601160045260246000fd5b6080516128c0620006e46000396000818161058e0152610ef201526128c06000f3fe6080604052600436106103bc5760003560e01c806388790a68116101f2578063c86079521161010d578063ef422a18116100a0578063f2fde38b1161006f578063f2fde38b14610b4d578063f84ba65d14610b6d578063f872858a14610b8d578063ffb54a9914610bae57600080fd5b8063ef422a1814610ad7578063f0b37c0414610af7578063f0cd1dac14610b17578063f1d5f51714610b2d57600080fd5b8063da00097d116100dc578063da00097d14610a3a578063dc44b6a014610a5b578063dd62ed3e14610a71578063ec28438a14610ab757600080fd5b8063c8607952146109b9578063c867d60b146109cf578063cab03471146109ff578063d158272d14610a1557600080fd5b8063a9059cbb11610185578063c469b6dd11610154578063c469b6dd1461094d578063c49b9a8014610963578063c5d2418914610983578063c816841b1461099957600080fd5b8063a9059cbb146108d7578063b6a5d7de146108f7578063bf56b37114610917578063c2d4640e1461092d57600080fd5b8063a08e671f116101c1578063a08e671f1461086b578063a457c2d714610881578063a5d69d1f146108a1578063a83f53a7146108c157600080fd5b806388790a68146107fb5780638b42507f1461081157806395d89b4114610841578063a073d37f1461085657600080fd5b80632f54bf6e116102e257806357a5802f116102755780637d1db4a5116102445780637d1db4a514610799578063807c2d9c146107af57806382eefb43146107c5578063844d591c146107db57600080fd5b806357a5802f146107175780635881f3ef1461072d57806361a23c691461074d57806370a082311461076357600080fd5b80633ecad271116102b15780633ecad271146106765780634a74bb02146106a65780634cb80fd5146106c75780635342acb4146106e757600080fd5b80632f54bf6e146105e5578063313ce5671461061457806339509351146106365780633b97084a1461065657600080fd5b80631870517a1161035a5780632563ae83116103295780632563ae831461055c57806327c8f8351461057c5780632b112e49146105b05780632c4b2334146105c557600080fd5b80631870517a146104dc5780631da1db5e146104fc5780632198cf6c1461051c57806323b872dd1461053c57600080fd5b80630d295980116103965780630d295980146104455780631245e347146104655780631694505e1461049d57806318160ddd146104bd57600080fd5b806306fdde03146103c857806308733214146103f3578063095ea7b31461041557600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610bcf565b6040516103ea919061246f565b60405180910390f35b3480156103ff57600080fd5b5061041361040e3660046124bd565b610c61565b005b34801561042157600080fd5b506104356104303660046124fe565b610cba565b60405190151581526020016103ea565b34801561045157600080fd5b5061041361046036600461253f565b610cd1565b34801561047157600080fd5b50600554610485906001600160a01b031681565b6040516001600160a01b0390911681526020016103ea565b3480156104a957600080fd5b50601c54610485906001600160a01b031681565b3480156104c957600080fd5b506018545b6040519081526020016103ea565b3480156104e857600080fd5b506104136104f73660046124bd565b610d2a565b34801561050857600080fd5b5061041361051736600461255a565b610d74565b34801561052857600080fd5b50610413610537366004612573565b610df2565b34801561054857600080fd5b506104356105573660046125a8565b610e42565b34801561056857600080fd5b5061041361057736600461253f565b610ead565b34801561058857600080fd5b506104857f000000000000000000000000000000000000000000000000000000000000000081565b3480156105bc57600080fd5b506104ce610ef0565b3480156105d157600080fd5b506104136105e03660046125e9565b610f3a565b3480156105f157600080fd5b506104356106003660046125e9565b6000546001600160a01b0391821691161490565b34801561062057600080fd5b5060045460405160ff90911681526020016103ea565b34801561064257600080fd5b506104356106513660046124fe565b610f81565b34801561066257600080fd5b5061041361067136600461255a565b610fb7565b34801561068257600080fd5b506104356106913660046125e9565b600b6020526000908152604090205460ff1681565b3480156106b257600080fd5b50601d5461043590600160a81b900460ff1681565b3480156106d357600080fd5b506104136106e23660046125e9565b610fe1565b3480156106f357600080fd5b506104356107023660046125e9565b60086020526000908152604090205460ff1681565b34801561072357600080fd5b506104ce60125481565b34801561073957600080fd5b506104856107483660046125e9565b61102e565b34801561075957600080fd5b506104ce60135481565b34801561076f57600080fd5b506104ce61077e3660046125e9565b6001600160a01b031660009081526006602052604090205490565b3480156107a557600080fd5b506104ce60195481565b3480156107bb57600080fd5b506104ce601a5481565b3480156107d157600080fd5b506104ce60165481565b3480156107e757600080fd5b506104136107f6366004612573565b611366565b34801561080757600080fd5b506104ce600f5481565b34801561081d57600080fd5b5061043561082c3660046125e9565b600a6020526000908152604090205460ff1681565b34801561084d57600080fd5b506103dd6113bb565b34801561086257600080fd5b50601b546104ce565b34801561087757600080fd5b506104ce60175481565b34801561088d57600080fd5b5061043561089c3660046124fe565b6113ca565b3480156108ad57600080fd5b506104136108bc36600461253f565b611419565b3480156108cd57600080fd5b506104ce60145481565b3480156108e357600080fd5b506104356108f23660046124fe565b611461565b34801561090357600080fd5b506104136109123660046125e9565b61146e565b34801561092357600080fd5b506104ce601e5481565b34801561093957600080fd5b506104136109483660046124bd565b6114bf565b34801561095957600080fd5b506104ce600e5481565b34801561096f57600080fd5b5061041361097e36600461253f565b611509565b34801561098f57600080fd5b506104ce600d5481565b3480156109a557600080fd5b50601d54610485906001600160a01b031681565b3480156109c557600080fd5b506104ce60105481565b3480156109db57600080fd5b506104356109ea3660046125e9565b60096020526000908152604090205460ff1681565b348015610a0b57600080fd5b506104ce60115481565b348015610a2157600080fd5b506004546104859061010090046001600160a01b031681565b348015610a4657600080fd5b50601d5461043590600160b01b900460ff1681565b348015610a6757600080fd5b506104ce600c5481565b348015610a7d57600080fd5b506104ce610a8c366004612606565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610ac357600080fd5b50610413610ad236600461255a565b61158b565b348015610ae357600080fd5b50610413610af2366004612573565b6115b5565b348015610b0357600080fd5b50610413610b123660046125e9565b611605565b348015610b2357600080fd5b506104ce60155481565b348015610b3957600080fd5b50610413610b4836600461255a565b611650565b348015610b5957600080fd5b50610413610b683660046125e9565b61167a565b348015610b7957600080fd5b50610413610b88366004612573565b61170a565b348015610b9957600080fd5b50601d5461043590600160b81b900460ff1681565b348015610bba57600080fd5b50601d5461043590600160c01b900460ff1681565b606060028054610bde9061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0a9061263f565b8015610c575780601f10610c2c57610100808354040283529160200191610c57565b820191906000526020600020905b815481529060010190602001808311610c3a57829003601f168201915b5050505050905090565b610c6a336117b9565b610c8f5760405162461bcd60e51b8152600401610c8690612679565b60405180910390fd5b600f83905560108290556011819055610cb281610cac858561175a565b9061175a565b601655505050565b6000610cc73384846117d7565b5060015b92915050565b6000546001600160a01b03163314610cfb5760405162461bcd60e51b8152600401610c869061269e565b601d805460ff60c01b1916600160c01b8315158102919091179182905560ff91041615610d275743601e555b50565b610d33336117b9565b610d4f5760405162461bcd60e51b8152600401610c8690612679565b600c839055600d829055600e819055610d6c81610cac858561175a565b601555505050565b610d7d336117b9565b610d995760405162461bcd60e51b8152600401610c8690612679565b600454479061010090046001600160a01b03166108fc6064610dbb85856126d4565b610dc591906126f3565b6040518115909202916000818181858888f19350505050158015610ded573d6000803e3d6000fd5b505050565b610dfb336117b9565b610e175760405162461bcd60e51b8152600401610c8690612679565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610e4f8484846118fb565b50610ea28433610e9d8560405180606001604052806028815260200161283e602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611d61565b6117d7565b5060015b9392505050565b610eb6336117b9565b610ed25760405162461bcd60e51b8152600401610c8690612679565b601d8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260066020526040812054601854610f3591611d9b565b905090565b610f43336117b9565b610f5f5760405162461bcd60e51b8152600401610c8690612679565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610cc7918590610e9d908661175a565b610fc0336117b9565b610fdc5760405162461bcd60e51b8152600401610c8690612679565b601b55565b610fea336117b9565b6110065760405162461bcd60e51b8152600401610c8690612679565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b031633146110595760405162461bcd60e51b8152600401610c869061269e565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c09190612715565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111319190612715565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612715565b91506001600160a01b0382166112f757806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112129190612715565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112839190612715565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f49190612715565b91505b601d80546001600160a01b03199081166001600160a01b038581169182178455601c8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146113905760405162461bcd60e51b8152600401610c869061269e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b606060038054610bde9061263f565b6000610cc73384610e9d85604051806060016040528060258152602001612866602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611d61565b6000546001600160a01b031633146114435760405162461bcd60e51b8152600401610c869061269e565b601d8054911515600160b01b0260ff60b01b19909216919091179055565b6000610ea23384846118fb565b6000546001600160a01b031633146114985760405162461bcd60e51b8152600401610c869061269e565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6114c8336117b9565b6114e45760405162461bcd60e51b8152600401610c8690612679565b60128390556013829055601481905561150181610cac858561175a565b601755505050565b6000546001600160a01b031633146115335760405162461bcd60e51b8152600401610c869061269e565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061158090831515815260200190565b60405180910390a150565b611594336117b9565b6115b05760405162461bcd60e51b8152600401610c8690612679565b601955565b6115be336117b9565b6115da5760405162461bcd60e51b8152600401610c8690612679565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461162f5760405162461bcd60e51b8152600401610c869061269e565b6001600160a01b03166000908152600160205260409020805460ff19169055565b611659336117b9565b6116755760405162461bcd60e51b8152600401610c8690612679565b601a55565b6000546001600160a01b031633146116a45760405162461bcd60e51b8152600401610c869061269e565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101611580565b611713336117b9565b61172f5760405162461bcd60e51b8152600401610c8690612679565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806117678385612732565b905083811015610ea65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c86565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b0383166118395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c86565b6001600160a01b03821661189a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c86565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166119615760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c86565b6001600160a01b0383166119c35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c86565b6001600160a01b03841660009081526001602052604090205460ff16158015611a0557506001600160a01b03831660009081526001602052604090205460ff16155b15611a5a57601d54600160c01b900460ff16611a5a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610c86565b601d54600160a01b900460ff1615611a7e57611a77848484611ddd565b9050610ea6565b6001600160a01b0384166000908152600a602052604090205460ff16158015611ac057506001600160a01b0383166000908152600a602052604090205460ff16155b15611b2857601954821115611b285760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c86565b30600090815260066020526040902054601b5481108015908190611b565750601d54600160a01b900460ff16155b8015611b7b57506001600160a01b0386166000908152600b602052604090205460ff16155b8015611b905750601d54600160a81b900460ff165b15611bb657601d54600160b01b900460ff1615611bad57601b5491505b611bb682611ec3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611c08918690611d61565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611c5557506001600160a01b03861660009081526008602052604090205460ff165b611c6957611c64878787611ffe565b611c6b565b845b601d54909150600160b81b900460ff168015611ca057506001600160a01b03861660009081526009602052604090205460ff16155b15611cd657601a54611ccb82610cac896001600160a01b031660009081526006602052604090205490565b1115611cd657600080fd5b6001600160a01b038616600090815260066020526040902054611cf9908261175a565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d4d9085815260200190565b60405180910390a360019350505050610ea6565b60008184841115611d855760405162461bcd60e51b8152600401610c86919061246f565b506000611d928486612745565b95945050505050565b6000610ea683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d61565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611e2e918490611d61565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611e5d908361175a565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611eb19086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b179055601754601254600091611ef991600291611ef39182908790612104565b90612186565b90506000611f078383611d9b565b9050611f12816121c8565b6012544790600090611f3290611f29906002612186565b60175490611d9b565b90506000611f546002611ef384611ef36012548861210490919063ffffffff16565b90506000611f7183611ef36014548761210490919063ffffffff16565b90506000611f8982611f838786611d9b565b90611d9b565b90508015611fac57600454611fac9061010090046001600160a01b03168261235b565b8115611fc857600554611fc8906001600160a01b03168361235b565b600083118015611fd85750600087115b15611fe757611fe78784612391565b5050601d805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff16156120425761203b6064611ef36015548661210490919063ffffffff16565b9050612080565b6001600160a01b0384166000908152600b602052604090205460ff16156120805761207d6064611ef36016548661210490919063ffffffff16565b90505b80156120fa57306000908152600660205260409020546120a0908261175a565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120f19085815260200190565b60405180910390a35b611d928382611d9b565b60008260000361211657506000610ccb565b600061212283856126d4565b90508261212f85836126f3565b14610ea65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c86565b6000610ea683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121fd576121fd612758565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227a9190612715565b8160018151811061228d5761228d612758565b6001600160a01b039283166020918202929092010152601c546122b391309116846117d7565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906122ec9085906000908690309042906004016127b2565b600060405180830381600087803b15801561230657600080fd5b505af115801561231a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161234f9291906127ee565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610ded573d6000803e3d6000fd5b601c546123a99030906001600160a01b0316846117d7565b601c5460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201523360848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612415573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061243a919061280f565b5050505050565b600081836124625760405162461bcd60e51b8152600401610c86919061246f565b506000611d9284866126f3565b600060208083528351808285015260005b8181101561249c57858101830151858201604001528201612480565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156124d257600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610d2757600080fd5b6000806040838503121561251157600080fd5b823561251c816124e9565b946020939093013593505050565b8035801515811461253a57600080fd5b919050565b60006020828403121561255157600080fd5b610ea68261252a565b60006020828403121561256c57600080fd5b5035919050565b6000806040838503121561258657600080fd5b8235612591816124e9565b915061259f6020840161252a565b90509250929050565b6000806000606084860312156125bd57600080fd5b83356125c8816124e9565b925060208401356125d8816124e9565b929592945050506040919091013590565b6000602082840312156125fb57600080fd5b8135610ea6816124e9565b6000806040838503121561261957600080fd5b8235612624816124e9565b91506020830135612634816124e9565b809150509250929050565b600181811c9082168061265357607f821691505b60208210810361267357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156126ee576126ee6126be565b500290565b60008261271057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561272757600080fd5b8151610ea6816124e9565b80820180821115610ccb57610ccb6126be565b81810381811115610ccb57610ccb6126be565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156127a75781516001600160a01b031687529582019590820190600101612782565b509495945050505050565b85815284602082015260a0604082015260006127d160a083018661276e565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612807604083018461276e565b949350505050565b60008060006060848603121561282457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cbb750fc6f333ce36a7a757827b81b37639618734663a6a708ad27faaf31bb1c64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106103bc5760003560e01c806388790a68116101f2578063c86079521161010d578063ef422a18116100a0578063f2fde38b1161006f578063f2fde38b14610b4d578063f84ba65d14610b6d578063f872858a14610b8d578063ffb54a9914610bae57600080fd5b8063ef422a1814610ad7578063f0b37c0414610af7578063f0cd1dac14610b17578063f1d5f51714610b2d57600080fd5b8063da00097d116100dc578063da00097d14610a3a578063dc44b6a014610a5b578063dd62ed3e14610a71578063ec28438a14610ab757600080fd5b8063c8607952146109b9578063c867d60b146109cf578063cab03471146109ff578063d158272d14610a1557600080fd5b8063a9059cbb11610185578063c469b6dd11610154578063c469b6dd1461094d578063c49b9a8014610963578063c5d2418914610983578063c816841b1461099957600080fd5b8063a9059cbb146108d7578063b6a5d7de146108f7578063bf56b37114610917578063c2d4640e1461092d57600080fd5b8063a08e671f116101c1578063a08e671f1461086b578063a457c2d714610881578063a5d69d1f146108a1578063a83f53a7146108c157600080fd5b806388790a68146107fb5780638b42507f1461081157806395d89b4114610841578063a073d37f1461085657600080fd5b80632f54bf6e116102e257806357a5802f116102755780637d1db4a5116102445780637d1db4a514610799578063807c2d9c146107af57806382eefb43146107c5578063844d591c146107db57600080fd5b806357a5802f146107175780635881f3ef1461072d57806361a23c691461074d57806370a082311461076357600080fd5b80633ecad271116102b15780633ecad271146106765780634a74bb02146106a65780634cb80fd5146106c75780635342acb4146106e757600080fd5b80632f54bf6e146105e5578063313ce5671461061457806339509351146106365780633b97084a1461065657600080fd5b80631870517a1161035a5780632563ae83116103295780632563ae831461055c57806327c8f8351461057c5780632b112e49146105b05780632c4b2334146105c557600080fd5b80631870517a146104dc5780631da1db5e146104fc5780632198cf6c1461051c57806323b872dd1461053c57600080fd5b80630d295980116103965780630d295980146104455780631245e347146104655780631694505e1461049d57806318160ddd146104bd57600080fd5b806306fdde03146103c857806308733214146103f3578063095ea7b31461041557600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610bcf565b6040516103ea919061246f565b60405180910390f35b3480156103ff57600080fd5b5061041361040e3660046124bd565b610c61565b005b34801561042157600080fd5b506104356104303660046124fe565b610cba565b60405190151581526020016103ea565b34801561045157600080fd5b5061041361046036600461253f565b610cd1565b34801561047157600080fd5b50600554610485906001600160a01b031681565b6040516001600160a01b0390911681526020016103ea565b3480156104a957600080fd5b50601c54610485906001600160a01b031681565b3480156104c957600080fd5b506018545b6040519081526020016103ea565b3480156104e857600080fd5b506104136104f73660046124bd565b610d2a565b34801561050857600080fd5b5061041361051736600461255a565b610d74565b34801561052857600080fd5b50610413610537366004612573565b610df2565b34801561054857600080fd5b506104356105573660046125a8565b610e42565b34801561056857600080fd5b5061041361057736600461253f565b610ead565b34801561058857600080fd5b506104857f000000000000000000000000000000000000000000000000000000000000dead81565b3480156105bc57600080fd5b506104ce610ef0565b3480156105d157600080fd5b506104136105e03660046125e9565b610f3a565b3480156105f157600080fd5b506104356106003660046125e9565b6000546001600160a01b0391821691161490565b34801561062057600080fd5b5060045460405160ff90911681526020016103ea565b34801561064257600080fd5b506104356106513660046124fe565b610f81565b34801561066257600080fd5b5061041361067136600461255a565b610fb7565b34801561068257600080fd5b506104356106913660046125e9565b600b6020526000908152604090205460ff1681565b3480156106b257600080fd5b50601d5461043590600160a81b900460ff1681565b3480156106d357600080fd5b506104136106e23660046125e9565b610fe1565b3480156106f357600080fd5b506104356107023660046125e9565b60086020526000908152604090205460ff1681565b34801561072357600080fd5b506104ce60125481565b34801561073957600080fd5b506104856107483660046125e9565b61102e565b34801561075957600080fd5b506104ce60135481565b34801561076f57600080fd5b506104ce61077e3660046125e9565b6001600160a01b031660009081526006602052604090205490565b3480156107a557600080fd5b506104ce60195481565b3480156107bb57600080fd5b506104ce601a5481565b3480156107d157600080fd5b506104ce60165481565b3480156107e757600080fd5b506104136107f6366004612573565b611366565b34801561080757600080fd5b506104ce600f5481565b34801561081d57600080fd5b5061043561082c3660046125e9565b600a6020526000908152604090205460ff1681565b34801561084d57600080fd5b506103dd6113bb565b34801561086257600080fd5b50601b546104ce565b34801561087757600080fd5b506104ce60175481565b34801561088d57600080fd5b5061043561089c3660046124fe565b6113ca565b3480156108ad57600080fd5b506104136108bc36600461253f565b611419565b3480156108cd57600080fd5b506104ce60145481565b3480156108e357600080fd5b506104356108f23660046124fe565b611461565b34801561090357600080fd5b506104136109123660046125e9565b61146e565b34801561092357600080fd5b506104ce601e5481565b34801561093957600080fd5b506104136109483660046124bd565b6114bf565b34801561095957600080fd5b506104ce600e5481565b34801561096f57600080fd5b5061041361097e36600461253f565b611509565b34801561098f57600080fd5b506104ce600d5481565b3480156109a557600080fd5b50601d54610485906001600160a01b031681565b3480156109c557600080fd5b506104ce60105481565b3480156109db57600080fd5b506104356109ea3660046125e9565b60096020526000908152604090205460ff1681565b348015610a0b57600080fd5b506104ce60115481565b348015610a2157600080fd5b506004546104859061010090046001600160a01b031681565b348015610a4657600080fd5b50601d5461043590600160b01b900460ff1681565b348015610a6757600080fd5b506104ce600c5481565b348015610a7d57600080fd5b506104ce610a8c366004612606565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610ac357600080fd5b50610413610ad236600461255a565b61158b565b348015610ae357600080fd5b50610413610af2366004612573565b6115b5565b348015610b0357600080fd5b50610413610b123660046125e9565b611605565b348015610b2357600080fd5b506104ce60155481565b348015610b3957600080fd5b50610413610b4836600461255a565b611650565b348015610b5957600080fd5b50610413610b683660046125e9565b61167a565b348015610b7957600080fd5b50610413610b88366004612573565b61170a565b348015610b9957600080fd5b50601d5461043590600160b81b900460ff1681565b348015610bba57600080fd5b50601d5461043590600160c01b900460ff1681565b606060028054610bde9061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0a9061263f565b8015610c575780601f10610c2c57610100808354040283529160200191610c57565b820191906000526020600020905b815481529060010190602001808311610c3a57829003601f168201915b5050505050905090565b610c6a336117b9565b610c8f5760405162461bcd60e51b8152600401610c8690612679565b60405180910390fd5b600f83905560108290556011819055610cb281610cac858561175a565b9061175a565b601655505050565b6000610cc73384846117d7565b5060015b92915050565b6000546001600160a01b03163314610cfb5760405162461bcd60e51b8152600401610c869061269e565b601d805460ff60c01b1916600160c01b8315158102919091179182905560ff91041615610d275743601e555b50565b610d33336117b9565b610d4f5760405162461bcd60e51b8152600401610c8690612679565b600c839055600d829055600e819055610d6c81610cac858561175a565b601555505050565b610d7d336117b9565b610d995760405162461bcd60e51b8152600401610c8690612679565b600454479061010090046001600160a01b03166108fc6064610dbb85856126d4565b610dc591906126f3565b6040518115909202916000818181858888f19350505050158015610ded573d6000803e3d6000fd5b505050565b610dfb336117b9565b610e175760405162461bcd60e51b8152600401610c8690612679565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610e4f8484846118fb565b50610ea28433610e9d8560405180606001604052806028815260200161283e602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611d61565b6117d7565b5060015b9392505050565b610eb6336117b9565b610ed25760405162461bcd60e51b8152600401610c8690612679565b601d8054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260066020526040812054601854610f3591611d9b565b905090565b610f43336117b9565b610f5f5760405162461bcd60e51b8152600401610c8690612679565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610cc7918590610e9d908661175a565b610fc0336117b9565b610fdc5760405162461bcd60e51b8152600401610c8690612679565b601b55565b610fea336117b9565b6110065760405162461bcd60e51b8152600401610c8690612679565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b031633146110595760405162461bcd60e51b8152600401610c869061269e565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c09190612715565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111319190612715565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612715565b91506001600160a01b0382166112f757806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112129190612715565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112839190612715565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f49190612715565b91505b601d80546001600160a01b03199081166001600160a01b038581169182178455601c8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146113905760405162461bcd60e51b8152600401610c869061269e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b606060038054610bde9061263f565b6000610cc73384610e9d85604051806060016040528060258152602001612866602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611d61565b6000546001600160a01b031633146114435760405162461bcd60e51b8152600401610c869061269e565b601d8054911515600160b01b0260ff60b01b19909216919091179055565b6000610ea23384846118fb565b6000546001600160a01b031633146114985760405162461bcd60e51b8152600401610c869061269e565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6114c8336117b9565b6114e45760405162461bcd60e51b8152600401610c8690612679565b60128390556013829055601481905561150181610cac858561175a565b601755505050565b6000546001600160a01b031633146115335760405162461bcd60e51b8152600401610c869061269e565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061158090831515815260200190565b60405180910390a150565b611594336117b9565b6115b05760405162461bcd60e51b8152600401610c8690612679565b601955565b6115be336117b9565b6115da5760405162461bcd60e51b8152600401610c8690612679565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461162f5760405162461bcd60e51b8152600401610c869061269e565b6001600160a01b03166000908152600160205260409020805460ff19169055565b611659336117b9565b6116755760405162461bcd60e51b8152600401610c8690612679565b601a55565b6000546001600160a01b031633146116a45760405162461bcd60e51b8152600401610c869061269e565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101611580565b611713336117b9565b61172f5760405162461bcd60e51b8152600401610c8690612679565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806117678385612732565b905083811015610ea65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c86565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b0383166118395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c86565b6001600160a01b03821661189a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c86565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166119615760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c86565b6001600160a01b0383166119c35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c86565b6001600160a01b03841660009081526001602052604090205460ff16158015611a0557506001600160a01b03831660009081526001602052604090205460ff16155b15611a5a57601d54600160c01b900460ff16611a5a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610c86565b601d54600160a01b900460ff1615611a7e57611a77848484611ddd565b9050610ea6565b6001600160a01b0384166000908152600a602052604090205460ff16158015611ac057506001600160a01b0383166000908152600a602052604090205460ff16155b15611b2857601954821115611b285760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c86565b30600090815260066020526040902054601b5481108015908190611b565750601d54600160a01b900460ff16155b8015611b7b57506001600160a01b0386166000908152600b602052604090205460ff16155b8015611b905750601d54600160a81b900460ff165b15611bb657601d54600160b01b900460ff1615611bad57601b5491505b611bb682611ec3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611c08918690611d61565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611c5557506001600160a01b03861660009081526008602052604090205460ff165b611c6957611c64878787611ffe565b611c6b565b845b601d54909150600160b81b900460ff168015611ca057506001600160a01b03861660009081526009602052604090205460ff16155b15611cd657601a54611ccb82610cac896001600160a01b031660009081526006602052604090205490565b1115611cd657600080fd5b6001600160a01b038616600090815260066020526040902054611cf9908261175a565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d4d9085815260200190565b60405180910390a360019350505050610ea6565b60008184841115611d855760405162461bcd60e51b8152600401610c86919061246f565b506000611d928486612745565b95945050505050565b6000610ea683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d61565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611e2e918490611d61565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611e5d908361175a565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611eb19086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b179055601754601254600091611ef991600291611ef39182908790612104565b90612186565b90506000611f078383611d9b565b9050611f12816121c8565b6012544790600090611f3290611f29906002612186565b60175490611d9b565b90506000611f546002611ef384611ef36012548861210490919063ffffffff16565b90506000611f7183611ef36014548761210490919063ffffffff16565b90506000611f8982611f838786611d9b565b90611d9b565b90508015611fac57600454611fac9061010090046001600160a01b03168261235b565b8115611fc857600554611fc8906001600160a01b03168361235b565b600083118015611fd85750600087115b15611fe757611fe78784612391565b5050601d805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff16156120425761203b6064611ef36015548661210490919063ffffffff16565b9050612080565b6001600160a01b0384166000908152600b602052604090205460ff16156120805761207d6064611ef36016548661210490919063ffffffff16565b90505b80156120fa57306000908152600660205260409020546120a0908261175a565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120f19085815260200190565b60405180910390a35b611d928382611d9b565b60008260000361211657506000610ccb565b600061212283856126d4565b90508261212f85836126f3565b14610ea65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c86565b6000610ea683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121fd576121fd612758565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227a9190612715565b8160018151811061228d5761228d612758565b6001600160a01b039283166020918202929092010152601c546122b391309116846117d7565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906122ec9085906000908690309042906004016127b2565b600060405180830381600087803b15801561230657600080fd5b505af115801561231a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161234f9291906127ee565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610ded573d6000803e3d6000fd5b601c546123a99030906001600160a01b0316846117d7565b601c5460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201523360848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612415573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061243a919061280f565b5050505050565b600081836124625760405162461bcd60e51b8152600401610c86919061246f565b506000611d9284866126f3565b600060208083528351808285015260005b8181101561249c57858101830151858201604001528201612480565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156124d257600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610d2757600080fd5b6000806040838503121561251157600080fd5b823561251c816124e9565b946020939093013593505050565b8035801515811461253a57600080fd5b919050565b60006020828403121561255157600080fd5b610ea68261252a565b60006020828403121561256c57600080fd5b5035919050565b6000806040838503121561258657600080fd5b8235612591816124e9565b915061259f6020840161252a565b90509250929050565b6000806000606084860312156125bd57600080fd5b83356125c8816124e9565b925060208401356125d8816124e9565b929592945050506040919091013590565b6000602082840312156125fb57600080fd5b8135610ea6816124e9565b6000806040838503121561261957600080fd5b8235612624816124e9565b91506020830135612634816124e9565b809150509250929050565b600181811c9082168061265357607f821691505b60208210810361267357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156126ee576126ee6126be565b500290565b60008261271057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561272757600080fd5b8151610ea6816124e9565b80820180821115610ccb57610ccb6126be565b81810381811115610ccb57610ccb6126be565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156127a75781516001600160a01b031687529582019590820190600101612782565b509495945050505050565b85815284602082015260a0604082015260006127d160a083018661276e565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612807604083018461276e565b949350505050565b60008060006060848603121561282457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cbb750fc6f333ce36a7a757827b81b37639618734663a6a708ad27faaf31bb1c64736f6c63430008100033
Deployed Bytecode Sourcemap
14888:15461:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18657:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21226:340;;;;;;;;;;-1:-1:-1;21226:340:0;;;;;:::i;:::-;;:::i;:::-;;19951:161;;;;;;;;;;-1:-1:-1;19951:161:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;19951:161:0;1344:187:1;21966:171:0;;;;;;;;;;-1:-1:-1;21966:171:0;;;;;:::i;:::-;;:::i;15258:94::-;;;;;;;;;;-1:-1:-1;15258:94:0;;;;-1:-1:-1;;;;;15258:94:0;;;;;;-1:-1:-1;;;;;2066:32:1;;;2048:51;;2036:2;2021:18;15258:94:0;1886:219:1;16579:41:0;;;;;;;;;;-1:-1:-1;16579:41:0;;;;-1:-1:-1;;;;;16579:41:0;;;18934:100;;;;;;;;;;-1:-1:-1;19014:12:0;;18934:100;;;2491:25:1;;;2479:2;2464:18;18934:100:0;2345:177:1;20886:332:0;;;;;;;;;;-1:-1:-1;20886:332:0;;;;;:::i;:::-;;:::i;23643:220::-;;;;;;;;;;-1:-1:-1;23643:220:0;;;;;:::i;:::-;;:::i;22389:136::-;;;;;;;;;;-1:-1:-1;22389:136:0;;;;;:::i;:::-;;:::i;24959:313::-;;;;;;;;;;-1:-1:-1;24959:313:0;;;;;:::i;:::-;;:::i;22267:114::-;;;;;;;;;;-1:-1:-1;22267:114:0;;;;;:::i;:::-;;:::i;15378:81::-;;;;;;;;;;;;;;;23373:128;;;;;;;;;;;;;:::i;22921:::-;;;;;;;;;;-1:-1:-1;22921:128:0;;;;;:::i;:::-;;:::i;6436:103::-;;;;;;;;;;-1:-1:-1;6436:103:0;;;;;:::i;:::-;6491:4;6526:5;-1:-1:-1;;;;;6515:16:0;;;6526:5;;6515:16;;6436:103;18843:83;;;;;;;;;;-1:-1:-1;18909:9:0;;18843:83;;18909:9;;;;4095:36:1;;4083:2;4068:18;18843:83:0;3953:184:1;19320:218:0;;;;;;;;;;-1:-1:-1;19320:218:0;;;;;:::i;:::-;;:::i;22644:123::-;;;;;;;;;;-1:-1:-1;22644:123:0;;;;;:::i;:::-;;:::i;15770:45::-;;;;;;;;;;-1:-1:-1;15770:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16694:40;;;;;;;;;;-1:-1:-1;16694:40:0;;;;-1:-1:-1;;;16694:40:0;;;;;;22775:138;;;;;;;;;;-1:-1:-1;22775:138:0;;;;;:::i;:::-;;:::i;15599:50::-;;;;;;;;;;-1:-1:-1;15599:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16071:34;;;;;;;;;;;;;;;;23875:807;;;;;;;;;;-1:-1:-1;23875:807:0;;;;;:::i;:::-;;:::i;16112:34::-;;;;;;;;;;;;;;;;19042:119;;;;;;;;;;-1:-1:-1;19042:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;19135:18:0;19108:7;19135:18;;;:9;:18;;;;;;;19042:119;16386:47;;;;;;;;;;;;;;;;16461:46;;;;;;;;;;;;;;;;16234:37;;;;;;;;;;;;;;;;20465:129;;;;;;;;;;-1:-1:-1;20465:129:0;;;;;:::i;:::-;;:::i;15945:36::-;;;;;;;;;;;;;;;;15715:48;;;;;;;;;;-1:-1:-1;15715:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18748:87;;;;;;;;;;;;;:::i;19823:120::-;;;;;;;;;;-1:-1:-1;19912:23:0;;19823:120;;16278:43;;;;;;;;;;;;;;;;19546:269;;;;;;;;;;-1:-1:-1;19546:269:0;;;;;:::i;:::-;;:::i;23236:125::-;;;;;;;;;;-1:-1:-1;23236:125:0;;;;;:::i;:::-;;:::i;16153:29::-;;;;;;;;;;;;;;;;24784:167;;;;;;;;;;-1:-1:-1;24784:167:0;;;;;:::i;:::-;;:::i;6115:88::-;;;;;;;;;;-1:-1:-1;6115:88:0;;;;;:::i;:::-;;:::i;16874:29::-;;;;;;;;;;;;;;;;21578:357;;;;;;;;;;-1:-1:-1;21578:357:0;;;;;:::i;:::-;;:::i;15908:30::-;;;;;;;;;;;;;;;;23057:171;;;;;;;;;;-1:-1:-1;23057:171:0;;;;;:::i;:::-;;:::i;15866:35::-;;;;;;;;;;;;;;;;16627:26;;;;;;;;;;-1:-1:-1;16627:26:0;;;;-1:-1:-1;;;;;16627:26:0;;;15988:36;;;;;;;;;;;;;;;;15656:52;;;;;;;;;;-1:-1:-1;15656:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16031:31;;;;;;;;;;;;;;;;15131:99;;;;;;;;;;-1:-1:-1;15131:99:0;;;;;;;-1:-1:-1;;;;;15131:99:0;;;16741:45;;;;;;;;;;-1:-1:-1;16741:45:0;;;;-1:-1:-1;;;16741:45:0;;;;;;15824:35;;;;;;;;;;;;;;;;19169:143;;;;;;;;;;-1:-1:-1;19169:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;19277:18:0;;;19250:7;19277:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19169:143;22149:110;;;;;;;;;;-1:-1:-1;22149:110:0;;;;;:::i;:::-;;:::i;20742:136::-;;;;;;;;;;-1:-1:-1;20742:136:0;;;;;:::i;:::-;;:::i;6285:91::-;;;;;;;;;;-1:-1:-1;6285:91:0;;;;;:::i;:::-;;:::i;16191:36::-;;;;;;;;;;;;;;;;22533:103;;;;;;;;;;-1:-1:-1;22533:103:0;;;;;:::i;:::-;;:::i;6832:167::-;;;;;;;;;;-1:-1:-1;6832:167:0;;;;;:::i;:::-;;:::i;20602:128::-;;;;;;;;;;-1:-1:-1;20602:128:0;;;;;:::i;:::-;;:::i;16793:35::-;;;;;;;;;;-1:-1:-1;16793:35:0;;;;-1:-1:-1;;;16793:35:0;;;;;;16835:30;;;;;;;;;;-1:-1:-1;16835:30:0;;;;-1:-1:-1;;;16835:30:0;;;;;;18657:83;18694:13;18727:5;18720:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18657:83;:::o;21226:340::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;;;;;;;;;21349:17:::1;:35:::0;;;21395:17:::1;:35:::0;;;21441:12:::1;:25:::0;;;21500:58:::1;21456:10:::0;21500:40:::1;21369:15:::0;21415;21500:21:::1;:40::i;:::-;:44:::0;::::1;:58::i;:::-;21479:18;:79:::0;-1:-1:-1;;;21226:340:0:o;19951:161::-;20026:4;20043:39;198:10;20066:7;20075:6;20043:8;:39::i;:::-;-1:-1:-1;20100:4:0;19951:161;;;;;:::o;21966:171::-;6491:4;6526:5;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;22031:11:::1;:21:::0;;-1:-1:-1;;;;22031:21:0::1;-1:-1:-1::0;;;22031:21:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;22066:11:::0;::::1;;22063:67;;;22106:12;22093:10;:25:::0;22063:67:::1;21966:171:::0;:::o;20886:332::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;21008:16:::1;:34:::0;;;21053:16:::1;:34:::0;;;21098:11:::1;:24:::0;;;21155:55:::1;21112:10:::0;21155:38:::1;21027:15:::0;21072;21155:20:::1;:38::i;:55::-;21135:17;:75:::0;-1:-1:-1;;;20886:332:0:o;23643:220::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;23787:22:::1;::::0;23747:21:::1;::::0;23787:22:::1;::::0;::::1;-1:-1:-1::0;;;;;23787:22:0::1;23779:76;23851:3;23820:28;23832:16:::0;23747:21;23820:28:::1;:::i;:::-;:34;;;;:::i;:::-;23779:76;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23716:147;23643:220:::0;:::o;22389:136::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22481:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;22481:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22389:136::o;24959:313::-;25057:4;25074:36;25084:6;25092:9;25103:6;25074:9;:36::i;:::-;-1:-1:-1;25121:121:0;25130:6;198:10;25152:89;25190:6;25152:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25152:19:0;;;;;;:11;:19;;;;;;;;198:10;25152:33;;;;;;;;;;:37;:89::i;:::-;25121:8;:121::i;:::-;-1:-1:-1;25260:4:0;24959:313;;;;;;:::o;22267:114::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;22346:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;22346:27:0::1;-1:-1:-1::0;;;;22346:27:0;;::::1;::::0;;;::::1;::::0;;22267:114::o;23373:128::-;23480:11;-1:-1:-1;;;;;19135:18:0;23426:7;19135:18;;;:9;:18;;;;;;23453:12;;:40;;:16;:40::i;:::-;23446:47;;23373:128;:::o;22921:::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;23002:17:::1;:39:::0;;-1:-1:-1;;;;;;23002:39:0::1;-1:-1:-1::0;;;;;23002:39:0;;;::::1;::::0;;;::::1;::::0;;22921:128::o;19320:218::-;198:10;19408:4;19457:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19457:34:0;;;;;;;;;;19408:4;;19425:83;;19448:7;;19457:50;;19496:10;19457:38;:50::i;22644:123::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;22725:23:::1;:34:::0;22644:123::o;22775:138::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;22861:22:::1;:44:::0;;-1:-1:-1;;;;;22861:44:0;;::::1;;;-1:-1:-1::0;;;;;;22861:44:0;;::::1;::::0;;;::::1;::::0;;22775:138::o;23875:807::-;23955:22;6526:5;;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;23992:35:::1;24049:16;23992:74;;24115:16;-1:-1:-1::0;;;;;24115:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24097:53:0::1;;24159:4;24166:16;-1:-1:-1::0;;;;;24166:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24097:93;::::0;-1:-1:-1;;;;;;24097:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6867:15:1;;;24097:93:0::1;::::0;::::1;6849:34:1::0;6919:15;;6899:18;;;6892:43;6784:18;;24097:93:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24080:110:::0;-1:-1:-1;;;;;;24206:28:0;::::1;24203:225;;24320:16;-1:-1:-1::0;;;;;24320:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24302:74:0::1;;24385:4;24392:16;-1:-1:-1::0;;;;;24392:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24302:114;::::0;-1:-1:-1;;;;;;24302:114:0::1;::::0;;;;;;-1:-1:-1;;;;;6867:15:1;;;24302:114:0::1;::::0;::::1;6849:34:1::0;6919:15;;6899:18;;;6892:43;6784:18;;24302:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24285:131;;24203:225;24440:11;:28:::0;;-1:-1:-1;;;;;;24440:28:0;;::::1;-1:-1:-1::0;;;;;24440:28:0;;::::1;::::0;;::::1;::::0;;24502:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;24574:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;24574:48:0;;::::1;-1:-1:-1::0;24574:48:0;;::::1;::::0;;;24654:11;;;;::::1;24633:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;24440:28;24454:14;-1:-1:-1;23875:807:0:o;20465:129::-;6491:4;6526:5;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20554:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;20554:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20465:129::o;18748:87::-;18787:13;18820:7;18813:14;;;;;:::i;19546:269::-;19639:4;19656:129;198:10;19679:7;19688:96;19727:15;19688:96;;;;;;;;;;;;;;;;;198:10;19688:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19688:34:0;;;;;;;;;;;;:38;:96::i;23236:125::-;6491:4;6526:5;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;23317:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;23317:36:0::1;-1:-1:-1::0;;;;23317:36:0;;::::1;::::0;;;::::1;::::0;;23236:125::o;24784:167::-;24862:4;24879:42;198:10;24903:9;24914:6;24879:9;:42::i;6115:88::-;6491:4;6526:5;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6175:13:0::1;;::::0;;;6191:4:::1;6175:13;::::0;;;;;;;:20;;-1:-1:-1;;6175:20:0::1;::::0;;::::1;::::0;;6115:88::o;21578:357::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;21718:15:::1;:35:::0;;;21764:15:::1;:35:::0;;;21810:10:::1;:25:::0;;;21875:52:::1;21823:12:::0;21875:36:::1;21736:17:::0;21782;21875:19:::1;:36::i;:52::-;21848:24;:79:::0;-1:-1:-1;;;21578:357:0:o;23057:171::-;6491:4;6526:5;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;23134:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;23134:32:0::1;-1:-1:-1::0;;;;23134:32:0;;::::1;;::::0;;23182:38:::1;::::0;::::1;::::0;::::1;::::0;23158:8;1509:14:1;1502:22;1484:41;;1472:2;1457:18;;1344:187;23182:38:0::1;;;;;;;;23057:171:::0;:::o;22149:110::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;22225:12:::1;:26:::0;22149:110::o;20742:136::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20833:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;20833:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20742:136::o;6285:91::-;6491:4;6526:5;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6347:13:0::1;6363:5;6347:13:::0;;;:8:::1;:13;::::0;;;;:21;;-1:-1:-1;;6347:21:0::1;::::0;;6285:91::o;22533:103::-;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;22606:10:::1;:22:::0;22533:103::o;6832:167::-;6491:4;6526:5;-1:-1:-1;;;;;6526:5:0;5839:10;6515:16;5823:38;;;;-1:-1:-1;;;5823:38:0;;;;;;;:::i;:::-;6908:5:::1;:11:::0;;-1:-1:-1;;;;;;6908:11:0::1;-1:-1:-1::0;;;;;6908:11:0;::::1;::::0;;::::1;::::0;;6930:13;;;-1:-1:-1;6930:13:0::1;::::0;;;;;;;;:20;;-1:-1:-1;;6930:20:0::1;::::0;;::::1;::::0;;;6966:25;;2048:51:1;;;6966:25:0::1;::::0;2021:18:1;6966:25:0::1;1886:219:1::0;20602:128:0;6000:24;6013:10;6000:12;:24::i;:::-;5992:48;;;;-1:-1:-1;;;5992:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20690:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;20690:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20602:128::o;1170:181::-;1228:7;;1260:5;1264:1;1260;:5;:::i;:::-;1248:17;;1289:1;1284;:6;;1276:46;;;;-1:-1:-1;;;1276:46:0;;7494:2:1;1276:46:0;;;7476:21:1;7533:2;7513:18;;;7506:30;7572:29;7552:18;;;7545:57;7619:18;;1276:46:0;7292:351:1;6610:103:0;-1:-1:-1;;;;;6692:13:0;6668:4;6692:13;;;:8;:13;;;;;;;;;6610:103::o;20120:337::-;-1:-1:-1;;;;;20213:19:0;;20205:68;;;;-1:-1:-1;;;20205:68:0;;7850:2:1;20205:68:0;;;7832:21:1;7889:2;7869:18;;;7862:30;7928:34;7908:18;;;7901:62;-1:-1:-1;;;7979:18:1;;;7972:34;8023:19;;20205:68:0;7648:400:1;20205:68:0;-1:-1:-1;;;;;20292:21:0;;20284:68;;;;-1:-1:-1;;;20284:68:0;;8255:2:1;20284:68:0;;;8237:21:1;8294:2;8274:18;;;8267:30;8333:34;8313:18;;;8306:62;-1:-1:-1;;;8384:18:1;;;8377:32;8426:19;;20284:68:0;8053:398:1;20284:68:0;-1:-1:-1;;;;;20365:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20417:32;;2491:25:1;;;20417:32:0;;2464:18:1;20417:32:0;;;;;;;20120:337;;;:::o;25280:1834::-;25367:4;-1:-1:-1;;;;;25394:20:0;;25386:70;;;;-1:-1:-1;;;25386:70:0;;8658:2:1;25386:70:0;;;8640:21:1;8697:2;8677:18;;;8670:30;8736:34;8716:18;;;8709:62;-1:-1:-1;;;8787:18:1;;;8780:35;8832:19;;25386:70:0;8456:401:1;25386:70:0;-1:-1:-1;;;;;25475:23:0;;25467:71;;;;-1:-1:-1;;;25467:71:0;;9064:2:1;25467:71:0;;;9046:21:1;9103:2;9083:18;;;9076:30;9142:34;9122:18;;;9115:62;-1:-1:-1;;;9193:18:1;;;9186:33;9236:19;;25467:71:0;8862:399:1;25467:71:0;-1:-1:-1;;;;;25555:16:0;;;;;;:8;:16;;;;;;;;25554:17;:41;;;;-1:-1:-1;;;;;;25576:19:0;;;;;;:8;:19;;;;;;;;25575:20;25554:41;25551:115;;;25619:11;;-1:-1:-1;;;25619:11:0;;;;25611:43;;;;-1:-1:-1;;;25611:43:0;;9468:2:1;25611:43:0;;;9450:21:1;9507:2;9487:18;;;9480:30;-1:-1:-1;;;9526:18:1;;;9519:50;9586:18;;25611:43:0;9266:344:1;25611:43:0;25681:16;;-1:-1:-1;;;25681:16:0;;;;25678:1429;;;25731:41;25746:6;25754:9;25765:6;25731:14;:41::i;:::-;25724:48;;;;25678:1429;-1:-1:-1;;;;;25828:23:0;;;;;;:15;:23;;;;;;;;25827:24;:55;;;;-1:-1:-1;;;;;;25856:26:0;;;;;;:15;:26;;;;;;;;25855:27;25827:55;25824:170;;;25921:12;;25911:6;:22;;25903:75;;;;-1:-1:-1;;;25903:75:0;;9817:2:1;25903:75:0;;;9799:21:1;9856:2;9836:18;;;9829:30;9895:34;9875:18;;;9868:62;-1:-1:-1;;;9946:18:1;;;9939:38;9994:19;;25903:75:0;9615:404:1;25903:75:0;26071:4;26022:28;19135:18;;;:9;:18;;;;;;26147:23;;26123:47;;;;;;;26203:44;;-1:-1:-1;26231:16:0;;-1:-1:-1;;;26231:16:0;;;;26230:17;26203:44;:69;;;;-1:-1:-1;;;;;;26252:20:0;;;;;;:12;:20;;;;;;;;26251:21;26203:69;:94;;;;-1:-1:-1;26276:21:0;;-1:-1:-1;;;26276:21:0;;;;26203:94;26199:305;;;26335:25;;-1:-1:-1;;;26335:25:0;;;;26332:97;;;26406:23;;26383:46;;26332:97;26448:36;26463:20;26448:14;:36::i;:::-;26540:53;;;;;;;;;;;-1:-1:-1;;;26540:53:0;;;;;;;;-1:-1:-1;;;;;26540:17:0;;-1:-1:-1;26540:17:0;;;:9;:17;;;;;;;;:53;;26562:6;;26540:21;:53::i;:::-;-1:-1:-1;;;;;26520:17:0;;;;;;:9;:17;;;;;;;;:73;;;;26633:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;26662:28:0;;;;;;:17;:28;;;;;;;;26633:57;26632:148;;26746:34;26754:6;26762:9;26773:6;26746:7;:34::i;:::-;26632:148;;;26737:6;26632:148;26800:16;;26610:170;;-1:-1:-1;;;;26800:16:0;;;;:51;;;;-1:-1:-1;;;;;;26821:30:0;;;;;;:19;:30;;;;;;;;26820:31;26800:51;26797:133;;;26919:10;;26878:37;26903:11;26878:20;26888:9;-1:-1:-1;;;;;19135:18:0;19108:7;19135:18;;;:9;:18;;;;;;;19042:119;26878:37;:51;;26870:60;;;;;;-1:-1:-1;;;;;26970:20:0;;;;;;:9;:20;;;;;;:37;;26995:11;26970:24;:37::i;:::-;-1:-1:-1;;;;;26947:20:0;;;;;;;:9;:20;;;;;;;:60;;;;27029:40;;;;;;;;;;27057:11;2491:25:1;;2479:2;2464:18;;2345:177;27029:40:0;;;;;;;;27091:4;27084:11;;;;;;;1503:192;1589:7;1625:12;1617:6;;;;1609:29;;;;-1:-1:-1;;;1609:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1649:9:0;1661:5;1665:1;1661;:5;:::i;:::-;1649:17;1503:192;-1:-1:-1;;;;;1503:192:0:o;1359:136::-;1417:7;1444:43;1448:1;1451;1444:43;;;;;;;;;;;;;;;;;:3;:43::i;27122:330::-;27252:53;;;;;;;;;;;-1:-1:-1;;;27252:53:0;;;;;;;;-1:-1:-1;;;;;27252:17:0;;27215:4;27252:17;;;:9;:17;;;;;;;:53;;27274:6;;27252:21;:53::i;:::-;-1:-1:-1;;;;;27232:17:0;;;;;;;:9;:17;;;;;;:73;;;;27339:20;;;;;;;:32;;27364:6;27339:24;:32::i;:::-;-1:-1:-1;;;;;27316:20:0;;;;;;;:9;:20;;;;;;;:55;;;;27387:35;;;;;;;;;;27415:6;2491:25:1;;2479:2;2464:18;;2345:177;27387:35:0;;;;;;;;-1:-1:-1;27440:4:0;27122:330;;;;;:::o;27460:1048::-;17326:16;:23;;-1:-1:-1;;;;17326:23:0;-1:-1:-1;;;17326:23:0;;;27597:24:::1;::::0;27576:15:::1;::::0;17326:23;;27564:65:::1;::::0;27627:1:::1;::::0;27564:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;27542:87:::0;-1:-1:-1;27640:21:0::1;27664:24;:7:::0;27542:87;27664:11:::1;:24::i;:::-;27640:48;;27701:31;27718:13;27701:16;:31::i;:::-;27853:15;::::0;27768:21:::1;::::0;27743:22:::1;::::0;27824:52:::1;::::0;27853:22:::1;::::0;27873:1:::1;27853:19;:22::i;:::-;27824:24;::::0;;:28:::1;:52::i;:::-;27802:74;;27897:26;27926:59;27983:1;27926:52;27966:11;27926:35;27945:15;;27926:14;:18;;:35;;;;:::i;:59::-;27897:88;;27996:21;28020:47;28055:11;28020:30;28039:10;;28020:14;:18;;:30;;;;:::i;:47::-;27996:71:::0;-1:-1:-1;28078:26:0::1;28107:57;27996:71:::0;28107:38:::1;:14:::0;28126:18;28107::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;28078:86:::0;-1:-1:-1;28180:22:0;;28177:104:::1;;28238:22;::::0;28217:64:::1;::::0;28238:22:::1;::::0;::::1;-1:-1:-1::0;;;;;28238:22:0::1;28262:18:::0;28217:20:::1;:64::i;:::-;28297:17:::0;;28294:89:::1;;28350:17;::::0;28329:54:::1;::::0;-1:-1:-1;;;;;28350:17:0::1;28369:13:::0;28329:20:::1;:54::i;:::-;28420:1;28399:18;:22;:41;;;;;28439:1;28425:11;:15;28399:41;28396:104;;;28455:45;28468:11;28481:18;28455:12;:45::i;:::-;-1:-1:-1::0;;17372:16:0;:24;;-1:-1:-1;;;;17372:24:0;;;-1:-1:-1;;;;;;27460:1048:0:o;29718:622::-;-1:-1:-1;;;;;29879:20:0;;29804:7;29879:20;;;:12;:20;;;;;;29804:7;;29879:20;;29876:223;;;29928:38;29962:3;29928:29;29939:17;;29928:6;:10;;:29;;;;:::i;:38::-;29916:50;;29876:223;;;-1:-1:-1;;;;;29996:23:0;;;;;;:12;:23;;;;;;;;29993:106;;;30048:39;30083:3;30048:30;30059:18;;30048:6;:10;;:30;;;;:::i;:39::-;30036:51;;29993:106;30122:13;;30119:173;;30197:4;30179:24;;;;:9;:24;;;;;;:39;;30208:9;30179:28;:39::i;:::-;30170:4;30152:24;;;;:9;:24;;;;;;;:66;;;;30238:42;;-1:-1:-1;;;;;30238:42:0;;;;;;;30270:9;2491:25:1;;2479:2;2464:18;;2345:177;30238:42:0;;;;;;;;30119:173;30311:21;:6;30322:9;30311:10;:21::i;1703:250::-;1761:7;1785:1;1790;1785:6;1781:47;;-1:-1:-1;1815:1:0;1808:8;;1781:47;1840:9;1852:5;1856:1;1852;:5;:::i;:::-;1840:17;-1:-1:-1;1885:1:0;1876:5;1880:1;1840:17;1876:5;:::i;:::-;:10;1868:56;;;;-1:-1:-1;;;1868:56:0;;10359:2:1;1868:56:0;;;10341:21:1;10398:2;10378:18;;;10371:30;10437:34;10417:18;;;10410:62;-1:-1:-1;;;10488:18:1;;;10481:31;10529:19;;1868:56:0;10157:397:1;1961:132:0;2019:7;2046:39;2050:1;2053;2046:39;;;;;;;;;;;;;;;;;:3;:39::i;28520:666::-;28670:16;;;28684:1;28670:16;;;;;;;;28646:21;;28670:16;;;;;;;;;;-1:-1:-1;28670:16:0;28646:40;;28715:4;28697;28702:1;28697:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28697:23:0;;;:7;;;;;;;;;;:23;;;;28741:15;;:22;;;-1:-1:-1;;;28741:22:0;;;;:15;;;;;:20;;:22;;;;;28697:7;;28741:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28731:4;28736:1;28731:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28731:32:0;;;:7;;;;;;;;;:32;28808:15;;28776:62;;28793:4;;28808:15;28826:11;28776:8;:62::i;:::-;28877:15;;:240;;-1:-1:-1;;;28877:240:0;;-1:-1:-1;;;;;28877:15:0;;;;:66;;:240;;28958:11;;28877:15;;29028:4;;29055;;29091:15;;28877:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29143:35;29160:11;29173:4;29143:35;;;;;;;:::i;:::-;;;;;;;;28575:611;28520:666;:::o;23509:126::-;23601:26;;-1:-1:-1;;;;;23601:18:0;;;:26;;;;;23620:6;;23601:26;;;;23620:6;23601:18;:26;;;;;;;;;;;;;;;;;;;29194:516;29374:15;;29342:62;;29359:4;;-1:-1:-1;;;;;29374:15:0;29392:11;29342:8;:62::i;:::-;29447:15;;:255;;-1:-1:-1;;;29447:255:0;;29519:4;29447:255;;;12554:34:1;12604:18;;;12597:34;;;29447:15:0;12647:18:1;;;12640:34;;;12690:18;;;12683:34;29651:10:0;12733:19:1;;;12726:44;29676:15:0;12786:19:1;;;12779:35;-1:-1:-1;;;;;29447:15:0;;;;:31;;29486:9;;12488:19:1;;29447:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29194:516;;:::o;2101:278::-;2187:7;2222:12;2215:5;2207:28;;;;-1:-1:-1;;;2207:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2246:9:0;2258:5;2262:1;2258;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:316::-;644:6;652;660;713:2;701:9;692:7;688:23;684:32;681:52;;;729:1;726;719:12;681:52;-1:-1:-1;;752:23:1;;;822:2;807:18;;794:32;;-1:-1:-1;873:2:1;858:18;;;845:32;;567:316;-1:-1:-1;567:316:1:o;888:131::-;-1:-1:-1;;;;;963:31:1;;953:42;;943:70;;1009:1;1006;999:12;1024:315;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:160::-;1601:20;;1657:13;;1650:21;1640:32;;1630:60;;1686:1;1683;1676:12;1630:60;1536:160;;;:::o;1701:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;1849:26;1865:9;1849:26;:::i;2527:180::-;2586:6;2639:2;2627:9;2618:7;2614:23;2610:32;2607:52;;;2655:1;2652;2645:12;2607:52;-1:-1:-1;2678:23:1;;2527:180;-1:-1:-1;2527:180:1:o;2712:315::-;2777:6;2785;2838:2;2826:9;2817:7;2813:23;2809:32;2806:52;;;2854:1;2851;2844:12;2806:52;2893:9;2880:23;2912:31;2937:5;2912:31;:::i;:::-;2962:5;-1:-1:-1;2986:35:1;3017:2;3002:18;;2986:35;:::i;:::-;2976:45;;2712:315;;;;;:::o;3032:456::-;3109:6;3117;3125;3178:2;3166:9;3157:7;3153:23;3149:32;3146:52;;;3194:1;3191;3184:12;3146:52;3233:9;3220:23;3252:31;3277:5;3252:31;:::i;:::-;3302:5;-1:-1:-1;3359:2:1;3344:18;;3331:32;3372:33;3331:32;3372:33;:::i;:::-;3032:456;;3424:7;;-1:-1:-1;;;3478:2:1;3463:18;;;;3450:32;;3032:456::o;3701:247::-;3760:6;3813:2;3801:9;3792:7;3788:23;3784:32;3781:52;;;3829:1;3826;3819:12;3781:52;3868:9;3855:23;3887:31;3912:5;3887:31;:::i;4142:388::-;4210:6;4218;4271:2;4259:9;4250:7;4246:23;4242:32;4239:52;;;4287:1;4284;4277:12;4239:52;4326:9;4313:23;4345:31;4370:5;4345:31;:::i;:::-;4395:5;-1:-1:-1;4452:2:1;4437:18;;4424:32;4465:33;4424:32;4465:33;:::i;:::-;4517:7;4507:17;;;4142:388;;;;;:::o;4795:380::-;4874:1;4870:12;;;;4917;;;4938:61;;4992:4;4984:6;4980:17;4970:27;;4938:61;5045:2;5037:6;5034:14;5014:18;5011:38;5008:161;;5091:10;5086:3;5082:20;5079:1;5072:31;5126:4;5123:1;5116:15;5154:4;5151:1;5144:15;5008:161;;4795:380;;;:::o;5180:335::-;5382:2;5364:21;;;5421:2;5401:18;;;5394:30;-1:-1:-1;;;5455:2:1;5440:18;;5433:41;5506:2;5491:18;;5180:335::o;5520:329::-;5722:2;5704:21;;;5761:1;5741:18;;;5734:29;-1:-1:-1;;;5794:2:1;5779:18;;5772:36;5840:2;5825:18;;5520:329::o;5854:127::-;5915:10;5910:3;5906:20;5903:1;5896:31;5946:4;5943:1;5936:15;5970:4;5967:1;5960:15;5986:168;6026:7;6092:1;6088;6084:6;6080:14;6077:1;6074:21;6069:1;6062:9;6055:17;6051:45;6048:71;;;6099:18;;:::i;:::-;-1:-1:-1;6139:9:1;;5986:168::o;6159:217::-;6199:1;6225;6215:132;;6269:10;6264:3;6260:20;6257:1;6250:31;6304:4;6301:1;6294:15;6332:4;6329:1;6322:15;6215:132;-1:-1:-1;6361:9:1;;6159:217::o;6381:251::-;6451:6;6504:2;6492:9;6483:7;6479:23;6475:32;6472:52;;;6520:1;6517;6510:12;6472:52;6552:9;6546:16;6571:31;6596:5;6571:31;:::i;7162:125::-;7227:9;;;7248:10;;;7245:36;;;7261:18;;:::i;10024:128::-;10091:9;;;10112:11;;;10109:37;;;10126:18;;:::i;10691:127::-;10752:10;10747:3;10743:20;10740:1;10733:31;10783:4;10780:1;10773:15;10807:4;10804:1;10797:15;10823:461;10876:3;10914:5;10908:12;10941:6;10936:3;10929:19;10967:4;10996:2;10991:3;10987:12;10980:19;;11033:2;11026:5;11022:14;11054:1;11064:195;11078:6;11075:1;11072:13;11064:195;;;11143:13;;-1:-1:-1;;;;;11139:39:1;11127:52;;11199:12;;;;11234:15;;;;11175:1;11093:9;11064:195;;;-1:-1:-1;11275:3:1;;10823:461;-1:-1:-1;;;;;10823:461:1:o;11289:582::-;11588:6;11577:9;11570:25;11631:6;11626:2;11615:9;11611:18;11604:34;11674:3;11669:2;11658:9;11654:18;11647:31;11551:4;11695:57;11747:3;11736:9;11732:19;11724:6;11695:57;:::i;:::-;-1:-1:-1;;;;;11788:32:1;;;;11783:2;11768:18;;11761:60;-1:-1:-1;11852:3:1;11837:19;11830:35;11687:65;11289:582;-1:-1:-1;;;11289:582:1:o;11876:332::-;12083:6;12072:9;12065:25;12126:2;12121;12110:9;12106:18;12099:30;12046:4;12146:56;12198:2;12187:9;12183:18;12175:6;12146:56;:::i;:::-;12138:64;11876:332;-1:-1:-1;;;;11876:332:1:o;12825:306::-;12913:6;12921;12929;12982:2;12970:9;12961:7;12957:23;12953:32;12950:52;;;12998:1;12995;12988:12;12950:52;13027:9;13021:16;13011:26;;13077:2;13066:9;13062:18;13056:25;13046:35;;13121:2;13110:9;13106:18;13100:25;13090:35;;12825:306;;;;;:::o
Swarm Source
ipfs://cbb750fc6f333ce36a7a757827b81b37639618734663a6a708ad27faaf31bb1c
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.