ERC-20
Overview
Max Total Supply
1,000,000,000 SHINJURAI
Holders
163
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
10,169,812.210394625 SHINJURAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Shinjurai
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-29 */ /* .__ .__ __ .__ _____| |__ |__| ____ |__|__ ______________ |__| / ___/ | \| |/ \ | | | \_ __ \__ \ | | \___ \| Y \ | | \ | | | /| | \// __ \| | /____ >___| /__|___| /\__| |____/ |__| (____ /__| \/ \/ \/\______| \/ ___ ._________________________________|| |_________________________________________________________________________________________________________, |WMWMWMWWMWMWMWMWMWMWWMWMWMWMWMWMW|| |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/ `---------------------------------|| |-------------------------------------------------------------------------------------------------------/ --- */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; 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); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // pragma solidity >=0.5.0; 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; } // pragma solidity >=0.5.0; 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; } // pragma solidity >=0.6.2; 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); } // pragma solidity >=0.6.2; 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 Shinjurai is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; address payable public marketingWallet; address payable public passiveWallet; address payable public treasuryWallet; address payable public devWallet; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isSniper; uint256 public launchedAt = 0; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isMaxWalletExempt; mapping (address => bool) private _isExcluded; mapping (address => bool) private _isTrusted; mapping (address => bool) public isTimelockExempt; address[] private _excluded; address DEAD = 0x000000000000000000000000000000000000dEaD; uint8 private _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1000000000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = "Shinjurai"; string private _symbol = "SHINJURAI"; uint256 public _maxWalletToken = _tTotal.div(100).mul(2); // 2% uint256 public _maxBuyLimit = _tTotal.div(1000).mul(10); // 1% uint256 public _maxSellLimit = _tTotal.div(1000).mul(10); // 1% uint256 public _buyLiquidityFee = 20; //2% uint256 public _buyDevFee = 20; // 2% uint256 public _buyMarketingFee = 50; // 5% uint256 public _buyReflectionFee = 10; // 1% uint256 public _buyPassiveFee = 10; // 1% uint256 public _buyTreasuryFee = 10; // 1% uint256 public _sellLiquidityFee = 80; // 8% for first 24 hours uint256 public _sellMarketingFee = 80; // 8% for first 24 hours uint256 public _sellDevFee = 20; // 2% uint256 public _sellReflectionFee = 10; // 1% uint256 public _sellTreasuryFee = 30; // 3% for first 24 hours uint256 public _sellPassiveFee = 30; // 3% for first 24 hours uint256 private passiveFee = _buyPassiveFee; uint256 private treasuryFee = _buyTreasuryFee; uint256 private liquidityFee = _buyLiquidityFee; uint256 private marketingFee = _buyMarketingFee; uint256 private devFee = _buyDevFee; uint256 private reflectionFee=_buyReflectionFee; bool public cooldownEnabled = false; uint256 public cooldownTimerInterval = 1 hours; mapping (address => uint) private cooldownTimer; uint256 private totalFee = liquidityFee.add(marketingFee).add(devFee).add(passiveFee).add(treasuryFee); uint256 private currenttotalFee = totalFee; uint256 public swapThreshold = _tTotal.div(10000).mul(5); //0.05% IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool inSwap; bool public tradingOpen = false; bool public zeroBuyTaxmode = false; bool private antiBotmode = true; event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor (address payable _marketingWallet, address payable _treasuryWallet, address payable _devWallet, address payable _passiveWallet) { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingWallet] = true; _isExcludedFromFee[_treasuryWallet] = true; _isExcludedFromFee[_devWallet] = true; _isExcludedFromFee[_passiveWallet] = true; _isMaxWalletExempt[owner()] = true; _isMaxWalletExempt[address(this)] = true; _isMaxWalletExempt[uniswapV2Pair] = true; _isMaxWalletExempt[DEAD] = true; _isMaxWalletExempt[_marketingWallet] = true; _isMaxWalletExempt[_treasuryWallet] = true; _isMaxWalletExempt[_devWallet] = true; _isMaxWalletExempt[_passiveWallet] = true; _isTrusted[owner()] = true; _isTrusted[uniswapV2Pair] = true; isTimelockExempt[owner()] = true; isTimelockExempt[address(this)] = true; isTimelockExempt[0x000000000000000000000000000000000000dEaD] = true; marketingWallet = _marketingWallet; treasuryWallet = _treasuryWallet; devWallet = _devWallet; passiveWallet = _passiveWallet; emit Transfer(address(0), _msgSender(), _tTotal); } function openTrading(bool _status) external onlyOwner() { tradingOpen = _status; excludeFromReward(address(this)); excludeFromReward(uniswapV2Pair); excludeFromReward(DEAD); excludeFromReward(owner()); if(tradingOpen && launchedAt == 0){ launchedAt = block.number; } } function setZeroBuyTaxmode(bool _status) external onlyOwner() { zeroBuyTaxmode=_status; } function setAntiBotmode(bool _status) external onlyOwner() { antiBotmode=_status; } function disableAntiBotmode() external onlyOwner() { antiBotmode=false; _maxWalletToken = _tTotal.div(1000).mul(2); //0.2% cooldownEnabled = true; swapTokenswithoutImpact(balanceOf(address(this))); } function setNewRouter(address newRouter) external onlyOwner() { IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter); address get_pair = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { uniswapV2Pair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { uniswapV2Pair = get_pair; } uniswapV2Router = _newRouter; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeFromReward(address account) public onlyOwner() { if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } 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 _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!_isSniper[from], "You have no power here!"); if (from!= owner() && to!= owner()) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading bool takeFee = false; //take fee only on swaps if ( (from==uniswapV2Pair || to==uniswapV2Pair) && !(_isExcludedFromFee[from] || _isExcludedFromFee[to]) ) { require(amount<=_maxBuyLimit,"Amount Greater than max sell limit"); takeFee = true; } if(launchedAt>0 && (!_isMaxWalletExempt[to] && from!= owner())){ require(amount+ balanceOf(to)<=_maxWalletToken, "Total Holding is currently limited"); } if(cooldownEnabled && to == uniswapV2Pair && !isTimelockExempt[from]){ require(cooldownTimer[from] < block.timestamp, "Please wait for cooldown between sells"); cooldownTimer[from] = block.timestamp + cooldownTimerInterval; } currenttotalFee=totalFee; reflectionFee=_buyReflectionFee; if(tradingOpen && to == uniswapV2Pair) { //sell require(amount<=_maxSellLimit,"Amount Greater than max sell limit"); currenttotalFee= _sellLiquidityFee.add(_sellMarketingFee).add(_sellDevFee).add(_sellTreasuryFee).add(_sellPassiveFee); reflectionFee=_sellReflectionFee; } if(zeroBuyTaxmode){ if(tradingOpen && from == uniswapV2Pair) { //buys currenttotalFee=0; } } //sell if (!inSwap && tradingOpen && to == uniswapV2Pair) { uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance>=swapThreshold){ contractTokenBalance = swapThreshold; swapTokens(contractTokenBalance); } } _tokenTransfer(from,to,amount,takeFee); } function swapTokens(uint256 contractTokenBalance) private lockTheSwap { uint256 amountToLiquify = contractTokenBalance .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); swapTokensForEth(amountToSwap); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH .mul(liquidityFee) .div(totalETHFee) .div(2); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div( totalETHFee ); uint256 amountETHPassive = amountETH.mul(passiveFee).div( totalETHFee ); uint256 amountETHTreasury = amountETH.mul(treasuryFee).div( totalETHFee ); //Send to marketing wallet and dev wallet uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(amountETHMarketing,marketingWallet); sendETHToFee(amountETHPassive,passiveWallet); sendETHToFee(amountETHTreasury,treasuryWallet); sendETHToFee(amountETHdev,devWallet); } if (amountToLiquify > 0) { addLiquidity(amountToLiquify,amountETHLiquidity); } } function sendETHToFee(uint256 amount,address payable wallet) private { wallet.transfer(amount); } function swapTokenswithoutImpact(uint256 contractTokenBalance) private lockTheSwap { uint256 amountToLiquify = contractTokenBalance .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); swapTokensForEth(amountToSwap); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH .mul(liquidityFee) .div(totalETHFee) .div(2); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div( totalETHFee ); uint256 amountETHPassive = amountETH.mul(passiveFee).div(totalETHFee); uint256 amountETHTreasury = amountETH.mul(treasuryFee).div(totalETHFee); //Send to marketing wallet and dev wallet uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(amountETHMarketing,marketingWallet); sendETHToFee(amountETHPassive,passiveWallet); sendETHToFee(amountETHTreasury,treasuryWallet); sendETHToFee(amountETHdev,devWallet); } if (amountToLiquify > 0) { addLiquidity(amountToLiquify,amountETHLiquidity); } _transfer(uniswapV2Pair,DEAD,contractTokenBalance); IUniswapV2Pair(uniswapV2Pair).sync(); } 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 owner(), block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private { uint256 _previousReflectionFee=reflectionFee; uint256 _previousTotalFee=currenttotalFee; if(!takeFee){ reflectionFee = 0; currenttotalFee=0; } if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if(!takeFee){ reflectionFee = _previousReflectionFee; currenttotalFee=_previousTotalFee; } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate()); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) { uint256 tFee = calculateTaxFee(tAmount); uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity); return (tTransferAmount, tFee, tLiquidity); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } // enable cooldown between sells function changeCooldownSettings(bool newStatus, uint256 newInterval) external onlyOwner { require(newInterval <= 24 hours, "Exceeds the limit"); cooldownEnabled = newStatus; cooldownTimerInterval = newInterval; } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeLiquidity(uint256 tLiquidity) private { uint256 currentRate = _getRate(); uint256 rLiquidity = tLiquidity.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity); if(_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity); } function calculateTaxFee(uint256 _amount) private view returns (uint256) { return _amount.mul(reflectionFee).div( 10**3 ); } function calculateLiquidityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(currenttotalFee).div( 10**3 ); } function excludeMultiple(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function excludeFromFee(address[] calldata addresses) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { _isExcludedFromFee[addresses[i]] = true; } } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function setWallets(address _marketingWallet,address _passiveWallet, address _treasuryWallet, address _devWallet) external onlyOwner() { marketingWallet = payable(_marketingWallet); devWallet = payable(_devWallet); passiveWallet = payable(_passiveWallet); treasuryWallet = payable(_treasuryWallet); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function isLocked(address account) public view returns (bool) { return _isSniper[account]; } function lockWallets(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { if(!_isTrusted[addresses[i]]){ _isSniper[addresses[i]] = status; } } } function setIsTimelockExempt(address holder, bool exempt) external onlyOwner { isTimelockExempt[holder] = exempt; } function manage_trusted(address[] calldata addresses) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { _isTrusted[addresses[i]]=true; } } function withDrawLeftoverETH(address payable receipient) public onlyOwner { receipient.transfer(address(this).balance); } function withdrawStuckTokens(IERC20 token, address to) public onlyOwner { uint256 balance = token.balanceOf(address(this)); token.transfer(to, balance); } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner() { _maxWalletToken = _tTotal.div(1000).mul(maxWallPercent_base1000); } function setMaxTxPercent_base1000(uint256 maxSellPercent_base1000, uint256 maxBuyPercent_base1000) external onlyOwner() { _maxBuyLimit = _tTotal.div(1000).mul(maxBuyPercent_base1000); _maxSellLimit = _tTotal.div(1000).mul(maxSellPercent_base1000); } function setMaxWalletExempt(address _addr) external onlyOwner { _isMaxWalletExempt[_addr] = true; } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; } function airDrop(address[] calldata newholders, uint256[] calldata amounts) external { uint256 iterator = 0; require(_isExcludedFromFee[_msgSender()], "Airdrop can only be done by excluded from fee"); require(newholders.length == amounts.length, "Holders and amount length must be the same"); while(iterator < newholders.length){ _tokenTransfer(_msgSender(), newholders[iterator], amounts[iterator] * 10**9, false); iterator += 1; } } function setTaxesBuy(uint256 _reflectionFee, uint256 _liquidityFee, uint256 _marketingFee,uint256 _devFee,uint256 _passiveFee, uint256 _treasuryFee) external onlyOwner { _buyLiquidityFee = _liquidityFee; _buyMarketingFee = _marketingFee; _buyDevFee = _devFee; _buyReflectionFee= _reflectionFee; _buyPassiveFee = _passiveFee; _buyTreasuryFee = _treasuryFee; reflectionFee= _reflectionFee; liquidityFee = _liquidityFee; devFee = _devFee; marketingFee = _marketingFee; passiveFee = _passiveFee; treasuryFee = _treasuryFee; totalFee = liquidityFee.add(marketingFee).add(devFee).add(passiveFee).add(treasuryFee); } function setTaxesSell(uint256 _reflectionFee,uint256 _liquidityFee, uint256 _marketingFee,uint256 _devFee, uint256 _passiveFee, uint256 _treasuryFee) external onlyOwner { _sellLiquidityFee = _liquidityFee; _sellMarketingFee = _marketingFee; _sellDevFee = _devFee; _sellReflectionFee= _reflectionFee; _sellPassiveFee = _passiveFee; _sellTreasuryFee = _treasuryFee; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"_marketingWallet","type":"address"},{"internalType":"address payable","name":"_treasuryWallet","type":"address"},{"internalType":"address payable","name":"_devWallet","type":"address"},{"internalType":"address payable","name":"_passiveWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"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":"_buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_buyPassiveFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyReflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevFee","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":"_sellPassiveFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellReflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"newholders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"},{"internalType":"uint256","name":"newInterval","type":"uint256"}],"name":"changeCooldownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableAntiBotmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTimelockExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"lockWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"manage_trusted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"passiveWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setAntiBotmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSellPercent_base1000","type":"uint256"},{"internalType":"uint256","name":"maxBuyPercent_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_passiveFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"}],"name":"setTaxesBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_passiveFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"}],"name":"setTaxesSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_passiveWallet","type":"address"},{"internalType":"address","name":"_treasuryWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setZeroBuyTaxmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"receipient","type":"address"}],"name":"withDrawLeftoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroBuyTaxmode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600b55601280546001600160a81b0319167409000000000000000000000000000000000000dead17908190556200004a9060ff600160a01b90910416600a62000a75565b6200005a90633b9aca0062000a86565b60138190556200006d9060001962000abe565b6200007b9060001962000ad5565b601455604080518082019091526009808252685368696e6a7572616960b81b6020909201918252620000b091601691620008bc565b50604080518082019091526009808252685348494e4a5552414960b81b6020909201918252620000e391601791620008bc565b506200011b60026200010760646013546200073c60201b620022ce1790919060201c565b6200078f60201b620023101790919060201c565b60185562000142600a620001076103e86013546200073c60201b620022ce1790919060201c565b60195562000169600a620001076103e86013546200073c60201b620022ce1790919060201c565b601a556014601b819055601c8190556032601d819055600a601e818155601f829055602082815560506021819055602255602385905560248390556025829055602691909155602782905560288290556029849055602a839055602b849055602c829055602d805460ff19169055610e10602e55620002159391926200020192849284928391839190620023926200081d821b17901c565b6200081d60201b620023921790919060201c565b603055603054603155620002426005620001076127106013546200073c60201b620022ce1790919060201c565b6032556034805462ffffff60a81b1916600160b81b1790553480156200026757600080fd5b5060405162004c2a38038062004c2a8339810160408190526200028a9162000b08565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506014543360009081526007602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa15801562000332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000358919062000b70565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cc919062000b70565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000440919062000b70565b603480546001600160a01b03199081166001600160a01b0393841617909155603380549091169183169190911790556001600c6000620004886000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600c909352818320805485166001908117909155898216845282842080548616821790558882168452828420805486168217905587821684528284208054861682179055908616835290822080549093168117909255600d90620005256000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600d909352818320805485166001908117909155603454821684528284208054861682179055601254821684528284208054861682179055898216845282842080548616821790558882168452828420805486168217905587821684528284208054861682179055908616835290822080549093168117909255600f90620005e66000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556034549091168152600f909252812080549092166001908117909255601090620006466000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526010845282812080548616600190811790915561dead82527f9e93e1db4a1f807cc22b2aecf4deeb0bf5745f1ecb319e87c68c5624c0fa6b69805490961617909455600380548a83166001600160a01b031991821617909155600580548a841690831617905560068054898416908316179055600480549288169290911691909117905560135490519081523392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505062000c56565b60006200078683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200088060201b60201c565b90505b92915050565b600082600003620007a35750600062000789565b6000620007b1838562000a86565b905082620007c0858362000b90565b14620007865760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b6000806200082c838562000ba7565b905083811015620007865760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000814565b60008183620008a45760405162461bcd60e51b815260040162000814919062000bc2565b506000620008b3848662000b90565b95945050505050565b828054620008ca9062000c1a565b90600052602060002090601f016020900481019282620008ee576000855562000939565b82601f106200090957805160ff191683800117855562000939565b8280016001018555821562000939579182015b82811115620009395782518255916020019190600101906200091c565b50620009479291506200094b565b5090565b5b808211156200094757600081556001016200094c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620009b95781600019048211156200099d576200099d62000962565b80851615620009ab57918102915b93841c93908002906200097d565b509250929050565b600082620009d25750600162000789565b81620009e15750600062000789565b8160018114620009fa576002811462000a055762000a25565b600191505062000789565b60ff84111562000a195762000a1962000962565b50506001821b62000789565b5060208310610133831016604e8410600b841016171562000a4a575081810a62000789565b62000a56838362000978565b806000190482111562000a6d5762000a6d62000962565b029392505050565b60006200078660ff841683620009c1565b600081600019048311821515161562000aa35762000aa362000962565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262000ad05762000ad062000aa8565b500690565b60008282101562000aea5762000aea62000962565b500390565b6001600160a01b038116811462000b0557600080fd5b50565b6000806000806080858703121562000b1f57600080fd5b845162000b2c8162000aef565b602086015190945062000b3f8162000aef565b604086015190935062000b528162000aef565b606086015190925062000b658162000aef565b939692955090935050565b60006020828403121562000b8357600080fd5b8151620007868162000aef565b60008262000ba25762000ba262000aa8565b500490565b6000821982111562000bbd5762000bbd62000962565b500190565b600060208083528351808285015260005b8181101562000bf15785810183015185820160400152820162000bd3565b8181111562000c04576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c9082168062000c2f57607f821691505b60208210810362000c5057634e487b7160e01b600052602260045260246000fd5b50919050565b613fc48062000c666000396000f3fe60806040526004361061041f5760003560e01c806365216a411161021e57806395d89b4111610123578063d628df9c116100ab578063eafb5a3c1161007a578063eafb5a3c14610c4c578063f259c57b14610c6c578063f2fde38b14610c8c578063f9f2907d14610cac578063ffb54a9914610ccc57600080fd5b8063d628df9c14610bba578063dc44b6a014610bd0578063dd62ed3e14610be6578063ea2f0b3714610c2c57600080fd5b8063bf56b371116100f2578063bf56b37114610b42578063c5d2418914610b58578063c860795214610b6e578063c9cf778914610b84578063d20e81ee14610b9a57600080fd5b806395d89b4114610ad3578063a457c2d714610ae8578063a9059cbb14610b08578063a985ceef14610b2857600080fd5b80637d5d3944116101a657806388f820201161017557806388f8202014610a1c5780638da5cb5b14610a555780638e3d605814610a735780638ea5220f14610a935780638f4590d214610ab357600080fd5b80637d5d3944146109b057806383672f3e146109c657806384530c46146109e657806388790a6814610a0657600080fd5b8063722b62ad116101ed578063722b62ad1461092e578063743942b6146109445780637598f8bc1461096457806375f0a8741461097a57806378109e541461099a57600080fd5b806365216a41146108b957806370a08231146108d9578063715018a6146108f957806371b9189c1461090e57600080fd5b80632dd5efe7116103245780634549b039116102ac5780634b01547f1161027b5780634b01547f1461081357806350af449e1461083357806350db71fb1461086357806352390c021461088357806362015852146108a357600080fd5b80634549b0391461077a5780634626402b1461079a57806349bd5a5e146107ba5780634a4fbeec146107da57600080fd5b806337533c91116102f357806337533c91146106ef57806339509351146107045780633bd5d173146107245780633ddf65ab14610744578063401aa5c01461076457600080fd5b80632dd5efe71461066d578063313ce5671461068d57806334a2a67d146106b95780633685d419146106cf57600080fd5b8063207a3c47116103a757806325b86edf1161037657806325b86edf146105d65780632691bc80146105f6578063297d50c5146106175780632a9b80721461062d5780632d8381191461064d57600080fd5b8063207a3c471461056a5780632378cc6d1461058057806323b872dd146105a057806324fcf8cf146105c057600080fd5b8063095ea7b3116103ee578063095ea7b3146104b85780630d45c0e3146104e857806313114a9d146105085780631694505e1461051d57806318160ddd1461055557600080fd5b80630445b6671461042b57806306485a951461045457806306fdde031461047657806309302dc61461049857600080fd5b3661042657005b600080fd5b34801561043757600080fd5b5061044160325481565b6040519081526020015b60405180910390f35b34801561046057600080fd5b5061047461046f366004613909565b610ced565b005b34801561048257600080fd5b5061048b610de2565b60405161044b9190613960565b3480156104a457600080fd5b506104746104b33660046139b5565b610e74565b3480156104c457600080fd5b506104d86104d33660046139e3565b610ec5565b604051901515815260200161044b565b3480156104f457600080fd5b50610474610503366004613a0f565b610edc565b34801561051457600080fd5b50601554610441565b34801561052957600080fd5b5060335461053d906001600160a01b031681565b6040516001600160a01b03909116815260200161044b565b34801561056157600080fd5b50601354610441565b34801561057657600080fd5b5061044160195481565b34801561058c57600080fd5b5061047461059b366004613a2d565b610f64565b3480156105ac57600080fd5b506104d86105bb366004613a4f565b610fc8565b3480156105cc57600080fd5b5061044160255481565b3480156105e257600080fd5b506104746105f1366004613a90565b611031565b34801561060257600080fd5b506034546104d890600160b01b900460ff1681565b34801561062357600080fd5b5061044160265481565b34801561063957600080fd5b50610474610648366004613ac9565b61113d565b34801561065957600080fd5b506104416106683660046139b5565b6111ec565b34801561067957600080fd5b50610474610688366004613ae6565b611270565b34801561069957600080fd5b50601254600160a01b900460ff1660405160ff909116815260200161044b565b3480156106c557600080fd5b50610441601f5481565b3480156106db57600080fd5b506104746106ea366004613ae6565b6112be565b3480156106fb57600080fd5b50610474611474565b34801561071057600080fd5b506104d861071f3660046139e3565b6114e4565b34801561073057600080fd5b5061047461073f3660046139b5565b61151a565b34801561075057600080fd5b5061047461075f366004613ac9565b611604565b34801561077057600080fd5b50610441601e5481565b34801561078657600080fd5b50610441610795366004613b03565b61164c565b3480156107a657600080fd5b5060055461053d906001600160a01b031681565b3480156107c657600080fd5b5060345461053d906001600160a01b031681565b3480156107e657600080fd5b506104d86107f5366004613ae6565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561081f57600080fd5b5061047461082e366004613ac9565b6116d9565b34801561083f57600080fd5b506104d861084e366004613ae6565b60106020526000908152604090205460ff1681565b34801561086f57600080fd5b5061047461087e366004613b28565b611721565b34801561088f57600080fd5b5061047461089e366004613ae6565b611776565b3480156108af57600080fd5b50610441601c5481565b3480156108c557600080fd5b506104746108d4366004613b56565b611860565b3480156108e557600080fd5b506104416108f4366004613ae6565b6119b2565b34801561090557600080fd5b50610474611a11565b34801561091a57600080fd5b50610474610929366004613bc2565b611a85565b34801561093a57600080fd5b50610441602e5481565b34801561095057600080fd5b5061047461095f366004613ae6565b611b24565b34801561097057600080fd5b5061044160245481565b34801561098657600080fd5b5060035461053d906001600160a01b031681565b3480156109a657600080fd5b5061044160185481565b3480156109bc57600080fd5b50610441601a5481565b3480156109d257600080fd5b506104746109e1366004613c04565b611b83565b3480156109f257600080fd5b50610474610a01366004613bc2565b611bfd565b348015610a1257600080fd5b5061044160215481565b348015610a2857600080fd5b506104d8610a37366004613ae6565b6001600160a01b03166000908152600e602052604090205460ff1690565b348015610a6157600080fd5b506000546001600160a01b031661053d565b348015610a7f57600080fd5b5060045461053d906001600160a01b031681565b348015610a9f57600080fd5b5060065461053d906001600160a01b031681565b348015610abf57600080fd5b50610474610ace366004613a2d565b611c97565b348015610adf57600080fd5b5061048b611ce1565b348015610af457600080fd5b506104d8610b033660046139e3565b611cf0565b348015610b1457600080fd5b506104d8610b233660046139e3565b611d3f565b348015610b3457600080fd5b50602d546104d89060ff1681565b348015610b4e57600080fd5b50610441600b5481565b348015610b6457600080fd5b50610441601d5481565b348015610b7a57600080fd5b5061044160225481565b348015610b9057600080fd5b5061044160235481565b348015610ba657600080fd5b50610474610bb5366004613c60565b611d4c565b348015610bc657600080fd5b5061044160205481565b348015610bdc57600080fd5b50610441601b5481565b348015610bf257600080fd5b50610441610c01366004613a90565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610c3857600080fd5b50610474610c47366004613ae6565b611dd5565b348015610c5857600080fd5b50610474610c67366004613ae6565b611e20565b348015610c7857600080fd5b50610474610c87366004613ae6565b61214c565b348015610c9857600080fd5b50610474610ca7366004613ae6565b61219a565b348015610cb857600080fd5b50610474610cc7366004613c60565b612284565b348015610cd857600080fd5b506034546104d890600160a81b900460ff1681565b6000546001600160a01b03163314610d205760405162461bcd60e51b8152600401610d1790613ca3565b60405180910390fd5b60005b82811015610ddc57600f6000858584818110610d4157610d41613cd8565b9050602002016020810190610d569190613ae6565b6001600160a01b0316815260208101919091526040016000205460ff16610dcc5781600a6000868685818110610d8e57610d8e613cd8565b9050602002016020810190610da39190613ae6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b610dd581613d04565b9050610d23565b50505050565b606060168054610df190613d1d565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1d90613d1d565b8015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b820191906000526020600020905b815481529060010190602001808311610e4d57829003601f168201915b5050505050905090565b6000546001600160a01b03163314610e9e5760405162461bcd60e51b8152600401610d1790613ca3565b610ebf81610eb96103e86013546122ce90919063ffffffff16565b90612310565b60185550565b6000610ed23384846123f1565b5060015b92915050565b6000546001600160a01b03163314610f065760405162461bcd60e51b8152600401610d1790613ca3565b62015180811115610f4d5760405162461bcd60e51b8152602060048201526011602482015270115e18d959591cc81d1a19481b1a5b5a5d607a1b6044820152606401610d17565b602d805460ff191692151592909217909155602e55565b6000546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610d1790613ca3565b610fa981610eb96103e86013546122ce90919063ffffffff16565b601955601354610fc1908390610eb9906103e86122ce565b601a555050565b6000610fd5848484612515565b611027843361102285604051806060016040528060288152602001613f42602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190612aae565b6123f1565b5060019392505050565b6000546001600160a01b0316331461105b5760405162461bcd60e51b8152600401610d1790613ca3565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c69190613d57565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015611119573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190613d70565b6000546001600160a01b031633146111675760405162461bcd60e51b8152600401610d1790613ca3565b6034805460ff60a81b1916600160a81b8315150217905561118730611776565b60345461119c906001600160a01b0316611776565b6012546111b1906001600160a01b0316611776565b6111c661089e6000546001600160a01b031690565b603454600160a81b900460ff1680156111df5750600b54155b156111e95743600b555b50565b60006014548211156112535760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610d17565b600061125d612ae8565b905061126983826122ce565b9392505050565b6000546001600160a01b0316331461129a5760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6000546001600160a01b031633146112e85760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b0381166000908152600e602052604090205460ff166113505760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610d17565b60005b60115481101561147057816001600160a01b03166011828154811061137a5761137a613cd8565b6000918252602090912001546001600160a01b03160361145e57601180546113a490600190613d8d565b815481106113b4576113b4613cd8565b600091825260209091200154601180546001600160a01b0390921691839081106113e0576113e0613cd8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600882526040808220829055600e90925220805460ff19169055601180548061143857611438613da4565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061146881613d04565b915050611353565b5050565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610d1790613ca3565b6034805460ff60b81b191690556013546114c190600290610eb9906103e86122ce565b601855602d805460ff191660011790556114e26114dd306119b2565b612b0b565b565b3360008181526009602090815260408083206001600160a01b03871684529091528120549091610ed29185906110229086612392565b336000818152600e602052604090205460ff161561158f5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610d17565b600061159a83612d24565b505050506001600160a01b0384166000908152600760205260409020549192506115c691905082612d73565b6001600160a01b0383166000908152600760205260409020556014546115ec9082612d73565b6014556015546115fc9084612392565b601555505050565b6000546001600160a01b0316331461162e5760405162461bcd60e51b8152600401610d1790613ca3565b60348054911515600160b81b0260ff60b81b19909216919091179055565b60006013548311156116a05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610d17565b816116bf5760006116b084612d24565b50939550610ed6945050505050565b60006116ca84612d24565b50929550610ed6945050505050565b6000546001600160a01b031633146117035760405162461bcd60e51b8152600401610d1790613ca3565b60348054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331461174b5760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117a05760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b038116600090815260076020526040902054156117fa576001600160a01b0381166000908152600760205260409020546117e0906111ec565b6001600160a01b0382166000908152600860205260409020555b6001600160a01b03166000818152600e60205260408120805460ff191660019081179091556011805491820181559091527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680180546001600160a01b0319169091179055565b336000908152600c602052604081205460ff166118d55760405162461bcd60e51b815260206004820152602d60248201527f41697264726f702063616e206f6e6c7920626520646f6e65206279206578636c60448201526c756465642066726f6d2066656560981b6064820152608401610d17565b8382146119375760405162461bcd60e51b815260206004820152602a60248201527f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260448201526965207468652073616d6560b01b6064820152608401610d17565b838110156119ab576119993386868481811061195557611955613cd8565b905060200201602081019061196a9190613ae6565b85858581811061197c5761197c613cd8565b90506020020135633b9aca006119929190613dba565b6000612db5565b6119a4600182613dd9565b9050611937565b5050505050565b6001600160a01b0381166000908152600e602052604081205460ff16156119ef57506001600160a01b031660009081526008602052604090205490565b6001600160a01b038216600090815260076020526040902054610ed6906111ec565b6000546001600160a01b03163314611a3b5760405162461bcd60e51b8152600401610d1790613ca3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314611aaf5760405162461bcd60e51b8152600401610d1790613ca3565b60005b81811015611b1f576001600c6000858585818110611ad257611ad2613cd8565b9050602002016020810190611ae79190613ae6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b1881613d04565b9050611ab2565b505050565b6000546001600160a01b03163314611b4e5760405162461bcd60e51b8152600401610d1790613ca3565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015611470573d6000803e3d6000fd5b6000546001600160a01b03163314611bad5760405162461bcd60e51b8152600401610d1790613ca3565b600380546001600160a01b039586166001600160a01b0319918216179091556006805492861692821692909217909155600480549385169382169390931790925560058054919093169116179055565b6000546001600160a01b03163314611c275760405162461bcd60e51b8152600401610d1790613ca3565b60005b81811015611b1f576001600f6000858585818110611c4a57611c4a613cd8565b9050602002016020810190611c5f9190613ae6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611c9081613d04565b9050611c2a565b6000546001600160a01b03163314611cc15760405162461bcd60e51b8152600401610d1790613ca3565b8082601354611cd09190613dba565b611cda9190613df1565b6032555050565b606060178054610df190613d1d565b6000610ed2338461102285604051806060016040528060258152602001613f6a602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190612aae565b6000610ed2338484612515565b6000546001600160a01b03163314611d765760405162461bcd60e51b8152600401610d1790613ca3565b601b859055601d849055601c839055601e869055601f8290556020819055602c8690556029859055602b839055602a84905560278290556028819055611dca81611dc4848187818b8b612392565b90612392565b603055505050505050565b6000546001600160a01b03163314611dff5760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b6000546001600160a01b03163314611e4a5760405162461bcd60e51b8152600401610d1790613ca3565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190613e13565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f249190613e13565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f939190613e13565b90506001600160a01b03811661210c57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120059190613e13565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120769190613e13565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156120c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e79190613e13565b603480546001600160a01b0319166001600160a01b0392909216919091179055612128565b603480546001600160a01b0319166001600160a01b0383161790555b50603380546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b031633146121765760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000546001600160a01b031633146121c45760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b0381166122295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d17565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146122ae5760405162461bcd60e51b8152600401610d1790613ca3565b602194909455602292909255602355602492909255602691909155602555565b600061126983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ee5565b60008260000361232257506000610ed6565b600061232e8385613dba565b90508261233b8583613df1565b146112695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d17565b60008061239f8385613dd9565b9050838110156112695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d17565b6001600160a01b0383166124535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610d17565b6001600160a01b0382166124b45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610d17565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166125795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610d17565b6001600160a01b0382166125db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610d17565b6000811161263d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610d17565b6001600160a01b0383166000908152600a602052604090205460ff16156126a65760405162461bcd60e51b815260206004820152601760248201527f596f752068617665206e6f20706f7765722068657265210000000000000000006044820152606401610d17565b6000546001600160a01b038481169116148015906126d257506000546001600160a01b03838116911614155b1561273057603454600160a81b900460ff166127305760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610d17565b6034546000906001600160a01b038581169116148061275c57506034546001600160a01b038481169116145b80156127a457506001600160a01b0384166000908152600c602052604090205460ff16806127a257506001600160a01b0383166000908152600c602052604090205460ff165b155b156127cf576019548211156127cb5760405162461bcd60e51b8152600401610d1790613e30565b5060015b6000600b5411801561281357506001600160a01b0383166000908152600d602052604090205460ff1615801561281357506000546001600160a01b03858116911614155b1561288757601854612824846119b2565b61282e9084613dd9565b11156128875760405162461bcd60e51b815260206004820152602260248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d6974604482015261195960f21b6064820152608401610d17565b602d5460ff1680156128a657506034546001600160a01b038481169116145b80156128cb57506001600160a01b03841660009081526010602052604090205460ff16155b1561296d576001600160a01b0384166000908152602f602052604090205442116129465760405162461bcd60e51b815260206004820152602660248201527f506c65617365207761697420666f7220636f6f6c646f776e206265747765656e6044820152652073656c6c7360d01b6064820152608401610d17565b602e546129539042613dd9565b6001600160a01b0385166000908152602f60205260409020555b603054603155601e54602c55603454600160a81b900460ff16801561299f57506034546001600160a01b038481169116145b156129f957601a548211156129c65760405162461bcd60e51b8152600401610d1790613e30565b6129ef602654611dc4602554611dc4602354611dc460225460215461239290919063ffffffff16565b603155602454602c555b603454600160b01b900460ff1615612a3c57603454600160a81b900460ff168015612a3157506034546001600160a01b038581169116145b15612a3c5760006031555b603454600160a01b900460ff16158015612a5f5750603454600160a81b900460ff165b8015612a7857506034546001600160a01b038481169116145b15612aa2576000612a88306119b2565b90506032548110612aa05750603254612aa081612f13565b505b610ddc84848484612db5565b60008184841115612ad25760405162461bcd60e51b8152600401610d179190613960565b506000612adf8486613d8d565b95945050505050565b6000806000612af5613098565b9092509050612b0482826122ce565b9250505090565b6034805460ff60a01b1916600160a01b179055603054602954600091612b4191600291612b3b9182908790612310565b906122ce565b90506000612b4f8383612d73565b9050612b5a8161321a565b6029544790600090612b7a90612b719060026122ce565b60305490612d73565b90506000612b9c6002612b3b84612b3b6029548861231090919063ffffffff16565b90506000612bb983612b3b602b548761231090919063ffffffff16565b90506000612bd684612b3b602a548861231090919063ffffffff16565b90506000612bf385612b3b6027548961231090919063ffffffff16565b90506000612c1086612b3b6028548a61231090919063ffffffff16565b9050478015612c7557600354612c309085906001600160a01b03166133ad565b600454612c479084906001600160a01b03166133ad565b600554612c5e9083906001600160a01b03166133ad565b600654612c759086906001600160a01b03166133ad565b8915612c8557612c858a876133e3565b603454601254612ca2916001600160a01b0390811691168d612515565b603460009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612cf257600080fd5b505af1158015612d06573d6000803e3d6000fd5b50506034805460ff60a01b1916905550505050505050505050505050565b6000806000806000806000806000612d3b8a6134b1565b9250925092506000806000612d598d8686612d54612ae8565b6134f3565b919f909e50909c50959a5093985091965092945050505050565b600061126983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612aae565b602c5460315482612dcb576000602c8190556031555b6001600160a01b0386166000908152600e602052604090205460ff168015612e0c57506001600160a01b0385166000908152600e602052604090205460ff16155b15612e2157612e1c868686613543565b612ecd565b6001600160a01b0386166000908152600e602052604090205460ff16158015612e6257506001600160a01b0385166000908152600e602052604090205460ff165b15612e7257612e1c868686613669565b6001600160a01b0386166000908152600e602052604090205460ff168015612eb257506001600160a01b0385166000908152600e602052604090205460ff165b15612ec257612e1c868686613712565b612ecd868686613785565b82612edd57602c82905560318190555b505050505050565b60008183612f065760405162461bcd60e51b8152600401610d179190613960565b506000612adf8486613df1565b6034805460ff60a01b1916600160a01b179055603054602954600091612f4391600291612b3b9182908790612310565b90506000612f518383612d73565b9050612f5c8161321a565b6029544790600090612f7390612b719060026122ce565b90506000612f956002612b3b84612b3b6029548861231090919063ffffffff16565b90506000612fb283612b3b602b548761231090919063ffffffff16565b90506000612fcf84612b3b602a548861231090919063ffffffff16565b90506000612fec85612b3b6027548961231090919063ffffffff16565b9050600061300986612b3b6028548a61231090919063ffffffff16565b905047801561306e576003546130299085906001600160a01b03166133ad565b6004546130409084906001600160a01b03166133ad565b6005546130579083906001600160a01b03166133ad565b60065461306e9086906001600160a01b03166133ad565b891561307e5761307e8a876133e3565b50506034805460ff60a01b19169055505050505050505050565b6014546013546000918291825b6011548110156131ea578260076000601184815481106130c7576130c7613cd8565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180613132575081600860006011848154811061310b5761310b613cd8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561314857601454601354945094505050509091565b61318e600760006011848154811061316257613162613cd8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612d73565b92506131d660086000601184815481106131aa576131aa613cd8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612d73565b9150806131e281613d04565b9150506130a5565b506013546014546131fa916122ce565b821015613211576014546013549350935050509091565b90939092509050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061324f5761324f613cd8565b6001600160a01b03928316602091820292909201810191909152603354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156132a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cc9190613e13565b816001815181106132df576132df613cd8565b6001600160a01b03928316602091820292909201015260335461330591309116846123f1565b60335460405163791ac94760e01b81526001600160a01b039091169063791ac9479061333e908590600090869030904290600401613eb6565b600060405180830381600087803b15801561335857600080fd5b505af115801561336c573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516133a1929190613ef2565b60405180910390a15050565b6040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015611b1f573d6000803e3d6000fd5b6033546133fb9030906001600160a01b0316846123f1565b6033546001600160a01b031663f305d7198230856000806134246000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561348c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ab9190613f13565b6000806000806134c0856137c9565b905060006134cd866137e6565b905060006134e5826134df8986612d73565b90612d73565b979296509094509092505050565b60008080806135028886612310565b905060006135108887612310565b9050600061351e8888612310565b90506000613530826134df8686612d73565b939b939a50919850919650505050505050565b60008060008060008061355587612d24565b6001600160a01b038f16600090815260086020526040902054959b509399509197509550935091506135879088612d73565b6001600160a01b038a166000908152600860209081526040808320939093556007905220546135b69087612d73565b6001600160a01b03808b1660009081526007602052604080822093909355908a16815220546135e59086612392565b6001600160a01b03891660009081526007602052604090205561360781613803565b613611848361388b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161365691815260200190565b60405180910390a3505050505050505050565b60008060008060008061367b87612d24565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506136ad9087612d73565b6001600160a01b03808b16600090815260076020908152604080832094909455918b168152600890915220546136e39084612392565b6001600160a01b0389166000908152600860209081526040808320939093556007905220546135e59086612392565b60008060008060008061372487612d24565b6001600160a01b038f16600090815260086020526040902054959b509399509197509550935091506137569088612d73565b6001600160a01b038a166000908152600860209081526040808320939093556007905220546136ad9087612d73565b60008060008060008061379787612d24565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506135b69087612d73565b6000610ed66103e8612b3b602c548561231090919063ffffffff16565b6000610ed66103e8612b3b6031548561231090919063ffffffff16565b600061380d612ae8565b9050600061381b8383612310565b306000908152600760205260409020549091506138389082612392565b30600090815260076020908152604080832093909355600e9052205460ff1615611b1f57306000908152600860205260409020546138769084612392565b30600090815260086020526040902055505050565b6014546138989083612d73565b6014556015546138a89082612392565b6015555050565b60008083601f8401126138c157600080fd5b50813567ffffffffffffffff8111156138d957600080fd5b6020830191508360208260051b85010111156138f457600080fd5b9250929050565b80151581146111e957600080fd5b60008060006040848603121561391e57600080fd5b833567ffffffffffffffff81111561393557600080fd5b613941868287016138af565b9094509250506020840135613955816138fb565b809150509250925092565b600060208083528351808285015260005b8181101561398d57858101830151858201604001528201613971565b8181111561399f576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156139c757600080fd5b5035919050565b6001600160a01b03811681146111e957600080fd5b600080604083850312156139f657600080fd5b8235613a01816139ce565b946020939093013593505050565b60008060408385031215613a2257600080fd5b8235613a01816138fb565b60008060408385031215613a4057600080fd5b50508035926020909101359150565b600080600060608486031215613a6457600080fd5b8335613a6f816139ce565b92506020840135613a7f816139ce565b929592945050506040919091013590565b60008060408385031215613aa357600080fd5b8235613aae816139ce565b91506020830135613abe816139ce565b809150509250929050565b600060208284031215613adb57600080fd5b8135611269816138fb565b600060208284031215613af857600080fd5b8135611269816139ce565b60008060408385031215613b1657600080fd5b823591506020830135613abe816138fb565b60008060408385031215613b3b57600080fd5b8235613b46816139ce565b91506020830135613abe816138fb565b60008060008060408587031215613b6c57600080fd5b843567ffffffffffffffff80821115613b8457600080fd5b613b90888389016138af565b90965094506020870135915080821115613ba957600080fd5b50613bb6878288016138af565b95989497509550505050565b60008060208385031215613bd557600080fd5b823567ffffffffffffffff811115613bec57600080fd5b613bf8858286016138af565b90969095509350505050565b60008060008060808587031215613c1a57600080fd5b8435613c25816139ce565b93506020850135613c35816139ce565b92506040850135613c45816139ce565b91506060850135613c55816139ce565b939692955090935050565b60008060008060008060c08789031215613c7957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613d1657613d16613cee565b5060010190565b600181811c90821680613d3157607f821691505b602082108103613d5157634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613d6957600080fd5b5051919050565b600060208284031215613d8257600080fd5b8151611269816138fb565b600082821015613d9f57613d9f613cee565b500390565b634e487b7160e01b600052603160045260246000fd5b6000816000190483118215151615613dd457613dd4613cee565b500290565b60008219821115613dec57613dec613cee565b500190565b600082613e0e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215613e2557600080fd5b8151611269816139ce565b60208082526022908201527f416d6f756e742047726561746572207468616e206d61782073656c6c206c696d6040820152611a5d60f21b606082015260800190565b600081518084526020808501945080840160005b83811015613eab5781516001600160a01b031687529582019590820190600101613e86565b509495945050505050565b85815284602082015260a060408201526000613ed560a0830186613e72565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000613f0b6040830184613e72565b949350505050565b600080600060608486031215613f2857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204d4a5b4ceb9deffc71323124301c446a2b26ea05166ba3363c8ab1c178fa46ac64736f6c634300080d00330000000000000000000000006b835fe72484be44d37ecc63797f33cdca60c6f80000000000000000000000008570d4dd8bd6ed70bb3c0abd669f042c1a33ba4500000000000000000000000065eff2b4a3491191a7a655afb52c5bb7b1636499000000000000000000000000e181b8e844f36e851340f3dcb8ce4eba7aeecca7
Deployed Bytecode
0x60806040526004361061041f5760003560e01c806365216a411161021e57806395d89b4111610123578063d628df9c116100ab578063eafb5a3c1161007a578063eafb5a3c14610c4c578063f259c57b14610c6c578063f2fde38b14610c8c578063f9f2907d14610cac578063ffb54a9914610ccc57600080fd5b8063d628df9c14610bba578063dc44b6a014610bd0578063dd62ed3e14610be6578063ea2f0b3714610c2c57600080fd5b8063bf56b371116100f2578063bf56b37114610b42578063c5d2418914610b58578063c860795214610b6e578063c9cf778914610b84578063d20e81ee14610b9a57600080fd5b806395d89b4114610ad3578063a457c2d714610ae8578063a9059cbb14610b08578063a985ceef14610b2857600080fd5b80637d5d3944116101a657806388f820201161017557806388f8202014610a1c5780638da5cb5b14610a555780638e3d605814610a735780638ea5220f14610a935780638f4590d214610ab357600080fd5b80637d5d3944146109b057806383672f3e146109c657806384530c46146109e657806388790a6814610a0657600080fd5b8063722b62ad116101ed578063722b62ad1461092e578063743942b6146109445780637598f8bc1461096457806375f0a8741461097a57806378109e541461099a57600080fd5b806365216a41146108b957806370a08231146108d9578063715018a6146108f957806371b9189c1461090e57600080fd5b80632dd5efe7116103245780634549b039116102ac5780634b01547f1161027b5780634b01547f1461081357806350af449e1461083357806350db71fb1461086357806352390c021461088357806362015852146108a357600080fd5b80634549b0391461077a5780634626402b1461079a57806349bd5a5e146107ba5780634a4fbeec146107da57600080fd5b806337533c91116102f357806337533c91146106ef57806339509351146107045780633bd5d173146107245780633ddf65ab14610744578063401aa5c01461076457600080fd5b80632dd5efe71461066d578063313ce5671461068d57806334a2a67d146106b95780633685d419146106cf57600080fd5b8063207a3c47116103a757806325b86edf1161037657806325b86edf146105d65780632691bc80146105f6578063297d50c5146106175780632a9b80721461062d5780632d8381191461064d57600080fd5b8063207a3c471461056a5780632378cc6d1461058057806323b872dd146105a057806324fcf8cf146105c057600080fd5b8063095ea7b3116103ee578063095ea7b3146104b85780630d45c0e3146104e857806313114a9d146105085780631694505e1461051d57806318160ddd1461055557600080fd5b80630445b6671461042b57806306485a951461045457806306fdde031461047657806309302dc61461049857600080fd5b3661042657005b600080fd5b34801561043757600080fd5b5061044160325481565b6040519081526020015b60405180910390f35b34801561046057600080fd5b5061047461046f366004613909565b610ced565b005b34801561048257600080fd5b5061048b610de2565b60405161044b9190613960565b3480156104a457600080fd5b506104746104b33660046139b5565b610e74565b3480156104c457600080fd5b506104d86104d33660046139e3565b610ec5565b604051901515815260200161044b565b3480156104f457600080fd5b50610474610503366004613a0f565b610edc565b34801561051457600080fd5b50601554610441565b34801561052957600080fd5b5060335461053d906001600160a01b031681565b6040516001600160a01b03909116815260200161044b565b34801561056157600080fd5b50601354610441565b34801561057657600080fd5b5061044160195481565b34801561058c57600080fd5b5061047461059b366004613a2d565b610f64565b3480156105ac57600080fd5b506104d86105bb366004613a4f565b610fc8565b3480156105cc57600080fd5b5061044160255481565b3480156105e257600080fd5b506104746105f1366004613a90565b611031565b34801561060257600080fd5b506034546104d890600160b01b900460ff1681565b34801561062357600080fd5b5061044160265481565b34801561063957600080fd5b50610474610648366004613ac9565b61113d565b34801561065957600080fd5b506104416106683660046139b5565b6111ec565b34801561067957600080fd5b50610474610688366004613ae6565b611270565b34801561069957600080fd5b50601254600160a01b900460ff1660405160ff909116815260200161044b565b3480156106c557600080fd5b50610441601f5481565b3480156106db57600080fd5b506104746106ea366004613ae6565b6112be565b3480156106fb57600080fd5b50610474611474565b34801561071057600080fd5b506104d861071f3660046139e3565b6114e4565b34801561073057600080fd5b5061047461073f3660046139b5565b61151a565b34801561075057600080fd5b5061047461075f366004613ac9565b611604565b34801561077057600080fd5b50610441601e5481565b34801561078657600080fd5b50610441610795366004613b03565b61164c565b3480156107a657600080fd5b5060055461053d906001600160a01b031681565b3480156107c657600080fd5b5060345461053d906001600160a01b031681565b3480156107e657600080fd5b506104d86107f5366004613ae6565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561081f57600080fd5b5061047461082e366004613ac9565b6116d9565b34801561083f57600080fd5b506104d861084e366004613ae6565b60106020526000908152604090205460ff1681565b34801561086f57600080fd5b5061047461087e366004613b28565b611721565b34801561088f57600080fd5b5061047461089e366004613ae6565b611776565b3480156108af57600080fd5b50610441601c5481565b3480156108c557600080fd5b506104746108d4366004613b56565b611860565b3480156108e557600080fd5b506104416108f4366004613ae6565b6119b2565b34801561090557600080fd5b50610474611a11565b34801561091a57600080fd5b50610474610929366004613bc2565b611a85565b34801561093a57600080fd5b50610441602e5481565b34801561095057600080fd5b5061047461095f366004613ae6565b611b24565b34801561097057600080fd5b5061044160245481565b34801561098657600080fd5b5060035461053d906001600160a01b031681565b3480156109a657600080fd5b5061044160185481565b3480156109bc57600080fd5b50610441601a5481565b3480156109d257600080fd5b506104746109e1366004613c04565b611b83565b3480156109f257600080fd5b50610474610a01366004613bc2565b611bfd565b348015610a1257600080fd5b5061044160215481565b348015610a2857600080fd5b506104d8610a37366004613ae6565b6001600160a01b03166000908152600e602052604090205460ff1690565b348015610a6157600080fd5b506000546001600160a01b031661053d565b348015610a7f57600080fd5b5060045461053d906001600160a01b031681565b348015610a9f57600080fd5b5060065461053d906001600160a01b031681565b348015610abf57600080fd5b50610474610ace366004613a2d565b611c97565b348015610adf57600080fd5b5061048b611ce1565b348015610af457600080fd5b506104d8610b033660046139e3565b611cf0565b348015610b1457600080fd5b506104d8610b233660046139e3565b611d3f565b348015610b3457600080fd5b50602d546104d89060ff1681565b348015610b4e57600080fd5b50610441600b5481565b348015610b6457600080fd5b50610441601d5481565b348015610b7a57600080fd5b5061044160225481565b348015610b9057600080fd5b5061044160235481565b348015610ba657600080fd5b50610474610bb5366004613c60565b611d4c565b348015610bc657600080fd5b5061044160205481565b348015610bdc57600080fd5b50610441601b5481565b348015610bf257600080fd5b50610441610c01366004613a90565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610c3857600080fd5b50610474610c47366004613ae6565b611dd5565b348015610c5857600080fd5b50610474610c67366004613ae6565b611e20565b348015610c7857600080fd5b50610474610c87366004613ae6565b61214c565b348015610c9857600080fd5b50610474610ca7366004613ae6565b61219a565b348015610cb857600080fd5b50610474610cc7366004613c60565b612284565b348015610cd857600080fd5b506034546104d890600160a81b900460ff1681565b6000546001600160a01b03163314610d205760405162461bcd60e51b8152600401610d1790613ca3565b60405180910390fd5b60005b82811015610ddc57600f6000858584818110610d4157610d41613cd8565b9050602002016020810190610d569190613ae6565b6001600160a01b0316815260208101919091526040016000205460ff16610dcc5781600a6000868685818110610d8e57610d8e613cd8565b9050602002016020810190610da39190613ae6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b610dd581613d04565b9050610d23565b50505050565b606060168054610df190613d1d565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1d90613d1d565b8015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b820191906000526020600020905b815481529060010190602001808311610e4d57829003601f168201915b5050505050905090565b6000546001600160a01b03163314610e9e5760405162461bcd60e51b8152600401610d1790613ca3565b610ebf81610eb96103e86013546122ce90919063ffffffff16565b90612310565b60185550565b6000610ed23384846123f1565b5060015b92915050565b6000546001600160a01b03163314610f065760405162461bcd60e51b8152600401610d1790613ca3565b62015180811115610f4d5760405162461bcd60e51b8152602060048201526011602482015270115e18d959591cc81d1a19481b1a5b5a5d607a1b6044820152606401610d17565b602d805460ff191692151592909217909155602e55565b6000546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610d1790613ca3565b610fa981610eb96103e86013546122ce90919063ffffffff16565b601955601354610fc1908390610eb9906103e86122ce565b601a555050565b6000610fd5848484612515565b611027843361102285604051806060016040528060288152602001613f42602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190612aae565b6123f1565b5060019392505050565b6000546001600160a01b0316331461105b5760405162461bcd60e51b8152600401610d1790613ca3565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c69190613d57565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015611119573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190613d70565b6000546001600160a01b031633146111675760405162461bcd60e51b8152600401610d1790613ca3565b6034805460ff60a81b1916600160a81b8315150217905561118730611776565b60345461119c906001600160a01b0316611776565b6012546111b1906001600160a01b0316611776565b6111c661089e6000546001600160a01b031690565b603454600160a81b900460ff1680156111df5750600b54155b156111e95743600b555b50565b60006014548211156112535760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610d17565b600061125d612ae8565b905061126983826122ce565b9392505050565b6000546001600160a01b0316331461129a5760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6000546001600160a01b031633146112e85760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b0381166000908152600e602052604090205460ff166113505760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610d17565b60005b60115481101561147057816001600160a01b03166011828154811061137a5761137a613cd8565b6000918252602090912001546001600160a01b03160361145e57601180546113a490600190613d8d565b815481106113b4576113b4613cd8565b600091825260209091200154601180546001600160a01b0390921691839081106113e0576113e0613cd8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600882526040808220829055600e90925220805460ff19169055601180548061143857611438613da4565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061146881613d04565b915050611353565b5050565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610d1790613ca3565b6034805460ff60b81b191690556013546114c190600290610eb9906103e86122ce565b601855602d805460ff191660011790556114e26114dd306119b2565b612b0b565b565b3360008181526009602090815260408083206001600160a01b03871684529091528120549091610ed29185906110229086612392565b336000818152600e602052604090205460ff161561158f5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610d17565b600061159a83612d24565b505050506001600160a01b0384166000908152600760205260409020549192506115c691905082612d73565b6001600160a01b0383166000908152600760205260409020556014546115ec9082612d73565b6014556015546115fc9084612392565b601555505050565b6000546001600160a01b0316331461162e5760405162461bcd60e51b8152600401610d1790613ca3565b60348054911515600160b81b0260ff60b81b19909216919091179055565b60006013548311156116a05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610d17565b816116bf5760006116b084612d24565b50939550610ed6945050505050565b60006116ca84612d24565b50929550610ed6945050505050565b6000546001600160a01b031633146117035760405162461bcd60e51b8152600401610d1790613ca3565b60348054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331461174b5760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117a05760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b038116600090815260076020526040902054156117fa576001600160a01b0381166000908152600760205260409020546117e0906111ec565b6001600160a01b0382166000908152600860205260409020555b6001600160a01b03166000818152600e60205260408120805460ff191660019081179091556011805491820181559091527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680180546001600160a01b0319169091179055565b336000908152600c602052604081205460ff166118d55760405162461bcd60e51b815260206004820152602d60248201527f41697264726f702063616e206f6e6c7920626520646f6e65206279206578636c60448201526c756465642066726f6d2066656560981b6064820152608401610d17565b8382146119375760405162461bcd60e51b815260206004820152602a60248201527f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260448201526965207468652073616d6560b01b6064820152608401610d17565b838110156119ab576119993386868481811061195557611955613cd8565b905060200201602081019061196a9190613ae6565b85858581811061197c5761197c613cd8565b90506020020135633b9aca006119929190613dba565b6000612db5565b6119a4600182613dd9565b9050611937565b5050505050565b6001600160a01b0381166000908152600e602052604081205460ff16156119ef57506001600160a01b031660009081526008602052604090205490565b6001600160a01b038216600090815260076020526040902054610ed6906111ec565b6000546001600160a01b03163314611a3b5760405162461bcd60e51b8152600401610d1790613ca3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314611aaf5760405162461bcd60e51b8152600401610d1790613ca3565b60005b81811015611b1f576001600c6000858585818110611ad257611ad2613cd8565b9050602002016020810190611ae79190613ae6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b1881613d04565b9050611ab2565b505050565b6000546001600160a01b03163314611b4e5760405162461bcd60e51b8152600401610d1790613ca3565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015611470573d6000803e3d6000fd5b6000546001600160a01b03163314611bad5760405162461bcd60e51b8152600401610d1790613ca3565b600380546001600160a01b039586166001600160a01b0319918216179091556006805492861692821692909217909155600480549385169382169390931790925560058054919093169116179055565b6000546001600160a01b03163314611c275760405162461bcd60e51b8152600401610d1790613ca3565b60005b81811015611b1f576001600f6000858585818110611c4a57611c4a613cd8565b9050602002016020810190611c5f9190613ae6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611c9081613d04565b9050611c2a565b6000546001600160a01b03163314611cc15760405162461bcd60e51b8152600401610d1790613ca3565b8082601354611cd09190613dba565b611cda9190613df1565b6032555050565b606060178054610df190613d1d565b6000610ed2338461102285604051806060016040528060258152602001613f6a602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190612aae565b6000610ed2338484612515565b6000546001600160a01b03163314611d765760405162461bcd60e51b8152600401610d1790613ca3565b601b859055601d849055601c839055601e869055601f8290556020819055602c8690556029859055602b839055602a84905560278290556028819055611dca81611dc4848187818b8b612392565b90612392565b603055505050505050565b6000546001600160a01b03163314611dff5760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b6000546001600160a01b03163314611e4a5760405162461bcd60e51b8152600401610d1790613ca3565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190613e13565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f249190613e13565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f939190613e13565b90506001600160a01b03811661210c57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120059190613e13565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120769190613e13565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156120c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e79190613e13565b603480546001600160a01b0319166001600160a01b0392909216919091179055612128565b603480546001600160a01b0319166001600160a01b0383161790555b50603380546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b031633146121765760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000546001600160a01b031633146121c45760405162461bcd60e51b8152600401610d1790613ca3565b6001600160a01b0381166122295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d17565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146122ae5760405162461bcd60e51b8152600401610d1790613ca3565b602194909455602292909255602355602492909255602691909155602555565b600061126983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ee5565b60008260000361232257506000610ed6565b600061232e8385613dba565b90508261233b8583613df1565b146112695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d17565b60008061239f8385613dd9565b9050838110156112695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d17565b6001600160a01b0383166124535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610d17565b6001600160a01b0382166124b45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610d17565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166125795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610d17565b6001600160a01b0382166125db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610d17565b6000811161263d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610d17565b6001600160a01b0383166000908152600a602052604090205460ff16156126a65760405162461bcd60e51b815260206004820152601760248201527f596f752068617665206e6f20706f7765722068657265210000000000000000006044820152606401610d17565b6000546001600160a01b038481169116148015906126d257506000546001600160a01b03838116911614155b1561273057603454600160a81b900460ff166127305760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610d17565b6034546000906001600160a01b038581169116148061275c57506034546001600160a01b038481169116145b80156127a457506001600160a01b0384166000908152600c602052604090205460ff16806127a257506001600160a01b0383166000908152600c602052604090205460ff165b155b156127cf576019548211156127cb5760405162461bcd60e51b8152600401610d1790613e30565b5060015b6000600b5411801561281357506001600160a01b0383166000908152600d602052604090205460ff1615801561281357506000546001600160a01b03858116911614155b1561288757601854612824846119b2565b61282e9084613dd9565b11156128875760405162461bcd60e51b815260206004820152602260248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d6974604482015261195960f21b6064820152608401610d17565b602d5460ff1680156128a657506034546001600160a01b038481169116145b80156128cb57506001600160a01b03841660009081526010602052604090205460ff16155b1561296d576001600160a01b0384166000908152602f602052604090205442116129465760405162461bcd60e51b815260206004820152602660248201527f506c65617365207761697420666f7220636f6f6c646f776e206265747765656e6044820152652073656c6c7360d01b6064820152608401610d17565b602e546129539042613dd9565b6001600160a01b0385166000908152602f60205260409020555b603054603155601e54602c55603454600160a81b900460ff16801561299f57506034546001600160a01b038481169116145b156129f957601a548211156129c65760405162461bcd60e51b8152600401610d1790613e30565b6129ef602654611dc4602554611dc4602354611dc460225460215461239290919063ffffffff16565b603155602454602c555b603454600160b01b900460ff1615612a3c57603454600160a81b900460ff168015612a3157506034546001600160a01b038581169116145b15612a3c5760006031555b603454600160a01b900460ff16158015612a5f5750603454600160a81b900460ff165b8015612a7857506034546001600160a01b038481169116145b15612aa2576000612a88306119b2565b90506032548110612aa05750603254612aa081612f13565b505b610ddc84848484612db5565b60008184841115612ad25760405162461bcd60e51b8152600401610d179190613960565b506000612adf8486613d8d565b95945050505050565b6000806000612af5613098565b9092509050612b0482826122ce565b9250505090565b6034805460ff60a01b1916600160a01b179055603054602954600091612b4191600291612b3b9182908790612310565b906122ce565b90506000612b4f8383612d73565b9050612b5a8161321a565b6029544790600090612b7a90612b719060026122ce565b60305490612d73565b90506000612b9c6002612b3b84612b3b6029548861231090919063ffffffff16565b90506000612bb983612b3b602b548761231090919063ffffffff16565b90506000612bd684612b3b602a548861231090919063ffffffff16565b90506000612bf385612b3b6027548961231090919063ffffffff16565b90506000612c1086612b3b6028548a61231090919063ffffffff16565b9050478015612c7557600354612c309085906001600160a01b03166133ad565b600454612c479084906001600160a01b03166133ad565b600554612c5e9083906001600160a01b03166133ad565b600654612c759086906001600160a01b03166133ad565b8915612c8557612c858a876133e3565b603454601254612ca2916001600160a01b0390811691168d612515565b603460009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612cf257600080fd5b505af1158015612d06573d6000803e3d6000fd5b50506034805460ff60a01b1916905550505050505050505050505050565b6000806000806000806000806000612d3b8a6134b1565b9250925092506000806000612d598d8686612d54612ae8565b6134f3565b919f909e50909c50959a5093985091965092945050505050565b600061126983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612aae565b602c5460315482612dcb576000602c8190556031555b6001600160a01b0386166000908152600e602052604090205460ff168015612e0c57506001600160a01b0385166000908152600e602052604090205460ff16155b15612e2157612e1c868686613543565b612ecd565b6001600160a01b0386166000908152600e602052604090205460ff16158015612e6257506001600160a01b0385166000908152600e602052604090205460ff165b15612e7257612e1c868686613669565b6001600160a01b0386166000908152600e602052604090205460ff168015612eb257506001600160a01b0385166000908152600e602052604090205460ff165b15612ec257612e1c868686613712565b612ecd868686613785565b82612edd57602c82905560318190555b505050505050565b60008183612f065760405162461bcd60e51b8152600401610d179190613960565b506000612adf8486613df1565b6034805460ff60a01b1916600160a01b179055603054602954600091612f4391600291612b3b9182908790612310565b90506000612f518383612d73565b9050612f5c8161321a565b6029544790600090612f7390612b719060026122ce565b90506000612f956002612b3b84612b3b6029548861231090919063ffffffff16565b90506000612fb283612b3b602b548761231090919063ffffffff16565b90506000612fcf84612b3b602a548861231090919063ffffffff16565b90506000612fec85612b3b6027548961231090919063ffffffff16565b9050600061300986612b3b6028548a61231090919063ffffffff16565b905047801561306e576003546130299085906001600160a01b03166133ad565b6004546130409084906001600160a01b03166133ad565b6005546130579083906001600160a01b03166133ad565b60065461306e9086906001600160a01b03166133ad565b891561307e5761307e8a876133e3565b50506034805460ff60a01b19169055505050505050505050565b6014546013546000918291825b6011548110156131ea578260076000601184815481106130c7576130c7613cd8565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180613132575081600860006011848154811061310b5761310b613cd8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561314857601454601354945094505050509091565b61318e600760006011848154811061316257613162613cd8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612d73565b92506131d660086000601184815481106131aa576131aa613cd8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612d73565b9150806131e281613d04565b9150506130a5565b506013546014546131fa916122ce565b821015613211576014546013549350935050509091565b90939092509050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061324f5761324f613cd8565b6001600160a01b03928316602091820292909201810191909152603354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156132a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cc9190613e13565b816001815181106132df576132df613cd8565b6001600160a01b03928316602091820292909201015260335461330591309116846123f1565b60335460405163791ac94760e01b81526001600160a01b039091169063791ac9479061333e908590600090869030904290600401613eb6565b600060405180830381600087803b15801561335857600080fd5b505af115801561336c573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516133a1929190613ef2565b60405180910390a15050565b6040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015611b1f573d6000803e3d6000fd5b6033546133fb9030906001600160a01b0316846123f1565b6033546001600160a01b031663f305d7198230856000806134246000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561348c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ab9190613f13565b6000806000806134c0856137c9565b905060006134cd866137e6565b905060006134e5826134df8986612d73565b90612d73565b979296509094509092505050565b60008080806135028886612310565b905060006135108887612310565b9050600061351e8888612310565b90506000613530826134df8686612d73565b939b939a50919850919650505050505050565b60008060008060008061355587612d24565b6001600160a01b038f16600090815260086020526040902054959b509399509197509550935091506135879088612d73565b6001600160a01b038a166000908152600860209081526040808320939093556007905220546135b69087612d73565b6001600160a01b03808b1660009081526007602052604080822093909355908a16815220546135e59086612392565b6001600160a01b03891660009081526007602052604090205561360781613803565b613611848361388b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161365691815260200190565b60405180910390a3505050505050505050565b60008060008060008061367b87612d24565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506136ad9087612d73565b6001600160a01b03808b16600090815260076020908152604080832094909455918b168152600890915220546136e39084612392565b6001600160a01b0389166000908152600860209081526040808320939093556007905220546135e59086612392565b60008060008060008061372487612d24565b6001600160a01b038f16600090815260086020526040902054959b509399509197509550935091506137569088612d73565b6001600160a01b038a166000908152600860209081526040808320939093556007905220546136ad9087612d73565b60008060008060008061379787612d24565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506135b69087612d73565b6000610ed66103e8612b3b602c548561231090919063ffffffff16565b6000610ed66103e8612b3b6031548561231090919063ffffffff16565b600061380d612ae8565b9050600061381b8383612310565b306000908152600760205260409020549091506138389082612392565b30600090815260076020908152604080832093909355600e9052205460ff1615611b1f57306000908152600860205260409020546138769084612392565b30600090815260086020526040902055505050565b6014546138989083612d73565b6014556015546138a89082612392565b6015555050565b60008083601f8401126138c157600080fd5b50813567ffffffffffffffff8111156138d957600080fd5b6020830191508360208260051b85010111156138f457600080fd5b9250929050565b80151581146111e957600080fd5b60008060006040848603121561391e57600080fd5b833567ffffffffffffffff81111561393557600080fd5b613941868287016138af565b9094509250506020840135613955816138fb565b809150509250925092565b600060208083528351808285015260005b8181101561398d57858101830151858201604001528201613971565b8181111561399f576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156139c757600080fd5b5035919050565b6001600160a01b03811681146111e957600080fd5b600080604083850312156139f657600080fd5b8235613a01816139ce565b946020939093013593505050565b60008060408385031215613a2257600080fd5b8235613a01816138fb565b60008060408385031215613a4057600080fd5b50508035926020909101359150565b600080600060608486031215613a6457600080fd5b8335613a6f816139ce565b92506020840135613a7f816139ce565b929592945050506040919091013590565b60008060408385031215613aa357600080fd5b8235613aae816139ce565b91506020830135613abe816139ce565b809150509250929050565b600060208284031215613adb57600080fd5b8135611269816138fb565b600060208284031215613af857600080fd5b8135611269816139ce565b60008060408385031215613b1657600080fd5b823591506020830135613abe816138fb565b60008060408385031215613b3b57600080fd5b8235613b46816139ce565b91506020830135613abe816138fb565b60008060008060408587031215613b6c57600080fd5b843567ffffffffffffffff80821115613b8457600080fd5b613b90888389016138af565b90965094506020870135915080821115613ba957600080fd5b50613bb6878288016138af565b95989497509550505050565b60008060208385031215613bd557600080fd5b823567ffffffffffffffff811115613bec57600080fd5b613bf8858286016138af565b90969095509350505050565b60008060008060808587031215613c1a57600080fd5b8435613c25816139ce565b93506020850135613c35816139ce565b92506040850135613c45816139ce565b91506060850135613c55816139ce565b939692955090935050565b60008060008060008060c08789031215613c7957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613d1657613d16613cee565b5060010190565b600181811c90821680613d3157607f821691505b602082108103613d5157634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613d6957600080fd5b5051919050565b600060208284031215613d8257600080fd5b8151611269816138fb565b600082821015613d9f57613d9f613cee565b500390565b634e487b7160e01b600052603160045260246000fd5b6000816000190483118215151615613dd457613dd4613cee565b500290565b60008219821115613dec57613dec613cee565b500190565b600082613e0e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215613e2557600080fd5b8151611269816139ce565b60208082526022908201527f416d6f756e742047726561746572207468616e206d61782073656c6c206c696d6040820152611a5d60f21b606082015260800190565b600081518084526020808501945080840160005b83811015613eab5781516001600160a01b031687529582019590820190600101613e86565b509495945050505050565b85815284602082015260a060408201526000613ed560a0830186613e72565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000613f0b6040830184613e72565b949350505050565b600080600060608486031215613f2857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204d4a5b4ceb9deffc71323124301c446a2b26ea05166ba3363c8ab1c178fa46ac64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006b835fe72484be44d37ecc63797f33cdca60c6f80000000000000000000000008570d4dd8bd6ed70bb3c0abd669f042c1a33ba4500000000000000000000000065eff2b4a3491191a7a655afb52c5bb7b1636499000000000000000000000000e181b8e844f36e851340f3dcb8ce4eba7aeecca7
-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x6b835Fe72484be44d37EcC63797f33CDCA60c6f8
Arg [1] : _treasuryWallet (address): 0x8570D4Dd8bD6eD70Bb3C0Abd669f042C1a33bA45
Arg [2] : _devWallet (address): 0x65Eff2B4A3491191A7a655afb52c5bb7B1636499
Arg [3] : _passiveWallet (address): 0xE181B8e844F36e851340F3dcb8Ce4eBA7AeeccA7
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000006b835fe72484be44d37ecc63797f33cdca60c6f8
Arg [1] : 0000000000000000000000008570d4dd8bd6ed70bb3c0abd669f042c1a33ba45
Arg [2] : 00000000000000000000000065eff2b4a3491191a7a655afb52c5bb7b1636499
Arg [3] : 000000000000000000000000e181b8e844f36e851340f3dcb8ce4eba7aeecca7
Deployed Bytecode Sourcemap
15310:28541:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18113:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;18113:56:0;;;;;;;;40391:264;;;;;;;;;;-1:-1:-1;40391:264:0;;;;;:::i;:::-;;:::i;:::-;;21752:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;41338:175::-;;;;;;;;;;-1:-1:-1;41338:175:0;;;;;:::i;:::-;;:::i;22664:161::-;;;;;;;;;;-1:-1:-1;22664:161:0;;;;;:::i;:::-;;:::i;:::-;;;2670:14:1;;2663:22;2645:41;;2633:2;2618:18;22664:161:0;2505:187:1;37780:244:0;;;;;;;;;;-1:-1:-1;37780:244:0;;;;;:::i;:::-;;:::i;23785:87::-;;;;;;;;;;-1:-1:-1;23854:10:0;;23785:87;;18189:41;;;;;;;;;;-1:-1:-1;18189:41:0;;;;-1:-1:-1;;;;;18189:41:0;;;;;;-1:-1:-1;;;;;3202:32:1;;;3184:51;;3172:2;3157:18;18189:41:0;3011:230:1;22029:95:0;;;;;;;;;;-1:-1:-1;22109:7:0;;22029:95;;16668:55;;;;;;;;;;;;;;;;41521:272;;;;;;;;;;-1:-1:-1;41521:272:0;;;;;:::i;:::-;;:::i;22833:313::-;;;;;;;;;;-1:-1:-1;22833:313:0;;;;;:::i;:::-;;:::i;17336:36::-;;;;;;;;;;;;;;;;41153:177;;;;;;;;;;-1:-1:-1;41153:177:0;;;;;:::i;:::-;;:::i;18340:34::-;;;;;;;;;;-1:-1:-1;18340:34:0;;;;-1:-1:-1;;;18340:34:0;;;;;;17406:35;;;;;;;;;;;;;;;;20394:349;;;;;;;;;;-1:-1:-1;20394:349:0;;;;;:::i;:::-;;:::i;24717:253::-;;;;;;;;;;-1:-1:-1;24717:253:0;;;;;:::i;:::-;;:::i;41801:113::-;;;;;;;;;;-1:-1:-1;41801:113:0;;;;;:::i;:::-;;:::i;21938:83::-;;;;;;;;;;-1:-1:-1;22004:9:0;;-1:-1:-1;;;22004:9:0;;;;21938:83;;5036:4:1;5024:17;;;5006:36;;4994:2;4979:18;21938:83:0;4864:184:1;17002:34:0;;;;;;;;;;;;;;;;25249:479;;;;;;;;;;-1:-1:-1;25249:479:0;;;;;:::i;:::-;;:::i;20975:238::-;;;;;;;;;;;;;:::i;23154:218::-;;;;;;;;;;-1:-1:-1;23154:218:0;;;;;:::i;:::-;;:::i;23884:377::-;;;;;;;;;;-1:-1:-1;23884:377:0;;;;;:::i;:::-;;:::i;20867:96::-;;;;;;;;;;-1:-1:-1;20867:96:0;;;;;:::i;:::-;;:::i;16952:37::-;;;;;;;;;;;;;;;;24273:436;;;;;;;;;;-1:-1:-1;24273:436:0;;;;;:::i;:::-;;:::i;15523:37::-;;;;;;;;;;-1:-1:-1;15523:37:0;;;;-1:-1:-1;;;;;15523:37:0;;;18237:28;;;;;;;;;;-1:-1:-1;18237:28:0;;;;-1:-1:-1;;;;;18237:28:0;;;40273:106;;;;;;;;;;-1:-1:-1;40273:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;40353:18:0;40329:4;40353:18;;;:9;:18;;;;;;;;;40273:106;20757:102;;;;;;;;;;-1:-1:-1;20757:102:0;;;;;:::i;:::-;;:::i;16103:49::-;;;;;;;;;;-1:-1:-1;16103:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;40663:129;;;;;;;;;;-1:-1:-1;40663:129:0;;;;;:::i;:::-;;:::i;24978:263::-;;;;;;;;;;-1:-1:-1;24978:263:0;;;;;:::i;:::-;;:::i;16855:30::-;;;;;;;;;;;;;;;;42108:510;;;;;;;;;;-1:-1:-1;42108:510:0;;;;;:::i;:::-;;:::i;22132:198::-;;;;;;;;;;-1:-1:-1;22132:198:0;;;;;:::i;:::-;;:::i;6941:148::-;;;;;;;;;;;;;:::i;39446:198::-;;;;;;;;;;-1:-1:-1;39446:198:0;;;;;:::i;:::-;;:::i;17831:46::-;;;;;;;;;;;;;;;;41010:135;;;;;;;;;;-1:-1:-1;41010:135:0;;;;;:::i;:::-;;:::i;17285:38::-;;;;;;;;;;;;;;;;15435;;;;;;;;;;-1:-1:-1;15435:38:0;;;;-1:-1:-1;;;;;15435:38:0;;;16599:56;;;;;;;;;;;;;;;;16736;;;;;;;;;;;;;;;;39784:341;;;;;;;;;;-1:-1:-1;39784:341:0;;;;;:::i;:::-;;:::i;40806:188::-;;;;;;;;;;-1:-1:-1;40806:188:0;;;;;:::i;:::-;;:::i;17099:37::-;;;;;;;;;;;;;;;;23657:120;;;;;;;;;;-1:-1:-1;23657:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;23749:20:0;23725:4;23749:20;;;:11;:20;;;;;;;;;23657:120;6716:79;;;;;;;;;;-1:-1:-1;6754:7:0;6781:6;-1:-1:-1;;;;;6781:6:0;6716:79;;15480:36;;;;;;;;;;-1:-1:-1;15480:36:0;;;;-1:-1:-1;;;;;15480:36:0;;;15567:32;;;;;;;;;;-1:-1:-1;15567:32:0;;;;-1:-1:-1;;;;;15567:32:0;;;41922:178;;;;;;;;;;-1:-1:-1;41922:178:0;;;;;:::i;:::-;;:::i;21843:87::-;;;;;;;;;;;;;:::i;23380:269::-;;;;;;;;;;-1:-1:-1;23380:269:0;;;;;:::i;:::-;;:::i;22338:167::-;;;;;;;;;;-1:-1:-1;22338:167:0;;;;;:::i;:::-;;:::i;17789:35::-;;;;;;;;;;-1:-1:-1;17789:35:0;;;;;;;;15840:29;;;;;;;;;;;;;;;;16902:36;;;;;;;;;;;;;;;;17169:37;;;;;;;;;;;;;;;;17239:31;;;;;;;;;;;;;;;;42627:748;;;;;;;;;;-1:-1:-1;42627:748:0;;;;;:::i;:::-;;:::i;17049:35::-;;;;;;;;;;;;;;;;16807:36;;;;;;;;;;;;;;;;22513:143;;;;;;;;;;-1:-1:-1;22513:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;22621:18:0;;;22594:7;22621:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;22513:143;39662:110;;;;;;;;;;-1:-1:-1;39662:110:0;;;;;:::i;:::-;;:::i;21221:523::-;;;;;;;;;;-1:-1:-1;21221:523:0;;;;;:::i;:::-;;:::i;39326:112::-;;;;;;;;;;-1:-1:-1;39326:112:0;;;;;:::i;:::-;;:::i;7097:244::-;;;;;;;;;;-1:-1:-1;7097:244:0;;;;;:::i;:::-;;:::i;43383:424::-;;;;;;;;;;-1:-1:-1;43383:424:0;;;;;:::i;:::-;;:::i;18302:31::-;;;;;;;;;;-1:-1:-1;18302:31:0;;;;-1:-1:-1;;;18302:31:0;;;;;;40391:264;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;;;;;;;;;40488:9:::1;40483:165;40499:20:::0;;::::1;40483:165;;;40545:10;:24;40556:9;;40566:1;40556:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;40545:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;40545:24:0;;::::1;;40541:96;;40615:6;40589:9;:23;40599:9;;40609:1;40599:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;40589:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;40589:23:0;:32;;-1:-1:-1;;40589:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;40541:96:::1;40521:3;::::0;::::1;:::i;:::-;;;40483:165;;;;40391:264:::0;;;:::o;21752:83::-;21789:13;21822:5;21815:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21752:83;:::o;41338:175::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;41459:46:::1;41481:23;41459:17;41471:4;41459:7;;:11;;:17;;;;:::i;:::-;:21:::0;::::1;:46::i;:::-;41441:15;:64:::0;-1:-1:-1;41338:175:0:o;22664:161::-;22739:4;22756:39;1100:10;22779:7;22788:6;22756:8;:39::i;:::-;-1:-1:-1;22813:4:0;22664:161;;;;;:::o;37780:244::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;37902:8:::1;37887:11;:23;;37879:53;;;::::0;-1:-1:-1;;;37879:53:0;;10615:2:1;37879:53:0::1;::::0;::::1;10597:21:1::0;10654:2;10634:18;;;10627:30;-1:-1:-1;;;10673:18:1;;;10666:47;10730:18;;37879:53:0::1;10413:341:1::0;37879:53:0::1;37943:15;:27:::0;;-1:-1:-1;;37943:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;37981:21:::1;:35:::0;37780:244::o;41521:272::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;41667:45:::1;41689:22;41667:17;41679:4;41667:7;;:11;;:17;;;;:::i;:45::-;41652:12;:60:::0;41739:7:::1;::::0;:46:::1;::::0;41761:23;;41739:17:::1;::::0;41751:4:::1;41739:11;:17::i;:46::-;41723:13;:62:::0;-1:-1:-1;;41521:272:0:o;22833:313::-;22931:4;22948:36;22958:6;22966:9;22977:6;22948:9;:36::i;:::-;22995:121;23004:6;1100:10;23026:89;23064:6;23026:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23026:19:0;;;;;;:11;:19;;;;;;;;1100:10;23026:33;;;;;;;;;;:37;:89::i;:::-;22995:8;:121::i;:::-;-1:-1:-1;23134:4:0;22833:313;;;;;:::o;41153:177::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;41254:30:::1;::::0;-1:-1:-1;;;41254:30:0;;41278:4:::1;41254:30;::::0;::::1;3184:51:1::0;41236:15:0::1;::::0;-1:-1:-1;;;;;41254:15:0;::::1;::::0;::::1;::::0;3157:18:1;;41254:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41295:27;::::0;-1:-1:-1;;;41295:27:0;;-1:-1:-1;;;;;11140:32:1;;;41295:27:0::1;::::0;::::1;11122:51:1::0;11189:18;;;11182:34;;;41236:48:0;;-1:-1:-1;41295:14:0;;::::1;::::0;::::1;::::0;11095:18:1;;41295:27:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20394:349::-:0;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;20461:11:::1;:21:::0;;-1:-1:-1;;;;20461:21:0::1;-1:-1:-1::0;;;20461:21:0;::::1;;;;::::0;;20493:32:::1;20519:4;20493:17;:32::i;:::-;20554:13;::::0;20536:32:::1;::::0;-1:-1:-1;;;;;20554:13:0::1;20536:17;:32::i;:::-;20597:4;::::0;20579:23:::1;::::0;-1:-1:-1;;;;;20597:4:0::1;20579:17;:23::i;:::-;20613:26;20631:7;6754::::0;6781:6;-1:-1:-1;;;;;6781:6:0;;6716:79;20613:26:::1;20653:11;::::0;-1:-1:-1;;;20653:11:0;::::1;;;:30:::0;::::1;;;-1:-1:-1::0;20668:10:0::1;::::0;:15;20653:30:::1;20650:86;;;20712:12;20699:10;:25:::0;20650:86:::1;20394:349:::0;:::o;24717:253::-;24783:7;24822;;24811;:18;;24803:73;;;;-1:-1:-1;;;24803:73:0;;11679:2:1;24803:73:0;;;11661:21:1;11718:2;11698:18;;;11691:30;11757:34;11737:18;;;11730:62;-1:-1:-1;;;11808:18:1;;;11801:40;11858:19;;24803:73:0;11477:406:1;24803:73:0;24887:19;24910:10;:8;:10::i;:::-;24887:33;-1:-1:-1;24938:24:0;:7;24887:33;24938:11;:24::i;:::-;24931:31;24717:253;-1:-1:-1;;;24717:253:0:o;41801:113::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;41874:25:0::1;;::::0;;;:18:::1;:25;::::0;;;;:32;;-1:-1:-1;;41874:32:0::1;41902:4;41874:32;::::0;;41801:113::o;25249:479::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25331:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;25323:60;;;::::0;-1:-1:-1;;;25323:60:0;;12090:2:1;25323:60:0::1;::::0;::::1;12072:21:1::0;12129:2;12109:18;;;12102:30;12168:29;12148:18;;;12141:57;12215:18;;25323:60:0::1;11888:351:1::0;25323:60:0::1;25399:9;25394:327;25418:9;:16:::0;25414:20;::::1;25394:327;;;25476:7;-1:-1:-1::0;;;;;25460:23:0::1;:9;25470:1;25460:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;25460:12:0::1;:23:::0;25456:254:::1;;25519:9;25529:16:::0;;:20:::1;::::0;25548:1:::1;::::0;25529:20:::1;:::i;:::-;25519:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;25504:9:::1;:12:::0;;-1:-1:-1;;;;;25519:31:0;;::::1;::::0;25514:1;;25504:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;25504:46:0::1;-1:-1:-1::0;;;;;25504:46:0;;::::1;;::::0;;25569:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;25608:11:::1;:20:::0;;;;:28;;-1:-1:-1;;25608:28:0::1;::::0;;25655:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;25655:15:0;;;;;-1:-1:-1;;;;;;25655:15:0::1;::::0;;;;;25394:327:::1;25249:479:::0;:::o;25456:254::-:1;25436:3:::0;::::1;::::0;::::1;:::i;:::-;;;;25394:327;;;;25249:479:::0;:::o;20975:238::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;21036:11:::1;:17:::0;;-1:-1:-1;;;;21036:17:0::1;::::0;;21081:7:::1;::::0;:24:::1;::::0;21103:1:::1;::::0;21081:17:::1;::::0;21093:4:::1;21081:11;:17::i;:24::-;21063:15;:42:::0;21124:15:::1;:22:::0;;-1:-1:-1;;21124:22:0::1;21142:4;21124:22;::::0;;21156:49:::1;21180:24;21198:4;21180:9;:24::i;:::-;21156:23;:49::i;:::-;20975:238::o:0;23154:218::-;1100:10;23242:4;23291:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;23291:34:0;;;;;;;;;;23242:4;;23259:83;;23282:7;;23291:50;;23330:10;23291:38;:50::i;23884:377::-;1100:10;23936:14;23985:19;;;:11;:19;;;;;;;;23984:20;23976:77;;;;-1:-1:-1;;;23976:77:0;;12708:2:1;23976:77:0;;;12690:21:1;12747:2;12727:18;;;12720:30;12786:34;12766:18;;;12759:62;-1:-1:-1;;;12837:18:1;;;12830:42;12889:19;;23976:77:0;12506:408:1;23976:77:0;24065:15;24089:19;24100:7;24089:10;:19::i;:::-;-1:-1:-1;;;;;;;;;24137:15:0;;;;;;:7;:15;;;;;;24064:44;;-1:-1:-1;24137:28:0;;:15;-1:-1:-1;24064:44:0;24137:19;:28::i;:::-;-1:-1:-1;;;;;24119:15:0;;;;;;:7;:15;;;;;:46;24186:7;;:20;;24198:7;24186:11;:20::i;:::-;24176:7;:30;24230:10;;:23;;24245:7;24230:14;:23::i;:::-;24217:10;:36;-1:-1:-1;;;23884:377:0:o;20867:96::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;20936:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;20936:19:0::1;-1:-1:-1::0;;;;20936:19:0;;::::1;::::0;;;::::1;::::0;;20867:96::o;24273:436::-;24363:7;24402;;24391;:18;;24383:62;;;;-1:-1:-1;;;24383:62:0;;13121:2:1;24383:62:0;;;13103:21:1;13160:2;13140:18;;;13133:30;13199:33;13179:18;;;13172:61;13250:18;;24383:62:0;12919:355:1;24383:62:0;24461:17;24456:246;;24496:15;24520:19;24531:7;24520:10;:19::i;:::-;-1:-1:-1;24495:44:0;;-1:-1:-1;24554:14:0;;-1:-1:-1;;;;;24554:14:0;24456:246;24603:23;24634:19;24645:7;24634:10;:19::i;:::-;-1:-1:-1;24601:52:0;;-1:-1:-1;24668:22:0;;-1:-1:-1;;;;;24668:22:0;20757:102;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;20829:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;20829:22:0::1;-1:-1:-1::0;;;;20829:22:0;;::::1;::::0;;;::::1;::::0;;20757:102::o;40663:129::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;40751:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;40751:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;40663:129::o;24978:263::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25057:16:0;::::1;25076:1;25057:16:::0;;;:7:::1;:16;::::0;;;;;:20;25054:108:::1;;-1:-1:-1::0;;;;;25133:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;25113:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;25094:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;25054:108:::1;-1:-1:-1::0;;;;;25172:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;25172:27:0::1;25195:4;25172:27:::0;;::::1;::::0;;;25210:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;25210:23:0::1;::::0;;::::1;::::0;;24978:263::o;42108:510::-;1100:10;42204:16;42243:32;;;:18;:32;;;;;;;;42235:90;;;;-1:-1:-1;;;42235:90:0;;13481:2:1;42235:90:0;;;13463:21:1;13520:2;13500:18;;;13493:30;13559:34;13539:18;;;13532:62;-1:-1:-1;;;13610:18:1;;;13603:43;13663:19;;42235:90:0;13279:409:1;42235:90:0;42344:35;;;42336:90;;;;-1:-1:-1;;;42336:90:0;;13895:2:1;42336:90:0;;;13877:21:1;13934:2;13914:18;;;13907:30;13973:34;13953:18;;;13946:62;-1:-1:-1;;;14024:18:1;;;14017:40;14074:19;;42336:90:0;13693:406:1;42336:90:0;42443:28;;;42437:174;;;42487:84;1100:10;42516;;42527:8;42516:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;42538:7;;42546:8;42538:17;;;;;;;:::i;:::-;;;;;;;42558:5;42538:25;;;;:::i;:::-;42565:5;42487:14;:84::i;:::-;42586:13;42598:1;42586:13;;:::i;:::-;;;42437:174;;;42193:425;42108:510;;;;:::o;22132:198::-;-1:-1:-1;;;;;22222:20:0;;22198:7;22222:20;;;:11;:20;;;;;;;;22218:49;;;-1:-1:-1;;;;;;22251:16:0;;;;;:7;:16;;;;;;;22132:198::o;22218:49::-;-1:-1:-1;;;;;22305:16:0;;;;;;:7;:16;;;;;;22285:37;;:19;:37::i;6941:148::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;7048:1:::1;7032:6:::0;;7011:40:::1;::::0;-1:-1:-1;;;;;7032:6:0;;::::1;::::0;7011:40:::1;::::0;7048:1;;7011:40:::1;7079:1;7062:19:::0;;-1:-1:-1;;;;;;7062:19:0::1;::::0;;6941:148::o;39446:198::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;39533:9:::1;39528:109;39544:20:::0;;::::1;39528:109;;;39621:4;39586:18;:32;39605:9;;39615:1;39605:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;39586:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;39586:32:0;:39;;-1:-1:-1;;39586:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;39566:3:::1;::::0;::::1;:::i;:::-;;;39528:109;;;;39446:198:::0;;:::o;41010:135::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;41095:42:::1;::::0;-1:-1:-1;;;;;41095:19:0;::::1;::::0;41115:21:::1;41095:42:::0;::::1;;;::::0;::::1;::::0;;;41115:21;41095:19;:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;39784:341:::0;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;39930:15:::1;:43:::0;;-1:-1:-1;;;;;39930:43:0;;::::1;-1:-1:-1::0;;;;;;39930:43:0;;::::1;;::::0;;;39984:9:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;40026:13:::1;:39:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;40076:14:::1;:41:::0;;;;;::::1;::::0;::::1;;::::0;;39784:341::o;40806:188::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;40893:9:::1;40888:99;40904:20:::0;;::::1;40888:99;;;40971:4;40946:10;:24;40957:9;;40967:1;40957:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;40946:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;40946:24:0;:29;;-1:-1:-1;;40946:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;40926:3:::1;::::0;::::1;:::i;:::-;;;40888:99;;41922:178:::0;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;42076:16:::1;42056;42046:7;;:26;;;;:::i;:::-;42045:47;;;;:::i;:::-;42029:13;:63:::0;-1:-1:-1;;41922:178:0:o;21843:87::-;21882:13;21915:7;21908:14;;;;;:::i;23380:269::-;23473:4;23490:129;1100:10;23513:7;23522:96;23561:15;23522:96;;;;;;;;;;;;;;;;;1100:10;23522:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;23522:34:0;;;;;;;;;;;;:38;:96::i;22338:167::-;22416:4;22433:42;1100:10;22457:9;22468:6;22433:9;:42::i;42627:748::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;42815:16:::1;:32:::0;;;42858:16:::1;:32:::0;;;42901:10:::1;:20:::0;;;42932:17:::1;:33:::0;;;42976:14:::1;:28:::0;;;43015:15:::1;:30:::0;;;43058:13:::1;:29:::0;;;43098:12:::1;:28:::0;;;43137:6:::1;:16:::0;;;43164:12:::1;:28:::0;;;43203:10:::1;:24:::0;;;43238:11:::1;:26:::0;;;43290:75:::1;43033:12:::0;43290:58:::1;42993:11:::0;43290:58;42914:7;43290:58;42834:13;42877;43290:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:75::-;43279:8;:86:::0;-1:-1:-1;;;;;;42627:748:0:o;39662:110::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;39729:27:0::1;39759:5;39729:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;39729:35:0::1;::::0;;39662:110::o;21221:523::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;21294:29:::1;21345:9;21294:61;;21366:16;21403:10;-1:-1:-1::0;;;;;21403:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21385:47:0::1;;21441:4;21448:10;-1:-1:-1::0;;;;;21448:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21385:81;::::0;-1:-1:-1;;;;;;21385:81:0::1;::::0;;;;;;-1:-1:-1;;;;;15118:15:1;;;21385:81:0::1;::::0;::::1;15100:34:1::0;15170:15;;15150:18;;;15143:43;15035:18;;21385:81:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21366:100:::0;-1:-1:-1;;;;;;21481:22:0;::::1;21477:221;;21554:10;-1:-1:-1::0;;;;;21554:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21536:50:0::1;;21595:4;21602:10;-1:-1:-1::0;;;;;21602:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21536:84;::::0;-1:-1:-1;;;;;;21536:84:0::1;::::0;;;;;;-1:-1:-1;;;;;15118:15:1;;;21536:84:0::1;::::0;::::1;15100:34:1::0;15170:15;;15150:18;;;15143:43;15035:18;;21536:84:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21520:13;:100:::0;;-1:-1:-1;;;;;;21520:100:0::1;-1:-1:-1::0;;;;;21520:100:0;;;::::1;::::0;;;::::1;::::0;;21477:221:::1;;;21662:13;:24:::0;;-1:-1:-1;;;;;;21662:24:0::1;-1:-1:-1::0;;;;;21662:24:0;::::1;;::::0;;21477:221:::1;-1:-1:-1::0;21708:15:0::1;:28:::0;;-1:-1:-1;;;;;;21708:28:0::1;-1:-1:-1::0;;;;;21708:28:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;21221:523:0:o;39326:112::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;39396:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;39396:34:0::1;39426:4;39396:34;::::0;;39326:112::o;7097:244::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7186:22:0;::::1;7178:73;;;::::0;-1:-1:-1;;;7178:73:0;;15399:2:1;7178:73:0::1;::::0;::::1;15381:21:1::0;15438:2;15418:18;;;15411:30;15477:34;15457:18;;;15450:62;-1:-1:-1;;;15528:18:1;;;15521:36;15574:19;;7178:73:0::1;15197:402:1::0;7178:73:0::1;7288:6;::::0;;7267:38:::1;::::0;-1:-1:-1;;;;;7267:38:0;;::::1;::::0;7288:6;::::1;::::0;7267:38:::1;::::0;::::1;7316:6;:17:::0;;-1:-1:-1;;;;;;7316:17:0::1;-1:-1:-1::0;;;;;7316:17:0;;;::::1;::::0;;;::::1;::::0;;7097:244::o;43383:424::-;6850:6;;-1:-1:-1;;;;;6850:6:0;1100:10;6850:22;6842:67;;;;-1:-1:-1;;;6842:67:0;;;;;;;:::i;:::-;43563:17:::1;:33:::0;;;;43607:17:::1;:33:::0;;;;43651:11:::1;:21:::0;43683:18:::1;:34:::0;;;;43728:15:::1;:29:::0;;;;43768:16:::1;:31:::0;43383:424::o;2875:132::-;2933:7;2960:39;2964:1;2967;2960:39;;;;;;;;;;;;;;;;;:3;:39::i;2615:250::-;2673:7;2697:1;2702;2697:6;2693:47;;-1:-1:-1;2727:1:0;2720:8;;2693:47;2752:9;2764:5;2768:1;2764;:5;:::i;:::-;2752:17;-1:-1:-1;2797:1:0;2788:5;2792:1;2752:17;2788:5;:::i;:::-;:10;2780:56;;;;-1:-1:-1;;;2780:56:0;;15806:2:1;2780:56:0;;;15788:21:1;15845:2;15825:18;;;15818:30;15884:34;15864:18;;;15857:62;-1:-1:-1;;;15935:18:1;;;15928:31;15976:19;;2780:56:0;15604:397:1;2082:181:0;2140:7;;2172:5;2176:1;2172;:5;:::i;:::-;2160:17;;2201:1;2196;:6;;2188:46;;;;-1:-1:-1;;;2188:46:0;;16208:2:1;2188:46:0;;;16190:21:1;16247:2;16227:18;;;16220:30;16286:29;16266:18;;;16259:57;16333:18;;2188:46:0;16006:351:1;25736:337:0;-1:-1:-1;;;;;25829:19:0;;25821:68;;;;-1:-1:-1;;;25821:68:0;;16564:2:1;25821:68:0;;;16546:21:1;16603:2;16583:18;;;16576:30;16642:34;16622:18;;;16615:62;-1:-1:-1;;;16693:18:1;;;16686:34;16737:19;;25821:68:0;16362:400:1;25821:68:0;-1:-1:-1;;;;;25908:21:0;;25900:68;;;;-1:-1:-1;;;25900:68:0;;16969:2:1;25900:68:0;;;16951:21:1;17008:2;16988:18;;;16981:30;17047:34;17027:18;;;17020:62;-1:-1:-1;;;17098:18:1;;;17091:32;17140:19;;25900:68:0;16767:398:1;25900:68:0;-1:-1:-1;;;;;25981:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26033:32;;160:25:1;;;26033:32:0;;133:18:1;26033:32:0;;;;;;;25736:337;;;:::o;26081:2342::-;-1:-1:-1;;;;;26203:18:0;;26195:68;;;;-1:-1:-1;;;26195:68:0;;17372:2:1;26195:68:0;;;17354:21:1;17411:2;17391:18;;;17384:30;17450:34;17430:18;;;17423:62;-1:-1:-1;;;17501:18:1;;;17494:35;17546:19;;26195:68:0;17170:401:1;26195:68:0;-1:-1:-1;;;;;26282:16:0;;26274:64;;;;-1:-1:-1;;;26274:64:0;;17778:2:1;26274:64:0;;;17760:21:1;17817:2;17797:18;;;17790:30;17856:34;17836:18;;;17829:62;-1:-1:-1;;;17907:18:1;;;17900:33;17950:19;;26274:64:0;17576:399:1;26274:64:0;26366:1;26357:6;:10;26349:64;;;;-1:-1:-1;;;26349:64:0;;18182:2:1;26349:64:0;;;18164:21:1;18221:2;18201:18;;;18194:30;18260:34;18240:18;;;18233:62;-1:-1:-1;;;18311:18:1;;;18304:39;18360:19;;26349:64:0;17980:405:1;26349:64:0;-1:-1:-1;;;;;26433:15:0;;;;;;:9;:15;;;;;;;;26432:16;26424:52;;;;-1:-1:-1;;;26424:52:0;;18592:2:1;26424:52:0;;;18574:21:1;18631:2;18611:18;;;18604:30;18670:25;18650:18;;;18643:53;18713:18;;26424:52:0;18390:347:1;26424:52:0;6754:7;6781:6;-1:-1:-1;;;;;26491:14:0;;;6781:6;;26491:14;;;;:30;;-1:-1:-1;6754:7:0;6781:6;-1:-1:-1;;;;;26509:12:0;;;6781:6;;26509:12;;26491:30;26487:84;;;26531:11;;-1:-1:-1;;;26531:11:0;;;;26523:48;;;;-1:-1:-1;;;26523:48:0;;18944:2:1;26523:48:0;;;18926:21:1;18983:2;18963:18;;;18956:30;19022:26;19002:18;;;18995:54;19066:18;;26523:48:0;18742:348:1;26523:48:0;26710:13;;26633:12;;-1:-1:-1;;;;;26704:19:0;;;26710:13;;26704:19;;:40;;-1:-1:-1;26731:13:0;;-1:-1:-1;;;;;26727:17:0;;;26731:13;;26727:17;26704:40;26703:99;;;;-1:-1:-1;;;;;;26751:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;26779:22:0;;;;;;:18;:22;;;;;;;;26751:50;26749:53;26703:99;26698:229;;;26836:12;;26828:6;:20;;26820:66;;;;-1:-1:-1;;;26820:66:0;;;;;;;:::i;:::-;-1:-1:-1;26911:4:0;26698:229;26953:1;26942:10;;:12;:59;;;;-1:-1:-1;;;;;;26960:22:0;;;;;;:18;:22;;;;;;;;26959:23;:41;;;;-1:-1:-1;6754:7:0;6781:6;-1:-1:-1;;;;;26986:14:0;;;6781:6;;26986:14;;26959:41;26939:200;;;27052:15;;27037:13;27047:2;27037:9;:13::i;:::-;27029:21;;:6;:21;:::i;:::-;:38;;27021:106;;;;-1:-1:-1;;;27021:106:0;;19700:2:1;27021:106:0;;;19682:21:1;19739:2;19719:18;;;19712:30;19778:34;19758:18;;;19751:62;-1:-1:-1;;;19829:18:1;;;19822:32;19871:19;;27021:106:0;19498:398:1;27021:106:0;27162:15;;;;:38;;;;-1:-1:-1;27187:13:0;;-1:-1:-1;;;;;27181:19:0;;;27187:13;;27181:19;27162:38;:65;;;;-1:-1:-1;;;;;;27205:22:0;;;;;;:16;:22;;;;;;;;27204:23;27162:65;27159:260;;;-1:-1:-1;;;;;27251:19:0;;;;;;:13;:19;;;;;;27273:15;-1:-1:-1;27243:88:0;;;;-1:-1:-1;;;27243:88:0;;20103:2:1;27243:88:0;;;20085:21:1;20142:2;20122:18;;;20115:30;20181:34;20161:18;;;20154:62;-1:-1:-1;;;20232:18:1;;;20225:36;20278:19;;27243:88:0;19901:402:1;27243:88:0;27386:21;;27368:39;;:15;:39;:::i;:::-;-1:-1:-1;;;;;27346:19:0;;;;;;:13;:19;;;;;:61;27159:260;27445:8;;27429:15;:24;27478:17;;27464:13;:31;27511:11;;-1:-1:-1;;;27511:11:0;;;;:34;;;;-1:-1:-1;27532:13:0;;-1:-1:-1;;;;;27526:19:0;;;27532:13;;27526:19;27511:34;27508:319;;;27585:13;;27577:6;:21;;27569:67;;;;-1:-1:-1;;;27569:67:0;;;;;;;:::i;:::-;27668:100;27752:15;;27668:79;27730:16;;27668:57;27713:11;;27668:40;27690:17;;27668;;:21;;:40;;;;:::i;:100::-;27651:15;:117;27797:18;;27783:13;:32;27508:319;27842:14;;-1:-1:-1;;;27842:14:0;;;;27839:150;;;27876:11;;-1:-1:-1;;;27876:11:0;;;;:36;;;;-1:-1:-1;27899:13:0;;-1:-1:-1;;;;;27891:21:0;;;27899:13;;27891:21;27876:36;27873:105;;;27960:1;27944:15;:17;27873:105;28022:6;;-1:-1:-1;;;28022:6:0;;;;28021:7;:22;;;;-1:-1:-1;28032:11:0;;-1:-1:-1;;;28032:11:0;;;;28021:22;:45;;;;-1:-1:-1;28053:13:0;;-1:-1:-1;;;;;28047:19:0;;;28053:13;;28047:19;28021:45;28017:350;;;28091:28;28122:24;28140:4;28122:9;:24::i;:::-;28091:55;;28200:13;;28178:20;:35;28175:169;;-1:-1:-1;28260:13:0;;28296:32;28260:13;28296:10;:32::i;:::-;28068:299;28017:350;28377:38;28392:4;28397:2;28400:6;28407:7;28377:14;:38::i;2415:192::-;2501:7;2537:12;2529:6;;;;2521:29;;;;-1:-1:-1;;;2521:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2561:9:0;2573:5;2577:1;2573;:5;:::i;:::-;2561:17;2415:192;-1:-1:-1;;;;;2415:192:0:o;37570:163::-;37611:7;37632:15;37649;37668:19;:17;:19::i;:::-;37631:56;;-1:-1:-1;37631:56:0;-1:-1:-1;37705:20:0;37631:56;;37705:11;:20::i;:::-;37698:27;;;;37570:163;:::o;30097:1617::-;18645:6;:13;;-1:-1:-1;;;;18645:13:0;-1:-1:-1;;;18645:13:0;;;30308:8:::1;::::0;30276:12:::1;::::0;18645:13;;30237:101:::1;::::0;30336:1:::1;::::0;30237:80:::1;::::0;;;:20;;:38:::1;:52::i;:::-;:70:::0;::::1;:80::i;:101::-;30211:127:::0;-1:-1:-1;30351:20:0::1;30374:41;:20:::0;30211:127;30374:24:::1;:41::i;:::-;30351:64;;30436:30;30453:12;30436:16;:30::i;:::-;30568:12;::::0;30499:21:::1;::::0;30479:17:::1;::::0;30555:33:::1;::::0;30568:19:::1;::::0;30585:1:::1;30568:16;:19::i;:::-;30555:8;::::0;;:12:::1;:33::i;:::-;30533:55;;30601:26;30630:93;30721:1;30630:72;30690:11;30630:41;30658:12;;30630:9;:27;;:41;;;;:::i;:93::-;30601:122;;30744:20;30767:38;30793:11;30767:21;30781:6;;30767:9;:13;;:21;;;;:::i;:38::-;30744:61;;30816:26;30845:68;30891:11;30845:27;30859:12;;30845:9;:13;;:27;;;;:::i;:68::-;30816:97;;30924:24;30951:42;30981:11;30951:25;30965:10;;30951:9;:13;;:25;;;;:::i;:42::-;30924:69;;31004:25;31032:43;31063:11;31032:26;31046:11;;31032:9;:13;;:26;;;;:::i;:43::-;31004:71:::0;-1:-1:-1;31168:21:0::1;31203:22:::0;;31200:273:::1;;31274:15;::::0;31242:48:::1;::::0;31255:18;;-1:-1:-1;;;;;31274:15:0::1;31242:12;:48::i;:::-;31335:13;::::0;31305:44:::1;::::0;31318:16;;-1:-1:-1;;;;;31335:13:0::1;31305:12;:44::i;:::-;31395:14;::::0;31364:46:::1;::::0;31377:17;;-1:-1:-1;;;;;31395:14:0::1;31364:12;:46::i;:::-;31451:9;::::0;31425:36:::1;::::0;31438:12;;-1:-1:-1;;;;;31451:9:0::1;31425:12;:36::i;:::-;31487:19:::0;;31483:104:::1;;31527:48;31540:15;31556:18;31527:12;:48::i;:::-;31609:13;::::0;31623:4:::1;::::0;31599:50:::1;::::0;-1:-1:-1;;;;;31609:13:0;;::::1;::::0;31623:4:::1;31628:20:::0;31599:9:::1;:50::i;:::-;31675:13;;;;;;;;;-1:-1:-1::0;;;;;31675:13:0::1;-1:-1:-1::0;;;;;31660:34:0::1;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18681:6:0;:14;;-1:-1:-1;;;;18681:14:0;;;-1:-1:-1;;;;;;;;;;;;;30097:1617:0:o;36368:419::-;36427:7;36436;36445;36454;36463;36472;36493:23;36518:12;36532:18;36554:20;36566:7;36554:11;:20::i;:::-;36492:82;;;;;;36586:15;36603:23;36628:12;36644:50;36656:7;36665:4;36671:10;36683;:8;:10::i;:::-;36644:11;:50::i;:::-;36585:109;;;;-1:-1:-1;36585:109:0;;-1:-1:-1;36745:15:0;;-1:-1:-1;36762:4:0;;-1:-1:-1;36768:10:0;;-1:-1:-1;36368:419:0;;-1:-1:-1;;;;;36368:419:0:o;2271:136::-;2329:7;2356:43;2360:1;2363;2356:43;;;;;;;;;;;;;;;;;:3;:43::i;32934:943::-;33074:13;;33124:15;;33154:7;33150:88;;33193:1;33177:13;:17;;;33209:15;:17;33150:88;-1:-1:-1;;;;;33262:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;33286:22:0;;;;;;:11;:22;;;;;;;;33285:23;33262:46;33258:467;;;33325:48;33347:6;33355:9;33366:6;33325:21;:48::i;:::-;33258:467;;;-1:-1:-1;;;;;33396:19:0;;;;;;:11;:19;;;;;;;;33395:20;:46;;;;-1:-1:-1;;;;;;33419:22:0;;;;;;:11;:22;;;;;;;;33395:46;33391:334;;;33458:46;33478:6;33486:9;33497:6;33458:19;:46::i;33391:334::-;-1:-1:-1;;;;;33526:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;33549:22:0;;;;;;:11;:22;;;;;;;;33526:45;33522:203;;;33588:48;33610:6;33618:9;33629:6;33588:21;:48::i;33522:203::-;33669:44;33687:6;33695:9;33706:6;33669:17;:44::i;:::-;33749:7;33745:125;;33772:13;:38;;;33825:15;:33;;;33745:125;33030:847;;32934:943;;;;:::o;3015:278::-;3101:7;3136:12;3129:5;3121:28;;;;-1:-1:-1;;;3121:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3160:9:0;3172:5;3176:1;3172;:5;:::i;28431:1531::-;18645:6;:13;;-1:-1:-1;;;;18645:13:0;-1:-1:-1;;;18645:13:0;;;28629:8:::1;::::0;28597:12:::1;::::0;18645:13;;28558:101:::1;::::0;28657:1:::1;::::0;28558:80:::1;::::0;;;:20;;:38:::1;:52::i;:101::-;28532:127:::0;-1:-1:-1;28672:20:0::1;28695:41;:20:::0;28532:127;28695:24:::1;:41::i;:::-;28672:64;;28757:30;28774:12;28757:16;:30::i;:::-;28889:12;::::0;28820:21:::1;::::0;28800:17:::1;::::0;28876:33:::1;::::0;28889:19:::1;::::0;28906:1:::1;28889:16;:19::i;28876:33::-;28854:55;;28922:26;28951:93;29042:1;28951:72;29011:11;28951:41;28979:12;;28951:9;:27;;:41;;;;:::i;:93::-;28922:122;;29065:20;29088:38;29114:11;29088:21;29102:6;;29088:9;:13;;:21;;;;:::i;:38::-;29065:61;;29137:26;29166:68;29212:11;29166:27;29180:12;;29166:9;:13;;:27;;;;:::i;:68::-;29137:97;;29246:24;29273:66;29317:11;29273:25;29287:10;;29273:9;:13;;:25;;;;:::i;:66::-;29246:93;;29350:25;29378:67;29423:11;29378:26;29392:11;;29378:9;:13;;:26;;;;:::i;:67::-;29350:95:::0;-1:-1:-1;29536:21:0::1;29571:22:::0;;29568:273:::1;;29642:15;::::0;29610:48:::1;::::0;29623:18;;-1:-1:-1;;;;;29642:15:0::1;29610:12;:48::i;:::-;29703:13;::::0;29673:44:::1;::::0;29686:16;;-1:-1:-1;;;;;29703:13:0::1;29673:12;:44::i;:::-;29763:14;::::0;29732:46:::1;::::0;29745:17;;-1:-1:-1;;;;;29763:14:0::1;29732:12;:46::i;:::-;29819:9;::::0;29793:36:::1;::::0;29806:12;;-1:-1:-1;;;;;29819:9:0::1;29793:12;:36::i;:::-;29855:19:::0;;29851:104:::1;;29895:48;29908:15;29924:18;29895:12;:48::i;:::-;-1:-1:-1::0;;18681:6:0;:14;;-1:-1:-1;;;;18681:14:0;;;-1:-1:-1;;;;;;;;;28431:1531:0:o;38034:561::-;38131:7;;38167;;38084;;;;;38191:289;38215:9;:16;38211:20;;38191:289;;;38281:7;38257;:21;38265:9;38275:1;38265:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38265:12:0;38257:21;;;;;;;;;;;;;:31;;:66;;;38316:7;38292;:21;38300:9;38310:1;38300:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38300:12:0;38292:21;;;;;;;;;;;;;:31;38257:66;38253:97;;;38333:7;;38342;;38325:25;;;;;;;38034:561;;:::o;38253:97::-;38375:34;38387:7;:21;38395:9;38405:1;38395:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38395:12:0;38387:21;;;;;;;;;;;;;38375:7;;:11;:34::i;:::-;38365:44;;38434:34;38446:7;:21;38454:9;38464:1;38454:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38454:12:0;38446:21;;;;;;;;;;;;;38434:7;;:11;:34::i;:::-;38424:44;-1:-1:-1;38233:3:0;;;;:::i;:::-;;;;38191:289;;;-1:-1:-1;38516:7:0;;38504;;:20;;:11;:20::i;:::-;38494:7;:30;38490:61;;;38534:7;;38543;;38526:25;;;;;;38034:561;;:::o;38490:61::-;38570:7;;38579;;-1:-1:-1;38034:561:0;-1:-1:-1;38034:561:0:o;31733:666::-;31883:16;;;31897:1;31883:16;;;;;;;;31859:21;;31883:16;;;;;;;;;;-1:-1:-1;31883:16:0;31859:40;;31928:4;31910;31915:1;31910:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;31910:23:0;;;:7;;;;;;;;;;:23;;;;31954:15;;:22;;;-1:-1:-1;;;31954:22:0;;;;:15;;;;;:20;;:22;;;;;31910:7;;31954:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31944:4;31949:1;31944:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;31944:32:0;;;:7;;;;;;;;;:32;32021:15;;31989:62;;32006:4;;32021:15;32039:11;31989:8;:62::i;:::-;32090:15;;:240;;-1:-1:-1;;;32090:240:0;;-1:-1:-1;;;;;32090:15:0;;;;:66;;:240;;32171:11;;32090:15;;32241:4;;32268;;32304:15;;32090:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32356:35;32373:11;32386:4;32356:35;;;;;;;:::i;:::-;;;;;;;;31788:611;31733:666;:::o;29974:111::-;30054:23;;-1:-1:-1;;;;;30054:15:0;;;:23;;;;;30070:6;;30054:23;;;;30070:6;30054:15;:23;;;;;;;;;;;;;;;;;;;32413:513;32593:15;;32561:62;;32578:4;;-1:-1:-1;;;;;32593:15:0;32611:11;32561:8;:62::i;:::-;32666:15;;-1:-1:-1;;;;;32666:15:0;:31;32705:9;32738:4;32758:11;32666:15;;32870:7;6754;6781:6;-1:-1:-1;;;;;6781:6:0;;6716:79;32870:7;32666:252;;;;;;-1:-1:-1;;;;;;32666:252:0;;;-1:-1:-1;;;;;22189:15:1;;;32666:252:0;;;22171:34:1;22221:18;;;22214:34;;;;22264:18;;;22257:34;;;;22307:18;;;22300:34;22371:15;;;22350:19;;;22343:44;32892:15:0;22403:19:1;;;22396:35;22105:19;;32666:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;36795:330::-;36855:7;36864;36873;36893:12;36908:24;36924:7;36908:15;:24::i;:::-;36893:39;;36943:18;36964:30;36986:7;36964:21;:30::i;:::-;36943:51;-1:-1:-1;37005:23:0;37031:33;36943:51;37031:17;:7;37043:4;37031:11;:17::i;:::-;:21;;:33::i;:::-;37005:59;37100:4;;-1:-1:-1;37106:10:0;;-1:-1:-1;36795:330:0;;-1:-1:-1;;;36795:330:0:o;37133:429::-;37248:7;;;;37304:24;:7;37316:11;37304;:24::i;:::-;37286:42;-1:-1:-1;37339:12:0;37354:21;:4;37363:11;37354:8;:21::i;:::-;37339:36;-1:-1:-1;37386:18:0;37407:27;:10;37422:11;37407:14;:27::i;:::-;37386:48;-1:-1:-1;37445:23:0;37471:33;37386:48;37471:17;:7;37483:4;37471:11;:17::i;:33::-;37523:7;;;;-1:-1:-1;37549:4:0;;-1:-1:-1;37133:429:0;;-1:-1:-1;;;;;;;37133:429:0:o;34989:566::-;35092:15;35109:23;35134:12;35148:23;35173:12;35187:18;35209:19;35220:7;35209:10;:19::i;:::-;-1:-1:-1;;;;;35257:15:0;;;;;;:7;:15;;;;;;35091:137;;-1:-1:-1;35091:137:0;;-1:-1:-1;35091:137:0;;-1:-1:-1;35091:137:0;-1:-1:-1;35091:137:0;-1:-1:-1;35091:137:0;-1:-1:-1;35257:28:0;;35277:7;35257:19;:28::i;:::-;-1:-1:-1;;;;;35239:15:0;;;;;;:7;:15;;;;;;;;:46;;;;35314:7;:15;;;;:28;;35334:7;35314:19;:28::i;:::-;-1:-1:-1;;;;;35296:15:0;;;;;;;:7;:15;;;;;;:46;;;;35374:18;;;;;;;:39;;35397:15;35374:22;:39::i;:::-;-1:-1:-1;;;;;35353:18:0;;;;;;:7;:18;;;;;:60;35427:26;35442:10;35427:14;:26::i;:::-;35464:23;35476:4;35482;35464:11;:23::i;:::-;35520:9;-1:-1:-1;;;;;35503:44:0;35512:6;-1:-1:-1;;;;;35503:44:0;;35531:15;35503:44;;;;160:25:1;;148:2;133:18;;14:177;35503:44:0;;;;;;;;35080:475;;;;;;34989:566;;;:::o;34395:586::-;34496:15;34513:23;34538:12;34552:23;34577:12;34591:18;34613:19;34624:7;34613:10;:19::i;:::-;-1:-1:-1;;;;;34661:15:0;;;;;;:7;:15;;;;;;34495:137;;-1:-1:-1;34495:137:0;;-1:-1:-1;34495:137:0;;-1:-1:-1;34495:137:0;-1:-1:-1;34495:137:0;-1:-1:-1;34495:137:0;-1:-1:-1;34661:28:0;;34495:137;34661:19;:28::i;:::-;-1:-1:-1;;;;;34643:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;34721:18;;;;;:7;:18;;;;;:39;;34744:15;34721:22;:39::i;:::-;-1:-1:-1;;;;;34700:18:0;;;;;;:7;:18;;;;;;;;:60;;;;34792:7;:18;;;;:39;;34815:15;34792:22;:39::i;35563:642::-;35666:15;35683:23;35708:12;35722:23;35747:12;35761:18;35783:19;35794:7;35783:10;:19::i;:::-;-1:-1:-1;;;;;35831:15:0;;;;;;:7;:15;;;;;;35665:137;;-1:-1:-1;35665:137:0;;-1:-1:-1;35665:137:0;;-1:-1:-1;35665:137:0;-1:-1:-1;35665:137:0;-1:-1:-1;35665:137:0;-1:-1:-1;35831:28:0;;35851:7;35831:19;:28::i;:::-;-1:-1:-1;;;;;35813:15:0;;;;;;:7;:15;;;;;;;;:46;;;;35888:7;:15;;;;:28;;35908:7;35888:19;:28::i;33885:502::-;33984:15;34001:23;34026:12;34040:23;34065:12;34079:18;34101:19;34112:7;34101:10;:19::i;:::-;-1:-1:-1;;;;;34149:15:0;;;;;;:7;:15;;;;;;33983:137;;-1:-1:-1;33983:137:0;;-1:-1:-1;33983:137:0;;-1:-1:-1;33983:137:0;-1:-1:-1;33983:137:0;-1:-1:-1;33983:137:0;-1:-1:-1;34149:28:0;;33983:137;34149:19;:28::i;38974:160::-;39038:7;39065:61;39110:5;39065:26;39077:13;;39065:7;:11;;:26;;;;:::i;39146:168::-;39216:7;39243:63;39290:5;39243:28;39255:15;;39243:7;:11;;:28;;;;:::i;38607:355::-;38670:19;38693:10;:8;:10::i;:::-;38670:33;-1:-1:-1;38714:18:0;38735:27;:10;38670:33;38735:14;:27::i;:::-;38814:4;38798:22;;;;:7;:22;;;;;;38714:48;;-1:-1:-1;38798:38:0;;38714:48;38798:26;:38::i;:::-;38789:4;38773:22;;;;:7;:22;;;;;;;;:63;;;;38850:11;:26;;;;;;38847:107;;;38932:4;38916:22;;;;:7;:22;;;;;;:38;;38943:10;38916:26;:38::i;:::-;38907:4;38891:22;;;;:7;:22;;;;;:63;38659:303;;38607:355;:::o;36213:147::-;36291:7;;:17;;36303:4;36291:11;:17::i;:::-;36281:7;:27;36332:10;;:20;;36347:4;36332:14;:20::i;:::-;36319:10;:33;-1:-1:-1;;36213:147:0:o;196:367:1:-;259:8;269:6;323:3;316:4;308:6;304:17;300:27;290:55;;341:1;338;331:12;290:55;-1:-1:-1;364:20:1;;407:18;396:30;;393:50;;;439:1;436;429:12;393:50;476:4;468:6;464:17;452:29;;536:3;529:4;519:6;516:1;512:14;504:6;500:27;496:38;493:47;490:67;;;553:1;550;543:12;490:67;196:367;;;;;:::o;568:118::-;654:5;647:13;640:21;633:5;630:32;620:60;;676:1;673;666:12;691:566;783:6;791;799;852:2;840:9;831:7;827:23;823:32;820:52;;;868:1;865;858:12;820:52;908:9;895:23;941:18;933:6;930:30;927:50;;;973:1;970;963:12;927:50;1012:70;1074:7;1065:6;1054:9;1050:22;1012:70;:::i;:::-;1101:8;;-1:-1:-1;986:96:1;-1:-1:-1;;1186:2:1;1171:18;;1158:32;1199:28;1158:32;1199:28;:::i;:::-;1246:5;1236:15;;;691:566;;;;;:::o;1262:597::-;1374:4;1403:2;1432;1421:9;1414:21;1464:6;1458:13;1507:6;1502:2;1491:9;1487:18;1480:34;1532:1;1542:140;1556:6;1553:1;1550:13;1542:140;;;1651:14;;;1647:23;;1641:30;1617:17;;;1636:2;1613:26;1606:66;1571:10;;1542:140;;;1700:6;1697:1;1694:13;1691:91;;;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1691:91;-1:-1:-1;1843:2:1;1822:15;-1:-1:-1;;1818:29:1;1803:45;;;;1850:2;1799:54;;1262:597;-1:-1:-1;;;1262:597:1:o;1864:180::-;1923:6;1976:2;1964:9;1955:7;1951:23;1947:32;1944:52;;;1992:1;1989;1982:12;1944:52;-1:-1:-1;2015:23:1;;1864:180;-1:-1:-1;1864:180:1:o;2049:131::-;-1:-1:-1;;;;;2124:31:1;;2114:42;;2104:70;;2170:1;2167;2160:12;2185:315;2253:6;2261;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2369:9;2356:23;2388:31;2413:5;2388:31;:::i;:::-;2438:5;2490:2;2475:18;;;;2462:32;;-1:-1:-1;;;2185:315:1:o;2697:309::-;2762:6;2770;2823:2;2811:9;2802:7;2798:23;2794:32;2791:52;;;2839:1;2836;2829:12;2791:52;2878:9;2865:23;2897:28;2919:5;2897:28;:::i;3246:248::-;3314:6;3322;3375:2;3363:9;3354:7;3350:23;3346:32;3343:52;;;3391:1;3388;3381:12;3343:52;-1:-1:-1;;3414:23:1;;;3484:2;3469:18;;;3456:32;;-1:-1:-1;3246:248:1:o;3499:456::-;3576:6;3584;3592;3645:2;3633:9;3624:7;3620:23;3616:32;3613:52;;;3661:1;3658;3651:12;3613:52;3700:9;3687:23;3719:31;3744:5;3719:31;:::i;:::-;3769:5;-1:-1:-1;3826:2:1;3811:18;;3798:32;3839:33;3798:32;3839:33;:::i;:::-;3499:456;;3891:7;;-1:-1:-1;;;3945:2:1;3930:18;;;;3917:32;;3499:456::o;3960:401::-;4041:6;4049;4102:2;4090:9;4081:7;4077:23;4073:32;4070:52;;;4118:1;4115;4108:12;4070:52;4157:9;4144:23;4176:31;4201:5;4176:31;:::i;:::-;4226:5;-1:-1:-1;4283:2:1;4268:18;;4255:32;4296:33;4255:32;4296:33;:::i;:::-;4348:7;4338:17;;;3960:401;;;;;:::o;4366:241::-;4422:6;4475:2;4463:9;4454:7;4450:23;4446:32;4443:52;;;4491:1;4488;4481:12;4443:52;4530:9;4517:23;4549:28;4571:5;4549:28;:::i;4612:247::-;4671:6;4724:2;4712:9;4703:7;4699:23;4695:32;4692:52;;;4740:1;4737;4730:12;4692:52;4779:9;4766:23;4798:31;4823:5;4798:31;:::i;5053:309::-;5118:6;5126;5179:2;5167:9;5158:7;5154:23;5150:32;5147:52;;;5195:1;5192;5185:12;5147:52;5231:9;5218:23;5208:33;;5291:2;5280:9;5276:18;5263:32;5304:28;5326:5;5304:28;:::i;5799:382::-;5864:6;5872;5925:2;5913:9;5904:7;5900:23;5896:32;5893:52;;;5941:1;5938;5931:12;5893:52;5980:9;5967:23;5999:31;6024:5;5999:31;:::i;:::-;6049:5;-1:-1:-1;6106:2:1;6091:18;;6078:32;6119:30;6078:32;6119:30;:::i;6186:773::-;6308:6;6316;6324;6332;6385:2;6373:9;6364:7;6360:23;6356:32;6353:52;;;6401:1;6398;6391:12;6353:52;6441:9;6428:23;6470:18;6511:2;6503:6;6500:14;6497:34;;;6527:1;6524;6517:12;6497:34;6566:70;6628:7;6619:6;6608:9;6604:22;6566:70;:::i;:::-;6655:8;;-1:-1:-1;6540:96:1;-1:-1:-1;6743:2:1;6728:18;;6715:32;;-1:-1:-1;6759:16:1;;;6756:36;;;6788:1;6785;6778:12;6756:36;;6827:72;6891:7;6880:8;6869:9;6865:24;6827:72;:::i;:::-;6186:773;;;;-1:-1:-1;6918:8:1;-1:-1:-1;;;;6186:773:1:o;6964:437::-;7050:6;7058;7111:2;7099:9;7090:7;7086:23;7082:32;7079:52;;;7127:1;7124;7117:12;7079:52;7167:9;7154:23;7200:18;7192:6;7189:30;7186:50;;;7232:1;7229;7222:12;7186:50;7271:70;7333:7;7324:6;7313:9;7309:22;7271:70;:::i;:::-;7360:8;;7245:96;;-1:-1:-1;6964:437:1;-1:-1:-1;;;;6964:437:1:o;7666:671::-;7752:6;7760;7768;7776;7829:3;7817:9;7808:7;7804:23;7800:33;7797:53;;;7846:1;7843;7836:12;7797:53;7885:9;7872:23;7904:31;7929:5;7904:31;:::i;:::-;7954:5;-1:-1:-1;8011:2:1;7996:18;;7983:32;8024:33;7983:32;8024:33;:::i;:::-;8076:7;-1:-1:-1;8135:2:1;8120:18;;8107:32;8148:33;8107:32;8148:33;:::i;:::-;8200:7;-1:-1:-1;8259:2:1;8244:18;;8231:32;8272:33;8231:32;8272:33;:::i;:::-;7666:671;;;;-1:-1:-1;7666:671:1;;-1:-1:-1;;7666:671:1:o;8342:523::-;8446:6;8454;8462;8470;8478;8486;8539:3;8527:9;8518:7;8514:23;8510:33;8507:53;;;8556:1;8553;8546:12;8507:53;-1:-1:-1;;8579:23:1;;;8649:2;8634:18;;8621:32;;-1:-1:-1;8700:2:1;8685:18;;8672:32;;8751:2;8736:18;;8723:32;;-1:-1:-1;8802:3:1;8787:19;;8774:33;;-1:-1:-1;8854:3:1;8839:19;8826:33;;-1:-1:-1;8342:523:1;-1:-1:-1;8342:523:1:o;9263:356::-;9465:2;9447:21;;;9484:18;;;9477:30;9543:34;9538:2;9523:18;;9516:62;9610:2;9595:18;;9263:356::o;9624:127::-;9685:10;9680:3;9676:20;9673:1;9666:31;9716:4;9713:1;9706:15;9740:4;9737:1;9730:15;9756:127;9817:10;9812:3;9808:20;9805:1;9798:31;9848:4;9845:1;9838:15;9872:4;9869:1;9862:15;9888:135;9927:3;9948:17;;;9945:43;;9968:18;;:::i;:::-;-1:-1:-1;10015:1:1;10004:13;;9888:135::o;10028:380::-;10107:1;10103:12;;;;10150;;;10171:61;;10225:4;10217:6;10213:17;10203:27;;10171:61;10278:2;10270:6;10267:14;10247:18;10244:38;10241:161;;10324:10;10319:3;10315:20;10312:1;10305:31;10359:4;10356:1;10349:15;10387:4;10384:1;10377:15;10241:161;;10028:380;;;:::o;10759:184::-;10829:6;10882:2;10870:9;10861:7;10857:23;10853:32;10850:52;;;10898:1;10895;10888:12;10850:52;-1:-1:-1;10921:16:1;;10759:184;-1:-1:-1;10759:184:1:o;11227:245::-;11294:6;11347:2;11335:9;11326:7;11322:23;11318:32;11315:52;;;11363:1;11360;11353:12;11315:52;11395:9;11389:16;11414:28;11436:5;11414:28;:::i;12244:125::-;12284:4;12312:1;12309;12306:8;12303:34;;;12317:18;;:::i;:::-;-1:-1:-1;12354:9:1;;12244:125::o;12374:127::-;12435:10;12430:3;12426:20;12423:1;12416:31;12466:4;12463:1;12456:15;12490:4;12487:1;12480:15;14104:168;14144:7;14210:1;14206;14202:6;14198:14;14195:1;14192:21;14187:1;14180:9;14173:17;14169:45;14166:71;;;14217:18;;:::i;:::-;-1:-1:-1;14257:9:1;;14104:168::o;14277:128::-;14317:3;14348:1;14344:6;14341:1;14338:13;14335:39;;;14354:18;;:::i;:::-;-1:-1:-1;14390:9:1;;14277:128::o;14410:217::-;14450:1;14476;14466:132;;14520:10;14515:3;14511:20;14508:1;14501:31;14555:4;14552:1;14545:15;14583:4;14580:1;14573:15;14466:132;-1:-1:-1;14612:9:1;;14410:217::o;14632:251::-;14702:6;14755:2;14743:9;14734:7;14730:23;14726:32;14723:52;;;14771:1;14768;14761:12;14723:52;14803:9;14797:16;14822:31;14847:5;14822:31;:::i;19095:398::-;19297:2;19279:21;;;19336:2;19316:18;;;19309:30;19375:34;19370:2;19355:18;;19348:62;-1:-1:-1;;;19441:2:1;19426:18;;19419:32;19483:3;19468:19;;19095:398::o;20440:461::-;20493:3;20531:5;20525:12;20558:6;20553:3;20546:19;20584:4;20613:2;20608:3;20604:12;20597:19;;20650:2;20643:5;20639:14;20671:1;20681:195;20695:6;20692:1;20689:13;20681:195;;;20760:13;;-1:-1:-1;;;;;20756:39:1;20744:52;;20816:12;;;;20851:15;;;;20792:1;20710:9;20681:195;;;-1:-1:-1;20892:3:1;;20440:461;-1:-1:-1;;;;;20440:461:1:o;20906:582::-;21205:6;21194:9;21187:25;21248:6;21243:2;21232:9;21228:18;21221:34;21291:3;21286:2;21275:9;21271:18;21264:31;21168:4;21312:57;21364:3;21353:9;21349:19;21341:6;21312:57;:::i;:::-;-1:-1:-1;;;;;21405:32:1;;;;21400:2;21385:18;;21378:60;-1:-1:-1;21469:3:1;21454:19;21447:35;21304:65;20906:582;-1:-1:-1;;;20906:582:1:o;21493:332::-;21700:6;21689:9;21682:25;21743:2;21738;21727:9;21723:18;21716:30;21663:4;21763:56;21815:2;21804:9;21800:18;21792:6;21763:56;:::i;:::-;21755:64;21493:332;-1:-1:-1;;;;21493:332:1:o;22442:306::-;22530:6;22538;22546;22599:2;22587:9;22578:7;22574:23;22570:32;22567:52;;;22615:1;22612;22605:12;22567:52;22644:9;22638:16;22628:26;;22694:2;22683:9;22679:18;22673:25;22663:35;;22738:2;22727:9;22723:18;22717:25;22707:35;;22442:306;;;;;:::o
Swarm Source
ipfs://4d4a5b4ceb9deffc71323124301c446a2b26ea05166ba3363c8ab1c178fa46ac
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.